@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.10 → 3.5.0-ultramodern.101

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 (558) hide show
  1. package/bin/modern-bundle-docs.js +7 -0
  2. package/bin/modern.js +0 -0
  3. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +5 -1
  4. package/dist/cjs/builder/generator/getBuilderEnvironments.js +20 -16
  5. package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +13 -4
  6. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +14 -11
  7. package/dist/cjs/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.js +72 -0
  8. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +28 -11
  9. package/dist/cjs/builder/shared/bundlerPlugins/index.js +13 -6
  10. package/dist/cjs/builder/shared/lazyCompilation.js +2 -10
  11. package/dist/cjs/bundleDocs.js +114 -0
  12. package/dist/cjs/commands/build.js +2 -1
  13. package/dist/cjs/commands/deploy.js +4 -2
  14. package/dist/cjs/commands/index.js +0 -8
  15. package/dist/cjs/config/build-environment.js +268 -0
  16. package/dist/cjs/config/default.js +2 -0
  17. package/dist/cjs/config/index.js +11 -4
  18. package/dist/cjs/config/public.js +46 -0
  19. package/dist/cjs/index.js +93 -75
  20. package/dist/cjs/plugins/analyze/getServerRoutes.js +19 -0
  21. package/dist/cjs/plugins/analyze/index.js +22 -14
  22. package/dist/cjs/plugins/analyze/utils.js +3 -2
  23. package/dist/cjs/plugins/backend-federation/codegen.js +255 -0
  24. package/dist/cjs/plugins/backend-federation/config.js +204 -0
  25. package/dist/cjs/plugins/backend-federation/emit.js +148 -0
  26. package/dist/cjs/plugins/backendFederationBuild.js +53 -0
  27. package/dist/cjs/plugins/deploy/index.js +4 -4
  28. package/dist/cjs/plugins/deploy/platforms/cloudflare/artifacts.js +127 -0
  29. package/dist/cjs/plugins/deploy/platforms/cloudflare/constants.js +141 -0
  30. package/dist/cjs/plugins/deploy/platforms/cloudflare/delivery-unit.js +139 -0
  31. package/dist/cjs/plugins/deploy/platforms/cloudflare/i18n-worker.js +135 -0
  32. package/dist/cjs/plugins/deploy/platforms/cloudflare/index.js +150 -0
  33. package/dist/cjs/plugins/deploy/platforms/cloudflare/security-policies.js +205 -0
  34. package/dist/cjs/plugins/deploy/platforms/cloudflare/types.js +18 -0
  35. package/dist/cjs/plugins/deploy/platforms/cloudflare/utils.js +66 -0
  36. package/dist/cjs/plugins/deploy/platforms/cloudflare/worker-manifest.js +208 -0
  37. package/dist/cjs/plugins/deploy/platforms/cloudflare/wrangler-config.js +204 -0
  38. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-contract.js +108 -0
  39. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-plan.js +93 -0
  40. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/identity.js +83 -0
  41. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +188 -0
  42. package/dist/cjs/{baseline.js → plugins/deploy/platforms/cloudflare-output-verifier/issues.js} +19 -10
  43. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/manifest.js +89 -0
  44. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.js +151 -0
  45. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +302 -0
  46. package/dist/cjs/plugins/deploy/platforms/node.js +20 -2
  47. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
  48. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  49. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  50. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
  51. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
  52. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  53. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
  54. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
  55. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
  56. package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
  57. package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
  58. package/dist/cjs/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
  59. package/dist/cjs/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
  60. package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
  61. package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
  62. package/dist/cjs/plugins/deploy/utils/npmAliases.js +226 -0
  63. package/dist/cjs/plugins/initialize/index.js +4 -3
  64. package/dist/cjs/plugins/serverBuild.js +3 -2
  65. package/dist/cjs/plugins/ultramodernReleaseEnvelope.js +100 -0
  66. package/dist/cjs/presetUltramodern.js +33 -2
  67. package/dist/cjs/ultramodern-release-envelope/canonical.js +68 -0
  68. package/dist/cjs/ultramodern-release-envelope/framework-output.js +597 -0
  69. package/dist/cjs/ultramodern-release-envelope/index.js +399 -0
  70. package/dist/cjs/ultramodern-release-envelope/types.js +51 -0
  71. package/dist/cjs/ultramodern-release-identity.js +110 -0
  72. package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +5 -1
  73. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +19 -15
  74. package/dist/esm/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
  75. package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +15 -12
  76. package/dist/esm/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +30 -0
  77. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.mjs +24 -10
  78. package/dist/esm/builder/shared/bundlerPlugins/index.mjs +1 -0
  79. package/dist/esm/builder/shared/lazyCompilation.mjs +1 -3
  80. package/dist/esm/bundleDocs.mjs +62 -0
  81. package/dist/esm/commands/build.mjs +2 -1
  82. package/dist/esm/commands/deploy.mjs +4 -2
  83. package/dist/esm/commands/index.mjs +0 -5
  84. package/dist/esm/config/build-environment.mjs +224 -0
  85. package/dist/esm/config/default.mjs +2 -0
  86. package/dist/esm/config/index.mjs +1 -0
  87. package/dist/esm/config/public.mjs +1 -0
  88. package/dist/esm/index.mjs +20 -5
  89. package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +2 -2
  90. package/dist/esm/plugins/analyze/getServerRoutes.mjs +17 -1
  91. package/dist/esm/plugins/analyze/index.mjs +22 -14
  92. package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +2 -2
  93. package/dist/esm/plugins/analyze/utils.mjs +3 -2
  94. package/dist/esm/plugins/backend-federation/codegen.mjs +204 -0
  95. package/dist/esm/plugins/backend-federation/config.mjs +128 -0
  96. package/dist/esm/plugins/backend-federation/emit.mjs +97 -0
  97. package/dist/esm/plugins/backendFederationBuild.mjs +1 -0
  98. package/dist/esm/plugins/deploy/index.mjs +1 -1
  99. package/dist/esm/plugins/deploy/platforms/cloudflare/artifacts.mjs +64 -0
  100. package/dist/esm/plugins/deploy/platforms/cloudflare/constants.mjs +34 -0
  101. package/dist/esm/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +88 -0
  102. package/dist/esm/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +97 -0
  103. package/dist/esm/plugins/deploy/platforms/cloudflare/index.mjs +102 -0
  104. package/dist/esm/plugins/deploy/platforms/cloudflare/security-policies.mjs +167 -0
  105. package/dist/esm/plugins/deploy/platforms/cloudflare/types.mjs +0 -0
  106. package/dist/esm/plugins/deploy/platforms/cloudflare/utils.mjs +12 -0
  107. package/dist/esm/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +148 -0
  108. package/dist/esm/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +150 -0
  109. package/dist/esm/plugins/deploy/platforms/cloudflare-output-contract.mjs +31 -0
  110. package/dist/esm/plugins/deploy/platforms/cloudflare-output-plan.mjs +45 -0
  111. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +45 -0
  112. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +133 -0
  113. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +10 -0
  114. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +51 -0
  115. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +99 -0
  116. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +238 -0
  117. package/dist/esm/plugins/deploy/platforms/node.mjs +20 -2
  118. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
  119. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  120. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  121. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
  122. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
  123. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  124. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
  125. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
  126. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
  127. package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
  128. package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
  129. package/dist/esm/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
  130. package/dist/esm/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
  131. package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
  132. package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
  133. package/dist/esm/plugins/deploy/utils/npmAliases.mjs +174 -0
  134. package/dist/esm/plugins/initialize/index.mjs +4 -3
  135. package/dist/esm/plugins/serverBuild.mjs +3 -2
  136. package/dist/esm/plugins/ultramodernReleaseEnvelope.mjs +52 -0
  137. package/dist/esm/presetUltramodern.mjs +33 -2
  138. package/dist/esm/ultramodern-release-envelope/canonical.mjs +21 -0
  139. package/dist/esm/ultramodern-release-envelope/framework-output.mjs +524 -0
  140. package/dist/esm/ultramodern-release-envelope/index.mjs +335 -0
  141. package/dist/esm/ultramodern-release-envelope/types.mjs +7 -0
  142. package/dist/esm/ultramodern-release-identity.mjs +66 -0
  143. package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +5 -1
  144. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +19 -15
  145. package/dist/esm-node/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
  146. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +15 -12
  147. package/dist/esm-node/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +31 -0
  148. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.mjs +24 -10
  149. package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +1 -0
  150. package/dist/esm-node/builder/shared/lazyCompilation.mjs +1 -3
  151. package/dist/esm-node/bundleDocs.mjs +63 -0
  152. package/dist/esm-node/commands/build.mjs +2 -1
  153. package/dist/esm-node/commands/deploy.mjs +4 -2
  154. package/dist/esm-node/commands/index.mjs +0 -5
  155. package/dist/esm-node/config/build-environment.mjs +225 -0
  156. package/dist/esm-node/config/default.mjs +2 -0
  157. package/dist/esm-node/config/index.mjs +1 -0
  158. package/dist/esm-node/config/public.mjs +2 -0
  159. package/dist/esm-node/index.mjs +20 -5
  160. package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +2 -2
  161. package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +17 -1
  162. package/dist/esm-node/plugins/analyze/index.mjs +22 -14
  163. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +2 -2
  164. package/dist/esm-node/plugins/analyze/utils.mjs +3 -2
  165. package/dist/esm-node/plugins/backend-federation/codegen.mjs +205 -0
  166. package/dist/esm-node/plugins/backend-federation/config.mjs +129 -0
  167. package/dist/esm-node/plugins/backend-federation/emit.mjs +98 -0
  168. package/dist/esm-node/plugins/backendFederationBuild.mjs +2 -0
  169. package/dist/esm-node/plugins/deploy/index.mjs +1 -1
  170. package/dist/esm-node/plugins/deploy/platforms/cloudflare/artifacts.mjs +65 -0
  171. package/dist/esm-node/plugins/deploy/platforms/cloudflare/constants.mjs +35 -0
  172. package/dist/esm-node/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +89 -0
  173. package/dist/esm-node/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +98 -0
  174. package/dist/esm-node/plugins/deploy/platforms/cloudflare/index.mjs +103 -0
  175. package/dist/esm-node/plugins/deploy/platforms/cloudflare/security-policies.mjs +168 -0
  176. package/dist/esm-node/plugins/deploy/platforms/cloudflare/types.mjs +1 -0
  177. package/dist/esm-node/plugins/deploy/platforms/cloudflare/utils.mjs +13 -0
  178. package/dist/esm-node/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +149 -0
  179. package/dist/esm-node/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +151 -0
  180. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-contract.mjs +32 -0
  181. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-plan.mjs +46 -0
  182. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +46 -0
  183. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +134 -0
  184. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +11 -0
  185. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +52 -0
  186. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +100 -0
  187. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +239 -0
  188. package/dist/esm-node/plugins/deploy/platforms/node.mjs +20 -2
  189. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
  190. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  191. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  192. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
  193. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
  194. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  195. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
  196. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
  197. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
  198. package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
  199. package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
  200. package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
  201. package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
  202. package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
  203. package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
  204. package/dist/esm-node/plugins/deploy/utils/npmAliases.mjs +175 -0
  205. package/dist/esm-node/plugins/initialize/index.mjs +4 -3
  206. package/dist/esm-node/plugins/serverBuild.mjs +3 -2
  207. package/dist/esm-node/plugins/ultramodernReleaseEnvelope.mjs +53 -0
  208. package/dist/esm-node/presetUltramodern.mjs +33 -2
  209. package/dist/esm-node/ultramodern-release-envelope/canonical.mjs +22 -0
  210. package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +525 -0
  211. package/dist/esm-node/ultramodern-release-envelope/index.mjs +336 -0
  212. package/dist/esm-node/ultramodern-release-envelope/types.mjs +8 -0
  213. package/dist/esm-node/ultramodern-release-identity.mjs +67 -0
  214. package/dist/types/builder/generator/createCopyPattern.d.ts +7 -5
  215. package/dist/types/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.d.ts +6 -0
  216. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +1 -0
  217. package/dist/types/builder/shared/bundlerPlugins/index.d.ts +1 -0
  218. package/dist/types/builder/shared/lazyCompilation.d.ts +2 -4
  219. package/dist/types/bundleDocs.d.ts +20 -0
  220. package/dist/types/commands/deploy.d.ts +2 -1
  221. package/dist/types/commands/index.d.ts +0 -1
  222. package/dist/types/config/build-environment.d.ts +22 -0
  223. package/dist/types/config/index.d.ts +1 -0
  224. package/dist/types/config/public.d.ts +2 -0
  225. package/dist/types/index.d.ts +4 -3
  226. package/dist/types/plugins/analyze/getServerRoutes.d.ts +1 -0
  227. package/dist/types/plugins/analyze/utils.d.ts +1 -1
  228. package/dist/types/plugins/backend-federation/codegen.d.ts +83 -0
  229. package/dist/types/plugins/backend-federation/config.d.ts +103 -0
  230. package/dist/types/plugins/backend-federation/emit.d.ts +13 -0
  231. package/dist/types/plugins/backendFederationBuild.d.ts +2 -0
  232. package/dist/types/plugins/deploy/platforms/cloudflare/artifacts.d.ts +15 -0
  233. package/dist/types/plugins/deploy/platforms/cloudflare/constants.d.ts +24 -0
  234. package/dist/types/plugins/deploy/platforms/cloudflare/delivery-unit.d.ts +23 -0
  235. package/dist/types/plugins/deploy/platforms/cloudflare/i18n-worker.d.ts +22 -0
  236. package/dist/types/plugins/deploy/platforms/{cloudflare.d.ts → cloudflare/index.d.ts} +1 -1
  237. package/dist/types/plugins/deploy/platforms/cloudflare/security-policies.d.ts +51 -0
  238. package/dist/types/plugins/deploy/platforms/cloudflare/types.d.ts +5 -0
  239. package/dist/types/plugins/deploy/platforms/cloudflare/utils.d.ts +6 -0
  240. package/dist/types/plugins/deploy/platforms/cloudflare/worker-manifest.d.ts +122 -0
  241. package/dist/types/plugins/deploy/platforms/cloudflare/wrangler-config.d.ts +46 -0
  242. package/dist/types/plugins/deploy/platforms/cloudflare-output-contract.d.ts +14 -0
  243. package/dist/types/plugins/deploy/platforms/cloudflare-output-plan.d.ts +34 -0
  244. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/identity.d.ts +4 -0
  245. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts +18 -0
  246. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/issues.d.ts +14 -0
  247. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/manifest.d.ts +2 -0
  248. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.d.ts +14 -0
  249. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +20 -0
  250. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -0
  251. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.d.mts +1 -0
  252. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.d.mts +1 -0
  253. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.d.mts +1 -0
  254. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.d.mts +1 -0
  255. package/dist/types/plugins/deploy/utils/npmAliases.d.ts +14 -0
  256. package/dist/types/plugins/ultramodernReleaseEnvelope.d.ts +3 -0
  257. package/dist/types/presetUltramodern.d.ts +10 -0
  258. package/dist/types/run/index.d.ts +1 -1
  259. package/dist/types/types/config/cloudflareDeploy.d.ts +41 -0
  260. package/dist/types/types/config/deploy.d.ts +15 -2
  261. package/dist/types/types/config/dev.d.ts +6 -0
  262. package/dist/types/ultramodern-release-envelope/canonical.d.ts +5 -0
  263. package/dist/types/ultramodern-release-envelope/framework-output.d.ts +31 -0
  264. package/dist/types/ultramodern-release-envelope/index.d.ts +6 -0
  265. package/dist/types/ultramodern-release-envelope/types.d.ts +62 -0
  266. package/dist/types/ultramodern-release-identity.d.ts +16 -0
  267. package/docs/apis/app/commands.md +231 -0
  268. package/docs/apis/app/hooks/api/lambda.md +9 -0
  269. package/docs/apis/app/hooks/config/favicon.md +24 -0
  270. package/docs/apis/app/hooks/config/html.md +5 -0
  271. package/docs/apis/app/hooks/config/icon.md +24 -0
  272. package/docs/apis/app/hooks/config/mock.md +6 -0
  273. package/docs/apis/app/hooks/config/public.md +26 -0
  274. package/docs/apis/app/hooks/config/upload.md +50 -0
  275. package/docs/apis/app/hooks/modern-config.md +5 -0
  276. package/docs/apis/app/hooks/server/server.md +5 -0
  277. package/docs/apis/app/hooks/shared.md +3 -0
  278. package/docs/apis/app/hooks/src/app.md +30 -0
  279. package/docs/apis/app/hooks/src/entry.md +34 -0
  280. package/docs/apis/app/hooks/src/entry.server.md +51 -0
  281. package/docs/apis/app/hooks/src/modern.runtime.md +5 -0
  282. package/docs/apis/app/hooks/src/routes.md +86 -0
  283. package/docs/apis/app/hooks/src/server.md +3 -0
  284. package/docs/apis/app/runtime/bff/use-backend-context.md +27 -0
  285. package/docs/apis/app/runtime/core/create-root.md +19 -0
  286. package/docs/apis/app/runtime/core/render.md +39 -0
  287. package/docs/apis/app/runtime/core/runtime-context.md +156 -0
  288. package/docs/apis/app/runtime/router/router.md +283 -0
  289. package/docs/apis/app/runtime/ssr/no-ssr.md +35 -0
  290. package/docs/apis/app/runtime/ssr/renderStreaming.md +67 -0
  291. package/docs/apis/app/runtime/ssr/renderString.md +60 -0
  292. package/docs/apis/app/runtime/ssr/requestHandler.md +44 -0
  293. package/docs/apis/app/runtime/utility/css-in-js.md +40 -0
  294. package/docs/apis/app/runtime/utility/head.md +35 -0
  295. package/docs/apis/app/runtime/utility/loadable.md +82 -0
  296. package/docs/community/blog/2022-0708-updates.md +91 -0
  297. package/docs/community/blog/2022-0910-updates.md +76 -0
  298. package/docs/community/blog/overview.md +63 -0
  299. package/docs/community/blog/v2-release-note.md +238 -0
  300. package/docs/community/blog/v3-release-note.md +622 -0
  301. package/docs/community/contributing-guide.md +252 -0
  302. package/docs/community/releases.md +23 -0
  303. package/docs/community/showcase.md +24 -0
  304. package/docs/community/team.md +14 -0
  305. package/docs/configure/app/bff/cross-project.md +20 -0
  306. package/docs/configure/app/bff/effect.md +315 -0
  307. package/docs/configure/app/bff/prefix.md +29 -0
  308. package/docs/configure/app/bff/runtime-framework.md +26 -0
  309. package/docs/configure/app/builder-plugins.md +66 -0
  310. package/docs/configure/app/dev/asset-prefix.md +13 -0
  311. package/docs/configure/app/dev/before-start-url.md +17 -0
  312. package/docs/configure/app/dev/client.md +41 -0
  313. package/docs/configure/app/dev/hmr.md +10 -0
  314. package/docs/configure/app/dev/host.md +18 -0
  315. package/docs/configure/app/dev/https.md +77 -0
  316. package/docs/configure/app/dev/lazy-compilation.md +39 -0
  317. package/docs/configure/app/dev/live-reload.md +10 -0
  318. package/docs/configure/app/dev/mock-dir.md +31 -0
  319. package/docs/configure/app/dev/progress-bar.md +19 -0
  320. package/docs/configure/app/dev/server.md +124 -0
  321. package/docs/configure/app/dev/setup-middlewares.md +32 -0
  322. package/docs/configure/app/dev/start-url.md +48 -0
  323. package/docs/configure/app/dev/watch-files.md +27 -0
  324. package/docs/configure/app/dev/write-to-disk.md +10 -0
  325. package/docs/configure/app/experiments/source-build.md +31 -0
  326. package/docs/configure/app/html/app-icon.md +28 -0
  327. package/docs/configure/app/html/crossorigin.md +10 -0
  328. package/docs/configure/app/html/favicon.md +16 -0
  329. package/docs/configure/app/html/inject.md +10 -0
  330. package/docs/configure/app/html/meta.md +24 -0
  331. package/docs/configure/app/html/mount-id.md +10 -0
  332. package/docs/configure/app/html/output-structure.md +10 -0
  333. package/docs/configure/app/html/script-loading.md +10 -0
  334. package/docs/configure/app/html/tags.md +15 -0
  335. package/docs/configure/app/html/template-parameters.md +33 -0
  336. package/docs/configure/app/html/template.md +10 -0
  337. package/docs/configure/app/html/title.md +18 -0
  338. package/docs/configure/app/output/asset-prefix.md +11 -0
  339. package/docs/configure/app/output/assets-retry.md +77 -0
  340. package/docs/configure/app/output/charset.md +10 -0
  341. package/docs/configure/app/output/clean-dist-path.md +16 -0
  342. package/docs/configure/app/output/convert-to-rem.md +79 -0
  343. package/docs/configure/app/output/copy.md +10 -0
  344. package/docs/configure/app/output/css-modules.md +48 -0
  345. package/docs/configure/app/output/data-uri-limit.md +26 -0
  346. package/docs/configure/app/output/disable-css-module-extension.md +55 -0
  347. package/docs/configure/app/output/disable-inline-runtime-chunk.md +41 -0
  348. package/docs/configure/app/output/disable-svgr.md +18 -0
  349. package/docs/configure/app/output/disable-ts-checker.md +49 -0
  350. package/docs/configure/app/output/dist-path.md +43 -0
  351. package/docs/configure/app/output/enable-asset-manifest.md +36 -0
  352. package/docs/configure/app/output/enable-css-module-tsdeclaration.md +28 -0
  353. package/docs/configure/app/output/enable-inline-route-manifests.md +16 -0
  354. package/docs/configure/app/output/externals.md +20 -0
  355. package/docs/configure/app/output/filename-hash.md +10 -0
  356. package/docs/configure/app/output/filename.md +55 -0
  357. package/docs/configure/app/output/inject-styles.md +10 -0
  358. package/docs/configure/app/output/inline-scripts.md +29 -0
  359. package/docs/configure/app/output/inline-styles.md +29 -0
  360. package/docs/configure/app/output/legal-comments.md +18 -0
  361. package/docs/configure/app/output/minify.md +22 -0
  362. package/docs/configure/app/output/override-browserslist.md +22 -0
  363. package/docs/configure/app/output/polyfill.md +12 -0
  364. package/docs/configure/app/output/source-map.md +30 -0
  365. package/docs/configure/app/output/split-route-chunks.md +16 -0
  366. package/docs/configure/app/output/ssg.md +81 -0
  367. package/docs/configure/app/output/ssgByEntries.md +90 -0
  368. package/docs/configure/app/output/svg-default-export.md +30 -0
  369. package/docs/configure/app/output/temp-dir.md +20 -0
  370. package/docs/configure/app/performance/build-cache.md +44 -0
  371. package/docs/configure/app/performance/chunk-split.md +40 -0
  372. package/docs/configure/app/performance/dns-prefetch.md +15 -0
  373. package/docs/configure/app/performance/preconnect.md +16 -0
  374. package/docs/configure/app/performance/prefetch.md +21 -0
  375. package/docs/configure/app/performance/preload.md +23 -0
  376. package/docs/configure/app/performance/print-file-size.md +40 -0
  377. package/docs/configure/app/performance/profile.md +10 -0
  378. package/docs/configure/app/performance/remove-console.md +10 -0
  379. package/docs/configure/app/performance/remove-moment-locale.md +10 -0
  380. package/docs/configure/app/performance/rsdoctor.md +38 -0
  381. package/docs/configure/app/plugins.md +59 -0
  382. package/docs/configure/app/resolve/alias-strategy.md +10 -0
  383. package/docs/configure/app/resolve/alias.md +9 -0
  384. package/docs/configure/app/resolve/condition-names.md +13 -0
  385. package/docs/configure/app/resolve/dedupe.md +9 -0
  386. package/docs/configure/app/resolve/extensions.md +13 -0
  387. package/docs/configure/app/runtime/0-intro.md +58 -0
  388. package/docs/configure/app/runtime/plugins.md +58 -0
  389. package/docs/configure/app/runtime/router.md +35 -0
  390. package/docs/configure/app/security/check-syntax.md +69 -0
  391. package/docs/configure/app/security/nonce.md +15 -0
  392. package/docs/configure/app/security/sri.md +20 -0
  393. package/docs/configure/app/server/base-url.md +26 -0
  394. package/docs/configure/app/server/port.md +18 -0
  395. package/docs/configure/app/server/public-routes.md +22 -0
  396. package/docs/configure/app/server/routes.md +86 -0
  397. package/docs/configure/app/server/rsc.md +26 -0
  398. package/docs/configure/app/server/ssr-by-entries.md +25 -0
  399. package/docs/configure/app/server/ssr.md +80 -0
  400. package/docs/configure/app/server/tsconfig-path.md +59 -0
  401. package/docs/configure/app/source/alias-strategy.md +14 -0
  402. package/docs/configure/app/source/alias.md +23 -0
  403. package/docs/configure/app/source/config-dir.md +20 -0
  404. package/docs/configure/app/source/decorators.md +25 -0
  405. package/docs/configure/app/source/define.md +16 -0
  406. package/docs/configure/app/source/disable-default-entries.md +28 -0
  407. package/docs/configure/app/source/enable-async-entry.md +54 -0
  408. package/docs/configure/app/source/enable-async-pre-entry.md +26 -0
  409. package/docs/configure/app/source/entries-dir.md +35 -0
  410. package/docs/configure/app/source/entries.md +179 -0
  411. package/docs/configure/app/source/exclude.md +10 -0
  412. package/docs/configure/app/source/global-vars.md +106 -0
  413. package/docs/configure/app/source/include.md +36 -0
  414. package/docs/configure/app/source/main-entry-name.md +24 -0
  415. package/docs/configure/app/source/pre-entry.md +10 -0
  416. package/docs/configure/app/source/react-compiler.md +68 -0
  417. package/docs/configure/app/source/transform-import.md +27 -0
  418. package/docs/configure/app/split-chunks.md +17 -0
  419. package/docs/configure/app/tools/autoprefixer.md +44 -0
  420. package/docs/configure/app/tools/bundler-chain.md +26 -0
  421. package/docs/configure/app/tools/css-extract.md +33 -0
  422. package/docs/configure/app/tools/css-loader.md +17 -0
  423. package/docs/configure/app/tools/dev-server.md +113 -0
  424. package/docs/configure/app/tools/html-plugin.md +41 -0
  425. package/docs/configure/app/tools/less.md +81 -0
  426. package/docs/configure/app/tools/lightningcss-loader.md +35 -0
  427. package/docs/configure/app/tools/minify-css.md +53 -0
  428. package/docs/configure/app/tools/postcss.md +34 -0
  429. package/docs/configure/app/tools/rspack.md +10 -0
  430. package/docs/configure/app/tools/sass.md +78 -0
  431. package/docs/configure/app/tools/style-loader.md +10 -0
  432. package/docs/configure/app/tools/swc.md +65 -0
  433. package/docs/configure/app/tools/ts-checker.md +116 -0
  434. package/docs/configure/app/usage.md +276 -0
  435. package/docs/guides/advanced-features/bff/cross-project.md +109 -0
  436. package/docs/guides/advanced-features/bff/data-platform.md +116 -0
  437. package/docs/guides/advanced-features/bff/extend-server.md +120 -0
  438. package/docs/guides/advanced-features/bff/frameworks.md +243 -0
  439. package/docs/guides/advanced-features/bff/function.md +318 -0
  440. package/docs/guides/advanced-features/bff/operators.md +554 -0
  441. package/docs/guides/advanced-features/bff/sdk.md +116 -0
  442. package/docs/guides/advanced-features/bff/upload.md +101 -0
  443. package/docs/guides/advanced-features/bff.md +18 -0
  444. package/docs/guides/advanced-features/build-performance.md +130 -0
  445. package/docs/guides/advanced-features/compatibility.md +120 -0
  446. package/docs/guides/advanced-features/international/advanced.md +128 -0
  447. package/docs/guides/advanced-features/international/api.md +267 -0
  448. package/docs/guides/advanced-features/international/best-practices.md +286 -0
  449. package/docs/guides/advanced-features/international/configuration.md +228 -0
  450. package/docs/guides/advanced-features/international/locale-detection.md +126 -0
  451. package/docs/guides/advanced-features/international/quick-start.md +128 -0
  452. package/docs/guides/advanced-features/international/resource-loading.md +154 -0
  453. package/docs/guides/advanced-features/international/routing.md +173 -0
  454. package/docs/guides/advanced-features/international.md +27 -0
  455. package/docs/guides/advanced-features/low-level.md +46 -0
  456. package/docs/guides/advanced-features/page-performance/code-split.md +77 -0
  457. package/docs/guides/advanced-features/page-performance/inline-assets.md +159 -0
  458. package/docs/guides/advanced-features/page-performance/optimize-bundle.md +97 -0
  459. package/docs/guides/advanced-features/page-performance/react-compiler.md +51 -0
  460. package/docs/guides/advanced-features/server-monitor/logger.md +41 -0
  461. package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
  462. package/docs/guides/advanced-features/server-monitor/monitors.md +242 -0
  463. package/docs/guides/advanced-features/source-build.md +164 -0
  464. package/docs/guides/advanced-features/web-server.md +288 -0
  465. package/docs/guides/basic-features/alias.md +102 -0
  466. package/docs/guides/basic-features/css/css-in-js.md +72 -0
  467. package/docs/guides/basic-features/css/css-modules.md +212 -0
  468. package/docs/guides/basic-features/css/css.md +27 -0
  469. package/docs/guides/basic-features/css/tailwindcss.md +27 -0
  470. package/docs/guides/basic-features/data/data-cache.md +510 -0
  471. package/docs/guides/basic-features/data/data-fetch.md +415 -0
  472. package/docs/guides/basic-features/data/data-write.md +227 -0
  473. package/docs/guides/basic-features/debug/mock.md +109 -0
  474. package/docs/guides/basic-features/debug/proxy.md +21 -0
  475. package/docs/guides/basic-features/debug/rsdoctor.md +47 -0
  476. package/docs/guides/basic-features/debug/using-storybook.md +112 -0
  477. package/docs/guides/basic-features/deploy.md +458 -0
  478. package/docs/guides/basic-features/env-vars.md +177 -0
  479. package/docs/guides/basic-features/html.md +255 -0
  480. package/docs/guides/basic-features/output-files.md +141 -0
  481. package/docs/guides/basic-features/render/before-render.md +108 -0
  482. package/docs/guides/basic-features/render/overview.md +47 -0
  483. package/docs/guides/basic-features/render/rsc.md +525 -0
  484. package/docs/guides/basic-features/render/ssg.md +228 -0
  485. package/docs/guides/basic-features/render/ssr-cache.md +201 -0
  486. package/docs/guides/basic-features/render/ssr.md +321 -0
  487. package/docs/guides/basic-features/render/streaming-ssr.md +264 -0
  488. package/docs/guides/basic-features/routes/config-routes.md +426 -0
  489. package/docs/guides/basic-features/routes/routes.md +524 -0
  490. package/docs/guides/basic-features/static-assets/json-files.md +120 -0
  491. package/docs/guides/basic-features/static-assets/svg-assets.md +168 -0
  492. package/docs/guides/basic-features/static-assets/wasm-assets.md +62 -0
  493. package/docs/guides/basic-features/static-assets.md +160 -0
  494. package/docs/guides/basic-features/testing/playwright.md +120 -0
  495. package/docs/guides/basic-features/testing/rstest.md +251 -0
  496. package/docs/guides/concept/builder.md +37 -0
  497. package/docs/guides/concept/entries.md +319 -0
  498. package/docs/guides/concept/server.md +35 -0
  499. package/docs/guides/get-started/ai-coding-agents.md +58 -0
  500. package/docs/guides/get-started/glossary.md +63 -0
  501. package/docs/guides/get-started/introduction.md +40 -0
  502. package/docs/guides/get-started/quick-start.md +269 -0
  503. package/docs/guides/get-started/tech-stack.md +91 -0
  504. package/docs/guides/get-started/ultramodern.md +428 -0
  505. package/docs/guides/get-started/upgrade.md +123 -0
  506. package/docs/guides/topic-detail/module-federation/application.md +116 -0
  507. package/docs/guides/topic-detail/module-federation/deploy.md +104 -0
  508. package/docs/guides/topic-detail/module-federation/i18n.md +670 -0
  509. package/docs/guides/topic-detail/module-federation/introduce.md +35 -0
  510. package/docs/guides/topic-detail/module-federation/ssr.md +182 -0
  511. package/docs/guides/topic-detail/module-federation/usage.md +219 -0
  512. package/docs/guides/troubleshooting/builder.md +110 -0
  513. package/docs/guides/troubleshooting/cli.md +35 -0
  514. package/docs/guides/troubleshooting/dependencies.md +119 -0
  515. package/docs/guides/troubleshooting/hmr.md +144 -0
  516. package/docs/guides/upgrade/config.md +954 -0
  517. package/docs/guides/upgrade/entry.md +463 -0
  518. package/docs/guides/upgrade/other.md +183 -0
  519. package/docs/guides/upgrade/overview.md +33 -0
  520. package/docs/guides/upgrade/tailwindcss.md +91 -0
  521. package/docs/guides/upgrade/web-server.md +109 -0
  522. package/docs/index.md +33 -0
  523. package/docs/llms.txt +290 -0
  524. package/docs/plugin/cli-plugins/api.md +573 -0
  525. package/docs/plugin/cli-plugins/life-cycle.md +2 -0
  526. package/docs/plugin/introduction.md +152 -0
  527. package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
  528. package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
  529. package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
  530. package/docs/plugin/official/cli-plugins.md +4 -0
  531. package/docs/plugin/plugin-system.md +238 -0
  532. package/docs/plugin/runtime-plugins/api.md +194 -0
  533. package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
  534. package/docs/plugin/server-plugins/api.md +209 -0
  535. package/docs/plugin/server-plugins/life-cycle.md +13 -0
  536. package/docs/tutorials/examples/csr-auth.md +9 -0
  537. package/docs/tutorials/foundations/introduction.md +16 -0
  538. package/lib/types.d.ts +2 -3
  539. package/package.json +88 -32
  540. package/rslib.config.mts +11 -12
  541. package/dist/cjs/commands/runtime.js +0 -196
  542. package/dist/cjs/plugins/deploy/platforms/cloudflare.js +0 -540
  543. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  544. package/dist/cjs/ultramodern/designSystem.js +0 -123
  545. package/dist/esm/baseline.mjs +0 -4
  546. package/dist/esm/commands/runtime.mjs +0 -146
  547. package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +0 -492
  548. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  549. package/dist/esm/ultramodern/designSystem.mjs +0 -73
  550. package/dist/esm-node/baseline.mjs +0 -5
  551. package/dist/esm-node/commands/runtime.mjs +0 -147
  552. package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +0 -493
  553. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  554. package/dist/esm-node/ultramodern/designSystem.mjs +0 -74
  555. package/dist/types/baseline.d.ts +0 -16
  556. package/dist/types/commands/runtime.d.ts +0 -12
  557. package/dist/types/ultramodern/designSystem.d.ts +0 -54
  558. /package/dist/types/plugins/deploy/platforms/templates/{cloudflare-entry.d.mts → cloudflare-entry.006-fetch-handler.d.mts} +0 -0
