@modern-js/app-tools 2.58.1 → 2.58.3

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 (309) hide show
  1. package/dist/cjs/builder/builder-rspack/adapterCopy.js +1 -1
  2. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +0 -1
  3. package/dist/cjs/builder/builder-webpack/index.js +1 -1
  4. package/dist/cjs/builder/generator/getBuilderEnvironments.js +1 -1
  5. package/dist/cjs/builder/generator/index.js +2 -2
  6. package/dist/cjs/builder/index.js +2 -2
  7. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +8 -13
  8. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +2 -5
  9. package/dist/cjs/commands/build.js +21 -2
  10. package/dist/cjs/commands/dev.js +15 -5
  11. package/dist/cjs/commands/index.js +9 -9
  12. package/dist/cjs/commands/serve.js +4 -3
  13. package/dist/cjs/config/initialize/inits.js +4 -4
  14. package/dist/cjs/config/legacy/index.js +3 -3
  15. package/dist/cjs/esm/esbuild-loader.mjs +20 -0
  16. package/dist/cjs/esm/register-esm.mjs +66 -0
  17. package/dist/cjs/esm/ts-node-loader.mjs +21 -0
  18. package/dist/cjs/esm/utils.mjs +43 -0
  19. package/dist/cjs/index.js +8 -8
  20. package/dist/cjs/locale/index.js +1 -1
  21. package/dist/cjs/plugins/analyze/getServerRoutes.js +2 -2
  22. package/dist/cjs/plugins/analyze/index.js +9 -9
  23. package/dist/cjs/plugins/analyze/utils.js +1 -1
  24. package/dist/cjs/plugins/deploy/dependencies/index.js +2 -1
  25. package/dist/cjs/plugins/deploy/dependencies/utils.js +13 -2
  26. package/dist/cjs/plugins/deploy/index.js +2 -2
  27. package/dist/cjs/plugins/deploy/platforms/netlify-entry.js +3 -0
  28. package/dist/cjs/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  29. package/dist/cjs/plugins/deploy/platforms/{netlifyEntry.js → netlify-handler.js} +6 -4
  30. package/dist/cjs/plugins/deploy/platforms/netlify.js +15 -6
  31. package/dist/cjs/plugins/deploy/platforms/node.js +14 -5
  32. package/dist/cjs/plugins/deploy/platforms/vercel-entry.js +3 -0
  33. package/dist/cjs/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  34. package/dist/cjs/plugins/deploy/platforms/{vercelEntry.js → vercel-handler.js} +4 -1
  35. package/dist/cjs/plugins/deploy/platforms/vercel.js +15 -6
  36. package/dist/cjs/plugins/serverBuild.js +2 -2
  37. package/dist/cjs/utils/config.js +1 -1
  38. package/dist/cjs/utils/createServer.js +1 -1
  39. package/dist/cjs/utils/loadPlugins.js +1 -1
  40. package/dist/cjs/utils/register.js +50 -23
  41. package/dist/types/builder/builder-rspack/adapterCopy.d.ts +2 -2
  42. package/dist/types/builder/builder-rspack/index.d.ts +1 -1
  43. package/dist/types/builder/builder-webpack/adapterModern.d.ts +2 -2
  44. package/dist/types/builder/builder-webpack/index.d.ts +1 -1
  45. package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +1 -1
  46. package/dist/types/builder/generator/index.d.ts +3 -3
  47. package/dist/types/builder/index.d.ts +1 -1
  48. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +1 -1
  49. package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +1 -1
  50. package/dist/types/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts +1 -1
  51. package/dist/types/builder/shared/bundlerPlugins/HtmlBottomTemplate.d.ts +1 -1
  52. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +1 -1
  53. package/dist/types/builder/shared/createCopyInfo.d.ts +1 -1
  54. package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +1 -1
  55. package/dist/types/builder/shared/types.d.ts +1 -1
  56. package/dist/types/commands/build.d.ts +2 -2
  57. package/dist/types/commands/dev.d.ts +3 -3
  58. package/dist/types/commands/index.d.ts +3 -3
  59. package/dist/types/commands/inspect.d.ts +1 -1
  60. package/dist/types/config/default.d.ts +1 -1
  61. package/dist/types/config/initialize/inits.d.ts +1 -1
  62. package/dist/types/config/legacy/createHtmlConfig.d.ts +1 -1
  63. package/dist/types/config/legacy/createOutputConfig.d.ts +1 -1
  64. package/dist/types/config/legacy/createSourceConfig.d.ts +1 -1
  65. package/dist/types/config/legacy/createToolsConfig.d.ts +1 -1
  66. package/dist/types/esm/esbuild-loader.d.mts +6 -0
  67. package/dist/types/esm/register-esm.d.mts +5 -0
  68. package/dist/types/esm/ts-node-loader.d.mts +6 -0
  69. package/dist/types/esm/utils.d.mts +6 -0
  70. package/dist/types/exports/server.d.ts +1 -1
  71. package/dist/types/hooks.d.ts +1 -1
  72. package/dist/types/index.d.ts +2 -2
  73. package/dist/types/plugins/analyze/getBundleEntry.d.ts +1 -1
  74. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +1 -1
  75. package/dist/types/plugins/analyze/index.d.ts +1 -1
  76. package/dist/types/plugins/deploy/dependencies/index.d.ts +1 -1
  77. package/dist/types/plugins/deploy/dependencies/utils.d.ts +1 -1
  78. package/dist/types/plugins/deploy/index.d.ts +2 -2
  79. package/dist/types/plugins/deploy/platforms/netlify-entry.d.cts +1 -0
  80. package/dist/types/plugins/deploy/platforms/netlify-entry.d.mts +1 -0
  81. package/dist/types/plugins/deploy/platforms/netlify-handler.d.cts +1 -0
  82. package/dist/types/plugins/deploy/platforms/netlify.d.ts +1 -1
  83. package/dist/types/plugins/deploy/platforms/node.d.ts +1 -1
  84. package/dist/types/plugins/deploy/platforms/platform.d.ts +2 -2
  85. package/dist/types/plugins/deploy/platforms/vercel-entry.d.mts +2 -0
  86. package/dist/types/plugins/deploy/platforms/vercel-entry.d.ts +2 -0
  87. package/dist/types/plugins/deploy/platforms/vercel-handler.d.cts +1 -0
  88. package/dist/types/plugins/deploy/platforms/vercel.d.ts +1 -1
  89. package/dist/types/plugins/deploy/utils.d.ts +1 -1
  90. package/dist/types/plugins/initialize/index.d.ts +1 -1
  91. package/dist/types/plugins/serverBuild.d.ts +1 -1
  92. package/dist/types/types/config/index.d.ts +8 -8
  93. package/dist/types/types/config/output.d.ts +1 -1
  94. package/dist/types/types/config/tools.d.ts +3 -3
  95. package/dist/types/types/hooks.d.ts +3 -3
  96. package/dist/types/types/index.d.ts +3 -3
  97. package/dist/types/types/legacyConfig/index.d.ts +3 -3
  98. package/dist/types/types/legacyConfig/tools.d.ts +1 -1
  99. package/dist/types/utils/createServer.d.ts +1 -1
  100. package/dist/types/utils/generateWatchFiles.d.ts +1 -1
  101. package/dist/types/utils/getSelectedEntries.d.ts +1 -1
  102. package/dist/types/utils/loadPlugins.d.ts +3 -3
  103. package/dist/types/utils/printInstructions.d.ts +1 -1
  104. package/dist/types/utils/register.d.ts +2 -2
  105. package/dist/types/utils/restart.d.ts +2 -2
  106. package/lib/types.d.ts +15 -0
  107. package/package.json +20 -20
  108. package/dist/esm/builder/builder-rspack/adapterCopy.js +0 -166
  109. package/dist/esm/builder/builder-rspack/index.js +0 -34
  110. package/dist/esm/builder/builder-webpack/adapterModern.js +0 -29
  111. package/dist/esm/builder/builder-webpack/createCopyPattern.js +0 -44
  112. package/dist/esm/builder/builder-webpack/index.js +0 -52
  113. package/dist/esm/builder/generator/createBuilderProviderConfig.js +0 -37
  114. package/dist/esm/builder/generator/getBuilderEnvironments.js +0 -81
  115. package/dist/esm/builder/generator/index.js +0 -94
  116. package/dist/esm/builder/index.js +0 -45
  117. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +0 -85
  118. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +0 -126
  119. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +0 -270
  120. package/dist/esm/builder/shared/builderPlugins/adapterWorker.js +0 -43
  121. package/dist/esm/builder/shared/builderPlugins/index.js +0 -4
  122. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -51
  123. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -37
  124. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +0 -317
  125. package/dist/esm/builder/shared/bundlerPlugins/index.js +0 -3
  126. package/dist/esm/builder/shared/createCopyInfo.js +0 -14
  127. package/dist/esm/builder/shared/index.js +0 -3
  128. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +0 -7
  129. package/dist/esm/builder/shared/types.js +0 -0
  130. package/dist/esm/commands/build.js +0 -117
  131. package/dist/esm/commands/deploy.js +0 -48
  132. package/dist/esm/commands/dev.js +0 -169
  133. package/dist/esm/commands/index.js +0 -411
  134. package/dist/esm/commands/inspect.js +0 -28
  135. package/dist/esm/commands/serve.js +0 -93
  136. package/dist/esm/config/default.js +0 -190
  137. package/dist/esm/config/index.js +0 -3
  138. package/dist/esm/config/initialize/index.js +0 -9
  139. package/dist/esm/config/initialize/inits.js +0 -85
  140. package/dist/esm/config/legacy/createHtmlConfig.js +0 -21
  141. package/dist/esm/config/legacy/createOutputConfig.js +0 -45
  142. package/dist/esm/config/legacy/createSourceConfig.js +0 -46
  143. package/dist/esm/config/legacy/createToolsConfig.js +0 -28
  144. package/dist/esm/config/legacy/index.js +0 -43
  145. package/dist/esm/defineConfig.js +0 -16
  146. package/dist/esm/exports/server.js +0 -4
  147. package/dist/esm/hooks.js +0 -34
  148. package/dist/esm/index.js +0 -239
  149. package/dist/esm/locale/en.js +0 -43
  150. package/dist/esm/locale/index.js +0 -12
  151. package/dist/esm/locale/zh.js +0 -43
  152. package/dist/esm/plugins/analyze/constants.js +0 -14
  153. package/dist/esm/plugins/analyze/getBundleEntry.js +0 -102
  154. package/dist/esm/plugins/analyze/getFileSystemEntry.js +0 -238
  155. package/dist/esm/plugins/analyze/getHtmlTemplate.js +0 -178
  156. package/dist/esm/plugins/analyze/getServerRoutes.js +0 -132
  157. package/dist/esm/plugins/analyze/index.js +0 -380
  158. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +0 -49
  159. package/dist/esm/plugins/analyze/templates.js +0 -6
  160. package/dist/esm/plugins/analyze/utils.js +0 -101
  161. package/dist/esm/plugins/deploy/dependencies/index.js +0 -614
  162. package/dist/esm/plugins/deploy/dependencies/utils.js +0 -394
  163. package/dist/esm/plugins/deploy/exports.js +0 -4
  164. package/dist/esm/plugins/deploy/index.js +0 -135
  165. package/dist/esm/plugins/deploy/platforms/netlify.js +0 -299
  166. package/dist/esm/plugins/deploy/platforms/netlifyEntry.js +0 -203
  167. package/dist/esm/plugins/deploy/platforms/node.js +0 -133
  168. package/dist/esm/plugins/deploy/platforms/nodeEntry.js +0 -108
  169. package/dist/esm/plugins/deploy/platforms/platform.js +0 -0
  170. package/dist/esm/plugins/deploy/platforms/vercel.js +0 -233
  171. package/dist/esm/plugins/deploy/platforms/vercelEntry.js +0 -203
  172. package/dist/esm/plugins/deploy/utils.js +0 -47
  173. package/dist/esm/plugins/initialize/index.js +0 -119
  174. package/dist/esm/plugins/serverBuild.js +0 -87
  175. package/dist/esm/types/config/deploy.js +0 -0
  176. package/dist/esm/types/config/dev.js +0 -0
  177. package/dist/esm/types/config/experiments.js +0 -0
  178. package/dist/esm/types/config/html.js +0 -0
  179. package/dist/esm/types/config/index.js +0 -1
  180. package/dist/esm/types/config/output.js +0 -0
  181. package/dist/esm/types/config/performance.js +0 -0
  182. package/dist/esm/types/config/security.js +0 -0
  183. package/dist/esm/types/config/source.js +0 -0
  184. package/dist/esm/types/config/testing.js +0 -0
  185. package/dist/esm/types/config/tools.js +0 -0
  186. package/dist/esm/types/hooks.js +0 -0
  187. package/dist/esm/types/index.js +0 -3
  188. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  189. package/dist/esm/types/legacyConfig/dev.js +0 -0
  190. package/dist/esm/types/legacyConfig/index.js +0 -0
  191. package/dist/esm/types/legacyConfig/output.js +0 -0
  192. package/dist/esm/types/legacyConfig/source.js +0 -0
  193. package/dist/esm/types/legacyConfig/testing.js +0 -0
  194. package/dist/esm/types/legacyConfig/tools.js +0 -0
  195. package/dist/esm/types/utils.js +0 -0
  196. package/dist/esm/utils/config.js +0 -122
  197. package/dist/esm/utils/createServer.js +0 -58
  198. package/dist/esm/utils/env.js +0 -16
  199. package/dist/esm/utils/generateWatchFiles.js +0 -71
  200. package/dist/esm/utils/getSelectedEntries.js +0 -67
  201. package/dist/esm/utils/loadPlugins.js +0 -69
  202. package/dist/esm/utils/printInstructions.js +0 -32
  203. package/dist/esm/utils/register.js +0 -129
  204. package/dist/esm/utils/restart.js +0 -67
  205. package/dist/esm/utils/routes.js +0 -42
  206. package/dist/esm/utils/types.js +0 -0
  207. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +0 -67
  208. package/dist/esm-node/builder/builder-rspack/index.js +0 -12
  209. package/dist/esm-node/builder/builder-webpack/adapterModern.js +0 -26
  210. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +0 -42
  211. package/dist/esm-node/builder/builder-webpack/index.js +0 -20
  212. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +0 -44
  213. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +0 -60
  214. package/dist/esm-node/builder/generator/index.js +0 -37
  215. package/dist/esm-node/builder/index.js +0 -11
  216. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +0 -48
  217. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +0 -60
  218. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +0 -156
  219. package/dist/esm-node/builder/shared/builderPlugins/adapterWorker.js +0 -27
  220. package/dist/esm-node/builder/shared/builderPlugins/index.js +0 -4
  221. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -30
  222. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -31
  223. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +0 -231
  224. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +0 -3
  225. package/dist/esm-node/builder/shared/createCopyInfo.js +0 -14
  226. package/dist/esm-node/builder/shared/index.js +0 -3
  227. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +0 -7
  228. package/dist/esm-node/builder/shared/types.js +0 -0
  229. package/dist/esm-node/commands/build.js +0 -55
  230. package/dist/esm-node/commands/deploy.js +0 -12
  231. package/dist/esm-node/commands/dev.js +0 -95
  232. package/dist/esm-node/commands/index.js +0 -92
  233. package/dist/esm-node/commands/inspect.js +0 -15
  234. package/dist/esm-node/commands/serve.js +0 -51
  235. package/dist/esm-node/config/default.js +0 -197
  236. package/dist/esm-node/config/index.js +0 -3
  237. package/dist/esm-node/config/initialize/index.js +0 -9
  238. package/dist/esm-node/config/initialize/inits.js +0 -79
  239. package/dist/esm-node/config/legacy/createHtmlConfig.js +0 -21
  240. package/dist/esm-node/config/legacy/createOutputConfig.js +0 -45
  241. package/dist/esm-node/config/legacy/createSourceConfig.js +0 -29
  242. package/dist/esm-node/config/legacy/createToolsConfig.js +0 -28
  243. package/dist/esm-node/config/legacy/index.js +0 -43
  244. package/dist/esm-node/defineConfig.js +0 -13
  245. package/dist/esm-node/exports/server.js +0 -4
  246. package/dist/esm-node/hooks.js +0 -34
  247. package/dist/esm-node/index.js +0 -124
  248. package/dist/esm-node/locale/en.js +0 -43
  249. package/dist/esm-node/locale/index.js +0 -12
  250. package/dist/esm-node/locale/zh.js +0 -43
  251. package/dist/esm-node/plugins/analyze/constants.js +0 -14
  252. package/dist/esm-node/plugins/analyze/getBundleEntry.js +0 -61
  253. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +0 -100
  254. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +0 -74
  255. package/dist/esm-node/plugins/analyze/getServerRoutes.js +0 -132
  256. package/dist/esm-node/plugins/analyze/index.js +0 -166
  257. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +0 -47
  258. package/dist/esm-node/plugins/analyze/templates.js +0 -24
  259. package/dist/esm-node/plugins/analyze/utils.js +0 -68
  260. package/dist/esm-node/plugins/deploy/dependencies/index.js +0 -201
  261. package/dist/esm-node/plugins/deploy/dependencies/utils.js +0 -126
  262. package/dist/esm-node/plugins/deploy/exports.js +0 -4
  263. package/dist/esm-node/plugins/deploy/index.js +0 -44
  264. package/dist/esm-node/plugins/deploy/platforms/netlify.js +0 -108
  265. package/dist/esm-node/plugins/deploy/platforms/netlifyEntry.js +0 -69
  266. package/dist/esm-node/plugins/deploy/platforms/node.js +0 -63
  267. package/dist/esm-node/plugins/deploy/platforms/nodeEntry.js +0 -44
  268. package/dist/esm-node/plugins/deploy/platforms/platform.js +0 -0
  269. package/dist/esm-node/plugins/deploy/platforms/vercel.js +0 -120
  270. package/dist/esm-node/plugins/deploy/platforms/vercelEntry.js +0 -69
  271. package/dist/esm-node/plugins/deploy/utils.js +0 -44
  272. package/dist/esm-node/plugins/initialize/index.js +0 -84
  273. package/dist/esm-node/plugins/serverBuild.js +0 -58
  274. package/dist/esm-node/types/config/deploy.js +0 -0
  275. package/dist/esm-node/types/config/dev.js +0 -0
  276. package/dist/esm-node/types/config/experiments.js +0 -0
  277. package/dist/esm-node/types/config/html.js +0 -0
  278. package/dist/esm-node/types/config/index.js +0 -1
  279. package/dist/esm-node/types/config/output.js +0 -0
  280. package/dist/esm-node/types/config/performance.js +0 -0
  281. package/dist/esm-node/types/config/security.js +0 -0
  282. package/dist/esm-node/types/config/source.js +0 -0
  283. package/dist/esm-node/types/config/testing.js +0 -0
  284. package/dist/esm-node/types/config/tools.js +0 -0
  285. package/dist/esm-node/types/hooks.js +0 -0
  286. package/dist/esm-node/types/index.js +0 -3
  287. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  288. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  289. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  290. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  291. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  292. package/dist/esm-node/types/legacyConfig/testing.js +0 -0
  293. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  294. package/dist/esm-node/types/utils.js +0 -0
  295. package/dist/esm-node/utils/config.js +0 -49
  296. package/dist/esm-node/utils/createServer.js +0 -26
  297. package/dist/esm-node/utils/env.js +0 -16
  298. package/dist/esm-node/utils/generateWatchFiles.js +0 -30
  299. package/dist/esm-node/utils/getSelectedEntries.js +0 -34
  300. package/dist/esm-node/utils/loadPlugins.js +0 -22
  301. package/dist/esm-node/utils/printInstructions.js +0 -11
  302. package/dist/esm-node/utils/register.js +0 -69
  303. package/dist/esm-node/utils/restart.js +0 -22
  304. package/dist/esm-node/utils/routes.js +0 -21
  305. package/dist/esm-node/utils/types.js +0 -0
  306. package/dist/types/plugins/deploy/platforms/netlifyEntry.d.ts +0 -2
  307. package/dist/types/plugins/deploy/platforms/vercelEntry.d.ts +0 -2
  308. /package/dist/cjs/plugins/deploy/platforms/{nodeEntry.js → node-entry.js} +0 -0
  309. /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
- };