@modern-js/app-tools 2.3.1-alpha.2 → 2.5.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 (362) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +14 -18
  3. package/dist/{js/node → cjs}/analyze/constants.js +0 -0
  4. package/dist/cjs/analyze/generateCode.js +249 -0
  5. package/dist/{js/node → cjs}/analyze/getBundleEntry.js +6 -0
  6. package/dist/{js/node → cjs}/analyze/getClientRoutes/getRoutes.js +1 -18
  7. package/dist/{js/node → cjs}/analyze/getClientRoutes/getRoutesLegacy.js +1 -18
  8. package/dist/{js/node → cjs}/analyze/getClientRoutes/index.js +0 -0
  9. package/dist/{js/node → cjs}/analyze/getClientRoutes/utils.js +0 -0
  10. package/dist/{js/node → cjs}/analyze/getFileSystemEntry.js +0 -0
  11. package/dist/{js/node → cjs}/analyze/getHtmlTemplate.js +4 -24
  12. package/dist/{js/node → cjs}/analyze/getServerRoutes.js +22 -42
  13. package/dist/cjs/analyze/index.js +290 -0
  14. package/dist/{js/node → cjs}/analyze/isDefaultExportFunction.js +0 -0
  15. package/dist/{js/node → cjs}/analyze/makeLegalIdentifier.js +0 -0
  16. package/dist/{js/node → cjs}/analyze/nestedRoutes.js +16 -50
  17. package/dist/{js/node → cjs}/analyze/templates.js +16 -49
  18. package/dist/{js/node → cjs}/analyze/utils.js +9 -29
  19. package/dist/cjs/builder/builder-rspack/index.js +31 -0
  20. package/dist/cjs/builder/builder-webpack/builderPlugins/compatModern.js +64 -0
  21. package/dist/cjs/builder/builder-webpack/index.js +78 -0
  22. package/dist/{js/node/builder/webpackPlugins/routerPlugin.js → cjs/builder/builder-webpack/webpackPlugins/RouterPlugin.js} +14 -29
  23. package/dist/cjs/builder/builder-webpack/webpackPlugins/index.js +17 -0
  24. package/dist/cjs/builder/generator/createBuilderOptions.js +47 -0
  25. package/dist/{js/node/config/initial/index.js → cjs/builder/generator/createBuilderProviderConfig.js} +26 -18
  26. package/dist/cjs/builder/generator/getBuilderTargets.js +39 -0
  27. package/dist/cjs/builder/generator/index.js +58 -0
  28. package/dist/cjs/builder/index.js +46 -0
  29. package/dist/{js/node/builder/builderPlugins/compatModern.js → cjs/builder/shared/builderPlugins/adapterModern.js} +109 -137
  30. package/dist/{js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js → cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js} +17 -20
  31. package/dist/{js/node/builder/webpackPlugins/htmlBottomTemplate.js → cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js} +21 -24
  32. package/dist/{js/node/builder/share.js → cjs/builder/shared/createCopyPattern.js} +3 -3
  33. package/dist/cjs/builder/shared/index.js +19 -0
  34. package/dist/{js/node/builder → cjs/builder/shared}/loaders/serverModuleLoader.js +0 -0
  35. package/dist/{js/node/utils → cjs/builder/shared}/types.js +0 -0
  36. package/dist/{js/node → cjs}/commands/build.js +9 -46
  37. package/dist/cjs/commands/deploy.js +31 -0
  38. package/dist/{js/node → cjs}/commands/dev.js +17 -52
  39. package/dist/{js/node → cjs}/commands/index.js +0 -0
  40. package/dist/{js/node → cjs}/commands/inspect.js +2 -22
  41. package/dist/{js/node → cjs}/commands/serve.js +8 -28
  42. package/dist/{js/node → cjs}/config/default.js +16 -27
  43. package/dist/cjs/config/index.js +19 -0
  44. package/dist/cjs/config/initialize/index.js +35 -0
  45. package/dist/{js/node/config/initial → cjs/config/initialize}/inits.js +8 -22
  46. package/dist/{js/node/config/initial → cjs/config/legacy}/createHtmlConfig.js +0 -0
  47. package/dist/{js/node/config/initial → cjs/config/legacy}/createOutputConfig.js +0 -0
  48. package/dist/{js/node/config/initial → cjs/config/legacy}/createSourceConfig.js +0 -0
  49. package/dist/{js/node/config/initial → cjs/config/legacy}/createToolsConfig.js +0 -0
  50. package/dist/{js/node/config/initial/transformNormalizedConfig.js → cjs/config/legacy/index.js} +8 -3
  51. package/dist/cjs/defineConfig.js +33 -0
  52. package/dist/{js/node → cjs}/exports/server.js +0 -0
  53. package/dist/{js/node → cjs}/hooks.js +0 -0
  54. package/dist/cjs/index.js +198 -0
  55. package/dist/cjs/initialize/index.js +102 -0
  56. package/dist/{js/node → cjs}/locale/en.js +0 -0
  57. package/dist/{js/node → cjs}/locale/index.js +0 -0
  58. package/dist/{js/node → cjs}/locale/zh.js +1 -1
  59. package/dist/{js/node → cjs}/schema/Schema.js +0 -0
  60. package/dist/{js/node → cjs}/schema/index.js +0 -0
  61. package/dist/{js/node → cjs}/schema/legacy.js +0 -0
  62. package/dist/{js/node → cjs}/types/config/deploy.js +0 -0
  63. package/dist/{js/node → cjs}/types/config/dev.js +0 -0
  64. package/dist/{js/node → cjs}/types/config/experiments.js +0 -0
  65. package/dist/{js/node → cjs}/types/config/html.js +0 -0
  66. package/dist/{js/node → cjs}/types/config/index.js +0 -0
  67. package/dist/{js/node → cjs}/types/config/output.js +0 -0
  68. package/dist/{js/node → cjs}/types/config/performance.js +0 -0
  69. package/dist/{js/node → cjs}/types/config/security.js +0 -0
  70. package/dist/{js/node → cjs}/types/config/source.js +0 -0
  71. package/dist/{js/node → cjs}/types/config/tools.js +0 -0
  72. package/dist/{js/node → cjs}/types/hooks.js +0 -0
  73. package/dist/{js/node → cjs}/types/index.js +0 -0
  74. package/dist/{js/node → cjs}/types/legacyConfig/deploy.js +0 -0
  75. package/dist/{js/node → cjs}/types/legacyConfig/dev.js +0 -0
  76. package/dist/{js/node → cjs}/types/legacyConfig/index.js +0 -0
  77. package/dist/{js/node → cjs}/types/legacyConfig/output.js +0 -0
  78. package/dist/{js/node → cjs}/types/legacyConfig/source.js +0 -0
  79. package/dist/{js/node → cjs}/types/legacyConfig/tools.js +0 -0
  80. package/dist/cjs/types/utils.js +15 -0
  81. package/dist/{js/node → cjs}/utils/config.js +19 -57
  82. package/dist/{js/node → cjs}/utils/createServer.js +10 -46
  83. package/dist/{js/node → cjs}/utils/env.js +0 -0
  84. package/dist/{js/node → cjs}/utils/generateWatchFiles.js +16 -38
  85. package/dist/{js/node → cjs}/utils/getSelectedEntries.js +3 -23
  86. package/dist/{js/node/config/index.js → cjs/utils/getServerInternalPlugins.js} +20 -13
  87. package/dist/{js/node → cjs}/utils/language.js +0 -0
  88. package/dist/{js/node → cjs}/utils/printInstructions.js +3 -23
  89. package/dist/cjs/utils/restart.js +45 -0
  90. package/dist/{js/node → cjs}/utils/routes.js +3 -23
  91. package/dist/cjs/utils/types.js +15 -0
  92. package/dist/{js/treeshaking → esm}/analyze/constants.js +0 -0
  93. package/dist/{js/treeshaking → esm}/analyze/generateCode.js +14 -14
  94. package/dist/{js/treeshaking → esm}/analyze/getBundleEntry.js +4 -2
  95. package/dist/{js/treeshaking → esm}/analyze/getClientRoutes/getRoutes.js +1 -1
  96. package/dist/{js/treeshaking → esm}/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
  97. package/dist/{js/treeshaking → esm}/analyze/getClientRoutes/index.js +0 -0
  98. package/dist/{js/treeshaking → esm}/analyze/getClientRoutes/utils.js +0 -0
  99. package/dist/{js/treeshaking → esm}/analyze/getFileSystemEntry.js +1 -1
  100. package/dist/{js/treeshaking → esm}/analyze/getHtmlTemplate.js +0 -0
  101. package/dist/{js/treeshaking → esm}/analyze/getServerRoutes.js +8 -6
  102. package/dist/{js/treeshaking → esm}/analyze/index.js +142 -137
  103. package/dist/{js/treeshaking → esm}/analyze/isDefaultExportFunction.js +0 -0
  104. package/dist/{js/treeshaking → esm}/analyze/makeLegalIdentifier.js +0 -0
  105. package/dist/{js/treeshaking → esm}/analyze/nestedRoutes.js +5 -5
  106. package/dist/{js/treeshaking → esm}/analyze/templates.js +8 -7
  107. package/dist/{js/treeshaking → esm}/analyze/utils.js +3 -3
  108. package/dist/esm/builder/builder-rspack/index.js +6 -0
  109. package/dist/esm/builder/builder-webpack/builderPlugins/compatModern.js +64 -0
  110. package/dist/{js/treeshaking/builder → esm/builder/builder-webpack}/index.js +44 -117
  111. package/dist/{js/treeshaking/builder/webpackPlugins/routerPlugin.js → esm/builder/builder-webpack/webpackPlugins/RouterPlugin.js} +6 -3
  112. package/dist/esm/builder/builder-webpack/webpackPlugins/index.js +1 -0
  113. package/dist/esm/builder/generator/createBuilderOptions.js +41 -0
  114. package/dist/esm/builder/generator/createBuilderProviderConfig.js +70 -0
  115. package/dist/esm/builder/generator/getBuilderTargets.js +16 -0
  116. package/dist/esm/builder/generator/index.js +199 -0
  117. package/dist/esm/builder/index.js +175 -0
  118. package/dist/{js/treeshaking/builder/builderPlugins/compatModern.js → esm/builder/shared/builderPlugins/adapterModern.js} +138 -142
  119. package/dist/{js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js → esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js} +0 -0
  120. package/dist/{js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js → esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js} +2 -2
  121. package/dist/{js/treeshaking/builder/share.js → esm/builder/shared/createCopyPattern.js} +0 -0
  122. package/dist/esm/builder/shared/index.js +3 -0
  123. package/dist/{js/treeshaking/builder → esm/builder/shared}/loaders/serverModuleLoader.js +0 -0
  124. package/dist/{js/treeshaking/utils → esm/builder/shared}/types.js +0 -0
  125. package/dist/{js/treeshaking → esm}/commands/build.js +0 -0
  126. package/dist/{js/treeshaking → esm}/commands/deploy.js +0 -0
  127. package/dist/{js/treeshaking → esm}/commands/dev.js +2 -2
  128. package/dist/{js/treeshaking → esm}/commands/index.js +0 -0
  129. package/dist/{js/treeshaking → esm}/commands/inspect.js +0 -0
  130. package/dist/{js/treeshaking → esm}/commands/serve.js +2 -2
  131. package/dist/{js/treeshaking → esm}/config/default.js +2 -2
  132. package/dist/esm/config/index.js +3 -0
  133. package/dist/esm/config/initialize/index.js +10 -0
  134. package/dist/{js/treeshaking/config/initial → esm/config/initialize}/inits.js +6 -4
  135. package/dist/esm/config/legacy/createHtmlConfig.js +19 -0
  136. package/dist/{js/treeshaking/config/initial → esm/config/legacy}/createOutputConfig.js +1 -1
  137. package/dist/{js/treeshaking/config/initial → esm/config/legacy}/createSourceConfig.js +1 -1
  138. package/dist/{js/treeshaking/config/initial → esm/config/legacy}/createToolsConfig.js +1 -1
  139. package/dist/{js/treeshaking/config/initial/transformNormalizedConfig.js → esm/config/legacy/index.js} +4 -1
  140. package/dist/{js/treeshaking → esm}/defineConfig.js +0 -0
  141. package/dist/{js/treeshaking → esm}/exports/server.js +0 -0
  142. package/dist/{js/treeshaking → esm}/hooks.js +0 -0
  143. package/dist/{js/treeshaking → esm}/index.js +19 -12
  144. package/dist/{js/treeshaking → esm}/initialize/index.js +36 -28
  145. package/dist/{js/treeshaking → esm}/locale/en.js +0 -0
  146. package/dist/{js/treeshaking → esm}/locale/index.js +0 -0
  147. package/dist/{js/treeshaking → esm}/locale/zh.js +1 -1
  148. package/dist/{js/treeshaking → esm}/schema/Schema.js +0 -0
  149. package/dist/{js/treeshaking → esm}/schema/index.js +0 -0
  150. package/dist/{js/treeshaking → esm}/schema/legacy.js +0 -0
  151. package/dist/{js/treeshaking → esm}/types/config/deploy.js +0 -0
  152. package/dist/{js/treeshaking → esm}/types/config/dev.js +0 -0
  153. package/dist/{js/treeshaking → esm}/types/config/experiments.js +0 -0
  154. package/dist/{js/treeshaking → esm}/types/config/html.js +0 -0
  155. package/dist/{js/treeshaking → esm}/types/config/index.js +0 -0
  156. package/dist/{js/treeshaking → esm}/types/config/output.js +0 -0
  157. package/dist/{js/treeshaking → esm}/types/config/performance.js +0 -0
  158. package/dist/{js/treeshaking → esm}/types/config/security.js +0 -0
  159. package/dist/{js/treeshaking → esm}/types/config/source.js +0 -0
  160. package/dist/{js/treeshaking → esm}/types/config/tools.js +0 -0
  161. package/dist/{js/treeshaking → esm}/types/hooks.js +0 -0
  162. package/dist/{js/treeshaking → esm}/types/index.js +0 -0
  163. package/dist/{js/treeshaking → esm}/types/legacyConfig/deploy.js +0 -0
  164. package/dist/{js/treeshaking → esm}/types/legacyConfig/dev.js +0 -0
  165. package/dist/{js/treeshaking → esm}/types/legacyConfig/index.js +0 -0
  166. package/dist/{js/treeshaking → esm}/types/legacyConfig/output.js +0 -0
  167. package/dist/{js/treeshaking → esm}/types/legacyConfig/source.js +0 -0
  168. package/dist/{js/treeshaking → esm}/types/legacyConfig/tools.js +0 -0
  169. package/dist/esm/types/utils.js +1 -0
  170. package/dist/{js/treeshaking → esm}/utils/config.js +2 -2
  171. package/dist/{js/treeshaking → esm}/utils/createServer.js +0 -0
  172. package/dist/{js/treeshaking → esm}/utils/env.js +0 -0
  173. package/dist/{js/treeshaking → esm}/utils/generateWatchFiles.js +0 -0
  174. package/dist/{js/treeshaking → esm}/utils/getSelectedEntries.js +0 -0
  175. package/dist/{js/treeshaking → esm}/utils/getServerInternalPlugins.js +2 -2
  176. package/dist/{js/treeshaking → esm}/utils/language.js +0 -0
  177. package/dist/{js/treeshaking → esm}/utils/printInstructions.js +0 -0
  178. package/dist/{js/treeshaking → esm}/utils/restart.js +0 -0
  179. package/dist/{js/treeshaking → esm}/utils/routes.js +0 -0
  180. package/dist/esm/utils/types.js +1 -0
  181. package/dist/{js/modern → esm-node}/analyze/constants.js +0 -0
  182. package/dist/esm-node/analyze/generateCode.js +225 -0
  183. package/dist/{js/modern → esm-node}/analyze/getBundleEntry.js +6 -0
  184. package/dist/{js/modern → esm-node}/analyze/getClientRoutes/getRoutes.js +1 -20
  185. package/dist/{js/modern → esm-node}/analyze/getClientRoutes/getRoutesLegacy.js +1 -20
  186. package/dist/{js/modern → esm-node}/analyze/getClientRoutes/index.js +0 -0
  187. package/dist/{js/modern → esm-node}/analyze/getClientRoutes/utils.js +0 -0
  188. package/dist/{js/modern → esm-node}/analyze/getFileSystemEntry.js +0 -0
  189. package/dist/{js/modern → esm-node}/analyze/getHtmlTemplate.js +4 -24
  190. package/dist/{js/modern → esm-node}/analyze/getServerRoutes.js +24 -45
  191. package/dist/esm-node/analyze/index.js +281 -0
  192. package/dist/{js/modern → esm-node}/analyze/isDefaultExportFunction.js +0 -0
  193. package/dist/{js/modern → esm-node}/analyze/makeLegalIdentifier.js +0 -0
  194. package/dist/{js/modern → esm-node}/analyze/nestedRoutes.js +16 -52
  195. package/dist/{js/modern → esm-node}/analyze/templates.js +16 -51
  196. package/dist/{js/modern → esm-node}/analyze/utils.js +9 -29
  197. package/dist/esm-node/builder/builder-rspack/index.js +8 -0
  198. package/dist/esm-node/builder/builder-webpack/builderPlugins/compatModern.js +41 -0
  199. package/dist/esm-node/builder/builder-webpack/index.js +51 -0
  200. package/dist/{js/modern/builder/webpackPlugins/routerPlugin.js → esm-node/builder/builder-webpack/webpackPlugins/RouterPlugin.js} +8 -25
  201. package/dist/esm-node/builder/builder-webpack/webpackPlugins/index.js +1 -0
  202. package/dist/esm-node/builder/generator/createBuilderOptions.js +24 -0
  203. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +26 -0
  204. package/dist/esm-node/builder/generator/getBuilderTargets.js +21 -0
  205. package/dist/esm-node/builder/generator/index.js +29 -0
  206. package/dist/esm-node/builder/index.js +17 -0
  207. package/dist/{js/modern/builder/builderPlugins/compatModern.js → esm-node/builder/shared/builderPlugins/adapterModern.js} +104 -135
  208. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +27 -0
  209. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +34 -0
  210. package/dist/{js/modern/builder/share.js → esm-node/builder/shared/createCopyPattern.js} +0 -0
  211. package/dist/esm-node/builder/shared/index.js +3 -0
  212. package/dist/{js/modern/builder → esm-node/builder/shared}/loaders/serverModuleLoader.js +0 -0
  213. package/dist/{js/modern/utils → esm-node/builder/shared}/types.js +0 -0
  214. package/dist/esm-node/commands/build.js +52 -0
  215. package/dist/esm-node/commands/deploy.js +8 -0
  216. package/dist/esm-node/commands/dev.js +72 -0
  217. package/dist/{js/modern → esm-node}/commands/index.js +0 -0
  218. package/dist/esm-node/commands/inspect.js +18 -0
  219. package/dist/{js/modern → esm-node}/commands/serve.js +8 -28
  220. package/dist/{js/modern → esm-node}/config/default.js +16 -29
  221. package/dist/esm-node/config/index.js +3 -0
  222. package/dist/esm-node/config/initialize/index.js +12 -0
  223. package/dist/{js/modern/config/initial → esm-node/config/initialize}/inits.js +8 -24
  224. package/dist/{js/modern/config/initial → esm-node/config/legacy}/createHtmlConfig.js +0 -0
  225. package/dist/{js/modern/config/initial → esm-node/config/legacy}/createOutputConfig.js +0 -0
  226. package/dist/{js/modern/config/initial → esm-node/config/legacy}/createSourceConfig.js +0 -0
  227. package/dist/{js/modern/config/initial → esm-node/config/legacy}/createToolsConfig.js +0 -0
  228. package/dist/{js/modern/config/initial/transformNormalizedConfig.js → esm-node/config/legacy/index.js} +4 -0
  229. package/dist/esm-node/defineConfig.js +9 -0
  230. package/dist/{js/modern → esm-node}/exports/server.js +0 -0
  231. package/dist/{js/modern → esm-node}/hooks.js +0 -0
  232. package/dist/esm-node/index.js +172 -0
  233. package/dist/esm-node/initialize/index.js +91 -0
  234. package/dist/{js/modern → esm-node}/locale/en.js +0 -0
  235. package/dist/{js/modern → esm-node}/locale/index.js +0 -0
  236. package/dist/{js/modern → esm-node}/locale/zh.js +1 -1
  237. package/dist/{js/modern → esm-node}/schema/Schema.js +0 -0
  238. package/dist/{js/modern → esm-node}/schema/index.js +0 -0
  239. package/dist/{js/modern → esm-node}/schema/legacy.js +0 -0
  240. package/dist/{js/modern → esm-node}/types/config/deploy.js +0 -0
  241. package/dist/{js/modern → esm-node}/types/config/dev.js +0 -0
  242. package/dist/{js/modern → esm-node}/types/config/experiments.js +0 -0
  243. package/dist/{js/modern → esm-node}/types/config/html.js +0 -0
  244. package/dist/{js/modern → esm-node}/types/config/index.js +0 -0
  245. package/dist/{js/modern → esm-node}/types/config/output.js +0 -0
  246. package/dist/{js/modern → esm-node}/types/config/performance.js +0 -0
  247. package/dist/{js/modern → esm-node}/types/config/security.js +0 -0
  248. package/dist/{js/modern → esm-node}/types/config/source.js +0 -0
  249. package/dist/{js/modern → esm-node}/types/config/tools.js +0 -0
  250. package/dist/{js/modern → esm-node}/types/hooks.js +0 -0
  251. package/dist/{js/modern → esm-node}/types/index.js +0 -0
  252. package/dist/{js/modern → esm-node}/types/legacyConfig/deploy.js +0 -0
  253. package/dist/{js/modern → esm-node}/types/legacyConfig/dev.js +0 -0
  254. package/dist/{js/modern → esm-node}/types/legacyConfig/index.js +0 -0
  255. package/dist/{js/modern → esm-node}/types/legacyConfig/output.js +0 -0
  256. package/dist/{js/modern → esm-node}/types/legacyConfig/source.js +0 -0
  257. package/dist/{js/modern → esm-node}/types/legacyConfig/tools.js +0 -0
  258. package/dist/esm-node/types/utils.js +0 -0
  259. package/dist/esm-node/utils/config.js +88 -0
  260. package/dist/esm-node/utils/createServer.js +37 -0
  261. package/dist/{js/modern → esm-node}/utils/env.js +0 -0
  262. package/dist/esm-node/utils/generateWatchFiles.js +33 -0
  263. package/dist/{js/modern → esm-node}/utils/getSelectedEntries.js +3 -23
  264. package/dist/esm-node/utils/getServerInternalPlugins.js +18 -0
  265. package/dist/{js/modern → esm-node}/utils/language.js +0 -0
  266. package/dist/esm-node/utils/printInstructions.js +11 -0
  267. package/dist/esm-node/utils/restart.js +22 -0
  268. package/dist/esm-node/utils/routes.js +10 -0
  269. package/dist/esm-node/utils/types.js +0 -0
  270. package/dist/types/analyze/generateCode.d.ts +1 -1
  271. package/dist/types/analyze/getBundleEntry.d.ts +1 -1
  272. package/dist/types/analyze/getFileSystemEntry.d.ts +1 -1
  273. package/dist/types/analyze/getHtmlTemplate.d.ts +2 -2
  274. package/dist/types/analyze/getServerRoutes.d.ts +1 -1
  275. package/dist/types/analyze/index.d.ts +5 -1
  276. package/dist/types/builder/builder-rspack/index.d.ts +2 -0
  277. package/dist/types/builder/{builderPlugins → builder-webpack/builderPlugins}/compatModern.d.ts +2 -2
  278. package/dist/types/builder/builder-webpack/index.d.ts +4 -0
  279. package/dist/types/builder/{webpackPlugins/routerPlugin.d.ts → builder-webpack/webpackPlugins/RouterPlugin.d.ts} +1 -1
  280. package/dist/types/builder/builder-webpack/webpackPlugins/index.d.ts +1 -0
  281. package/dist/types/builder/generator/createBuilderOptions.d.ts +3 -0
  282. package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +2 -0
  283. package/dist/types/builder/generator/getBuilderTargets.d.ts +3 -0
  284. package/dist/types/builder/generator/index.d.ts +17 -0
  285. package/dist/types/builder/index.d.ts +1 -18
  286. package/dist/types/builder/shared/builderPlugins/adapterModern.d.ts +13 -0
  287. package/dist/types/builder/{webpackPlugins/htmlAsyncChunkPlugin.d.ts → shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts} +2 -1
  288. package/dist/types/builder/{webpackPlugins/htmlBottomTemplate.d.ts → shared/bundlerPlugins/HtmlBottomTemplate.d.ts} +2 -1
  289. package/dist/types/builder/{share.d.ts → shared/createCopyPattern.d.ts} +1 -1
  290. package/dist/types/builder/shared/index.d.ts +3 -0
  291. package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +4 -0
  292. package/dist/types/builder/shared/types.d.ts +16 -0
  293. package/dist/types/commands/build.d.ts +1 -1
  294. package/dist/types/commands/deploy.d.ts +1 -1
  295. package/dist/types/commands/dev.d.ts +1 -1
  296. package/dist/types/commands/inspect.d.ts +1 -1
  297. package/dist/types/commands/serve.d.ts +1 -1
  298. package/dist/types/config/default.d.ts +1 -1
  299. package/dist/types/config/index.d.ts +3 -2
  300. package/dist/types/config/initialize/index.d.ts +2 -0
  301. package/dist/types/config/{initial → initialize}/inits.d.ts +3 -3
  302. package/dist/types/config/{initial → legacy}/createHtmlConfig.d.ts +1 -1
  303. package/dist/types/config/{initial → legacy}/createOutputConfig.d.ts +1 -1
  304. package/dist/types/config/{initial → legacy}/createSourceConfig.d.ts +1 -1
  305. package/dist/types/config/{initial → legacy}/createToolsConfig.d.ts +1 -1
  306. package/dist/types/config/legacy/index.d.ts +3 -0
  307. package/dist/types/defineConfig.d.ts +2 -2
  308. package/dist/types/index.d.ts +7 -3
  309. package/dist/types/initialize/index.d.ts +6 -2
  310. package/dist/types/types/config/deploy.d.ts +1 -2
  311. package/dist/types/types/config/dev.d.ts +2 -3
  312. package/dist/types/types/config/experiments.d.ts +1 -2
  313. package/dist/types/types/config/html.d.ts +5 -3
  314. package/dist/types/types/config/index.d.ts +41 -48
  315. package/dist/types/types/config/output.d.ts +8 -3
  316. package/dist/types/types/config/performance.d.ts +6 -3
  317. package/dist/types/types/config/security.d.ts +3 -3
  318. package/dist/types/types/config/source.d.ts +7 -3
  319. package/dist/types/types/config/tools.d.ts +10 -4
  320. package/dist/types/types/hooks.d.ts +6 -4
  321. package/dist/types/types/index.d.ts +19 -7
  322. package/dist/types/types/utils.d.ts +7 -0
  323. package/dist/types/utils/config.d.ts +1 -1
  324. package/dist/types/utils/getServerInternalPlugins.d.ts +1 -1
  325. package/dist/types/utils/printInstructions.d.ts +1 -1
  326. package/package.json +40 -32
  327. package/dist/js/modern/analyze/generateCode.js +0 -247
  328. package/dist/js/modern/analyze/index.js +0 -332
  329. package/dist/js/modern/builder/index.js +0 -159
  330. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
  331. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
  332. package/dist/js/modern/commands/build.js +0 -91
  333. package/dist/js/modern/commands/deploy.js +0 -28
  334. package/dist/js/modern/commands/dev.js +0 -109
  335. package/dist/js/modern/commands/inspect.js +0 -38
  336. package/dist/js/modern/config/index.js +0 -8
  337. package/dist/js/modern/config/initial/index.js +0 -16
  338. package/dist/js/modern/defineConfig.js +0 -27
  339. package/dist/js/modern/index.js +0 -211
  340. package/dist/js/modern/initialize/index.js +0 -124
  341. package/dist/js/modern/utils/config.js +0 -128
  342. package/dist/js/modern/utils/createServer.js +0 -75
  343. package/dist/js/modern/utils/generateWatchFiles.js +0 -55
  344. package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
  345. package/dist/js/modern/utils/printInstructions.js +0 -31
  346. package/dist/js/modern/utils/restart.js +0 -44
  347. package/dist/js/modern/utils/routes.js +0 -30
  348. package/dist/js/node/analyze/generateCode.js +0 -271
  349. package/dist/js/node/analyze/index.js +0 -339
  350. package/dist/js/node/builder/index.js +0 -177
  351. package/dist/js/node/commands/deploy.js +0 -51
  352. package/dist/js/node/defineConfig.js +0 -49
  353. package/dist/js/node/index.js +0 -235
  354. package/dist/js/node/initialize/index.js +0 -134
  355. package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
  356. package/dist/js/node/utils/restart.js +0 -67
  357. package/dist/js/treeshaking/config/index.js +0 -3
  358. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
  359. package/dist/js/treeshaking/config/initial/index.js +0 -12
  360. package/dist/types/builder/loaders/serverModuleLoader.d.ts +0 -3
  361. package/dist/types/config/initial/index.d.ts +0 -4
  362. package/dist/types/config/initial/transformNormalizedConfig.d.ts +0 -2
