@bleedingdev/modern-js-app-tools 3.2.0-ultramodern.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 (432) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/bin/modern.js +36 -0
  4. package/dist/cjs/baseline.js +83 -0
  5. package/dist/cjs/builder/builder-rspack/index.js +40 -0
  6. package/dist/cjs/builder/generator/adapterCopy.js +79 -0
  7. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +100 -0
  8. package/dist/cjs/builder/generator/createCopyPattern.js +67 -0
  9. package/dist/cjs/builder/generator/getBuilderEnvironments.js +90 -0
  10. package/dist/cjs/builder/generator/index.js +80 -0
  11. package/dist/cjs/builder/index.js +50 -0
  12. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +133 -0
  13. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +89 -0
  14. package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +112 -0
  15. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +151 -0
  16. package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +51 -0
  17. package/dist/cjs/builder/shared/builderPlugins/index.js +86 -0
  18. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +71 -0
  19. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +56 -0
  20. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +191 -0
  21. package/dist/cjs/builder/shared/bundlerPlugins/index.js +72 -0
  22. package/dist/cjs/builder/shared/createCopyInfo.js +59 -0
  23. package/dist/cjs/builder/shared/index.js +72 -0
  24. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +39 -0
  25. package/dist/cjs/builder/shared/types.js +18 -0
  26. package/dist/cjs/commands/build.js +107 -0
  27. package/dist/cjs/commands/deploy.js +44 -0
  28. package/dist/cjs/commands/dev.js +121 -0
  29. package/dist/cjs/commands/index.js +99 -0
  30. package/dist/cjs/commands/info.js +110 -0
  31. package/dist/cjs/commands/inspect.js +49 -0
  32. package/dist/cjs/commands/runtime.js +159 -0
  33. package/dist/cjs/commands/serve.js +92 -0
  34. package/dist/cjs/compat/hooks.js +104 -0
  35. package/dist/cjs/compat/index.js +62 -0
  36. package/dist/cjs/compat/utils.js +135 -0
  37. package/dist/cjs/config/default.js +125 -0
  38. package/dist/cjs/config/index.js +65 -0
  39. package/dist/cjs/config/initialize/index.js +41 -0
  40. package/dist/cjs/config/initialize/inits.js +101 -0
  41. package/dist/cjs/constants.js +40 -0
  42. package/dist/cjs/defineConfig.js +36 -0
  43. package/dist/cjs/esm/register-esm.js +48 -0
  44. package/dist/cjs/esm/register-esm.mjs +10 -0
  45. package/dist/cjs/esm/ts-paths-loader.js +73 -0
  46. package/dist/cjs/esm/ts-paths-loader.mjs +35 -0
  47. package/dist/cjs/exports/server.js +18 -0
  48. package/dist/cjs/index.js +358 -0
  49. package/dist/cjs/locale/en.js +79 -0
  50. package/dist/cjs/locale/index.js +46 -0
  51. package/dist/cjs/locale/zh.js +79 -0
  52. package/dist/cjs/plugins/analyze/constants.js +48 -0
  53. package/dist/cjs/plugins/analyze/getBundleEntry.js +97 -0
  54. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +117 -0
  55. package/dist/cjs/plugins/analyze/getHtmlTemplate.js +144 -0
  56. package/dist/cjs/plugins/analyze/getServerRoutes.js +177 -0
  57. package/dist/cjs/plugins/analyze/index.js +237 -0
  58. package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +86 -0
  59. package/dist/cjs/plugins/analyze/templates.js +56 -0
  60. package/dist/cjs/plugins/analyze/utils.js +126 -0
  61. package/dist/cjs/plugins/deploy/index.js +77 -0
  62. package/dist/cjs/plugins/deploy/platforms/gh-pages.js +87 -0
  63. package/dist/cjs/plugins/deploy/platforms/netlify.js +140 -0
  64. package/dist/cjs/plugins/deploy/platforms/node.js +100 -0
  65. package/dist/cjs/plugins/deploy/platforms/platform.js +18 -0
  66. package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
  67. package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
  68. package/dist/cjs/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
  69. package/dist/cjs/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
  70. package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
  71. package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
  72. package/dist/cjs/plugins/deploy/platforms/vercel.js +159 -0
  73. package/dist/cjs/plugins/deploy/types.js +18 -0
  74. package/dist/cjs/plugins/deploy/utils/generator.js +104 -0
  75. package/dist/cjs/plugins/deploy/utils/index.js +123 -0
  76. package/dist/cjs/plugins/initialize/index.js +93 -0
  77. package/dist/cjs/plugins/serverBuild.js +90 -0
  78. package/dist/cjs/plugins/serverRuntime.js +49 -0
  79. package/dist/cjs/presetUltramodern.js +41 -0
  80. package/dist/cjs/rsbuild.js +90 -0
  81. package/dist/cjs/run/index.js +98 -0
  82. package/dist/cjs/types/config/deploy.js +18 -0
  83. package/dist/cjs/types/config/dev.js +18 -0
  84. package/dist/cjs/types/config/experiments.js +18 -0
  85. package/dist/cjs/types/config/html.js +18 -0
  86. package/dist/cjs/types/config/index.js +58 -0
  87. package/dist/cjs/types/config/output.js +18 -0
  88. package/dist/cjs/types/config/performance.js +18 -0
  89. package/dist/cjs/types/config/resolve.js +18 -0
  90. package/dist/cjs/types/config/security.js +18 -0
  91. package/dist/cjs/types/config/source.js +18 -0
  92. package/dist/cjs/types/config/testing.js +18 -0
  93. package/dist/cjs/types/config/tools.js +18 -0
  94. package/dist/cjs/types/index.js +58 -0
  95. package/dist/cjs/types/plugin.js +18 -0
  96. package/dist/cjs/types/utils.js +18 -0
  97. package/dist/cjs/ultramodern/designSystem.js +119 -0
  98. package/dist/cjs/utils/config.js +45 -0
  99. package/dist/cjs/utils/createServer.js +52 -0
  100. package/dist/cjs/utils/env.js +46 -0
  101. package/dist/cjs/utils/generateWatchFiles.js +54 -0
  102. package/dist/cjs/utils/getConfigFile.js +49 -0
  103. package/dist/cjs/utils/getSelectedEntries.js +60 -0
  104. package/dist/cjs/utils/initAppContext.js +71 -0
  105. package/dist/cjs/utils/loadPlugins.js +85 -0
  106. package/dist/cjs/utils/printInstructions.js +43 -0
  107. package/dist/cjs/utils/register.js +128 -0
  108. package/dist/cjs/utils/restart.js +52 -0
  109. package/dist/cjs/utils/routes.js +65 -0
  110. package/dist/cjs/utils/types.js +18 -0
  111. package/dist/esm/baseline.mjs +46 -0
  112. package/dist/esm/builder/builder-rspack/index.mjs +6 -0
  113. package/dist/esm/builder/generator/adapterCopy.mjs +35 -0
  114. package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +66 -0
  115. package/dist/esm/builder/generator/createCopyPattern.mjs +30 -0
  116. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +56 -0
  117. package/dist/esm/builder/generator/index.mjs +46 -0
  118. package/dist/esm/builder/index.mjs +7 -0
  119. package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +89 -0
  120. package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +55 -0
  121. package/dist/esm/builder/shared/builderPlugins/adapterPrecompress.mjs +68 -0
  122. package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +117 -0
  123. package/dist/esm/builder/shared/builderPlugins/builderHooks.mjs +17 -0
  124. package/dist/esm/builder/shared/builderPlugins/index.mjs +5 -0
  125. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +37 -0
  126. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +22 -0
  127. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.mjs +157 -0
  128. package/dist/esm/builder/shared/bundlerPlugins/index.mjs +3 -0
  129. package/dist/esm/builder/shared/createCopyInfo.mjs +15 -0
  130. package/dist/esm/builder/shared/index.mjs +3 -0
  131. package/dist/esm/builder/shared/loaders/serverModuleLoader.mjs +5 -0
  132. package/dist/esm/builder/shared/types.mjs +0 -0
  133. package/dist/esm/commands/build.mjs +63 -0
  134. package/dist/esm/commands/deploy.mjs +10 -0
  135. package/dist/esm/commands/dev.mjs +77 -0
  136. package/dist/esm/commands/index.mjs +47 -0
  137. package/dist/esm/commands/info.mjs +76 -0
  138. package/dist/esm/commands/inspect.mjs +15 -0
  139. package/dist/esm/commands/runtime.mjs +116 -0
  140. package/dist/esm/commands/serve.mjs +48 -0
  141. package/dist/esm/compat/hooks.mjs +67 -0
  142. package/dist/esm/compat/index.mjs +28 -0
  143. package/dist/esm/compat/utils.mjs +95 -0
  144. package/dist/esm/config/default.mjs +91 -0
  145. package/dist/esm/config/index.mjs +2 -0
  146. package/dist/esm/config/initialize/index.mjs +7 -0
  147. package/dist/esm/config/initialize/inits.mjs +54 -0
  148. package/dist/esm/constants.mjs +3 -0
  149. package/dist/esm/defineConfig.mjs +2 -0
  150. package/dist/esm/esm/register-esm.mjs +11 -0
  151. package/dist/esm/esm/ts-paths-loader.mjs +36 -0
  152. package/dist/esm/exports/server.mjs +0 -0
  153. package/dist/esm/index.mjs +131 -0
  154. package/dist/esm/locale/en.mjs +45 -0
  155. package/dist/esm/locale/index.mjs +9 -0
  156. package/dist/esm/locale/zh.mjs +45 -0
  157. package/dist/esm/plugins/analyze/constants.mjs +8 -0
  158. package/dist/esm/plugins/analyze/getBundleEntry.mjs +53 -0
  159. package/dist/esm/plugins/analyze/getFileSystemEntry.mjs +66 -0
  160. package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +97 -0
  161. package/dist/esm/plugins/analyze/getServerRoutes.mjs +130 -0
  162. package/dist/esm/plugins/analyze/index.mjs +203 -0
  163. package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +41 -0
  164. package/dist/esm/plugins/analyze/templates.mjs +22 -0
  165. package/dist/esm/plugins/analyze/utils.mjs +63 -0
  166. package/dist/esm/plugins/deploy/index.mjs +43 -0
  167. package/dist/esm/plugins/deploy/platforms/gh-pages.mjs +43 -0
  168. package/dist/esm/plugins/deploy/platforms/netlify.mjs +96 -0
  169. package/dist/esm/plugins/deploy/platforms/node.mjs +56 -0
  170. package/dist/esm/plugins/deploy/platforms/platform.mjs +0 -0
  171. package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
  172. package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
  173. package/dist/esm/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
  174. package/dist/esm/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
  175. package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
  176. package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
  177. package/dist/esm/plugins/deploy/platforms/vercel.mjs +115 -0
  178. package/dist/esm/plugins/deploy/types.mjs +0 -0
  179. package/dist/esm/plugins/deploy/utils/generator.mjs +48 -0
  180. package/dist/esm/plugins/deploy/utils/index.mjs +67 -0
  181. package/dist/esm/plugins/initialize/index.mjs +59 -0
  182. package/dist/esm/plugins/serverBuild.mjs +45 -0
  183. package/dist/esm/plugins/serverRuntime.mjs +15 -0
  184. package/dist/esm/presetUltramodern.mjs +4 -0
  185. package/dist/esm/rsbuild.mjs +47 -0
  186. package/dist/esm/rslib-runtime.mjs +18 -0
  187. package/dist/esm/run/index.mjs +61 -0
  188. package/dist/esm/types/config/deploy.mjs +0 -0
  189. package/dist/esm/types/config/dev.mjs +0 -0
  190. package/dist/esm/types/config/experiments.mjs +0 -0
  191. package/dist/esm/types/config/html.mjs +0 -0
  192. package/dist/esm/types/config/index.mjs +1 -0
  193. package/dist/esm/types/config/output.mjs +0 -0
  194. package/dist/esm/types/config/performance.mjs +0 -0
  195. package/dist/esm/types/config/resolve.mjs +0 -0
  196. package/dist/esm/types/config/security.mjs +0 -0
  197. package/dist/esm/types/config/source.mjs +0 -0
  198. package/dist/esm/types/config/testing.mjs +0 -0
  199. package/dist/esm/types/config/tools.mjs +0 -0
  200. package/dist/esm/types/index.mjs +1 -0
  201. package/dist/esm/types/plugin.mjs +0 -0
  202. package/dist/esm/types/utils.mjs +0 -0
  203. package/dist/esm/ultramodern/designSystem.mjs +73 -0
  204. package/dist/esm/utils/config.mjs +11 -0
  205. package/dist/esm/utils/createServer.mjs +12 -0
  206. package/dist/esm/utils/env.mjs +12 -0
  207. package/dist/esm/utils/generateWatchFiles.mjs +10 -0
  208. package/dist/esm/utils/getConfigFile.mjs +5 -0
  209. package/dist/esm/utils/getSelectedEntries.mjs +26 -0
  210. package/dist/esm/utils/initAppContext.mjs +27 -0
  211. package/dist/esm/utils/loadPlugins.mjs +45 -0
  212. package/dist/esm/utils/printInstructions.mjs +9 -0
  213. package/dist/esm/utils/register.mjs +81 -0
  214. package/dist/esm/utils/restart.mjs +18 -0
  215. package/dist/esm/utils/routes.mjs +15 -0
  216. package/dist/esm/utils/types.mjs +0 -0
  217. package/dist/esm-node/baseline.mjs +47 -0
  218. package/dist/esm-node/builder/builder-rspack/index.mjs +7 -0
  219. package/dist/esm-node/builder/generator/adapterCopy.mjs +36 -0
  220. package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +67 -0
  221. package/dist/esm-node/builder/generator/createCopyPattern.mjs +31 -0
  222. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +57 -0
  223. package/dist/esm-node/builder/generator/index.mjs +47 -0
  224. package/dist/esm-node/builder/index.mjs +8 -0
  225. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +93 -0
  226. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +56 -0
  227. package/dist/esm-node/builder/shared/builderPlugins/adapterPrecompress.mjs +69 -0
  228. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +119 -0
  229. package/dist/esm-node/builder/shared/builderPlugins/builderHooks.mjs +18 -0
  230. package/dist/esm-node/builder/shared/builderPlugins/index.mjs +6 -0
  231. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +38 -0
  232. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +23 -0
  233. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.mjs +158 -0
  234. package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +4 -0
  235. package/dist/esm-node/builder/shared/createCopyInfo.mjs +16 -0
  236. package/dist/esm-node/builder/shared/index.mjs +4 -0
  237. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.mjs +6 -0
  238. package/dist/esm-node/builder/shared/types.mjs +1 -0
  239. package/dist/esm-node/commands/build.mjs +64 -0
  240. package/dist/esm-node/commands/deploy.mjs +11 -0
  241. package/dist/esm-node/commands/dev.mjs +78 -0
  242. package/dist/esm-node/commands/index.mjs +48 -0
  243. package/dist/esm-node/commands/info.mjs +77 -0
  244. package/dist/esm-node/commands/inspect.mjs +16 -0
  245. package/dist/esm-node/commands/runtime.mjs +117 -0
  246. package/dist/esm-node/commands/serve.mjs +49 -0
  247. package/dist/esm-node/compat/hooks.mjs +68 -0
  248. package/dist/esm-node/compat/index.mjs +29 -0
  249. package/dist/esm-node/compat/utils.mjs +96 -0
  250. package/dist/esm-node/config/default.mjs +92 -0
  251. package/dist/esm-node/config/index.mjs +3 -0
  252. package/dist/esm-node/config/initialize/index.mjs +8 -0
  253. package/dist/esm-node/config/initialize/inits.mjs +55 -0
  254. package/dist/esm-node/constants.mjs +4 -0
  255. package/dist/esm-node/defineConfig.mjs +3 -0
  256. package/dist/esm-node/esm/register-esm.mjs +12 -0
  257. package/dist/esm-node/esm/ts-paths-loader.mjs +37 -0
  258. package/dist/esm-node/exports/server.mjs +1 -0
  259. package/dist/esm-node/index.mjs +133 -0
  260. package/dist/esm-node/locale/en.mjs +46 -0
  261. package/dist/esm-node/locale/index.mjs +10 -0
  262. package/dist/esm-node/locale/zh.mjs +46 -0
  263. package/dist/esm-node/plugins/analyze/constants.mjs +9 -0
  264. package/dist/esm-node/plugins/analyze/getBundleEntry.mjs +54 -0
  265. package/dist/esm-node/plugins/analyze/getFileSystemEntry.mjs +67 -0
  266. package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +98 -0
  267. package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +131 -0
  268. package/dist/esm-node/plugins/analyze/index.mjs +204 -0
  269. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +42 -0
  270. package/dist/esm-node/plugins/analyze/templates.mjs +23 -0
  271. package/dist/esm-node/plugins/analyze/utils.mjs +64 -0
  272. package/dist/esm-node/plugins/deploy/index.mjs +44 -0
  273. package/dist/esm-node/plugins/deploy/platforms/gh-pages.mjs +44 -0
  274. package/dist/esm-node/plugins/deploy/platforms/netlify.mjs +98 -0
  275. package/dist/esm-node/plugins/deploy/platforms/node.mjs +58 -0
  276. package/dist/esm-node/plugins/deploy/platforms/platform.mjs +1 -0
  277. package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
  278. package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
  279. package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
  280. package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
  281. package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
  282. package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
  283. package/dist/esm-node/plugins/deploy/platforms/vercel.mjs +117 -0
  284. package/dist/esm-node/plugins/deploy/types.mjs +1 -0
  285. package/dist/esm-node/plugins/deploy/utils/generator.mjs +49 -0
  286. package/dist/esm-node/plugins/deploy/utils/index.mjs +71 -0
  287. package/dist/esm-node/plugins/initialize/index.mjs +60 -0
  288. package/dist/esm-node/plugins/serverBuild.mjs +46 -0
  289. package/dist/esm-node/plugins/serverRuntime.mjs +16 -0
  290. package/dist/esm-node/presetUltramodern.mjs +5 -0
  291. package/dist/esm-node/rsbuild.mjs +48 -0
  292. package/dist/esm-node/rslib-runtime.mjs +19 -0
  293. package/dist/esm-node/run/index.mjs +62 -0
  294. package/dist/esm-node/types/config/deploy.mjs +1 -0
  295. package/dist/esm-node/types/config/dev.mjs +1 -0
  296. package/dist/esm-node/types/config/experiments.mjs +1 -0
  297. package/dist/esm-node/types/config/html.mjs +1 -0
  298. package/dist/esm-node/types/config/index.mjs +2 -0
  299. package/dist/esm-node/types/config/output.mjs +1 -0
  300. package/dist/esm-node/types/config/performance.mjs +1 -0
  301. package/dist/esm-node/types/config/resolve.mjs +1 -0
  302. package/dist/esm-node/types/config/security.mjs +1 -0
  303. package/dist/esm-node/types/config/source.mjs +1 -0
  304. package/dist/esm-node/types/config/testing.mjs +1 -0
  305. package/dist/esm-node/types/config/tools.mjs +1 -0
  306. package/dist/esm-node/types/index.mjs +2 -0
  307. package/dist/esm-node/types/plugin.mjs +1 -0
  308. package/dist/esm-node/types/utils.mjs +1 -0
  309. package/dist/esm-node/ultramodern/designSystem.mjs +74 -0
  310. package/dist/esm-node/utils/config.mjs +12 -0
  311. package/dist/esm-node/utils/createServer.mjs +13 -0
  312. package/dist/esm-node/utils/env.mjs +13 -0
  313. package/dist/esm-node/utils/generateWatchFiles.mjs +11 -0
  314. package/dist/esm-node/utils/getConfigFile.mjs +6 -0
  315. package/dist/esm-node/utils/getSelectedEntries.mjs +27 -0
  316. package/dist/esm-node/utils/initAppContext.mjs +28 -0
  317. package/dist/esm-node/utils/loadPlugins.mjs +46 -0
  318. package/dist/esm-node/utils/printInstructions.mjs +10 -0
  319. package/dist/esm-node/utils/register.mjs +83 -0
  320. package/dist/esm-node/utils/restart.mjs +19 -0
  321. package/dist/esm-node/utils/routes.mjs +16 -0
  322. package/dist/esm-node/utils/types.mjs +1 -0
  323. package/dist/types/baseline.d.ts +46 -0
  324. package/dist/types/builder/builder-rspack/index.d.ts +2 -0
  325. package/dist/types/builder/generator/adapterCopy.d.ts +3 -0
  326. package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +3 -0
  327. package/dist/types/builder/generator/createCopyPattern.d.ts +16 -0
  328. package/dist/types/builder/generator/getBuilderEnvironments.d.ts +6 -0
  329. package/dist/types/builder/generator/index.d.ts +8 -0
  330. package/dist/types/builder/index.d.ts +3 -0
  331. package/dist/types/builder/shared/builderPlugins/adapterBasic.d.ts +3 -0
  332. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +3 -0
  333. package/dist/types/builder/shared/builderPlugins/adapterPrecompress.d.ts +3 -0
  334. package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +3 -0
  335. package/dist/types/builder/shared/builderPlugins/builderHooks.d.ts +3 -0
  336. package/dist/types/builder/shared/builderPlugins/index.d.ts +5 -0
  337. package/dist/types/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts +7 -0
  338. package/dist/types/builder/shared/bundlerPlugins/HtmlBottomTemplate.d.ts +9 -0
  339. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +32 -0
  340. package/dist/types/builder/shared/bundlerPlugins/index.d.ts +3 -0
  341. package/dist/types/builder/shared/createCopyInfo.d.ts +8 -0
  342. package/dist/types/builder/shared/index.d.ts +3 -0
  343. package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +3 -0
  344. package/dist/types/builder/shared/types.d.ts +6 -0
  345. package/dist/types/commands/build.d.ts +4 -0
  346. package/dist/types/commands/deploy.d.ts +3 -0
  347. package/dist/types/commands/dev.d.ts +9 -0
  348. package/dist/types/commands/index.d.ts +10 -0
  349. package/dist/types/commands/info.d.ts +18 -0
  350. package/dist/types/commands/inspect.d.ts +4 -0
  351. package/dist/types/commands/runtime.d.ts +11 -0
  352. package/dist/types/commands/serve.d.ts +8 -0
  353. package/dist/types/compat/hooks.d.ts +7 -0
  354. package/dist/types/compat/index.d.ts +2 -0
  355. package/dist/types/compat/utils.d.ts +13 -0
  356. package/dist/types/config/default.d.ts +3 -0
  357. package/dist/types/config/index.d.ts +2 -0
  358. package/dist/types/config/initialize/index.d.ts +3 -0
  359. package/dist/types/config/initialize/inits.d.ts +4 -0
  360. package/dist/types/constants.d.ts +2 -0
  361. package/dist/types/defineConfig.d.ts +11 -0
  362. package/dist/types/esm/register-esm.d.mts +11 -0
  363. package/dist/types/esm/ts-node-loader.d.mts +6 -0
  364. package/dist/types/esm/ts-paths-loader.d.mts +6 -0
  365. package/dist/types/exports/server.d.ts +1 -0
  366. package/dist/types/index.d.ts +17 -0
  367. package/dist/types/locale/en.d.ts +44 -0
  368. package/dist/types/locale/index.d.ts +90 -0
  369. package/dist/types/locale/zh.d.ts +44 -0
  370. package/dist/types/plugins/analyze/constants.d.ts +3 -0
  371. package/dist/types/plugins/analyze/getBundleEntry.d.ts +4 -0
  372. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +7 -0
  373. package/dist/types/plugins/analyze/getHtmlTemplate.d.ts +27 -0
  374. package/dist/types/plugins/analyze/getServerRoutes.d.ts +8 -0
  375. package/dist/types/plugins/analyze/index.d.ts +3 -0
  376. package/dist/types/plugins/analyze/isDefaultExportFunction.d.ts +1 -0
  377. package/dist/types/plugins/analyze/templates.d.ts +5 -0
  378. package/dist/types/plugins/analyze/utils.d.ts +10 -0
  379. package/dist/types/plugins/deploy/index.d.ts +3 -0
  380. package/dist/types/plugins/deploy/platforms/gh-pages.d.ts +2 -0
  381. package/dist/types/plugins/deploy/platforms/netlify.d.ts +2 -0
  382. package/dist/types/plugins/deploy/platforms/node.d.ts +2 -0
  383. package/dist/types/plugins/deploy/platforms/platform.d.ts +17 -0
  384. package/dist/types/plugins/deploy/platforms/templates/netlify-entry.d.cts +2 -0
  385. package/dist/types/plugins/deploy/platforms/templates/netlify-entry.d.mts +2 -0
  386. package/dist/types/plugins/deploy/platforms/templates/node-entry.d.cts +1 -0
  387. package/dist/types/plugins/deploy/platforms/templates/node-entry.d.mts +1 -0
  388. package/dist/types/plugins/deploy/platforms/templates/vercel-entry.d.cts +2 -0
  389. package/dist/types/plugins/deploy/platforms/templates/vercel-entry.d.mts +2 -0
  390. package/dist/types/plugins/deploy/platforms/vercel.d.ts +2 -0
  391. package/dist/types/plugins/deploy/types.d.ts +3 -0
  392. package/dist/types/plugins/deploy/utils/generator.d.ts +24 -0
  393. package/dist/types/plugins/deploy/utils/index.d.ts +16 -0
  394. package/dist/types/plugins/initialize/index.d.ts +3 -0
  395. package/dist/types/plugins/serverBuild.d.ts +3 -0
  396. package/dist/types/plugins/serverRuntime.d.ts +3 -0
  397. package/dist/types/presetUltramodern.d.ts +6 -0
  398. package/dist/types/rsbuild.d.ts +12 -0
  399. package/dist/types/run/index.d.ts +20 -0
  400. package/dist/types/types/config/deploy.d.ts +38 -0
  401. package/dist/types/types/config/dev.d.ts +55 -0
  402. package/dist/types/types/config/experiments.d.ts +3 -0
  403. package/dist/types/types/config/html.d.ts +3 -0
  404. package/dist/types/types/config/index.d.ts +48 -0
  405. package/dist/types/types/config/output.d.ts +61 -0
  406. package/dist/types/types/config/performance.d.ts +3 -0
  407. package/dist/types/types/config/resolve.d.ts +2 -0
  408. package/dist/types/types/config/security.d.ts +2 -0
  409. package/dist/types/types/config/source.d.ts +61 -0
  410. package/dist/types/types/config/testing.d.ts +8 -0
  411. package/dist/types/types/config/tools.d.ts +21 -0
  412. package/dist/types/types/index.d.ts +10 -0
  413. package/dist/types/types/plugin.d.ts +114 -0
  414. package/dist/types/types/utils.d.ts +1 -0
  415. package/dist/types/ultramodern/designSystem.d.ts +54 -0
  416. package/dist/types/utils/config.d.ts +2 -0
  417. package/dist/types/utils/createServer.d.ts +5 -0
  418. package/dist/types/utils/env.d.ts +2 -0
  419. package/dist/types/utils/generateWatchFiles.d.ts +2 -0
  420. package/dist/types/utils/getConfigFile.d.ts +1 -0
  421. package/dist/types/utils/getSelectedEntries.d.ts +5 -0
  422. package/dist/types/utils/initAppContext.d.ts +31 -0
  423. package/dist/types/utils/loadPlugins.d.ts +13 -0
  424. package/dist/types/utils/printInstructions.d.ts +3 -0
  425. package/dist/types/utils/register.d.ts +19 -0
  426. package/dist/types/utils/restart.d.ts +2 -0
  427. package/dist/types/utils/routes.d.ts +4 -0
  428. package/dist/types/utils/types.d.ts +49 -0
  429. package/lib/types.d.ts +252 -0
  430. package/package.json +138 -0
  431. package/rslib.config.mts +39 -0
  432. package/rstest.config.mts +20 -0
