@bleedingdev/modern-js-ultramodern-create 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21

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 (442) hide show
  1. package/README.md +43 -74
  2. package/dist/cjs/cli/package-source.cjs +2 -2
  3. package/dist/cjs/cli/project-setup.cjs +2 -22
  4. package/dist/cjs/index.cjs +9 -1
  5. package/dist/cjs/locale/en.cjs +2 -1
  6. package/dist/cjs/locale/zh.cjs +2 -1
  7. package/dist/cjs/ultramodern-package-source.cjs +13 -9
  8. package/dist/cjs/ultramodern-release-cohort.cjs +6 -21
  9. package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +49 -56
  10. package/dist/cjs/ultramodern-tooling/commands/context.cjs +11 -29
  11. package/dist/cjs/ultramodern-tooling/commands/routes-generate-app.cjs +67 -0
  12. package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +24 -53
  13. package/dist/cjs/ultramodern-tooling/commands/validate.cjs +5 -11
  14. package/dist/cjs/ultramodern-tooling/commands.cjs +15 -8
  15. package/dist/cjs/ultramodern-tooling/config/index.cjs +10 -24
  16. package/dist/cjs/ultramodern-tooling/config/load.cjs +12 -10
  17. package/dist/cjs/ultramodern-tooling/config/metadata.cjs +34 -32
  18. package/dist/cjs/ultramodern-tooling/config/normalize.cjs +165 -164
  19. package/dist/cjs/ultramodern-workspace/add-shell.cjs +118 -118
  20. package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +121 -25
  21. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +14 -160
  22. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +16 -48
  23. package/dist/cjs/ultramodern-workspace/add-vertical/preview.cjs +78 -0
  24. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +87 -24
  25. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +4 -1
  26. package/dist/cjs/ultramodern-workspace/add-vertical/transaction.cjs +378 -45
  27. package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +21 -44
  28. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +0 -9
  29. package/dist/cjs/ultramodern-workspace/api/client.cjs +5 -5
  30. package/dist/cjs/ultramodern-workspace/api/contracts.cjs +2 -2
  31. package/dist/cjs/ultramodern-workspace/api/rpc.cjs +20 -18
  32. package/dist/cjs/ultramodern-workspace/api/service.cjs +49 -24
  33. package/dist/cjs/ultramodern-workspace/api/shared.cjs +28 -18
  34. package/dist/cjs/ultramodern-workspace/app-files.cjs +3 -23
  35. package/dist/cjs/ultramodern-workspace/backend-federation.cjs +27 -27
  36. package/dist/cjs/ultramodern-workspace/contracts.cjs +14 -183
  37. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/surfaces.cjs +85 -0
  38. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/types.cjs +8 -85
  39. package/dist/cjs/ultramodern-workspace/delivery-unit-stamp.cjs +16 -4
  40. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +27 -17
  41. package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +16 -10
  42. package/dist/cjs/ultramodern-workspace/demo-components.cjs +66 -433
  43. package/dist/cjs/ultramodern-workspace/descriptors.cjs +0 -4
  44. package/dist/cjs/ultramodern-workspace/fs-io.cjs +37 -2
  45. package/dist/cjs/ultramodern-workspace/generation-result.cjs +4 -4
  46. package/dist/cjs/ultramodern-workspace/index.cjs +2 -5
  47. package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +0 -6
  48. package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +6 -6
  49. package/dist/cjs/{ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs → ultramodern-workspace/mf-validation/exposes.cjs} +13 -17
  50. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +26 -7
  51. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +21 -122
  52. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +37 -38
  53. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +93 -153
  54. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +4 -0
  55. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +24 -29
  56. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +39 -58
  57. package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +1 -43
  58. package/dist/cjs/ultramodern-workspace/package-json.cjs +63 -37
  59. package/dist/cjs/ultramodern-workspace/patch-inventory.cjs +104 -0
  60. package/dist/cjs/ultramodern-workspace/policy.cjs +3 -577
  61. package/dist/cjs/ultramodern-workspace/public-surface.cjs +3 -3
  62. package/dist/cjs/ultramodern-workspace/routes.cjs +2 -11
  63. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +12 -2
  64. package/dist/cjs/ultramodern-workspace/shells.cjs +0 -70
  65. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +27 -41
  66. package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +8 -2
  67. package/dist/cjs/ultramodern-workspace/validation/architecture.cjs +397 -0
  68. package/dist/cjs/ultramodern-workspace/validation/assertions.cjs +140 -0
  69. package/dist/cjs/ultramodern-workspace/validation/types.cjs +18 -0
  70. package/dist/cjs/ultramodern-workspace/validation/workspace.cjs +344 -0
  71. package/dist/cjs/ultramodern-workspace/versions.cjs +81 -45
  72. package/dist/cjs/ultramodern-workspace/workspace-artifact-ownership.cjs +183 -0
  73. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +36 -25
  74. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +11 -200
  75. package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +62 -373
  76. package/dist/cjs/ultramodern-workspace/write-app.cjs +19 -11
  77. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +20 -50
  78. package/dist/cjs/ultramodern-workspace/zerops.cjs +2 -0
  79. package/dist/esm/cli/package-source.js +3 -3
  80. package/dist/esm/cli/project-setup.js +2 -22
  81. package/dist/esm/index.js +10 -2
  82. package/dist/esm/locale/en.js +2 -1
  83. package/dist/esm/locale/zh.js +2 -1
  84. package/dist/esm/ultramodern-package-source.js +14 -4
  85. package/dist/esm/ultramodern-release-cohort.js +5 -14
  86. package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +49 -56
  87. package/dist/esm/ultramodern-tooling/commands/context.js +10 -26
  88. package/dist/esm/ultramodern-tooling/commands/routes-generate-app.js +35 -0
  89. package/dist/esm/ultramodern-tooling/commands/routes-generate.js +25 -54
  90. package/dist/esm/ultramodern-tooling/commands/validate.js +6 -12
  91. package/dist/esm/ultramodern-tooling/commands.js +15 -9
  92. package/dist/esm/ultramodern-tooling/config/index.js +0 -2
  93. package/dist/esm/ultramodern-tooling/config/load.js +9 -9
  94. package/dist/esm/ultramodern-tooling/config/metadata.js +33 -28
  95. package/dist/esm/ultramodern-tooling/config/normalize.js +159 -156
  96. package/dist/esm/ultramodern-workspace/add-shell.js +124 -123
  97. package/dist/esm/ultramodern-workspace/add-vertical/execute.js +119 -27
  98. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +16 -150
  99. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +15 -47
  100. package/dist/esm/ultramodern-workspace/add-vertical/preview.js +40 -0
  101. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +87 -25
  102. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +4 -1
  103. package/dist/esm/ultramodern-workspace/add-vertical/transaction.js +373 -46
  104. package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +17 -34
  105. package/dist/esm/ultramodern-workspace/add-vertical.js +1 -1
  106. package/dist/esm/ultramodern-workspace/api/client.js +5 -5
  107. package/dist/esm/ultramodern-workspace/api/contracts.js +2 -2
  108. package/dist/esm/ultramodern-workspace/api/rpc.js +20 -18
  109. package/dist/esm/ultramodern-workspace/api/service.js +49 -24
  110. package/dist/esm/ultramodern-workspace/api/shared.js +28 -18
  111. package/dist/esm/ultramodern-workspace/app-files.js +3 -23
  112. package/dist/esm/ultramodern-workspace/backend-federation.js +5 -5
  113. package/dist/esm/ultramodern-workspace/contracts.js +14 -180
  114. package/dist/esm/ultramodern-workspace/delivery-unit-schema/surfaces.js +41 -0
  115. package/dist/esm/ultramodern-workspace/delivery-unit-schema/types.js +1 -75
  116. package/dist/esm/ultramodern-workspace/delivery-unit-stamp.js +16 -4
  117. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +28 -18
  118. package/dist/esm/ultramodern-workspace/delivery-unit.js +12 -6
  119. package/dist/esm/ultramodern-workspace/demo-components.js +67 -428
  120. package/dist/esm/ultramodern-workspace/descriptors.js +1 -2
  121. package/dist/esm/ultramodern-workspace/fs-io.js +37 -2
  122. package/dist/esm/ultramodern-workspace/generation-result.js +3 -3
  123. package/dist/esm/ultramodern-workspace/index.js +1 -1
  124. package/dist/esm/ultramodern-workspace/mf-validation/constants.js +1 -4
  125. package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +7 -7
  126. package/dist/esm/ultramodern-workspace/mf-validation/exposes.js +14 -0
  127. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +27 -8
  128. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +22 -123
  129. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +36 -34
  130. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +83 -143
  131. package/dist/esm/ultramodern-workspace/mf-validation.js +1 -0
  132. package/dist/esm/ultramodern-workspace/module-federation/config.js +25 -30
  133. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +39 -58
  134. package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +1 -43
  135. package/dist/esm/ultramodern-workspace/package-json.js +58 -32
  136. package/dist/esm/ultramodern-workspace/patch-inventory.js +66 -0
  137. package/dist/esm/ultramodern-workspace/policy.js +2 -564
  138. package/dist/esm/ultramodern-workspace/public-surface.js +3 -3
  139. package/dist/esm/ultramodern-workspace/routes.js +2 -11
  140. package/dist/esm/ultramodern-workspace/shared-patches.js +2 -2
  141. package/dist/esm/ultramodern-workspace/shells.js +3 -67
  142. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +22 -37
  143. package/dist/esm/ultramodern-workspace/tsconfigs.js +9 -3
  144. package/dist/esm/ultramodern-workspace/validation/architecture.js +348 -0
  145. package/dist/esm/ultramodern-workspace/validation/assertions.js +65 -0
  146. package/dist/esm/ultramodern-workspace/validation/types.js +0 -0
  147. package/dist/esm/ultramodern-workspace/validation/workspace.js +286 -0
  148. package/dist/esm/ultramodern-workspace/versions.js +74 -29
  149. package/dist/esm/ultramodern-workspace/workspace-artifact-ownership.js +128 -0
  150. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +35 -27
  151. package/dist/esm/ultramodern-workspace/workspace-scripts.js +10 -190
  152. package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +65 -376
  153. package/dist/esm/ultramodern-workspace/write-app.js +18 -10
  154. package/dist/esm/ultramodern-workspace/write-workspace.js +25 -52
  155. package/dist/esm/ultramodern-workspace/zerops.js +2 -0
  156. package/dist/esm-node/cli/package-source.js +3 -3
  157. package/dist/esm-node/cli/project-setup.js +2 -22
  158. package/dist/esm-node/index.js +10 -2
  159. package/dist/esm-node/locale/en.js +2 -1
  160. package/dist/esm-node/locale/zh.js +2 -1
  161. package/dist/esm-node/ultramodern-package-source.js +14 -4
  162. package/dist/esm-node/ultramodern-release-cohort.js +5 -14
  163. package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +49 -56
  164. package/dist/esm-node/ultramodern-tooling/commands/context.js +10 -26
  165. package/dist/esm-node/ultramodern-tooling/commands/routes-generate-app.js +36 -0
  166. package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +25 -54
  167. package/dist/esm-node/ultramodern-tooling/commands/validate.js +6 -12
  168. package/dist/esm-node/ultramodern-tooling/commands.js +15 -9
  169. package/dist/esm-node/ultramodern-tooling/config/index.js +0 -2
  170. package/dist/esm-node/ultramodern-tooling/config/load.js +9 -9
  171. package/dist/esm-node/ultramodern-tooling/config/metadata.js +33 -28
  172. package/dist/esm-node/ultramodern-tooling/config/normalize.js +159 -156
  173. package/dist/esm-node/ultramodern-workspace/add-shell.js +124 -123
  174. package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +119 -27
  175. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +16 -150
  176. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +15 -47
  177. package/dist/esm-node/ultramodern-workspace/add-vertical/preview.js +41 -0
  178. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +87 -25
  179. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +4 -1
  180. package/dist/esm-node/ultramodern-workspace/add-vertical/transaction.js +373 -46
  181. package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +17 -34
  182. package/dist/esm-node/ultramodern-workspace/add-vertical.js +1 -1
  183. package/dist/esm-node/ultramodern-workspace/api/client.js +5 -5
  184. package/dist/esm-node/ultramodern-workspace/api/contracts.js +2 -2
  185. package/dist/esm-node/ultramodern-workspace/api/rpc.js +20 -18
  186. package/dist/esm-node/ultramodern-workspace/api/service.js +49 -24
  187. package/dist/esm-node/ultramodern-workspace/api/shared.js +28 -18
  188. package/dist/esm-node/ultramodern-workspace/app-files.js +3 -23
  189. package/dist/esm-node/ultramodern-workspace/backend-federation.js +5 -5
  190. package/dist/esm-node/ultramodern-workspace/contracts.js +14 -180
  191. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/surfaces.js +42 -0
  192. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/types.js +1 -75
  193. package/dist/esm-node/ultramodern-workspace/delivery-unit-stamp.js +16 -4
  194. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +28 -18
  195. package/dist/esm-node/ultramodern-workspace/delivery-unit.js +12 -6
  196. package/dist/esm-node/ultramodern-workspace/demo-components.js +67 -428
  197. package/dist/esm-node/ultramodern-workspace/descriptors.js +1 -2
  198. package/dist/esm-node/ultramodern-workspace/fs-io.js +37 -2
  199. package/dist/esm-node/ultramodern-workspace/generation-result.js +3 -3
  200. package/dist/esm-node/ultramodern-workspace/index.js +1 -1
  201. package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +1 -4
  202. package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +7 -7
  203. package/dist/esm-node/ultramodern-workspace/mf-validation/exposes.js +15 -0
  204. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +27 -8
  205. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +22 -123
  206. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +36 -34
  207. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +83 -143
  208. package/dist/esm-node/ultramodern-workspace/mf-validation.js +1 -0
  209. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +25 -30
  210. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +39 -58
  211. package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +1 -43
  212. package/dist/esm-node/ultramodern-workspace/package-json.js +58 -32
  213. package/dist/esm-node/ultramodern-workspace/patch-inventory.js +67 -0
  214. package/dist/esm-node/ultramodern-workspace/policy.js +2 -564
  215. package/dist/esm-node/ultramodern-workspace/public-surface.js +3 -3
  216. package/dist/esm-node/ultramodern-workspace/routes.js +2 -11
  217. package/dist/esm-node/ultramodern-workspace/shared-patches.js +2 -2
  218. package/dist/esm-node/ultramodern-workspace/shells.js +3 -67
  219. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +22 -37
  220. package/dist/esm-node/ultramodern-workspace/tsconfigs.js +9 -3
  221. package/dist/esm-node/ultramodern-workspace/validation/architecture.js +349 -0
  222. package/dist/esm-node/ultramodern-workspace/validation/assertions.js +66 -0
  223. package/dist/esm-node/ultramodern-workspace/validation/types.js +1 -0
  224. package/dist/esm-node/ultramodern-workspace/validation/workspace.js +287 -0
  225. package/dist/esm-node/ultramodern-workspace/versions.js +74 -29
  226. package/dist/esm-node/ultramodern-workspace/workspace-artifact-ownership.js +129 -0
  227. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +35 -27
  228. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +10 -190
  229. package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +65 -376
  230. package/dist/esm-node/ultramodern-workspace/write-app.js +18 -10
  231. package/dist/esm-node/ultramodern-workspace/write-workspace.js +25 -52
  232. package/dist/esm-node/ultramodern-workspace/zerops.js +2 -0
  233. package/dist/types/cli/project-setup.d.ts +1 -1
  234. package/dist/types/locale/en.d.ts +1 -0
  235. package/dist/types/locale/index.d.ts +2 -0
  236. package/dist/types/locale/zh.d.ts +1 -0
  237. package/dist/types/ultramodern-package-source.d.ts +2 -4
  238. package/dist/types/ultramodern-release-cohort.d.ts +1 -3
  239. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -2
  240. package/dist/types/ultramodern-tooling/commands/context.d.ts +4 -1
  241. package/dist/types/ultramodern-tooling/commands/routes-generate-app.d.ts +1 -0
  242. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +1 -1
  243. package/dist/types/ultramodern-tooling/commands/validate.d.ts +1 -1
  244. package/dist/types/ultramodern-tooling/config/index.d.ts +0 -2
  245. package/dist/types/ultramodern-tooling/config/load.d.ts +10 -2
  246. package/dist/types/ultramodern-tooling/config/metadata.d.ts +2 -2
  247. package/dist/types/ultramodern-tooling/config/normalize.d.ts +19 -19
  248. package/dist/types/ultramodern-tooling/config/types.d.ts +2 -9
  249. package/dist/types/ultramodern-workspace/add-shell.d.ts +1 -1
  250. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +1 -0
  251. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +4 -3
  252. package/dist/types/ultramodern-workspace/add-vertical/preview.d.ts +4 -0
  253. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +7 -2
  254. package/dist/types/ultramodern-workspace/add-vertical/transaction.d.ts +32 -6
  255. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +10 -7
  256. package/dist/types/ultramodern-workspace/add-vertical.d.ts +1 -1
  257. package/dist/types/ultramodern-workspace/api/client.d.ts +3 -1
  258. package/dist/types/ultramodern-workspace/api/rpc.d.ts +1 -1
  259. package/dist/types/ultramodern-workspace/api/service.d.ts +3 -1
  260. package/dist/types/ultramodern-workspace/api/shared.d.ts +2 -0
  261. package/dist/types/ultramodern-workspace/backend-federation.d.ts +1 -1
  262. package/dist/types/ultramodern-workspace/contracts.d.ts +1 -3
  263. package/dist/types/ultramodern-workspace/delivery-unit-schema/surfaces.d.ts +17 -0
  264. package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +3 -68
  265. package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +2 -2
  266. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +3 -3
  267. package/dist/types/ultramodern-workspace/demo-components.d.ts +0 -3
  268. package/dist/types/ultramodern-workspace/descriptors.d.ts +0 -1
  269. package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -1
  270. package/dist/types/ultramodern-workspace/index.d.ts +1 -1
  271. package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +0 -1
  272. package/dist/types/ultramodern-workspace/mf-validation/exposes.d.ts +11 -0
  273. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +2 -3
  274. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +4 -3
  275. package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +1 -0
  276. package/dist/types/ultramodern-workspace/mf-validation.d.ts +1 -0
  277. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +1 -1
  278. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +2 -2
  279. package/dist/types/ultramodern-workspace/package-json.d.ts +1 -1
  280. package/dist/types/ultramodern-workspace/patch-inventory.d.ts +10 -0
  281. package/dist/types/ultramodern-workspace/policy.d.ts +31 -209
  282. package/dist/types/ultramodern-workspace/routes.d.ts +6 -1
  283. package/dist/types/ultramodern-workspace/shells.d.ts +2 -15
  284. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +8 -7
  285. package/dist/types/ultramodern-workspace/types.d.ts +9 -9
  286. package/dist/types/ultramodern-workspace/validation/architecture.d.ts +2 -0
  287. package/dist/types/ultramodern-workspace/validation/assertions.d.ts +14 -0
  288. package/dist/types/ultramodern-workspace/validation/types.d.ts +9 -0
  289. package/dist/types/ultramodern-workspace/validation/workspace.d.ts +6 -0
  290. package/dist/types/ultramodern-workspace/versions.d.ts +73 -28
  291. package/dist/types/ultramodern-workspace/workspace-artifact-ownership.d.ts +18 -0
  292. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +4 -5
  293. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +8 -13
  294. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +22 -188
  295. package/dist/types/ultramodern-workspace/write-workspace.d.ts +1 -3
  296. package/package.json +18 -11
  297. package/{template-workspace/.modernjs/release-cohort.json → release-cohort.json} +88 -40
  298. package/template-workspace/.codex/skills/rspack-tracing/scripts/analyze_trace.js +1 -1
  299. package/template-workspace/README.md.handlebars +20 -35
  300. package/template-workspace/oxfmt.config.ts +3 -0
  301. package/template-workspace/pnpm-workspace.yaml.handlebars +0 -24
  302. package/template-workspace/scripts/bootstrap-agent-skills.mjs +4 -4
  303. package/templates/packages/shared-contracts-index.ts +4 -332
  304. package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +10 -0
  305. package/templates/workspace/apps/modern.config.ts.handlebars +13 -27
  306. package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -11
  307. package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +20 -20
  308. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +4 -6
  309. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +2 -2
  310. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +11 -11
  311. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.helpers.tsx.handlebars +1 -1
  312. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.imports.tsx.handlebars +1 -1
  313. package/templates/workspace-scripts/generate-node-backend-federation.mjs +68 -77
  314. package/templates/workspace-scripts/generate-public-surface-assets.mjs +107 -207
  315. package/templates/workspace-scripts/materialize-zerops-runtime.mjs +12 -19
  316. package/templates/workspace-scripts/proof-cloudflare-version.mjs +53 -444
  317. package/templates/workspace-scripts/proof-node-backend-federation.mjs +212 -91
  318. package/templates/workspace-scripts/{proof-workerd-ssr.mts → proof-workerd-ssr.mjs} +434 -239
  319. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +25 -7
  320. package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +45 -147
  321. package/templates/workspace-scripts/ultramodern-typecheck.mjs +1 -1
  322. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +0 -212
  323. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +0 -47
  324. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +0 -112
  325. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +0 -55
  326. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +0 -102
  327. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +0 -195
  328. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +0 -146
  329. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.cjs +0 -110
  330. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +0 -67
  331. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +0 -307
  332. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +0 -58
  333. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +0 -71
  334. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.cjs +0 -151
  335. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +0 -67
  336. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +0 -52
  337. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +0 -447
  338. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +0 -323
  339. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +0 -87
  340. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +0 -612
  341. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +0 -376
  342. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +0 -73
  343. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.cjs +0 -215
  344. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.cjs +0 -135
  345. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +0 -454
  346. package/dist/cjs/ultramodern-tooling/config/constants.cjs +0 -48
  347. package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +0 -157
  348. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/up-projection.cjs +0 -188
  349. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +0 -154
  350. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +0 -9
  351. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +0 -63
  352. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +0 -7
  353. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +0 -47
  354. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +0 -146
  355. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +0 -97
  356. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.js +0 -61
  357. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +0 -16
  358. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +0 -258
  359. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +0 -10
  360. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +0 -8
  361. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +0 -15
  362. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +0 -100
  363. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +0 -29
  364. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +0 -14
  365. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +0 -385
  366. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +0 -276
  367. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +0 -49
  368. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +0 -559
  369. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +0 -329
  370. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +0 -19
  371. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.js +0 -148
  372. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +0 -80
  373. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +0 -405
  374. package/dist/esm/ultramodern-tooling/config/constants.js +0 -4
  375. package/dist/esm/ultramodern-tooling/config/synthesize.js +0 -108
  376. package/dist/esm/ultramodern-workspace/delivery-unit-schema/up-projection.js +0 -129
  377. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +0 -155
  378. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +0 -10
  379. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +0 -64
  380. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +0 -8
  381. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +0 -48
  382. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +0 -147
  383. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +0 -98
  384. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.js +0 -62
  385. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +0 -17
  386. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +0 -259
  387. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +0 -11
  388. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +0 -9
  389. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +0 -16
  390. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +0 -101
  391. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +0 -30
  392. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +0 -15
  393. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +0 -386
  394. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +0 -277
  395. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +0 -50
  396. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +0 -560
  397. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +0 -330
  398. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +0 -20
  399. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.js +0 -149
  400. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +0 -81
  401. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +0 -406
  402. package/dist/esm-node/ultramodern-tooling/config/constants.js +0 -5
  403. package/dist/esm-node/ultramodern-tooling/config/synthesize.js +0 -109
  404. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/up-projection.js +0 -130
  405. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +0 -12
  406. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +0 -4
  407. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +0 -1
  408. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +0 -3
  409. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +0 -5
  410. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +0 -3
  411. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +0 -2
  412. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.d.ts +0 -2
  413. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +0 -4
  414. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +0 -3
  415. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +0 -3
  416. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +0 -8
  417. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +0 -3
  418. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.d.ts +0 -3
  419. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +0 -1
  420. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +0 -2
  421. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +0 -26
  422. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +0 -25
  423. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +0 -3
  424. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +0 -26
  425. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +0 -26
  426. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +0 -6
  427. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.d.ts +0 -37
  428. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +0 -4
  429. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +0 -2
  430. package/dist/types/ultramodern-tooling/config/constants.d.ts +0 -3
  431. package/dist/types/ultramodern-tooling/config/synthesize.d.ts +0 -5
  432. package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +0 -189
  433. package/template-workspace/patches/@module-federation__bridge-react@2.9.0.patch +0 -47
  434. package/template-workspace/patches/@module-federation__dts-plugin@2.9.0.patch +0 -26
  435. package/template-workspace/patches/@module-federation__modern-js-v3@2.9.0.patch +0 -268
  436. package/template-workspace/patches/@module-federation__runtime-core@2.9.0.patch +0 -13
  437. package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +0 -471
  438. package/template-workspace/patches/msgpackr@2.1.0.patch +0 -30
  439. package/template-workspace/patches/zod@4.5.4.patch +0 -56
  440. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +0 -779
  441. package/templates/workspace-scripts/check-ultramodern-i18n-boundaries.mts +0 -9
  442. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +0 -4109