@@ -4,9 +4,13 @@ import { AppTools } from './types';
4
4
  export * from './defineConfig';
5
5
  export * from './types';
6
6
  export type { RuntimeUserConfig } from './types/config';
7
- export declare const devCommand: (program: Command, api: PluginAPI<AppTools>) => Promise<void>;
8
- export declare const buildCommand: (program: Command, api: PluginAPI<AppTools>) => Promise<void>;
7
+ export declare const devCommand: (program: Command, api: PluginAPI<AppTools<'shared'>>) => Promise<void>;
8
+ export declare const buildCommand: (program: Command, api: PluginAPI<AppTools<'shared'>>) => Promise<void>;
9
+ interface AppToolsOptions {
10
+ /** Specify the use what kind of bundler to compiler, default: `webpack` */
11
+ bundler?: 'experimental-rspack' | 'webpack';
12
+ }
9
13
 
10
- declare const _default: () => CliPlugin<AppTools>;
14
+ declare const _default: (options?: AppToolsOptions) => CliPlugin<AppTools<'shared'>>;
11
15
 
12
16
  export default _default;
@@ -1,5 +1,9 @@
1
- import { CliPlugin, AppTools } from '../types';
1
+ import type { CliPlugin, AppTools } from '../types';
2
2
 
3
- declare const _default: () => CliPlugin<AppTools>;
3
+ declare const _default: ({
4
+ bundler
5
+ }: {
6
+ bundler: 'rspack' | 'webpack';
7
+ }) => CliPlugin<AppTools<'shared'>>;
4
8
 
