@bleedingdev/modern-js-ultramodern-app-tools 3.9.0-ultramodern.9 → 3.9.3-ultramodern.2

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 (346) hide show
  1. package/README.md +189 -0
  2. package/bin/ultramodern.mjs +23 -0
  3. package/dist/cjs/native-composition/cli.js +196 -0
  4. package/dist/cjs/native-composition/config-metadata-worker.js +24 -0
  5. package/dist/cjs/native-composition/config-metadata.js +195 -0
  6. package/dist/cjs/native-composition/config-read-context.js +51 -0
  7. package/dist/cjs/native-composition/config.js +176 -0
  8. package/dist/cjs/native-composition/index.js +169 -61
  9. package/dist/cjs/native-composition/module-federation-renderer-plugin.js +205 -0
  10. package/dist/cjs/native-composition/native-assets.js +194 -0
  11. package/dist/cjs/native-composition/native-build-manifest.js +181 -0
  12. package/dist/cjs/native-composition/native-development.js +371 -0
  13. package/dist/cjs/native-composition/native-entry-command.js +65 -0
  14. package/dist/cjs/native-composition/native-entry.js +186 -0
  15. package/dist/cjs/native-composition/native-federation-dev-assets.js +125 -0
  16. package/dist/cjs/native-composition/native-federation-dev-public-path.js +65 -0
  17. package/dist/cjs/native-composition/native-federation-files.js +66 -0
  18. package/dist/cjs/native-composition/native-i18n.js +238 -0
  19. package/dist/cjs/native-composition/native-infrastructure.js +520 -0
  20. package/dist/cjs/native-composition/native-module-federation.js +690 -0
  21. package/dist/cjs/native-composition/native-prerender.js +400 -0
  22. package/dist/cjs/native-composition/native-routes.js +224 -0
  23. package/dist/cjs/native-composition/native-server-plugin.js +422 -0
  24. package/dist/cjs/native-composition/native-worker.js +168 -0
  25. package/dist/cjs/native-composition/preset.js +62 -30
  26. package/dist/cjs/native-composition/release-envelope-plugin.js +13 -3
  27. package/dist/cjs/native-composition/renderer-build-output.js +71 -0
  28. package/dist/cjs/native-composition/renderer-build-resolution.js +66 -0
  29. package/dist/cjs/native-composition/renderer-installed-profile.js +113 -0
  30. package/dist/cjs/native-composition/renderer-profile.js +102 -0
  31. package/dist/cjs/native-composition/renderer-registration.js +128 -0
  32. package/dist/cjs/native-composition/renderer-router-resolution.js +71 -0
  33. package/dist/cjs/native-composition/renderer-selection.js +258 -0
  34. package/dist/cjs/native-composition/renderer-source-ownership.js +136 -0
  35. package/dist/cjs/native-composition/rsbuild.js +101 -0
  36. package/dist/cjs/native-composition/server-minify.js +73 -0
  37. package/dist/cjs/native-composition/server-plugin-resolution.js +96 -0
  38. package/dist/cjs/native-composition/svg-components.js +95 -0
  39. package/dist/cjs/native-composition/type-checker.js +75 -0
  40. package/dist/cjs/native-composition/workspace-preset.js +380 -0
  41. package/dist/cjs/renderers/react/adapter.js +104 -0
  42. package/dist/cjs/renderers/react/build-metadata-server.js +97 -0
  43. package/dist/cjs/renderers/react/build-metadata.js +298 -0
  44. package/dist/cjs/renderers/react/composition.js +173 -0
  45. package/dist/cjs/renderers/react/module-federation-recovery-plugin.js +106 -0
  46. package/dist/cjs/renderers/react/module-federation-shared-plugin.js +285 -0
  47. package/dist/cjs/renderers/react/module-federation.js +75 -0
  48. package/dist/cjs/renderers/react/profile.js +93 -0
  49. package/dist/cjs/renderers/react/router-bindings.js +155 -0
  50. package/dist/cjs/{native-composition → renderers/react}/router-integration-plugin.js +14 -6
  51. package/dist/cjs/{native-composition → renderers/react}/router-runtime.js +1 -14
  52. package/dist/cjs/renderers/react/router-state-runtime.js +54 -0
  53. package/dist/cjs/renderers/react/rsc-worker-integration.js +117 -0
  54. package/dist/cjs/renderers/react/ssr-integration-plugin.js +81 -0
  55. package/dist/cjs/renderers/react/types.js +18 -0
  56. package/dist/esm/native-composition/cli.mjs +141 -0
  57. package/dist/esm/native-composition/config-metadata-worker.mjs +18 -0
  58. package/dist/esm/native-composition/config-metadata.mjs +143 -0
  59. package/dist/esm/native-composition/config-read-context.mjs +10 -0
  60. package/dist/esm/native-composition/config.mjs +115 -0
  61. package/dist/esm/native-composition/index.mjs +109 -48
  62. package/dist/esm/native-composition/module-federation-renderer-plugin.mjs +145 -0
  63. package/dist/esm/native-composition/native-assets.mjs +156 -0
  64. package/dist/esm/native-composition/native-build-manifest.mjs +108 -0
  65. package/dist/esm/native-composition/native-development.mjs +313 -0
  66. package/dist/esm/native-composition/native-entry-command.mjs +24 -0
  67. package/dist/esm/native-composition/native-entry.mjs +125 -0
  68. package/dist/esm/native-composition/native-federation-dev-assets.mjs +71 -0
  69. package/dist/esm/native-composition/native-federation-dev-public-path.mjs +27 -0
  70. package/dist/esm/native-composition/native-federation-files.mjs +14 -0
  71. package/dist/esm/native-composition/native-i18n.mjs +174 -0
  72. package/dist/esm/native-composition/native-infrastructure.mjs +465 -0
  73. package/dist/esm/native-composition/native-module-federation.mjs +575 -0
  74. package/dist/esm/native-composition/native-prerender.mjs +327 -0
  75. package/dist/esm/native-composition/native-routes.mjs +172 -0
  76. package/dist/esm/native-composition/native-server-plugin.mjs +363 -0
  77. package/dist/esm/native-composition/native-worker.mjs +110 -0
  78. package/dist/esm/native-composition/preset.mjs +52 -29
  79. package/dist/esm/native-composition/release-envelope-plugin.mjs +13 -3
  80. package/dist/esm/native-composition/renderer-build-output.mjs +33 -0
  81. package/dist/esm/native-composition/renderer-build-resolution.mjs +28 -0
  82. package/dist/esm/native-composition/renderer-installed-profile.mjs +60 -0
  83. package/dist/esm/native-composition/renderer-profile.mjs +49 -0
  84. package/dist/esm/native-composition/renderer-registration.mjs +69 -0
  85. package/dist/esm/native-composition/renderer-router-resolution.mjs +33 -0
  86. package/dist/esm/native-composition/renderer-selection.mjs +193 -0
  87. package/dist/esm/native-composition/renderer-source-ownership.mjs +84 -0
  88. package/dist/esm/native-composition/rsbuild.mjs +53 -0
  89. package/dist/esm/native-composition/server-minify.mjs +32 -0
  90. package/dist/esm/native-composition/server-plugin-resolution.mjs +44 -0
  91. package/dist/esm/native-composition/svg-components.mjs +37 -0
  92. package/dist/esm/native-composition/type-checker.mjs +34 -0
  93. package/dist/esm/native-composition/workspace-preset.mjs +329 -0
  94. package/dist/esm/renderers/react/adapter.mjs +53 -0
  95. package/dist/esm/renderers/react/build-metadata-server.mjs +57 -0
  96. package/dist/esm/renderers/react/build-metadata.mjs +240 -0
  97. package/dist/esm/renderers/react/composition.mjs +119 -0
  98. package/dist/esm/renderers/react/module-federation-recovery-plugin.mjs +52 -0
  99. package/dist/esm/renderers/react/module-federation-shared-plugin.mjs +219 -0
  100. package/dist/esm/renderers/react/module-federation.mjs +34 -0
  101. package/dist/esm/renderers/react/profile.mjs +55 -0
  102. package/dist/esm/renderers/react/router-bindings.mjs +106 -0
  103. package/dist/esm/renderers/react/router-integration-plugin.mjs +25 -0
  104. package/dist/esm/{native-composition → renderers/react}/router-runtime.mjs +1 -14
  105. package/dist/esm/renderers/react/router-state-runtime.mjs +14 -0
  106. package/dist/esm/renderers/react/rsc-worker-integration.mjs +73 -0
  107. package/dist/esm/renderers/react/ssr-integration-plugin.mjs +43 -0
  108. package/dist/esm/renderers/react/types.mjs +0 -0
  109. package/dist/esm-node/native-composition/cli.mjs +142 -0
  110. package/dist/esm-node/native-composition/config-metadata-worker.mjs +19 -0
  111. package/dist/esm-node/native-composition/config-metadata.mjs +144 -0
  112. package/dist/esm-node/native-composition/config-read-context.mjs +11 -0
  113. package/dist/esm-node/native-composition/config.mjs +116 -0
  114. package/dist/esm-node/native-composition/index.mjs +109 -48
  115. package/dist/esm-node/native-composition/module-federation-renderer-plugin.mjs +146 -0
  116. package/dist/esm-node/native-composition/native-assets.mjs +157 -0
  117. package/dist/esm-node/native-composition/native-build-manifest.mjs +109 -0
  118. package/dist/esm-node/native-composition/native-development.mjs +314 -0
  119. package/dist/esm-node/native-composition/native-entry-command.mjs +25 -0
  120. package/dist/esm-node/native-composition/native-entry.mjs +126 -0
  121. package/dist/esm-node/native-composition/native-federation-dev-assets.mjs +72 -0
  122. package/dist/esm-node/native-composition/native-federation-dev-public-path.mjs +28 -0
  123. package/dist/esm-node/native-composition/native-federation-files.mjs +15 -0
  124. package/dist/esm-node/native-composition/native-i18n.mjs +175 -0
  125. package/dist/esm-node/native-composition/native-infrastructure.mjs +466 -0
  126. package/dist/esm-node/native-composition/native-module-federation.mjs +576 -0
  127. package/dist/esm-node/native-composition/native-prerender.mjs +328 -0
  128. package/dist/esm-node/native-composition/native-routes.mjs +173 -0
  129. package/dist/esm-node/native-composition/native-server-plugin.mjs +364 -0
  130. package/dist/esm-node/native-composition/native-worker.mjs +111 -0
  131. package/dist/esm-node/native-composition/preset.mjs +52 -29
  132. package/dist/esm-node/native-composition/release-envelope-plugin.mjs +13 -3
  133. package/dist/esm-node/native-composition/renderer-build-output.mjs +34 -0
  134. package/dist/esm-node/native-composition/renderer-build-resolution.mjs +29 -0
  135. package/dist/esm-node/native-composition/renderer-installed-profile.mjs +61 -0
  136. package/dist/esm-node/native-composition/renderer-profile.mjs +50 -0
  137. package/dist/esm-node/native-composition/renderer-registration.mjs +70 -0
  138. package/dist/esm-node/native-composition/renderer-router-resolution.mjs +34 -0
  139. package/dist/esm-node/native-composition/renderer-selection.mjs +194 -0
  140. package/dist/esm-node/native-composition/renderer-source-ownership.mjs +85 -0
  141. package/dist/esm-node/native-composition/rsbuild.mjs +54 -0
  142. package/dist/esm-node/native-composition/server-minify.mjs +33 -0
  143. package/dist/esm-node/native-composition/server-plugin-resolution.mjs +45 -0
  144. package/dist/esm-node/native-composition/svg-components.mjs +41 -0
  145. package/dist/esm-node/native-composition/type-checker.mjs +35 -0
  146. package/dist/esm-node/native-composition/workspace-preset.mjs +330 -0
  147. package/dist/esm-node/renderers/react/adapter.mjs +54 -0
  148. package/dist/esm-node/renderers/react/build-metadata-server.mjs +58 -0
  149. package/dist/esm-node/renderers/react/build-metadata.mjs +241 -0
  150. package/dist/esm-node/renderers/react/composition.mjs +120 -0
  151. package/dist/esm-node/renderers/react/module-federation-recovery-plugin.mjs +53 -0
  152. package/dist/esm-node/renderers/react/module-federation-shared-plugin.mjs +220 -0
  153. package/dist/esm-node/renderers/react/module-federation.mjs +35 -0
  154. package/dist/esm-node/renderers/react/profile.mjs +56 -0
  155. package/dist/esm-node/renderers/react/router-bindings.mjs +107 -0
  156. package/dist/esm-node/renderers/react/router-integration-plugin.mjs +26 -0
  157. package/dist/esm-node/{native-composition → renderers/react}/router-runtime.mjs +1 -14
  158. package/dist/esm-node/renderers/react/router-state-runtime.mjs +15 -0
  159. package/dist/esm-node/renderers/react/rsc-worker-integration.mjs +74 -0
  160. package/dist/esm-node/renderers/react/ssr-integration-plugin.mjs +44 -0
  161. package/dist/esm-node/renderers/react/types.mjs +1 -0
  162. package/dist/types/native-composition/cli.d.ts +28 -0
  163. package/dist/types/native-composition/config-metadata-worker.d.ts +1 -0
  164. package/dist/types/native-composition/config-metadata.d.ts +47 -0
  165. package/dist/types/native-composition/config-read-context.d.ts +2 -0
  166. package/dist/types/native-composition/config.d.ts +39 -0
  167. package/dist/types/native-composition/index.d.ts +16 -3
  168. package/dist/types/native-composition/module-federation-renderer-plugin.d.ts +19 -0
  169. package/dist/types/native-composition/native-assets.d.ts +5 -0
  170. package/dist/types/native-composition/native-build-manifest.d.ts +50 -0
  171. package/dist/types/native-composition/native-development.d.ts +62 -0
  172. package/dist/types/native-composition/native-entry-command.d.ts +6 -0
  173. package/dist/types/native-composition/native-entry.d.ts +26 -0
  174. package/dist/types/native-composition/native-federation-dev-assets.d.ts +14 -0
  175. package/dist/types/native-composition/native-federation-dev-public-path.d.ts +6 -0
  176. package/dist/types/native-composition/native-federation-files.d.ts +3 -0
  177. package/dist/types/native-composition/native-i18n.d.ts +112 -0
  178. package/dist/types/native-composition/native-infrastructure.d.ts +55 -0
  179. package/dist/types/native-composition/native-module-federation.d.ts +96 -0
  180. package/dist/types/native-composition/native-prerender.d.ts +81 -0
  181. package/dist/types/native-composition/native-routes.d.ts +19 -0
  182. package/dist/types/native-composition/native-server-plugin.d.ts +56 -0
  183. package/dist/types/native-composition/native-worker.d.ts +43 -0
  184. package/dist/types/native-composition/preset.d.ts +16 -7
  185. package/dist/types/native-composition/release-envelope-plugin.d.ts +3 -2
  186. package/dist/types/native-composition/renderer-build-output.d.ts +4 -0
  187. package/dist/types/native-composition/renderer-build-resolution.d.ts +4 -0
  188. package/dist/types/native-composition/renderer-installed-profile.d.ts +26 -0
  189. package/dist/types/native-composition/renderer-profile.d.ts +14 -0
  190. package/dist/types/native-composition/renderer-registration.d.ts +21 -0
  191. package/dist/types/native-composition/renderer-router-resolution.d.ts +6 -0
  192. package/dist/types/native-composition/renderer-selection.d.ts +30 -0
  193. package/dist/types/native-composition/renderer-source-ownership.d.ts +11 -0
  194. package/dist/types/native-composition/rsbuild.d.ts +12 -0
  195. package/dist/types/native-composition/server-minify.d.ts +33 -0
  196. package/dist/types/native-composition/server-plugin-resolution.d.ts +2 -0
  197. package/dist/types/native-composition/svg-component-loader.d.cts +2 -0
  198. package/dist/types/native-composition/svg-component-source.d.cts +24 -0
  199. package/dist/types/native-composition/svg-components.d.ts +23 -0
  200. package/dist/types/native-composition/type-checker.d.ts +13 -0
  201. package/dist/types/native-composition/types.d.ts +10 -3
  202. package/dist/types/native-composition/workspace-preset.d.ts +18 -0
  203. package/dist/types/renderers/react/adapter.d.ts +5 -0
  204. package/dist/types/renderers/react/build-metadata-server.d.ts +11 -0
  205. package/dist/types/renderers/react/build-metadata.d.ts +14 -0
  206. package/dist/types/renderers/react/composition.d.ts +10 -0
  207. package/dist/types/renderers/react/module-federation-recovery-plugin.d.ts +4 -0
  208. package/dist/types/renderers/react/module-federation-shared-plugin.d.ts +61 -0
  209. package/dist/types/renderers/react/module-federation.d.ts +2 -0
  210. package/dist/types/renderers/react/profile.d.ts +2 -0
  211. package/dist/types/renderers/react/router-bindings.d.ts +9 -0
  212. package/dist/types/{native-composition → renderers/react}/router-runtime.d.ts +0 -1
  213. package/dist/types/renderers/react/router-state-runtime.d.ts +7 -0
  214. package/dist/types/renderers/react/rsc-worker-integration.d.ts +15 -0
  215. package/dist/types/renderers/react/ssr-integration-plugin.d.ts +3 -0
  216. package/dist/types/renderers/react/types.d.ts +14 -0
  217. package/dist/types-esm/native-composition/cli.d.mts +28 -0
  218. package/dist/types-esm/native-composition/config-metadata-worker.d.mts +1 -0
  219. package/dist/types-esm/native-composition/config-metadata.d.mts +47 -0
  220. package/dist/types-esm/native-composition/config-read-context.d.mts +2 -0
  221. package/dist/types-esm/native-composition/config.d.mts +39 -0
  222. package/dist/types-esm/native-composition/index.d.mts +16 -3
  223. package/dist/types-esm/native-composition/module-federation-renderer-plugin.d.mts +19 -0
  224. package/dist/types-esm/native-composition/native-assets.d.mts +5 -0
  225. package/dist/types-esm/native-composition/native-build-manifest.d.mts +50 -0
  226. package/dist/types-esm/native-composition/native-development.d.mts +62 -0
  227. package/dist/types-esm/native-composition/native-entry-command.d.mts +6 -0
  228. package/dist/types-esm/native-composition/native-entry.d.mts +26 -0
  229. package/dist/types-esm/native-composition/native-federation-dev-assets.d.mts +14 -0
  230. package/dist/types-esm/native-composition/native-federation-dev-public-path.d.mts +6 -0
  231. package/dist/types-esm/native-composition/native-federation-files.d.mts +3 -0
  232. package/dist/types-esm/native-composition/native-i18n.d.mts +112 -0
  233. package/dist/types-esm/native-composition/native-infrastructure.d.mts +55 -0
  234. package/dist/types-esm/native-composition/native-module-federation.d.mts +96 -0
  235. package/dist/types-esm/native-composition/native-prerender.d.mts +81 -0
  236. package/dist/types-esm/native-composition/native-routes.d.mts +19 -0
  237. package/dist/types-esm/native-composition/native-server-plugin.d.mts +56 -0
  238. package/dist/types-esm/native-composition/native-worker.d.mts +43 -0
  239. package/dist/types-esm/native-composition/preset.d.mts +16 -7
  240. package/dist/types-esm/native-composition/release-envelope-plugin.d.mts +3 -2
  241. package/dist/types-esm/native-composition/renderer-build-output.d.mts +4 -0
  242. package/dist/types-esm/native-composition/renderer-build-resolution.d.mts +4 -0
  243. package/dist/types-esm/native-composition/renderer-installed-profile.d.mts +26 -0
  244. package/dist/types-esm/native-composition/renderer-profile.d.mts +14 -0
  245. package/dist/types-esm/native-composition/renderer-registration.d.mts +21 -0
  246. package/dist/types-esm/native-composition/renderer-router-resolution.d.mts +6 -0
  247. package/dist/types-esm/native-composition/renderer-selection.d.mts +30 -0
  248. package/dist/types-esm/native-composition/renderer-source-ownership.d.mts +11 -0
  249. package/dist/types-esm/native-composition/rsbuild.d.mts +12 -0
  250. package/dist/types-esm/native-composition/server-minify.d.mts +33 -0
  251. package/dist/types-esm/native-composition/server-plugin-resolution.d.mts +2 -0
  252. package/dist/types-esm/native-composition/svg-component-loader.d.cts +2 -0
  253. package/dist/types-esm/native-composition/svg-component-source.d.cts +24 -0
  254. package/dist/types-esm/native-composition/svg-components.d.mts +23 -0
  255. package/dist/types-esm/native-composition/type-checker.d.mts +13 -0
  256. package/dist/types-esm/native-composition/types.d.mts +10 -3
  257. package/dist/types-esm/native-composition/workspace-preset.d.mts +18 -0
  258. package/dist/types-esm/renderers/react/adapter.d.mts +5 -0
  259. package/dist/types-esm/renderers/react/build-metadata-server.d.mts +11 -0
  260. package/dist/types-esm/renderers/react/build-metadata.d.mts +14 -0
  261. package/dist/types-esm/renderers/react/composition.d.mts +10 -0
  262. package/dist/types-esm/renderers/react/module-federation-recovery-plugin.d.mts +4 -0
  263. package/dist/types-esm/renderers/react/module-federation-shared-plugin.d.mts +61 -0
  264. package/dist/types-esm/renderers/react/module-federation.d.mts +2 -0
  265. package/dist/types-esm/renderers/react/profile.d.mts +2 -0
  266. package/dist/types-esm/renderers/react/router-bindings.d.mts +9 -0
  267. package/dist/types-esm/{native-composition → renderers/react}/router-runtime.d.mts +0 -1
  268. package/dist/types-esm/renderers/react/router-state-runtime.d.mts +7 -0
  269. package/dist/types-esm/renderers/react/rsc-worker-integration.d.mts +15 -0
  270. package/dist/types-esm/renderers/react/ssr-integration-plugin.d.mts +3 -0
  271. package/dist/types-esm/renderers/react/types.d.mts +14 -0
  272. package/lib/react-types.d.ts +2 -0
  273. package/package.json +199 -35
  274. package/src/native-composition/cli.ts +204 -0
  275. package/src/native-composition/config-metadata-worker.ts +24 -0
  276. package/src/native-composition/config-metadata.ts +236 -0
  277. package/src/native-composition/config-read-context.ts +18 -0
  278. package/src/native-composition/config.ts +211 -0
  279. package/src/native-composition/index.ts +225 -79
  280. package/src/native-composition/module-federation-renderer-plugin.ts +246 -0
  281. package/src/native-composition/native-assets.ts +262 -0
  282. package/src/native-composition/native-build-manifest.ts +274 -0
  283. package/src/native-composition/native-development.ts +536 -0
  284. package/src/native-composition/native-entry-command.ts +33 -0
  285. package/src/native-composition/native-entry.ts +220 -0
  286. package/src/native-composition/native-federation-dev-assets.ts +142 -0
  287. package/src/native-composition/native-federation-dev-public-path.ts +64 -0
  288. package/src/native-composition/native-federation-files.ts +23 -0
  289. package/src/native-composition/native-i18n.ts +404 -0
  290. package/src/native-composition/native-infrastructure.ts +888 -0
  291. package/src/native-composition/native-module-federation.ts +1089 -0
  292. package/src/native-composition/native-prerender.ts +608 -0
  293. package/src/native-composition/native-routes.ts +226 -0
  294. package/src/native-composition/native-server-plugin.ts +708 -0
  295. package/src/native-composition/native-worker.ts +199 -0
  296. package/src/native-composition/preset.ts +85 -65
  297. package/src/native-composition/release-envelope-plugin.ts +23 -5
  298. package/src/native-composition/renderer-build-output.ts +74 -0
  299. package/src/native-composition/renderer-build-resolution.ts +47 -0
  300. package/src/native-composition/renderer-installed-profile.ts +133 -0
  301. package/src/native-composition/renderer-profile.ts +79 -0
  302. package/src/native-composition/renderer-registration.ts +153 -0
  303. package/src/native-composition/renderer-router-resolution.ts +64 -0
  304. package/src/native-composition/renderer-selection.ts +382 -0
  305. package/src/native-composition/renderer-source-ownership.ts +115 -0
  306. package/src/native-composition/rsbuild.ts +71 -0
  307. package/src/native-composition/server-minify.ts +48 -0
  308. package/src/native-composition/server-plugin-resolution.ts +56 -0
  309. package/src/native-composition/svg-component-loader.cjs +1 -0
  310. package/src/native-composition/svg-component-source.cjs +129 -0
  311. package/src/native-composition/svg-components.ts +107 -0
  312. package/src/native-composition/type-checker.ts +52 -0
  313. package/src/native-composition/types.ts +19 -3
  314. package/src/native-composition/workspace-preset.ts +611 -0
  315. package/src/renderers/react/adapter.ts +66 -0
  316. package/src/renderers/react/build-metadata-server.ts +127 -0
  317. package/src/renderers/react/build-metadata.ts +343 -0
  318. package/src/renderers/react/composition.ts +149 -0
  319. package/src/renderers/react/module-federation-recovery-plugin.ts +107 -0
  320. package/src/renderers/react/module-federation-shared-plugin.ts +470 -0
  321. package/src/renderers/react/module-federation.ts +34 -0
  322. package/src/renderers/react/profile.ts +45 -0
  323. package/src/renderers/react/router-bindings.ts +222 -0
  324. package/src/{native-composition → renderers/react}/router-integration-plugin.ts +12 -5
  325. package/src/{native-composition → renderers/react}/router-runtime.ts +2 -15
  326. package/src/renderers/react/router-state-runtime.ts +16 -0
  327. package/src/renderers/react/rsc-worker-integration.ts +110 -0
  328. package/src/renderers/react/ssr-integration-plugin.ts +71 -0
  329. package/src/renderers/react/types.ts +17 -0
  330. package/src/types.d.ts +13 -0
  331. package/dist/cjs/native-composition/ssr-integration-plugin.js +0 -145
  332. package/dist/esm/native-composition/router-integration-plugin.mjs +0 -17
  333. package/dist/esm/native-composition/ssr-integration-plugin.mjs +0 -104
  334. package/dist/esm-node/native-composition/router-integration-plugin.mjs +0 -18
  335. package/dist/esm-node/native-composition/ssr-integration-plugin.mjs +0 -105
  336. package/dist/types/native-composition/ssr-integration-plugin.d.ts +0 -7
  337. package/dist/types-esm/native-composition/ssr-integration-plugin.d.mts +0 -7
  338. package/src/native-composition/ssr-integration-plugin.ts +0 -244
  339. /package/dist/cjs/{native-composition → renderers/react}/rsc-disabled-plugin.js +0 -0
  340. /package/dist/esm/{native-composition → renderers/react}/rsc-disabled-plugin.mjs +0 -0
  341. /package/dist/esm-node/{native-composition → renderers/react}/rsc-disabled-plugin.mjs +0 -0
  342. /package/dist/types/{native-composition → renderers/react}/router-integration-plugin.d.ts +0 -0
  343. /package/dist/types/{native-composition → renderers/react}/rsc-disabled-plugin.d.ts +0 -0
  344. /package/dist/types-esm/{native-composition → renderers/react}/router-integration-plugin.d.mts +0 -0
  345. /package/dist/types-esm/{native-composition → renderers/react}/rsc-disabled-plugin.d.mts +0 -0
  346. /package/src/{native-composition → renderers/react}/rsc-disabled-plugin.ts +0 -0
