@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,28 +1,28 @@
1
1
  import "node:module";
2
2
  import node_fs from "node:fs";
3
- import { RELEASE_COHORT_PROJECTION_PATH, copyCreateReleaseCohort, isCreatePackageSourceCheckout, readCreateReleaseCohort } from "../ultramodern-release-cohort.js";
3
+ import { ULTRAMODERN_WORKSPACE_MODERN_PACKAGES, modernPackageSpecifier } from "../ultramodern-package-source.js";
4
+ import { hasCreateReleaseCohort, isCreatePackageSourceCheckout, readCreateReleaseCohort, releaseCohortSelectors } from "../ultramodern-release-cohort.js";
4
5
  import { runFreshWorkspaceTransaction } from "./add-vertical/transaction.js";
5
6
  import { createSharedDesignTokensCss } from "./app-files.js";
6
7
  import { normalizeUltramodernBridgeConfig } from "./bridge-config.js";
7
- import { createDevelopmentOverlay, createOwnership, createTopology, createUltramodernConfig } from "./contracts.js";
8
- import { ULTRAMODERN_CONFIG_PATH, createShellHost, sharedPackages, shellApp } from "./descriptors.js";
8
+ import { createDevelopmentOverlay, createOwnership, createTopology } from "./contracts.js";
9
+ import { createShellHost, sharedPackages, shellApp } from "./descriptors.js";
9
10
  import { copyRootTemplate, formatGeneratedWorkspaceFiles, writeFile, writeFileReplacing, writeJson } from "./fs-io.js";
10
11
  import { createFileSnapshot, createGenerationResult, diffFileSnapshots } from "./generation-result.js";
11
12
  import { assertUniqueTailwindPrefixes, toPackageScope } from "./naming.js";
12
13
  import { runCodeSmithOverlays } from "./overlays.js";
13
14
  import { createRootPackageJson, createRootTsConfig, createSharedContractsIndex, createSharedPackage, createSharedPackageTsConfig, createTsConfigBase } from "./package-json.js";
14
15
  import { resolvePackageSource, resolveWorkspacePackageLinkingPolicy } from "./package-source.js";
15
- import { renderMinimumReleaseAgeExclude } from "./policy.js";
16
- import { DRIZZLE_ORM_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, I18NEXT_VERSION, MODULE_FEDERATION_VERSION, MSGPACKR_VERSION, NODE_FETCH_VERSION, NODE_VERSION, PNPM_VERSION, TANSTACK_HISTORY_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_VERSION, WRANGLER_VERSION, ZOD_VERSION } from "./versions.js";
16
+ import { EFFECT_VERSION, I18NEXT_VERSION, NODE_VERSION, PNPM_VERSION } from "./versions.js";
17
17
  import { writeGeneratedWorkspaceScripts } from "./workspace-scripts.js";
18
18
  import { writeApp } from "./write-app.js";
19
19
  import { createZeropsYaml } from "./zerops.js";
20
20
  function hasExplicitInstallRequest(options) {
21
21
  return void 0 !== options.packageSource && 'workspace' !== options.packageSource.strategy;
22
22
  }
