@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
@@ -31,388 +31,77 @@ __webpack_require__.d(__webpack_exports__, {
31
31
  createWorkspaceValidationContract: ()=>createWorkspaceValidationContract
32
32
  });
33
33
  const external_ultramodern_package_source_cjs_namespaceObject = require("../ultramodern-package-source.cjs");
34
- const external_api_cjs_namespaceObject = require("./api.cjs");
35
- const external_backend_federation_cjs_namespaceObject = require("./backend-federation.cjs");
36
- const external_contracts_cjs_namespaceObject = require("./contracts.cjs");
37
- const external_delivery_unit_cjs_namespaceObject = require("./delivery-unit.cjs");
38
- const external_demo_components_cjs_namespaceObject = require("./demo-components.cjs");
39
34
  const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
40
35
  const external_naming_cjs_namespaceObject = require("./naming.cjs");
41
- const external_policy_cjs_namespaceObject = require("./policy.cjs");
42
- const external_public_surface_cjs_namespaceObject = require("./public-surface.cjs");
43
- const external_routes_cjs_namespaceObject = require("./routes.cjs");
44
- const external_shells_cjs_namespaceObject = require("./shells.cjs");
45
- const external_types_cjs_namespaceObject = require("./types.cjs");
46
- const external_versions_cjs_namespaceObject = require("./versions.cjs");
47
- const external_workspace_script_plan_cjs_namespaceObject = require("./workspace-script-plan.cjs");
48
- const WORKSPACE_VALIDATION_CONTRACT_SCHEMA_VERSION = 2;
49
- const WORKSPACE_METADATA_SCHEMA_VERSION = 1;
50
- const WORKSPACE_VALIDATION_CONTRACT_KIND = 'modernjs.ultramodern-workspace-validation-contract';
51
- const modernPackageCohort = [
52
- external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_CREATE_PACKAGE,
53
- '@modern-js/code-tools',
54
- '@modern-js/app-tools',
55
- '@modern-js/plugin-bff',
56
- '@modern-js/plugin-i18n',
57
- '@modern-js/plugin-tanstack',
58
- '@modern-js/runtime'
59
- ];
60
- const asJsonRecord = (value)=>value;
61
- function projectModuleFederationMetadata(value) {
62
- const moduleFederation = asJsonRecord(value);
63
- return {
64
- ...moduleFederation,
65
- ...Array.isArray(moduleFederation.remotes) ? {
66
- remotes: moduleFederation.remotes.map((value)=>{
67
- const remote = asJsonRecord(value);
68
- return {
69
- id: remote.id,
70
- manifestUrl: remote.manifestUrl,
71
- name: remote.name
72
- };
73
- })
74
- } : {}
75
- };
76
- }
77
- function createReferenceTopologyExpectation(scope, remotes, primaryShell) {
78
- const topology = asJsonRecord((0, external_contracts_cjs_namespaceObject.createTopology)(scope, remotes, primaryShell));
79
- const shell = asJsonRecord(topology.shell);
80
- return {
81
- ...topology,
82
- shell: {
83
- ...shell,
84
- moduleFederation: projectModuleFederationMetadata(shell.moduleFederation)
85
- },
86
- verticals: Array.isArray(topology.verticals) ? topology.verticals.map((value)=>{
87
- const vertical = asJsonRecord(value);
88
- return {
89
- ...vertical,
90
- moduleFederation: projectModuleFederationMetadata(vertical.moduleFederation)
91
- };
92
- }) : topology.verticals
93
- };
94
- }
95
- const validationEvidencePolicy = {
96
- schemaVersion: 1,
97
- required: [
98
- {
99
- id: "typescript-compiler",
100
- kind: 'compiler'
101
- },
102
- {
103
- id: 'architecture-compiler',
104
- kind: 'compiler'
105
- },
106
- {
107
- id: 'executable-modern-config',
108
- kind: 'runtime'
109
- },
110
- {
111
- id: 'executable-runtime-config',
112
- kind: 'runtime'
113
- },
114
- {
115
- id: 'executable-module-federation-config',
116
- kind: 'runtime'
117
- },
118
- {
119
- id: 'executable-build-facade',
120
- kind: 'runtime'
121
- },
122
- {
123
- id: 'structured-package-config',
124
- kind: 'structured'
125
- },
126
- {
127
- id: 'structured-deploy-config',
128
- kind: 'structured'
129
- },
130
- {
131
- id: 'public-behavior-gates',
132
- kind: 'behavior'
133
- }
134
- ]
135
- };
136
- function createStructuralShellPolicy(workspaceApps) {
137
- return {
138
- schemaVersion: 1,
139
- shells: workspaceApps.filter((app)=>'shell' === app.kind).map((app)=>({
140
- id: app.id,
141
- packageDir: app.directory,
142
- srcDir: `${app.directory}/src`
143
- })),
144
- forbiddenPathClasses: [
145
- {
146
- id: 'shell-api-surface',
147
- path: 'api',
148
- diagnostic: 'A thin Shell must not own an API surface (api/); business APIs belong to a MicroVertical.'
149
- },
150
- {
151
- id: 'shell-server-surface',
152
- path: 'server',
153
- diagnostic: 'A thin Shell must not own a server surface (server/); server capability belongs to a MicroVertical.'
154
- },
155
- {
156
- id: 'shell-backend-federation',
157
- path: 'backend-federation.config.ts',
158
- diagnostic: 'A thin Shell must not own backend-federation artifacts; backend federation belongs to a MicroVertical delivery unit.'
159
- }
160
- ]
161
- };
162
- }
163
- function createFederatedCompositionPolicy(scope, hosts, remotes) {
164
- const remotesById = new Map(remotes.map((remote)=>[
165
- remote.id,
166
- remote
167
- ]));
168
- return {
169
- schemaVersion: 1,
170
- hosts: [
171
- ...new Map(hosts.map((host)=>[
172
- host.id,
173
- host
174
- ])).values()
175
- ].filter((host)=>(host.verticalRefs?.length ?? 0) > 0).map((host)=>({
176
- id: host.id,
177
- srcDir: `${host.directory}/src`,
178
- remotes: (host.verticalRefs ?? []).map((remoteId)=>{
179
- const remote = remotesById.get(remoteId);
180
- if (void 0 === remote) throw new Error(`Unknown remote vertical reference ${remoteId} for ${host.id}.`);
181
- return {
182
- id: remote.id,
183
- directory: remote.directory,
184
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)
185
- };
186
- })
187
- }))
188
- };
189
- }
190
- function createWorkspaceValidationContract(scope, enableTailwind, remotes = [], releaseCohort, additionalShells = [], primaryShell, compactConfigOverride, ownershipOverride, developmentOverlayOverride) {
191
- const resolvedPrimaryShell = primaryShell ?? (0, external_descriptors_cjs_namespaceObject.createShellHost)(remotes);
192
- const workspaceApps = [
193
- resolvedPrimaryShell,
36
+ function createWorkspaceValidationContract(scope, enableTailwind, authoredSharedPackages, remotes = [], additionalShells = [], primaryShell = (0, external_descriptors_cjs_namespaceObject.createShellHost)(remotes)) {
37
+ if (!Array.isArray(authoredSharedPackages) || !authoredSharedPackages.every((pkg)=>pkg && 'string' == typeof pkg.id && pkg.id.length > 0 && 'string' == typeof pkg.path && pkg.path.length > 0 && 'string' == typeof pkg.package && pkg.package.length > 0)) throw new Error('Canonical shared package inventory is invalid.');
38
+ const apps = [
39
+ primaryShell,
40
+ ...additionalShells,
194
41
  ...remotes
195
42
  ];
196
- const configuredShells = [
197
- resolvedPrimaryShell,
198
- ...additionalShells
199
- ];
200
- const compactConfig = asJsonRecord(compactConfigOverride ?? (0, external_contracts_cjs_namespaceObject.createUltramodernConfig)(scope, 'workspace-validation-contract', {
201
- strategy: 'workspace',
202
- modernPackageVersion: 'workspace:*'
203
- }, workspaceApps, enableTailwind, void 0, additionalShells, resolvedPrimaryShell));
204
- const fullStackVerticals = remotes.map((remote)=>({
205
- id: remote.id,
206
- domain: remote.domain,
207
- path: remote.directory,
208
- port: remote.port,
209
- mfName: remote.mfName,
210
- emitsApi: (0, external_descriptors_cjs_namespaceObject.appHasApi)(remote),
211
- emitsUi: (0, external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)(remote),
212
- surfaceProfile: remote.surfaceProfile ?? 'full-stack',
213
- ...(0, external_descriptors_cjs_namespaceObject.appHasApi)(remote) ? {
214
- stem: remote.api.stem,
215
- group: (0, external_api_cjs_namespaceObject.verticalApiGroupName)(remote),
216
- apiPrefix: remote.api.prefix,
217
- apiProtocol: (0, external_descriptors_cjs_namespaceObject.resolveApiProtocol)(remote),
218
- apiContractExport: './api',
219
- apiClientExport: 'rpc' === (0, external_descriptors_cjs_namespaceObject.resolveApiProtocol)(remote) ? './api/rpc-client' : './api/client',
220
- apiContractPath: 'rpc' === (0, external_descriptors_cjs_namespaceObject.resolveApiProtocol)(remote) ? 'shared/rpc.ts' : 'shared/api.ts',
221
- apiClientPath: `src/api/${(0, external_descriptors_cjs_namespaceObject.resolveApiStem)(remote)}-${'rpc' === (0, external_descriptors_cjs_namespaceObject.resolveApiProtocol)(remote) ? 'rpc-client' : 'client'}.ts`,
222
- backendFederation: (0, external_backend_federation_cjs_namespaceObject.createBackendFederationMetadata)(scope, remote)
223
- } : {},
224
- tailwindPrefix: (0, external_naming_cjs_namespaceObject.tailwindPrefixForApp)(remote),
225
- zephyrAlias: (0, external_descriptors_cjs_namespaceObject.remoteDependencyAlias)(remote),
226
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix),
227
- deliveryUnit: (0, external_delivery_unit_cjs_namespaceObject.createDeliveryUnitRecord)(scope, remote),
228
- exposes: Object.keys(remote.exposes ?? {}),
229
- componentPaths: Object.keys(remote.exposes ?? {}).map((expose)=>(0, external_demo_components_cjs_namespaceObject.remoteComponentOutputPath)(remote, expose)).filter((componentPath)=>Boolean(componentPath)),
230
- namespace: (0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(remote),
231
- routePagePaths: (0, external_routes_cjs_namespaceObject.createRouteOwnedI18nPaths)(remote).filter((route)=>'/' !== route.canonicalPath).map((route)=>(0, external_routes_cjs_namespaceObject.createRoutePageFilePath)(remote, route.canonicalPath)),
232
- routeMetaPaths: (0, external_routes_cjs_namespaceObject.createRouteOwnedI18nPaths)(remote).map((route)=>(0, external_routes_cjs_namespaceObject.createRouteMetaFilePath)(remote, route.canonicalPath)),
233
- localisedUrls: (0, external_routes_cjs_namespaceObject.createLocalisedUrlsMap)(remote),
234
- verticalRefs: remote.verticalRefs ?? []
235
- }));
236
- const additionalShellRecords = additionalShells.map((shell)=>{
237
- const configEntry = (0, external_shells_cjs_namespaceObject.createAdditionalShellConfigEntry)(scope, shell, remotes);
238
- return {
239
- id: shell.id,
240
- path: shell.directory,
241
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, shell.packageSuffix),
242
- port: shell.port,
243
- portEnv: shell.portEnv,
244
- mfName: shell.mfName,
245
- tailwindPrefix: (0, external_naming_cjs_namespaceObject.tailwindPrefixForApp)(shell),
246
- verticalRefs: shell.verticalRefs ?? [],
247
- owner: (0, external_types_cjs_namespaceObject.resolveOwnerAttribution)(shell.ownership),
248
- deliveryUnit: (0, external_shells_cjs_namespaceObject.shellDeliveryUnitBlock)(scope, shell),
249
- degradedState: {
250
- required: (shell.verticalRefs ?? []).length > 0,
251
- appId: shell.id,
252
- status: 'degraded'
253
- },
254
- moduleFederation: configEntry.moduleFederation
255
- };
256
- });
257
43
  return {
258
- schemaVersion: WORKSPACE_VALIDATION_CONTRACT_SCHEMA_VERSION,
259
- kind: WORKSPACE_VALIDATION_CONTRACT_KIND,
260
- metadata: {
261
- compactConfig: {
262
- path: '.modernjs/ultramodern.json',
263
- schemaVersion: WORKSPACE_METADATA_SCHEMA_VERSION
264
- },
265
- referenceTopology: {
266
- path: 'topology/reference-topology.json',
267
- schemaVersion: WORKSPACE_METADATA_SCHEMA_VERSION
268
- },
269
- ownership: {
270
- path: 'topology/ownership.json',
271
- schemaVersion: WORKSPACE_METADATA_SCHEMA_VERSION
272
- },
273
- developmentOverlay: {
274
- path: 'topology/local-overlays/development.json',
275
- schemaVersion: WORKSPACE_METADATA_SCHEMA_VERSION
276
- },
277
- ...releaseCohort ? {
278
- releaseCohort: {
279
- path: '.modernjs/release-cohort.json',
280
- schemaVersion: releaseCohort.schemaVersion
281
- }
282
- } : {}
283
- },
284
- cohort: {
285
- modernPackages: [
286
- ...modernPackageCohort
287
- ],
288
- ...releaseCohort ? {
289
- releaseCohort
290
- } : {},
291
- appIds: workspaceApps.map((app)=>app.id),
292
- ...additionalShells.length > 0 ? {
293
- additionalShellIds: additionalShells.map((app)=>app.id),
294
- additionalShellOwnerIds: additionalShells.map((app)=>app.id),
295
- additionalShellDeliveryUnitIds: additionalShells.map((app)=>app.id),
296
- additionalShellDegradedStateIds: additionalShells.map((app)=>app.id),
297
- additionalShellBuildMarkerIds: additionalShells.map((app)=>app.id)
298
- } : {},
299
- backendAppIds: fullStackVerticals.filter((app)=>app.emitsApi).map((app)=>app.id),
300
- verticalIds: remotes.map((app)=>app.id),
301
- sharedPackageIds: external_descriptors_cjs_namespaceObject.sharedPackages.map((sharedPackage)=>sharedPackage.id),
302
- ownerIds: [
303
- ...workspaceApps.map((app)=>app.id),
304
- ...external_descriptors_cjs_namespaceObject.sharedPackages.map((sharedPackage)=>sharedPackage.id)
305
- ],
306
- packageManifests: [
44
+ packageScope: scope,
45
+ tailwindEnabled: enableTailwind,
46
+ modernPackages: [
47
+ ...external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_WORKSPACE_MODERN_PACKAGES
48
+ ],
49
+ apps: apps.map((app)=>({
50
+ id: app.id,
51
+ kind: app.kind,
52
+ path: app.directory,
53
+ packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, app.packageSuffix),
54
+ emitsApi: (0, external_descriptors_cjs_namespaceObject.appHasApi)(app),
55
+ emitsUi: (0, external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)(app),
56
+ exposes: app.exposes ?? {},
57
+ verticalRefs: app.verticalRefs ?? []
58
+ })),
59
+ sharedPackages: authoredSharedPackages.map((pkg)=>({
60
+ id: pkg.id,
61
+ path: pkg.path,
62
+ packageName: pkg.package
63
+ })),
64
+ structuralShellPolicy: {
65
+ schemaVersion: 1,
66
+ shells: apps.filter((app)=>'shell' === app.kind).map((app)=>({
67
+ id: app.id,
68
+ packageDir: app.directory,
69
+ srcDir: `${app.directory}/src`
70
+ })),
71
+ forbiddenPathClasses: [
307
72
  {
308
- id: 'workspace-root',
309
- packageName: scope,
310
- path: 'package.json',
311
- role: 'workspace-root'
73
+ id: 'shell-api-surface',
74
+ path: 'api',
75
+ diagnostic: 'A thin Shell must not own an API surface.'
312
76
  },
313
- ...workspaceApps.map((app)=>({
314
- id: app.id,
315
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, app.packageSuffix),
316
- path: `${app.directory}/package.json`,
317
- role: app.kind
318
- })),
319
- ...external_descriptors_cjs_namespaceObject.sharedPackages.map((sharedPackage)=>({
320
- id: sharedPackage.id,
321
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, sharedPackage.id),
322
- path: `${sharedPackage.directory}/package.json`,
323
- role: 'shared-package'
324
- }))
325
- ],
326
- ...additionalShells.length > 0 ? {
327
- additionalShellManifests: additionalShells.map((app)=>({
328
- id: app.id,
329
- packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, app.packageSuffix),
330
- path: `${app.directory}/package.json`,
331
- role: 'shell'
332
- }))
333
- } : {}
334
- },
335
- topology: {
336
- compactConfig: compactConfig.topology,
337
- referenceTopology: createReferenceTopologyExpectation(scope, remotes, resolvedPrimaryShell),
338
- ownership: ownershipOverride ?? (0, external_contracts_cjs_namespaceObject.createOwnership)(scope, remotes),
339
- developmentOverlay: developmentOverlayOverride ?? (0, external_contracts_cjs_namespaceObject.createDevelopmentOverlay)(scope, remotes)
340
- },
341
- policy: {
342
- compactConfig: {
343
- schemaVersion: compactConfig.schemaVersion,
344
- profile: compactConfig.profile,
345
- workspace: compactConfig.workspace,
346
- features: compactConfig.features,
347
- deploy: compactConfig.deploy,
348
- moduleFederation: compactConfig.moduleFederation,
349
- backendFederation: compactConfig.backendFederation,
350
- agentSkills: compactConfig.agentSkills,
351
- tooling: compactConfig.tooling
352
- }
353
- },
354
- legacy: {
355
- retiredMetadataPaths: [
356
- '.modernjs/ultramodern-generated-contract.json',
357
- '.modernjs/ultramodern-package-source.json',
358
- '.modernjs/ultramodern-workspace-template-manifest.json'
359
- ],
360
- forbiddenCompactConfigFields: [
361
- 'generatedContract',
362
- 'packageCohort',
363
- 'workspaceValidationContract'
364
- ],
365
- forbiddenPackageSourceFields: [
366
- 'generatedWorkspacePackages',
367
- 'metadata',
368
- 'modernPackages'
369
- ],
370
- forbiddenTopologyFields: [
371
- 'effectServices',
372
- 'remotes'
77
+ {
78
+ id: 'shell-server-surface',
79
+ path: 'server',
80
+ diagnostic: 'A thin Shell must not own a server surface.'
81
+ },
82
+ {
83
+ id: 'shell-backend-federation',
84
+ path: 'backend-federation.config.ts',
85
+ diagnostic: 'A thin Shell must not own backend federation.'
86
+ }
373
87
  ]
374
88
  },
375
- validationEvidencePolicy,
376
- packageScope: scope,
377
- node: {
378
- version: external_versions_cjs_namespaceObject.NODE_VERSION,
379
- engineRange: '>=26'
380
- },
381
- versions: {
382
- cloudflareCompatibilityDate: external_versions_cjs_namespaceObject.CLOUDFLARE_COMPATIBILITY_DATE,
383
- crossEnv: external_versions_cjs_namespaceObject.CROSS_ENV_VERSION,
384
- effect: external_versions_cjs_namespaceObject.EFFECT_VERSION,
385
- effectVitest: external_versions_cjs_namespaceObject.EFFECT_VITEST_VERSION,
386
- moduleFederation: external_versions_cjs_namespaceObject.MODULE_FEDERATION_VERSION,
387
- node: external_versions_cjs_namespaceObject.NODE_VERSION,
388
- pnpm: external_versions_cjs_namespaceObject.PNPM_VERSION,
389
- tanstackHistory: external_versions_cjs_namespaceObject.TANSTACK_HISTORY_VERSION
390
- },
391
- tailwindEnabled: enableTailwind,
392
- structuralShellPolicy: createStructuralShellPolicy(configuredShells),
393
- federatedCompositionPolicy: createFederatedCompositionPolicy(scope, [
394
- ...configuredShells,
395
- ...remotes
396
- ], remotes),
397
- ...additionalShellRecords.length > 0 ? {
398
- additionalShells: additionalShellRecords
399
- } : {},
400
- fullStackVerticals,
401
- shellNamespace: (0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(external_descriptors_cjs_namespaceObject.shellApp),
402
- oldRemotePaths: [
403
- 'apps/remotes'
404
- ],
405
- scripts: (0, external_workspace_script_plan_cjs_namespaceObject.createWorkspaceRootScriptPlan)(remotes, {
406
- shells: configuredShells
407
- }),
408
- packageScripts: (0, external_workspace_script_plan_cjs_namespaceObject.createWorkspaceRootPackageScripts)(remotes, {
409
- shells: configuredShells
410
- }),
411
- cloudflareSecurity: (0, external_policy_cjs_namespaceObject.createCloudflareSecurityContract)(),
412
- publicSurfaceManagedSourceAssetPaths: [
413
- ...external_public_surface_cjs_namespaceObject.publicSurfaceManagedSourceAssetPaths
414
- ],
415
- shellRouteMetaPaths: (0, external_routes_cjs_namespaceObject.createRouteOwnedI18nPaths)(external_descriptors_cjs_namespaceObject.shellApp).map((route)=>(0, external_routes_cjs_namespaceObject.createRouteMetaFilePath)(external_descriptors_cjs_namespaceObject.shellApp, route.canonicalPath))
89
+ federatedCompositionPolicy: {
90
+ schemaVersion: 1,
91
+ hosts: apps.filter((app)=>(app.verticalRefs?.length ?? 0) > 0).map((app)=>({
92
+ id: app.id,
93
+ srcDir: `${app.directory}/src`,
94
+ remotes: (app.verticalRefs ?? []).map((id)=>{
95
+ const remote = remotes.find((candidate)=>candidate.id === id);
96
+ if (!remote) throw new Error(`Unknown remote vertical reference ${id} for ${app.id}.`);
97
+ return {
98
+ id,
99
+ directory: remote.directory,
100
+ packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)
101
+ };
102
+ })
103
+ }))
104
+ }
416
105
  };
