@modern-js/app-tools 2.69.5 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/bin/modern.js +2 -8
  2. package/dist/cjs/builder/builder-rspack/index.js +35 -27
  3. package/dist/cjs/builder/generator/adapterCopy.js +75 -46
  4. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +83 -81
  5. package/dist/cjs/builder/generator/createCopyPattern.js +59 -58
  6. package/dist/cjs/builder/generator/getBuilderEnvironments.js +80 -82
  7. package/dist/cjs/builder/generator/index.js +70 -85
  8. package/dist/cjs/builder/index.js +44 -47
  9. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +106 -83
  10. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +79 -74
  11. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +131 -165
  12. package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +47 -46
  13. package/dist/cjs/builder/shared/builderPlugins/index.js +76 -25
  14. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +66 -49
  15. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +51 -50
  16. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +178 -317
  17. package/dist/cjs/builder/shared/bundlerPlugins/index.js +69 -23
  18. package/dist/cjs/builder/shared/createCopyInfo.js +54 -43
  19. package/dist/cjs/builder/shared/index.js +69 -23
  20. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +35 -23
  21. package/dist/cjs/builder/shared/types.js +17 -15
  22. package/dist/cjs/commands/build.js +107 -96
  23. package/dist/cjs/commands/deploy.js +40 -32
  24. package/dist/cjs/commands/dev.js +122 -141
  25. package/dist/cjs/commands/index.js +74 -121
  26. package/dist/cjs/commands/inspect.js +45 -39
  27. package/dist/cjs/commands/serve.js +87 -84
  28. package/dist/cjs/compat/hooks.js +97 -177
  29. package/dist/cjs/compat/index.js +57 -59
  30. package/dist/cjs/compat/utils.js +125 -116
  31. package/dist/cjs/config/default.js +118 -225
  32. package/dist/cjs/config/index.js +62 -23
  33. package/dist/cjs/config/initialize/index.js +37 -29
  34. package/dist/cjs/config/initialize/inits.js +92 -106
  35. package/dist/cjs/constants.js +37 -37
  36. package/dist/cjs/defineConfig.js +33 -35
  37. package/dist/cjs/esm/esbuild-loader.js +62 -0
  38. package/dist/cjs/esm/esbuild-loader.mjs +11 -23
  39. package/dist/cjs/esm/register-esm.js +85 -0
  40. package/dist/cjs/esm/register-esm.mjs +41 -54
  41. package/dist/cjs/esm/ts-node-loader.js +62 -0
  42. package/dist/cjs/esm/ts-node-loader.mjs +11 -23
  43. package/dist/cjs/esm/utils.js +69 -0
  44. package/dist/cjs/esm/utils.mjs +24 -36
  45. package/dist/cjs/exports/server.js +16 -26
  46. package/dist/cjs/index.js +288 -199
  47. package/dist/cjs/locale/en.js +70 -62
  48. package/dist/cjs/locale/index.js +42 -33
  49. package/dist/cjs/locale/zh.js +70 -62
  50. package/dist/cjs/plugins/analyze/constants.js +43 -36
  51. package/dist/cjs/plugins/analyze/getBundleEntry.js +90 -94
  52. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +110 -137
  53. package/dist/cjs/plugins/analyze/getHtmlTemplate.js +125 -127
  54. package/dist/cjs/plugins/analyze/getServerRoutes.js +160 -164
  55. package/dist/cjs/plugins/analyze/index.js +221 -208
  56. package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +81 -76
  57. package/dist/cjs/plugins/analyze/templates.js +36 -28
  58. package/dist/cjs/plugins/analyze/utils.js +109 -104
  59. package/dist/cjs/plugins/deploy/index.js +64 -56
  60. package/dist/cjs/plugins/deploy/platforms/gh-pages.js +82 -86
  61. package/dist/cjs/plugins/deploy/platforms/netlify-entry.js +35 -2
  62. package/dist/cjs/plugins/deploy/platforms/netlify-handler.js +86 -62
  63. package/dist/cjs/plugins/deploy/platforms/netlify.js +145 -157
  64. package/dist/cjs/plugins/deploy/platforms/node-entry.js +73 -45
  65. package/dist/cjs/plugins/deploy/platforms/node.js +113 -113
  66. package/dist/cjs/plugins/deploy/platforms/platform.js +17 -15
  67. package/dist/cjs/plugins/deploy/platforms/vercel-entry.js +36 -2
  68. package/dist/cjs/plugins/deploy/platforms/vercel-handler.js +87 -63
  69. package/dist/cjs/plugins/deploy/platforms/vercel.js +165 -169
  70. package/dist/cjs/plugins/deploy/utils.js +85 -85
  71. package/dist/cjs/plugins/initialize/index.js +86 -91
  72. package/dist/cjs/plugins/serverBuild.js +85 -78
  73. package/dist/cjs/plugins/serverRuntime.js +46 -34
  74. package/dist/cjs/run/index.js +86 -128
  75. package/dist/cjs/types/config/deploy.js +17 -15
  76. package/dist/cjs/types/config/dev.js +17 -15
  77. package/dist/cjs/types/config/experiments.js +17 -15
  78. package/dist/cjs/types/config/html.js +17 -15
  79. package/dist/cjs/types/config/index.js +55 -19
  80. package/dist/cjs/types/config/output.js +17 -15
  81. package/dist/cjs/types/config/performance.js +17 -15
  82. package/dist/cjs/types/config/resolve.js +17 -15
  83. package/dist/cjs/types/config/security.js +17 -15
  84. package/dist/cjs/types/config/source.js +17 -15
  85. package/dist/cjs/types/config/testing.js +17 -15
  86. package/dist/cjs/types/config/tools.js +17 -15
  87. package/dist/cjs/types/index.js +55 -23
  88. package/dist/cjs/types/plugin.js +18 -0
  89. package/dist/cjs/types/utils.js +17 -15
  90. package/dist/cjs/utils/config.js +40 -80
  91. package/dist/cjs/utils/createServer.js +46 -47
  92. package/dist/cjs/utils/env.js +41 -35
  93. package/dist/cjs/utils/generateWatchFiles.js +49 -60
  94. package/dist/cjs/utils/getConfigFile.js +46 -38
  95. package/dist/cjs/utils/getSelectedEntries.js +55 -53
  96. package/dist/cjs/utils/initAppContext.js +66 -59
  97. package/dist/cjs/utils/loadPlugins.js +77 -70
  98. package/dist/cjs/utils/printInstructions.js +39 -31
  99. package/dist/cjs/utils/register.js +108 -117
  100. package/dist/cjs/utils/restart.js +46 -41
  101. package/dist/cjs/utils/routes.js +60 -52
  102. package/dist/cjs/utils/types.js +17 -15
  103. package/dist/esm/builder/builder-rspack/index.mjs +6 -0
  104. package/dist/esm/builder/generator/adapterCopy.mjs +35 -0
  105. package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +59 -0
  106. package/dist/esm/builder/generator/createCopyPattern.mjs +30 -0
  107. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +56 -0
  108. package/dist/esm/builder/generator/index.mjs +45 -0
  109. package/dist/esm/builder/index.mjs +7 -0
  110. package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +78 -0
  111. package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +55 -0
  112. package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +117 -0
  113. package/dist/esm/builder/shared/builderPlugins/builderHooks.mjs +17 -0
  114. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +37 -0
  115. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +22 -0
  116. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.mjs +157 -0
  117. package/dist/esm/builder/shared/createCopyInfo.mjs +15 -0
  118. package/dist/esm/builder/shared/loaders/serverModuleLoader.mjs +5 -0
  119. package/dist/esm/commands/build.mjs +68 -0
  120. package/dist/esm/commands/deploy.mjs +10 -0
  121. package/dist/esm/commands/dev.mjs +82 -0
  122. package/dist/esm/commands/index.mjs +37 -0
  123. package/dist/esm/commands/inspect.mjs +15 -0
  124. package/dist/esm/commands/serve.mjs +47 -0
  125. package/dist/esm/compat/hooks.mjs +67 -0
  126. package/dist/esm/compat/index.mjs +28 -0
  127. package/dist/esm/compat/utils.mjs +95 -0
  128. package/dist/esm/config/default.mjs +90 -0
  129. package/dist/{esm-node/config/index.js → esm/config/index.mjs} +0 -1
  130. package/dist/esm/config/initialize/index.mjs +7 -0
  131. package/dist/esm/config/initialize/inits.mjs +54 -0
  132. package/dist/esm/constants.mjs +3 -0
  133. package/dist/esm/defineConfig.mjs +2 -0
  134. package/dist/esm/esm/esbuild-loader.mjs +18 -29
  135. package/dist/esm/esm/register-esm.mjs +45 -57
  136. package/dist/esm/esm/ts-node-loader.mjs +18 -30
  137. package/dist/esm/esm/utils.mjs +31 -42
  138. package/dist/esm/index.mjs +121 -0
  139. package/dist/esm/locale/en.mjs +42 -0
  140. package/dist/esm/locale/index.mjs +9 -0
  141. package/dist/esm/locale/zh.mjs +42 -0
  142. package/dist/esm/plugins/analyze/constants.mjs +8 -0
  143. package/dist/esm/plugins/analyze/getBundleEntry.mjs +53 -0
  144. package/dist/esm/plugins/analyze/getFileSystemEntry.mjs +66 -0
  145. package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +85 -0
  146. package/dist/esm/plugins/analyze/getServerRoutes.mjs +130 -0
  147. package/dist/esm/plugins/analyze/index.mjs +193 -0
  148. package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +41 -0
  149. package/dist/esm/plugins/analyze/templates.mjs +22 -0
  150. package/dist/esm/plugins/analyze/utils.mjs +55 -0
  151. package/dist/esm/plugins/deploy/index.mjs +38 -0
  152. package/dist/esm/plugins/deploy/platforms/gh-pages.mjs +43 -0
  153. package/dist/esm/plugins/deploy/platforms/netlify-entry.mjs +2 -1
  154. package/dist/esm/plugins/deploy/platforms/netlify-handler.mjs +85 -0
  155. package/dist/esm/plugins/deploy/platforms/netlify.mjs +111 -0
  156. package/dist/esm/plugins/deploy/platforms/node-entry.mjs +68 -0
  157. package/dist/esm/plugins/deploy/platforms/node.mjs +77 -0
  158. package/dist/esm/plugins/deploy/platforms/vercel-entry.mjs +3 -3
  159. package/dist/esm/plugins/deploy/platforms/vercel-handler.mjs +85 -0
  160. package/dist/esm/plugins/deploy/platforms/vercel.mjs +131 -0
  161. package/dist/esm/plugins/deploy/utils.mjs +39 -0
  162. package/dist/esm/plugins/initialize/index.mjs +59 -0
  163. package/dist/esm/plugins/serverBuild.mjs +48 -0
  164. package/dist/esm/plugins/serverRuntime.mjs +15 -0
  165. package/dist/esm/run/index.mjs +60 -0
  166. package/dist/esm/types/index.mjs +1 -0
  167. package/dist/esm/utils/config.mjs +11 -0
  168. package/dist/esm/utils/createServer.mjs +12 -0
  169. package/dist/esm/utils/env.mjs +12 -0
  170. package/dist/esm/utils/generateWatchFiles.mjs +10 -0
  171. package/dist/esm/utils/getConfigFile.mjs +5 -0
  172. package/dist/esm/utils/getSelectedEntries.mjs +26 -0
  173. package/dist/esm/utils/initAppContext.mjs +26 -0
  174. package/dist/esm/utils/loadPlugins.mjs +45 -0
  175. package/dist/esm/utils/printInstructions.mjs +9 -0
  176. package/dist/esm/utils/register.mjs +75 -0
  177. package/dist/esm/utils/restart.mjs +18 -0
  178. package/dist/esm/utils/routes.mjs +15 -0
  179. package/dist/esm-node/builder/builder-rspack/index.mjs +6 -0
  180. package/dist/esm-node/builder/generator/adapterCopy.mjs +35 -0
  181. package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +59 -0
  182. package/dist/esm-node/builder/generator/createCopyPattern.mjs +30 -0
  183. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +56 -0
  184. package/dist/esm-node/builder/generator/index.mjs +45 -0
  185. package/dist/esm-node/builder/index.mjs +7 -0
  186. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +78 -0
  187. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +55 -0
  188. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +117 -0
  189. package/dist/esm-node/builder/shared/builderPlugins/builderHooks.mjs +17 -0
  190. package/dist/esm-node/builder/shared/builderPlugins/index.mjs +4 -0
  191. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +37 -0
  192. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +22 -0
  193. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.mjs +157 -0
  194. package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +3 -0
  195. package/dist/esm-node/builder/shared/createCopyInfo.mjs +15 -0
  196. package/dist/esm-node/builder/shared/index.mjs +3 -0
  197. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.mjs +5 -0
  198. package/dist/esm-node/commands/build.mjs +68 -0
  199. package/dist/esm-node/commands/deploy.mjs +10 -0
  200. package/dist/esm-node/commands/dev.mjs +82 -0
  201. package/dist/esm-node/commands/index.mjs +37 -0
  202. package/dist/esm-node/commands/inspect.mjs +15 -0
  203. package/dist/esm-node/commands/serve.mjs +47 -0
  204. package/dist/esm-node/compat/hooks.mjs +67 -0
  205. package/dist/esm-node/compat/index.mjs +28 -0
  206. package/dist/esm-node/compat/utils.mjs +95 -0
  207. package/dist/esm-node/config/default.mjs +90 -0
  208. package/dist/esm-node/config/index.mjs +2 -0
  209. package/dist/esm-node/config/initialize/index.mjs +7 -0
  210. package/dist/esm-node/config/initialize/inits.mjs +54 -0
  211. package/dist/esm-node/constants.mjs +3 -0
  212. package/dist/esm-node/defineConfig.mjs +2 -0
  213. package/dist/esm-node/esm/esbuild-loader.mjs +18 -29
  214. package/dist/esm-node/esm/register-esm.mjs +45 -57
  215. package/dist/esm-node/esm/ts-node-loader.mjs +18 -30
  216. package/dist/esm-node/esm/utils.mjs +31 -42
  217. package/dist/esm-node/index.mjs +121 -0
  218. package/dist/esm-node/locale/en.mjs +42 -0
  219. package/dist/esm-node/locale/index.mjs +9 -0
  220. package/dist/esm-node/locale/zh.mjs +42 -0
  221. package/dist/esm-node/plugins/analyze/constants.mjs +8 -0
  222. package/dist/esm-node/plugins/analyze/getBundleEntry.mjs +53 -0
  223. package/dist/esm-node/plugins/analyze/getFileSystemEntry.mjs +66 -0
  224. package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +85 -0
  225. package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +130 -0
  226. package/dist/esm-node/plugins/analyze/index.mjs +193 -0
  227. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +41 -0
  228. package/dist/esm-node/plugins/analyze/{templates.js → templates.mjs} +5 -7
  229. package/dist/esm-node/plugins/analyze/utils.mjs +55 -0
  230. package/dist/esm-node/plugins/deploy/index.mjs +38 -0
  231. package/dist/esm-node/plugins/deploy/platforms/gh-pages.mjs +43 -0
  232. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.mjs +2 -1
  233. package/dist/esm-node/plugins/deploy/platforms/netlify-handler.mjs +85 -0
  234. package/dist/esm-node/plugins/deploy/platforms/netlify.mjs +111 -0
  235. package/dist/esm-node/plugins/deploy/platforms/node-entry.mjs +68 -0
  236. package/dist/esm-node/plugins/deploy/platforms/node.mjs +77 -0
  237. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.mjs +3 -3
  238. package/dist/esm-node/plugins/deploy/platforms/vercel-handler.mjs +85 -0
  239. package/dist/esm-node/plugins/deploy/platforms/vercel.mjs +131 -0
  240. package/dist/esm-node/plugins/deploy/utils.mjs +39 -0
  241. package/dist/esm-node/plugins/initialize/index.mjs +59 -0
  242. package/dist/esm-node/plugins/serverBuild.mjs +48 -0
  243. package/dist/esm-node/plugins/serverRuntime.mjs +15 -0
  244. package/dist/esm-node/run/index.mjs +60 -0
  245. package/dist/esm-node/types/config/index.mjs +1 -0
  246. package/dist/esm-node/types/index.mjs +1 -0
  247. package/dist/esm-node/utils/config.mjs +11 -0
  248. package/dist/esm-node/utils/createServer.mjs +12 -0
  249. package/dist/esm-node/utils/env.mjs +12 -0
  250. package/dist/esm-node/utils/generateWatchFiles.mjs +10 -0
  251. package/dist/esm-node/utils/getConfigFile.mjs +5 -0
  252. package/dist/esm-node/utils/getSelectedEntries.mjs +26 -0
  253. package/dist/esm-node/utils/initAppContext.mjs +26 -0
  254. package/dist/esm-node/utils/loadPlugins.mjs +45 -0
  255. package/dist/esm-node/utils/printInstructions.mjs +9 -0
  256. package/dist/esm-node/utils/register.mjs +75 -0
  257. package/dist/esm-node/utils/restart.mjs +18 -0
  258. package/dist/esm-node/utils/routes.mjs +15 -0
  259. package/dist/types/builder/builder-rspack/index.d.ts +1 -1
  260. package/dist/types/builder/generator/adapterCopy.d.ts +2 -3
  261. package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +3 -3
  262. package/dist/types/builder/generator/createCopyPattern.d.ts +5 -5
  263. package/dist/types/builder/generator/getBuilderEnvironments.d.ts +4 -4
  264. package/dist/types/builder/generator/index.d.ts +2 -3
  265. package/dist/types/builder/index.d.ts +2 -2
  266. package/dist/types/builder/shared/builderPlugins/adapterBasic.d.ts +1 -2
  267. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +1 -2
  268. package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +1 -2
  269. package/dist/types/builder/shared/builderPlugins/builderHooks.d.ts +1 -2
  270. package/dist/types/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts +4 -4
  271. package/dist/types/builder/shared/bundlerPlugins/HtmlBottomTemplate.d.ts +4 -4
  272. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +3 -5
  273. package/dist/types/builder/shared/createCopyInfo.d.ts +4 -3
  274. package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +2 -2
  275. package/dist/types/builder/shared/types.d.ts +5 -5
  276. package/dist/types/commands/build.d.ts +2 -2
  277. package/dist/types/commands/deploy.d.ts +2 -2
  278. package/dist/types/commands/dev.d.ts +2 -2
  279. package/dist/types/commands/index.d.ts +7 -9
  280. package/dist/types/commands/inspect.d.ts +2 -2
  281. package/dist/types/commands/serve.d.ts +2 -2
  282. package/dist/types/compat/hooks.d.ts +2 -2
  283. package/dist/types/compat/index.d.ts +2 -2
  284. package/dist/types/config/default.d.ts +3 -4
  285. package/dist/types/config/index.d.ts +0 -1
  286. package/dist/types/config/initialize/index.d.ts +2 -2
  287. package/dist/types/config/initialize/inits.d.ts +3 -4
  288. package/dist/types/constants.d.ts +0 -3
  289. package/dist/types/defineConfig.d.ts +7 -8
  290. package/dist/types/exports/server.d.ts +1 -5
  291. package/dist/types/index.d.ts +4 -5
  292. package/dist/types/locale/index.d.ts +1 -1
  293. package/dist/types/plugins/analyze/constants.d.ts +0 -1
  294. package/dist/types/plugins/analyze/getBundleEntry.d.ts +2 -2
  295. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +2 -2
  296. package/dist/types/plugins/analyze/getHtmlTemplate.d.ts +4 -4
  297. package/dist/types/plugins/analyze/getServerRoutes.d.ts +3 -3
  298. package/dist/types/plugins/analyze/index.d.ts +2 -4
  299. package/dist/types/plugins/deploy/index.d.ts +2 -2
  300. package/dist/types/plugins/deploy/platforms/platform.d.ts +2 -2
  301. package/dist/types/plugins/deploy/utils.d.ts +2 -2
  302. package/dist/types/plugins/initialize/index.d.ts +2 -4
  303. package/dist/types/plugins/serverBuild.d.ts +2 -2
  304. package/dist/types/plugins/serverRuntime.d.ts +2 -2
  305. package/dist/types/run/index.d.ts +3 -8
  306. package/dist/types/types/config/deploy.d.ts +0 -1
  307. package/dist/types/types/config/dev.d.ts +50 -9
  308. package/dist/types/types/config/experiments.d.ts +2 -2
  309. package/dist/types/types/config/html.d.ts +2 -2
  310. package/dist/types/types/config/index.d.ts +10 -14
  311. package/dist/types/types/config/output.d.ts +8 -8
  312. package/dist/types/types/config/performance.d.ts +2 -2
  313. package/dist/types/types/config/resolve.d.ts +2 -2
  314. package/dist/types/types/config/security.d.ts +2 -2
  315. package/dist/types/types/config/source.d.ts +2 -23
  316. package/dist/types/types/config/tools.d.ts +5 -22
  317. package/dist/types/types/index.d.ts +7 -34
  318. package/dist/types/types/{new.d.ts → plugin.d.ts} +10 -39
  319. package/dist/types/types/utils.d.ts +0 -6
  320. package/dist/types/utils/config.d.ts +1 -11
  321. package/dist/types/utils/createServer.d.ts +1 -3
  322. package/dist/types/utils/env.d.ts +2 -2
  323. package/dist/types/utils/generateWatchFiles.d.ts +2 -3
  324. package/dist/types/utils/initAppContext.d.ts +1 -3
  325. package/dist/types/utils/loadPlugins.d.ts +5 -5
  326. package/dist/types/utils/printInstructions.d.ts +2 -2
  327. package/dist/types/utils/restart.d.ts +2 -2
  328. package/dist/types/utils/routes.d.ts +2 -3
  329. package/lib/types.d.ts +5 -16
  330. package/package.json +51 -38
  331. package/rslib.config.mts +20 -0
  332. package/dist/cjs/builder/builder-webpack/index.js +0 -50
  333. package/dist/cjs/config/legacy/createHtmlConfig.js +0 -45
  334. package/dist/cjs/config/legacy/createOutputConfig.js +0 -69
  335. package/dist/cjs/config/legacy/createSourceConfig.js +0 -53
  336. package/dist/cjs/config/legacy/createToolsConfig.js +0 -52
  337. package/dist/cjs/config/legacy/index.js +0 -68
  338. package/dist/cjs/plugins/deploy/platforms/netlify-entry.mjs +0 -1
  339. package/dist/cjs/plugins/deploy/platforms/vercel-entry.mjs +0 -3
  340. package/dist/cjs/types/hooks.js +0 -16
  341. package/dist/cjs/types/legacyConfig/deploy.js +0 -16
  342. package/dist/cjs/types/legacyConfig/dev.js +0 -16
  343. package/dist/cjs/types/legacyConfig/index.js +0 -16
  344. package/dist/cjs/types/legacyConfig/output.js +0 -16
  345. package/dist/cjs/types/legacyConfig/source.js +0 -16
  346. package/dist/cjs/types/legacyConfig/testing.js +0 -16
  347. package/dist/cjs/types/legacyConfig/tools.js +0 -16
  348. package/dist/cjs/types/new.js +0 -16
  349. package/dist/cjs/utils/getUserConfig.js +0 -34
  350. package/dist/esm/builder/builder-rspack/index.js +0 -30
  351. package/dist/esm/builder/builder-webpack/index.js +0 -48
  352. package/dist/esm/builder/generator/adapterCopy.js +0 -29
  353. package/dist/esm/builder/generator/createBuilderProviderConfig.js +0 -56
  354. package/dist/esm/builder/generator/createCopyPattern.js +0 -43
  355. package/dist/esm/builder/generator/getBuilderEnvironments.js +0 -89
  356. package/dist/esm/builder/generator/index.js +0 -116
  357. package/dist/esm/builder/index.js +0 -50
  358. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +0 -92
  359. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +0 -126
  360. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +0 -262
  361. package/dist/esm/builder/shared/builderPlugins/builderHooks.js +0 -120
  362. package/dist/esm/builder/shared/builderPlugins/index.js +0 -4
  363. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -51
  364. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -37
  365. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +0 -420
  366. package/dist/esm/builder/shared/bundlerPlugins/index.js +0 -3
  367. package/dist/esm/builder/shared/createCopyInfo.js +0 -14
  368. package/dist/esm/builder/shared/index.js +0 -3
  369. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +0 -7
  370. package/dist/esm/commands/build.js +0 -142
  371. package/dist/esm/commands/deploy.js +0 -48
  372. package/dist/esm/commands/dev.js +0 -197
  373. package/dist/esm/commands/index.js +0 -401
  374. package/dist/esm/commands/inspect.js +0 -31
  375. package/dist/esm/commands/serve.js +0 -96
  376. package/dist/esm/compat/hooks.js +0 -503
  377. package/dist/esm/compat/index.js +0 -45
  378. package/dist/esm/compat/utils.js +0 -100
  379. package/dist/esm/config/default.js +0 -205
  380. package/dist/esm/config/index.js +0 -3
  381. package/dist/esm/config/initialize/index.js +0 -9
  382. package/dist/esm/config/initialize/inits.js +0 -89
  383. package/dist/esm/config/legacy/createHtmlConfig.js +0 -21
  384. package/dist/esm/config/legacy/createOutputConfig.js +0 -45
  385. package/dist/esm/config/legacy/createSourceConfig.js +0 -46
  386. package/dist/esm/config/legacy/createToolsConfig.js +0 -28
  387. package/dist/esm/config/legacy/index.js +0 -43
  388. package/dist/esm/constants.js +0 -12
  389. package/dist/esm/defineConfig.js +0 -16
  390. package/dist/esm/exports/server.js +0 -4
  391. package/dist/esm/index.js +0 -265
  392. package/dist/esm/locale/en.js +0 -44
  393. package/dist/esm/locale/index.js +0 -12
  394. package/dist/esm/locale/zh.js +0 -44
  395. package/dist/esm/plugins/analyze/constants.js +0 -14
  396. package/dist/esm/plugins/analyze/getBundleEntry.js +0 -108
  397. package/dist/esm/plugins/analyze/getFileSystemEntry.js +0 -268
  398. package/dist/esm/plugins/analyze/getHtmlTemplate.js +0 -251
  399. package/dist/esm/plugins/analyze/getServerRoutes.js +0 -148
  400. package/dist/esm/plugins/analyze/index.js +0 -439
  401. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +0 -49
  402. package/dist/esm/plugins/analyze/templates.js +0 -6
  403. package/dist/esm/plugins/analyze/utils.js +0 -106
  404. package/dist/esm/plugins/deploy/index.js +0 -133
  405. package/dist/esm/plugins/deploy/platforms/gh-pages.js +0 -184
  406. package/dist/esm/plugins/deploy/platforms/netlify-entry.js +0 -11
  407. package/dist/esm/plugins/deploy/platforms/netlify-handler.js +0 -207
  408. package/dist/esm/plugins/deploy/platforms/netlify.js +0 -346
  409. package/dist/esm/plugins/deploy/platforms/node-entry.js +0 -110
  410. package/dist/esm/plugins/deploy/platforms/node.js +0 -178
  411. package/dist/esm/plugins/deploy/platforms/vercel-entry.js +0 -11
  412. package/dist/esm/plugins/deploy/platforms/vercel-handler.js +0 -207
  413. package/dist/esm/plugins/deploy/platforms/vercel.js +0 -280
  414. package/dist/esm/plugins/deploy/utils.js +0 -59
  415. package/dist/esm/plugins/initialize/index.js +0 -116
  416. package/dist/esm/plugins/serverBuild.js +0 -83
  417. package/dist/esm/plugins/serverRuntime.js +0 -22
  418. package/dist/esm/run/index.js +0 -134
  419. package/dist/esm/types/config/index.js +0 -1
  420. package/dist/esm/types/config/source.js +0 -0
  421. package/dist/esm/types/config/testing.js +0 -0
  422. package/dist/esm/types/config/tools.js +0 -0
  423. package/dist/esm/types/hooks.js +0 -0
  424. package/dist/esm/types/index.js +0 -3
  425. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  426. package/dist/esm/types/legacyConfig/dev.js +0 -0
  427. package/dist/esm/types/legacyConfig/index.js +0 -0
  428. package/dist/esm/types/legacyConfig/output.js +0 -0
  429. package/dist/esm/types/legacyConfig/source.js +0 -0
  430. package/dist/esm/types/legacyConfig/testing.js +0 -0
  431. package/dist/esm/types/legacyConfig/tools.js +0 -0
  432. package/dist/esm/types/new.js +0 -0
  433. package/dist/esm/types/utils.js +0 -0
  434. package/dist/esm/utils/config.js +0 -122
  435. package/dist/esm/utils/createServer.js +0 -58
  436. package/dist/esm/utils/env.js +0 -16
  437. package/dist/esm/utils/generateWatchFiles.js +0 -71
  438. package/dist/esm/utils/getConfigFile.js +0 -11
  439. package/dist/esm/utils/getSelectedEntries.js +0 -67
  440. package/dist/esm/utils/getUserConfig.js +0 -32
  441. package/dist/esm/utils/initAppContext.js +0 -30
  442. package/dist/esm/utils/loadPlugins.js +0 -162
  443. package/dist/esm/utils/printInstructions.js +0 -32
  444. package/dist/esm/utils/register.js +0 -182
  445. package/dist/esm/utils/restart.js +0 -68
  446. package/dist/esm/utils/routes.js +0 -42
  447. package/dist/esm/utils/types.js +0 -0
  448. package/dist/esm-node/builder/builder-rspack/index.js +0 -8
  449. package/dist/esm-node/builder/builder-webpack/index.js +0 -16
  450. package/dist/esm-node/builder/generator/adapterCopy.js +0 -26
  451. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +0 -67
  452. package/dist/esm-node/builder/generator/createCopyPattern.js +0 -41
  453. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +0 -68
  454. package/dist/esm-node/builder/generator/index.js +0 -60
  455. package/dist/esm-node/builder/index.js +0 -16
  456. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +0 -55
  457. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +0 -60
  458. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +0 -151
  459. package/dist/esm-node/builder/shared/builderPlugins/builderHooks.js +0 -26
  460. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -30
  461. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -31
  462. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +0 -305
  463. package/dist/esm-node/builder/shared/createCopyInfo.js +0 -14
  464. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +0 -7
  465. package/dist/esm-node/commands/build.js +0 -67
  466. package/dist/esm-node/commands/deploy.js +0 -12
  467. package/dist/esm-node/commands/dev.js +0 -111
  468. package/dist/esm-node/commands/index.js +0 -90
  469. package/dist/esm-node/commands/inspect.js +0 -19
  470. package/dist/esm-node/commands/serve.js +0 -54
  471. package/dist/esm-node/compat/hooks.js +0 -159
  472. package/dist/esm-node/compat/index.js +0 -40
  473. package/dist/esm-node/compat/utils.js +0 -100
  474. package/dist/esm-node/config/default.js +0 -206
  475. package/dist/esm-node/config/initialize/index.js +0 -9
  476. package/dist/esm-node/config/initialize/inits.js +0 -79
  477. package/dist/esm-node/config/legacy/createHtmlConfig.js +0 -21
  478. package/dist/esm-node/config/legacy/createOutputConfig.js +0 -45
  479. package/dist/esm-node/config/legacy/createSourceConfig.js +0 -29
  480. package/dist/esm-node/config/legacy/createToolsConfig.js +0 -28
  481. package/dist/esm-node/config/legacy/index.js +0 -43
  482. package/dist/esm-node/constants.js +0 -12
  483. package/dist/esm-node/defineConfig.js +0 -13
  484. package/dist/esm-node/exports/server.js +0 -4
  485. package/dist/esm-node/index.js +0 -160
  486. package/dist/esm-node/locale/en.js +0 -44
  487. package/dist/esm-node/locale/index.js +0 -12
  488. package/dist/esm-node/locale/zh.js +0 -44
  489. package/dist/esm-node/plugins/analyze/constants.js +0 -14
  490. package/dist/esm-node/plugins/analyze/getBundleEntry.js +0 -67
  491. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +0 -108
  492. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +0 -99
  493. package/dist/esm-node/plugins/analyze/getServerRoutes.js +0 -146
  494. package/dist/esm-node/plugins/analyze/index.js +0 -184
  495. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +0 -47
  496. package/dist/esm-node/plugins/analyze/utils.js +0 -73
  497. package/dist/esm-node/plugins/deploy/index.js +0 -44
  498. package/dist/esm-node/plugins/deploy/platforms/gh-pages.js +0 -57
  499. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.js +0 -11
  500. package/dist/esm-node/plugins/deploy/platforms/netlify-handler.js +0 -73
  501. package/dist/esm-node/plugins/deploy/platforms/netlify.js +0 -133
  502. package/dist/esm-node/plugins/deploy/platforms/node-entry.js +0 -46
  503. package/dist/esm-node/plugins/deploy/platforms/node.js +0 -87
  504. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.js +0 -11
  505. package/dist/esm-node/plugins/deploy/platforms/vercel-handler.js +0 -73
  506. package/dist/esm-node/plugins/deploy/platforms/vercel.js +0 -145
  507. package/dist/esm-node/plugins/deploy/utils.js +0 -55
  508. package/dist/esm-node/plugins/initialize/index.js +0 -78
  509. package/dist/esm-node/plugins/serverBuild.js +0 -56
  510. package/dist/esm-node/plugins/serverRuntime.js +0 -17
  511. package/dist/esm-node/run/index.js +0 -104
  512. package/dist/esm-node/types/index.js +0 -3
  513. package/dist/esm-node/utils/config.js +0 -49
  514. package/dist/esm-node/utils/createServer.js +0 -26
  515. package/dist/esm-node/utils/env.js +0 -16
  516. package/dist/esm-node/utils/generateWatchFiles.js +0 -30
  517. package/dist/esm-node/utils/getConfigFile.js +0 -7
  518. package/dist/esm-node/utils/getSelectedEntries.js +0 -34
  519. package/dist/esm-node/utils/getUserConfig.js +0 -10
  520. package/dist/esm-node/utils/initAppContext.js +0 -29
  521. package/dist/esm-node/utils/loadPlugins.js +0 -52
  522. package/dist/esm-node/utils/printInstructions.js +0 -11
  523. package/dist/esm-node/utils/register.js +0 -94
  524. package/dist/esm-node/utils/restart.js +0 -23
  525. package/dist/esm-node/utils/routes.js +0 -21
  526. package/dist/types/builder/builder-webpack/index.d.ts +0 -2
  527. package/dist/types/config/legacy/createHtmlConfig.d.ts +0 -2
  528. package/dist/types/config/legacy/createOutputConfig.d.ts +0 -2
  529. package/dist/types/config/legacy/createSourceConfig.d.ts +0 -2
  530. package/dist/types/config/legacy/createToolsConfig.d.ts +0 -2
  531. package/dist/types/config/legacy/index.d.ts +0 -3
  532. package/dist/types/types/hooks.d.ts +0 -69
  533. package/dist/types/types/legacyConfig/deploy.d.ts +0 -8
  534. package/dist/types/types/legacyConfig/dev.d.ts +0 -12
  535. package/dist/types/types/legacyConfig/index.d.ts +0 -35
  536. package/dist/types/types/legacyConfig/output.d.ts +0 -50
  537. package/dist/types/types/legacyConfig/source.d.ts +0 -28
  538. package/dist/types/types/legacyConfig/testing.d.ts +0 -8
  539. package/dist/types/types/legacyConfig/tools.d.ts +0 -15
  540. package/dist/types/utils/getUserConfig.d.ts +0 -6
  541. /package/dist/{esm-node/builder/shared/builderPlugins/index.js → esm/builder/shared/builderPlugins/index.mjs} +0 -0
  542. /package/dist/{esm-node/builder/shared/bundlerPlugins/index.js → esm/builder/shared/bundlerPlugins/index.mjs} +0 -0
  543. /package/dist/{esm-node/builder/shared/index.js → esm/builder/shared/index.mjs} +0 -0
  544. /package/dist/{esm-node/types/legacyConfig/output.js → esm/builder/shared/types.mjs} +0 -0
  545. /package/dist/{esm-node/types/legacyConfig/source.js → esm/exports/server.mjs} +0 -0
  546. /package/dist/{esm-node/types/legacyConfig/testing.js → esm/plugins/deploy/platforms/platform.mjs} +0 -0
  547. /package/dist/{esm-node/types/legacyConfig/tools.js → esm/types/config/deploy.mjs} +0 -0
  548. /package/dist/{esm-node/types/new.js → esm/types/config/dev.mjs} +0 -0
  549. /package/dist/{esm-node/types/utils.js → esm/types/config/experiments.mjs} +0 -0
  550. /package/dist/{esm-node/utils/types.js → esm/types/config/html.mjs} +0 -0
  551. /package/dist/{esm-node/types/config/index.js → esm/types/config/index.mjs} +0 -0
  552. /package/dist/esm/{builder/shared/types.js → types/config/output.mjs} +0 -0
  553. /package/dist/esm/{plugins/deploy/platforms/platform.js → types/config/performance.mjs} +0 -0
  554. /package/dist/esm/types/config/{deploy.js → resolve.mjs} +0 -0
  555. /package/dist/esm/types/config/{dev.js → security.mjs} +0 -0
  556. /package/dist/esm/types/config/{experiments.js → source.mjs} +0 -0
  557. /package/dist/esm/types/config/{html.js → testing.mjs} +0 -0
  558. /package/dist/esm/types/config/{output.js → tools.mjs} +0 -0
  559. /package/dist/esm/types/{config/performance.js → plugin.mjs} +0 -0
  560. /package/dist/esm/types/{config/resolve.js → utils.mjs} +0 -0
  561. /package/dist/esm/{types/config/security.js → utils/types.mjs} +0 -0
  562. /package/dist/esm-node/builder/shared/{types.js → types.mjs} +0 -0
  563. /package/dist/esm-node/{plugins/deploy/platforms/platform.js → exports/server.mjs} +0 -0
  564. /package/dist/esm-node/{types/config/deploy.js → plugins/deploy/platforms/platform.mjs} +0 -0
  565. /package/dist/esm-node/types/config/{dev.js → deploy.mjs} +0 -0
  566. /package/dist/esm-node/types/config/{experiments.js → dev.mjs} +0 -0
  567. /package/dist/esm-node/types/config/{html.js → experiments.mjs} +0 -0
  568. /package/dist/esm-node/types/config/{output.js → html.mjs} +0 -0
  569. /package/dist/esm-node/types/config/{performance.js → output.mjs} +0 -0
  570. /package/dist/esm-node/types/config/{resolve.js → performance.mjs} +0 -0
  571. /package/dist/esm-node/types/config/{security.js → resolve.mjs} +0 -0
  572. /package/dist/esm-node/types/config/{source.js → security.mjs} +0 -0
  573. /package/dist/esm-node/types/config/{testing.js → source.mjs} +0 -0
  574. /package/dist/esm-node/types/config/{tools.js → testing.mjs} +0 -0
  575. /package/dist/esm-node/types/{hooks.js → config/tools.mjs} +0 -0
  576. /package/dist/esm-node/types/{legacyConfig/deploy.js → plugin.mjs} +0 -0
  577. /package/dist/esm-node/types/{legacyConfig/dev.js → utils.mjs} +0 -0
  578. /package/dist/esm-node/{types/legacyConfig/index.js → utils/types.mjs} +0 -0