23
- function writeSharedPackages(targetDir, scope) {
23
+ function writeSharedPackages(targetDir, scope, packageSource) {
24
24
  for (const sharedPackage of sharedPackages){
25
- writeJson(targetDir, `${sharedPackage.directory}/package.json`, createSharedPackage(scope, sharedPackage.id, sharedPackage.description));
25
+ writeJson(targetDir, `${sharedPackage.directory}/package.json`, createSharedPackage(scope, sharedPackage.id, sharedPackage.description, packageSource));
26
26
  writeJson(targetDir, `${sharedPackage.directory}/tsconfig.json`, createSharedPackageTsConfig(sharedPackage.directory));
27
27
  }
28
28
  writeFile(targetDir, 'packages/shared-contracts/src/index.ts', createSharedContractsIndex());
@@ -36,30 +36,25 @@ function writeSharedPackages(targetDir, scope) {
36
36
  `);
37
37
  writeFile(targetDir, 'packages/shared-design-tokens/src/tokens.css', createSharedDesignTokensCss());
38
38
  }
39
- function createCompactRootPackageJson(scope, packageSource, remotes, bridge) {
40
- const rootPackage = createRootPackageJson(scope, packageSource, remotes, bridge);
41
- if (rootPackage.modernjs?.packageSource && 'object' == typeof rootPackage.modernjs.packageSource) rootPackage.modernjs.packageSource.config = `./${ULTRAMODERN_CONFIG_PATH}`;
42
- return rootPackage;
39
+ function renderCatalogPolicy(packageSource) {
40
+ if ('install' !== packageSource.strategy) return '';
41
+ const catalog = ULTRAMODERN_WORKSPACE_MODERN_PACKAGES.map((name)=>` ${JSON.stringify(name)}: ${JSON.stringify(modernPackageSpecifier(name, packageSource))}`).join('\n');
42
+ const cohort = hasCreateReleaseCohort() ? readCreateReleaseCohort() : void 0;
43
+ const pinsShippedCohort = cohort?.packages.every((item)=>modernPackageSpecifier(item.sourceName, packageSource) === `npm:${item.targetName}@${item.version}`);
44
+ const exclude = cohort && pinsShippedCohort ? `minimumReleaseAgeExclude:\n${releaseCohortSelectors(cohort).map((selector)=>` - ${JSON.stringify(selector)}`).join('\n')}\n\n` : '';
45
+ return `catalogs:\n ultramodern:\n${catalog}\n\n${exclude}`;
43
46
  }
44
- function createCompactUltramodernConfig(scope, modernVersion, packageSource, apps = [
45
- createShellHost()
46
- ], enableTailwind = true, bridge, additionalShells = [], primaryShell) {
47
- const config = createUltramodernConfig(scope, modernVersion, packageSource, apps, enableTailwind, bridge, additionalShells, primaryShell);
48
- if (config.packageSource && 'object' == typeof config.packageSource && !Array.isArray(config.packageSource)) delete config.packageSource.metadata;
49
- return config;
50
- }
51
- function writePnpmWorkspacePackages(targetDir, bridge) {
52
- if (!bridge) return;
47
+ function writePnpmWorkspacePackages(targetDir, bridge, packageSource) {
53
48
  const pnpmWorkspacePath = `${targetDir}/pnpm-workspace.yaml`;
54
49
  const pnpmWorkspace = node_fs.readFileSync(pnpmWorkspacePath, 'utf-8');
55
50
  const packages = [
56
51
  'apps/*',
57
52
  'verticals/*',
58
53
  'packages/*',
59
- ...bridge.workspacePackages.map((entry)=>entry.pattern)
54
+ ...bridge?.workspacePackages.map((entry)=>entry.pattern) ?? []
60
55
  ];
61
56
  const renderedPackages = packages.map((pattern)=>` - ${pattern}`).join('\n');
62
- writeFileReplacing(targetDir, 'pnpm-workspace.yaml', pnpmWorkspace.replace(/^packages:\r?\n(?: {2}- .+\r?\n)+/u, `packages:\n${renderedPackages}\n`));
57
+ writeFileReplacing(targetDir, 'pnpm-workspace.yaml', `${renderCatalogPolicy(packageSource)}${pnpmWorkspace.replace(/^packages:\r?\n(?: {2}- .+\r?\n)+/u, `packages:\n${renderedPackages}\n`)}`);
63
58
  }
64
59
  function generateUltramodernWorkspace(options) {
65
60
  const result = runFreshWorkspaceTransaction(options.targetDir, (stagingRoot)=>generateUltramodernWorkspaceInPlace({
@@ -72,19 +67,15 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
72
67
  const beforeFiles = createFileSnapshot(options.targetDir);
73
68
  const scope = toPackageScope(options.packageName);
74
69
  let packageSource;
75
- let releaseCohort;
76
70
  if (isCreatePackageSourceCheckout()) {
77
- if (hasExplicitInstallRequest(options)) throw new Error('A local @modern-js/ultramodern-create source checkout cannot satisfy an explicit install package source. Use workspace mode locally or run the packed published package with its authenticated release cohort projection.');
71
+ if (hasExplicitInstallRequest(options)) throw new Error('A local @modern-js/ultramodern-create source checkout cannot satisfy an explicit install package source. Use workspace mode locally or run the packed published package.');
78
72
  packageSource = resolvePackageSource({
79
73
  ...options,
80
74
  packageSource: {
81
75
  strategy: 'workspace'
82
76
  }
83
77
  });
84
- } else {
85
- packageSource = resolvePackageSource(options);
86
- if ('install' === packageSource.strategy) releaseCohort = readCreateReleaseCohort();
87
- }
78
+ } else packageSource = resolvePackageSource(options);
88
79
  const bridge = normalizeUltramodernBridgeConfig(options.bridge);
89
80
  const enableTailwind = false !== options.enableTailwind;
90
81
  const initialVerticals = [];
@@ -99,13 +90,9 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
99
90
  node_fs.mkdirSync(options.targetDir, {
100
91
  recursive: true
101
92
  });
102
- const minimumReleaseAgeExclude = renderMinimumReleaseAgeExclude({
103
- packageSource,
104
- releaseCohort
105
- });
106
93
  const workspacePackageLinkingPolicy = resolveWorkspacePackageLinkingPolicy(packageSource);
107
94
  const excludedRootTemplates = new Set([
108
- RELEASE_COHORT_PROJECTION_PATH
95
+ "scripts/setup-agent-reference-repos.mjs"
109
96
  ]);
110
97
  if (false === options.generateAgentFiles) {
111
98
  excludedRootTemplates.add('AGENTS.md.handlebars');
@@ -116,37 +103,23 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
116
103
  packageScope: scope,
117
104
  nodeVersion: NODE_VERSION,
118
105
  pnpmVersion: PNPM_VERSION,
119
- nodeFetchVersion: NODE_FETCH_VERSION,
120
- drizzleOrmVersion: DRIZZLE_ORM_VERSION,
121
106
  effectVersion: EFFECT_VERSION,
122
- effectVitestVersion: EFFECT_VITEST_VERSION,
123
107
  i18nextVersion: I18NEXT_VERSION,
124
- moduleFederationVersion: MODULE_FEDERATION_VERSION,
125
- msgpackrVersion: MSGPACKR_VERSION,
126
- zodVersion: ZOD_VERSION,
127
- tanstackHistoryVersion: TANSTACK_HISTORY_VERSION,
128
- tanstackRouterCoreVersion: TANSTACK_ROUTER_CORE_VERSION,
129
- tanstackRouterVersion: TANSTACK_ROUTER_VERSION,
130
- typescriptVersion: TYPESCRIPT_VERSION,
131
- wranglerVersion: WRANGLER_VERSION,
132
- minimumReleaseAgeExcludeYaml: 0 === minimumReleaseAgeExclude.length ? ' []' : `\n${minimumReleaseAgeExclude.map((selector)=>` - '${selector}'`).join('\n')}`,
133
108
  workspacePackageLinkingYaml: Object.entries(workspacePackageLinkingPolicy).map(([key, value])=>`${key}: ${String(value)}\n`).join(''),
134
109
  tailwindEnabled: String(enableTailwind)
135
110
  }, excludedRootTemplates);
136
- if (releaseCohort) copyCreateReleaseCohort(options.targetDir);
137
- writePnpmWorkspacePackages(options.targetDir, bridge);
138
- writeJson(options.targetDir, 'package.json', createCompactRootPackageJson(scope, packageSource, initialVerticals, bridge));
111
+ writePnpmWorkspacePackages(options.targetDir, bridge, packageSource);
112
+ writeJson(options.targetDir, 'package.json', createRootPackageJson(scope, packageSource, initialVerticals, bridge));
139
113
  if (initialVerticals.length > 0) writeFile(options.targetDir, 'zerops.yaml', `${createZeropsYaml(scope, createdApps)}\n`);
140
114
  writeJson(options.targetDir, 'tsconfig.base.json', createTsConfigBase());
141
115
  writeJson(options.targetDir, 'tsconfig.json', createRootTsConfig(createdApps));
142
116
  writeJson(options.targetDir, 'topology/reference-topology.json', createTopology(scope, initialVerticals));
143
117
  writeJson(options.targetDir, 'topology/ownership.json', createOwnership(scope, initialVerticals));
144
118
  writeJson(options.targetDir, 'topology/local-overlays/development.json', createDevelopmentOverlay(scope, initialVerticals));
145
- writeJson(options.targetDir, ULTRAMODERN_CONFIG_PATH, createCompactUltramodernConfig(scope, options.modernVersion, packageSource, createdApps, enableTailwind, bridge));
146
119
  writeApp(options.targetDir, scope, shellApp, packageSource, enableTailwind, initialVerticals, bridge);
147
120
  for (const remote of initialVerticals)writeApp(options.targetDir, scope, remote, packageSource, enableTailwind, initialVerticals, bridge);
148
- writeSharedPackages(options.targetDir, scope);
149
- writeGeneratedWorkspaceScripts(options.targetDir, scope, enableTailwind, initialVerticals, releaseCohort);
121
+ writeSharedPackages(options.targetDir, scope, packageSource);
122
+ writeGeneratedWorkspaceScripts(options.targetDir);
150
123
  const preliminaryAfterFiles = createFileSnapshot(options.targetDir);
151
124
  const preliminaryDiff = diffFileSnapshots(beforeFiles, preliminaryAfterFiles);
152
125
  const preliminaryResult = createGenerationResult({
@@ -176,4 +149,4 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
176
149
  rewrittenPaths
177
150
  });
178
151
  }
179
- export { createCompactUltramodernConfig, generateUltramodernWorkspace, writeApp };
152
+ export { generateUltramodernWorkspace, writeApp };
@@ -32,6 +32,8 @@ function createZeropsService(scope, app) {
32
32
  ` - setup: ${quoteYamlString(app.id)}`,
33
33
  ' build:',
34
34
  ` base: ${quoteYamlString(zeropsNodeRuntime)}`,
35
+ ' envVariables:',
36
+ ` ZE_FAIL_BUILD: ${quoteYamlString('true')}`,
35
37
  ' buildCommands:',
36
38
  ' - |',
37
39
  ...commands.map((command)=>` ${command}`),
@@ -4,5 +4,5 @@ export declare function runSetupCommand(command: string, args: string[], options
4
4
  timeoutMs?: number;
5
5
  }): string;
6
6
  export declare function commandExists(command: string): boolean;
7
- export declare function initializeGeneratedGitRepository(targetDir: string): void;
7
+ export declare function initializeGeneratedGitRepository(targetDir: string): boolean;
8
8
  export declare function isDirectoryEmpty(dirPath: string): boolean;
@@ -18,6 +18,7 @@ export declare const EN_LOCALE: {
18
18
  step1: string;
19
19
  step2: string;
20
20
  step3: string;
21
+ initialCommit: string;
21
22
  };
22
23
  agentsCmd: {
23
24
  created: string;
@@ -20,6 +20,7 @@ declare const localeKeys: {
20
20
  step1: string;
21
21
  step2: string;
22
22
  step3: string;
23
+ initialCommit: string;
23
24
  };
24
25
  agentsCmd: {
25
26
  created: string;
@@ -106,6 +107,7 @@ declare const localeKeys: {
106
107
  step1: string;
107
108
  step2: string;
108
109
  step3: string;
110
+ initialCommit: string;
109
111
  };
110
112
  agentsCmd: {
111
113
  created: string;
@@ -18,6 +18,7 @@ export declare const ZH_LOCALE: {
18
18
  step1: string;
19
19
  step2: string;
20
20
  step3: string;
21
+ initialCommit: string;
21
22
  };
22
23
  agentsCmd: {
23
24
  created: string;
@@ -1,13 +1,11 @@
1
1
  export declare const WORKSPACE_PACKAGE_VERSION = "workspace:*";
2
2
  export declare const ULTRAMODERN_CREATE_PACKAGE = "@modern-js/ultramodern-create";
3
3
  export declare const BLEEDINGDEV_CREATE_PACKAGE = "@bleedingdev/modern-js-ultramodern-create";
4
- export declare const LEGACY_BLEEDINGDEV_CREATE_PACKAGE = "@bleedingdev/modern-js-create";
5
4
  export declare const BLEEDINGDEV_PACKAGE_SCOPE = "bleedingdev";
6
5
  export declare const BLEEDINGDEV_PACKAGE_NAME_PREFIX = "modern-js-";
7
6
  export declare const ULTRAMODERN_FRAMEWORK_VERSION_ENV = "ULTRAMODERN_CREATE_FRAMEWORK_VERSION";
8
- export declare const BLEEDINGDEV_FRAMEWORK_VERSION_ENV = "MODERN_CREATE_ULTRAMODERN_FRAMEWORK_VERSION";
9
- export declare const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES: readonly ["@modern-js/ultramodern-create", '@modern-js/code-tools', '@modern-js/runtime', '@modern-js/app-tools', '@modern-js/tsconfig', '@modern-js/plugin-i18n', '@modern-js/plugin-tanstack', '@modern-js/plugin-bff', '@modern-js/adapter-rstest'];
10
- export declare const ULTRAMODERN_WORKSPACE_MODERN_PACKAGES: readonly ["@modern-js/ultramodern-create", '@modern-js/code-tools', '@modern-js/app-tools', '@modern-js/plugin-bff', '@modern-js/plugin-i18n', '@modern-js/plugin-tanstack', '@modern-js/runtime'];
7
+ export declare const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES: readonly ["@modern-js/ultramodern-create", '@modern-js/code-tools', '@modern-js/runtime', '@modern-js/app-tools', '@modern-js/tsconfig', '@modern-js/plugin-i18n', '@modern-js/plugin-tanstack', '@modern-js/plugin-bff', '@modern-js/plugin-bff-build-extensions', '@modern-js/plugin-bff-extensions', '@modern-js/adapter-rstest'];
8
+ export declare const ULTRAMODERN_WORKSPACE_MODERN_PACKAGES: readonly ['@modern-js/bff-effect', '@modern-js/boundary-debugger', "@modern-js/ultramodern-create", '@modern-js/code-tools', '@modern-js/app-tools', '@modern-js/plugin-bff', '@modern-js/plugin-bff-build-extensions', '@modern-js/plugin-bff-extensions', '@modern-js/plugin-i18n', '@modern-js/i18n-integration', '@modern-js/plugin-tanstack', '@modern-js/runtime', '@modern-js/runtime-extensions', '@modern-js/runtime-renderer-extensions', '@modern-js/federation-runtime', '@modern-js/app-tools-extensions', '@modern-js/ultramodern-app-tools'];
11
9
  export type UltramodernPackageSourceStrategy = 'workspace' | 'install';
12
10
  export type ResolvedUltramodernPackageSource = {
13
11
  strategy: UltramodernPackageSourceStrategy;
@@ -1,5 +1,5 @@
1
1
  import type { ResolvedUltramodernPackageSource } from './ultramodern-package-source.js';
2
- export declare const RELEASE_COHORT_PROJECTION_PATH = ".modernjs/release-cohort.json";
2
+ export declare const RELEASE_COHORT_PATH = "release-cohort.json";
3
3
  type ReleaseCohortPackage = {
4
4
  sourceName: string;
5
5
  targetName: string;
@@ -23,8 +23,6 @@ export declare function parseUltramodernReleaseCohort(value: unknown): Ultramode
23
23
  export declare function readCreateReleaseCohort(): UltramodernReleaseCohort;
24
24
  export declare function hasCreateReleaseCohort(): boolean;
25
25
  export declare function isCreatePackageSourceCheckout(): boolean;
26
- export declare function readWorkspaceReleaseCohort(workspaceRoot: string): UltramodernReleaseCohort;
27
- export declare function copyCreateReleaseCohort(workspaceRoot: string): UltramodernReleaseCohort;
28
26
  export declare function assertReleaseCohortPackageSource(cohort: UltramodernReleaseCohort, packageSource: ResolvedUltramodernPackageSource): UltramodernReleaseCohort | undefined;
29
27
  export declare function releaseCohortSelectors(cohort: UltramodernReleaseCohort): string[];
30
28
  export {};
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context.js';
2
- export declare function runCloudflareOutputVerify(args: string[], context: CommandContext): number;
1
+ import type { CommandContext } from './context.js';
2
+ export declare function runCloudflareOutputVerify(args: string[], context: CommandContext): Promise<0 | 1>;
@@ -3,9 +3,12 @@ export type CommandContext = {
3
3
  workspaceRoot: string;
4
4
  invocationCwd: string;
5
5
  };
6
+ export declare const AD_HOC_TOOLING_COMMANDS: {
7
+ readonly syncDeliveryUnit: 'sync-delivery-unit';
8
+ readonly skills: 'skills';
9
+ };
6
10
  export declare function printHelp(): void;
7
11
  export declare function spawnNodeScript(relativeScriptPath: string, args: string[], context: CommandContext, options?: {
8
12
  cwd?: string;
9
13
  }): number;
10
14
  export declare function runTemplateBackedToolingCommand(command: string, args: string[], context: CommandContext): number | undefined;
11
- export declare function runRenderedModule(source: string, context: CommandContext): number;
@@ -1,2 +1,2 @@
1
1
  import { type CommandContext } from './context.js';
2
- export declare function runRoutesGenerate(args: string[], context: CommandContext): number;
2
+ export declare function runRoutesGenerate(args: string[], context: CommandContext): 0 | 1;
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context.js';
1
+ import type { CommandContext } from './context.js';
2
2
  export declare function runValidate(context: CommandContext): number;
@@ -1,7 +1,5 @@
1
- export * from './constants.js';
2
1
  export * from './json.js';
3
2
  export * from './load.js';
4
3
  export * from './metadata.js';
5
4
  export * from './normalize.js';
6
- export * from './synthesize.js';
7
5
  export * from './types.js';
@@ -1,2 +1,10 @@
1
- import type { UltramodernToolingConfig } from './types.js';
2
- export declare function readUltramodernConfig(workspaceRoot?: string): UltramodernToolingConfig;
1
+ import { type UltramodernWorkspaceInputs } from './normalize.js';
2
+ export declare function readUltramodernConfig(workspaceRoot?: string): import("./types.js").UltramodernToolingConfig;
3
+ export declare function readUltramodernWorkspaceInputs(workspaceRoot?: string, inputs?: Partial<UltramodernWorkspaceInputs>): {
4
+ raw: UltramodernWorkspaceInputs;
5
+ config: import("./types.js").UltramodernToolingConfig;
6
+ apps: import("../../ultramodern-workspace/types.js").WorkspaceApp[];
7
+ primaryShell: import("../../ultramodern-workspace/types.js").WorkspaceApp;
8
+ verticals: import("../../ultramodern-workspace/types.js").WorkspaceApp[];
9
+ additionalShells: import("../../ultramodern-workspace/types.js").WorkspaceApp[];
10
+ };
@@ -1,4 +1,4 @@
1
1
  import type { ResolvedPackageSource } from '../../ultramodern-workspace/types.js';
2
2
  export declare function packageScopeFromRoot(workspaceRoot: string): string;
3
- export declare function packageSourceFromMetadata(workspaceRoot: string): ResolvedPackageSource | undefined;
4
- export declare function readOverlayPorts(workspaceRoot: string): Record<string, number>;
3
+ /** Native dependency requests own the source; no application config is loaded. */
4
+ export declare function readWorkspacePackageSource(workspaceRoot: string): ResolvedPackageSource;
@@ -1,22 +1,22 @@
1
1
  import type { WorkspaceApp } from '../../ultramodern-workspace/types.js';
2
2
  import type { UltramodernToolingConfig } from './types.js';
3
- type UnsupportedUltramodernConfigIssue = {
4
- field: 'schemaVersion';
5
- value: unknown;
6
- reason: 'missing' | 'non-integer' | 'unsupported';
7
- } | {
8
- field: 'topology.apps.kind';
9
- index: number;
10
- value: unknown;
3
+ export type UltramodernWorkspaceInputs = {
4
+ topology: Record<string, any>;
5
+ overlay: Record<string, any>;
11
6
  };
12
- export declare class UnsupportedUltramodernConfigError extends Error {
13
- readonly sourcePath: string;
14
- readonly issue: UnsupportedUltramodernConfigIssue;
15
- constructor(sourcePath: string, issue: UnsupportedUltramodernConfigIssue);
16
- }
17
- export declare function normalizeCompactConfig(workspaceRoot: string, sourcePath: string, config: Record<string, any>): UltramodernToolingConfig;
18
- export declare function normalizeCompactUltramodernConfig(workspaceRoot: string, compact: Record<string, any>): UltramodernToolingConfig;
19
- export declare function workspaceAppsFromToolingConfig(config: UltramodernToolingConfig): WorkspaceApp[];
20
- export declare function additionalShellsFromToolingConfig(config: UltramodernToolingConfig): WorkspaceApp[];
21
- export declare function allWorkspaceAppsFromToolingConfig(config: UltramodernToolingConfig): WorkspaceApp[];
22
- export {};
7
+ /** Resolve declarative application membership without executing application code. */
8
+ export declare function normalizeWorkspaceInputs(workspaceRoot: string, inputs: UltramodernWorkspaceInputs): {
9
+ raw: UltramodernWorkspaceInputs;
10
+ config: UltramodernToolingConfig;
11
+ apps: WorkspaceApp[];
12
+ primaryShell: WorkspaceApp;
13
+ verticals: WorkspaceApp[];
14
+ additionalShells: WorkspaceApp[];
15
+ };
16
+ export declare function workspaceAppsFromToolingConfig(config: UltramodernToolingConfig, _workspaceRoot?: string): WorkspaceApp[];
17
+ export declare function allWorkspaceAppsFromToolingConfig(config: UltramodernToolingConfig, workspaceRoot?: string): WorkspaceApp[];
18
+ /** Refresh only exact former generated URLs; authored overlay choices survive. */
19
+ export declare function reconcileGeneratedOverlayUrls(existing: Record<string, any>, previous: Record<string, any>, projected: Record<string, any>): {
20
+ [k: string]: any;
21
+ };
22
+ export declare function preserveUnknownProjectionFields(current: any, projected: any): any;
@@ -1,6 +1,4 @@
1
- import type { UltramodernBridgeConfig } from '../../ultramodern-workspace/bridge-config/index.js';
2
1
  import type { ResolvedPackageSource, VerticalPreset, WorkspaceApi, WorkspaceApp, WorkspaceDeliveryUnitKind } from '../../ultramodern-workspace/types.js';
3
- export type UltramodernToolingConfigSource = 'compact';
4
2
  export type UltramodernToolingConfigApp = {
5
3
  id: string;
6
4
  kind: WorkspaceApp['kind'];
@@ -11,6 +9,7 @@ export type UltramodernToolingConfigApp = {
11
9
  domain?: string;
12
10
  surfaceProfile?: VerticalPreset;
13
11
  deliveryUnitKind?: WorkspaceDeliveryUnitKind;
12
+ deliveryUnit?: WorkspaceApp['deliveryUnit'];
14
13
  port?: number;
15
14
  portEnv?: string;
16
15
  moduleFederation?: {
@@ -25,10 +24,6 @@ export type UltramodernToolingConfigApp = {
25
24
  api?: WorkspaceApi;
26
25
  };
27
26
  export type UltramodernToolingConfig = {
28
- schemaVersion: number;
29
- profile?: string;
30
- source: UltramodernToolingConfigSource;
31
- sourcePath: string;
32
27
  workspace: {
33
28
  packageScope: string;
34
29
  };
@@ -36,10 +31,8 @@ export type UltramodernToolingConfig = {
36
31
  features: {
37
32
  tailwind: boolean;
38
33
  };
39
- bridge?: UltramodernBridgeConfig;
34
+ inheritedWorkspaceDependencies: Record<string, string>;
40
35
  topology: {
41
36
  apps: UltramodernToolingConfigApp[];
42
37
  };
43
- /** Additional shells live in the additive compact-config collection. */
44
- shells?: Array<Record<string, unknown>>;
45
38
  };
@@ -7,7 +7,7 @@ import type { AddUltramodernShellOptions, UltramodernGenerationResult, Ultramode
7
7
  export declare function addUltramodernShell(options: AddUltramodernShellOptions): UltramodernGenerationResult;
8
8
  /**
9
9
  * Dry-run parity for {@link addUltramodernShell} (G28). Applies the operation
10
- * against a throwaway copy of the workspace and returns the planned result
10
+ * through the shared transaction preparation path and returns the planned result
11
11
  * (created/rewritten paths, delivery-unit identity) without touching the real
12
12
  * workspace.
13
13
  */
@@ -7,3 +7,4 @@ import type { AddUltramodernVerticalOptions, UltramodernGenerationResult } from
7
7
  * pre-call state and the error is rethrown.
8
8
  */
9
9
  export declare function addUltramodernVertical(options: AddUltramodernVerticalOptions): UltramodernGenerationResult;
10
+ export declare function executeAddUltramodernVertical(options: AddUltramodernVerticalOptions, logicalWorkspaceRoot?: string): UltramodernGenerationResult;
@@ -1,3 +1,4 @@
1
+ import { normalizeWorkspaceInputs } from '../../ultramodern-tooling/config/index.js';
1
2
  import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
3
  import type { AddUltramodernVerticalOptions, ResolvedPackageSource, WorkspaceApp } from '../types.js';
3
4
  export type AddUltramodernVerticalPreflight = {
@@ -13,7 +14,7 @@ export type AddUltramodernVerticalPreflight = {
13
14
  packageSource: ResolvedPackageSource;
14
15
  enableTailwind: boolean;
15
16
  bridge?: UltramodernBridgeConfig;
16
- config: Record<string, any>;
17
+ config: ReturnType<typeof normalizeWorkspaceInputs>['config'];
17
18
  primaryShell: WorkspaceApp;
18
19
  additionalShells: WorkspaceApp[];
19
20
  targetShell: WorkspaceApp;
@@ -29,7 +30,7 @@ export type UnknownUltramodernShellIssue = {
29
30
  };
30
31
  /**
31
32
  * Typed preflight rejection for an add-vertical request whose shell target is
32
- * not present in the workspace's additive config.shells collection.
33
+ * not present in the workspace topology's shells collection.
33
34
  */
34
35
  export declare class UnknownUltramodernShellError extends Error {
35
36
  readonly sourcePath: string;
@@ -38,5 +39,5 @@ export declare class UnknownUltramodernShellError extends Error {
38
39
  constructor(sourcePath: string, requestedShellId: string, available: string[]);
39
40
  }
40
41
  export declare function prepareAddUltramodernVertical(options: AddUltramodernVerticalOptions): AddUltramodernVerticalPreflight;
41
- export declare function createPrimaryShellDescriptor(topology: Record<string, any>, config: Record<string, any>): WorkspaceApp;
42
+ export declare function readRequiredJsonObject(filePath: string): Record<string, any>;
42
43
  export declare function assertNonEmptyString(value: unknown, label: string): void;
@@ -0,0 +1,4 @@
1
+ import type { UltramodernJsonMutation } from '../types.js';
2
+ import type { WorkspaceChange } from './transaction.js';
3
+ /** Describe the prepared bytes, so preview cannot invent writes that apply omits. */
4
+ export declare function describeJsonChanges(changes: readonly WorkspaceChange[]): UltramodernJsonMutation[];
@@ -1,4 +1,9 @@
1
1
  import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
2
  import type { ResolvedPackageSource, WorkspaceApp } from '../types.js';
3
- export declare function updateRootWorkspaceScripts(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, additionalShells?: WorkspaceApp[]): void;
4
- export declare function rewriteShellAppFiles(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, enableTailwind: boolean, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, shell?: WorkspaceApp, devPorts?: number[]): void;
3
+ export declare function updateRootWorkspaceScripts(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, additionalShells?: WorkspaceApp[], previousRemotes?: WorkspaceApp[], _primaryShell?: WorkspaceApp, previousAdditionalShells?: WorkspaceApp[]): void;
4
+ export declare function rewriteShellAppFiles(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, enableTailwind: boolean, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, shell?: WorkspaceApp, devPorts?: number[], previous?: {
5
+ shell: WorkspaceApp;
6
+ remotes: WorkspaceApp[];
7
+ devPorts?: number[];
8
+ enableTailwind?: boolean;
9
+ }): void;
@@ -1,3 +1,13 @@
1
+ type WorkspaceFile = {
2
+ content: Buffer;
3
+ mode: number;
4
+ symlink?: true;
5
+ };
6
+ export type WorkspaceChange = {
7
+ relativePath: string;
8
+ before?: WorkspaceFile;
9
+ after?: WorkspaceFile;
10
+ };
1
11
  export declare class WorkspaceTransactionConflictError extends Error {
2
12
  readonly code: 'workspace-transaction-conflict';
3
13
  constructor(message: string, options?: {
@@ -20,6 +30,11 @@ export declare const __transactionTestHooks: {
20
30
  workspaceRoot: string;
21
31
  relativePath: string;
22
32
  }) => void;
33
+ afterPublishPath?: (details: {
34
+ workspaceRoot: string;
35
+ relativePath: string;
36
+ index: number;
37
+ }) => void;
23
38
  beforeFreshPublish?: (details: {
24
39
  workspaceRoot: string;
25
40
  }) => void;
@@ -31,19 +46,30 @@ export declare const __transactionTestHooks: {
31
46
  * observably wrong after a successful transaction.
32
47
  */
33
48
  export declare function relocateStagedWorkspaceReferences(stagingRoot: string, workspaceRoot: string): void;
49
+ /** Creation only recovers receipts from an interrupted empty-target creation. */
50
+ export declare function recoverFreshWorkspaceTransactions(root: string): void;
51
+ /** Recover only our validated durable publication receipts, never unknown stages. */
52
+ export declare function recoverWorkspaceTransactions(root: string, purpose?: 'update' | 'fresh-empty'): void;
34
53
  /**
35
54
  * Run an existing-workspace mutation against a private sibling. Only the
36
55
  * semantic file changes produced there are published, and every owned target
37
56
  * must still match its exact preimage. Unrelated workspace files are never
38
57
  * copied back, so concurrent consumer work is conserved without a lock.
58
+ * Preview prepares and inspects the same change set, then discards its stage;
59
+ * it never publishes or recovers an earlier transaction into the live tree.
39
60
  */
40
- export declare function runWorkspaceTransaction<T>(root: string, mutate: (stagingRoot: string) => T): T;
61
+ export declare function runWorkspaceTransaction<T>(root: string, mutate: (stagingRoot: string) => T, options?: {
62
+ mode?: 'publish' | 'preview';
63
+ commitWhen?: (result: Awaited<T>) => boolean;
64
+ inspectChanges?: (changes: readonly WorkspaceChange[]) => void;
65
+ }): T;
41
66
  /**
42
67
  * Fully stage a fresh workspace beside its resolved target and publish the
43
- * complete tree with one directory rename. An already-empty target needs a
44
- * narrow empty-directory swap (the canonical path is briefly absent) so CLI
45
- * generation in an empty cwd retains its contract without exposing a partial
46
- * tree. Node has no portable no-replace directory rename, so an external
47
- * process can still win the narrow final preflight-to-rename race.
68
+ * complete tree with one directory rename, except for an empty Windows cwd,
69
+ * whose held directory is retained by the recoverable per-file publisher.
70
+ * Other already-empty targets use a narrow empty-directory swap (the canonical
71
+ * path is briefly absent). Node has no portable no-replace directory rename,
72
+ * so an external process can still win the final preflight-to-rename race.
48
73
  */
49
74
  export declare function runFreshWorkspaceTransaction<T>(targetDir: string, generate: (stagingRoot: string) => T): T;
75
+ export {};
@@ -1,11 +1,14 @@
1
- import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
- import type { ResolvedPackageSource, UltramodernWorkspaceOptions, WorkspaceApp } from '../types.js';
3
- export declare function existingPackageSource(workspaceRoot: string, modernVersion: string, packageSource?: UltramodernWorkspaceOptions['packageSource']): ResolvedPackageSource;
4
- export declare function existingTailwindEnabled(workspaceRoot: string): boolean;
5
- export declare function existingBridgeConfig(workspaceRoot: string): UltramodernBridgeConfig | undefined;
1
+ import type { UltramodernToolingConfig } from '../../ultramodern-tooling/config/index.js';
2
+ import type { AddUltramodernShellOptions, WorkspaceApp } from '../types.js';
3
+ /** Resolve command overrides against the already normalized input snapshot. */
4
+ export declare function workspaceOperationSettings(options: AddUltramodernShellOptions, config: UltramodernToolingConfig): {
5
+ packageSource: import("../../ultramodern-package-source.js").ResolvedUltramodernPackageSource;
6
+ enableTailwind: boolean;
7
+ bridge: undefined;
8
+ };
6
9
  export declare function assertValidVerticalName(name: string): string;
7
- export declare function configuredDevelopmentPorts(ports: Record<string, unknown>, additionalShells?: WorkspaceApp[]): number[];
8
- export declare function assertGlobalPortUniqueness(ports: Record<string, unknown>, additionalShells?: WorkspaceApp[]): void;
10
+ export declare function configuredDevelopmentPorts(ports: Record<string, unknown>, _additionalShells?: WorkspaceApp[]): number[];
11
+ export declare function assertGlobalPortUniqueness(ports: Record<string, unknown>, _additionalShells?: WorkspaceApp[]): void;
9
12
  /**
10
13
  * Allocate from the one workspace-wide port set. The caller supplies the
11
14
  * lower bound for its app class (verticals start at 4101; additional shells at
@@ -4,4 +4,4 @@ export type { AddUltramodernVerticalPreflight } from './add-vertical/preflight.j
4
4
  export { prepareAddUltramodernVertical } from './add-vertical/preflight.js';
5
5
  export { rewriteShellAppFiles, updateRootWorkspaceScripts, } from './add-vertical/shell-files.js';
6
6
  export { ownershipEntry, verticalsFromTopology, verticalTopologyEntry, } from './add-vertical/topology.js';
7
- export { assertCanCreate, assertValidVerticalName, existingBridgeConfig, existingPackageSource, existingTailwindEnabled, nextAvailablePort, } from './add-vertical/workspace-state.js';
7
+ export { assertCanCreate, assertValidVerticalName, nextAvailablePort, } from './add-vertical/workspace-state.js';
@@ -2,5 +2,7 @@ import type { WorkspaceApi, WorkspaceApp } from '../types.js';
2
2
  export declare function createApiClient(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
5
- }, contractImportPath: string): string;
5
+ }, contractImportPath: string, options?: {
6
+ readonly scope: string;
7
+ }): string;
6
8
  export declare function createShellApiClient(scope: string, remotes?: WorkspaceApp[]): string;
@@ -37,5 +37,5 @@ export declare function createRpcApiServiceEntry(service: ApiService): string;
37
37
  * Generate the RPC client file (`src/api/${stem}-rpc-client.ts`) built from the
38
38
  * shared `RpcGroup` through Effect BFF's public HTTP RPC client primitive.
39
39
  */
40
- export declare function createRpcClientFile(service: ApiService): string;
40
+ export declare function createRpcClientFile(service: ApiService, contractImportPath?: string): string;
41
41
  export {};
@@ -2,5 +2,7 @@ import type { WorkspaceApi, WorkspaceApp } from '../types.js';
2
2
  export declare function createApiServiceEntry(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
5
- }, contractImportPath: string): string;
5
+ }, contractImportPath: string, options?: {
6
+ readonly scope: string;
7
+ }): string;
6
8
  export declare function createBackendEffectApiExpose(scope: string, service: WorkspaceApp): string;
@@ -2,4 +2,6 @@ import type { WorkspaceApi } from '../types.js';
2
2
  export declare function createSharedApi(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
5
+ }, options?: {
6
+ readonly scope: string;
5
7
  }): string;
@@ -1,4 +1,4 @@
1
- import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from '@modern-js/utils/universal';
1
+ import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from '@modern-js/backend-federation-contracts';
2
2
  import type { JsonValue, WorkspaceApp } from './types.js';
3
3
  export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, };
4
4
  export declare function createWorkerBindingName(app: WorkspaceApp): string;
@@ -1,6 +1,4 @@
1
- import type { UltramodernBridgeConfig } from './bridge-config/index.js';
2
- import type { JsonValue, ResolvedPackageSource, WorkspaceApp } from './types.js';
1
+ import type { JsonValue, WorkspaceApp } from './types.js';
3
2
  export declare function createTopology(scope: string, remotes?: WorkspaceApp[], primaryShell?: WorkspaceApp): JsonValue;
4
3
  export declare function createOwnership(scope: string, remotes?: WorkspaceApp[]): JsonValue;
5
4
  export declare function createDevelopmentOverlay(scope: string, remotes?: WorkspaceApp[]): JsonValue;
6
- export declare function createUltramodernConfig(scope: string, modernVersion: string, packageSource: ResolvedPackageSource, apps?: WorkspaceApp[], enableTailwind?: boolean, bridge?: UltramodernBridgeConfig, additionalShells?: WorkspaceApp[], primaryShell?: WorkspaceApp): JsonValue;