@@ -0,0 +1,209 @@
1
+ # Plugin API
2
+
3
+ Modern.js's Server plugins allow you to extend and customize functionality during the server-side request processing phase, such as adding middleware, modifying request responses, etc.
4
+
5
+ :::info
6
+
7
+ Server plugins need to be configured via the `plugins` field in `server/modern.server.ts`.
8
+
9
+ :::
10
+
11
+ ## Plugin Basic Structure
12
+
13
+ A typical Server plugin structure is as follows:
14
+
15
+ ```typescript
16
+ import type { ServerPlugin } from '@modern-js/server-runtime';
17
+
18
+ const myServerPlugin = (): ServerPlugin => ({
19
+ name: '@my-org/my-server-plugin', // Plugin name, ensure uniqueness
20
+ setup: api => {
21
+ // Use the API here to register hooks, add middleware, etc.
22
+ api.onPrepare(() => {
23
+ const { middlewares } = api.getServerContext();
24
+ middlewares?.push({
25
+ name: 'my-middleware',
26
+ handler: async (c, next) => {
27
+ console.log('Processing request...');
28
+ await next();
29
+ },
30
+ });
31
+ });
32
+ },
33
+ });
34
+
35
+ export default myServerPlugin;
36
+ ```
37
+
38
+ - `name`: A unique identifier for the plugin.
39
+ - The `setup` function receives an `api` object, which provides all available Server plugin APIs.
40
+
41
+ ## Information Retrieval
42
+
43
+ #### `api.getServerContext`
44
+
45
+ Gets the context information of the Modern.js server.
46
+
47
+ - **Returns:** A `ServerContext` object containing the following fields:
48
+
49
+ | Field Name | Type | Description |
50
+ | ------------------- | ----------------- | -------------------------------------- |
51
+ | `middlewares` | `MiddlewareObj[]` | Middleware list |
52
+ | `renderMiddlewares` | `MiddlewareObj[]` | Render middleware list |
53
+ | `routes` | `ServerRoute[]` | Server routing information |
54
+ | `appDirectory` | `string` | Absolute path to the project root |
55
+ | `apiDirectory` | `string` | Absolute path to the API module dir |
56
+ | `lambdaDirectory` | `string` | Absolute path to the Lambda module dir |
57
+ | `sharedDirectory` | `string` | Absolute path to the shared module dir |
58
+ | `distDirectory` | `string` | Absolute path to the output directory |
59
+ | `plugins` | `ServerPlugin[]` | List of currently registered plugins |
60
+
61
+ - **Example:**
62
+
63
+ ```typescript
64
+ api.onPrepare(() => {
65
+ const serverContext = api.getServerContext();
66
+ console.log(`App directory: ${serverContext.appDirectory}`);
67
+ console.log(`${serverContext.plugins.length} plugins registered`);
68
+ });
69
+ ```
70
+
71
+ :::info
72
+ The context information returned by `getServerContext` is read-only. Use `updateServerContext` if you need to modify it.
73
+ :::
74
+
75
+ ***
76
+
77
+ #### `api.getServerConfig`
78
+
79
+ Gets the server configuration defined by the user in the `server/modern.server.ts` file.
80
+
81
+ - **Returns:** The user-defined server configuration object.
82
+ - **Example:**
83
+
84
+ ```typescript
85
+ api.onPrepare(() => {
86
+ const serverConfig = api.getServerConfig();
87
+ if (serverConfig.middlewares) {
88
+ console.log('User has customized middleware configuration');
89
+ }
90
+ });
91
+ ```
92
+
93
+ ***
94
+
95
+ #### `api.getHooks`
96
+
97
+ Gets all registered hook functions.
98
+
99
+ - **Returns:** An object containing all hook functions.
100
+ - **Example:**
101
+
102
+ ```typescript
103
+ const hooks = api.getHooks();
104
+ // Manually trigger the onPrepare hook
105
+ await hooks.onPrepare.call();
106
+ ```
107
+
108
+ :::warning
109
+ In custom plugins, you can only manually call the hooks registered by the corresponding plugin and cannot call official hooks to avoid affecting the normal execution order of the application.
110
+ :::
111
+
112
+ ***
113
+
114
+ ## Context Modification
115
+
116
+ #### `api.updateServerContext`
117
+
118
+ Updates the server context information.
119
+
120
+ - **Type:** `api.updateServerContext(updateContext: DeepPartial<ServerContext>)`
121
+ - **Parameters:**
122
+ - `updateContext`: The context object to update (partial update).
123
+ - **Execution Phase:** Can be used at any stage.
124
+ - **Example:**
125
+
126
+ ```typescript
127
+ api.onPrepare(() => {
128
+ const context = api.getServerContext();
129
+ api.updateServerContext({
130
+ middlewares: [
131
+ ...context.middlewares,
132
+ {
133
+ name: 'new-middleware',
134
+ handler: async (c, next) => {
135
+ await next();
136
+ },
137
+ },
138
+ ],
139
+ });
140
+ });
141
+ ```
142
+
143
+ ***
144
+
145
+ ## Lifecycle Hooks
146
+
147
+ #### `api.onPrepare`
148
+
149
+ Adds additional logic during the server preparation phase.
150
+
151
+ - **Type:** `api.onPrepare(prepareFn: () => void | Promise<void>)`
152
+ - **Parameters:**
153
+ - `prepareFn`: A preparation function, without parameters, can be asynchronous.
154
+ - **Execution Phase:** After the server completes configuration validation and before applying middleware.
155
+ - **Example:**
156
+
157
+ ```typescript
158
+ api.onPrepare(async () => {
159
+ const { middlewares } = api.getServerContext();
160
+
161
+ // Add custom middleware
162
+ middlewares.push({
163
+ name: 'request-logger',
164
+ handler: async (c, next) => {
165
+ const start = Date.now();
166
+ await next();
167
+ const duration = Date.now() - start;
168
+ console.log(`Request duration: ${duration}ms`);
169
+ },
170
+ });
171
+ });
172
+ ```
173
+
174
+ :::info
175
+ In the `onPrepare` hook, you can modify the context object returned by `getServerContext()` (such as `middlewares`, `renderMiddlewares`), and these modifications will take effect when the server starts.
176
+ :::
177
+
178
+ ***
179
+
180
+ #### `api.onReset`
181
+
182
+ Adds additional logic when the server resets.
183
+
184
+ - **Type:** `api.onReset(resetFn: (params: { event: ResetEvent }) => void | Promise<void>)`
185
+ - **Parameters:**
186
+ - `resetFn`: A reset handler function that receives reset event parameters.
187
+ - `event.type`: Event type, possible values:
188
+ - `'repack'`: Repack event
189
+ - `'file-change'`: File change event
190
+ - `event.payload`: When `type` is `'file-change'`, contains an array of file change information.
191
+ - **Execution Phase:** When files change or repack is needed.
192
+ - **Example:**
193
+
194
+ ```typescript
195
+ api.onReset(async ({ event }) => {
196
+ if (event.type === 'file-change') {
197
+ console.log('File changes detected:', event.payload);
198
+ // Perform cleanup or re-initialization operations
199
+ } else if (event.type === 'repack') {
200
+ }
201
+ });
202
+ ```
203
+
204
+ ***
205
+
206
+ ## Other Notes
207
+
208
+ - Refer to [Server Plugin Lifecycle](/plugin/server-plugins/life-cycle.md) to understand the execution order of plugin hooks.
209
+ - The execution order of middleware can be controlled through the `order` field (`'pre'`, `'default'`, `'post'`), or through the `before` field to specify execution before other middleware.
@@ -0,0 +1,13 @@
1
+ # Life Cycle
2
+
3
+
4
+ :::info
5
+
6
+ **Runtime Hooks**
7
+
8
+ The `onReset` hook is triggered at runtime when files change or code recompilation (rspack) is needed. It is not part of the initialization flow, so it is not shown in the diagram above.
9
+
10
+ - **Trigger Timing**: File changes (`event.type: 'file-change'`) or code recompilation (rspack) completion (`event.type: 'repack'`)
11
+ - **Use Cases**: Clearing cache, re-initializing resources, etc.
12
+
13
+ :::
@@ -0,0 +1,9 @@
1
+ # Route Authorization
2
+
3
+ Modern.js defaults to the convention-based routing based on React Router. For more details, please refer to [Routing](/guides/basic-features/routes/routes.md#routing).
4
+
5
+ In a web application, if there are multiple routes, we may need to authorize access to some of them before accessing them. For example, in the following scenario:
6
+
7
+ - Access to the `/` route does not require authorization and can be accessed directly.
8
+ - Access to the `/protected` route requires authorization. If there is no authorization, it will automatically redirect to the `/login` route. After successful login, it returns to `/protected`.
9
+
@@ -0,0 +1,16 @@
1
+ # Modern.js Example Library
2
+
3
+ Welcome to Modern.js Example Library! Here you'll find practical code examples to help you get started with Modern.js quickly.
4
+
5
+ If you're new to Modern.js, we recommend reading the [Modern.js Introduction](/guides/get-started/introduction.md) first.
6
+
7
+ ## 📚 Example List
8
+
9
+ - [Route Authorization](/tutorials/examples/csr-auth.md)
10
+ - ...
11
+
12
+ ***
13
+
14
+ ## 💡 Contribute Examples
15
+
16
+ If you have good examples to share, feel free to submit a PR on [GitHub](https://github.com/web-infra-dev/modern.js)!
package/lib/types.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="react" />
3
3
  /// <reference types="react-dom" />
4
- /// <reference types="@rsbuild/core/types" />
5
- /// <reference path="../dist/types/index.d.ts" />
6
4
 
7
5
  declare namespace NodeJS {
8
6
  interface ProcessEnv {
@@ -12,7 +10,8 @@ declare namespace NodeJS {
12
10
  }
13
11
  }
14
12
 
15
- // reference @rsbuild/core/types, but there are some differences, such as svg
13
+ // Keep this app-environment surface independent from framework configuration
14
+ // declarations so strict app typecheck does not enter toolchain internals.
16
15
  /**
17
16
  * Image assets
18
17
  */
package/package.json CHANGED
@@ -17,37 +17,61 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.5.0-ultramodern.10",
20
+ "version": "3.5.0-ultramodern.101",
21
21
  "types": "./dist/types/index.d.ts",
22
22
  "main": "./dist/cjs/index.js",
23
23
  "exports": {
24
24
  ".": {
25
25
  "types": "./dist/types/index.d.ts",
26
- "import": "./dist/esm-node/index.mjs",
27
- "require": "./dist/cjs/index.js",
26
+ "node": {
27
+ "import": "./dist/esm-node/index.mjs",
28
+ "require": "./dist/cjs/index.js"
29
+ },
28
30
  "default": "./dist/cjs/index.js"
29
31
  },
30
32
  "./builder": {
31
33
  "types": "./dist/types/builder/index.d.ts",
32
- "import": "./dist/esm-node/builder/index.mjs",
33
- "require": "./dist/cjs/builder/index.js",
34
+ "node": {
35
+ "import": "./dist/esm-node/builder/index.mjs",
36
+ "require": "./dist/cjs/builder/index.js"
37
+ },
34
38
  "default": "./dist/cjs/builder/index.js"
35
39
  },
40
+ "./config": {
41
+ "types": "./dist/types/config/public.d.ts",
42
+ "import": "./dist/esm-node/config/public.mjs",
43
+ "require": "./dist/cjs/config/public.js",
44
+ "default": "./dist/cjs/config/public.js"
45
+ },
36
46
  "./cli": {
37
47
  "types": "./dist/types/index.d.ts",
38
- "import": "./dist/esm-node/index.mjs",
39
- "require": "./dist/cjs/index.js",
48
+ "node": {
49
+ "import": "./dist/esm-node/index.mjs",
50
+ "require": "./dist/cjs/index.js"
51
+ },
40
52
  "default": "./dist/cjs/index.js"
41
53
  },
42
54
  "./cli/run": {
43
55
  "types": "./dist/types/run/index.d.ts",
44
- "import": "./dist/esm-node/run/index.mjs",
45
- "require": "./dist/cjs/run/index.js",
56
+ "node": {
57
+ "import": "./dist/esm-node/run/index.mjs",
58
+ "require": "./dist/cjs/run/index.js"
59
+ },
46
60
  "default": "./dist/cjs/run/index.js"
47
61
  },
62
+ "./cloudflare-output-verifier": {
63
+ "types": "./dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts",
64
+ "import": "./dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs",
65
+ "require": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js",
66
+ "default": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js"
67
+ },
48
68
  "./types": {
49
69
  "types": "./lib/types.d.ts",
50
70
  "default": "./lib/types.d.ts"
71
+ },
72
+ "./bundle-docs": {
73
+ "types": "./dist/types/bundleDocs.d.ts",
74
+ "default": "./dist/esm-node/bundleDocs.mjs"
51
75
  }
52
76
  },
53
77
  "engines": {
@@ -66,71 +90,103 @@
66
90
  ],
67
91
  "builder": [
68
92
  "./dist/types/builder/index.d.ts"
93
+ ],
94
+ "config": [
95
+ "./dist/types/config/public.d.ts"
96
+ ],
97
+ "bundle-docs": [
98
+ "./dist/types/bundleDocs.d.ts"
69
99
  ]
70
100
  }
71
101
  },
72
102
  "bin": {
73
103
  "modern": "bin/modern.js",
74
- "modern-app": "bin/modern.js"
104
+ "modern-app": "bin/modern.js",
105
+ "modern-bundle-docs": "bin/modern-bundle-docs.js"
106
+ },
107
+ "nx": {
108
+ "targets": {
109
+ "build": {
110
+ "dependsOn": [
111
+ "^build",
112
+ {
113
+ "projects": [
114
+ "@modern-js/main-doc"
115
+ ],
116
+ "target": "build"
117
+ }
118
+ ],
119
+ "inputs": [
120
+ "build",
121
+ "^build",
122
+ "{workspaceRoot}/packages/document/doc_build/**/*.md",
123
+ "{workspaceRoot}/packages/document/doc_build/llms.txt"
124
+ ],
125
+ "outputs": [
126
+ "{projectRoot}/dist",
127
+ "{projectRoot}/docs"
128
+ ]
129
+ }
130
+ }
75
131
  },
76
132
  "dependencies": {
77
133
  "@babel/parser": "^8.0.0",
78
134
  "@babel/traverse": "^8.0.0",
79
135
  "@babel/types": "^8.0.0",
80
136
  "@loadable/component": "5.16.7",
81
- "@rsbuild/core": "2.1.1",
137
+ "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.101",
138
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.101",
139
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.101",
140
+ "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.101",
141
+ "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.101",
142
+ "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.101",
143
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.101",
144
+ "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.101",
145
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.101",
146
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.101",
147
+ "@rsbuild/core": "2.1.5",
82
148
  "@swc/core": "1.15.43",
83
149
  "@swc/helpers": "^0.5.23",
84
150
  "compression-webpack-plugin": "^12.0.0",
85
- "es-module-lexer": "^2.1.0",
151
+ "es-module-lexer": "^2.3.0",
86
152
  "esbuild": "^0.28.1",
87
153
  "flatted": "^3.4.2",
88
154
  "import-meta-resolve": "^4.2.0",
89
155
  "mlly": "^1.8.2",
90
156
  "ndepe": "^0.1.13",
91
157
  "pkg-types": "^2.3.1",
92
- "std-env": "4.1.0",
93
- "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.10",
94
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.10",
95
- "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.10",
96
- "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.10",
97
- "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.10",
98
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.10",
99
- "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.10",
100
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.10",
101
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.10",
102
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.10"
158
+ "std-env": "4.2.0"
103
159
  },
104
160
  "devDependencies": {
105
- "@rslib/core": "0.23.1",
161
+ "@rslib/core": "0.23.2",
162
+ "@scripts/rstest-config": "2.66.0",
106
163
  "@types/babel__traverse": "7.28.0",
107
- "@types/node": "^26.0.1",
108
- "@typescript/native-preview": "7.0.0-dev.20260628.1",
164
+ "@types/node": "^26.1.1",
165
+ "@typescript/native-preview": "7.0.0-dev.20260707.2",
109
166
  "ts-node": "^10.9.2",
110
167
  "tsconfig-paths": "^4.2.0",
111
- "typescript": "^6.0.3",
112
- "@scripts/rstest-config": "2.66.0"
168
+ "typescript": "^7.0.2"
113
169
  },
114
170
  "peerDependencies": {
115
171
  "ts-node": "^10.9.2",
116
172
  "tsconfig-paths": "^4.2.0"
117
173
  },
118
174
  "peerDependenciesMeta": {
119
- "tsconfig-paths": {
175
+ "ts-node": {
120
176
  "optional": true
121
177
  },
122
- "ts-node": {
178
+ "tsconfig-paths": {
123
179
  "optional": true
124
180
  }
125
181
  },
126
182
  "sideEffects": false,
127
183
  "publishConfig": {
128
- "registry": "https://registry.npmjs.org/",
129
184
  "access": "public"
130
185
  },
131
186
  "scripts": {
132
187
  "dev": "rslib build --watch",
133
- "build": "rslib build && pnpm -w tsgo:dts \"$PWD\"",
188
+ "build": "rslib build && pnpm -w tsgo:dts \"$PWD\" && pnpm run verify:public-surface && node ./bin/modern-bundle-docs.js",
189
+ "verify:public-surface": "node ./tests/config/verify-public-surface.mjs",
134
190
  "test": "rstest"
135
191
  }
136
192
  }
package/rslib.config.mts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { rslibConfig } from '@modern-js/rslib';
2
2
  import { defineConfig } from '@rslib/core';
3
- import path from 'path';
3
+
4
+ const APP_TOOLS_CODE_ENTRY_GLOBS = [
5
+ './src/**/*.{js,jsx,ts,tsx,mts,cts}',
6
+ './src/esm/*.mjs',
7
+ ];
4
8
 
5
9
  export default defineConfig({
6
10
  ...rslibConfig,
@@ -10,11 +14,8 @@ export default defineConfig({
10
14
  source: {
11
15
  ...libConfig.source,
12
16
  entry: {
13
- index: [
14
- './src/**',
15
- '!src/plugins/deploy/platforms/templates/*.mjs',
16
- '!src/plugins/deploy/platforms/templates/*.cjs',
17
- ],
17
+ // Deploy templates are copy-only; `src/esm` still needs compiled CJS.
18
+ index: APP_TOOLS_CODE_ENTRY_GLOBS,
18
19
  },
19
20
  },
20
21
  output: {
@@ -25,12 +26,10 @@ export default defineConfig({
25
26
  to: './esm',
26
27
  },
27
28
  {
28
- from: 'plugins/deploy/platforms/templates/*.cjs',
29
- context: path.join(__dirname, 'src'),
30
- },
31
- {
32
- from: 'plugins/deploy/platforms/templates/*.mjs',
33
- context: path.join(__dirname, 'src'),
29
+ from: './src/plugins/deploy/platforms/templates',
30
+ to: './plugins/deploy/platforms/templates',
31
+ // These JavaScript-named assets must bypass Rspack's minimizer.
32
+ info: { minimized: true },
34
33
  },
35
34
  ],
36
35
  },