5
9
  export default _default;
@@ -5,5 +5,4 @@ export interface MicroFrontend {
5
5
  }
6
6
  export interface DeployUserConfig {
7
7
  microFrontend?: boolean | MicroFrontend;
8
- }
9
- export type DeployNormalizedConfig = DeployUserConfig;
8
+ }
@@ -1,5 +1,5 @@
1
- import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- type BuilderDevConfig = Required<BuilderConfig>['dev'];
1
+ import type { SharedBuilderConfig } from '@modern-js/builder-shared';
2
+ type BuilderDevConfig = Required<SharedBuilderConfig>['dev'];
3
3
  export type DevProxyOptions = string | Record<string, string>;
4
4
  export interface DevUserConfig extends BuilderDevConfig {
5
5
  /**
@@ -9,5 +9,4 @@ export interface DevUserConfig extends BuilderDevConfig {
9
9
  */
10
10
  proxy?: string | Record<string, string>;
11
11
  }
12
- export type DevNormalizedConfig = DevUserConfig;
13
12
  export {};
@@ -1,4 +1,3 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
2
  export type BuilderExperimentsConfig = Required<BuilderConfig>['experiments'];
3
- export type ExperimentsUserConfig = BuilderExperimentsConfig;
4
- export type ExperimentsNormalizedConfig = ExperimentsUserConfig;
3
+ export type ExperimentsUserConfig = BuilderExperimentsConfig;
@@ -1,4 +1,6 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- export type BuilderHtmlConfig = Required<BuilderConfig>['html'];
3
- export type HtmlUserConfig = BuilderHtmlConfig;
4
- export type HtmlNormalizedConfig = HtmlUserConfig;
2
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
3
+ import { UnwrapBuilderConfig } from '../utils';
4
+ export type { SharedHtmlConfig } from '@modern-js/builder-shared';
5
+ export type HtmlUserConfig = UnwrapBuilderConfig<BuilderConfig, 'html'>;
6
+ export type RsHtmlUserConfig = UnwrapBuilderConfig<RsBuilderConfig, 'html'>;
@@ -1,16 +1,14 @@
1
- import type { UserConfig } from '@modern-js/core';
2
- import type { ServerUserConfig, ServerNormalizedConfig, BffUserConfig, BffNormalizedConfig } from '@modern-js/server-core';
1
+ import type { ServerUserConfig, BffUserConfig } from '@modern-js/server-core';
3
2
  import type { BuilderPlugin } from '@modern-js/builder-webpack-provider';