417
106
  }
418
107
  exports.createWorkspaceValidationContract = __webpack_exports__.createWorkspaceValidationContract;
@@ -59,6 +59,7 @@ function writeApp(targetDir, scope, app, packageSource, enableTailwind, remotes
59
59
  enableTailwind: appTailwind,
60
60
  emitsUi,
61
61
  remotes: resolvedRemotes,
62
+ availableRemotes: remotes,
62
63
  bridge,
63
64
  devPorts,
64
65
  publicWeb,
@@ -73,12 +74,12 @@ function writeApp(targetDir, scope, app, packageSource, enableTailwind, remotes
73
74
  function rewriteAppModernConfig(targetDir, scope, app, remotes, enableTailwind, devPorts) {
74
75
  (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, `${app.directory}/modern.config.ts`, (0, external_module_federation_cjs_namespaceObject.createAppModernConfig)(scope, app, remotes, enableTailwind, devPorts));
75
76
  }
76
- function writeAppConfigFiles({ targetDir, scope, resolvedApp, packageSource, enableTailwind, emitsUi, remotes, bridge, devPorts, publicWeb }) {
77
- (0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${resolvedApp.directory}/package.json`, (0, external_package_json_cjs_namespaceObject.createAppPackage)(scope, resolvedApp, packageSource, enableTailwind, remotes, bridge));
77
+ function writeAppConfigFiles({ targetDir, scope, resolvedApp, packageSource, enableTailwind, emitsUi, remotes, availableRemotes, bridge, devPorts, publicWeb }) {
78
+ (0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${resolvedApp.directory}/package.json`, (0, external_package_json_cjs_namespaceObject.createAppPackage)(scope, resolvedApp, packageSource, enableTailwind, availableRemotes, bridge));
78
79
  (0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${resolvedApp.directory}/tsconfig.json`, (0, external_package_json_cjs_namespaceObject.createAppTsConfig)(resolvedApp, remotes));
79
80
  (0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${resolvedApp.directory}/tsconfig.mf-types.json`, (0, external_package_json_cjs_namespaceObject.createAppMfTypesTsConfig)(resolvedApp));
80
- (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/modern-app-env.d.ts`, (0, external_app_files_cjs_namespaceObject.createAppEnvDts)(resolvedApp, remotes, scope));
81
- (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/ultramodern-build.ts`, (0, external_module_federation_cjs_namespaceObject.createUltramodernBuildReexportModule)());
81
+ if (emitsUi) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/modern-app-env.d.ts`, (0, external_app_files_cjs_namespaceObject.createAppEnvDts)(resolvedApp, remotes, scope));
82
+ if ('api-only' !== resolvedApp.surfaceProfile) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/ultramodern-build.ts`, (0, external_module_federation_cjs_namespaceObject.createUltramodernBuildReexportModule)(resolvedApp));
82
83
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/shared/ultramodern-build.ts`, (0, external_module_federation_cjs_namespaceObject.createUltramodernBuildModule)(scope, resolvedApp));
83
84
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/shared/ultramodern-build.json`, (0, external_module_federation_cjs_namespaceObject.createUltramodernBuildArtifactJson)(scope, resolvedApp));
84
85
  if (emitsUi) {
@@ -87,7 +88,7 @@ function writeAppConfigFiles({ targetDir, scope, resolvedApp, packageSource, ena
87
88
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, publicWeb.routeHeadFile.path, publicWeb.routeHeadFile.content);
88
89
  }
89
90
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/modern.config.ts`, (0, external_module_federation_cjs_namespaceObject.createAppModernConfig)(scope, resolvedApp, remotes, enableTailwind, devPorts));
90
- (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/modern.runtime.ts`, (0, external_app_files_cjs_namespaceObject.createAppRuntimeConfig)(resolvedApp, scope, remotes));
91
+ if (emitsUi) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/modern.runtime.ts`, (0, external_app_files_cjs_namespaceObject.createAppRuntimeConfig)(resolvedApp, scope, remotes));
91
92
  }
92
93
  function writeAppLocaleAndStyleFiles({ targetDir, scope, resolvedApp, enableTailwind, emitsUi, remotes }) {
93
94
  (0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${resolvedApp.directory}/locales/en/translation.json`, (0, external_locales_cjs_namespaceObject.createAppPublicLocaleMessages)(resolvedApp, 'en', remotes));