package/README.md ADDED
@@ -0,0 +1,189 @@
1
+ # UltraModern.js application tools
2
+
3
+ Select the application renderer in `modern.config.ts`. `defineConfig` registers
4
+ the selected compiler, runtime, router integration and server lifecycle.
5
+
6
+ ```ts
7
+ import { defineConfig } from '@modern-js/ultramodern-app-tools';
8
+
9
+ export default defineConfig({
10
+ renderer: 'solid', // 'react' or 'octane'; omitted means 'react'
11
+ server: { ssr: true },
12
+ });
13
+ ```
14
+
15
+ Use Node **26.10.0 or newer**. Run the installed application's public CLI:
16
+
17
+ ```sh
18
+ pnpm exec ultramodern dev
19
+ pnpm exec ultramodern build
20
+ pnpm exec ultramodern serve
21
+ ```
22
+
23
+ The selector belongs to this config import. Do not add another `appTools()` or
24
+ `ultramodernAppTools()` base plugin. Changing the renderer requires matching
25
+ native application source and dependencies, then a dev-server restart and a
26
+ document reload. The generated entries own mounting and hydration.
27
+
28
+ ## Native application imports
29
+
30
+ | Renderer | Component authoring | Application router |
31
+ | --- | --- | --- |
32
+ | React | `react` | `react-router`, or the configured TanStack integration |
33
+ | Solid 2 | `solid-js`, `@solidjs/web` | `@modern-js/renderer-solid/router` |
34
+ | Octane | `octane` | `@modern-js/renderer-octane/router` |
35
+
36
+ Solid and Octane use their native component syntax and managed filesystem
37
+ routes. Generated applications import the runtime modules of their renderer
38
+ package automatically: `/entry-client`, `/entry-server`, `/router`, `/i18n`
39
+ and `/manifest`, plus `/federation` for Solid. `/plugin` is the build-only
40
+ adapter; only the CLI loads it.
41
+
42
+ ### Renderer adapters
43
+
44
+ Every renderer is a `RendererAdapter` from `@modern-js/renderer-core/adapter`.
45
+ `defineConfig` loads only the selected one:
46
+
47
+ - `react` is a composed adapter (`src/renderers/react`). Its `compose()`
48
+ registers the Modern.js React graph.
49
+ - `solid` and `octane` are native adapters exported from
50
+ `@modern-js/renderer-<renderer>/plugin`. Each one carries its build profile,
51
+ runtime entry modules, Rsbuild compiler plugin, compiler artifact checks,
52
+ Module Federation singletons, worker support and create templates.
53
+
54
+ This package keeps the renderer-neutral parts: config selection, the
55
+ registered renderers' package and source-extension ownership, capability
56
+ checks, and one build, dev, SSG, worker and federation pipeline for every
57
+ native adapter. The entries it generates hold only data: `index.ts` calls the
58
+ renderer's `startNativeClient()`, `index.server.ts` calls
59
+ `createNativeServerEntry()`, and `app.client.ts`/`app.server.ts` list the
60
+ route modules. Mounting, hydration, documents, sessions, i18n and data
61
+ endpoints live in `@modern-js/renderer-core/entry-client` and
62
+ `@modern-js/renderer-core/entry-server`.
63
+
64
+ ## Supported preview profile
65
+
66
+ Solid **2.0.0-rc.13** and Octane are Node previews with CSR, native streaming SSR,
67
+ hydration, route loading and actions. Their exact compiler, runtime and router
68
+ pins come from `resolveRendererProfile` exported by this package. Octane uses
69
+ the maintained [BleedingDev release artifacts](https://github.com/bleedingdev/octane/releases)
70
+ selected by that profile.
71
+
72
+ Native previews reject React Server Components, React runtime i18n
73
+ configuration and CSS declaration emission beside authored source. Octane
74
+ also rejects Module Federation.
75
+ These limits are checked before output generation; there is no preview bypass.
76
+
77
+ Native apps localize with `i18nPlugin()` from this package, which takes the
78
+ same `localeDetection`/`backend` options as `@modern-js/plugin-i18n`. URLs are
79
+ language-prefixed (`/cs/about`), translations come from
80
+ `locales/<language>/<namespace>.json`, and components use `useI18n`,
81
+ `LocalizedLink` and `I18nProvider` from `@modern-js/renderer-<renderer>/i18n`.
82
+ Install `i18next` and `@modern-js/i18n-runtime-extensions` next to the renderer:
83
+
84
+ ```ts
85
+ import { defineConfig, i18nPlugin } from '@modern-js/ultramodern-app-tools';
86
+
87
+ export default defineConfig({
88
+ renderer: 'solid',
89
+ server: { ssr: true },
90
+ plugins: [
91
+ i18nPlugin({
92
+ localeDetection: { languages: ['en', 'cs'], fallbackLanguage: 'en' },
93
+ }),
94
+ ],
95
+ });
96
+ ```
97
+
98
+ `output.ssg` and `output.ssgByEntries` prerender native routes after the build,
99
+ in the same `dist/html/<entry>/<route>/index.html` layout as React SSG. Each
100
+ document's search-free loader data is written beside it, so client navigation
101
+ between prerendered routes works on a static host. A route cannot use both SSR
102
+ and SSG.
103
+
104
+ `import Icon from './icon.svg?component'` compiles an SVG into a Solid or
105
+ Octane component; `output.svgDefaultExport: 'component'` does the same for
106
+ plain `.svg` imports from scripts. Stylesheets and `?url` imports keep URLs.
107
+ Add `/// <reference types="@modern-js/ultramodern-app-tools/types" />` for the
108
+ `?component` module type.
109
+
110
+ Solid's native public route snapshots accept immutable plain records, arrays,
111
+ scalars and checked top-level deferred Promise slots. Rich HTTP data transport
112
+ is a separate `@modern-js/renderer-core/data` surface. Request objects, headers,
113
+ bindings and session state remain private to the request.
114
+ Authored deferred Promises use the standard prototype without custom own
115
+ properties. Symbol-bearing source Promises from async-hooks instrumentation and
116
+ Node's `--no-async-context-frame` mode are outside this preview profile.
117
+
118
+ Generate a workspace with the selected dependencies through
119
+ [`@modern-js/ultramodern-create`](../../toolkit/ultramodern-create/README.md).
120
+ Build and document identities bind the application source and installed
121
+ compiler/runtime cohort; stale manifests or hydration identities fail before
122
+ application startup.
123
+
124
+ ## Workspace applications
125
+
126
+ Generated workspace applications declare their identity and authored options:
127
+
128
+ ```ts
129
+ import {
130
+ defineConfig,
131
+ presetUltramodernWorkspace,
132
+ } from '@modern-js/ultramodern-app-tools';
133
+
134
+ export default defineConfig(
135
+ presetUltramodernWorkspace(
136
+ { html: { title: 'Catalog' } },
137
+ { appId: 'catalog', from: import.meta.url },
138
+ ),
139
+ );
140
+ ```
141
+
142
+ The workspace preset reads `topology/reference-topology.json` and
143
+ `topology/local-overlays/development.json` relative to that config. Those records
144
+ provide app identity, renderer, development ports, composed remote references
145
+ and delivery unit identity. An authored `renderer` must match the topology.
146
+ Adding a shell or vertical changes the records; existing application configs
147
+ keep their authored contents.
148
+
149
+ The native package resolves build output and cache directories, remote asset
150
+ origins, canonical site origins, local CORS and Cloudflare service bindings and
151
+ fragment routes. Deploy target selection uses Modern.js's native resolver.
152
+ `deployTarget` and `environment` options allow explicit programmatic build inputs.
153
+ `createPresetUltramodernWorkspaceConfig(options)` exposes the resolved config for
154
+ inspection.
155
+
156
+ Cloudflare fragment bindings use the expose names from each remote's authored
157
+ Module Federation config. The shared config inspector accepts literal objects
158
+ and string arrays. Dynamic declarations use Modern.js's native config loader
159
+ during config resolution, including async functions, environment and command
160
+ arguments. Authored worker settings and services remain part of the merged
161
+ config; dynamic bindings use the loaded exposes.
162
+
163
+ The old generated `performance.rsdoctor` setting was not part of Modern.js's
164
+ supported config and had no effect. The native preset omits it.
165
+
166
+ Zephyr registers only for browser applications. It loads the application's
167
+ declared `zephyr-rspack-plugin` only when `ZE_CI_TOKEN` is present, and requires
168
+ `ZE_FAIL_BUILD=true` in that deploy environment. Ordinary builds require no
169
+ Zephyr account. The preset does not mutate environment variables.
170
+ The Zephyr SDK reads credentials and its fail-build flag from `process.env`.
171
+ When supplying `environment` explicitly, enabled Zephyr inputs must match those
172
+ process values; a mismatch fails during plugin setup before registration.
173
+
174
+ Authored config merges after native policy. Scalars and `false` override defaults;
175
+ nested records are preserved; arrays and hooks compose in preset-first order.
176
+ The existing typed preset options, including `enableTelemetry`,
177
+ `enableTelemetryExporters`, `enableBffRequestId` and
178
+ `enableModuleFederationSSR`, also apply to workspace presets.
179
+
180
+ Standalone applications can continue using `presetUltramodern(config, options)`.
181
+
182
+ ## React base plugin
183
+
184
+ `defineConfig` is the entry for every renderer. A React application that keeps
185
+ `defineConfig` from `@modern-js/app-tools` registers the same React graph with
186
+ `plugins: [ultramodernAppTools()]` instead. It keeps the fork's default React
187
+ renderer and server behavior; pass `rendererExtensions: false` or
188
+ `serverExtensions: false` to `ultramodernAppTools()` to opt out of either
189
+ policy. Use one base: never combine it with this package's `defineConfig`.
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import { readFile } from 'node:fs/promises';
3
+
4
+ const [major, minor] = process.versions.node.split('.').map(Number);
5
+ if (major < 26 || (major === 26 && minor < 10)) {
6
+ console.error(
7
+ `UltraModern.js requires Node.js >=26.10.0; detected v${process.versions.node}.`,
8
+ );
9
+ process.exit(1);
10
+ }
11
+
12
+ const { version } = JSON.parse(
13
+ await readFile(new URL('../package.json', import.meta.url), 'utf8'),
14
+ );
15
+ process.env.MODERN_JS_VERSION ??= version;
16
+
17
+ const { run } = await import('../dist/esm-node/native-composition/cli.mjs');
18
+ try {
19
+ await run({ version });
20
+ } catch (error) {
21
+ console.error(error);
22
+ process.exitCode = 1;
23
+ }
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ createRunOptions: ()=>createRunOptions,
41
+ generateRouteArtifacts: ()=>generateRouteArtifacts,
42
+ run: ()=>run
43
+ });
44
+ const external_node_fs_namespaceObject = require("node:fs");
45
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
46
+ const external_node_path_namespaceObject = require("node:path");
47
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
48
+ const run_namespaceObject = require("@modern-js/app-tools/cli/run");
49
+ const cli_namespaceObject = require("@modern-js/plugin/cli");
50
+ const plugin_run_namespaceObject = require("@modern-js/plugin/run");
51
+ const utils_namespaceObject = require("@modern-js/utils");
52
+ const commander_namespaceObject = require("@modern-js/utils/commander");
53
+ const core_namespaceObject = require("@rsbuild/core");
54
+ const external_config_js_namespaceObject = require("./config.js");
55
+ const external_native_entry_command_js_namespaceObject = require("./native-entry-command.js");
56
+ async function createLauncherOptions(options) {
57
+ const configFile = external_node_path_default().resolve(options.cwd ?? process.cwd(), options.configFile ?? 'modern.config');
58
+ const runOptions = await (0, run_namespaceObject.createRunOptions)({
59
+ ...options,
60
+ configFile,
61
+ internalPlugins: {}
62
+ });
63
+ if (!runOptions.configFile && void 0 !== options.configFile && external_node_fs_default().existsSync(configFile)) return {
64
+ ...runOptions,
65
+ configFile
66
+ };
67
+ return runOptions;
68
+ }
69
+ async function createRunOptions(options) {
70
+ let routeConfig;
71
+ if ('routes-generate' === process.argv[2]) {
72
+ const command = (0, external_native_entry_command_js_namespaceObject.createRouteGenerationCommand)(new commander_namespaceObject.Command('ultramodern')).exitOverride();
73
+ await command.parseAsync(process.argv.slice(3), {
74
+ from: 'user'
75
+ });
76
+ routeConfig = command.opts().config;
77
+ }
78
+ const runOptions = await createLauncherOptions(options);
79
+ return routeConfig ? {
80
+ ...runOptions,
81
+ configFile: routeConfig
82
+ } : runOptions;
83
+ }
84
+ async function run(options) {
85
+ if ('routes-generate' === process.argv[2]) {
86
+ const flags = process.argv.slice(3);
87
+ if (flags.includes('-h') || flags.includes('--help')) return void process.stdout.write((0, external_native_entry_command_js_namespaceObject.createRouteGenerationCommand)(new commander_namespaceObject.Command('ultramodern')).helpInformation());
88
+ if (flags.includes('-V') || flags.includes('--version')) return void process.stdout.write(`${options.version}\n`);
89
+ }
90
+ const runOptions = await createRunOptions(options);
91
+ if ('routes-generate' === process.argv[2]) return void await generateRouteArtifacts({
92
+ appDirectory: options.cwd ?? process.cwd(),
93
+ configPath: runOptions.configFile || void 0,
94
+ version: options.version
95
+ });
96
+ await (0, plugin_run_namespaceObject.run)(runOptions);
97
+ }
98
+ let routeGenerationQueue = Promise.resolve();
99
+ const routeGeneratorCli = (0, cli_namespaceObject.createCli)();
100
+ function generateRouteArtifacts(options) {
101
+ const task = routeGenerationQueue.then(async ()=>{
102
+ const previousArgv = process.env.MODERN_ARGV;
103
+ let dispose;
104
+ let getEntrypoints;
105
+ let generationFailed = false;
106
+ let generationError;
107
+ let disposalFailed = false;
108
+ let disposalError;
109
+ process.env.MODERN_ARGV = 'node ultramodern routes-generate';
110
+ try {
111
+ const appDirectory = external_node_path_default().resolve(options.appDirectory);
112
+ (0, core_namespaceObject.loadEnv)({
113
+ cwd: appDirectory,
114
+ mode: process.env.MODERN_ENV || process.env.NODE_ENV,
115
+ prefixes: [
116
+ 'MODERN_'
117
+ ]
118
+ });
119
+ const loaded = await (0, external_config_js_namespaceObject.loadUltramodernConfigFile)({
120
+ appDirectory,
121
+ configFile: options.configPath,
122
+ command: 'routes-generate',
123
+ env: (0, utils_namespaceObject.getNodeEnv)()
124
+ });
125
+ const runOptions = await createLauncherOptions({
126
+ cwd: appDirectory,
127
+ version: options.version ?? process.env.MODERN_JS_VERSION ?? '0.0.0'
128
+ });
129
+ const lifecycle = {
130
+ name: '@modern-js/ultramodern-route-generation-lifecycle',
131
+ setup (api) {
132
+ api.updateAppContext({
133
+ configFile: loaded.configFile
134
+ });
135
+ dispose = ()=>api.getHooks().onBeforeExit.call();
136
+ getEntrypoints = ()=>api.getAppContext().entrypoints;
137
+ }
138
+ };
139
+ const { appContext } = await routeGeneratorCli.init({
140
+ ...runOptions,
141
+ configFile: false,
142
+ config: loaded.config,
143
+ command: 'routes-generate',
144
+ internalPlugins: [
145
+ lifecycle,
146
+ ...runOptions.internalPlugins
147
+ ]
148
+ });
149
+ const entrypoints = getEntrypoints?.();
150
+ if (!entrypoints?.length) throw new Error('Route generation requires an application entry');
151
+ await appContext.hooks.generateEntryCode.call({
152
+ entrypoints: [
153
+ ...entrypoints
154
+ ]
155
+ });
156
+ } catch (error) {
157
+ generationFailed = true;
158
+ generationError = error;
159
+ } finally{
160
+ try {
161
+ await dispose?.();
162
+ } catch (error) {
163
+ disposalFailed = true;
164
+ disposalError = error;
165
+ } finally{
166
+ try {
167
+ routeGeneratorCli.dispose();
168
+ } finally{
169
+ if (void 0 === previousArgv) delete process.env.MODERN_ARGV;
170
+ else process.env.MODERN_ARGV = previousArgv;
171
+ }
172
+ }
173
+ }
174
+ if (generationFailed && disposalFailed) throw new AggregateError([
175
+ generationError,
176
+ disposalError
177
+ ], 'Route generation failed and disposal also failed', {
178
+ cause: generationError
179
+ });
180
+ if (generationFailed) throw generationError;
181
+ if (disposalFailed) throw disposalError;
182
+ });
183
+ routeGenerationQueue = task.then(()=>void 0, ()=>void 0);
184
+ return task;
185
+ }
186
+ exports.createRunOptions = __webpack_exports__.createRunOptions;
187
+ exports.generateRouteArtifacts = __webpack_exports__.generateRouteArtifacts;
188
+ exports.run = __webpack_exports__.run;
189
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
190
+ "createRunOptions",
191
+ "generateRouteArtifacts",
192
+ "run"
193
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
194
+ Object.defineProperty(exports, '__esModule', {
195
+ value: true
196
+ });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __webpack_exports__ = {};
3
+ const external_config_metadata_js_namespaceObject = require("./config-metadata.js");
4
+ process.once('disconnect', ()=>process.exit(1));
5
+ function reply(message, exitCode) {
6
+ process.send(message, ()=>process.exit(exitCode));
7
+ }
8
+ process.once('message', (options)=>{
9
+ (0, external_config_metadata_js_namespaceObject.readUltramodernConfigMetadata)(options).then((result)=>reply({
10
+ result
11
+ }, 0), (value)=>{
12
+ const error = value instanceof Error ? value : new Error(String(value));
13
+ reply({
14
+ error: {
15
+ message: error.message,
16
+ stack: error.stack
17
+ }
18
+ }, 1);
19
+ });
20
+ });
21
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
22
+ Object.defineProperty(exports, '__esModule', {
23
+ value: true
24
+ });
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ loadUltramodernConfigMetadata: ()=>loadUltramodernConfigMetadata,
41
+ readUltramodernConfigMetadata: ()=>readUltramodernConfigMetadata
42
+ });
43
+ const external_node_child_process_namespaceObject = require("node:child_process");
44
+ const external_node_fs_namespaceObject = require("node:fs");
45
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
46
+ const external_node_module_namespaceObject = require("node:module");
47
+ const external_node_path_namespaceObject = require("node:path");
48
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
49
+ const external_node_url_namespaceObject = require("node:url");
50
+ const core_namespaceObject = require("@rsbuild/core");
51
+ const external_config_js_namespaceObject = require("./config.js");
52
+ function inside(directory, file) {
53
+ const relative = external_node_path_default().relative(directory, file);
54
+ return '' !== relative && !relative.startsWith(`..${external_node_path_default().sep}`) && '..' !== relative && !external_node_path_default().isAbsolute(relative);
55
+ }
56
+ function isMissingModule(error) {
57
+ const code = error?.code;
58
+ return 'MODULE_NOT_FOUND' === code || 'ERR_MODULE_NOT_FOUND' === code;
59
+ }
60
+ function registerFallbackResolution(sourceRoot, options) {
61
+ const packageRoots = options.fallbackPackageRoots ?? [];
62
+ const staged = options.stagedWorkspace;
63
+ if (!packageRoots.length && !staged) return;
64
+ let resolving = false;
65
+ return (0, external_node_module_namespaceObject.registerHooks)({
66
+ resolve (specifier, context, nextResolve) {
67
+ try {
68
+ return nextResolve(specifier, context);
69
+ } catch (error) {
70
+ const parentURL = context.parentURL;
71
+ if (resolving || !isMissingModule(error) || !parentURL?.startsWith('file:') || specifier.startsWith('.') || specifier.includes(':') || external_node_path_default().isAbsolute(specifier) || (0, external_node_module_namespaceObject.isBuiltin)(specifier)) throw error;
72
+ const parent = (0, external_node_url_namespaceObject.fileURLToPath)(parentURL);
73
+ if (parent.split(external_node_path_default().sep).includes('node_modules') || !inside(sourceRoot, parent)) throw error;
74
+ const anchors = [
75
+ ...staged && inside(staged.root, parent) ? [
76
+ external_node_path_default().join(staged.originalRoot, external_node_path_default().relative(staged.root, parent))
77
+ ] : [],
78
+ ...packageRoots.map((root)=>external_node_path_default().join(root, 'package.json'))
79
+ ];
80
+ const esm = context.conditions.includes('import') && !context.conditions.includes('require');
81
+ resolving = true;
82
+ try {
83
+ for (const anchor of anchors)try {
84
+ if (esm) return nextResolve(specifier, {
85
+ ...context,
86
+ parentURL: (0, external_node_url_namespaceObject.pathToFileURL)(anchor).href
87
+ });
88
+ return {
89
+ url: (0, external_node_url_namespaceObject.pathToFileURL)((0, external_node_module_namespaceObject.createRequire)(anchor).resolve(specifier)).href,
90
+ shortCircuit: true
91
+ };
92
+ } catch (fallbackError) {
93
+ if (!isMissingModule(fallbackError)) throw fallbackError;
94
+ }
95
+ } finally{
96
+ resolving = false;
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+ });
102
+ }
103
+ async function readUltramodernConfigMetadata(options) {
104
+ const appDirectory = external_node_path_default().resolve(options.appDirectory);
105
+ const env = (0, core_namespaceObject.loadEnv)({
106
+ cwd: appDirectory,
107
+ mode: process.env.MODERN_ENV || options.env,
108
+ prefixes: [
109
+ 'MODERN_'
110
+ ]
111
+ });
112
+ const hooks = registerFallbackResolution(external_node_path_default().resolve(options.sourceRoot ?? appDirectory), options);
113
+ try {
114
+ const loaded = await (0, external_config_js_namespaceObject.loadUltramodernConfigFile)({
115
+ appDirectory,
116
+ configFile: options.configFile,
117
+ env: options.env,
118
+ command: options.command
119
+ });
120
+ const resolution = await (0, external_config_js_namespaceObject.resolveUltramodernEntryIdentities)({
121
+ appDirectory,
122
+ installedAppDirectory: options.stagedWorkspace && (appDirectory === external_node_path_default().resolve(options.stagedWorkspace.root) || inside(external_node_path_default().resolve(options.stagedWorkspace.root), appDirectory)) ? external_node_path_default().resolve(options.stagedWorkspace.originalRoot, external_node_path_default().relative(options.stagedWorkspace.root, appDirectory)) : appDirectory,
123
+ config: loaded.config,
124
+ command: options.command,
125
+ configFile: loaded.configFile
126
+ });
127
+ return {
128
+ renderer: loaded.config.renderer,
129
+ ...resolution
130
+ };
131
+ } finally{
132
+ hooks?.deregister();
133
+ env.cleanup();
134
+ }
135
+ }
136
+ function workerFile() {
137
+ let directory = external_node_path_default().dirname(__filename);
138
+ while(!external_node_fs_default().existsSync(external_node_path_default().join(directory, 'package.json'))){
139
+ const parent = external_node_path_default().dirname(directory);
140
+ if (parent === directory) throw new Error('Cannot find the UltraModern app tools package root');
141
+ directory = parent;
142
+ }
143
+ return external_node_path_default().join(directory, 'dist/cjs/native-composition/config-metadata-worker.js');
144
+ }
145
+ function loadUltramodernConfigMetadata(options) {
146
+ const appDirectory = external_node_path_default().resolve(options.appDirectory);
147
+ return new Promise((resolve, reject)=>{
148
+ const child = (0, external_node_child_process_namespaceObject.fork)(workerFile(), [], {
149
+ cwd: appDirectory,
150
+ execArgv: [],
151
+ env: {
152
+ ...process.env,
153
+ NODE_ENV: options.env
154
+ },
155
+ stdio: [
156
+ 'ignore',
157
+ 'pipe',
158
+ 'pipe',
159
+ 'ipc'
160
+ ]
161
+ });
162
+ let output = '';
163
+ const collect = (chunk)=>{
164
+ output = `${output}${chunk.toString()}`.slice(-65536);
165
+ };
166
+ child.stdout?.on('data', collect);
167
+ child.stderr?.on('data', collect);
168
+ let message;
169
+ child.once('message', (value)=>{
170
+ message = value;
171
+ });
172
+ child.once('error', reject);
173
+ child.once('close', (code, signal)=>{
174
+ if (message && 'result' in message) resolve(message.result);
175
+ else if (message) {
176
+ const error = new Error(message.error.message);
177
+ error.stack = message.error.stack;
178
+ reject(error);
179
+ } else reject(new Error(`Loading ${appDirectory}/modern.config exited (${signal ?? code}) without a result.${output ? `\n${output}` : ''}`));
180
+ });
181
+ child.send({
182
+ ...options,
183
+ appDirectory
184
+ });
185
+ });
186
+ }
187
+ exports.loadUltramodernConfigMetadata = __webpack_exports__.loadUltramodernConfigMetadata;
188
+ exports.readUltramodernConfigMetadata = __webpack_exports__.readUltramodernConfigMetadata;
189
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
190
+ "loadUltramodernConfigMetadata",
191
+ "readUltramodernConfigMetadata"
192
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
193
+ Object.defineProperty(exports, '__esModule', {
194
+ value: true
195
+ });
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ isEntryMetadataRead: ()=>isEntryMetadataRead,
32
+ withEntryMetadataRead: ()=>withEntryMetadataRead
33
+ });
34
+ const external_node_async_hooks_namespaceObject = require("node:async_hooks");
35
+ const storeKey = Symbol.for('ultramodern.entry-metadata-read');
36
+ const entryMetadataRead = globalThis[storeKey] ??= new external_node_async_hooks_namespaceObject.AsyncLocalStorage();
37
+ function withEntryMetadataRead(read) {
38
+ return entryMetadataRead.run(true, read);
39
+ }
40
+ function isEntryMetadataRead() {
41
+ return true === entryMetadataRead.getStore();
42
+ }
43
+ exports.isEntryMetadataRead = __webpack_exports__.isEntryMetadataRead;
44
+ exports.withEntryMetadataRead = __webpack_exports__.withEntryMetadataRead;
45
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
46
+ "isEntryMetadataRead",
47
+ "withEntryMetadataRead"
48
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
49
+ Object.defineProperty(exports, '__esModule', {
50
+ value: true
51
+ });