4
- import type { AppToolsHooks } from '../hooks';
5
- import type { OutputNormalizedConfig, OutputUserConfig } from './output';
6
- import type { SourceNormalizedConfig, SourceUserConfig } from './source';
7
- import type { DevNormalizedConfig, DevUserConfig } from './dev';
8
- import type { ToolsNormalizedConfig, ToolsUserConfig } from './tools';
9
- import type { HtmlNormalizedConfig, HtmlUserConfig } from './html';
10
- import type { SecurityNormalizedConfig, SecurityUserConfig } from './security';
11
- import type { DeployNormalizedConfig, DeployUserConfig } from './deploy';
12
- import type { ExperimentsUserConfig, ExperimentsNormalizedConfig } from './experiments';
13
- import type { PerformanceNormalizedConfig, PerformanceUserConfig } from './performance';
3
+ import type { OutputUserConfig, RsOutputUserConfig, SharedOutputConfig } from './output';
4
+ import type { RsSourceUserConfig, SharedSourceConfig, SourceUserConfig } from './source';
5
+ import type { DevUserConfig } from './dev';
6
+ import type { RsToolsUserConfig, SharedToolsConfig, ToolsUserConfig } from './tools';
7
+ import type { HtmlUserConfig, RsHtmlUserConfig, SharedHtmlConfig } from './html';
8
+ import type { SecurityUserConfig } from './security';
9
+ import type { DeployUserConfig } from './deploy';
10
+ import type { ExperimentsUserConfig } from './experiments';
11
+ import type { PerformanceUserConfig, RsPerformanceConfig, SharedPerformanceConfig } from './performance';
14
12
  export * from './output';