@@ -101,7 +102,7 @@ function writeAppFederationConfigFiles({ targetDir, scope, resolvedApp, emitsUi,
101
102
  if (emitsUi) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/module-federation.config.ts`, 'shell' === resolvedApp.kind ? (0, external_module_federation_cjs_namespaceObject.createShellModuleFederationConfig)(scope, resolvedApp, remotes) : (0, external_module_federation_cjs_namespaceObject.createRemoteModuleFederationConfig)(scope, resolvedApp, remotes));
102
103
  if ((0, external_descriptors_cjs_namespaceObject.appHasApi)(resolvedApp)) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/backend-federation.config.ts`, (0, external_module_federation_cjs_namespaceObject.createBackendModuleFederationConfig)(resolvedApp));
103
104
  }
104
- function writeAppRouteAndShellFiles({ targetDir, scope, resolvedApp, emitsUi, remotes, publicWeb, writeAppFile }) {
105
+ function writeAppRouteAndShellFiles({ targetDir, scope, resolvedApp, emitsUi, remotes, availableRemotes, publicWeb, writeAppFile }) {
105
106
  if (!emitsUi) return;
106
107
  if ((resolvedApp.verticalRefs?.length ?? 0) > 0) {
107
108
  writeAppFile('src/federated-components.tsx', (0, external_demo_components_cjs_namespaceObject.createFederatedComponentsRegistry)(scope, resolvedApp, remotes));
@@ -115,19 +116,26 @@ function writeAppRouteAndShellFiles({ targetDir, scope, resolvedApp, emitsUi, re
115
116
  writeAppFile('src/routes/vertical-components.tsx', (0, external_demo_components_cjs_namespaceObject.createShellRemoteComponents)(resolvedApp, remotes.filter(external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)));
116
117
  writeAppFile('src/routes/vertical-components.worker.tsx', (0, external_demo_components_cjs_namespaceObject.createShellWorkerRemoteComponents)(resolvedApp, remotes.filter(external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)));
117
118
  writeAppFile('src/routes/shell-frame.tsx', (0, external_app_files_cjs_namespaceObject.createShellFrameComponent)(resolvedApp));
118
- (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/api/vertical-clients.ts`, (0, external_api_cjs_namespaceObject.createShellApiClient)(scope, remotes));
119
+ (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/api/vertical-clients.ts`, (0, external_api_cjs_namespaceObject.createShellApiClient)(scope, availableRemotes));
119
120
  } else for (const expose of (0, external_descriptors_cjs_namespaceObject.distributedSsrExposes)(resolvedApp))writeAppFile(`src/routes/[lang]/_mf/fragment/${(0, external_descriptors_cjs_namespaceObject.distributedSsrFragmentSlug)(expose)}/page.tsx`, (0, external_demo_components_cjs_namespaceObject.createRemoteExposeFragmentPage)(resolvedApp, expose));
120
121
  }
121
122
  function writeAppApiAndRemoteExposeFiles({ targetDir, scope, resolvedApp, emitsUi, writeAppFile }) {
122
123
  if ((0, external_descriptors_cjs_namespaceObject.appHasApi)(resolvedApp)) {
123
124
  const rpcProtocol = 'rpc' === (0, external_descriptors_cjs_namespaceObject.resolveApiProtocol)(resolvedApp);
125
+ const clientDirectory = emitsUi ? 'src/api' : 'shared';
124
126
  if (rpcProtocol) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/shared/rpc.ts`, (0, rpc_cjs_namespaceObject.createRpcContractFile)(resolvedApp));
125
- else (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/shared/api.ts`, (0, external_api_cjs_namespaceObject.createSharedApi)(resolvedApp));
126
- (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/api/index.ts`, (0, external_api_cjs_namespaceObject.createApiServiceEntry)(resolvedApp, rpcProtocol ? '../shared/rpc.ts' : '../shared/api.ts'));
127
+ else (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/shared/api.ts`, (0, external_api_cjs_namespaceObject.createSharedApi)(resolvedApp, {
128
+ scope
129
+ }));
130
+ (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/api/index.ts`, (0, external_api_cjs_namespaceObject.createApiServiceEntry)(resolvedApp, rpcProtocol ? '../shared/rpc.ts' : '../shared/api.ts', {
131
+ scope
132
+ }));
127
133
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/api/backend-federation.ts`, (0, external_backend_federation_cjs_namespaceObject.createBackendFederationContractFile)(resolvedApp));
128
134
  (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/api/effect-api.ts`, (0, external_api_cjs_namespaceObject.createBackendEffectApiExpose)(scope, resolvedApp));
129
- if (rpcProtocol) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/api/${resolvedApp.api.stem}-rpc-client.ts`, (0, rpc_cjs_namespaceObject.createRpcClientFile)(resolvedApp));
130
- else (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/src/api/${resolvedApp.api.stem}-client.ts`, (0, external_api_cjs_namespaceObject.createApiClient)(resolvedApp, '../../shared/api'));
135
+ if (rpcProtocol) (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/${clientDirectory}/${resolvedApp.api.stem}-rpc-client.ts`, (0, rpc_cjs_namespaceObject.createRpcClientFile)(resolvedApp, emitsUi ? '../../shared/rpc.ts' : './rpc.ts'));
136
+ else (0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, `${resolvedApp.directory}/${clientDirectory}/${resolvedApp.api.stem}-client.ts`, (0, external_api_cjs_namespaceObject.createApiClient)(resolvedApp, emitsUi ? '../../shared/api' : './api', {
137
+ scope
138
+ }));
131
139
  }
132
140
  if ('vertical' === resolvedApp.kind && emitsUi) {
133
141
  writeAppFile('src/federation-entry.tsx', (0, external_demo_components_cjs_namespaceObject.createRemoteEntry)(resolvedApp));