@@ -0,0 +1,68 @@
1
+ import { fs, logger } from "@modern-js/utils";
2
+ import { loadServerPlugins } from "../utils/loadPlugins";
3
+ import { registerCompiler } from "../utils/register";
4
+ import { generateRoutes } from "../utils/routes";
5
+ import * as __rspack_external_node_path_c5b9b54f from "node:path";
6
+ async function copyEnvFiles(appDirectory, distDirectory) {
7
+ try {
8
+ const files = await fs.readdir(appDirectory);
9
+ const envFileRegex = /^\.env(\.[a-zA-Z0-9_-]+)*$/;
10
+ const envFiles = files.filter((file)=>envFileRegex.test(file));
11
+ if (0 === envFiles.length) return void logger.debug('No .env files found to copy');
12
+ const copyPromises = envFiles.map(async (envFile)=>{
13
+ const sourcePath = __rspack_external_node_path_c5b9b54f["default"].resolve(appDirectory, envFile);
14
+ const targetPath = __rspack_external_node_path_c5b9b54f["default"].resolve(distDirectory, envFile);
15
+ try {
16
+ const stat = await fs.stat(sourcePath);
17
+ if (stat.isDirectory()) return;
18
+ await fs.copy(sourcePath, targetPath);
19
+ } catch (error) {
20
+ logger.warn(`Failed to copy ${envFile}:`, error);
21
+ }
22
+ });
23
+ await Promise.all(copyPromises);
24
+ } catch (error) {
25
+ logger.warn('Failed to copy .env files:', error);
26
+ }
27
+ }
28
+ const build = async (api, options)=>{
29
+ if (options?.analyze) process.env.BUNDLE_ANALYZE = 'true';
30
+ const resolvedConfig = api.getNormalizedConfig();
31
+ const appContext = api.getAppContext();
32
+ const hooks = api.getHooks();
33
+ const combinedAlias = [].concat(resolvedConfig?.resolve?.alias ?? []).concat(resolvedConfig?.source?.alias ?? []);
34
+ await loadServerPlugins(api, appContext.appDirectory, appContext.metaName);
35
+ if (appContext.moduleType && 'module' === appContext.moduleType) {
36
+ const { registerEsm } = await import("../esm/register-esm.mjs");
37
+ await registerEsm({
38
+ appDir: appContext.appDirectory,
39
+ distDir: appContext.distDirectory,
40
+ alias: {}
41
+ });
42
+ }
43
+ await registerCompiler(appContext.appDirectory, appContext.distDirectory, combinedAlias);
44
+ const { apiOnly } = appContext;
45
+ if (apiOnly) {
46
+ await hooks.onBeforeBuild.call({
47
+ environments: {},
48
+ bundlerConfigs: void 0,
49
+ isFirstCompile: false,
50
+ isWatch: false
51
+ });
52
+ await generateRoutes(appContext);
53
+ await hooks.onAfterBuild.call({
54
+ environments: {},
55
+ stats: void 0,
56
+ isFirstCompile: false,
57
+ isWatch: false
58
+ });
59
+ return;
60
+ }
61
+ logger.info('Starting production build...');
62
+ if (!appContext.builder) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
63
+ await appContext.builder.onAfterBuild(async ()=>copyEnvFiles(appContext.appDirectory, appContext.distDirectory));
64
+ await appContext.builder.build({
65
+ watch: options?.watch
66
+ });
67
+ };
68
+ export { build };
@@ -0,0 +1,10 @@
1
+ import { getServerPlugins } from "../utils/loadPlugins";
2
+ const deploy = async (api, options)=>{
3
+ const hooks = api.getHooks();
4
+ const { metaName } = api.getAppContext();
5
+ await getServerPlugins(api, metaName);
6
+ await hooks.onBeforeDeploy.call(options);
7
+ await hooks.deploy.call();
8
+ await hooks.onAfterDeploy.call(options);
9
+ };
10
+ export { deploy };
@@ -0,0 +1,82 @@
1
+ import { createDevServer } from "@modern-js/server";
2
+ import { DEFAULT_DEV_HOST, SERVER_DIR, getMeta, logger } from "@modern-js/utils";
3
+ import { setServer } from "../utils/createServer";
4
+ import { loadServerPlugins } from "../utils/loadPlugins";
5
+ import { printInstructions } from "../utils/printInstructions";
6
+ import { registerCompiler } from "../utils/register";
7
+ import { generateRoutes } from "../utils/routes";
8
+ import * as __rspack_external_node_path_c5b9b54f from "node:path";
9
+ import * as __rspack_external__modern_js_prod_server_057184e2 from "@modern-js/prod-server";
10
+ const dev = async (api, options, devServerOptions)=>{
11
+ if (options.analyze) process.env.BUNDLE_ANALYZE = 'true';
12
+ const normalizedConfig = api.getNormalizedConfig();
13
+ const appContext = api.getAppContext();
14
+ const hooks = api.getHooks();
15
+ const combinedAlias = [].concat(normalizedConfig?.resolve?.alias ?? []).concat(normalizedConfig?.source?.alias ?? []);
16
+ if (appContext.moduleType && 'module' === appContext.moduleType) {
17
+ const { registerEsm } = await import("../esm/register-esm.mjs");
18
+ await registerEsm({
19
+ appDir: appContext.appDirectory,
20
+ distDir: appContext.distDirectory,
21
+ alias: {}
22
+ });
23
+ }
24
+ await registerCompiler(appContext.appDirectory, appContext.distDirectory, combinedAlias);
25
+ const { appDirectory, port, apiOnly, metaName, serverRoutes } = appContext;
26
+ const meta = getMeta(metaName);
27
+ const serverConfigPath = __rspack_external_node_path_c5b9b54f["default"].resolve(appDirectory, SERVER_DIR, `${meta}.server`);
28
+ await hooks.onBeforeDev.call();
29
+ if (!appContext.builder && !apiOnly) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
30
+ await generateRoutes(appContext);
31
+ const pluginInstances = await loadServerPlugins(api, appDirectory, metaName);
32
+ const serverOptions = {
33
+ metaName,
34
+ dev: {
35
+ https: normalizedConfig.dev.https,
36
+ setupMiddlewares: normalizedConfig.dev.setupMiddlewares
37
+ },
38
+ appContext: {
39
+ appDirectory,
40
+ internalDirectory: appContext.internalDirectory,
41
+ apiDirectory: appContext.apiDirectory,
42
+ lambdaDirectory: appContext.lambdaDirectory,
43
+ sharedDirectory: appContext.sharedDirectory,
44
+ bffRuntimeFramework: appContext.bffRuntimeFramework
45
+ },
46
+ serverConfigPath,
47
+ routes: serverRoutes,
48
+ pwd: appDirectory,
49
+ config: normalizedConfig,
50
+ plugins: pluginInstances,
51
+ ...devServerOptions
52
+ };
53
+ const host = normalizedConfig.dev?.host || DEFAULT_DEV_HOST;
54
+ if (apiOnly) {
55
+ const { server } = await createDevServer({
56
+ ...serverOptions,
57
+ runCompile: false
58
+ }, devServerOptions?.applyPlugins || __rspack_external__modern_js_prod_server_057184e2.applyPlugins);
59
+ server.listen({
60
+ port,
61
+ host
62
+ }, ()=>{
63
+ printInstructions(hooks, appContext, normalizedConfig);
64
+ });
65
+ setServer(server);
66
+ } else {
67
+ const { server, afterListen } = await createDevServer({
68
+ ...serverOptions,
69
+ builder: appContext.builder
70
+ }, devServerOptions?.applyPlugins || __rspack_external__modern_js_prod_server_057184e2.applyPlugins);
71
+ server.listen({
72
+ port,
73
+ host
74
+ }, async (err)=>{
75
+ if (err) logger.error('Occur error %s, when start dev server', err);
76
+ logger.debug('listen dev server done');
77
+ await afterListen();
78
+ });
79
+ setServer(server);
80
+ }
81
+ };
82
+ export { dev };
@@ -0,0 +1,37 @@
1
+ import { i18n, localeKeys } from "../locale";
2
+ const devCommand = async (program, api)=>{
3
+ program.command('dev').alias('start').usage('[options]').description(i18n.t(localeKeys.command.dev.describe)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('-e --entry [entry...]', i18n.t(localeKeys.command.dev.entry)).option('--analyze', i18n.t(localeKeys.command.shared.analyze)).option('--api-only', i18n.t(localeKeys.command.dev.apiOnly)).option('--web-only', i18n.t(localeKeys.command.dev.webOnly)).action(async (options)=>{
4
+ const { dev } = await import("./dev.js");
5
+ await dev(api, options);
6
+ });
7
+ };
8
+ const buildCommand = async (program, api)=>{
9
+ program.command('build').usage('[options]').description(i18n.t(localeKeys.command.build.describe)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('--analyze', i18n.t(localeKeys.command.shared.analyze)).option('-w --watch', i18n.t(localeKeys.command.build.watch)).action(async (options)=>{
10
+ const { build } = await import("./build.js");
11
+ await build(api, options);
12
+ });
13
+ };
14
+ const serverCommand = (program, api)=>{
15
+ program.command('serve').usage('[options]').description(i18n.t(localeKeys.command.serve.describe)).option('--api-only', i18n.t(localeKeys.command.dev.apiOnly)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).action(async ()=>{
16
+ const { serve } = await import("./serve.js");
17
+ await serve(api);
18
+ });
19
+ };
20
+ const deployCommand = (program, api)=>{
21
+ program.command('deploy').usage('[options]').option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('-s --skip-build', i18n.t(localeKeys.command.shared.skipBuild)).description(i18n.t(localeKeys.command.deploy.describe)).action(async (options)=>{
22
+ if (!options.skipBuild) {
23
+ const { build } = await import("./build.js");
24
+ await build(api);
25
+ }
26
+ const { deploy } = await import("./deploy.js");
27
+ await deploy(api, options);
28
+ process.exit(0);
29
+ });
30
+ };
31
+ const inspectCommand = (program, api)=>{
32
+ program.command('inspect').description('inspect the internal configs').option("--env <env>", i18n.t(localeKeys.command.inspect.env), 'development').option('--output <output>', i18n.t(localeKeys.command.inspect.output), './').option('--verbose', i18n.t(localeKeys.command.inspect.verbose)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).action(async (options)=>{
33
+ const { inspect } = await import("./inspect.js");
34
+ inspect(api, options);
35
+ });
36
+ };
37
+ export { buildCommand, deployCommand, devCommand, inspectCommand, serverCommand };
@@ -0,0 +1,15 @@
1
+ const inspect = async (api, options)=>{
2
+ const appContext = api.getAppContext();
3
+ if (!appContext.builder) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
4
+ const metaName = 'modern-js' === appContext.metaName ? 'modern.js' : appContext.metaName;
5
+ return appContext.builder.inspectConfig({
6
+ mode: options.env,
7
+ verbose: options.verbose,
8
+ outputPath: options.output,
9
+ writeToDisk: true,
10
+ extraConfigs: {
11
+ [metaName]: api.getNormalizedConfig()
12
+ }
13
+ });
14
+ };
15
+ export { inspect };
@@ -0,0 +1,47 @@
1
+ import path from "path";
2
+ import { SERVER_DIR, getMeta, getTargetDir, isApiOnly, logger } from "@modern-js/utils";
3
+ import { loadServerPlugins } from "../utils/loadPlugins";
4
+ import { printInstructions } from "../utils/printInstructions";
5
+ import * as __rspack_external__modern_js_prod_server_057184e2 from "@modern-js/prod-server";
6
+ const serve = async (api, serverOptions)=>{
7
+ const appContext = api.getAppContext();
8
+ const userConfig = api.getNormalizedConfig();
9
+ const hooks = api.getHooks();
10
+ const { distDirectory, appDirectory, internalDirectory, port, metaName, serverRoutes } = appContext;
11
+ const { isCrossProjectServer } = userConfig?.bff || {};
12
+ logger.info("Starting production server...");
13
+ const apiOnly = await isApiOnly(appContext.appDirectory, userConfig?.source?.entriesDir, appContext.apiDirectory);
14
+ let runMode;
15
+ if (apiOnly) runMode = 'apiOnly';
16
+ const meta = getMeta(metaName);
17
+ const serverConfigPath = path.resolve(distDirectory, SERVER_DIR, `${meta}.server`);
18
+ const pluginInstances = await loadServerPlugins(api, appDirectory, metaName);
19
+ const app = await (serverOptions?.launcher || __rspack_external__modern_js_prod_server_057184e2.createProdServer)({
20
+ metaName,
21
+ pwd: distDirectory,
22
+ config: {
23
+ ...userConfig,
24
+ dev: userConfig.dev,
25
+ output: {
26
+ path: userConfig.output.distPath?.root,
27
+ ...userConfig.output || {}
28
+ }
29
+ },
30
+ routes: serverRoutes,
31
+ plugins: pluginInstances,
32
+ serverConfigPath,
33
+ appContext: {
34
+ appDirectory,
35
+ internalDirectory,
36
+ sharedDirectory: getTargetDir(appContext.sharedDirectory, appContext.appDirectory, appContext.distDirectory),
37
+ apiDirectory: isCrossProjectServer ? appContext.apiDirectory : getTargetDir(appContext.apiDirectory, appContext.appDirectory, appContext.distDirectory),
38
+ lambdaDirectory: isCrossProjectServer ? appContext.lambdaDirectory : getTargetDir(appContext.lambdaDirectory, appContext.appDirectory, appContext.distDirectory),
39
+ bffRuntimeFramework: appContext.bffRuntimeFramework
40
+ },
41
+ runMode
42
+ });
43
+ app.listen(port, async ()=>{
44
+ await printInstructions(hooks, appContext, userConfig);
45
+ });
46
+ };
47
+ export { serve };
@@ -0,0 +1,67 @@
1
+ import { getModifyHtmlPartials } from "../plugins/analyze/getHtmlTemplate";
2
+ import { transformHookParams, transformHookResult, transformHookRunner } from "./utils";
3
+ function getHookRunners(context) {
4
+ const { hooks } = context;
5
+ return {
6
+ afterPrepare: async ()=>hooks.onAfterPrepare.call(),
7
+ deploy: async ()=>hooks.deploy.call(),
8
+ _internalRuntimePlugins: async (params)=>hooks._internalRuntimePlugins.call(params),
9
+ _internalServerPlugins: async (params)=>hooks._internalServerPlugins.call(params),
10
+ checkEntryPoint: async (params)=>hooks.checkEntryPoint.call(params),
11
+ modifyEntrypoints: async (params)=>hooks.modifyEntrypoints.call(params),
12
+ modifyFileSystemRoutes: async (params)=>hooks.modifyFileSystemRoutes.call(params),
13
+ modifyServerRoutes: async (params)=>hooks.modifyServerRoutes.call(params),
14
+ generateEntryCode: async (params)=>hooks.generateEntryCode.call(params),
15
+ beforeGenerateRoutes: async (params)=>hooks.onBeforeGenerateRoutes.call(params),
16
+ beforePrintInstructions: async (params)=>hooks.onBeforePrintInstructions.call(params),
17
+ appendEntryCode: async (params)=>{
18
+ const result = await hooks?.appendEntryCode.call(params);
19
+ return result;
20
+ },
21
+ jestConfig: async (utils)=>{
22
+ const result = await hooks?.jestConfig.call(utils, (utils)=>utils);
23
+ return result;
24
+ },
25
+ afterTest: async ()=>hooks.afterTest.call(),
26
+ config: async ()=>hooks.config.call(),
27
+ resolvedConfig: (params)=>hooks.modifyResolvedConfig.call(params),
28
+ htmlPartials: async (params)=>{
29
+ await hooks.modifyHtmlPartials.call({
30
+ entrypoint: params.entrypoint,
31
+ partials: getModifyHtmlPartials(params.partials)
32
+ });
33
+ return {
34
+ partials: params.partials
35
+ };
36
+ },
37
+ commands: async (params)=>hooks.addCommand.call(params),
38
+ watchFiles: async ()=>hooks.addWatchFiles.call(),
39
+ prepare: async ()=>hooks.onPrepare.call(),
40
+ fileChange: async (params)=>hooks.onFileChanged.call(params),
41
+ beforeCreateCompiler: async (params)=>hooks.onBeforeCreateCompiler.call(params),
42
+ afterCreateCompiler: async (params)=>hooks.onAfterCreateCompiler.call(params),
43
+ beforeBuild: async (params)=>hooks.onBeforeBuild.call(params),
44
+ afterBuild: async (params)=>hooks.onAfterBuild.call(params),
45
+ beforeDev: async ()=>hooks.onBeforeDev.call(),
46
+ afterDev: async (params)=>hooks.onDevCompileDone.call(params),
47
+ beforeDeploy: async (options)=>hooks.onBeforeDeploy.call(options),
48
+ afterDeploy: async (options)=>hooks.onAfterDeploy.call(options),
49
+ beforeExit: async ()=>hooks.onBeforeExit.call(),
50
+ beforeRestart: async ()=>hooks.onBeforeRestart.call()
51
+ };
52
+ }
53
+ function handleSetupResult(setupResult, api) {
54
+ if (!setupResult) return;
55
+ Object.keys(setupResult).forEach((key)=>{
56
+ const fn = setupResult[key];
57
+ if ('function' == typeof fn) {
58
+ const newAPI = transformHookRunner(key);
59
+ if (newAPI && api[newAPI]) api[newAPI](async (...params)=>{
60
+ const { isMultiple, params: transformParams } = transformHookParams(key, params);
61
+ if (isMultiple) return transformHookResult(key, await fn(...transformParams));
62
+ return transformHookResult(key, await fn(transformParams));
63
+ });
64
+ }
65
+ });
66
+ }
67
+ export { getHookRunners, handleSetupResult };
@@ -0,0 +1,28 @@
1
+ import { createAsyncHook } from "@modern-js/plugin";
2
+ import { getHookRunners } from "./hooks";
3
+ const compatPlugin = ()=>({
4
+ name: '@modern-js/app-tools-compat',
5
+ _registryApi: (getAppContext, updateAppContext)=>{
6
+ const getInternalContext = ()=>getAppContext()._internalContext;
7
+ return {
8
+ useAppContext: ()=>{
9
+ const { _internalContext, ...appContext } = getAppContext();
10
+ return appContext;
11
+ },
12
+ setAppContext: (context)=>updateAppContext(context),
13
+ useConfigContext: ()=>getInternalContext().config,
14
+ useResolvedConfigContext: ()=>getInternalContext().normalizedConfig,
15
+ useHookRunners: ()=>getHookRunners(getInternalContext())
16
+ };
17
+ },
18
+ registryHooks: {
19
+ jestConfig: createAsyncHook(),
20
+ afterTest: createAsyncHook()
21
+ },
22
+ setup: (api)=>{
23
+ api.updateAppContext({
24
+ toolsType: 'app-tools'
25
+ });
26
+ }
27
+ });
28
+ export { compatPlugin };
@@ -0,0 +1,95 @@
1
+ import { getModifyHtmlPartials } from "../plugins/analyze/getHtmlTemplate";
2
+ function transformHookRunner(hookRunnerName) {
3
+ switch(hookRunnerName){
4
+ case 'beforeConfig':
5
+ console.error('The `beforeConfig` hook has been deprecated. Please define your code directly in the setup function instead.');
6
+ return;
7
+ case 'prepare':
8
+ return 'onPrepare';
9
+ case 'afterPrepare':
10
+ return 'onAfterPrepare';
11
+ case 'beforeGenerateRoutes':
12
+ return 'onBeforeGenerateRoutes';
13
+ case 'beforePrintInstructions':
14
+ return 'onBeforePrintInstructions';
15
+ case 'resolvedConfig':
16
+ return 'modifyResolvedConfig';
17
+ case 'commands':
18
+ return 'addCommand';
19
+ case 'watchFiles':
20
+ return 'addWatchFiles';
21
+ case 'fileChange':
22
+ return 'onFileChanged';
23
+ case 'beforeCreateCompiler':
24
+ return 'onBeforeCreateCompiler';
25
+ case 'afterCreateCompiler':
26
+ return 'onAfterCreateCompiler';
27
+ case 'beforeBuild':
28
+ return 'onBeforeBuild';
29
+ case 'afterBuild':
30
+ return 'onAfterBuild';
31
+ case 'beforeDev':
32
+ return 'onBeforeDev';
33
+ case 'afterDev':
34
+ return 'onDevCompileDone';
35
+ case 'beforeDeploy':
36
+ return 'onBeforeDeploy';
37
+ case 'afterDeploy':
38
+ return 'onAfterDeploy';
39
+ case 'beforeExit':
40
+ return 'onBeforeExit';
41
+ case 'beforeRestart':
42
+ return 'onBeforeRestart';
43
+ case 'htmlPartials':
44
+ return 'modifyHtmlPartials';
45
+ default:
46
+ return hookRunnerName;
47
+ }
48
+ }
49
+ function transformHookParams(hookRunnerName, params) {
50
+ switch(hookRunnerName){
51
+ case 'resolvedConfig':
52
+ return {
53
+ isMultiple: false,
54
+ params: {
55
+ resolved: params[0]
56
+ }
57
+ };
58
+ case 'htmlPartials':
59
+ return {
60
+ isMultiple: false,
61
+ params: {
62
+ partials: {
63
+ top: params[0].partials.top.current,
64
+ head: params[0].partials.head.current,
65
+ body: params[0].partials.body.current
66
+ },
67
+ entrypoint: params[0].entrypoint
68
+ }
69
+ };
70
+ case 'jestConfig':
71
+ return {
72
+ isMultiple: true,
73
+ params: params
74
+ };
75
+ default:
76
+ return {
77
+ isMultiple: false,
78
+ params: params[0]
79
+ };
80
+ }
81
+ }
82
+ function transformHookResult(hookRunnerName, result) {
83
+ switch(hookRunnerName){
84
+ case 'resolvedConfig':
85
+ return result.resolved;
86
+ case 'htmlPartials':
87
+ return {
88
+ partials: getModifyHtmlPartials(result.partials),
89
+ entrypoint: result.entrypoint
90
+ };
91
+ default:
92
+ return result;
93
+ }
94
+ }
95
+ export { transformHookParams, transformHookResult, transformHookRunner };
@@ -0,0 +1,90 @@
1
+ import { DEFAULT_ENTRY_NAME } from "@modern-js/utils";
2
+ import { getAutoInjectEnv } from "../utils/env";
3
+ function createDefaultConfig(appContext) {
4
+ const dev = {
5
+ cliShortcuts: {
6
+ help: false,
7
+ custom: (shortcuts = [])=>shortcuts.filter(({ key })=>'r' !== key && 'u' !== key)
8
+ }
9
+ };
10
+ const output = {
11
+ distPath: {
12
+ root: 'dist',
13
+ html: 'html',
14
+ js: 'static/js',
15
+ css: 'static/css',
16
+ server: 'bundles',
17
+ worker: 'worker'
18
+ },
19
+ cleanDistPath: true,
20
+ enableInlineRouteManifests: true,
21
+ disableInlineRouteManifests: false
22
+ };
23
+ const source = {
24
+ entries: void 0,
25
+ mainEntryName: DEFAULT_ENTRY_NAME,
26
+ enableAsyncEntry: false,
27
+ disableDefaultEntries: false,
28
+ entriesDir: './src',
29
+ configDir: './config',
30
+ globalVars: getAutoInjectEnv(appContext),
31
+ alias: {}
32
+ };
33
+ const resolve = {
34
+ alias: {
35
+ [appContext.internalDirAlias]: appContext.internalDirectory,
36
+ [appContext.internalSrcAlias]: appContext.srcDirectory,
37
+ '@': appContext.srcDirectory,
38
+ '@shared': appContext.sharedDirectory
39
+ }
40
+ };
41
+ const html = {
42
+ title: '',
43
+ mountId: 'root',
44
+ meta: {
45
+ charset: {
46
+ charset: 'utf-8'
47
+ },
48
+ viewport: 'width=device-width, initial-scale=1.0, shrink-to-fit=no, viewport-fit=cover, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no',
49
+ 'http-equiv': {
50
+ 'http-equiv': 'x-ua-compatible',
51
+ content: 'ie=edge'
52
+ },
53
+ renderer: 'webkit',
54
+ layoutmode: 'standard',
55
+ imagemode: 'force',
56
+ 'wap-font-scale': 'no',
57
+ 'format-detection': 'telephone=no'
58
+ }
59
+ };
60
+ const server = {
61
+ routes: void 0,
62
+ publicRoutes: void 0,
63
+ ssr: void 0,
64
+ ssrByEntries: void 0,
65
+ baseUrl: '/',
66
+ port: 8080
67
+ };
68
+ return {
69
+ source,
70
+ resolve,
71
+ output,
72
+ server,
73
+ dev,
74
+ html,
75
+ tools: {
76
+ tsChecker: {
77
+ issue: {
78
+ exclude: [
79
+ {
80
+ file: '**/api/lambda/**/*'
81
+ }
82
+ ]
83
+ }
84
+ }
85
+ },
86
+ plugins: [],
87
+ builderPlugins: []
88
+ };
89
+ }
90
+ export { createDefaultConfig };
@@ -1,3 +1,2 @@
1
- export * from "./legacy";
2
1
  export * from "./initialize";
3
2
  export * from "./default";
@@ -0,0 +1,7 @@
1
+ import { initHtmlConfig, initSourceConfig } from "./inits";
2
+ function initialNormalizedConfig(config, appContext) {
3
+ initHtmlConfig(config, appContext);
4
+ initSourceConfig(config, appContext);
5
+ return config;
6
+ }
7
+ export { initialNormalizedConfig };
@@ -0,0 +1,54 @@
1
+ import path, { isAbsolute } from "path";
2
+ import { findExists } from "@modern-js/utils";
3
+ function initHtmlConfig(config, appContext) {
4
+ const ICON_EXTENSIONS = [
5
+ 'png',
6
+ 'jpg',
7
+ 'jpeg',
8
+ 'svg',
9
+ 'ico'
10
+ ];
11
+ config.html.appIcon = createBuilderAppIcon(config, appContext);
12
+ config.html.favicon = createBuilderFavicon(config, appContext);
13
+ return config.html;
14
+ function createBuilderAppIcon(config, appContext) {
15
+ const { appIcon } = config.html;
16
+ const { configDir } = config.source;
17
+ const getDefaultAppIcon = ()=>{
18
+ const appIconPath = findExists(ICON_EXTENSIONS.map((ext)=>path.resolve(appContext.appDirectory, configDir || './config', `icon.${ext}`)));
19
+ return appIconPath ? {
20
+ icons: [
21
+ {
22
+ src: appIconPath,
23
+ size: 180
24
+ }
25
+ ]
26
+ } : void 0;
27
+ };
28
+ return appIcon || getDefaultAppIcon() || void 0;
29
+ }
30
+ function createBuilderFavicon(config, appContext) {
31
+ const { configDir } = config.source;
32
+ const { favicon } = config.html;
33
+ const getDefaultFavicon = ()=>findExists(ICON_EXTENSIONS.map((ext)=>path.resolve(appContext.appDirectory, configDir || './config', `favicon.${ext}`)));
34
+ return favicon || getDefaultFavicon() || void 0;
35
+ }
36
+ }
37
+ function initSourceConfig(config, appContext) {
38
+ config.source.include = createBuilderInclude(config, appContext);
39
+ }
40
+ function createBuilderInclude(config, appContext) {
41
+ const { include } = config.source;
42
+ const defaultInclude = [
43
+ appContext.internalDirectory
44
+ ];
45
+ const transformInclude = (include || []).map((include)=>{
46
+ if ('string' == typeof include) {
47
+ if (isAbsolute(include)) return include;
48
+ return new RegExp(include);
49
+ }
50
+ return include;
51
+ }).concat(defaultInclude);
52
+ return transformInclude;
53
+ }
54
+ export { initHtmlConfig, initSourceConfig };
@@ -0,0 +1,3 @@
1
+ const DEFAULT_CONFIG_FILE = 'modern.config';
2
+ const DEFAULT_RUNTIME_CONFIG_FILE = 'modern.runtime';
3
+ export { DEFAULT_CONFIG_FILE, DEFAULT_RUNTIME_CONFIG_FILE };
@@ -0,0 +1,2 @@
1
+ const defineConfig = (config)=>config;
2
+ export { defineConfig };