@modern-js/app-tools 2.15.0 → 2.16.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 (268) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/cjs/analyze/constants.js +37 -61
  3. package/dist/cjs/analyze/generateCode.js +102 -127
  4. package/dist/cjs/analyze/getBundleEntry.js +33 -66
  5. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +61 -117
  6. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +61 -115
  7. package/dist/cjs/analyze/getClientRoutes/index.js +15 -28
  8. package/dist/cjs/analyze/getClientRoutes/utils.js +24 -48
  9. package/dist/cjs/analyze/getFileSystemEntry.js +39 -79
  10. package/dist/cjs/analyze/getHtmlTemplate.js +88 -98
  11. package/dist/cjs/analyze/getServerRoutes.js +67 -110
  12. package/dist/cjs/analyze/index.js +265 -257
  13. package/dist/cjs/analyze/isDefaultExportFunction.js +66 -44
  14. package/dist/cjs/analyze/makeLegalIdentifier.js +7 -25
  15. package/dist/cjs/analyze/nestedRoutes.js +99 -104
  16. package/dist/cjs/analyze/templates.js +49 -110
  17. package/dist/cjs/analyze/utils.js +98 -102
  18. package/dist/cjs/builder/builder-rspack/adapterCopy.js +58 -100
  19. package/dist/cjs/builder/builder-rspack/index.js +14 -30
  20. package/dist/cjs/builder/builder-webpack/adapterModern.js +33 -50
  21. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +16 -32
  22. package/dist/cjs/builder/builder-webpack/index.js +65 -46
  23. package/dist/cjs/builder/generator/createBuilderOptions.js +10 -26
  24. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +11 -27
  25. package/dist/cjs/builder/generator/getBuilderTargets.js +13 -29
  26. package/dist/cjs/builder/generator/index.js +61 -55
  27. package/dist/cjs/builder/index.js +53 -43
  28. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +13 -36
  29. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +90 -90
  30. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +108 -111
  31. package/dist/cjs/builder/shared/builderPlugins/index.js +20 -19
  32. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -30
  33. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +32 -38
  34. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +86 -116
  35. package/dist/cjs/builder/shared/bundlerPlugins/index.js +20 -19
  36. package/dist/cjs/builder/shared/createCopyInfo.js +16 -42
  37. package/dist/cjs/builder/shared/index.js +20 -19
  38. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +8 -24
  39. package/dist/cjs/builder/shared/types.js +4 -15
  40. package/dist/cjs/commands/build.js +23 -40
  41. package/dist/cjs/commands/deploy.js +7 -25
  42. package/dist/cjs/commands/dev.js +38 -57
  43. package/dist/cjs/commands/index.js +20 -19
  44. package/dist/cjs/commands/inspect.js +10 -30
  45. package/dist/cjs/commands/serve.js +28 -66
  46. package/dist/cjs/config/default.js +34 -34
  47. package/dist/cjs/config/index.js +20 -19
  48. package/dist/cjs/config/initialize/index.js +11 -29
  49. package/dist/cjs/config/initialize/inits.js +103 -82
  50. package/dist/cjs/config/legacy/createHtmlConfig.js +8 -40
  51. package/dist/cjs/config/legacy/createOutputConfig.js +8 -51
  52. package/dist/cjs/config/legacy/createSourceConfig.js +8 -38
  53. package/dist/cjs/config/legacy/createToolsConfig.js +8 -43
  54. package/dist/cjs/config/legacy/index.js +22 -46
  55. package/dist/cjs/defineConfig.js +16 -31
  56. package/dist/cjs/exports/server.js +7 -25
  57. package/dist/cjs/hooks.js +33 -51
  58. package/dist/cjs/index.js +185 -166
  59. package/dist/cjs/initialize/index.js +84 -100
  60. package/dist/cjs/locale/en.js +13 -27
  61. package/dist/cjs/locale/index.js +18 -28
  62. package/dist/cjs/locale/zh.js +13 -27
  63. package/dist/cjs/schema/Schema.js +27 -31
  64. package/dist/cjs/schema/index.js +141 -71
  65. package/dist/cjs/schema/legacy.js +273 -96
  66. package/dist/cjs/types/config/deploy.js +4 -15
  67. package/dist/cjs/types/config/dev.js +4 -15
  68. package/dist/cjs/types/config/experiments.js +4 -15
  69. package/dist/cjs/types/config/html.js +4 -15
  70. package/dist/cjs/types/config/index.js +18 -17
  71. package/dist/cjs/types/config/output.js +4 -15
  72. package/dist/cjs/types/config/performance.js +4 -15
  73. package/dist/cjs/types/config/security.js +4 -15
  74. package/dist/cjs/types/config/source.js +4 -15
  75. package/dist/cjs/types/config/tools.js +4 -15
  76. package/dist/cjs/types/hooks.js +4 -15
  77. package/dist/cjs/types/index.js +20 -19
  78. package/dist/cjs/types/legacyConfig/deploy.js +4 -15
  79. package/dist/cjs/types/legacyConfig/dev.js +4 -15
  80. package/dist/cjs/types/legacyConfig/index.js +4 -15
  81. package/dist/cjs/types/legacyConfig/output.js +4 -15
  82. package/dist/cjs/types/legacyConfig/source.js +4 -15
  83. package/dist/cjs/types/legacyConfig/tools.js +4 -15
  84. package/dist/cjs/types/utils.js +4 -15
  85. package/dist/cjs/utils/config.js +74 -79
  86. package/dist/cjs/utils/createServer.js +16 -42
  87. package/dist/cjs/utils/env.js +7 -25
  88. package/dist/cjs/utils/generateWatchFiles.js +31 -52
  89. package/dist/cjs/utils/getSelectedEntries.js +13 -35
  90. package/dist/cjs/utils/getServerInternalPlugins.js +8 -29
  91. package/dist/cjs/utils/printInstructions.js +10 -28
  92. package/dist/cjs/utils/restart.js +13 -31
  93. package/dist/cjs/utils/routes.js +18 -39
  94. package/dist/cjs/utils/types.js +4 -15
  95. package/dist/esm/analyze/constants.js +40 -41
  96. package/dist/esm/analyze/generateCode.js +477 -455
  97. package/dist/esm/analyze/getBundleEntry.js +53 -54
  98. package/dist/esm/analyze/getClientRoutes/getRoutes.js +201 -202
  99. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +199 -200
  100. package/dist/esm/analyze/getClientRoutes/index.js +2 -3
  101. package/dist/esm/analyze/getClientRoutes/utils.js +15 -15
  102. package/dist/esm/analyze/getFileSystemEntry.js +86 -87
  103. package/dist/esm/analyze/getHtmlTemplate.js +289 -278
  104. package/dist/esm/analyze/getServerRoutes.js +203 -190
  105. package/dist/esm/analyze/index.js +679 -651
  106. package/dist/esm/analyze/isDefaultExportFunction.js +38 -39
  107. package/dist/esm/analyze/makeLegalIdentifier.js +8 -9
  108. package/dist/esm/analyze/nestedRoutes.js +400 -392
  109. package/dist/esm/analyze/templates.js +536 -509
  110. package/dist/esm/analyze/utils.js +357 -336
  111. package/dist/esm/builder/builder-rspack/adapterCopy.js +347 -330
  112. package/dist/esm/builder/builder-rspack/index.js +8 -9
  113. package/dist/esm/builder/builder-webpack/adapterModern.js +51 -43
  114. package/dist/esm/builder/builder-webpack/createCopyPattern.js +31 -32
  115. package/dist/esm/builder/builder-webpack/index.js +266 -249
  116. package/dist/esm/builder/generator/createBuilderOptions.js +37 -38
  117. package/dist/esm/builder/generator/createBuilderProviderConfig.js +62 -63
  118. package/dist/esm/builder/generator/getBuilderTargets.js +13 -14
  119. package/dist/esm/builder/generator/index.js +203 -196
  120. package/dist/esm/builder/index.js +183 -176
  121. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +90 -91
  122. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +300 -291
  123. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +337 -329
  124. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +108 -97
  125. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +66 -64
  126. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +364 -337
  127. package/dist/esm/builder/shared/createCopyInfo.js +9 -10
  128. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +2 -3
  129. package/dist/esm/builder/shared/types.js +1 -1
  130. package/dist/esm/commands/build.js +279 -272
  131. package/dist/esm/commands/deploy.js +150 -144
  132. package/dist/esm/commands/dev.js +296 -289
  133. package/dist/esm/commands/inspect.js +144 -138
  134. package/dist/esm/commands/serve.js +241 -235
  135. package/dist/esm/config/default.js +202 -203
  136. package/dist/esm/config/initialize/index.js +7 -8
  137. package/dist/esm/config/initialize/inits.js +189 -181
  138. package/dist/esm/config/legacy/createHtmlConfig.js +17 -18
  139. package/dist/esm/config/legacy/createOutputConfig.js +41 -42
  140. package/dist/esm/config/legacy/createSourceConfig.js +38 -39
  141. package/dist/esm/config/legacy/createToolsConfig.js +24 -25
  142. package/dist/esm/config/legacy/index.js +31 -32
  143. package/dist/esm/defineConfig.js +52 -53
  144. package/dist/esm/exports/server.js +1 -2
  145. package/dist/esm/hooks.js +26 -27
  146. package/dist/esm/index.js +685 -671
  147. package/dist/esm/initialize/index.js +276 -269
  148. package/dist/esm/locale/en.js +36 -37
  149. package/dist/esm/locale/index.js +2 -2
  150. package/dist/esm/locale/zh.js +36 -37
  151. package/dist/esm/schema/Schema.js +255 -244
  152. package/dist/esm/schema/index.js +165 -165
  153. package/dist/esm/schema/legacy.js +316 -317
  154. package/dist/esm/types/config/deploy.js +1 -1
  155. package/dist/esm/types/config/dev.js +1 -1
  156. package/dist/esm/types/config/experiments.js +1 -1
  157. package/dist/esm/types/config/html.js +1 -1
  158. package/dist/esm/types/config/output.js +1 -1
  159. package/dist/esm/types/config/performance.js +1 -1
  160. package/dist/esm/types/config/security.js +1 -1
  161. package/dist/esm/types/config/source.js +1 -1
  162. package/dist/esm/types/config/tools.js +1 -1
  163. package/dist/esm/types/hooks.js +1 -1
  164. package/dist/esm/types/legacyConfig/deploy.js +1 -1
  165. package/dist/esm/types/legacyConfig/dev.js +1 -1
  166. package/dist/esm/types/legacyConfig/index.js +1 -1
  167. package/dist/esm/types/legacyConfig/output.js +1 -1
  168. package/dist/esm/types/legacyConfig/source.js +1 -1
  169. package/dist/esm/types/legacyConfig/tools.js +1 -1
  170. package/dist/esm/types/utils.js +1 -1
  171. package/dist/esm/utils/config.js +285 -278
  172. package/dist/esm/utils/createServer.js +242 -234
  173. package/dist/esm/utils/env.js +11 -12
  174. package/dist/esm/utils/generateWatchFiles.js +205 -190
  175. package/dist/esm/utils/getSelectedEntries.js +180 -173
  176. package/dist/esm/utils/getServerInternalPlugins.js +197 -191
  177. package/dist/esm/utils/printInstructions.js +147 -141
  178. package/dist/esm/utils/restart.js +179 -173
  179. package/dist/esm/utils/routes.js +146 -139
  180. package/dist/esm/utils/types.js +1 -1
  181. package/dist/esm-node/analyze/constants.js +31 -46
  182. package/dist/esm-node/analyze/generateCode.js +28 -94
  183. package/dist/esm-node/analyze/getBundleEntry.js +8 -27
  184. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +24 -65
  185. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +24 -63
  186. package/dist/esm-node/analyze/getClientRoutes/index.js +2 -6
  187. package/dist/esm-node/analyze/getClientRoutes/utils.js +5 -19
  188. package/dist/esm-node/analyze/getFileSystemEntry.js +10 -37
  189. package/dist/esm-node/analyze/getHtmlTemplate.js +29 -59
  190. package/dist/esm-node/analyze/getServerRoutes.js +43 -75
  191. package/dist/esm-node/analyze/index.js +208 -230
  192. package/dist/esm-node/analyze/isDefaultExportFunction.js +7 -5
  193. package/dist/esm-node/analyze/makeLegalIdentifier.js +1 -4
  194. package/dist/esm-node/analyze/nestedRoutes.js +23 -43
  195. package/dist/esm-node/analyze/templates.js +22 -69
  196. package/dist/esm-node/analyze/utils.js +66 -60
  197. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +40 -62
  198. package/dist/esm-node/builder/builder-rspack/index.js +4 -5
  199. package/dist/esm-node/builder/builder-webpack/adapterModern.js +24 -26
  200. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +3 -10
  201. package/dist/esm-node/builder/builder-webpack/index.js +13 -11
  202. package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -5
  203. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +5 -6
  204. package/dist/esm-node/builder/generator/getBuilderTargets.js +5 -11
  205. package/dist/esm-node/builder/generator/index.js +7 -16
  206. package/dist/esm-node/builder/index.js +2 -7
  207. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -6
  208. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +34 -60
  209. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +54 -74
  210. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +23 -8
  211. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +25 -16
  212. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +66 -76
  213. package/dist/esm-node/builder/shared/createCopyInfo.js +2 -8
  214. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +1 -4
  215. package/dist/esm-node/builder/shared/types.js +1 -0
  216. package/dist/esm-node/commands/build.js +7 -9
  217. package/dist/esm-node/commands/deploy.js +1 -4
  218. package/dist/esm-node/commands/dev.js +19 -27
  219. package/dist/esm-node/commands/inspect.js +3 -8
  220. package/dist/esm-node/commands/serve.js +7 -25
  221. package/dist/esm-node/config/default.js +20 -11
  222. package/dist/esm-node/config/initialize/index.js +1 -4
  223. package/dist/esm-node/config/initialize/inits.js +48 -54
  224. package/dist/esm-node/config/legacy/createHtmlConfig.js +2 -19
  225. package/dist/esm-node/config/legacy/createOutputConfig.js +2 -30
  226. package/dist/esm-node/config/legacy/createSourceConfig.js +2 -17
  227. package/dist/esm-node/config/legacy/createToolsConfig.js +2 -22
  228. package/dist/esm-node/config/legacy/index.js +3 -18
  229. package/dist/esm-node/defineConfig.js +7 -13
  230. package/dist/esm-node/exports/server.js +1 -4
  231. package/dist/esm-node/hooks.js +2 -9
  232. package/dist/esm-node/index.js +95 -120
  233. package/dist/esm-node/initialize/index.js +74 -87
  234. package/dist/esm-node/locale/en.js +7 -6
  235. package/dist/esm-node/locale/index.js +5 -5
  236. package/dist/esm-node/locale/zh.js +7 -6
  237. package/dist/esm-node/schema/Schema.js +19 -8
  238. package/dist/esm-node/schema/index.js +121 -36
  239. package/dist/esm-node/schema/legacy.js +262 -72
  240. package/dist/esm-node/types/config/deploy.js +1 -0
  241. package/dist/esm-node/types/config/dev.js +1 -0
  242. package/dist/esm-node/types/config/experiments.js +1 -0
  243. package/dist/esm-node/types/config/html.js +1 -0
  244. package/dist/esm-node/types/config/output.js +1 -0
  245. package/dist/esm-node/types/config/performance.js +1 -0
  246. package/dist/esm-node/types/config/security.js +1 -0
  247. package/dist/esm-node/types/config/source.js +1 -0
  248. package/dist/esm-node/types/config/tools.js +1 -0
  249. package/dist/esm-node/types/hooks.js +1 -0
  250. package/dist/esm-node/types/legacyConfig/deploy.js +1 -0
  251. package/dist/esm-node/types/legacyConfig/dev.js +1 -0
  252. package/dist/esm-node/types/legacyConfig/index.js +1 -0
  253. package/dist/esm-node/types/legacyConfig/output.js +1 -0
  254. package/dist/esm-node/types/legacyConfig/source.js +1 -0
  255. package/dist/esm-node/types/legacyConfig/tools.js +1 -0
  256. package/dist/esm-node/types/utils.js +1 -0
  257. package/dist/esm-node/utils/config.js +16 -47
  258. package/dist/esm-node/utils/createServer.js +5 -12
  259. package/dist/esm-node/utils/env.js +1 -4
  260. package/dist/esm-node/utils/generateWatchFiles.js +13 -20
  261. package/dist/esm-node/utils/getSelectedEntries.js +2 -9
  262. package/dist/esm-node/utils/getServerInternalPlugins.js +2 -8
  263. package/dist/esm-node/utils/printInstructions.js +1 -4
  264. package/dist/esm-node/utils/restart.js +2 -11
  265. package/dist/esm-node/utils/routes.js +4 -4
  266. package/dist/esm-node/utils/types.js +1 -0
  267. package/dist/types/index.d.ts +2 -2
  268. package/package.json +29 -25