@@ -0,0 +1,64 @@
1
+ import "node:module";
2
+ import { JS_EXTENSIONS, getCommand, normalizeToPosixPath } from "@modern-js/utils";
3
+ import { parse } from "es-module-lexer";
4
+ import { transform } from "esbuild";
5
+ import fs from "fs";
6
+ import path from "path";
7
+ const walkDirectory = (dir)=>fs.readdirSync(dir).reduce((previous, filename)=>{
8
+ const filePath = path.join(dir, filename);
9
+ if (fs.statSync(filePath).isDirectory()) return [
10
+ ...previous,
11
+ ...walkDirectory(filePath)
12
+ ];
13
+ return [
14
+ ...previous,
15
+ filePath
16
+ ];
17
+ }, []);
18
+ const replaceWithAlias = (base, filePath, alias)=>{
19
+ if (filePath.includes(base)) return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
20
+ return filePath;
21
+ };
22
+ const parseModule = async ({ source, filename })=>{
23
+ let content = source;
24
+ if (JS_EXTENSIONS.some((ext)=>filename.endsWith(ext))) {
25
+ const ext = path.extname(filename);
26
+ const result = await transform(content, {
27
+ sourcefile: filename,
28
+ format: 'esm',
29
+ loader: '.ts' === ext ? 'ts' : '.tsx' === ext ? 'tsx' : '.jsx' === ext ? 'jsx' : 'js',
30
+ target: 'es2022',
31
+ tsconfigRaw: {
32
+ compilerOptions: {
33
+ experimentalDecorators: true
34
+ }
35
+ }
36
+ });
37
+ content = result.code;
38
+ }
39
+ return await parse(content);
40
+ };
41
+ const getServerCombinedModuleFile = (internalDirectory, entryName)=>path.join(internalDirectory, entryName, 'server-loader-combined.js');
42
+ const checkIsBuildCommands = ()=>{
43
+ const buildCommands = [
44
+ 'dev',
45
+ 'start',
46
+ 'build',
47
+ 'inspect',
48
+ 'deploy',
49
+ 'dev-worker'
50
+ ];
51
+ const command = getCommand();
52
+ return buildCommands.includes(command);
53
+ };
54
+ const checkIsServeCommand = ()=>{
55
+ const command = getCommand();
56
+ return 'serve' === command;
57
+ };
58
+ const isSubDirOrEqual = (parent, child)=>{
59
+ if (parent === child) return true;
60
+ const relative = path.relative(parent, child);
61
+ const isSubdir = relative && !relative.startsWith('..') && !path.isAbsolute(relative);
62
+ return Boolean(isSubdir);
63
+ };
64
+ export { checkIsBuildCommands, checkIsServeCommand, getServerCombinedModuleFile, isSubDirOrEqual, parseModule, replaceWithAlias, walkDirectory };
@@ -0,0 +1,44 @@
1
+ import "node:module";
2
+ import { provider } from "std-env";
3
+ import { createGhPagesPreset } from "./platforms/gh-pages.mjs";
4
+ import { createNetlifyPreset } from "./platforms/netlify.mjs";
5
+ import { createNodePreset } from "./platforms/node.mjs";
6
+ import { createVercelPreset } from "./platforms/vercel.mjs";
7
+ import { getProjectUsage } from "./utils/index.mjs";
8
+ const deployPresets = {
9
+ node: createNodePreset,
10
+ vercel: createVercelPreset,
11
+ netlify: createNetlifyPreset,
12
+ ghPages: createGhPagesPreset
13
+ };
14
+ async function getDeployPreset(appContext, modernConfig, deployTarget, api) {
15
+ const { appDirectory, distDirectory, metaName } = appContext;
16
+ const { useSSR, useAPI, useWebServer } = getProjectUsage(appDirectory, distDirectory, metaName);
17
+ const needModernServer = useSSR || useAPI || useWebServer;
18
+ const createPreset = deployPresets[deployTarget];
19
+ if (!createPreset) throw new Error(`Unknown deploy target: '${deployTarget}'. MODERNJS_DEPLOY should be 'node', 'vercel', or 'netlify'.`);
20
+ return createPreset({
21
+ appContext,
22
+ modernConfig,
23
+ needModernServer,
24
+ api
25
+ });
26
+ }
27
+ const deploy = ()=>({
28
+ name: '@modern-js/plugin-deploy',
29
+ setup: (api)=>{
30
+ const deployTarget = process.env.MODERNJS_DEPLOY || provider || 'node';
31
+ api.deploy(async ()=>{
32
+ const appContext = api.getAppContext();
33
+ const { metaName } = appContext;
34
+ if ('modern-js' !== metaName && !process.env.MODERNJS_DEPLOY) return;
35
+ const modernConfig = api.getNormalizedConfig();
36
+ const deployPreset = await getDeployPreset(appContext, modernConfig, deployTarget, api);
37
+ deployPreset?.prepare && await deployPreset?.prepare();
38
+ deployPreset?.writeOutput && await deployPreset?.writeOutput();
39
+ deployPreset?.genEntry && await deployPreset?.genEntry();
40
+ deployPreset?.end && await deployPreset?.end();
41
+ });
42
+ }
43
+ });
44
+ export default deploy;
@@ -0,0 +1,44 @@
1
+ import "node:module";
2
+ import { fs, logger } from "@modern-js/utils";
3
+ import path from "path";
4
+ async function reorganizeHtmlFiles(routes, baseDir, baseUrl = '/') {
5
+ if (!routes || !Array.isArray(routes)) return void logger.error('Invalid server routes');
6
+ await fs.ensureDir(baseDir);
7
+ const baseUrlRegexp = new RegExp(`^${baseUrl}\\/?`);
8
+ const collectedEntryPaths = new Set();
9
+ const copyPromises = routes.map(async (route)=>{
10
+ const { urlPath, entryPath } = route;
11
+ if (!entryPath) return void logger.warn(`Route ${urlPath} does not specify entryPath, skipping`);
12
+ if (collectedEntryPaths.has(entryPath)) return;
13
+ collectedEntryPaths.add(entryPath);
14
+ const sourceHtmlPath = path.join(baseDir, entryPath);
15
+ if (!await fs.pathExists(sourceHtmlPath)) return void logger.error(`Source HTML file does not exist: ${sourceHtmlPath}`);
16
+ const targetDir = urlPath.replace(baseUrlRegexp, '');
17
+ await fs.ensureDir(path.dirname(targetDir));
18
+ const targetHtmlPath = path.join(baseDir, targetDir, 'index.html');
19
+ try {
20
+ await fs.move(sourceHtmlPath, targetHtmlPath);
21
+ } catch (error) {
22
+ logger.error(`Failed to copy HTML file: ${error.message}`);
23
+ }
24
+ });
25
+ await Promise.all(copyPromises);
26
+ }
27
+ const createGhPagesPreset = ({ appContext, modernConfig })=>{
28
+ const { serverRoutes, appDirectory, distDirectory } = appContext;
29
+ const { server: { baseUrl } } = modernConfig;
30
+ const outputDirectory = path.join(appDirectory, '.output');
31
+ return {
32
+ name: 'gh-pages',
33
+ async prepare () {
34
+ await fs.remove(outputDirectory);
35
+ },
36
+ async writeOutput () {
37
+ await fs.copy(distDirectory, outputDirectory);
38
+ },
39
+ async end () {
40
+ await reorganizeHtmlFiles(serverRoutes, outputDirectory, Array.isArray(baseUrl) ? baseUrl[0] : baseUrl);
41
+ }
42
+ };
43
+ };
44
+ export { createGhPagesPreset };
@@ -0,0 +1,98 @@
1
+ import __rslib_shim_module__ from "node:module";
2
+ const require = /*#__PURE__*/ __rslib_shim_module__.createRequire(/*#__PURE__*/ (()=>import.meta.url)());
3
+ import node_path from "node:path";
4
+ import { fs, removeModuleSyncFromExports } from "@modern-js/utils";
5
+ import { nodeDepEmit } from "ndepe";
6
+ import { isMainEntry } from "../../../utils/routes.mjs";
7
+ import { readTemplate, resolveESMDependency } from "../utils/index.mjs";
8
+ import { generateHandler } from "../utils/generator.mjs";
9
+ async function cleanDistDirectory(dir) {
10
+ try {
11
+ const items = await fs.readdir(dir);
12
+ for (const item of items){
13
+ const fullPath = node_path.join(dir, item);
14
+ if ('static' !== item && '_redirects' !== item && 'html' !== item) await fs.remove(fullPath);
15
+ }
16
+ } catch (error) {
17
+ console.error('Error cleaning directory:', error);
18
+ }
19
+ }
20
+ const createNetlifyPreset = ({ appContext, modernConfig, needModernServer })=>{
21
+ const { appDirectory, distDirectory, entrypoints, moduleType } = appContext;
22
+ const isEsmProject = 'module' === moduleType;
23
+ const netlifyOutput = node_path.join(appDirectory, '.netlify');
24
+ const funcsDirectory = node_path.join(netlifyOutput, 'functions');
25
+ const entryFilePath = node_path.join(funcsDirectory, 'index.js');
26
+ return {
27
+ async prepare () {
28
+ await fs.remove(netlifyOutput);
29
+ },
30
+ async writeOutput () {
31
+ const routes = [];
32
+ const { source: { mainEntryName }, html: { outputStructure } } = modernConfig;
33
+ if (needModernServer) routes.push({
34
+ src: '/*',
35
+ dest: "/.netlify/functions/index",
36
+ status: 200
37
+ });
38
+ else entrypoints.forEach((entry)=>{
39
+ const isMain = isMainEntry(entry.entryName, mainEntryName);
40
+ const htmlPath = 'flat' === outputStructure ? `/html/${entry.entryName}.html` : `/html/${entry.entryName}/index.html`;
41
+ routes.push({
42
+ src: `/${isMain ? '' : `${entry.entryName}/`}*`,
43
+ dest: htmlPath,
44
+ status: 200
45
+ });
46
+ });
47
+ const redirectContent = routes.map((route)=>`${route.src} ${route.dest} ${route.status}`).join('\n');
48
+ if (needModernServer) {
49
+ await fs.ensureDir(funcsDirectory);
50
+ await fs.copy(distDirectory, funcsDirectory, {
51
+ filter: (src)=>{
52
+ const distStaticDirectory = node_path.join(distDirectory, "static");
53
+ return !src.includes(distStaticDirectory);
54
+ }
55
+ });
56
+ }
57
+ const redirectFilePath = node_path.join(distDirectory, '_redirects');
58
+ await fs.writeFile(redirectFilePath, redirectContent);
59
+ },
60
+ async genEntry () {
61
+ if (!needModernServer) return;
62
+ const template = await readTemplate(`netlify-entry.${isEsmProject ? 'mjs' : 'cjs'}`);
63
+ const code = await generateHandler({
64
+ template,
65
+ appContext,
66
+ config: modernConfig,
67
+ isESM: isEsmProject
68
+ });
69
+ await fs.writeFile(entryFilePath, code);
70
+ },
71
+ async end () {
72
+ if ('development' !== process.env.NODE_ENV) await cleanDistDirectory(distDirectory);
73
+ if (!needModernServer) return;
74
+ const entry = isEsmProject ? await resolveESMDependency('@modern-js/prod-server') : require.resolve('@modern-js/prod-server');
75
+ const netlifyEntry = isEsmProject ? await resolveESMDependency('@modern-js/prod-server/netlify') : require.resolve('@modern-js/prod-server/netlify');
76
+ if (!entry || !netlifyEntry) throw new Error('Cannot find @modern-js/prod-server');
77
+ await nodeDepEmit({
78
+ appDir: appDirectory,
79
+ sourceDir: funcsDirectory,
80
+ includeEntries: [
81
+ entry,
82
+ netlifyEntry
83
+ ],
84
+ copyWholePackage (pkgName) {
85
+ return '@modern-js/utils' === pkgName;
86
+ },
87
+ transformPackageJson: ({ pkgJSON })=>{
88
+ if (!pkgJSON.exports || 'object' != typeof pkgJSON.exports) return pkgJSON;
89
+ return {
90
+ ...pkgJSON,
91
+ exports: removeModuleSyncFromExports(pkgJSON.exports)
92
+ };
93
+ }
94
+ });
95
+ }
96
+ };
97
+ };
98
+ export { createNetlifyPreset };
@@ -0,0 +1,58 @@
1
+ import __rslib_shim_module__ from "node:module";
2
+ const require = /*#__PURE__*/ __rslib_shim_module__.createRequire(/*#__PURE__*/ (()=>import.meta.url)());
3
+ import node_path from "node:path";
4
+ import { chalk, fs, removeModuleSyncFromExports } from "@modern-js/utils";
5
+ import { nodeDepEmit } from "ndepe";
6
+ import { readTemplate, resolveESMDependency } from "../utils/index.mjs";
7
+ import { generateHandler } from "../utils/generator.mjs";
8
+ const createNodePreset = ({ appContext, modernConfig, api })=>{
9
+ const { appDirectory, distDirectory, moduleType } = appContext;
10
+ const isEsmProject = 'module' === moduleType;
11
+ const outputDirectory = node_path.join(appDirectory, '.output');
12
+ const staticDirectory = node_path.join(outputDirectory, 'static');
13
+ const entryFilePath = node_path.join(outputDirectory, 'index.js');
14
+ return {
15
+ async prepare () {
16
+ await fs.remove(outputDirectory);
17
+ },
18
+ async writeOutput () {
19
+ await fs.copy(distDirectory, outputDirectory);
20
+ },
21
+ async genEntry () {
22
+ const template = await readTemplate(`node-entry.${isEsmProject ? 'mjs' : 'cjs'}`);
23
+ const code = await generateHandler({
24
+ template,
25
+ appContext,
26
+ config: modernConfig,
27
+ isESM: isEsmProject
28
+ });
29
+ await fs.writeFile(entryFilePath, code);
30
+ },
31
+ async end () {
32
+ const filter = (filePath)=>!filePath.startsWith(staticDirectory) && !filePath.endsWith('.map');
33
+ const entry = isEsmProject ? await resolveESMDependency('@modern-js/prod-server') : require.resolve('@modern-js/prod-server');
34
+ if (!entry) throw new Error('Cannot find @modern-js/prod-server');
35
+ await nodeDepEmit({
36
+ appDir: appDirectory,
37
+ sourceDir: outputDirectory,
38
+ includeEntries: [
39
+ entry
40
+ ],
41
+ copyWholePackage (pkgName) {
42
+ return '@modern-js/utils' === pkgName;
43
+ },
44
+ entryFilter: filter,
45
+ transformPackageJson: ({ pkgJSON })=>{
46
+ if (!pkgJSON.exports) return pkgJSON;
47
+ return {
48
+ ...pkgJSON,
49
+ exports: removeModuleSyncFromExports(pkgJSON.exports)
50
+ };
51
+ }
52
+ });
53
+ console.log('Static directory:', chalk.blue(node_path.relative(appDirectory, staticDirectory).replace(/\\/g, '/')));
54
+ console.log("You can preview this build by", chalk.blue('node .output/index'));
55
+ }
56
+ };
57
+ };
58
+ export { createNodePreset };
@@ -0,0 +1 @@
1
+ import "node:module";
@@ -0,0 +1,57 @@
1
+ const fs = require('node:fs/promises');
2
+ const path = require('node:path');
3
+ const { createNetlifyFunction } = require('@modern-js/prod-server/netlify');
4
+ p_genPluginImportsCode;
5
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
6
+ let requestHandler = null;
7
+ let handlerCreationPromise = null;
8
+ async function loadRoutes(routeFilepath) {
9
+ try {
10
+ await fs.access(routeFilepath);
11
+ const content = await fs.readFile(routeFilepath, 'utf-8');
12
+ const routeSpec = JSON.parse(content);
13
+ return routeSpec.routes || [];
14
+ } catch (error) {
15
+ console.warn('route.json not found or invalid, continuing with empty routes.');
16
+ return [];
17
+ }
18
+ }
19
+ async function initServer() {
20
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
21
+ const routes = await loadRoutes(routeFilepath);
22
+ const dynamicProdOptions = p_dynamicProdOptions;
23
+ const prodServerOptions = {
24
+ pwd: __dirname,
25
+ routes,
26
+ disableCustomHook: true,
27
+ appContext: {
28
+ sharedDirectory: p_sharedDirectory,
29
+ apiDirectory: p_apiDirectory,
30
+ lambdaDirectory: p_lambdaDirectory,
31
+ bffRuntimeFramework: p_bffRuntimeFramework
32
+ },
33
+ plugins: p_plugins,
34
+ serverConfigPath: p_serverDirectory,
35
+ ...dynamicProdOptions
36
+ };
37
+ const requestHandler = await createNetlifyFunction(prodServerOptions);
38
+ return requestHandler;
39
+ }
40
+ async function createHandler() {
41
+ if (!handlerCreationPromise) handlerCreationPromise = (async ()=>{
42
+ try {
43
+ requestHandler = await initServer();
44
+ } catch (error) {
45
+ console.error('Error creating server:', error);
46
+ process.exit(1);
47
+ }
48
+ })();
49
+ await handlerCreationPromise;
50
+ return requestHandler;
51
+ }
52
+ createHandler();
53
+ const handler = async (request, context)=>{
54
+ if (!requestHandler) await createHandler();
55
+ return requestHandler(request, context);
56
+ };
57
+ module.exports.default = handler;
@@ -0,0 +1,59 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { createNetlifyFunction } from '@modern-js/prod-server/netlify';
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ p_genPluginImportsCode;
7
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
8
+ let requestHandler = null;
9
+ let handlerCreationPromise = null;
10
+ async function loadRoutes(routeFilepath) {
11
+ try {
12
+ await fs.access(routeFilepath);
13
+ const content = await fs.readFile(routeFilepath, 'utf-8');
14
+ const routeSpec = JSON.parse(content);
15
+ return routeSpec.routes || [];
16
+ } catch (error) {
17
+ console.warn('route.json not found or invalid, continuing with empty routes.');
18
+ return [];
19
+ }
20
+ }
21
+ async function initServer() {
22
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
23
+ const routes = await loadRoutes(routeFilepath);
24
+ const dynamicProdOptions = p_dynamicProdOptions;
25
+ const prodServerOptions = {
26
+ pwd: __dirname,
27
+ routes,
28
+ disableCustomHook: true,
29
+ appContext: {
30
+ sharedDirectory: p_sharedDirectory,
31
+ apiDirectory: p_apiDirectory,
32
+ lambdaDirectory: p_lambdaDirectory,
33
+ bffRuntimeFramework: p_bffRuntimeFramework
34
+ },
35
+ plugins: p_plugins,
36
+ serverConfigPath: p_serverDirectory,
37
+ ...dynamicProdOptions
38
+ };
39
+ const requestHandler = await createNetlifyFunction(prodServerOptions);
40
+ return requestHandler;
41
+ }
42
+ async function createHandler() {
43
+ if (!handlerCreationPromise) handlerCreationPromise = (async ()=>{
44
+ try {
45
+ requestHandler = await initServer();
46
+ } catch (error) {
47
+ console.error('Error creating server:', error);
48
+ process.exit(1);
49
+ }
50
+ })();
51
+ await handlerCreationPromise;
52
+ return requestHandler;
53
+ }
54
+ createHandler();
55
+ const handler = async (request, context)=>{
56
+ if (!requestHandler) await createHandler();
57
+ return requestHandler(request, context);
58
+ };
59
+ export default handler;
@@ -0,0 +1,44 @@
1
+ const fs = require('node:fs/promises');
2
+ const path = require('node:path');
3
+ const { createProdServer } = require('@modern-js/prod-server');
4
+ p_genPluginImportsCode;
5
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
6
+ async function loadRoutes(routeFilepath) {
7
+ try {
8
+ await fs.access(routeFilepath);
9
+ const content = await fs.readFile(routeFilepath, 'utf-8');
10
+ const routeSpec = JSON.parse(content);
11
+ return routeSpec.routes || [];
12
+ } catch (error) {
13
+ console.warn('route.json not found or invalid, continuing with empty routes.');
14
+ return [];
15
+ }
16
+ }
17
+ async function main() {
18
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
19
+ const routes = await loadRoutes(routeFilepath);
20
+ const dynamicProdOptions = p_dynamicProdOptions;
21
+ const prodServerOptions = {
22
+ pwd: __dirname,
23
+ routes,
24
+ disableCustomHook: true,
25
+ appContext: {
26
+ sharedDirectory: p_sharedDirectory,
27
+ apiDirectory: p_apiDirectory,
28
+ lambdaDirectory: p_lambdaDirectory,
29
+ bffRuntimeFramework: p_bffRuntimeFramework
30
+ },
31
+ plugins: p_plugins,
32
+ serverConfigPath: p_serverDirectory,
33
+ ...dynamicProdOptions
34
+ };
35
+ const app = await createProdServer(prodServerOptions);
36
+ const port = process.env.PORT || 8080;
37
+ app.listen({
38
+ host: '::',
39
+ port
40
+ }, ()=>{
41
+ console.log(`\x1b[32mServer is listening on http://[::]:${port}`, '\x1b[0m');
42
+ });
43
+ }
44
+ main();
@@ -0,0 +1,46 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { createProdServer } from '@modern-js/prod-server';
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ p_genPluginImportsCode;
7
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
8
+ async function loadRoutes(routeFilepath) {
9
+ try {
10
+ await fs.access(routeFilepath);
11
+ const content = await fs.readFile(routeFilepath, 'utf-8');
12
+ const routeSpec = JSON.parse(content);
13
+ return routeSpec.routes || [];
14
+ } catch (error) {
15
+ console.warn('route.json not found or invalid, continuing with empty routes.');
16
+ return [];
17
+ }
18
+ }
19
+ async function main() {
20
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
21
+ const routes = await loadRoutes(routeFilepath);
22
+ const dynamicProdOptions = p_dynamicProdOptions;
23
+ const prodServerOptions = {
24
+ pwd: __dirname,
25
+ routes,
26
+ disableCustomHook: true,
27
+ appContext: {
28
+ sharedDirectory: p_sharedDirectory,
29
+ apiDirectory: p_apiDirectory,
30
+ lambdaDirectory: p_lambdaDirectory,
31
+ bffRuntimeFramework: p_bffRuntimeFramework
32
+ },
33
+ plugins: p_plugins,
34
+ serverConfigPath: p_serverDirectory,
35
+ ...dynamicProdOptions
36
+ };
37
+ const app = await createProdServer(prodServerOptions);
38
+ const port = process.env.PORT || 8080;
39
+ app.listen({
40
+ host: '::',
41
+ port
42
+ }, ()=>{
43
+ console.log(`\x1b[32mServer is listening on http://[::]:${port}`, '\x1b[0m');
44
+ });
45
+ }
46
+ main();
@@ -0,0 +1,57 @@
1
+ const fs = require('node:fs/promises');
2
+ const path = require('node:path');
3
+ const { createProdServer } = require('@modern-js/prod-server');
4
+ p_genPluginImportsCode;
5
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
6
+ let requestHandler = null;
7
+ let handlerCreationPromise = null;
8
+ async function loadRoutes(routeFilepath) {
9
+ try {
10
+ await fs.access(routeFilepath);
11
+ const content = await fs.readFile(routeFilepath, 'utf-8');
12
+ const routeSpec = JSON.parse(content);
13
+ return routeSpec.routes || [];
14
+ } catch (error) {
15
+ console.warn('route.json not found or invalid, continuing with empty routes.');
16
+ return [];
17
+ }
18
+ }
19
+ async function initServer() {
20
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
21
+ const routes = await loadRoutes(routeFilepath);
22
+ const dynamicProdOptions = p_dynamicProdOptions;
23
+ const prodServerOptions = {
24
+ pwd: __dirname,
25
+ routes,
26
+ disableCustomHook: true,
27
+ appContext: {
28
+ sharedDirectory: p_sharedDirectory,
29
+ apiDirectory: p_apiDirectory,
30
+ lambdaDirectory: p_lambdaDirectory,
31
+ bffRuntimeFramework: p_bffRuntimeFramework
32
+ },
33
+ plugins: p_plugins,
34
+ serverConfigPath: p_serverDirectory,
35
+ ...dynamicProdOptions
36
+ };
37
+ const app = await createProdServer(prodServerOptions);
38
+ return app.getRequestListener();
39
+ }
40
+ async function createHandler() {
41
+ if (!handlerCreationPromise) handlerCreationPromise = (async ()=>{
42
+ try {
43
+ requestHandler = await initServer();
44
+ } catch (error) {
45
+ console.error('Error creating server:', error);
46
+ process.exit(1);
47
+ }
48
+ })();
49
+ await handlerCreationPromise;
50
+ return requestHandler;
51
+ }
52
+ createHandler();
53
+ const handler = async (req, res)=>{
54
+ if (!requestHandler) await createHandler();
55
+ return requestHandler(req, res);
56
+ };
57
+ module.exports = handler;
@@ -0,0 +1,58 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { createProdServer } from '@modern-js/prod-server';
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ p_genPluginImportsCode;
7
+ if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';
8
+ let requestHandler = null;
9
+ let handlerCreationPromise = null;
10
+ async function loadRoutes(routeFilepath) {
11
+ try {
12
+ await fs.access(routeFilepath);
13
+ const content = await fs.readFile(routeFilepath, 'utf-8');
14
+ const routeSpec = JSON.parse(content);
15
+ return routeSpec.routes || [];
16
+ } catch (error) {
17
+ console.warn('route.json not found or invalid, continuing with empty routes.');
18
+ return [];
19
+ }
20
+ }
21
+ async function initServer() {
22
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
23
+ const routes = await loadRoutes(routeFilepath);
24
+ const dynamicProdOptions = p_dynamicProdOptions;
25
+ const prodServerOptions = {
26
+ pwd: __dirname,
27
+ routes,
28
+ disableCustomHook: true,
29
+ appContext: {
30
+ sharedDirectory: p_sharedDirectory,
31
+ apiDirectory: p_apiDirectory,
32
+ lambdaDirectory: p_lambdaDirectory
33
+ },
34
+ plugins: p_plugins,
35
+ serverConfigPath: p_serverDirectory,
36
+ ...dynamicProdOptions
37
+ };
38
+ const app = await createProdServer(prodServerOptions);
39
+ return app.getRequestListener();
40
+ }
41
+ async function createHandler() {
42
+ if (!handlerCreationPromise) handlerCreationPromise = (async ()=>{
43
+ try {
44
+ requestHandler = await initServer();
45
+ } catch (error) {
46
+ console.error('Error creating server:', error);
47
+ process.exit(1);
48
+ }
49
+ })();
50
+ await handlerCreationPromise;
51
+ return requestHandler;
52
+ }
53
+ createHandler();
54
+ const handler = async (req, res)=>{
55
+ if (!requestHandler) await createHandler();
56
+ return requestHandler(req, res);
57
+ };
58
+ export default handler;