15
13
  export interface RuntimeUserConfig {
16
14
  [name: string]: any;
@@ -18,22 +16,10 @@ export interface RuntimeUserConfig {
18
16
  export interface RuntimeByEntriesUserConfig {
19
17
  [name: string]: RuntimeUserConfig;
20
18
  }
21
- export type RuntimeNormalizedConfig = RuntimeUserConfig;
22
- export type RuntimeByEntriesNormalizedConfig = RuntimeByEntriesUserConfig;
23
- export interface AppToolsUserConfig {
24
- source?: SourceUserConfig;
25
- output?: OutputUserConfig;
19
+ export type SharedUserConfig = {
26
20
  server?: ServerUserConfig;
27
- dev?: DevUserConfig;
28
- deploy?: DeployUserConfig;
29
- html?: HtmlUserConfig;
30
- tools?: ToolsUserConfig;
31
- runtime?: RuntimeUserConfig;
32
- security?: SecurityUserConfig;
33
- runtimeByEntries?: RuntimeByEntriesUserConfig;
34
- performance?: PerformanceUserConfig;
35
- experiments?: ExperimentsUserConfig;
36
- builderPlugins?: BuilderPlugin[];
21
+ source?: SharedSourceConfig;
22
+ output?: SharedOutputConfig;
37
23
  /**
38
24
  * The configuration of `bff` is provided by `bff` plugin.
39
25
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
@@ -41,26 +27,33 @@ export interface AppToolsUserConfig {
41
27
  */
42
28
 
43
29
  bff?: BffUserConfig;
30
+ dev?: DevUserConfig;
31
+ deploy?: DeployUserConfig;
32
+ runtime?: RuntimeUserConfig;
33
+ runtimeByEntries?: RuntimeByEntriesUserConfig;
34
+ html?: SharedHtmlConfig;
35
+ tools?: SharedToolsConfig;
36
+ builderPlugins?: BuilderPlugin[];
37
+ performance?: SharedPerformanceConfig;
38
+ };
39
+ export interface AppToolsUserConfig extends SharedUserConfig {
40
+ source?: SourceUserConfig;
41
+ output?: OutputUserConfig;
42
+ html?: HtmlUserConfig;
43
+ tools?: ToolsUserConfig;
44
+ security?: SecurityUserConfig;
45
+ performance?: PerformanceUserConfig;
46
+ experiments?: ExperimentsUserConfig;
47
+ }
48
+ export interface RsAppToolsUserConfig extends SharedUserConfig {
49
+ source?: RsSourceUserConfig;
50
+ output?: RsOutputUserConfig;
51
+ html?: RsHtmlUserConfig;
52
+ tools?: RsToolsUserConfig;
53
+ performance?: RsPerformanceConfig;
44
54
  }
45
- export type AppToolsNormalizedConfig = {
46
- source: SourceNormalizedConfig;
47
- bff: BffNormalizedConfig;
48
- dev: DevNormalizedConfig;
49
- deploy: DeployNormalizedConfig;
50
- html: HtmlNormalizedConfig;
51
- runtime: RuntimeNormalizedConfig;
52
- runtimeByEntries: RuntimeByEntriesNormalizedConfig;
53
- output: OutputNormalizedConfig;
54
- security: SecurityNormalizedConfig;
55
- server: ServerNormalizedConfig;
56
- tools: ToolsNormalizedConfig;
57
- performance: PerformanceNormalizedConfig;
58
- experiments: ExperimentsNormalizedConfig;
59
- builderPlugins: BuilderPlugin[];
55
+ interface SharedNormalizedConfig<RawConfig> {
60
56
  cliOptions?: Record<string, any>;
61
- _raw: UserConfig<{
62
- hooks: AppToolsHooks;
63
- userConfig: AppToolsUserConfig;
64
- normalizedConfig: AppToolsNormalizedConfig;
65
- }>;
66
- };
57
+ _raw: RawConfig;
58
+ }
59
+ export type AppToolsNormalizedConfig<Config = SharedUserConfig> = Required<Config> & SharedNormalizedConfig<Config>;
@@ -1,10 +1,15 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- export type BuilderOutputConfig = Required<BuilderConfig>['output'];
3
- export interface OutputUserConfig extends BuilderOutputConfig {
2
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
3
+ import type { SharedOutputConfig as BuilderSharedOutputConfig } from '@modern-js/builder-shared';
4
+ import { UnwrapBuilderConfig } from '../utils';
5
+ export type BuilderOutputConfig = UnwrapBuilderConfig<BuilderConfig, 'output'>;
6
+ export type RsBuilderOutputConfig = UnwrapBuilderConfig<RsBuilderConfig, 'output'>;
7
+ export interface SharedOutputConfig extends BuilderSharedOutputConfig {
4
8
  ssg?: SSGConfig;
5
9
  disableNodePolyfill?: boolean;
6
10
  }
7
- export type OutputNormalizedConfig = OutputUserConfig;
11
+ export interface OutputUserConfig extends BuilderOutputConfig, SharedOutputConfig {}
12
+ export interface RsOutputUserConfig extends RsBuilderOutputConfig, SharedOutputConfig {}
8
13
  export type SSGRouteOptions = string | {
9
14
  url: string;
10
15
  output?: string;
@@ -1,4 +1,7 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- export type BuilderPerformanceConfig = Required<BuilderConfig>['performance'];
3
- export type PerformanceUserConfig = BuilderPerformanceConfig;
4
- export type PerformanceNormalizedConfig = PerformanceUserConfig;
2
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
3
+ import { UnwrapBuilderConfig } from '../utils';
4
+ export type { SharedPerformanceConfig } from '@modern-js/builder-shared';
5
+ export type BuilderPerformanceConfig = UnwrapBuilderConfig<BuilderConfig, 'performance'>;
6
+ export type RsPerformanceConfig = UnwrapBuilderConfig<RsBuilderConfig, 'performance'>;
7
+ export type PerformanceUserConfig = BuilderPerformanceConfig;
@@ -1,4 +1,4 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- export type BuilderSecurityConfig = Required<BuilderConfig>['security'];
3
- export type SecurityUserConfig = BuilderSecurityConfig;
4
- export type SecurityNormalizedConfig = SecurityUserConfig;
2
+ import { UnwrapBuilderConfig } from '../utils';
3
+ export type BuilderSecurityConfig = UnwrapBuilderConfig<BuilderConfig, 'security'>;
4
+ export type SecurityUserConfig = BuilderSecurityConfig;
@@ -1,12 +1,15 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
- export type BuilderSourceConfig = Required<BuilderConfig>['source'];
2
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
3
+ import type { SharedSourceConfig as BuilderSharedSourceConfig } from '@modern-js/builder-shared';
4
+ export type BuilderSourceConfig = NonNullable<BuilderConfig['source']>;
5
+ export type RsBuilderSourceConfig = NonNullable<RsBuilderConfig['source']>;
3
6
  export type Entry = string | {
4
7
  entry: string;
5
8
  disableMount?: boolean;
6
9
  customBootstrap?: string;
7
10
  };
8
11
  export type Entries = Record<string, Entry>;
9
- export interface SourceUserConfig extends BuilderSourceConfig {
12
+ export interface SharedSourceConfig extends BuilderSharedSourceConfig {
10
13
  entries?: Entries;
11
14
  enableAsyncEntry?: boolean;
12
15
  disableDefaultEntries?: boolean;
@@ -21,4 +24,5 @@ export interface SourceUserConfig extends BuilderSourceConfig {
21
24
 
22
25
  designSystem?: Record<string, any>;
23
26
  }
24
- export type SourceNormalizedConfig = SourceUserConfig;
27
+ export interface SourceUserConfig extends BuilderSourceConfig, SharedSourceConfig {}
28
+ export interface RsSourceUserConfig extends RsBuilderSourceConfig, SharedSourceConfig {}
@@ -2,7 +2,13 @@ import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
2
  import type { JestConfig } from '@modern-js/core';
3
3
  import type { PluginSwcOptions } from '@modern-js/builder-plugin-swc';
4
4
  import type { PluginEsbuildOptions } from '@modern-js/builder-plugin-esbuild';
5
- export type BuilderToolsConfig = Required<BuilderConfig>['tools'];
5
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
6
+ import type { SharedToolsConfig as BuilderSharedToolsConfig } from '@modern-js/builder-shared';
7
+ import type { UnwrapBuilderConfig } from '../utils';
8
+ export type BuilderToolsConfig = UnwrapBuilderConfig<BuilderConfig, 'tools'> & {
9
+ esbuild?: PluginEsbuildOptions;
10
+ };
11
+ export type RsBuilderToolsConfig = UnwrapBuilderConfig<RsBuilderConfig, 'tools'>;
6
12
  /**
7
13
  * The configuration of `tools.tailwindcss` is provided by `tailwindcss` plugin.
8
14
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
@@ -10,10 +16,9 @@ export type BuilderToolsConfig = Required<BuilderConfig>['tools'];
10
16
  */
11
17
 
12
18
  export type Tailwindcss = Record<string, any> | ((options: Record<string, any>) => Record<string, any> | void);
13
- export interface ToolsUserConfig extends BuilderToolsConfig {
19
+ export interface SharedToolsConfig extends BuilderSharedToolsConfig {
14
20
  tailwindcss?: Tailwindcss;
15
21
  jest?: JestConfig | ((jestConfig: JestConfig) => JestConfig);
16
- esbuild?: PluginEsbuildOptions;
17
22
  /**
18
23
  * The configuration of `swc` is provided by `swc` plugin.
19
24
  * @requires `swc` plugin
@@ -21,4 +26,5 @@ export interface ToolsUserConfig extends BuilderToolsConfig {
21
26
 
22
27
  swc?: PluginSwcOptions;
23
28
  }
24
- export type ToolsNormalizedConfig = ToolsUserConfig;
29
+ export interface ToolsUserConfig extends BuilderToolsConfig, SharedToolsConfig {}
30
+ export interface RsToolsUserConfig extends SharedToolsConfig, RsBuilderToolsConfig {}
@@ -3,6 +3,8 @@ import type { AsyncWaterfall, AsyncWorkflow, ParallelWorkflow } from '@modern-js
3
3
  import type { Entrypoint, HtmlPartials, NestedRoute, PageRoute, RouteLegacy, ServerRoute } from '@modern-js/types';
4
4
  import type { RegisterBuildPlatformResult, DevToolData } from '@modern-js/core';
5
5
  import type { Stats, MultiStats } from '@modern-js/builder-shared';
6
+ import type { Rspack } from '@modern-js/builder-rspack-provider';
7
+ import { Bundler } from './utils';
6
8
  export interface ImportSpecifier {
7
9
  local?: string;
8
10
  imported?: string;
@@ -17,7 +19,7 @@ export interface RuntimePlugin {
17
19
  options: string;
18
20
  args?: string;
19
21
  }
20
- export type AppToolsHooks = {
22
+ export type AppToolsHooks<B extends Bundler = 'webpack'> = {
21
23
  modifyEntryExport: AsyncWaterfall<{
22
24
  entrypoint: Entrypoint;
23
25
  exportStatement: string;
@@ -60,16 +62,16 @@ export type AppToolsHooks = {
60
62
  beforeDev: AsyncWorkflow<void, unknown>;
61
63
  afterDev: AsyncWorkflow<void, unknown>;
62
64
  beforeCreateCompiler: AsyncWorkflow<{
63
- bundlerConfigs: webpack.Configuration[];
65
+ bundlerConfigs?: B extends 'rspack' ? Rspack.Configuration[] : webpack.Configuration[];
64
66
  }, unknown>;
65
67
  afterCreateCompiler: AsyncWorkflow<{
66
- compiler?: webpack.Compiler | webpack.MultiCompiler;
68
+ compiler?: B extends 'rspack' ? Rspack.Compiler : webpack.Compiler | webpack.MultiCompiler;
67
69
  }, unknown>;
68
70
  beforePrintInstructions: AsyncWaterfall<{
69
71
  instructions: string;
70
72
  }>;
71
73
  beforeBuild: AsyncWorkflow<{
72
- bundlerConfigs?: webpack.Configuration[];
74
+ bundlerConfigs?: B extends 'rspack' ? Rspack.Configuration[] : webpack.Configuration[];
73
75
  }, unknown>;
74
76
  afterBuild: AsyncWorkflow<{
75
77
  stats?: Stats | MultiStats;
@@ -1,23 +1,35 @@
1
1
  import type { NormalizedConfig, UserConfig } from '@modern-js/core';
2
- import type { AppToolsUserConfig, AppToolsNormalizedConfig } from './config';
2
+ import type { AppToolsUserConfig, AppToolsNormalizedConfig, SharedUserConfig, RsAppToolsUserConfig } from './config';
3
3
  import type { AppToolsHooks } from './hooks';
4
4
  import type { AppToolsLegacyUserConfig, AppToolsLegacyNormalizedConfig } from './legacyConfig';
5
+ import { Bundler, FromConfig } from './utils';
5
6
  export * from './hooks';
6
7
  export * from './config';
7
8
  export * from './legacyConfig';
9
+ export type { webpack } from '@modern-js/builder-webpack-provider';
10
+ export type { Rspack } from '@modern-js/builder-rspack-provider';
11
+ export type { Bundler } from './utils';
8
12
  export type { ServerUserConfig, ServerNormalizedConfig, BffUserConfig, BffNormalizedConfig, SSR, SSRByEntries } from '@modern-js/server-core';
9
13
  export type { IAppContext, PluginAPI, CliPlugin, NormalizedConfig, UserConfig } from '@modern-js/core';
10
- export type AppTools = {
11
- hooks: AppToolsHooks;
12
- userConfig: AppToolsUserConfig;
13
- normalizedConfig: AppToolsNormalizedConfig;
14
+ export type AppTools<B extends Bundler = 'webpack'> = {
15
+ hooks: AppToolsHooks<B>;
16
+ userConfig: FromConfig<B, {
17
+ rspack: RsAppToolsUserConfig;
18
+ webpack: AppToolsUserConfig;
19
+ shared: SharedUserConfig;
20
+ }>;
21
+ normalizedConfig: FromConfig<B, {
22
+ rspack: AppToolsNormalizedConfig<RsAppToolsUserConfig>;
23
+ webpack: AppToolsNormalizedConfig<AppToolsUserConfig>;
24
+ shared: AppToolsNormalizedConfig<SharedUserConfig>;
25
+ }>;
14
26
  };
15
27
  export type LegacyAppTools = {
16
28
  hooks: AppToolsHooks;
17
29
  userConfig: AppToolsLegacyUserConfig;
18
30
  normalizedConfig: AppToolsLegacyNormalizedConfig;
19
31
  };
20
- export type AppNormalizedConfig = NormalizedConfig<AppTools>;
32
+ export type AppNormalizedConfig<B extends Bundler = 'webpack'> = NormalizedConfig<AppTools<B>>;
21
33
  export type AppLegacyNormalizedConfig = NormalizedConfig<LegacyAppTools>;
22
- export type AppUserConfig = UserConfig<AppTools>;
34
+ export type AppUserConfig<B extends Bundler = 'webpack'> = UserConfig<AppTools<B>>;
23
35
  export type AppLegacyUserConfig = UserConfig<LegacyAppTools>;
@@ -0,0 +1,7 @@
1
+ export type UnwrapBuilderConfig<Config, Key extends keyof Config> = Required<Config>[Key];
2
+ export type Bundler = 'rspack' | 'webpack' | 'shared';
3
+ export type FromConfig<B extends Bundler, Config extends {
4
+ rspack: Rspack;
5
+ webpack: Webpack;
6
+ shared: Shared;
7
+ }, Rspack = {}, Webpack = {}, Shared = {}> = B extends 'shared' ? Config['shared'] : B extends 'rspack' ? Config['rspack'] : Config['webpack'];
@@ -19,4 +19,4 @@ export declare const buildServerConfig: ({
19
19
  */
20
20
 
21
21
  export declare const safeReplacer: () => (key: string, value: unknown) => unknown;
22
- export declare const emitResolvedConfig: (appDirectory: string, resolvedConfig: AppNormalizedConfig) => Promise<void>;
22
+ export declare const emitResolvedConfig: (appDirectory: string, resolvedConfig: AppNormalizedConfig<'shared'>) => Promise<void>;
@@ -1,2 +1,2 @@
1
1
  import { AppTools, PluginAPI } from '../types';
2
- export declare function getServerInternalPlugins(api: PluginAPI<AppTools>): Promise<Record<string, string>>;
2
+ export declare function getServerInternalPlugins(api: PluginAPI<AppTools<'shared'>>): Promise<Record<string, string>>;
@@ -1,3 +1,3 @@
1
1
  import type { IAppContext, CliHooksRunner } from '@modern-js/core';
2
2
  import type { AppNormalizedConfig, AppTools } from '../types';
3
- export declare const printInstructions: (hookRunners: CliHooksRunner<AppTools>, appContext: IAppContext, config: AppNormalizedConfig) => Promise<void>;
3
+ export declare const printInstructions: (hookRunners: CliHooksRunner<AppTools<'shared'>>, appContext: IAppContext, config: AppNormalizedConfig<'shared'>) => Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modern-js/app-tools",
3
- "description": "The meta-framework suite designed from scratch for frontend-focused modern web development.",
3
+ "description": "A Progressive React Framework for modern web development.",
4
4
  "homepage": "https://modernjs.dev",
5
5
  "bugs": "https://github.com/modern-js-dev/modern.js/issues",
6
6
  "repository": "modern-js-dev/modern.js",
@@ -11,23 +11,22 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.3.1-alpha.2",
14
+ "version": "2.5.0",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
- "main": "./dist/js/node/index.js",
18
- "jsnext:modern": "./dist/js/modern/index.js",
17
+ "main": "./dist/cjs/index.js",
19
18
  "exports": {
20
19
  ".": {
21
20
  "node": {
22
21
  "jsnext:source": "./src/index.ts",
23
- "import": "./dist/js/modern/index.js",
24
- "require": "./dist/js/node/index.js"
22
+ "import": "./dist/esm/index.js",
23
+ "require": "./dist/cjs/index.js"
25
24
  },
26
- "default": "./dist/js/node/index.js"
25
+ "default": "./dist/cjs/index.js"
27
26
  },
28
27
  "./cli": {
29
28
  "jsnext:source": "./src/index.ts",
30
- "default": "./dist/js/node/index.js"
29
+ "default": "./dist/cjs/index.js"
31
30
  },
32
31
  "./types": {
33
32
  "jsnext:source": "./lib/types.d.ts",
@@ -35,7 +34,7 @@
35
34
  },
36
35
  "./server": {
37
36
  "jsnext:source": "./src/exports/server.ts",
38
- "default": "./dist/js/node/exports/server.js"
37
+ "default": "./dist/cjs/exports/server.js"
39
38
  }
40
39
  },
41
40
  "engines": {
@@ -63,37 +62,46 @@
63
62
  "@babel/runtime": "^7.18.0",
64
63
  "@babel/traverse": "^7.18.0",
65
64
  "@babel/types": "^7.18.0",
66
- "@modern-js/builder": "2.3.0",
67
- "@modern-js/builder-plugin-esbuild": "2.3.0",
68
- "@modern-js/builder-plugin-node-polyfill": "2.3.0",
69
- "@modern-js/builder-shared": "2.3.0",
70
- "@modern-js/builder-webpack-provider": "2.3.0",
71
- "@modern-js/core": "2.3.0",
72
- "@modern-js/new-action": "2.3.0",
73
- "@modern-js/node-bundle-require": "2.3.0",
74
- "@modern-js/plugin": "2.3.0",
75
- "@modern-js/plugin-data-loader": "2.3.0",
76
- "@modern-js/plugin-i18n": "2.3.0",
77
- "@modern-js/plugin-lint": "2.3.0",
78
- "@modern-js/prod-server": "2.3.0",
79
- "@modern-js/server": "2.3.0",
80
- "@modern-js/types": "2.3.0",
81
- "@modern-js/upgrade": "2.3.0",
82
- "@modern-js/utils": "2.3.0",
83
65
  "es-module-lexer": "^1.1.0",
84
- "esbuild": "0.15.7"
66
+ "esbuild": "0.15.7",
67
+ "@modern-js/builder": "2.5.0",
68
+ "@modern-js/builder-plugin-esbuild": "2.5.0",
69
+ "@modern-js/builder-plugin-node-polyfill": "2.5.0",
70
+ "@modern-js/builder-shared": "2.5.0",
71
+ "@modern-js/builder-webpack-provider": "2.5.0",
72
+ "@modern-js/core": "2.5.0",
73
+ "@modern-js/new-action": "2.5.0",
74
+ "@modern-js/node-bundle-require": "2.5.0",
75
+ "@modern-js/plugin": "2.5.0",
76
+ "@modern-js/plugin-data-loader": "2.5.0",
77
+ "@modern-js/plugin-i18n": "2.5.0",
78
+ "@modern-js/plugin-lint": "2.5.0",
79
+ "@modern-js/prod-server": "2.5.0",
80
+ "@modern-js/server": "2.5.0",
81
+ "@modern-js/types": "2.5.0",
82
+ "@modern-js/upgrade": "2.5.0",
83
+ "@modern-js/utils": "2.5.0"
85
84
  },
86
85
  "devDependencies": {
87
- "@modern-js/builder-plugin-swc": "2.3.0",
88
- "@modern-js/server-core": "2.3.0",
89
- "@scripts/build": "2.3.0",
90
- "@scripts/jest-config": "2.3.0",
91
86
  "@types/babel__traverse": "^7.14.2",
92
87
  "@types/jest": "^27",
93
88
  "@types/node": "^14",
94
89
  "jest": "^27",
95
90
  "typescript": "^4",
96
- "webpack": "^5.75.0"
91
+ "webpack": "^5.75.0",
92
+ "@modern-js/builder-plugin-swc": "2.5.0",
93
+ "@modern-js/builder-rspack-provider": "2.5.0",
94
+ "@modern-js/server-core": "2.5.0",
95
+ "@scripts/jest-config": "2.5.0",
96
+ "@scripts/build": "2.5.0"
97
+ },
98
+ "peerDependencies": {
99
+ "@modern-js/builder-rspack-provider": "^2.5.0"
100
+ },
101
+ "peerDependenciesMeta": {
102
+ "@modern-js/builder-rspack-provider": {
103
+ "optional": true
104
+ }
97
105
  },
98
106
  "sideEffects": false,
99
107
  "publishConfig": {