@@ -1,3 +1,7 @@
1
+ import type { UltramodernPerformanceReadinessSignalId } from '@modern-js/runtime-extensions/workspace-events';
2
+
3
+ export * from '@modern-js/runtime-extensions/workspace-events';
4
+
1
5
  export type UltramodernPublicSitemapChangeFrequency =
2
6
  | 'always'
3
7
  | 'hourly'
@@ -26,14 +30,6 @@ export interface UltramodernPublicSitemapEntry {
26
30
  priority?: number;
27
31
  }
28
32
 
29
- export type UltramodernPerformanceReadinessSignalId =
30
- | 'bfcache'
31
- | 'core-web-vitals-rum'
32
- | 'duplicate-prefetch-warmup'
33
- | 'cache-policy-sanity'
34
- | 'save-data-behavior'
35
- | 'cloudflare-ssr-cache-hints';
36
-
37
33
  export interface UltramodernPerformanceReadinessDiagnosticsConfig {
38
34
  /**
39
35
  * Default-on. Set to false only for an explicit local or CI fast path.
@@ -74,327 +70,3 @@ export const ultramodernWorkspaceContract = {
74
70
  preset: 'presetUltramodern',
75
71
  topology: 'topology/reference-topology.json',
76
72
  } as const;
77
-
78
- export type UltramodernWorkspaceLocale = 'en' | 'cs';
79
-
80
- export type UltramodernPerformanceReadinessSignalStatus =
81
- | 'pass'
82
- | 'warn'
83
- | 'fail';
84
-
85
- export const ultramodernWorkspaceEventNames = {
86
- navigate: 'ultramodern:navigate',
87
- performanceSignal: 'ultramodern:performance-signal',
88
- remoteReady: 'ultramodern:remote-ready',
89
- routeSettled: 'ultramodern:route-settled',
90
- } as const;
91
-
92
- export type UltramodernWorkspaceEventName =
93
- (typeof ultramodernWorkspaceEventNames)[keyof typeof ultramodernWorkspaceEventNames];
94
-
95
- export interface UltramodernNavigatePayload {
96
- to: string;
97
- replace?: boolean;
98
- state?: Record<string, unknown>;
99
- }
100
-
101
- export interface UltramodernRouteSettledPayload {
102
- pathname: string;
103
- locale?: UltramodernWorkspaceLocale;
104
- title?: string;
105
- }
106
-
107
- export interface UltramodernRemoteReadyPayload {
108
- appId: string;
109
- build?: string;
110
- surface?: string;
111
- version?: string;
112
- }
113
-
114
- export interface UltramodernPerformanceSignalPayload {
115
- signalId: UltramodernPerformanceReadinessSignalId;
116
- status: UltramodernPerformanceReadinessSignalStatus;
117
- durationMs?: number;
118
- detail?: Record<string, unknown>;
119
- }
120
-
121
- export interface UltramodernWorkspaceEventPayloadMap {
122
- 'ultramodern:navigate': UltramodernNavigatePayload;
123
- 'ultramodern:performance-signal': UltramodernPerformanceSignalPayload;
124
- 'ultramodern:remote-ready': UltramodernRemoteReadyPayload;
125
- 'ultramodern:route-settled': UltramodernRouteSettledPayload;
126
- }
127
-
128
- export class UltramodernWorkspaceEventValidationError {
129
- readonly message: string;
130
- readonly name = 'UltramodernWorkspaceEventValidationError';
131
- readonly eventName: UltramodernWorkspaceEventName;
132
- readonly payload: unknown;
133
-
134
- constructor(eventName: UltramodernWorkspaceEventName, payload: unknown) {
135
- this.message = `Invalid payload for UltraModern workspace event "${eventName}"`;
136
- this.eventName = eventName;
137
- this.payload = payload;
138
- }
139
- }
140
-
141
- const isRecord = (value: unknown): value is Record<string, unknown> =>
142
- typeof value === 'object' && value !== null && !Array.isArray(value);
143
-
144
- const isNonEmptyString = (value: unknown): value is string =>
145
- typeof value === 'string' && value.trim().length > 0;
146
-
147
- const isNonNegativeNumber = (value: unknown): value is number =>
148
- typeof value === 'number' && Number.isFinite(value) && value >= 0;
149
-
150
- const isUltramodernWorkspaceLocale = (
151
- value: unknown,
152
- ): value is UltramodernWorkspaceLocale => value === 'en' || value === 'cs';
153
-
154
- const isPerformanceReadinessSignalId = (
155
- value: unknown,
156
- ): value is UltramodernPerformanceReadinessSignalId =>
157
- value === 'bfcache' ||
158
- value === 'core-web-vitals-rum' ||
159
- value === 'duplicate-prefetch-warmup' ||
160
- value === 'cache-policy-sanity' ||
161
- value === 'save-data-behavior' ||
162
- value === 'cloudflare-ssr-cache-hints';
163
-
164
- const isPerformanceReadinessSignalStatus = (
165
- value: unknown,
166
- ): value is UltramodernPerformanceReadinessSignalStatus =>
167
- value === 'pass' || value === 'warn' || value === 'fail';
168
-
169
- const hasOptionalString = (value: Record<string, unknown>, key: string) =>
170
- value[key] === undefined || isNonEmptyString(value[key]);
171
-
172
- const hasOptionalBoolean = (value: Record<string, unknown>, key: string) =>
173
- value[key] === undefined || typeof value[key] === 'boolean';
174
-
175
- const hasOptionalRecord = (value: Record<string, unknown>, key: string) =>
176
- value[key] === undefined || isRecord(value[key]);
177
-
178
- const hasOptionalNonNegativeNumber = (
179
- value: Record<string, unknown>,
180
- key: string,
181
- ) => value[key] === undefined || isNonNegativeNumber(value[key]);
182
-
183
- const hasOptionalLocale = (value: Record<string, unknown>, key: string) =>
184
- value[key] === undefined || isUltramodernWorkspaceLocale(value[key]);
185
-
186
- export const isUltramodernNavigatePayload = (
187
- payload: unknown,
188
- ): payload is UltramodernNavigatePayload =>
189
- isRecord(payload) &&
190
- isNonEmptyString(payload['to']) &&
191
- hasOptionalBoolean(payload, 'replace') &&
192
- hasOptionalRecord(payload, 'state');
193
-
194
- export const isUltramodernRouteSettledPayload = (
195
- payload: unknown,
196
- ): payload is UltramodernRouteSettledPayload =>
197
- isRecord(payload) &&
198
- isNonEmptyString(payload['pathname']) &&
199
- hasOptionalLocale(payload, 'locale') &&
200
- hasOptionalString(payload, 'title');
201
-
202
- export const isUltramodernRemoteReadyPayload = (
203
- payload: unknown,
204
- ): payload is UltramodernRemoteReadyPayload =>
205
- isRecord(payload) &&
206
- isNonEmptyString(payload['appId']) &&
207
- hasOptionalString(payload, 'build') &&
208
- hasOptionalString(payload, 'surface') &&
209
- hasOptionalString(payload, 'version');
210
-
211
- export const isUltramodernPerformanceSignalPayload = (
212
- payload: unknown,
213
- ): payload is UltramodernPerformanceSignalPayload =>
214
- isRecord(payload) &&
215
- isPerformanceReadinessSignalId(payload['signalId']) &&
216
- isPerformanceReadinessSignalStatus(payload['status']) &&
217
- hasOptionalNonNegativeNumber(payload, 'durationMs') &&
218
- hasOptionalRecord(payload, 'detail');
219
-
220
- const ultramodernWorkspaceEventValidators: {
221
- [Name in UltramodernWorkspaceEventName]: (
222
- payload: unknown,
223
- ) => payload is UltramodernWorkspaceEventPayloadMap[Name];
224
- } = {
225
- [ultramodernWorkspaceEventNames.navigate]: isUltramodernNavigatePayload,
226
- [ultramodernWorkspaceEventNames.performanceSignal]:
227
- isUltramodernPerformanceSignalPayload,
228
- [ultramodernWorkspaceEventNames.remoteReady]:
229
- isUltramodernRemoteReadyPayload,
230
- [ultramodernWorkspaceEventNames.routeSettled]:
231
- isUltramodernRouteSettledPayload,
232
- };
233
-
234
- export const isUltramodernWorkspaceEventPayload = <
235
- Name extends UltramodernWorkspaceEventName,
236
- >(
237
- eventName: Name,
238
- payload: unknown,
239
- ): payload is UltramodernWorkspaceEventPayloadMap[Name] =>
240
- ultramodernWorkspaceEventValidators[eventName](payload);
241
-
242
- export const assertUltramodernWorkspaceEventPayload = <
243
- Name extends UltramodernWorkspaceEventName,
244
- >(
245
- eventName: Name,
246
- payload: unknown,
247
- ): UltramodernWorkspaceEventPayloadMap[Name] => {
248
- if (!isUltramodernWorkspaceEventPayload(eventName, payload)) {
249
- throw new UltramodernWorkspaceEventValidationError(eventName, payload);
250
- }
251
-
252
- return payload;
253
- };
254
-
255
- export const createUltramodernWorkspaceEvent = <
256
- Name extends UltramodernWorkspaceEventName,
257
- >(
258
- eventName: Name,
259
- payload: UltramodernWorkspaceEventPayloadMap[Name],
260
- ): CustomEvent<UltramodernWorkspaceEventPayloadMap[Name]> =>
261
- new CustomEvent(eventName, {
262
- bubbles: true,
263
- composed: true,
264
- detail: assertUltramodernWorkspaceEventPayload(eventName, payload),
265
- });
266
-
267
- export const dispatchUltramodernWorkspaceEvent = <
268
- Name extends UltramodernWorkspaceEventName,
269
- >(
270
- target: EventTarget,
271
- eventName: Name,
272
- payload: UltramodernWorkspaceEventPayloadMap[Name],
273
- ) =>
274
- target.dispatchEvent(
275
- createUltramodernWorkspaceEvent(eventName, payload),
276
- );
277
-
278
- export const onUltramodernWorkspaceEvent = <
279
- Name extends UltramodernWorkspaceEventName,
280
- >(
281
- target: EventTarget,
282
- eventName: Name,
283
- handler: (
284
- payload: UltramodernWorkspaceEventPayloadMap[Name],
285
- event: CustomEvent<UltramodernWorkspaceEventPayloadMap[Name]>,
286
- ) => void,
287
- ) => {
288
- const listener = (event: Event) => {
289
- if (!('detail' in event)) {
290
- throw new UltramodernWorkspaceEventValidationError(
291
- eventName,
292
- undefined,
293
- );
294
- }
295
-
296
- const customEvent = event as CustomEvent<unknown>;
297
- handler(
298
- assertUltramodernWorkspaceEventPayload(eventName, customEvent.detail),
299
- customEvent as CustomEvent<UltramodernWorkspaceEventPayloadMap[Name]>,
300
- );
301
- };
302
-
303
- target.addEventListener(eventName, listener);
304
-
305
- return () => {
306
- target.removeEventListener(eventName, listener);
307
- };
308
- };
309
-
310
- export const dispatchUltramodernNavigate = (
311
- target: EventTarget,
312
- payload: UltramodernNavigatePayload,
313
- ) =>
314
- dispatchUltramodernWorkspaceEvent(
315
- target,
316
- ultramodernWorkspaceEventNames.navigate,
317
- payload,
318
- );
319
-
320
- export const dispatchUltramodernRouteSettled = (
321
- target: EventTarget,
322
- payload: UltramodernRouteSettledPayload,
323
- ) =>
324
- dispatchUltramodernWorkspaceEvent(
325
- target,
326
- ultramodernWorkspaceEventNames.routeSettled,
327
- payload,
328
- );
329
-
330
- export const dispatchUltramodernRemoteReady = (
331
- target: EventTarget,
332
- payload: UltramodernRemoteReadyPayload,
333
- ) =>
334
- dispatchUltramodernWorkspaceEvent(
335
- target,
336
- ultramodernWorkspaceEventNames.remoteReady,
337
- payload,
338
- );
339
-
340
- export const dispatchUltramodernPerformanceSignal = (
341
- target: EventTarget,
342
- payload: UltramodernPerformanceSignalPayload,
343
- ) =>
344
- dispatchUltramodernWorkspaceEvent(
345
- target,
346
- ultramodernWorkspaceEventNames.performanceSignal,
347
- payload,
348
- );
349
-
350
- export const onUltramodernNavigate = (
351
- target: EventTarget,
352
- handler: (
353
- payload: UltramodernNavigatePayload,
354
- event: CustomEvent<UltramodernNavigatePayload>,
355
- ) => void,
356
- ) =>
357
- onUltramodernWorkspaceEvent(
358
- target,
359
- ultramodernWorkspaceEventNames.navigate,
360
- handler,
361
- );
362
-
363
- export const onUltramodernRouteSettled = (
364
- target: EventTarget,
365
- handler: (
366
- payload: UltramodernRouteSettledPayload,
367
- event: CustomEvent<UltramodernRouteSettledPayload>,
368
- ) => void,
369
- ) =>
370
- onUltramodernWorkspaceEvent(
371
- target,
372
- ultramodernWorkspaceEventNames.routeSettled,
373
- handler,
374
- );
375
-
376
- export const onUltramodernRemoteReady = (
377
- target: EventTarget,
378
- handler: (
379
- payload: UltramodernRemoteReadyPayload,
380
- event: CustomEvent<UltramodernRemoteReadyPayload>,
381
- ) => void,
382
- ) =>
383
- onUltramodernWorkspaceEvent(
384
- target,
385
- ultramodernWorkspaceEventNames.remoteReady,
386
- handler,
387
- );
388
-
389
- export const onUltramodernPerformanceSignal = (
390
- target: EventTarget,
391
- handler: (
392
- payload: UltramodernPerformanceSignalPayload,
393
- event: CustomEvent<UltramodernPerformanceSignalPayload>,
394
- ) => void,
395
- ) =>
396
- onUltramodernWorkspaceEvent(
397
- target,
398
- ultramodernWorkspaceEventNames.performanceSignal,
399
- handler,
400
- );
@@ -39,4 +39,14 @@
39
39
  singleton: true,
40
40
  treeShaking: false,
41
41
  },
42
+ 'react/jsx-dev-runtime': {
43
+ requiredVersion: reactVersion,
44
+ singleton: true,
45
+ treeShaking: false,
46
+ },
47
+ 'react/jsx-runtime': {
48
+ requiredVersion: reactVersion,
49
+ singleton: true,
50
+ treeShaking: false,
51
+ },
42
52
  }
@@ -1,22 +1,20 @@
1
+ import developmentOverlay from '{{value29}}/topology/local-overlays/development.json';
2
+ import { defineConfig } from '@modern-js/app-tools';
1
3
  import {
2
- appTools,
3
- defineConfig,
4
4
  presetUltramodern,
5
- ultramodernReleaseEnvelopePlugin,
6
- } from '@modern-js/app-tools';
7
- import {
8
- getBuildConfigEnvironment,
9
- withBuildConfigEnvironment,
10
- } from '@modern-js/app-tools/config';
5
+ ultramodernAppTools,
6
+ } from '@modern-js/ultramodern-app-tools';
11
7
  {{value0}}import { i18nPlugin } from '@modern-js/plugin-i18n';
12
8
  import { tanstackRouterPlugin } from '@modern-js/plugin-tanstack';
13
9
  {{value22}}
14
- const cloudflareDeployEnabled =
15
- getBuildConfigEnvironment('MODERNJS_DEPLOY') === 'cloudflare';
10
+ const cloudflareDeployEnabled = resolveDeployTarget().target === 'cloudflare';
16
11
 
17
12
  {{value23}}const appId = '{{value1}}';
18
13
  const cloudflareWorkerName = '{{value2}}';
19
- const port = Number(getBuildConfigEnvironment('{{value3}}') ?? {{value4}});
14
+ const port = Number(getBuildConfigEnvironment('{{value3}}') ?? developmentOverlay.ports[appId]);
15
+ if (!Number.isInteger(port) || port < 1 || port > 65_535) {
16
+ throw new Error(`Invalid development port for ${appId}: ${port}`);
17
+ }
20
18
  const envValue = (name: string) => {
21
19
  const value = getBuildConfigEnvironment(name)?.trim();
22
20
  return value !== undefined && value.length > 0 ? value : undefined;
@@ -51,18 +49,6 @@ const buildOutputRoot = cloudflareDeployEnabled ? 'dist-cloudflare' : 'dist';
51
49
  const buildTempDirectory = `node_modules/.modern-js-${appId}-${buildTarget}`;
52
50
  const buildCacheDirectory = `node_modules/.cache/rspack-${appId}-${buildTarget}`;
53
51
 
54
- if (
55
- cloudflareDeployEnabled &&
56
- getBuildConfigEnvironment('ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS') === 'true' &&
57
- configuredCloudflareUrl === undefined &&
58
- configuredSiteUrl === undefined &&
59
- inferredCloudflareUrl === undefined
60
- ) {
61
- throw new Error(
62
- `Cloudflare deploy for ${appId} needs {{value8}}, MODERN_PUBLIC_SITE_URL, or ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN.`,
63
- );
64
- }
65
-
66
52
  export default defineConfig(
67
53
  presetUltramodern(
68
54
  {
@@ -79,7 +65,8 @@ export default defineConfig(
79
65
  }
80
66
  : {}),
81
67
  dev: {
82
- {{value13}}{{value20}}
68
+ {{value13}}
69
+ {{value20}}
83
70
  },
84
71
  html: {
85
72
  outputStructure: 'flat',
@@ -106,8 +93,7 @@ export default defineConfig(
106
93
  },
107
94
  },
108
95
  plugins: [
109
- appTools(),
110
- ultramodernReleaseEnvelopePlugin(),
96
+ ultramodernAppTools(),
111
97
  tanstackRouterPlugin(),
112
98
  i18nPlugin({
113
99
  backend: {
@@ -143,7 +129,7 @@ export default defineConfig(
143
129
  },
144
130
  source: {
145
131
  alias: {
146
- '@modern-js/plugin-i18n/runtime':
132
+ '@modern-js/plugin-i18n/runtime$':
147
133
  '@modern-js/plugin-i18n/runtime/no-react-i18next',
148
134
  },
149
135
  globalVars: {
@@ -1,15 +1,25 @@
1
- // @generated by @modern-js/ultramodern-create.
2
- // Author route metadata in colocated src/routes/**/route.meta.ts files.
3
- // This compatibility manifest is regenerated from route-owned metadata.
4
-
5
- export const ultramodernRouteNamespace = '{{value0}}' as const;
6
-
7
- export const ultramodernRouteMetadata = {{value1}} as const;
8
-
9
- export const ultramodernLocalisedUrls = {{value2}} as const;
10
-
11
- export const ultramodernPublicRoutes = {{value3}} as const;
1
+ // @generated by @modern-js/plugin-tanstack from route.meta.ts files. Run routes-generate; do not edit.
2
+ import { routeMeta as route0 } from './[lang]/route.meta';
12
3
 
4
+ export const ultramodernRouteNamespace = route0.namespace;
5
+ export const ultramodernRouteMetadata = [route0] as const;
6
+ export const ultramodernLocalisedUrls = Object.fromEntries(
7
+ ultramodernRouteMetadata
8
+ .filter((route: { canonicalPath: string }) => route.canonicalPath !== '/')
9
+ .map((route) => [route.canonicalPath, route.localisedPaths]),
10
+ );
11
+ export const ultramodernPublicRoutes = ultramodernRouteMetadata
12
+ .filter((route) => route.public && route.indexable)
13
+ .map((route) => ({
14
+ canonicalPath: route.canonicalPath,
15
+ descriptionKey: route.descriptionKey,
16
+ id: route.id,
17
+ localisedPaths: route.localisedPaths,
18
+ namespace: route.namespace,
19
+ ownerAppId: route.ownerAppId,
20
+ titleKey: route.titleKey,
21
+ ...('jsonLd' in route ? { jsonLd: route.jsonLd } : {}),
22
+ }));
13
23
  export const ultramodernRouteConfig = {
14
24
  authoring: 'colocated-route-meta',
15
25
  generatedManifest: true,
@@ -10,38 +10,38 @@ export default function ShellHome() {
10
10
  return (
11
11
  <ShellFrame>
12
12
  <UltramodernRouteHead />
13
- <section className="{{value0}}">
14
- <div className="{{value1}}">
15
- <p className="{{value2}}">{t('shell.hero.eyebrow')}</p>
16
- <h1 className="{{value3}}">{t('shell.title')}</h1>
17
- <p className="{{value4}}">{t('shell.hero.lede')}</p>
18
- <div className="{{value5}}">
19
- <Link className="{{value6}}" to="/">
13
+ <section className="{{heroClassName}}">
14
+ <div className="{{heroContentClassName}}">
15
+ <p className="{{eyebrowClassName}}">{t('shell.hero.eyebrow')}</p>
16
+ <h1 className="{{titleClassName}}">{t('shell.title')}</h1>
17
+ <p className="{{ledeClassName}}">{t('shell.hero.lede')}</p>
18
+ <div className="{{actionsClassName}}">
19
+ <Link className="{{primaryActionClassName}}" to="/">
20
20
  {t('shell.hero.primary')}
21
21
  </Link>
22
- <span className="{{value7}}">
22
+ <span className="{{secondaryActionClassName}}">
23
23
  {t('shell.hero.secondary')}
24
24
  </span>
25
25
  </div>
26
26
  </div>
27
- <div className="{{value8}}">
28
- <div className="{{value9}}">
29
- <article className="{{value10}}">
30
- <span className="{{value11}}">{t('shell.hero.cardOneKicker')}</span>
31
- <strong className="{{value12}}">{{value13}}</strong>
32
- <p className="{{value14}}">{t('shell.hero.cardOne')}</p>
27
+ <div className="{{cardsClassName}}">
28
+ <div className="{{cardsGridClassName}}">
29
+ <article className="{{remoteCardClassName}}">
30
+ <span className="{{remoteCardKickerClassName}}">{t('shell.hero.cardOneKicker')}</span>
31
+ <strong className="{{cardValueClassName}}">{{remoteCount}}</strong>
32
+ <p className="{{cardBodyClassName}}">{t('shell.hero.cardOne')}</p>
33
33
  </article>
34
- <article className="{{value15}}">
35
- <span className="{{value16}}">{t('shell.hero.cardTwoKicker')}</span>
36
- <strong className="{{value17}}">SSR</strong>
37
- <p className="{{value18}}">{t('shell.hero.cardTwo')}</p>
34
+ <article className="{{ssrCardClassName}}">
35
+ <span className="{{ssrCardKickerClassName}}">{t('shell.hero.cardTwoKicker')}</span>
36
+ <strong className="{{cardValueClassName}}">SSR</strong>
37
+ <p className="{{cardBodyClassName}}">{t('shell.hero.cardTwo')}</p>
38
38
  </article>
39
39
  </div>
40
40
  </div>
41
41
  </section>
42
42
  <VerticalShowcase />
43
- <p className="{{value19}}" data-testid="ultramodern-preset">presetUltramodern workspace</p>
44
- <p className="{{value20}}" data-build-marker={ultramodernUiMarker.build} data-testid="ultramodern-ui-marker">
43
+ <p className="{{hiddenClassName}}" data-testid="ultramodern-preset">presetUltramodern workspace</p>
44
+ <p className="{{hiddenClassName}}" data-build-marker={ultramodernUiMarker.build} data-testid="ultramodern-ui-marker">
45
45
  {ultramodernUiMarker.appId}:{ultramodernUiMarker.version}
46
46
  </p>
47
47
  </ShellFrame>
@@ -1,10 +1,10 @@
1
1
  interface RemoteComponentModule {
2
- default: ComponentType;
2
+ default: FunctionComponent;
3
3
  }
4
4
 
5
5
  const RemoteUnavailable = () => {
6
6
  const { t } = useModernI18n();
7
- return <div className="{{value1}}">{t('shell.remoteUnavailable')}</div>;
7
+ return <div className="{{unavailableClassName}}">{t('shell.remoteUnavailable')}</div>;
8
8
  };
9
9
 
10
10
  const createRemoteComponent = (
@@ -13,13 +13,11 @@ const createRemoteComponent = (
13
13
  loader: () => Promise<RemoteComponentModule>,
14
14
  ) =>
15
15
  createDistributedSsrComponent({
16
- createComponent: () =>
16
+ createComponent: options =>
17
17
  createLazyComponent({
18
- export: 'default',
19
- fallback: <RemoteUnavailable />,
18
+ ...options,
20
19
  instance: getInstance(),
21
20
  loader,
22
- loading: null,
23
21
  }),
24
22
  expose,
25
23
  fallback: <RemoteUnavailable />,
@@ -1,4 +1,4 @@
1
1
  import { createLazyComponent } from '@module-federation/modern-js-v3/react';
2
2
  import { getInstance } from '@module-federation/modern-js-v3/runtime';
3
- import { createDistributedSsrComponent } from '@modern-js/runtime/module-federation';
4
- import type { ComponentType } from 'react';
3
+ import { createDistributedSsrComponent } from '@modern-js/federation-runtime';
4
+ import type { FunctionComponent } from 'react';
@@ -1,16 +1,16 @@
1
- {{value0}}import { Link, useModernI18n } from '@modern-js/plugin-i18n/runtime';
1
+ {{federationImports}}import { Link, useModernI18n } from '@modern-js/plugin-i18n/runtime';
2
2
 
3
- const widgetCount = Number('{{value1}}');
3
+ const widgetCount = Number('{{widgetCount}}');
4
4
 
5
- {{value2}}
6
- {{value3}}
5
+ {{federationHelpers}}
6
+ {{remoteComponentExports}}
7
7
 
8
8
  export const Header = () => {
9
9
  const { t } = useModernI18n();
10
10
 
11
11
  return (
12
- <header className="{{value4}}" data-modern-boundary-id="{{value5}}" data-modern-mf-expose="shell/Header">
13
- <Link className="{{value6}}" to="/">{t('shell.title')}</Link>
12
+ <header className="{{headerClassName}}" data-modern-boundary-id="{{boundaryId}}" data-modern-mf-expose="shell/Header">
13
+ <Link className="{{titleClassName}}" to="/">{t('shell.title')}</Link>
14
14
  </header>
15
15
  );
16
16
  };
@@ -19,7 +19,7 @@ export const StatusBadge = () => {
19
19
  const { t } = useModernI18n();
20
20
 
21
21
  return (
22
- <span className="{{value7}}">
22
+ <span className="{{statusBadgeClassName}}">
23
23
  {widgetCount} {t('shell.hero.cardOneKicker')}
24
24
  </span>
25
25
  );
@@ -30,15 +30,15 @@ export const VerticalShowcase = () => {
30
30
 
31
31
  if (widgetCount === 0) {
32
32
  return (
33
- <section className="{{value8}}">
34
- <p className="{{value9}}">{t('shell.hero.empty')}</p>
33
+ <section className="{{emptyShowcaseClassName}}">
34
+ <p className="{{emptyMessageClassName}}">{t('shell.hero.empty')}</p>
35
35
  </section>
36
36
  );
37
37
  }
38
38
 
39
39
  return (
40
- <section className="{{value10}}" data-modern-boundary-id="{{value11}}">
41
- {{value12}}
40
+ <section className="{{showcaseClassName}}" data-modern-boundary-id="{{boundaryId}}">
41
+ {{showcaseGrid}}
42
42
  </section>
43
43
  );
44
44
  };
@@ -1,6 +1,6 @@
1
1
  const RemoteUnavailable = () => {
2
2
  const { t } = useModernI18n();
3
- return <div className="{{value1}}">{t('shell.remoteUnavailable')}</div>;
3
+ return <div className="{{unavailableClassName}}">{t('shell.remoteUnavailable')}</div>;
4
4
  };
5
5
 
6
6
  const createRemoteComponent = (remote: string, expose: string) =>
@@ -1 +1 @@
1
- import { DistributedSsrBoundary } from '@modern-js/runtime/module-federation';
1
+ import { DistributedSsrBoundary } from '@modern-js/federation-runtime';