@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,259 +0,0 @@
1
- import "node:module";
2
- import node_fs from "node:fs";
3
- import node_path from "node:path";
4
- import { ULTRAMODERN_CREATE_PACKAGE } from "../../../ultramodern-package-source.js";
5
- import { createAppEnvDts, createAppRuntimeConfig } from "../../../ultramodern-workspace/app-files.js";
6
- import { createRemoteExposeFragmentPage, regenerateGeneratedNavigationSurface, regenerateGeneratedProductRouteAdapter, remoteComponentOutputPath } from "../../../ultramodern-workspace/demo-components.js";
7
- import { appI18nNamespace, distributedSsrExposes, distributedSsrFragmentSlug, resolveRemoteRefs } from "../../../ultramodern-workspace/descriptors.js";
8
- import { createAppMfTypesTsConfig, createAppTsConfig, createSharedPackageTsConfig, createTsConfigBase } from "../../../ultramodern-workspace/package-json.js";
9
- import { allWorkspaceAppsFromToolingConfig } from "../../config.js";
10
- import { writeGeneratedUiSourceIfChanged } from "./generated-ui-source.js";
11
- import { writeJsonFile } from "./io.js";
12
- function jsonObject(value) {
13
- return null === value || 'object' != typeof value || Array.isArray(value) ? void 0 : value;
14
- }
15
- function hasStringName(value) {
16
- return 'string' == typeof value?.name;
17
- }
18
- function readJsonObject(filePath) {
19
- if (!node_fs.existsSync(filePath)) return;
20
- return jsonObject(JSON.parse(node_fs.readFileSync(filePath, 'utf-8')));
21
- }
22
- function mergeUniqueJsonValues(generated, existing) {
23
- const generatedValues = Array.isArray(generated) ? generated : [];
24
- const existingValues = Array.isArray(existing) ? existing : [];
25
- const seen = new Set(generatedValues.map((value)=>JSON.stringify(value)));
26
- return [
27
- ...generatedValues,
28
- ...existingValues.filter((value)=>{
29
- const key = JSON.stringify(value);
30
- if (seen.has(key)) return false;
31
- seen.add(key);
32
- return true;
33
- })
34
- ];
35
- }
36
- function mergeTypeScriptPlugins(generated, existing) {
37
- const generatedPlugins = Array.isArray(generated) ? generated : [];
38
- const existingPlugins = Array.isArray(existing) ? existing : [];
39
- const existingByName = new Map(existingPlugins.map(jsonObject).filter(hasStringName).map((plugin)=>[
40
- plugin.name,
41
- plugin
42
- ]));
43
- const merged = generatedPlugins.map((generatedPlugin)=>{
44
- const generatedObject = jsonObject(generatedPlugin);
45
- const existingObject = 'string' == typeof generatedObject?.name ? existingByName.get(generatedObject.name) : void 0;
46
- if (!generatedObject || !existingObject) return generatedPlugin;
47
- existingByName.delete(generatedObject.name);
48
- return {
49
- ...generatedObject,
50
- ...existingObject,
51
- diagnosticSeverity: {
52
- ...jsonObject(generatedObject.diagnosticSeverity),
53
- ...jsonObject(existingObject.diagnosticSeverity)
54
- }
55
- };
56
- });
57
- return [
58
- ...merged,
59
- ...existingByName.values()
60
- ];
61
- }
62
- function mergeTypeScriptConfig(generated, existing) {
63
- const generatedConfig = jsonObject(generated) ?? {};
64
- const existingConfig = jsonObject(existing) ?? {};
65
- const generatedCompilerOptions = jsonObject(generatedConfig.compilerOptions) ?? {};
66
- const existingCompilerOptions = {
67
- ...jsonObject(existingConfig.compilerOptions) ?? {}
68
- };
69
- delete existingCompilerOptions.skipLibCheck;
70
- const compilerOptions = {
71
- ...existingCompilerOptions,
72
- ...generatedCompilerOptions
73
- };
74
- if (Array.isArray(generatedCompilerOptions.plugins) || Array.isArray(existingCompilerOptions.plugins)) compilerOptions.plugins = mergeTypeScriptPlugins(generatedCompilerOptions.plugins, existingCompilerOptions.plugins);
75
- const merged = {
76
- ...existingConfig,
77
- ...generatedConfig
78
- };
79
- if (Object.keys(compilerOptions).length > 0) merged.compilerOptions = compilerOptions;
80
- for (const key of [
81
- 'include',
82
- 'exclude',
83
- 'references'
84
- ])if (Array.isArray(generatedConfig[key]) || Array.isArray(existingConfig[key])) merged[key] = mergeUniqueJsonValues(generatedConfig[key], existingConfig[key]);
85
- return merged;
86
- }
87
- function writeMergedTypeScriptConfig(io, filePath, generated) {
88
- const existing = readJsonObject(filePath);
89
- const merged = mergeTypeScriptConfig(generated, existing);
90
- if (existing && JSON.stringify(merged) !== JSON.stringify(generated)) io.log(`${node_path.relative(io.workspaceRoot, filePath)} preserved consumer-owned TypeScript configuration.`);
91
- return writeJsonFile(io, filePath, merged);
92
- }
93
- function generatedManifest(io, config) {
94
- const sourcePath = node_path.isAbsolute(config.sourcePath) ? config.sourcePath : node_path.join(io.workspaceRoot, config.sourcePath);
95
- const manifest = readJsonObject(sourcePath);
96
- const generator = jsonObject(manifest?.generator);
97
- return generator?.package === ULTRAMODERN_CREATE_PACKAGE || generator?.package === '@modern-js/create' ? manifest : void 0;
98
- }
99
- function manifestApps(manifest) {
100
- const topology = jsonObject(manifest.topology);
101
- return Array.isArray(topology?.apps) ? topology.apps.map(jsonObject).filter((app)=>void 0 !== app) : [];
102
- }
103
- function packageManifest(io, appDirectory) {
104
- return readJsonObject(node_path.join(io.workspaceRoot, appDirectory, 'package.json'));
105
- }
106
- function appSurfaceIsOwned(io, app, manifestApp) {
107
- const packageJson = packageManifest(io, app.directory);
108
- return manifestApp.path === app.directory && manifestApp.kind === app.kind && 'string' == typeof manifestApp.package && packageJson?.name === manifestApp.package;
109
- }
110
- function shellSurfaceIsOwned(io, app, manifestApp) {
111
- const moduleFederation = jsonObject(manifestApp.moduleFederation);
112
- return appSurfaceIsOwned(io, app, manifestApp) && 'shell' === app.kind && moduleFederation?.role === 'host';
113
- }
114
- function deliveryUnitSurfaceIsOwned(io, config, app, manifestApp, expose, sourcePath) {
115
- const deliveryUnit = jsonObject(manifestApp.deliveryUnit);
116
- const moduleFederation = jsonObject(manifestApp.moduleFederation);
117
- const packageJson = packageManifest(io, app.directory);
118
- const packageExports = jsonObject(packageJson?.exports);
119
- const exposedSurfaces = Array.isArray(moduleFederation?.exposes) ? moduleFederation.exposes : [];
120
- const packageName = manifestApp.package;
121
- return 'vertical' === manifestApp.kind && manifestApp.path === app.directory && 'string' == typeof packageName && packageJson?.name === packageName && deliveryUnit?.kind === 'microvertical-delivery-unit' && deliveryUnit.packageName === packageName && deliveryUnit.unitId === `${config.workspace.packageScope}/${app.id}` && exposedSurfaces.includes(expose) && packageExports?.[expose] === sourcePath;
122
- }
123
- function updateGeneratedProductRouteAdapters(io, config) {
124
- const manifest = generatedManifest(io, config);
125
- if (void 0 === manifest) return false;
126
- const appsById = new Map(manifestApps(manifest).map((app)=>[
127
- String(app.id ?? ''),
128
- app
129
- ]));
130
- let changed = false;
131
- for (const app of allWorkspaceAppsFromToolingConfig(config)){
132
- const manifestApp = appsById.get(app.id);
133
- if ('decide' !== app.id && 'shell' !== app.kind || void 0 === manifestApp || !appSurfaceIsOwned(io, app, manifestApp)) continue;
134
- const routeDirectory = node_path.join(io.workspaceRoot, app.directory, 'src/routes/[lang]/tractors/[slug]');
135
- for (const fileName of [
136
- 'page.search.ts',
137
- 'page.tsx'
138
- ]){
139
- const filePath = node_path.join(routeDirectory, fileName);
140
- if (!node_fs.existsSync(filePath)) continue;
141
- const source = node_fs.readFileSync(filePath, 'utf-8');
142
- changed = io.write(filePath, regenerateGeneratedProductRouteAdapter(source)) || changed;
143
- }
144
- }
145
- return changed;
146
- }
147
- function updateGeneratedNavigationSurfaces(io, config) {
148
- const manifest = generatedManifest(io, config);
149
- if (void 0 === manifest) return false;
150
- const apps = allWorkspaceAppsFromToolingConfig(config);
151
- const appsById = new Map(manifestApps(manifest).map((app)=>[
152
- String(app.id ?? ''),
153
- app
154
- ]));
155
- let changed = false;
156
- for (const app of apps){
157
- const manifestApp = appsById.get(app.id);
158
- if (void 0 !== manifestApp) {
159
- if ('shell' === app.kind && shellSurfaceIsOwned(io, app, manifestApp)) {
160
- const filePath = node_path.join(io.workspaceRoot, app.directory, 'src/routes/shell-frame.tsx');
161
- if (node_fs.existsSync(filePath)) {
162
- const source = node_fs.readFileSync(filePath, 'utf-8');
163
- changed = io.write(filePath, regenerateGeneratedNavigationSurface(source, 'shell-frame')) || changed;
164
- }
165
- continue;
166
- }
167
- for (const [expose, sourcePath] of Object.entries(app.exposes ?? {})){
168
- const isCheckoutNavigationSurface = './AddToCart' === expose && './src/components/add-to-cart.tsx' === sourcePath || './CheckoutPage' === expose && './src/components/checkout-page.tsx' === sourcePath;
169
- if ('checkout' !== app.id || !isCheckoutNavigationSurface) continue;
170
- const relativePath = remoteComponentOutputPath(app, expose);
171
- if (void 0 === relativePath || !deliveryUnitSurfaceIsOwned(io, config, app, manifestApp, expose, sourcePath)) continue;
172
- const filePath = node_path.join(io.workspaceRoot, relativePath);
173
- if (!node_fs.existsSync(filePath)) continue;
174
- const source = node_fs.readFileSync(filePath, 'utf-8');
175
- if (source.includes(`data-modern-boundary-id="${app.id}"`) && source.includes(`data-modern-mf-expose="${expose}"`)) changed = io.write(filePath, regenerateGeneratedNavigationSurface(source, './AddToCart' === expose ? 'checkout-add-to-cart' : 'checkout-page')) || changed;
176
- }
177
- }
178
- }
179
- return changed;
180
- }
181
- function ensureGeneratedIgnoreRules(io) {
182
- const gitignorePath = node_path.join(io.workspaceRoot, '.gitignore');
183
- const existing = node_fs.existsSync(gitignorePath) ? node_fs.readFileSync(gitignorePath, 'utf-8') : '';
184
- const lines = 0 === existing.trimEnd().length ? [] : existing.trimEnd().split(/\r?\n/u);
185
- let changed = false;
186
- for (const rule of [
187
- '.mf/',
188
- '**/.mf/',
189
- 'dist-cloudflare/',
190
- '.output/',
191
- '**/.output/',
192
- '.modern-js/',
193
- '**/.modern-js/',
194
- '**/src/modern-tanstack/',
195
- '**/.tsgo.*.resolved.json'
196
- ])if (!lines.includes(rule)) {
197
- lines.push(rule);
198
- changed = true;
199
- }
200
- if (!changed) return false;
201
- return io.write(gitignorePath, `${lines.join('\n')}\n`);
202
- }
203
- function updateGeneratedShellRuntimeSurfaces(io, config) {
204
- const manifest = generatedManifest(io, config);
205
- if (void 0 === manifest) return false;
206
- const apps = allWorkspaceAppsFromToolingConfig(config);
207
- const remotes = apps.filter((app)=>'shell' !== app.kind);
208
- const appsById = new Map(manifestApps(manifest).map((app)=>[
209
- String(app.id ?? ''),
210
- app
211
- ]));
212
- let changed = false;
213
- for (const app of apps.filter((app)=>'shell' === app.kind)){
214
- const manifestApp = appsById.get(app.id);
215
- if (void 0 === manifestApp || !shellSurfaceIsOwned(io, app, manifestApp)) continue;
216
- const runtimePath = node_path.join(io.workspaceRoot, app.directory, 'src/modern.runtime.ts');
217
- if (!node_fs.existsSync(runtimePath)) continue;
218
- const runtimeSource = node_fs.readFileSync(runtimePath, 'utf-8');
219
- if (!runtimeSource.includes('/verticals/') || !runtimeSource.includes('/locales/')) continue;
220
- const shellRemotes = resolveRemoteRefs(app, remotes);
221
- for (const language of [
222
- 'en',
223
- 'cs'
224
- ]){
225
- const shellLocaleDirectory = node_path.join(io.workspaceRoot, app.directory, 'locales', language);
226
- const shellLocale = readJsonObject(node_path.join(shellLocaleDirectory, `${appI18nNamespace(app)}.json`)) ?? {};
227
- const mergedLocale = Object.assign({}, shellLocale, ...shellRemotes.map((remote)=>readJsonObject(node_path.join(io.workspaceRoot, remote.directory, 'locales', language, `${appI18nNamespace(remote)}.json`))));
228
- changed = writeJsonFile(io, node_path.join(shellLocaleDirectory, `${appI18nNamespace(app)}.json`), mergedLocale) || changed;
229
- changed = writeJsonFile(io, node_path.join(shellLocaleDirectory, 'translation.json'), mergedLocale) || changed;
230
- }
231
- changed = io.write(runtimePath, createAppRuntimeConfig(app, config.workspace.packageScope, remotes)) || changed;
232
- }
233
- return changed;
234
- }
235
- function updateGeneratedTypeScriptSurfaces(io, config) {
236
- const apps = allWorkspaceAppsFromToolingConfig(config);
237
- const remotes = apps.filter((app)=>'shell' !== app.kind);
238
- writeMergedTypeScriptConfig(io, node_path.join(io.workspaceRoot, 'tsconfig.base.json'), createTsConfigBase());
239
- ensureGeneratedIgnoreRules(io);
240
- for (const sharedPackage of [
241
- 'packages/shared-contracts',
242
- 'packages/shared-design-tokens'
243
- ])writeMergedTypeScriptConfig(io, node_path.join(io.workspaceRoot, sharedPackage, 'tsconfig.json'), createSharedPackageTsConfig(sharedPackage));
244
- for (const app of apps){
245
- writeMergedTypeScriptConfig(io, node_path.join(io.workspaceRoot, app.directory, 'tsconfig.json'), createAppTsConfig(app, remotes));
246
- writeMergedTypeScriptConfig(io, node_path.join(io.workspaceRoot, app.directory, 'tsconfig.mf-types.json'), createAppMfTypesTsConfig(app));
247
- io.write(node_path.join(io.workspaceRoot, app.directory, 'src/modern-app-env.d.ts'), createAppEnvDts(app, remotes, config.workspace.packageScope));
248
- if ('shell' !== app.kind) for (const expose of distributedSsrExposes(app)){
249
- const fragmentPagePath = node_path.join(io.workspaceRoot, app.directory, 'src/routes/[lang]/_mf/fragment', distributedSsrFragmentSlug(expose), 'page.tsx');
250
- if (!node_fs.existsSync(fragmentPagePath)) continue;
251
- const fragmentPageSource = node_fs.readFileSync(fragmentPagePath, 'utf-8');
252
- if (fragmentPageSource.includes("from '@modern-js/runtime/module-federation';") && fragmentPageSource.includes('data-modern-distributed-ssr-marker="start"')) writeGeneratedUiSourceIfChanged(io, fragmentPagePath, createRemoteExposeFragmentPage(app, expose));
253
- }
254
- }
255
- updateGeneratedShellRuntimeSurfaces(io, config);
256
- updateGeneratedProductRouteAdapters(io, config);
257
- updateGeneratedNavigationSurfaces(io, config);
258
- }
259
- export { updateGeneratedTypeScriptSurfaces };
@@ -1,11 +0,0 @@
1
- import "node:module";
2
- import node_path from "node:path";
3
- import { createZeropsRuntimeMaterializationScript } from "../../../ultramodern-workspace/workspace-scripts.js";
4
- import { createZeropsYaml } from "../../../ultramodern-workspace/zerops.js";
5
- import { allWorkspaceAppsFromToolingConfig } from "../../config.js";
6
- function updateGeneratedZeropsArtifacts(io, config) {
7
- const apps = allWorkspaceAppsFromToolingConfig(config);
8
- io.writeGenerated(node_path.join(io.workspaceRoot, 'zerops.yaml'), `${createZeropsYaml(config.workspace.packageScope, apps)}\n`);
9
- io.writeGenerated(node_path.join(io.workspaceRoot, "scripts/materialize-zerops-runtime.mjs"), createZeropsRuntimeMaterializationScript());
10
- }
11
- export { updateGeneratedZeropsArtifacts };
@@ -1,9 +0,0 @@
1
- import "node:module";
2
- export { updateGeneratedBackendFederationContractFiles } from "./generated-artifacts-backend-federation.js";
3
- export { updateGeneratedBuildIdentityModules } from "./generated-artifacts-build-identity.js";
4
- export { updateGeneratedModernConfigs } from "./generated-artifacts-modern-configs.js";
5
- export { ensureGeneratedOxfmtIgnorePatterns } from "./generated-artifacts-oxfmt.js";
6
- export { ensureGeneratedOxlintComponentStyle } from "./generated-artifacts-oxlint.js";
7
- export { removeGeneratedFileIfExists, removeStaleBackendFederationArtifacts } from "./generated-artifacts-removal.js";
8
- export { updateGeneratedTypeScriptSurfaces } from "./generated-artifacts-typescript.js";
9
- export { updateGeneratedZeropsArtifacts } from "./generated-artifacts-zerops.js";
@@ -1,16 +0,0 @@
1
- import "node:module";
2
- import node_fs from "node:fs";
3
- import node_path from "node:path";
4
- function ensureGeneratedPatchFile(io, relativePatchPath, sourcePatchPath) {
5
- const targetPath = node_path.join(io.workspaceRoot, relativePatchPath);
6
- const patch = node_fs.readFileSync(sourcePatchPath, 'utf-8');
7
- return io.write(targetPath, patch);
8
- }
9
- function removeGeneratedPatchFileIfUnchanged(io, relativePatchPath, sourcePatchPath) {
10
- const targetPath = node_path.join(io.workspaceRoot, relativePatchPath);
11
- if (!node_fs.existsSync(targetPath)) return false;
12
- const patch = node_fs.readFileSync(sourcePatchPath, 'utf-8');
13
- if (node_fs.readFileSync(targetPath, 'utf-8') !== patch) return false;
14
- return io.remove(targetPath);
15
- }
16
- export { ensureGeneratedPatchFile, removeGeneratedPatchFileIfUnchanged };
@@ -1,101 +0,0 @@
1
- import "node:module";
2
- import node_fs from "node:fs";
3
- import { isDeepStrictEqual } from "node:util";
4
- import "./io.js";
5
- const multiCharacterTokens = [
6
- '===',
7
- '!==',
8
- '**=',
9
- '&&=',
10
- '||=',
11
- '??=',
12
- '...',
13
- '=>',
14
- '==',
15
- '!=',
16
- '<=',
17
- '>=',
18
- '++',
19
- '--',
20
- '&&',
21
- '||',
22
- '??',
23
- '?.',
24
- '**',
25
- '+=',
26
- '-=',
27
- '*=',
28
- '/=',
29
- '%=',
30
- '&=',
31
- '|=',
32
- '^=',
33
- '</',
34
- '/>'
35
- ];
36
- function isIdentifierPart(character) {
37
- return /[$_\p{ID_Continue}\u200C\u200D]/u.test(character);
38
- }
39
- function generatedUiSourceTokens(source) {
40
- const tokens = [];
41
- let index = 0;
42
- while(index < source.length){
43
- const character = source[index] ?? '';
44
- if (/\s/u.test(character)) {
45
- index += 1;
46
- continue;
47
- }
48
- if (source.startsWith('//', index)) {
49
- const lineEnd = source.indexOf('\n', index + 2);
50
- index = lineEnd < 0 ? source.length : lineEnd + 1;
51
- continue;
52
- }
53
- if (source.startsWith('/*', index)) {
54
- const commentEnd = source.indexOf('*/', index + 2);
55
- index = commentEnd < 0 ? source.length : commentEnd + 2;
56
- continue;
57
- }
58
- if ("'" === character || '"' === character || '`' === character) {
59
- const quote = character;
60
- const start = index;
61
- index += 1;
62
- let escaped = false;
63
- while(index < source.length){
64
- const current = source[index] ?? '';
65
- index += 1;
66
- if (escaped) escaped = false;
67
- else if ('\\' === current) escaped = true;
68
- else if (current === quote) break;
69
- }
70
- tokens.push(`literal:${source.slice(start, index)}`);
71
- continue;
72
- }
73
- if (isIdentifierPart(character)) {
74
- const start = index;
75
- index += 1;
76
- while(isIdentifierPart(source[index] ?? ''))index += 1;
77
- tokens.push(`word:${source.slice(start, index)}`);
78
- continue;
79
- }
80
- const multiCharacterToken = multiCharacterTokens.find((token)=>source.startsWith(token, index));
81
- if (multiCharacterToken) {
82
- tokens.push(`punctuator:${multiCharacterToken}`);
83
- index += multiCharacterToken.length;
84
- continue;
85
- }
86
- tokens.push(`punctuator:${character}`);
87
- index += 1;
88
- }
89
- return tokens;
90
- }
91
- function generatedUiSourceRequiresRewrite(existingSource, nextSource) {
92
- return !isDeepStrictEqual(generatedUiSourceTokens(existingSource), generatedUiSourceTokens(nextSource));
93
- }
94
- function writeGeneratedUiSourceIfChanged(io, filePath, nextSource) {
95
- if (node_fs.existsSync(filePath)) {
96
- const existingSource = node_fs.readFileSync(filePath, 'utf-8');
97
- if (!generatedUiSourceRequiresRewrite(existingSource, nextSource)) return io.writeGenerated(filePath, existingSource);
98
- }
99
- return io.writeGenerated(filePath, nextSource);
100
- }
101
- export { generatedUiSourceRequiresRewrite, writeGeneratedUiSourceIfChanged };
@@ -1,30 +0,0 @@
1
- import "node:module";
2
- const migrateStrictEffectHelp = `Usage:
3
- ultramodern-create ultramodern migrate-strict-effect --version <version> [--dry-run] [--skip-install]
4
-
5
- Updates generated UltraModern package-source metadata, Modern package aliases,
6
- framework-owned toolchain pins, direct Effect API topology metadata, strict
7
- Effect pnpm overrides/trust policy, framework-owned TypeScript config
8
- surfaces, and the pnpm lockfile. Source code still has to pass pnpm api:check
9
- and pnpm contract:check.
10
-
11
- Existing Modern configs are treated as consumer-owned unless generated
12
- ownership can be proven. Package scripts and TypeScript configs are merged at
13
- their framework-owned boundaries so consumer command segments, includes,
14
- references, plugins, and diagnostic overrides survive. An ambiguous Module
15
- Federation config that requires a bridge update is refused before any file is
16
- written, with the config path and the manual resolution required.
17
-
18
- The obsolete react-router dependency is dropped from every generated app that
19
- does not import React Router in its own source. Each generated Module
20
- Federation config then declares bridge.enableBridgeRouter from what its app
21
- still depends on: true where the app declares react-router or react-router-dom,
22
- the router-free false everywhere else.
23
-
24
- When the compact config is absent but legacy UltraModern 3.2 metadata is
25
- present, the compact config is synthesized from it first. Shell-only
26
- workspaces skip the backend-federation and Zerops runtime stages. Pass
27
- --dry-run to print the planned filesystem changes without writing anything
28
- (including preserved consumer overlays; implies --skip-install).
29
- `;
30
- export { migrateStrictEffectHelp };
@@ -1,15 +0,0 @@
1
- import "node:module";
2
- import { spawnSync } from "node:child_process";
3
- function runPnpmLockfileRefresh(context) {
4
- const result = spawnSync('pnpm', [
5
- 'install',
6
- '--lockfile-only',
7
- "--ignore-scripts"
8
- ], {
9
- cwd: context.workspaceRoot,
10
- stdio: 'inherit'
11
- });
12
- if (result.error) throw result.error;
13
- return result.status ?? 1;
14
- }
15
- export { runPnpmLockfileRefresh };