@modern-js/app-tools 2.58.1 → 2.58.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +0 -1
  2. package/dist/cjs/builder/builder-webpack/index.js +1 -1
  3. package/dist/cjs/builder/generator/index.js +2 -2
  4. package/dist/cjs/builder/index.js +2 -2
  5. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +1 -4
  6. package/dist/cjs/commands/build.js +19 -0
  7. package/dist/cjs/commands/dev.js +9 -0
  8. package/dist/cjs/commands/index.js +8 -8
  9. package/dist/cjs/config/initialize/inits.js +4 -4
  10. package/dist/cjs/esm/esbuild-loader.mjs +20 -0
  11. package/dist/cjs/esm/register-esm.mjs +67 -0
  12. package/dist/cjs/esm/ts-node-loader.mjs +21 -0
  13. package/dist/cjs/esm/utils.mjs +43 -0
  14. package/dist/cjs/index.js +1 -1
  15. package/dist/cjs/plugins/analyze/index.js +3 -3
  16. package/dist/cjs/plugins/deploy/dependencies/index.js +1 -0
  17. package/dist/cjs/plugins/deploy/dependencies/utils.js +11 -0
  18. package/dist/cjs/plugins/deploy/platforms/netlify-entry.js +3 -0
  19. package/dist/cjs/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  20. package/dist/cjs/plugins/deploy/platforms/{netlifyEntry.js → netlify-handler.js} +6 -4
  21. package/dist/cjs/plugins/deploy/platforms/netlify.js +14 -5
  22. package/dist/cjs/plugins/deploy/platforms/node.js +13 -4
  23. package/dist/cjs/plugins/deploy/platforms/vercel-entry.js +3 -0
  24. package/dist/cjs/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  25. package/dist/cjs/plugins/deploy/platforms/{vercelEntry.js → vercel-handler.js} +4 -1
  26. package/dist/cjs/plugins/deploy/platforms/vercel.js +14 -5
  27. package/dist/cjs/utils/config.js +1 -1
  28. package/dist/cjs/utils/loadPlugins.js +1 -1
  29. package/dist/cjs/utils/register.js +50 -23
  30. package/dist/types/builder/builder-rspack/adapterCopy.d.ts +2 -2
  31. package/dist/types/builder/builder-rspack/index.d.ts +1 -1
  32. package/dist/types/builder/builder-webpack/adapterModern.d.ts +2 -2
  33. package/dist/types/builder/builder-webpack/index.d.ts +1 -1
  34. package/dist/types/builder/generator/index.d.ts +2 -2
  35. package/dist/types/builder/index.d.ts +1 -1
  36. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +1 -1
  37. package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +1 -1
  38. package/dist/types/builder/shared/createCopyInfo.d.ts +1 -1
  39. package/dist/types/commands/build.d.ts +1 -1
  40. package/dist/types/commands/dev.d.ts +3 -3
  41. package/dist/types/commands/index.d.ts +3 -3
  42. package/dist/types/config/default.d.ts +1 -1
  43. package/dist/types/config/initialize/inits.d.ts +1 -1
  44. package/dist/types/config/legacy/createHtmlConfig.d.ts +1 -1
  45. package/dist/types/config/legacy/createOutputConfig.d.ts +1 -1
  46. package/dist/types/config/legacy/createSourceConfig.d.ts +1 -1
  47. package/dist/types/config/legacy/createToolsConfig.d.ts +1 -1
  48. package/dist/types/esm/esbuild-loader.d.mts +6 -0
  49. package/dist/types/esm/register-esm.d.mts +5 -0
  50. package/dist/types/esm/ts-node-loader.d.mts +6 -0
  51. package/dist/types/esm/utils.d.mts +6 -0
  52. package/dist/types/exports/server.d.ts +1 -1
  53. package/dist/types/hooks.d.ts +1 -1
  54. package/dist/types/index.d.ts +2 -2
  55. package/dist/types/plugins/analyze/getBundleEntry.d.ts +1 -1
  56. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +1 -1
  57. package/dist/types/plugins/analyze/index.d.ts +1 -1
  58. package/dist/types/plugins/deploy/dependencies/utils.d.ts +1 -1
  59. package/dist/types/plugins/deploy/index.d.ts +2 -2
  60. package/dist/types/plugins/deploy/platforms/netlify-entry.d.cts +1 -0
  61. package/dist/types/plugins/deploy/platforms/netlify-entry.d.mts +1 -0
  62. package/dist/types/plugins/deploy/platforms/netlify-handler.d.cts +1 -0
  63. package/dist/types/plugins/deploy/platforms/netlify.d.ts +1 -1
  64. package/dist/types/plugins/deploy/platforms/node.d.ts +1 -1
  65. package/dist/types/plugins/deploy/platforms/platform.d.ts +2 -2
  66. package/dist/types/plugins/deploy/platforms/vercel-entry.d.mts +2 -0
  67. package/dist/types/plugins/deploy/platforms/vercel-entry.d.ts +2 -0
  68. package/dist/types/plugins/deploy/platforms/vercel-handler.d.cts +1 -0
  69. package/dist/types/plugins/deploy/platforms/vercel.d.ts +1 -1
  70. package/dist/types/plugins/deploy/utils.d.ts +1 -1
  71. package/dist/types/plugins/serverBuild.d.ts +1 -1
  72. package/dist/types/types/hooks.d.ts +1 -1
  73. package/dist/types/types/index.d.ts +1 -1
  74. package/dist/types/utils/createServer.d.ts +1 -1
  75. package/dist/types/utils/generateWatchFiles.d.ts +1 -1
  76. package/dist/types/utils/getSelectedEntries.d.ts +1 -1
  77. package/dist/types/utils/loadPlugins.d.ts +3 -3
  78. package/dist/types/utils/register.d.ts +2 -2
  79. package/dist/types/utils/restart.d.ts +2 -2
  80. package/lib/types.d.ts +15 -0
  81. package/package.json +20 -20
  82. package/dist/esm/builder/builder-rspack/adapterCopy.js +0 -166
  83. package/dist/esm/builder/builder-rspack/index.js +0 -34
  84. package/dist/esm/builder/builder-webpack/adapterModern.js +0 -29
  85. package/dist/esm/builder/builder-webpack/createCopyPattern.js +0 -44
  86. package/dist/esm/builder/builder-webpack/index.js +0 -52
  87. package/dist/esm/builder/generator/createBuilderProviderConfig.js +0 -37
  88. package/dist/esm/builder/generator/getBuilderEnvironments.js +0 -81
  89. package/dist/esm/builder/generator/index.js +0 -94
  90. package/dist/esm/builder/index.js +0 -45
  91. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +0 -85
  92. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +0 -126
  93. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +0 -270
  94. package/dist/esm/builder/shared/builderPlugins/adapterWorker.js +0 -43
  95. package/dist/esm/builder/shared/builderPlugins/index.js +0 -4
  96. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -51
  97. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -37
  98. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +0 -317
  99. package/dist/esm/builder/shared/bundlerPlugins/index.js +0 -3
  100. package/dist/esm/builder/shared/createCopyInfo.js +0 -14
  101. package/dist/esm/builder/shared/index.js +0 -3
  102. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +0 -7
  103. package/dist/esm/builder/shared/types.js +0 -0
  104. package/dist/esm/commands/build.js +0 -117
  105. package/dist/esm/commands/deploy.js +0 -48
  106. package/dist/esm/commands/dev.js +0 -169
  107. package/dist/esm/commands/index.js +0 -411
  108. package/dist/esm/commands/inspect.js +0 -28
  109. package/dist/esm/commands/serve.js +0 -93
  110. package/dist/esm/config/default.js +0 -190
  111. package/dist/esm/config/index.js +0 -3
  112. package/dist/esm/config/initialize/index.js +0 -9
  113. package/dist/esm/config/initialize/inits.js +0 -85
  114. package/dist/esm/config/legacy/createHtmlConfig.js +0 -21
  115. package/dist/esm/config/legacy/createOutputConfig.js +0 -45
  116. package/dist/esm/config/legacy/createSourceConfig.js +0 -46
  117. package/dist/esm/config/legacy/createToolsConfig.js +0 -28
  118. package/dist/esm/config/legacy/index.js +0 -43
  119. package/dist/esm/defineConfig.js +0 -16
  120. package/dist/esm/exports/server.js +0 -4
  121. package/dist/esm/hooks.js +0 -34
  122. package/dist/esm/index.js +0 -239
  123. package/dist/esm/locale/en.js +0 -43
  124. package/dist/esm/locale/index.js +0 -12
  125. package/dist/esm/locale/zh.js +0 -43
  126. package/dist/esm/plugins/analyze/constants.js +0 -14
  127. package/dist/esm/plugins/analyze/getBundleEntry.js +0 -102
  128. package/dist/esm/plugins/analyze/getFileSystemEntry.js +0 -238
  129. package/dist/esm/plugins/analyze/getHtmlTemplate.js +0 -178
  130. package/dist/esm/plugins/analyze/getServerRoutes.js +0 -132
  131. package/dist/esm/plugins/analyze/index.js +0 -380
  132. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +0 -49
  133. package/dist/esm/plugins/analyze/templates.js +0 -6
  134. package/dist/esm/plugins/analyze/utils.js +0 -101
  135. package/dist/esm/plugins/deploy/dependencies/index.js +0 -614
  136. package/dist/esm/plugins/deploy/dependencies/utils.js +0 -394
  137. package/dist/esm/plugins/deploy/exports.js +0 -4
  138. package/dist/esm/plugins/deploy/index.js +0 -135
  139. package/dist/esm/plugins/deploy/platforms/netlify.js +0 -299
  140. package/dist/esm/plugins/deploy/platforms/netlifyEntry.js +0 -203
  141. package/dist/esm/plugins/deploy/platforms/node.js +0 -133
  142. package/dist/esm/plugins/deploy/platforms/nodeEntry.js +0 -108
  143. package/dist/esm/plugins/deploy/platforms/platform.js +0 -0
  144. package/dist/esm/plugins/deploy/platforms/vercel.js +0 -233
  145. package/dist/esm/plugins/deploy/platforms/vercelEntry.js +0 -203
  146. package/dist/esm/plugins/deploy/utils.js +0 -47
  147. package/dist/esm/plugins/initialize/index.js +0 -119
  148. package/dist/esm/plugins/serverBuild.js +0 -87
  149. package/dist/esm/types/config/deploy.js +0 -0
  150. package/dist/esm/types/config/dev.js +0 -0
  151. package/dist/esm/types/config/experiments.js +0 -0
  152. package/dist/esm/types/config/html.js +0 -0
  153. package/dist/esm/types/config/index.js +0 -1
  154. package/dist/esm/types/config/output.js +0 -0
  155. package/dist/esm/types/config/performance.js +0 -0
  156. package/dist/esm/types/config/security.js +0 -0
  157. package/dist/esm/types/config/source.js +0 -0
  158. package/dist/esm/types/config/testing.js +0 -0
  159. package/dist/esm/types/config/tools.js +0 -0
  160. package/dist/esm/types/hooks.js +0 -0
  161. package/dist/esm/types/index.js +0 -3
  162. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  163. package/dist/esm/types/legacyConfig/dev.js +0 -0
  164. package/dist/esm/types/legacyConfig/index.js +0 -0
  165. package/dist/esm/types/legacyConfig/output.js +0 -0
  166. package/dist/esm/types/legacyConfig/source.js +0 -0
  167. package/dist/esm/types/legacyConfig/testing.js +0 -0
  168. package/dist/esm/types/legacyConfig/tools.js +0 -0
  169. package/dist/esm/types/utils.js +0 -0
  170. package/dist/esm/utils/config.js +0 -122
  171. package/dist/esm/utils/createServer.js +0 -58
  172. package/dist/esm/utils/env.js +0 -16
  173. package/dist/esm/utils/generateWatchFiles.js +0 -71
  174. package/dist/esm/utils/getSelectedEntries.js +0 -67
  175. package/dist/esm/utils/loadPlugins.js +0 -69
  176. package/dist/esm/utils/printInstructions.js +0 -32
  177. package/dist/esm/utils/register.js +0 -129
  178. package/dist/esm/utils/restart.js +0 -67
  179. package/dist/esm/utils/routes.js +0 -42
  180. package/dist/esm/utils/types.js +0 -0
  181. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +0 -67
  182. package/dist/esm-node/builder/builder-rspack/index.js +0 -12
  183. package/dist/esm-node/builder/builder-webpack/adapterModern.js +0 -26
  184. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +0 -42
  185. package/dist/esm-node/builder/builder-webpack/index.js +0 -20
  186. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +0 -44
  187. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +0 -60
  188. package/dist/esm-node/builder/generator/index.js +0 -37
  189. package/dist/esm-node/builder/index.js +0 -11
  190. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +0 -48
  191. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +0 -60
  192. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +0 -156
  193. package/dist/esm-node/builder/shared/builderPlugins/adapterWorker.js +0 -27
  194. package/dist/esm-node/builder/shared/builderPlugins/index.js +0 -4
  195. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -30
  196. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -31
  197. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +0 -231
  198. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +0 -3
  199. package/dist/esm-node/builder/shared/createCopyInfo.js +0 -14
  200. package/dist/esm-node/builder/shared/index.js +0 -3
  201. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +0 -7
  202. package/dist/esm-node/builder/shared/types.js +0 -0
  203. package/dist/esm-node/commands/build.js +0 -55
  204. package/dist/esm-node/commands/deploy.js +0 -12
  205. package/dist/esm-node/commands/dev.js +0 -95
  206. package/dist/esm-node/commands/index.js +0 -92
  207. package/dist/esm-node/commands/inspect.js +0 -15
  208. package/dist/esm-node/commands/serve.js +0 -51
  209. package/dist/esm-node/config/default.js +0 -197
  210. package/dist/esm-node/config/index.js +0 -3
  211. package/dist/esm-node/config/initialize/index.js +0 -9
  212. package/dist/esm-node/config/initialize/inits.js +0 -79
  213. package/dist/esm-node/config/legacy/createHtmlConfig.js +0 -21
  214. package/dist/esm-node/config/legacy/createOutputConfig.js +0 -45
  215. package/dist/esm-node/config/legacy/createSourceConfig.js +0 -29
  216. package/dist/esm-node/config/legacy/createToolsConfig.js +0 -28
  217. package/dist/esm-node/config/legacy/index.js +0 -43
  218. package/dist/esm-node/defineConfig.js +0 -13
  219. package/dist/esm-node/exports/server.js +0 -4
  220. package/dist/esm-node/hooks.js +0 -34
  221. package/dist/esm-node/index.js +0 -124
  222. package/dist/esm-node/locale/en.js +0 -43
  223. package/dist/esm-node/locale/index.js +0 -12
  224. package/dist/esm-node/locale/zh.js +0 -43
  225. package/dist/esm-node/plugins/analyze/constants.js +0 -14
  226. package/dist/esm-node/plugins/analyze/getBundleEntry.js +0 -61
  227. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +0 -100
  228. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +0 -74
  229. package/dist/esm-node/plugins/analyze/getServerRoutes.js +0 -132
  230. package/dist/esm-node/plugins/analyze/index.js +0 -166
  231. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +0 -47
  232. package/dist/esm-node/plugins/analyze/templates.js +0 -24
  233. package/dist/esm-node/plugins/analyze/utils.js +0 -68
  234. package/dist/esm-node/plugins/deploy/dependencies/index.js +0 -201
  235. package/dist/esm-node/plugins/deploy/dependencies/utils.js +0 -126
  236. package/dist/esm-node/plugins/deploy/exports.js +0 -4
  237. package/dist/esm-node/plugins/deploy/index.js +0 -44
  238. package/dist/esm-node/plugins/deploy/platforms/netlify.js +0 -108
  239. package/dist/esm-node/plugins/deploy/platforms/netlifyEntry.js +0 -69
  240. package/dist/esm-node/plugins/deploy/platforms/node.js +0 -63
  241. package/dist/esm-node/plugins/deploy/platforms/nodeEntry.js +0 -44
  242. package/dist/esm-node/plugins/deploy/platforms/platform.js +0 -0
  243. package/dist/esm-node/plugins/deploy/platforms/vercel.js +0 -120
  244. package/dist/esm-node/plugins/deploy/platforms/vercelEntry.js +0 -69
  245. package/dist/esm-node/plugins/deploy/utils.js +0 -44
  246. package/dist/esm-node/plugins/initialize/index.js +0 -84
  247. package/dist/esm-node/plugins/serverBuild.js +0 -58
  248. package/dist/esm-node/types/config/deploy.js +0 -0
  249. package/dist/esm-node/types/config/dev.js +0 -0
  250. package/dist/esm-node/types/config/experiments.js +0 -0
  251. package/dist/esm-node/types/config/html.js +0 -0
  252. package/dist/esm-node/types/config/index.js +0 -1
  253. package/dist/esm-node/types/config/output.js +0 -0
  254. package/dist/esm-node/types/config/performance.js +0 -0
  255. package/dist/esm-node/types/config/security.js +0 -0
  256. package/dist/esm-node/types/config/source.js +0 -0
  257. package/dist/esm-node/types/config/testing.js +0 -0
  258. package/dist/esm-node/types/config/tools.js +0 -0
  259. package/dist/esm-node/types/hooks.js +0 -0
  260. package/dist/esm-node/types/index.js +0 -3
  261. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  262. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  263. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  264. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  265. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  266. package/dist/esm-node/types/legacyConfig/testing.js +0 -0
  267. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  268. package/dist/esm-node/types/utils.js +0 -0
  269. package/dist/esm-node/utils/config.js +0 -49
  270. package/dist/esm-node/utils/createServer.js +0 -26
  271. package/dist/esm-node/utils/env.js +0 -16
  272. package/dist/esm-node/utils/generateWatchFiles.js +0 -30
  273. package/dist/esm-node/utils/getSelectedEntries.js +0 -34
  274. package/dist/esm-node/utils/loadPlugins.js +0 -22
  275. package/dist/esm-node/utils/printInstructions.js +0 -11
  276. package/dist/esm-node/utils/register.js +0 -69
  277. package/dist/esm-node/utils/restart.js +0 -22
  278. package/dist/esm-node/utils/routes.js +0 -21
  279. package/dist/esm-node/utils/types.js +0 -0
  280. package/dist/types/plugins/deploy/platforms/netlifyEntry.d.ts +0 -2
  281. package/dist/types/plugins/deploy/platforms/vercelEntry.d.ts +0 -2
  282. /package/dist/cjs/plugins/deploy/platforms/{nodeEntry.js → node-entry.js} +0 -0
  283. /package/dist/types/plugins/deploy/platforms/{nodeEntry.d.ts → node-entry.d.ts} +0 -0