@@ -1,276 +1,284 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var analyze_exports = {};
29
- __export(analyze_exports, {
30
- default: () => analyze_default
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
31
4
  });
32
- module.exports = __toCommonJS(analyze_exports);
33
- var path = __toESM(require("path"));
34
- var import_utils = require("@modern-js/utils");
35
- var import_lodash = require("@modern-js/utils/lodash");
36
- var import_printInstructions = require("../utils/printInstructions");
37
- var import_routes = require("../utils/routes");
38
- var import_config = require("../utils/config");
39
- var import_getSelectedEntries = require("../utils/getSelectedEntries");
40
- var import_config2 = require("../config");
41
- var import_builder = require("../builder");
42
- var import_utils2 = require("./utils");
43
- var import_constants = require("./constants");
44
- const debug = (0, import_utils.createDebugger)("plugin-analyze");
45
- var analyze_default = ({
46
- bundler
47
- }) => ({
48
- name: "@modern-js/plugin-analyze",
49
- setup: (api) => {
50
- let pagesDir = [];
51
- let nestedRouteEntries = [];
52
- let originEntrypoints = [];
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: () => _default
8
+ });
9
+ const _path = /* @__PURE__ */ _interop_require_wildcard(require("path"));
10
+ const _utils = require("@modern-js/utils");
11
+ const _lodash = require("@modern-js/utils/lodash");
12
+ const _printInstructions = require("../utils/printInstructions");
13
+ const _routes = require("../utils/routes");
14
+ const _config = require("../utils/config");
15
+ const _getSelectedEntries = require("../utils/getSelectedEntries");
16
+ const _config1 = require("../config");
17
+ const _builder = require("../builder");
18
+ const _utils1 = require("./utils");
19
+ const _constants = require("./constants");
20
+ function _getRequireWildcardCache(nodeInterop) {
21
+ if (typeof WeakMap !== "function")
22
+ return null;
23
+ var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
24
+ var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
25
+ return (_getRequireWildcardCache = function(nodeInterop2) {
26
+ return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
27
+ })(nodeInterop);
28
+ }
29
+ function _interop_require_wildcard(obj, nodeInterop) {
30
+ if (!nodeInterop && obj && obj.__esModule) {
31
+ return obj;
32
+ }
33
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
53
34
  return {
54
- async prepare() {
55
- var _a;
56
- let appContext = api.useAppContext();
57
- const resolvedConfig = api.useResolvedConfigContext();
58
- const hookRunners = api.useHookRunners();
59
- try {
60
- import_utils.fs.emptydirSync(appContext.internalDirectory);
61
- } catch {
62
- }
63
- const apiOnly = await (0, import_utils.isApiOnly)(
64
- appContext.appDirectory,
65
- (_a = resolvedConfig.source) == null ? void 0 : _a.entriesDir
66
- );
67
- await hookRunners.addRuntimeExports();
68
- if (apiOnly) {
69
- const { routes: routes2 } = await hookRunners.modifyServerRoutes({
70
- routes: []
35
+ default: obj
36
+ };
37
+ }
38
+ var cache = _getRequireWildcardCache(nodeInterop);
39
+ if (cache && cache.has(obj)) {
40
+ return cache.get(obj);
41
+ }
42
+ var newObj = {};
43
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
+ for (var key in obj) {
45
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
46
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
47
+ if (desc && (desc.get || desc.set)) {
48
+ Object.defineProperty(newObj, key, desc);
49
+ } else {
50
+ newObj[key] = obj[key];
51
+ }
52
+ }
53
+ }
54
+ newObj.default = obj;
55
+ if (cache) {
56
+ cache.set(obj, newObj);
57
+ }
58
+ return newObj;
59
+ }
60
+ const debug = (0, _utils.createDebugger)("plugin-analyze");
61
+ const _default = ({ bundler }) => {
62
+ return {
63
+ name: "@modern-js/plugin-analyze",
64
+ setup: (api) => {
65
+ let pagesDir = [];
66
+ let nestedRouteEntries = [];
67
+ let originEntrypoints = [];
68
+ return {
69
+ async prepare() {
70
+ var _resolvedConfig_source;
71
+ let appContext = api.useAppContext();
72
+ const resolvedConfig = api.useResolvedConfigContext();
73
+ const hookRunners = api.useHookRunners();
74
+ try {
75
+ _utils.fs.emptydirSync(appContext.internalDirectory);
76
+ } catch {
77
+ }
78
+ const apiOnly = await (0, _utils.isApiOnly)(appContext.appDirectory, (_resolvedConfig_source = resolvedConfig.source) === null || _resolvedConfig_source === void 0 ? void 0 : _resolvedConfig_source.entriesDir);
79
+ await hookRunners.addRuntimeExports();
80
+ if (apiOnly) {
81
+ const { routes: routes2 } = await hookRunners.modifyServerRoutes({
82
+ routes: []
83
+ });
84
+ debug(`server routes: %o`, routes2);
85
+ appContext = {
86
+ ...appContext,
87
+ apiOnly,
88
+ serverRoutes: routes2
89
+ };
90
+ api.setAppContext(appContext);
91
+ return;
92
+ }
93
+ const [{ getBundleEntry }, { getServerRoutes }, { generateCode }, { getHtmlTemplate }] = await Promise.all([
94
+ Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard(require("./getBundleEntry"))),
95
+ Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard(require("./getServerRoutes"))),
96
+ Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard(require("./generateCode"))),
97
+ Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard(require("./getHtmlTemplate")))
98
+ ]);
99
+ const entrypoints = getBundleEntry(appContext, resolvedConfig);
100
+ debug(`entrypoints: %o`, entrypoints);
101
+ const initialRoutes = getServerRoutes(entrypoints, {
102
+ appContext,
103
+ config: resolvedConfig
104
+ });
105
+ const { routes } = await hookRunners.modifyServerRoutes({
106
+ routes: initialRoutes
71
107
  });
72
- debug(`server routes: %o`, routes2);
108
+ debug(`server routes: %o`, routes);
73
109
  appContext = {
74
110
  ...appContext,
75
- apiOnly,
76
- serverRoutes: routes2
111
+ entrypoints,
112
+ serverRoutes: routes
77
113
  };
78
114
  api.setAppContext(appContext);
79
- return;
80
- }
81
- const [
82
- { getBundleEntry },
83
- { getServerRoutes },
84
- { generateCode },
85
- { getHtmlTemplate }
86
- ] = await Promise.all([
87
- Promise.resolve().then(() => __toESM(require("./getBundleEntry"))),
88
- Promise.resolve().then(() => __toESM(require("./getServerRoutes"))),
89
- Promise.resolve().then(() => __toESM(require("./generateCode"))),
90
- Promise.resolve().then(() => __toESM(require("./getHtmlTemplate")))
91
- ]);
92
- const entrypoints = getBundleEntry(appContext, resolvedConfig);
93
- debug(`entrypoints: %o`, entrypoints);
94
- const initialRoutes = getServerRoutes(entrypoints, {
95
- appContext,
96
- config: resolvedConfig
97
- });
98
- const { routes } = await hookRunners.modifyServerRoutes({
99
- routes: initialRoutes
100
- });
101
- debug(`server routes: %o`, routes);
102
- appContext = {
103
- ...appContext,
104
- entrypoints,
105
- serverRoutes: routes
106
- };
107
- api.setAppContext(appContext);
108
- nestedRouteEntries = entrypoints.map((point) => point.nestedRoutesEntry).filter(Boolean);
109
- pagesDir = entrypoints.map((point) => point.entry).filter(Boolean).concat(nestedRouteEntries);
110
- originEntrypoints = (0, import_lodash.cloneDeep)(entrypoints);
111
- await generateCode(appContext, resolvedConfig, entrypoints, api);
112
- const htmlTemplates = await getHtmlTemplate(entrypoints, api, {
113
- appContext,
114
- config: resolvedConfig
115
- });
116
- debug(`html templates: %o`, htmlTemplates);
117
- await hookRunners.addDefineTypes();
118
- debug(`add Define Types`);
119
- let checkedEntries = entrypoints.map((point) => point.entryName);
120
- if ((0, import_utils.isDevCommand)()) {
121
- const { entry } = (0, import_utils.minimist)((0, import_utils.getArgv)());
122
- checkedEntries = await (0, import_getSelectedEntries.getSelectedEntries)(
123
- typeof entry === "string" ? entry.split(",") : entry,
124
- entrypoints
125
- );
126
- }
127
- appContext = {
128
- ...appContext,
129
- entrypoints,
130
- checkedEntries,
131
- apiOnly,
132
- serverRoutes: routes,
133
- htmlTemplates
134
- };
135
- api.setAppContext(appContext);
136
- const command = (0, import_utils.getCommand)();
137
- const buildCommands = ["dev", "start", "build", "inspect", "deploy"];
138
- if (buildCommands.includes(command)) {
139
- const normalizedConfig = api.useResolvedConfigContext();
140
- const createBuilderForModern = await (0, import_builder.createBuilderGenerator)(bundler);
141
- const builder = await createBuilderForModern({
142
- normalizedConfig,
115
+ nestedRouteEntries = entrypoints.map((point) => point.nestedRoutesEntry).filter(Boolean);
116
+ pagesDir = entrypoints.map((point) => point.entry).filter(Boolean).concat(nestedRouteEntries);
117
+ originEntrypoints = (0, _lodash.cloneDeep)(entrypoints);
118
+ await generateCode(appContext, resolvedConfig, entrypoints, api);
119
+ const htmlTemplates = await getHtmlTemplate(entrypoints, api, {
143
120
  appContext,
144
- async onBeforeBuild({ bundlerConfigs }) {
145
- const hookRunners2 = api.useHookRunners();
146
- await (0, import_routes.generateRoutes)(appContext);
147
- await hookRunners2.beforeBuild({
148
- bundlerConfigs
149
- });
150
- },
151
- async onAfterBuild({ stats }) {
152
- const hookRunners2 = api.useHookRunners();
153
- await hookRunners2.afterBuild({ stats });
154
- await (0, import_config.emitResolvedConfig)(
155
- appContext.appDirectory,
156
- normalizedConfig
157
- );
158
- },
159
- async onDevCompileDone({ isFirstCompile }) {
160
- const hookRunners2 = api.useHookRunners();
161
- if (process.stdout.isTTY || isFirstCompile) {
162
- hookRunners2.afterDev();
163
- if (isFirstCompile) {
164
- (0, import_printInstructions.printInstructions)(hookRunners2, appContext, normalizedConfig);
165
- }
166
- }
167
- },
168
- async onBeforeCreateCompiler({ bundlerConfigs }) {
169
- const hookRunners2 = api.useHookRunners();
170
- await hookRunners2.beforeCreateCompiler({
171
- bundlerConfigs
172
- });
173
- },
174
- async onAfterCreateCompiler({ compiler }) {
175
- const hookRunners2 = api.useHookRunners();
176
- await hookRunners2.afterCreateCompiler({
177
- compiler
178
- });
179
- }
121
+ config: resolvedConfig
180
122
  });
181
- builder.addPlugins(resolvedConfig.builderPlugins);
123
+ debug(`html templates: %o`, htmlTemplates);
124
+ await hookRunners.addDefineTypes();
125
+ debug(`add Define Types`);
126
+ let checkedEntries = entrypoints.map((point) => point.entryName);
127
+ if ((0, _utils.isDevCommand)()) {
128
+ const { entry } = (0, _utils.minimist)((0, _utils.getArgv)());
129
+ checkedEntries = await (0, _getSelectedEntries.getSelectedEntries)(typeof entry === "string" ? entry.split(",") : entry, entrypoints);
130
+ }
182
131
  appContext = {
183
132
  ...appContext,
184
- builder
133
+ entrypoints,
134
+ checkedEntries,
135
+ apiOnly,
136
+ serverRoutes: routes,
137
+ htmlTemplates
185
138
  };
186
139
  api.setAppContext(appContext);
187
- }
188
- },
189
- watchFiles() {
190
- return pagesDir;
191
- },
192
- resolvedConfig({ resolved }) {
193
- const appContext = api.useAppContext();
194
- const config = (0, import_config2.initialNormalizedConfig)(resolved, appContext, bundler);
195
- return {
196
- resolved: config
197
- };
198
- },
199
- // This logic is not in the router plugin to avoid having to include some dependencies in the utils package
200
- async modifyEntryImports({ entrypoint, imports }) {
201
- const appContext = api.useAppContext();
202
- const { srcDirectory, internalSrcAlias } = appContext;
203
- const { fileSystemRoutes, nestedRoutesEntry } = entrypoint;
204
- if (fileSystemRoutes && nestedRoutesEntry) {
205
- const rootLayoutPath = path.join(nestedRoutesEntry, "layout");
206
- const rootLayoutFile = (0, import_utils.findExists)(
207
- [".js", ".ts", ".jsx", ".tsx"].map(
208
- (ext) => `${rootLayoutPath}${ext}`
209
- )
210
- );
211
- if (rootLayoutFile) {
212
- const rootLayoutBuffer = await import_utils.fs.readFile(rootLayoutFile);
213
- const rootLayout = rootLayoutBuffer.toString();
214
- const [, moduleExports] = await (0, import_utils2.parseModule)({
215
- source: rootLayout.toString(),
216
- filename: rootLayoutFile
140
+ const command = (0, _utils.getCommand)();
141
+ const buildCommands = [
142
+ "dev",
143
+ "start",
144
+ "build",
145
+ "inspect",
146
+ "deploy"
147
+ ];
148
+ if (buildCommands.includes(command)) {
149
+ const normalizedConfig = api.useResolvedConfigContext();
150
+ const createBuilderForModern = await (0, _builder.createBuilderGenerator)(bundler);
151
+ const builder = await createBuilderForModern({
152
+ normalizedConfig,
153
+ appContext,
154
+ async onBeforeBuild({ bundlerConfigs }) {
155
+ const hookRunners2 = api.useHookRunners();
156
+ await (0, _routes.generateRoutes)(appContext);
157
+ await hookRunners2.beforeBuild({
158
+ bundlerConfigs
159
+ });
160
+ },
161
+ async onAfterBuild({ stats }) {
162
+ const hookRunners2 = api.useHookRunners();
163
+ await hookRunners2.afterBuild({
164
+ stats
165
+ });
166
+ await (0, _config.emitResolvedConfig)(appContext.appDirectory, normalizedConfig);
167
+ },
168
+ async onDevCompileDone({ isFirstCompile }) {
169
+ const hookRunners2 = api.useHookRunners();
170
+ if (process.stdout.isTTY || isFirstCompile) {
171
+ hookRunners2.afterDev();
172
+ if (isFirstCompile) {
173
+ (0, _printInstructions.printInstructions)(hookRunners2, appContext, normalizedConfig);
174
+ }
175
+ }
176
+ },
177
+ async onBeforeCreateCompiler({ bundlerConfigs }) {
178
+ const hookRunners2 = api.useHookRunners();
179
+ await hookRunners2.beforeCreateCompiler({
180
+ bundlerConfigs
181
+ });
182
+ },
183
+ async onAfterCreateCompiler({ compiler }) {
184
+ const hookRunners2 = api.useHookRunners();
185
+ await hookRunners2.afterCreateCompiler({
186
+ compiler
187
+ });
188
+ }
217
189
  });
218
- const hasAppConfig = moduleExports.some(
219
- (e) => e.n === import_constants.APP_CONFIG_NAME
220
- );
221
- const generateLayoutPath = (0, import_utils2.replaceWithAlias)(
222
- srcDirectory,
223
- rootLayoutFile,
224
- internalSrcAlias
225
- );
226
- if (hasAppConfig) {
227
- imports.push({
228
- value: generateLayoutPath,
229
- specifiers: [{ imported: import_constants.APP_CONFIG_NAME }]
230
- });
231
- }
232
- const hasAppInit = moduleExports.some(
233
- (e) => e.n === import_constants.APP_INIT_EXPORTED
234
- );
235
- if (hasAppInit) {
236
- imports.push({
237
- value: generateLayoutPath,
238
- specifiers: [
239
- { imported: import_constants.APP_INIT_EXPORTED, local: import_constants.APP_INIT_IMPORTED }
240
- ]
190
+ builder.addPlugins(resolvedConfig.builderPlugins);
191
+ appContext = {
192
+ ...appContext,
193
+ builder
194
+ };
195
+ api.setAppContext(appContext);
196
+ }
197
+ },
198
+ watchFiles() {
199
+ return pagesDir;
200
+ },
201
+ resolvedConfig({ resolved }) {
202
+ const appContext = api.useAppContext();
203
+ const config = (0, _config1.initialNormalizedConfig)(resolved, appContext, bundler);
204
+ return {
205
+ resolved: config
206
+ };
207
+ },
208
+ // This logic is not in the router plugin to avoid having to include some dependencies in the utils package
209
+ async modifyEntryImports({ entrypoint, imports }) {
210
+ const appContext = api.useAppContext();
211
+ const { srcDirectory, internalSrcAlias } = appContext;
212
+ const { fileSystemRoutes, nestedRoutesEntry } = entrypoint;
213
+ if (fileSystemRoutes && nestedRoutesEntry) {
214
+ const rootLayoutPath = _path.join(nestedRoutesEntry, "layout");
215
+ const rootLayoutFile = (0, _utils.findExists)([
216
+ ".js",
217
+ ".ts",
218
+ ".jsx",
219
+ ".tsx"
220
+ ].map((ext) => `${rootLayoutPath}${ext}`));
221
+ if (rootLayoutFile) {
222
+ const rootLayoutBuffer = await _utils.fs.readFile(rootLayoutFile);
223
+ const rootLayout = rootLayoutBuffer.toString();
224
+ const [, moduleExports] = await (0, _utils1.parseModule)({
225
+ source: rootLayout.toString(),
226
+ filename: rootLayoutFile
241
227
  });
228
+ const hasAppConfig = moduleExports.some((e) => e.n === _constants.APP_CONFIG_NAME);
229
+ const generateLayoutPath = (0, _utils1.replaceWithAlias)(srcDirectory, rootLayoutFile, internalSrcAlias);
230
+ if (hasAppConfig) {
231
+ imports.push({
232
+ value: generateLayoutPath,
233
+ specifiers: [
234
+ {
235
+ imported: _constants.APP_CONFIG_NAME
236
+ }
237
+ ]
238
+ });
239
+ }
240
+ const hasAppInit = moduleExports.some((e) => e.n === _constants.APP_INIT_EXPORTED);
241
+ if (hasAppInit) {
242
+ imports.push({
243
+ value: generateLayoutPath,
244
+ specifiers: [
245
+ {
246
+ imported: _constants.APP_INIT_EXPORTED,
247
+ local: _constants.APP_INIT_IMPORTED
248
+ }
249
+ ]
250
+ });
251
+ }
242
252
  }
243
253
  }
244
- }
245
- return {
246
- entrypoint,
247
- imports
248
- };
249
- },
250
- validateSchema() {
251
- return {
252
- target: "output.splitRouteChunks",
253
- schema: {
254
- type: "boolean"
254
+ return {
255
+ entrypoint,
256
+ imports
257
+ };
258
+ },
259
+ validateSchema() {
260
+ return {
261
+ target: "output.splitRouteChunks",
262
+ schema: {
263
+ type: "boolean"
264
+ }
265
+ };
266
+ },
267
+ async fileChange(e) {
268
+ const appContext = api.useAppContext();
269
+ const { appDirectory } = appContext;
270
+ const { filename, eventType } = e;
271
+ const isPageFile = (name) => pagesDir.some((pageDir) => name.includes(pageDir));
272
+ const absoluteFilePath = _path.resolve(appDirectory, filename);
273
+ const isRouteComponent = isPageFile(absoluteFilePath) && (0, _utils1.isPageComponentFile)(absoluteFilePath);
274
+ if (isRouteComponent && (eventType === "add" || eventType === "unlink")) {
275
+ const resolvedConfig = api.useResolvedConfigContext();
276
+ const { generateCode } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard(require("./generateCode")));
277
+ const entrypoints = (0, _lodash.cloneDeep)(originEntrypoints);
278
+ generateCode(appContext, resolvedConfig, entrypoints, api);
255
279
  }
256
- };
257
- },
258
- async fileChange(e) {
259
- const appContext = api.useAppContext();
260
- const { appDirectory } = appContext;
261
- const { filename, eventType } = e;
262
- const isPageFile = (name) => pagesDir.some((pageDir) => name.includes(pageDir));
263
- const absoluteFilePath = path.resolve(appDirectory, filename);
264
- const isRouteComponent = isPageFile(absoluteFilePath) && (0, import_utils2.isPageComponentFile)(absoluteFilePath);
265
- if (isRouteComponent && (eventType === "add" || eventType === "unlink")) {
266
- const resolvedConfig = api.useResolvedConfigContext();
267
- const { generateCode } = await Promise.resolve().then(() => __toESM(require("./generateCode")));
268
- const entrypoints = (0, import_lodash.cloneDeep)(originEntrypoints);
269
- generateCode(appContext, resolvedConfig, entrypoints, api);
270
280
  }
271
- }
272
- };
273
- }
274
- });
275
- // Annotate the CommonJS export names for ESM import in node:
276
- 0 && (module.exports = {});
281
+ };
282
+ }
283
+ };
284
+ };