@@ -1,132 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, removeTailSlash, SERVER_WORKER_BUNDLE_DIRECTORY } from "@modern-js/utils";
4
- import { isMainEntry } from "../../utils/routes";
5
- import { walkDirectory } from "./utils";
6
- const applyBaseUrl = (baseUrl, routes) => {
7
- if (baseUrl) {
8
- if (Array.isArray(baseUrl)) {
9
- return baseUrl.reduce((previous, current) => [
10
- ...previous,
11
- ...applyBaseUrl(current, routes)
12
- ], []);
13
- } else {
14
- return routes.map((route) => {
15
- const urlPath = urlJoin(baseUrl, route.urlPath);
16
- return {
17
- ...route,
18
- urlPath: urlPath === "/" ? urlPath : removeTailSlash(urlPath)
19
- };
20
- });
21
- }
22
- }
23
- return routes;
24
- };
25
- const applyRouteOptions = (original, routeOptions) => {
26
- const { route, disableSpa } = routeOptions;
27
- original.isSPA = !disableSpa;
28
- !original.isSPA && (original.entryPath = path.dirname(original.entryPath));
29
- let routes;
30
- if (route) {
31
- if (Array.isArray(route)) {
32
- routes = route.map((url) => {
33
- if (isPlainObject(url)) {
34
- const { path: urlPath, ...other } = url;
35
- return {
36
- ...original,
37
- ...other,
38
- urlPath
39
- };
40
- } else {
41
- return {
42
- ...original,
43
- urlPath: url
44
- };
45
- }
46
- });
47
- } else if (isPlainObject(route)) {
48
- const { path: urlPath, ...other } = route;
49
- routes = [
50
- {
51
- ...original,
52
- ...other,
53
- urlPath
54
- }
55
- ];
56
- } else {
57
- routes = [
58
- {
59
- ...original,
60
- urlPath: route
61
- }
62
- ];
63
- }
64
- } else {
65
- routes = [
66
- original
67
- ];
68
- }
69
- return routes;
70
- };
71
- const collectHtmlRoutes = (entrypoints, appContext, config) => {
72
- var _deploy_worker;
73
- const { source: { mainEntryName }, html: { disableHtmlFolder }, output: { distPath: { html: htmlPath } = {} }, server: { baseUrl, routes, ssr, ssrByEntries }, deploy } = config;
74
- const { packageName } = appContext;
75
- const workerSSR = deploy === null || deploy === void 0 ? void 0 : (_deploy_worker = deploy.worker) === null || _deploy_worker === void 0 ? void 0 : _deploy_worker.ssr;
76
- let htmlRoutes = entrypoints.reduce((previous, { entryName }) => {
77
- const isMain = isMainEntry(entryName, mainEntryName);
78
- const entryOptions = getEntryOptions(entryName, isMain, ssr, ssrByEntries, packageName);
79
- const isSSR = Boolean(entryOptions);
80
- const isWorker = Boolean(workerSSR);
81
- const isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
82
- const { resHeaders } = (routes === null || routes === void 0 ? void 0 : routes[entryName]) || {};
83
- let route = {
84
- urlPath: `/${isMain ? "" : entryName}`,
85
- entryName,
86
- entryPath: removeLeadingSlash(path.posix.normalize(`${htmlPath}/${entryName}${disableHtmlFolder ? ".html" : "/index.html"}`)),
87
- isSPA: true,
88
- isStream,
89
- isSSR,
90
- responseHeaders: resHeaders,
91
- worker: isWorker ? `${SERVER_WORKER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0,
92
- bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
93
- };
94
- if (routes === null || routes === void 0 ? void 0 : routes.hasOwnProperty(entryName)) {
95
- const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : {
96
- route: routes[entryName]
97
- };
98
- route = applyRouteOptions(route, routeOptions);
99
- }
100
- return Array.isArray(route) ? [
101
- ...previous,
102
- ...route
103
- ] : [
104
- ...previous,
105
- route
106
- ];
107
- }, []);
108
- htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
109
- return htmlRoutes;
110
- };
111
- const collectStaticRoutes = (appContext, config) => {
112
- const { appDirectory } = appContext;
113
- const { source: { configDir }, server: { publicRoutes = {} } } = config;
114
- const publicFolder = path.resolve(appDirectory, configDir || "", "public");
115
- return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map((filePath) => {
116
- const urlPath = `${urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length))}`;
117
- return {
118
- urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
119
- isSPA: true,
120
- isSSR: false,
121
- entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ""), filePath))
122
- };
123
- }) : [];
124
- };
125
- const getServerRoutes = (entrypoints, { appContext, config }) => [
126
- ...collectHtmlRoutes(entrypoints, appContext, config),
127
- ...collectStaticRoutes(appContext, config)
128
- ];
129
- const toPosix = (pathStr) => pathStr.split(path.sep).join(path.posix.sep);
130
- export {
131
- getServerRoutes
132
- };
@@ -1,166 +0,0 @@
1
- import * as path from "path";
2
- import { createDebugger, fs, isApiOnly, minimist, isDevCommand, getArgv } from "@modern-js/utils";
3
- import { printInstructions } from "../../utils/printInstructions";
4
- import { generateRoutes } from "../../utils/routes";
5
- import { emitResolvedConfig } from "../../utils/config";
6
- import { getSelectedEntries } from "../../utils/getSelectedEntries";
7
- import { initialNormalizedConfig } from "../../config";
8
- import { createBuilderGenerator } from "../../builder";
9
- import { checkIsBuildCommands } from "./utils";
10
- const debug = createDebugger("plugin-analyze");
11
- var analyze_default = ({ bundler }) => ({
12
- name: "@modern-js/plugin-analyze",
13
- post: [
14
- "@modern-js/runtime"
15
- ],
16
- setup: (api) => {
17
- let pagesDir = [];
18
- let nestedRouteEntries = [];
19
- return {
20
- async prepare() {
21
- var _resolvedConfig_source;
22
- let appContext = api.useAppContext();
23
- const resolvedConfig = api.useResolvedConfigContext();
24
- const hookRunners = api.useHookRunners();
25
- try {
26
- if (checkIsBuildCommands()) {
27
- fs.emptydirSync(appContext.internalDirectory);
28
- }
29
- } catch {
30
- }
31
- const apiOnly = await isApiOnly(appContext.appDirectory, (_resolvedConfig_source = resolvedConfig.source) === null || _resolvedConfig_source === void 0 ? void 0 : _resolvedConfig_source.entriesDir, appContext.apiDirectory);
32
- await hookRunners.addRuntimeExports();
33
- if (apiOnly) {
34
- const { routes: routes2 } = await hookRunners.modifyServerRoutes({
35
- routes: []
36
- });
37
- debug(`server routes: %o`, routes2);
38
- appContext = {
39
- ...api.useAppContext(),
40
- apiOnly,
41
- serverRoutes: routes2
42
- };
43
- api.setAppContext(appContext);
44
- return;
45
- }
46
- const [{ getBundleEntry }, { getServerRoutes }, { getHtmlTemplate }] = await Promise.all([
47
- import("./getBundleEntry"),
48
- import("./getServerRoutes"),
49
- import("./getHtmlTemplate")
50
- ]);
51
- const { entrypoints } = await hookRunners.modifyEntrypoints({
52
- entrypoints: await getBundleEntry(hookRunners, appContext, resolvedConfig)
53
- });
54
- debug(`entrypoints: %o`, entrypoints);
55
- const initialRoutes = getServerRoutes(entrypoints, {
56
- appContext,
57
- config: resolvedConfig
58
- });
59
- const { routes } = await hookRunners.modifyServerRoutes({
60
- routes: initialRoutes
61
- });
62
- debug(`server routes: %o`, routes);
63
- appContext = {
64
- ...api.useAppContext(),
65
- entrypoints,
66
- serverRoutes: routes
67
- };
68
- api.setAppContext(appContext);
69
- nestedRouteEntries = entrypoints.map((point) => point.nestedRoutesEntry).filter(Boolean);
70
- pagesDir = entrypoints.map((point) => point.entry).filter((entry) => entry && !path.extname(entry)).concat(nestedRouteEntries);
71
- const htmlTemplates = await getHtmlTemplate(entrypoints, api, {
72
- appContext,
73
- config: resolvedConfig
74
- });
75
- debug(`html templates: %o`, htmlTemplates);
76
- await hookRunners.addDefineTypes();
77
- debug(`add Define Types`);
78
- let checkedEntries = entrypoints.map((point) => point.entryName);
79
- if (isDevCommand()) {
80
- const { entry } = minimist(getArgv());
81
- checkedEntries = await getSelectedEntries(typeof entry === "string" ? entry.split(",") : entry, entrypoints);
82
- }
83
- appContext = {
84
- ...api.useAppContext(),
85
- entrypoints,
86
- checkedEntries,
87
- apiOnly,
88
- serverRoutes: routes,
89
- htmlTemplates
90
- };
91
- api.setAppContext(appContext);
92
- if (checkIsBuildCommands()) {
93
- await hookRunners.generateEntryCode({
94
- entrypoints
95
- });
96
- const normalizedConfig = api.useResolvedConfigContext();
97
- const createBuilderForModern = await createBuilderGenerator(bundler);
98
- const builder = await createBuilderForModern({
99
- normalizedConfig,
100
- appContext
101
- });
102
- builder.onBeforeBuild(async ({ bundlerConfigs, isFirstCompile }) => {
103
- if (!isFirstCompile) {
104
- return;
105
- }
106
- const hookRunners2 = api.useHookRunners();
107
- await generateRoutes(appContext);
108
- await hookRunners2.beforeBuild({
109
- bundlerConfigs
110
- });
111
- });
112
- builder.onAfterBuild(async ({ stats }) => {
113
- const hookRunners2 = api.useHookRunners();
114
- await hookRunners2.afterBuild({
115
- stats
116
- });
117
- await emitResolvedConfig(appContext.appDirectory, normalizedConfig);
118
- });
119
- builder.onDevCompileDone(async ({ isFirstCompile }) => {
120
- const hookRunners2 = api.useHookRunners();
121
- hookRunners2.afterDev({
122
- isFirstCompile
123
- });
124
- if (isFirstCompile) {
125
- printInstructions(hookRunners2, appContext, normalizedConfig);
126
- }
127
- });
128
- builder.onBeforeCreateCompiler(async ({ bundlerConfigs }) => {
129
- const hookRunners2 = api.useHookRunners();
130
- await hookRunners2.beforeCreateCompiler({
131
- bundlerConfigs
132
- });
133
- });
134
- builder.onAfterCreateCompiler(async ({ compiler }) => {
135
- const hookRunners2 = api.useHookRunners();
136
- await hookRunners2.afterCreateCompiler({
137
- compiler
138
- });
139
- });
140
- builder.addPlugins(resolvedConfig.builderPlugins);
141
- appContext = {
142
- ...api.useAppContext(),
143
- builder
144
- };
145
- api.setAppContext(appContext);
146
- }
147
- },
148
- watchFiles() {
149
- return {
150
- files: pagesDir,
151
- isPrivate: true
152
- };
153
- },
154
- resolvedConfig({ resolved }) {
155
- const appContext = api.useAppContext();
156
- const config = initialNormalizedConfig(resolved, appContext, bundler);
157
- return {
158
- resolved: config
159
- };
160
- }
161
- };
162
- }
163
- });
164
- export {
165
- analyze_default as default
166
- };
@@ -1,47 +0,0 @@
1
- import fs from "fs";
2
- import { parse } from "@babel/parser";
3
- import traverse from "@babel/traverse";
4
- import * as t from "@babel/types";
5
- const isFunction = (node) => t.isFunctionDeclaration(node) || t.isFunctionExpression(node) || t.isArrowFunctionExpression(node);
6
- const isDefaultExportFunction = (file) => {
7
- if (!file || !fs.existsSync(file)) {
8
- return false;
9
- }
10
- const ast = parse(fs.readFileSync(file, "utf8"), {
11
- sourceType: "unambiguous",
12
- plugins: [
13
- "jsx",
14
- "typescript",
15
- "classProperties",
16
- "dynamicImport",
17
- "exportDefaultFrom",
18
- "exportNamespaceFrom",
19
- "decorators-legacy",
20
- "functionBind",
21
- "classPrivateMethods",
22
- [
23
- "pipelineOperator",
24
- {
25
- proposal: "minimal"
26
- }
27
- ],
28
- "optionalChaining",
29
- "optionalCatchBinding",
30
- "objectRestSpread",
31
- "numericSeparator"
32
- ]
33
- });
34
- let isExportFunction = false;
35
- traverse(ast, {
36
- ExportDefaultDeclaration: (path) => {
37
- const { declaration } = path.node;
38
- if (isFunction(declaration)) {
39
- isExportFunction = true;
40
- }
41
- }
42
- });
43
- return isExportFunction;
44
- };
45
- export {
46
- isDefaultExportFunction
47
- };
@@ -1,24 +0,0 @@
1
- const html = (partials) => `
2
- <!DOCTYPE html>
3
- <html>
4
- <head>
5
-
6
- ${partials.top.join("\n")}
7
-
8
- ${partials.head.join("\n")}
9
-
10
- </head>
11
-
12
- <body>
13
- <div id="<%= mountId %>"><!--<?- html ?>--></div>
14
- ${partials.body.join("\n")}
15
- <!--<?- chunksMap.js ?>-->
16
- <!--<?- SSRDataScript ?>-->
17
- <!--<?- bottomTemplate ?>-->
18
- </body>
19
-
20
- </html>
21
- `;
22
- export {
23
- html
24
- };
@@ -1,68 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { normalizeToPosixPath, getCommand, JS_EXTENSIONS } from "@modern-js/utils";
4
- import { transform } from "esbuild";
5
- import { parse } from "es-module-lexer";
6
- const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
7
- const filePath = path.join(dir, filename);
8
- if (fs.statSync(filePath).isDirectory()) {
9
- return [
10
- ...previous,
11
- ...walkDirectory(filePath)
12
- ];
13
- } else {
14
- return [
15
- ...previous,
16
- filePath
17
- ];
18
- }
19
- }, []);
20
- const replaceWithAlias = (base, filePath, alias) => {
21
- if (filePath.includes(base)) {
22
- return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
23
- } else {
24
- return filePath;
25
- }
26
- };
27
- const parseModule = async ({ source, filename }) => {
28
- let content = source;
29
- if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
30
- const result = await transform(content, {
31
- loader: path.extname(filename).slice(1),
32
- format: "esm"
33
- });
34
- content = result.code;
35
- }
36
- return await parse(content);
37
- };
38
- const getServerCombinedModueFile = (internalDirectory, entryName) => {
39
- return path.join(internalDirectory, entryName, "server-loader-combined.js");
40
- };
41
- const checkIsBuildCommands = () => {
42
- const buildCommands = [
43
- "dev",
44
- "start",
45
- "build",
46
- "inspect",
47
- "deploy",
48
- "dev-worker"
49
- ];
50
- const command = getCommand();
51
- return buildCommands.includes(command);
52
- };
53
- const isSubDirOrEqual = (parent, child) => {
54
- if (parent === child) {
55
- return true;
56
- }
57
- const relative = path.relative(parent, child);
58
- const isSubdir = relative && !relative.startsWith("..") && !path.isAbsolute(relative);
59
- return Boolean(isSubdir);
60
- };
61
- export {
62
- checkIsBuildCommands,
63
- getServerCombinedModueFile,
64
- isSubDirOrEqual,
65
- parseModule,
66
- replaceWithAlias,
67
- walkDirectory
68
- };
@@ -1,201 +0,0 @@
1
- import path from "node:path";
2
- import { fs as fse, pkgUp, semver } from "@modern-js/utils";
3
- import { readPackageJSON } from "pkg-types";
4
- import { parseNodeModulePath } from "mlly";
5
- import { linkPackage, writePackage, isFile, findEntryFiles, traceFiles as defaultTraceFiles, findPackageParents, resolveTracedPath, readDirRecursive, isSubPath } from "./utils";
6
- import { nodeFileTrace } from "@vercel/nft";
7
- const handleDependencies = async ({ appDir, serverRootDir, includeEntries, traceFiles = defaultTraceFiles, entryFilter, modifyPackageJson, copyWholePackage, traceOptions }) => {
8
- const base = "/";
9
- const entryFiles = await findEntryFiles(serverRootDir, entryFilter);
10
- const fileTrace = await traceFiles({
11
- entryFiles: entryFiles.concat(includeEntries),
12
- serverRootDir,
13
- base,
14
- traceOptions
15
- });
16
- const currentProjectModules = path.join(appDir, "node_modules");
17
- const dependencySearchRoot = path.resolve(appDir, "../../../../../../");
18
- const tracedFiles = Object.fromEntries(await Promise.all([
19
- ...fileTrace.reasons.entries()
20
- ].map(async ([_path, reasons]) => {
21
- if (reasons.ignored) {
22
- return;
23
- }
24
- const filePath = await resolveTracedPath(base, _path);
25
- if (isSubPath(serverRootDir, filePath) || isSubPath(appDir, filePath) && !isSubPath(currentProjectModules, filePath)) {
26
- return;
27
- }
28
- if (!await isFile(filePath)) {
29
- return;
30
- }
31
- let baseDir;
32
- let pkgName;
33
- let subpath;
34
- let pkgPath;
35
- if (filePath.includes("node_modules")) {
36
- const parsed = parseNodeModulePath(filePath);
37
- baseDir = parsed.dir;
38
- pkgName = parsed.name;
39
- subpath = parsed.subpath;
40
- pkgPath = path.join(baseDir, pkgName);
41
- } else {
42
- const MODERN_UTILS_PATH = "packages/toolkit/utils";
43
- const MODERN_UTILS_PATH_REGEX = new RegExp(`(.*${MODERN_UTILS_PATH})`);
44
- const match = filePath.match(MODERN_UTILS_PATH_REGEX);
45
- const packageJsonPath = match ? path.join(match[0], "package.json") : await pkgUp({
46
- cwd: path.dirname(filePath)
47
- });
48
- if (packageJsonPath && isSubPath(dependencySearchRoot, packageJsonPath)) {
49
- const packageJson = await fse.readJSON(packageJsonPath);
50
- pkgPath = baseDir = path.dirname(packageJsonPath);
51
- subpath = path.relative(baseDir, filePath);
52
- pkgName = packageJson.name;
53
- }
54
- }
55
- if (!baseDir) {
56
- return;
57
- }
58
- const parents = await Promise.all([
59
- ...reasons.parents
60
- ].map((p) => resolveTracedPath(base, p)));
61
- const tracedFile = {
62
- path: filePath,
63
- parents,
64
- isDirectDep: parents.some((parent) => {
65
- return isSubPath(appDir, parent) && !isSubPath(currentProjectModules, parent);
66
- }),
67
- subpath,
68
- pkgName,
69
- pkgPath
70
- };
71
- return [
72
- filePath,
73
- tracedFile
74
- ];
75
- })).then((r) => r.filter(Boolean)));
76
- const tracedPackages = {};
77
- for (const tracedFile of Object.values(tracedFiles)) {
78
- const { pkgName } = tracedFile;
79
- let tracedPackage = tracedPackages[pkgName];
80
- let pkgJSON = await readPackageJSON(tracedFile.pkgPath, {
81
- cache: true
82
- }).catch(() => {
83
- });
84
- if (!pkgJSON) {
85
- pkgJSON = {
86
- name: pkgName,
87
- version: "0.0.0"
88
- };
89
- }
90
- if (!tracedPackage) {
91
- tracedPackage = {
92
- name: pkgName,
93
- versions: {}
94
- };
95
- tracedPackages[pkgName] = tracedPackage;
96
- }
97
- let tracedPackageVersion = tracedPackage.versions[pkgJSON.version];
98
- if (!tracedPackageVersion) {
99
- tracedPackageVersion = {
100
- path: tracedFile.pkgPath,
101
- files: [],
102
- isDirectDep: false,
103
- pkgJSON
104
- };
105
- if (tracedFile.isDirectDep) {
106
- tracedPackageVersion.isDirectDep = tracedFile.isDirectDep;
107
- }
108
- tracedPackage.versions[pkgJSON.version] = tracedPackageVersion;
109
- }
110
- tracedFile.pkgName = pkgName;
111
- tracedFile.pkgVersion = pkgJSON.version;
112
- const shouldCopyWholePackage = copyWholePackage === null || copyWholePackage === void 0 ? void 0 : copyWholePackage(pkgName);
113
- if (tracedFile.path.startsWith(tracedFile.pkgPath) && // Merged package files are based on the version, not on paths, to handle some boundary cases
114
- tracedPackageVersion.pkgJSON.version === tracedFile.pkgVersion) {
115
- if (shouldCopyWholePackage) {
116
- const allFiles = await readDirRecursive(tracedFile.pkgPath);
117
- tracedPackageVersion.files.push(...allFiles);
118
- } else {
119
- tracedPackageVersion.files.push(tracedFile.path);
120
- }
121
- }
122
- }
123
- const multiVersionPkgs = {};
124
- const singleVersionPackages = [];
125
- for (const tracedPackage of Object.values(tracedPackages)) {
126
- const versions = Object.keys(tracedPackage.versions);
127
- if (versions.length === 1) {
128
- singleVersionPackages.push(tracedPackage.name);
129
- continue;
130
- }
131
- multiVersionPkgs[tracedPackage.name] = {};
132
- for (const version of versions) {
133
- multiVersionPkgs[tracedPackage.name][version] = findPackageParents(tracedPackage, version, tracedFiles);
134
- }
135
- }
136
- await Promise.all(singleVersionPackages.map((pkgName) => {
137
- const pkg = tracedPackages[pkgName];
138
- const version = Object.keys(pkg.versions)[0];
139
- return writePackage({
140
- pkg,
141
- version,
142
- projectDir: serverRootDir
143
- });
144
- }));
145
- const projectPkgJson = await readPackageJSON(serverRootDir).catch(() => ({}));
146
- for (const [pkgName, pkgVersions] of Object.entries(multiVersionPkgs)) {
147
- const versionEntires = Object.entries(pkgVersions).sort(([v1, p1], [v2, p2]) => {
148
- var _tracedPackages_pkgName_versions_v1, _tracedPackages_pkgName_versions, _tracedPackages_pkgName, _tracedPackages_pkgName_versions_v2, _tracedPackages_pkgName_versions1, _tracedPackages_pkgName1;
149
- const shouldHoist1 = (_tracedPackages_pkgName = tracedPackages[pkgName]) === null || _tracedPackages_pkgName === void 0 ? void 0 : (_tracedPackages_pkgName_versions = _tracedPackages_pkgName.versions) === null || _tracedPackages_pkgName_versions === void 0 ? void 0 : (_tracedPackages_pkgName_versions_v1 = _tracedPackages_pkgName_versions[v1]) === null || _tracedPackages_pkgName_versions_v1 === void 0 ? void 0 : _tracedPackages_pkgName_versions_v1.isDirectDep;
150
- const shouldHoist2 = (_tracedPackages_pkgName1 = tracedPackages[pkgName]) === null || _tracedPackages_pkgName1 === void 0 ? void 0 : (_tracedPackages_pkgName_versions1 = _tracedPackages_pkgName1.versions) === null || _tracedPackages_pkgName_versions1 === void 0 ? void 0 : (_tracedPackages_pkgName_versions_v2 = _tracedPackages_pkgName_versions1[v2]) === null || _tracedPackages_pkgName_versions_v2 === void 0 ? void 0 : _tracedPackages_pkgName_versions_v2.isDirectDep;
151
- if (shouldHoist1 && !shouldHoist2) {
152
- return -1;
153
- }
154
- if (!shouldHoist1 && shouldHoist2) {
155
- return 1;
156
- }
157
- if (p1.length === 0) {
158
- return -1;
159
- }
160
- if (p2.length === 0) {
161
- return 1;
162
- }
163
- return semver.lt(v1, v2, {
164
- loose: true
165
- }) ? 1 : -1;
166
- });
167
- for (const [version, parentPkgs] of versionEntires) {
168
- const pkg = tracedPackages[pkgName];
169
- const pkgDestPath = `.modernjs/${pkgName}@${version}/node_modules/${pkgName}`;
170
- await writePackage({
171
- pkg,
172
- version,
173
- projectDir: serverRootDir,
174
- _pkgPath: pkgDestPath
175
- });
176
- await linkPackage(pkgDestPath, `${pkgName}`, serverRootDir);
177
- for (const parentPkg of parentPkgs) {
178
- const parentPkgName = parentPkg.replace(/@[^@]+$/, "");
179
- await (multiVersionPkgs[parentPkgName] ? linkPackage(pkgDestPath, `.modernjs/${parentPkg}/node_modules/${pkgName}`, serverRootDir) : linkPackage(pkgDestPath, `${parentPkgName}/node_modules/${pkgName}`, serverRootDir));
180
- }
181
- }
182
- }
183
- const outputPkgPath = path.join(serverRootDir, "package.json");
184
- const newPkgJson = {
185
- name: `${projectPkgJson.name || "modernjs-project"}-prod`,
186
- version: projectPkgJson.version || "0.0.0",
187
- private: true,
188
- dependencies: Object.fromEntries([
189
- ...Object.values(tracedPackages).map((pkg) => [
190
- pkg.name,
191
- Object.keys(pkg.versions)[0]
192
- ])
193
- ].sort(([a], [b]) => a.localeCompare(b)))
194
- };
195
- const finalPkgJson = (modifyPackageJson === null || modifyPackageJson === void 0 ? void 0 : modifyPackageJson(newPkgJson)) || newPkgJson;
196
- await fse.writeJSON(outputPkgPath, finalPkgJson);
197
- };
198
- export {
199
- handleDependencies,
200
- nodeFileTrace
201
- };