@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,9 +1,8 @@
1
- import { assertReleaseCohortPackageSource, parseUltramodernReleaseCohort, releaseCohortSelectors } from "../ultramodern-release-cohort.js";
2
1
  import { rpcPath } from "./api/rpc.js";
3
2
  import { appEmitsBrowserUi, appHasApi, appI18nNamespace, createCloudflarePublicUrlEnv, createCloudflareWorkerName, resolveApiPrefix, resolveApiProtocol, resolveApiStem } from "./descriptors.js";
4
3
  import { createLocalisedUrlsMap } from "./routes.js";
5
4
  import { isRecord } from "./types.js";
6
- import { CLOUDFLARE_COMPATIBILITY_DATE, CLOUDFLARE_WORKERS_TYPES_VERSION, CROSS_ENV_VERSION, DRIZZLE_ORM_VERSION, EFFECT_TSGO_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, I18NEXT_VERSION, LEFTHOOK_VERSION, MINIFLARE_VERSION, MODULE_FEDERATION_NODE_VERSION, MODULE_FEDERATION_VERSION, MSGPACKR_VERSION, NODE_FETCH_VERSION, NODE_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, REACT_DOM_VERSION, REACT_VERSION, RSBUILD_PLUGIN_TAILWINDCSS_VERSION, TAILWIND_VERSION, TANSTACK_HISTORY_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_NATIVE_PREVIEW_VERSION, TYPESCRIPT_VERSION, TYPES_NODE_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WORKERD_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION, ZOD_VERSION } from "./versions.js";
5
+ import { CLOUDFLARE_COMPATIBILITY_DATE, EFFECT_VERSION, NODE_VERSION, PNPM_VERSION, ULTRAMODERN_PACKAGE_PINS } from "./versions.js";
7
6
  function createCloudflareProofRoute(app) {
8
7
  if ('shell' === app.kind) return {
9
8
  ssr: '/en',
@@ -207,10 +206,6 @@ function createCloudflareDeployContract(scope, app) {
207
206
  routes: createCloudflareProofRoute(app),
208
207
  security: createCloudflareSecurityContract(),
209
208
  qualityGates: createPublicWebsiteQualityGateContract(),
210
- evidence: {
211
- proofScript: "scripts/proof-cloudflare-version.mts",
212
- reportDefault: '.codex/reports/cloudflare-version-proof/public-url-proof.json'
213
- },
214
209
  ...app.api ? {
215
210
  jsonSmokeChecks: [
216
211
  createApiSmokeCheck(app)
@@ -218,344 +213,6 @@ function createCloudflareDeployContract(scope, app) {
218
213
  } : {}
219
214
  };
220
215
  }
221
- const ULTRAMODERN_PACKAGE_PINS = {
222
- appDependencies: {
223
- '@module-federation/bridge-react': MODULE_FEDERATION_VERSION,
224
- '@module-federation/modern-js-v3': MODULE_FEDERATION_VERSION,
225
- '@module-federation/runtime': MODULE_FEDERATION_VERSION,
226
- '@tanstack/react-router': TANSTACK_ROUTER_VERSION,
227
- i18next: I18NEXT_VERSION,
228
- 'node-fetch': NODE_FETCH_VERSION,
229
- react: REACT_VERSION,
230
- 'react-dom': REACT_DOM_VERSION
231
- },
232
- bffEffectDependencies: {
233
- '@effect/opentelemetry': EFFECT_VERSION,
234
- effect: EFFECT_VERSION
235
- },
236
- appDevDependencies: {
237
- '@effect/tsgo': EFFECT_TSGO_VERSION,
238
- '@rsbuild/plugin-tailwindcss': `^${RSBUILD_PLUGIN_TAILWINDCSS_VERSION}`,
239
- "@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
240
- '@types/node': TYPES_NODE_VERSION,
241
- '@types/react': TYPES_REACT_VERSION,
242
- '@types/react-dom': TYPES_REACT_DOM_VERSION,
243
- 'cross-env': CROSS_ENV_VERSION,
244
- tailwindcss: `^${TAILWIND_VERSION}`,
245
- typescript: TYPESCRIPT_VERSION,
246
- wrangler: WRANGLER_VERSION,
247
- 'zephyr-rspack-plugin': ZEPHYR_RSPACK_PLUGIN_VERSION
248
- },
249
- rootDevDependencies: {
250
- '@effect/tsgo': EFFECT_TSGO_VERSION,
251
- "@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
252
- 'cross-env': CROSS_ENV_VERSION,
253
- lefthook: LEFTHOOK_VERSION,
254
- miniflare: MINIFLARE_VERSION,
255
- oxlint: OXLINT_VERSION,
256
- oxfmt: OXFMT_VERSION,
257
- ultracite: ULTRACITE_VERSION,
258
- wrangler: WRANGLER_VERSION,
259
- 'zephyr-agent': ZEPHYR_AGENT_VERSION
260
- },
261
- transitiveDependencies: {
262
- '@cloudflare/workers-types': CLOUDFLARE_WORKERS_TYPES_VERSION,
263
- '@module-federation/node': MODULE_FEDERATION_NODE_VERSION,
264
- '@tanstack/history': TANSTACK_HISTORY_VERSION,
265
- '@tanstack/router-core': TANSTACK_ROUTER_CORE_VERSION,
266
- "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
267
- miniflare: MINIFLARE_VERSION,
268
- workerd: WORKERD_VERSION
269
- }
270
- };
271
- const requiredPatchPolicies = [
272
- {
273
- packageName: '@module-federation/dts-plugin',
274
- version: MODULE_FEDERATION_VERSION,
275
- path: `patches/@module-federation__dts-plugin@${MODULE_FEDERATION_VERSION}.patch`
276
- },
277
- {
278
- packageName: '@module-federation/bridge-react',
279
- version: MODULE_FEDERATION_VERSION,
280
- path: `patches/@module-federation__bridge-react@${MODULE_FEDERATION_VERSION}.patch`
281
- },
282
- {
283
- packageName: '@module-federation/modern-js-v3',
284
- version: MODULE_FEDERATION_VERSION,
285
- path: `patches/@module-federation__modern-js-v3@${MODULE_FEDERATION_VERSION}.patch`
286
- },
287
- {
288
- packageName: '@module-federation/runtime-core',
289
- version: MODULE_FEDERATION_VERSION,
290
- path: `patches/@module-federation__runtime-core@${MODULE_FEDERATION_VERSION}.patch`
291
- },
292
- {
293
- packageName: 'msgpackr',
294
- version: MSGPACKR_VERSION,
295
- path: `patches/msgpackr@${MSGPACKR_VERSION}.patch`
296
- },
297
- {
298
- packageName: 'zod',
299
- version: ZOD_VERSION,
300
- path: `patches/zod@${ZOD_VERSION}.patch`
301
- }
302
- ];
303
- const conditionalPatchPolicies = [
304
- {
305
- packageName: 'drizzle-orm',
306
- version: DRIZZLE_ORM_VERSION,
307
- path: 'patches/drizzle-orm-ts7-strict-declarations.patch'
308
- }
309
- ];
310
- const stalePatchPolicies = [
311
- {
312
- packageName: '@tanstack/router-core',
313
- version: '1.171.27',
314
- path: 'patches/@tanstack__router-core@1.171.27.patch',
315
- sha256: 'd0e147ec82083771b70989d2a1da6aa47f342ae42071af86c4247649f6a5b9e9'
316
- },
317
- {
318
- packageName: 'msgpackr',
319
- version: '2.0.6',
320
- path: 'patches/msgpackr@2.0.6.patch',
321
- sha256: 'ea06f707e02e6b95d68e199347ada7bd640764e2653bfdd77664592390fac811'
322
- },
323
- {
324
- packageName: 'zod',
325
- version: '4.4.3',
326
- path: 'patches/zod@4.4.3.patch',
327
- sha256: '2ae01a829b3f4082e46f1ccb4cbcffdea0db8664c2544b3566cb507e2c471c77'
328
- },
329
- {
330
- packageName: '@module-federation/bridge-react',
331
- version: '2.8.2',
332
- path: 'patches/@module-federation__bridge-react@2.8.2.patch',
333
- sha256: '8c084f41790295af8fd015b897c6298bbc13d927b796c624ac96cb2bdb4bc87c'
334
- },
335
- {
336
- packageName: '@module-federation/modern-js-v3',
337
- version: '2.8.2',
338
- path: 'patches/@module-federation__modern-js-v3@2.8.2.patch',
339
- sha256: '948d2a725ae526f395b0343b113ff80dfaa50dbdec8158179746e98259925d20'
340
- },
341
- {
342
- packageName: '@module-federation/bridge-react',
343
- version: '2.8.0',
344
- path: 'patches/@module-federation__bridge-react@2.8.0.patch',
345
- sha256: '54bfc79e097473222f83cbfa6d717792e3026bf16b5097c2ed91715b7da126be'
346
- },
347
- {
348
- packageName: '@module-federation/modern-js-v3',
349
- version: '2.8.0',
350
- path: 'patches/@module-federation__modern-js-v3@2.8.0.patch',
351
- sha256: '948d2a725ae526f395b0343b113ff80dfaa50dbdec8158179746e98259925d20'
352
- },
353
- {
354
- packageName: '@module-federation/bridge-react',
355
- version: '2.7.0',
356
- path: 'patches/@module-federation__bridge-react@2.7.0.patch',
357
- sha256: '2f89441475f83a6e12d8c2a755b5b15c4d2b04523a1b33fd318c2d537382537f'
358
- },
359
- {
360
- packageName: '@module-federation/modern-js-v3',
361
- version: '2.7.0',
362
- path: 'patches/@module-federation__modern-js-v3@2.7.0.patch',
363
- sha256: 'f51adf0aa6c6e2daa5b7d2978a7716c0d4fb05b29af449b2f16257b957fb7923'
364
- },
365
- {
366
- packageName: 'effect',
367
- version: '4.0.0-beta.107',
368
- path: 'patches/effect-schema-error-type-id.patch',
369
- sha256: 'ed9f636f82a1a1e5c128fc85e99e24a8fcf4ba06a35e89e3dd6460250875153f'
370
- },
371
- {
372
- packageName: 'effect',
373
- version: '4.0.0-beta.94',
374
- path: 'patches/effect-schema-error-type-id.patch',
375
- sha256: 'ed9f636f82a1a1e5c128fc85e99e24a8fcf4ba06a35e89e3dd6460250875153f',
376
- acceptedLegacySha256: [
377
- 'd9e12b42d06a051957899a9df14b2b7b2385fc3a5677a89037eeee3674d64ebe',
378
- 'dc7e8088e600beb20185eb877754d749c4a93909fb79f49465e8319e40d6596a',
379
- 'bd29a0ae24f0674c6007e5e6060d847dbeb9499a6e2cf4c9f13b24ba9fb3af37'
380
- ]
381
- },
382
- {
383
- packageName: 'effect',
384
- version: '4.0.0-beta.97',
385
- path: 'patches/effect-schema-error-type-id.patch',
386
- sha256: 'ed9f636f82a1a1e5c128fc85e99e24a8fcf4ba06a35e89e3dd6460250875153f',
387
- acceptedLegacySha256: [
388
- 'd9e12b42d06a051957899a9df14b2b7b2385fc3a5677a89037eeee3674d64ebe',
389
- 'dc7e8088e600beb20185eb877754d749c4a93909fb79f49465e8319e40d6596a',
390
- 'bd29a0ae24f0674c6007e5e6060d847dbeb9499a6e2cf4c9f13b24ba9fb3af37'
391
- ]
392
- },
393
- {
394
- packageName: 'effect',
395
- version: '4.0.0-beta.102',
396
- path: 'patches/effect-schema-error-type-id.patch',
397
- sha256: 'ed9f636f82a1a1e5c128fc85e99e24a8fcf4ba06a35e89e3dd6460250875153f',
398
- acceptedLegacySha256: [
399
- 'd9e12b42d06a051957899a9df14b2b7b2385fc3a5677a89037eeee3674d64ebe',
400
- 'dc7e8088e600beb20185eb877754d749c4a93909fb79f49465e8319e40d6596a',
401
- 'bd29a0ae24f0674c6007e5e6060d847dbeb9499a6e2cf4c9f13b24ba9fb3af37'
402
- ]
403
- },
404
- {
405
- packageName: '@module-federation/dts-plugin',
406
- version: '2.7.0',
407
- path: 'patches/@module-federation__dts-plugin@2.7.0.patch',
408
- sha256: '768cc3bb22e2dede264515f141fdc8af937c8f53d4f8ef8f83469bb0cec1c9a0'
409
- },
410
- {
411
- packageName: '@module-federation/bridge-react',
412
- version: '2.6.0',
413
- path: 'patches/@module-federation__bridge-react@2.6.0.patch',
414
- sha256: '75982bd9b4d40922ce3110ded5254f7faca39112b79d41f27fe0ac4bb416c467'
415
- },
416
- {
417
- packageName: '@module-federation/dts-plugin',
418
- version: '2.6.0',
419
- path: 'patches/@module-federation__dts-plugin@2.6.0.patch',
420
- sha256: 'bc998f74617f7f060ea0f65235f071a5880aade3144ccd610d098d6bbc1c52fe',
421
- acceptedLegacySha256: [
422
- 'ad19439992ca0757dc7354ad4197eecd5ac83f3ef5ed990e9200c672138600d5'
423
- ]
424
- },
425
- {
426
- packageName: '@module-federation/modern-js-v3',
427
- version: '2.6.0',
428
- path: 'patches/@module-federation__modern-js-v3@2.6.0.patch',
429
- sha256: '51ab49dc776c56cdaa8eb43fbd0bb2788633d6b05acfb18fb2f3a1db81c02d87'
430
- },
431
- {
432
- packageName: '@tanstack/router-core',
433
- version: '1.171.21',
434
- path: 'patches/@tanstack__router-core@1.171.21.patch',
435
- sha256: 'fb269f2a1c6c789ffb2d4f9341f6dd6a1dbb977b5bb66ce8e31a3a9cdd197dad'
436
- },
437
- {
438
- packageName: '@tanstack/router-core',
439
- version: '1.171.13',
440
- path: 'patches/@tanstack__router-core@1.171.13.patch',
441
- sha256: '0c6119dcaa6ad35a11e1ce4fd95179bf929d5b5a86e9cbee110f45bd07c5c8d3'
442
- },
443
- {
444
- packageName: '@tanstack/router-core',
445
- version: '1.171.14',
446
- path: 'patches/@tanstack__router-core@1.171.14.patch',
447
- sha256: '1e1572940e00d6327c75bb8457c108e32e75a2292e4d90d764208d5b6f330155'
448
- },
449
- {
450
- packageName: 'react-server-dom-rspack',
451
- version: '0.0.3',
452
- path: 'patches/@react-server-dom-rspack@0.0.3.patch',
453
- sha256: '11e471512012c0015883a233017b3ad695765e344cbd1d8174e79196ab6ba567'
454
- }
455
- ];
456
- const moduleFederationRegistryReleases = [
457
- [
458
- 'bridge-react',
459
- '2026-08-24T08:18:02.542Z',
460
- 'sha512-3wEVz9IMsDnbdTZjG+0XA7BHUU2yIvfTqWRrMPR9RciSOVojJUXocZ6Anksu7WhuYnasc7am8szpms7pZGotnA=='
461
- ],
462
- [
463
- 'bridge-react-webpack-plugin',
464
- '2026-08-24T08:19:41.007Z',
465
- 'sha512-hv3fuQkGERQ/COBKTVbFV1GWovReSg/bzJzDuxWR1F84h6NYtbYMWQqX8Egvb7HKMtn9Rflzw0GeaLr8F08vDg=='
466
- ],
467
- [
468
- 'cli',
469
- '2026-08-24T08:21:41.802Z',
470
- 'sha512-r9RdlLRy3zWxuWQRonif48xdDu1reBGx18QpkZwLQ4JfSrOARjycNIGY2Y7QaUw7dedzxyee4FtKFeX/kOVLYQ=='
471
- ],
472
- [
473
- 'dts-plugin',
474
- '2026-08-24T08:19:17.035Z',
475
- 'sha512-uMGqEG/p9odG2BVr7WRbBe2OgrvzBd3LPzcp5WP+bm3djBdUJ4PZ3ozqKp6qpy+NFnlh6vnM815Xn6AXkKy1Vw=='
476
- ],
477
- [
478
- 'enhanced',
479
- '2026-08-24T08:20:25.023Z',
480
- 'sha512-Jd/JHoFL9fNKL4Nnzo/9hf6FD/oQo3gKpE8xt6EGuhxmrvg6wM0radPtqgHiSSWLMW7CiXr2agNjKvquKd83rw=='
481
- ],
482
- [
483
- 'error-codes',
484
- '2026-08-24T08:22:25.614Z',
485
- 'sha512-IGpd+VRlji3NyGOGGTsk7YEmPRKcDoBK4YHqIuP+OQwyb2YhHCUHO2vW9RXeQxCuKwi+c6xkTweRYG+Umy+0Zw=='
486
- ],
487
- [
488
- 'inject-external-runtime-core-plugin',
489
- '2026-08-24T08:21:16.321Z',
490
- 'sha512-k3wCSZsY21HjYQ61wmIJUQleOgcHgqx/sX4qXYw0XnJnzHuFo64rzMvgr+TuBIgZ1peAQtfILLlTnWyTRjtZHw=='
491
- ],
492
- [
493
- 'managers',
494
- '2026-08-24T08:19:45.898Z',
495
- 'sha512-8KhB2PF4g+M0hGaethU1H4GVWabLn5sF5TvnM6VxgAcDL4TfLY8aC/YobAXHG/SV0jpU5lsGe6s6xy6ccV0MQw=='
496
- ],
497
- [
498
- 'manifest',
499
- '2026-08-24T08:19:49.387Z',
500
- 'sha512-Zhm9luVOw9XPou50eTwsvdgr208CszoQ6cGORQDCPAMhjpGb5oYFtilJ+LKW7hQ1LktD15bEZmGhC1anvgXEiQ=='
501
- ],
502
- [
503
- 'modern-js-v3',
504
- '2026-08-24T08:21:54.080Z',
505
- 'sha512-IzFEJnO53vEVLrm5qlDrCPO1bEmN11TLaPHrZtPqHfy7yjwhBDi/63uLAVwcqKVGZnK5Erbqg9Y3hJkZKxd4AQ=='
506
- ],
507
- [
508
- 'rsbuild-plugin',
509
- '2026-08-24T08:19:38.788Z',
510
- 'sha512-CaWAxZg+zOMw/BfgRXQdNBQZ/e5U7DBZvE13LzG13GEclt7yxaMQgKH0si3uOsq9f/X2NC8UnuhNHLIkloqlqA=='
511
- ],
512
- [
513
- 'rspack',
514
- '2026-08-24T08:21:20.630Z',
515
- 'sha512-9zSlmQYKRHKVWqhlZSMyjstp2A3VVrQV2Of8mrF5NXhngFemNx7Hw35+MTo+gsRfF5glpN8bAzLyIokRUo1Cog=='
516
- ],
517
- [
518
- 'runtime',
519
- '2026-08-24T08:21:03.780Z',
520
- 'sha512-3cyAav0hWP+dNvB7qrcK9CKxQn+JvkbRvLtZz3zS2g0EyxtDFDjgbHY0Afcf7oHf8IHhKeEdzb/3Kjr1Pjmr7A=='
521
- ],
522
- [
523
- 'runtime-core',
524
- '2026-08-24T08:19:49.581Z',
525
- 'sha512-dLykRYfpbEJBTdk2NlbNoVVTB196O3qujawTBguLABJkPCWETJNk60NR1yZO34eI+DTH+eGwHU3m7FddAWnbnw=='
526
- ],
527
- [
528
- 'runtime-tools',
529
- '2026-08-24T08:19:57.575Z',
530
- 'sha512-u2puqsaHiw1bVvLNk1uh98iPo6UzaBuci/aTvOFwKvbT/RF18C3vGGnm+ShHPKQEnoN6ctPtnygyOZDPR+8cgg=='
531
- ],
532
- [
533
- 'sdk',
534
- '2026-08-24T08:20:29.076Z',
535
- 'sha512-IMjObgBGQTXd33jTTCYcxvz8iOQGLsZ2QIPOj90rDxuBtJsN4WJwYyXqligrhY/e5p/BipUPdbIgKmWL7zFhTw=='
536
- ],
537
- [
538
- 'third-party-dts-extractor',
539
- '2026-08-24T08:22:33.751Z',
540
- 'sha512-R1Xuqnqzw6wQxWV3yU9fX1FydXAeZF2TNVFAVo1N1oLBA2j5y7aUO/Fc3VSNgd9/gxMzJgTVBdA+nMiD2SFCgg=='
541
- ],
542
- [
543
- 'webpack-bundler-runtime',
544
- '2026-08-24T08:20:31.955Z',
545
- 'sha512-MdU6NQibT57MaJG3KPBjC30IVBrz5eU7IcjHoVDYnMh7OmASw3stagBu7hYjdMTP31luNdtzUn85s9axvdwTlw=='
546
- ]
547
- ];
548
- const moduleFederationNodeRegistryRelease = {
549
- packageName: '@module-federation/node',
550
- version: MODULE_FEDERATION_NODE_VERSION,
551
- registry: {
552
- publishedAt: '2026-08-24T08:22:30.137Z',
553
- dist: {
554
- integrity: 'sha512-mbpQRdafyeWgsmYoJfdhOQf76zS6onOGpC2X1ELpWXB1Y4BcZGloL0CLjNMNon9m3ucfpc99tOGAQqFzQVkSBQ=='
555
- }
556
- }
557
- };
558
- const releaseAgeApprovals = [];
559
216
  const ULTRAMODERN_WORKSPACE_POLICY = {
560
217
  schemaVersion: 1,
561
218
  dependencies: ULTRAMODERN_PACKAGE_PINS,
@@ -576,10 +233,6 @@ const ULTRAMODERN_WORKSPACE_POLICY = {
576
233
  minimumReleaseAgeIgnoreMissingTime: false,
577
234
  trustPolicy: 'no-downgrade',
578
235
  trustPolicyIgnoreAfter: 1440,
579
- trustPolicyExclude: [
580
- `@effect/opentelemetry@${EFFECT_VERSION}`,
581
- `effect@${EFFECT_VERSION}`
582
- ],
583
236
  blockExoticSubdeps: true,
584
237
  engineStrict: true,
585
238
  pmOnFail: 'error',
@@ -591,230 +244,15 @@ const ULTRAMODERN_WORKSPACE_POLICY = {
591
244
  '@effect/vitest>effect': EFFECT_VERSION
592
245
  }
593
246
  },
594
- overrides: {
595
- '@effect/opentelemetry': EFFECT_VERSION,
596
- '@effect/vitest': EFFECT_VITEST_VERSION,
597
- '@tanstack/history': TANSTACK_HISTORY_VERSION,
598
- '@tanstack/react-router': TANSTACK_ROUTER_VERSION,
599
- '@tanstack/router-core': TANSTACK_ROUTER_CORE_VERSION,
600
- effect: EFFECT_VERSION,
601
- msgpackr: MSGPACKR_VERSION,
602
- 'node-fetch': NODE_FETCH_VERSION,
603
- zod: ZOD_VERSION
604
- },
605
247
  allowBuilds: {
606
248
  '@parcel/watcher': true,
607
249
  '@swc/core': true,
608
250
  'core-js': true,
609
251
  esbuild: true,
610
252
  lefthook: true,
611
- 'msgpackr-extract': true,
612
253
  sharp: true,
613
254
  workerd: true
614
- },
615
- patchedDependencies: {
616
- required: requiredPatchPolicies,
617
- conditional: conditionalPatchPolicies,
618
- stale: stalePatchPolicies
619
- },
620
- releaseAge: {
621
- approvals: releaseAgeApprovals,
622
- registryEvidence: {
623
- moduleFederation: {
624
- version: MODULE_FEDERATION_VERSION,
625
- nodeVersion: MODULE_FEDERATION_NODE_VERSION,
626
- releases: moduleFederationRegistryReleases.map(([packageSuffix, publishedAt, integrity])=>({
627
- packageName: `@module-federation/${packageSuffix}`,
628
- version: MODULE_FEDERATION_VERSION,
629
- registry: {
630
- publishedAt,
631
- dist: {
632
- integrity
633
- }
634
- }
635
- })),
636
- node: moduleFederationNodeRegistryRelease
637
- }
638
- },
639
- firstParty: {
640
- source: 'authenticated-release-cohort-projection',
641
- exactVersionOnly: true,
642
- staticApprovals: false
643
- }
644
- }
645
- },
646
- metadata: {
647
- packageSource: {
648
- configPath: '.modernjs/ultramodern.json',
649
- rootManifestPath: 'modernjs.packageSource',
650
- ownedKeys: [
651
- 'strategy',
652
- 'modernPackageVersion',
653
- 'registry',
654
- 'aliasScope',
655
- 'aliasPackageNamePrefix'
656
- ]
657
- },
658
- moduleFederation: {
659
- version: MODULE_FEDERATION_VERSION,
660
- nodeVersion: MODULE_FEDERATION_NODE_VERSION,
661
- configPath: 'moduleFederation',
662
- appConfigPath: 'topology.apps[].moduleFederation'
663
- },
664
- nativePreview: {
665
- packageName: "@typescript/native-preview",
666
- version: TYPESCRIPT_NATIVE_PREVIEW_VERSION,
667
- generatedDependencyPolicy: 'forbidden',
668
- releaseAgePolicy: 'exact-reviewed-closure-only'
669
255
  }
670
256
  }
671
257
  };
672
- const exactPackageNamePattern = /^(?:@[a-z0-9][a-z0-9._~-]*\/[a-z0-9][a-z0-9._~-]*|[a-z0-9][a-z0-9._~-]*)$/u;
673
- const exactVersionPattern = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/u;
674
- const integrityPattern = /^sha(?:256|384|512)-[A-Za-z0-9+/]+={0,2}$/u;
675
- const sha256Pattern = /^[a-f0-9]{64}$/u;
676
- const immutableCommitUriPattern = /^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/commit\/[a-f0-9]{40}$/u;
677
- function comparePackageVersions(left, right) {
678
- if (left.packageName !== right.packageName) return left.packageName < right.packageName ? -1 : 1;
679
- if (left.version === right.version) return 0;
680
- return left.version < right.version ? -1 : 1;
681
- }
682
- function packageVersionKey(value) {
683
- return `${value.packageName}@${value.version}`;
684
- }
685
- function assertCanonicalInstant(value, label) {
686
- if ('string' != typeof value) throw new Error(`${label} must be an ISO-8601 UTC timestamp.`);
687
- const timestamp = Date.parse(value);
688
- if (!Number.isFinite(timestamp) || new Date(timestamp).toISOString() !== value) throw new Error(`${label} must be a canonical ISO-8601 UTC timestamp.`);
689
- return timestamp;
690
- }
691
- function assertExactPackageVersion(value, label) {
692
- if ('string' != typeof value.packageName || !exactPackageNamePattern.test(value.packageName)) throw new Error(`${label}.packageName must be an exact npm package name without ranges, tags, or globs.`);
693
- if ('string' != typeof value.version || !exactVersionPattern.test(value.version)) throw new Error(`${label}.version must be one exact semantic version without ranges, tags, or globs.`);
694
- }
695
- function requiredRecord(value, label) {
696
- if (!value || 'object' != typeof value || Array.isArray(value)) throw new Error(`${label} must be an object.`);
697
- return value;
698
- }
699
- function validateReleaseAgeApprovals(approvals, options = {}) {
700
- if (!Array.isArray(approvals)) throw new Error('releaseAge.approvals must be an array.');
701
- const now = options.now ?? new Date();
702
- if (!Number.isFinite(now.getTime())) throw new Error('Release-age validation requires a valid current time.');
703
- const seen = new Set();
704
- const validated = approvals.map((rawApproval, index)=>{
705
- const label = `releaseAge.approvals[${index}]`;
706
- const approval = requiredRecord(rawApproval, label);
707
- assertExactPackageVersion(approval, label);
708
- const key = packageVersionKey({
709
- packageName: approval.packageName,
710
- version: approval.version
711
- });
712
- if (seen.has(key)) throw new Error(`Duplicate release-age approval for ${key}.`);
713
- seen.add(key);
714
- for (const field of [
715
- 'reason',
716
- 'reviewer'
717
- ]){
718
- const value = approval[field];
719
- if ('string' != typeof value || 0 === value.trim().length || /^(?:unknown|todo|tbd|placeholder)$/iu.test(value.trim())) throw new Error(`${label}.${field} must identify real review evidence.`);
720
- }
721
- const reviewedAt = assertCanonicalInstant(approval.reviewedAt, `${label}.reviewedAt`);
722
- const expiresAt = assertCanonicalInstant(approval.expiresAt, `${label}.expiresAt`);
723
- if (expiresAt <= reviewedAt) throw new Error(`${key} expiresAt must be after reviewedAt.`);
724
- const evidence = requiredRecord(approval.evidence, `${label}.evidence`);
725
- if ('string' != typeof evidence.uri || !immutableCommitUriPattern.test(evidence.uri)) throw new Error(`${label}.evidence.uri must reference an immutable full GitHub commit.`);
726
- if ('string' != typeof evidence.sha256 || !sha256Pattern.test(evidence.sha256)) throw new Error(`${label}.evidence.sha256 must be a SHA-256 digest.`);
727
- if ('git-commit-payload' !== evidence.sha256Subject) throw new Error(`${label}.evidence.sha256Subject must identify the raw Git commit payload.`);
728
- const registry = requiredRecord(approval.registry, `${label}.registry`);
729
- const publishedAt = assertCanonicalInstant(registry.publishedAt, `${label}.registry.publishedAt`);
730
- if (publishedAt > reviewedAt) throw new Error(`${key} cannot be reviewed before its registry publish time.`);
731
- const dist = requiredRecord(registry.dist, `${label}.registry.dist`);
732
- if ('string' != typeof dist.integrity || !integrityPattern.test(dist.integrity)) throw new Error(`${label}.registry.dist.integrity must be a valid SRI.`);
733
- return approval;
734
- });
735
- return validated.sort(comparePackageVersions);
736
- }
737
- function renderMinimumReleaseAgeExclude(options = {}) {
738
- const now = options.now ?? new Date();
739
- const nowTimestamp = now.getTime();
740
- const reviewedSelectors = validateReleaseAgeApprovals(options.approvals ?? ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals, {
741
- now
742
- }).filter((approval)=>{
743
- const reviewedAt = Date.parse(approval.reviewedAt);
744
- const expiresAt = Date.parse(approval.expiresAt);
745
- const maturesAt = Date.parse(approval.registry.publishedAt) + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
746
- return reviewedAt <= nowTimestamp && nowTimestamp < expiresAt && nowTimestamp < maturesAt;
747
- }).map(packageVersionKey).sort();
748
- const packageSource = options.packageSource;
749
- if (packageSource?.strategy !== 'install' || !exactVersionPattern.test(packageSource.modernPackageVersion)) return reviewedSelectors;
750
- if (void 0 === options.releaseCohort) throw new Error('Authenticated release cohort projection is required for install package sources.');
751
- const releaseCohort = parseUltramodernReleaseCohort(options.releaseCohort);
752
- assertReleaseCohortPackageSource(releaseCohort, packageSource);
753
- const firstPartySelectors = releaseCohortSelectors(releaseCohort);
754
- return [
755
- ...new Set([
756
- ...reviewedSelectors,
757
- ...firstPartySelectors
758
- ])
759
- ].sort();
760
- }
761
- function resolveReleaseAgeApprovals(candidates, options = {}) {
762
- if (!Array.isArray(candidates)) throw new Error('Release-age dependency closure must be an array.');
763
- const approvals = validateReleaseAgeApprovals(options.approvals ?? ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals, {
764
- now: options.now
765
- });
766
- const now = options.now ?? new Date();
767
- const nowTimestamp = now.getTime();
768
- const approvalsByKey = new Map(approvals.map((approval)=>[
769
- packageVersionKey(approval),
770
- approval
771
- ]));
772
- const candidatesByKey = new Map();
773
- for (const [index, candidate] of candidates.entries()){
774
- const label = `dependencyClosure[${index}]`;
775
- const record = requiredRecord(candidate, label);
776
- assertExactPackageVersion(record, label);
777
- const registry = requiredRecord(record.registry, `${label}.registry`);
778
- const dist = requiredRecord(registry.dist, `${label}.registry.dist`);
779
- if ('string' != typeof dist.integrity || !integrityPattern.test(dist.integrity)) throw new Error(`${label}.registry.dist.integrity is required; registry uncertainty is fail-closed.`);
780
- const publishedAt = assertCanonicalInstant(registry.publishedAt, `${label}.registry.publishedAt`);
781
- if (publishedAt > nowTimestamp) throw new Error(`${label}.registry.publishedAt is in the future; registry uncertainty is fail-closed.`);
782
- const key = packageVersionKey(record);
783
- if (candidatesByKey.has(key)) throw new Error(`Duplicate dependency-closure candidate for ${key}.`);
784
- candidatesByKey.set(key, {
785
- candidate,
786
- publishedAt
787
- });
788
- }
789
- const approved = [];
790
- const reviewCandidates = [];
791
- for (const [key, resolvedCandidate] of candidatesByKey){
792
- const { candidate, publishedAt } = resolvedCandidate;
793
- const approval = approvalsByKey.get(key);
794
- const maturesAt = publishedAt + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
795
- if (approval) {
796
- if (candidate.registry.dist.integrity !== approval.registry.dist.integrity) throw new Error(`Release-age approval ${key} does not match lock integrity.`);
797
- if (candidate.registry.publishedAt !== approval.registry.publishedAt) throw new Error(`Release-age approval ${key} does not match registry publish time.`);
798
- }
799
- if (!(nowTimestamp >= maturesAt)) {
800
- if (!approval || Date.parse(approval.reviewedAt) > nowTimestamp) {
801
- reviewCandidates.push(candidate);
802
- continue;
803
- }
804
- if (Date.parse(approval.expiresAt) <= nowTimestamp) throw new Error(`Release-age approval for immature ${key} expired at ${approval.expiresAt}.`);
805
- approved.push(candidate);
806
- }
807
- }
808
- for (const approval of approvals){
809
- const key = packageVersionKey(approval);
810
- const reviewedAt = Date.parse(approval.reviewedAt);
811
- const expiresAt = Date.parse(approval.expiresAt);
812
- const maturesAt = Date.parse(approval.registry.publishedAt) + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
813
- if (reviewedAt <= nowTimestamp && nowTimestamp < expiresAt && nowTimestamp < maturesAt && !candidatesByKey.has(key)) throw new Error(`Release-age approval ${key} is unmatched by the dependency closure.`);
814
- }
815
- return {
816
- minimumReleaseAgeExclude: approved.sort(comparePackageVersions).map(packageVersionKey),
817
- reviewCandidates: reviewCandidates.sort(comparePackageVersions)
818
- };
819
- }
820
- export { ULTRAMODERN_PACKAGE_PINS, ULTRAMODERN_WORKSPACE_POLICY, createCloudflareDeployContract, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, formatTsJsonValue, renderMinimumReleaseAgeExclude, resolveReleaseAgeApprovals, validateReleaseAgeApprovals };
258
+ export { ULTRAMODERN_WORKSPACE_POLICY, createCloudflareDeployContract, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, formatTsJsonValue };
@@ -48,7 +48,7 @@ function createPublicSurfaceOutputFiles(app) {
48
48
  ];
49
49
  }
50
50
  function createPublicSurfaceGenerationCommand(app, target, requirePublicOrigin = false) {
51
- return `node ${relativeRootFor(app.directory)}/scripts/generate-public-surface-assets.mts --app ${app.id} --target ${target}${requirePublicOrigin ? ' --require-public-origin' : ''}`;
51
+ return `pnpm --dir ${relativeRootFor(app.directory)} exec ultramodern-create ultramodern public-surface --app ${app.id} --target ${target}${requirePublicOrigin ? ' --require-public-origin' : ''}`;
52
52
  }
53
53
  function rewriteWorkspaceAssetsForApp(workspaceRoot, app) {
54
54
  for (const relativePath of publicSurfaceManagedSourceAssetPaths)node_fs.rmSync(node_path.join(workspaceRoot, app.directory, relativePath), {
@@ -64,7 +64,7 @@ function createPublicSurfaceContract(app) {
64
64
  generatedManifest: './src/routes/ultramodern-route-metadata',
65
65
  source: 'route-owned-public-routes',
66
66
  metadataExport: './src/routes/ultramodern-route-metadata',
67
- generator: "scripts/generate-public-surface-assets.mts",
67
+ generator: 'ultramodern-create ultramodern public-surface',
68
68
  outputRoot: 'dist/public',
69
69
  cloudflareBuildOutputRoot: 'dist-cloudflare/public',
70
70
  privateRoutePolicy: 'omit-from-generated-public-surface',
@@ -162,7 +162,7 @@ function createPublicWebAppArtifacts(app) {
162
162
  },
163
163
  routeMetadataFile: {
164
164
  path: `${app.directory}/src/routes/ultramodern-route-metadata.ts`,
165
- content: createRouteMetadataModule(app)
165
+ content: createRouteMetadataModule()
166
166
  },
167
167
  routeHeadFile: {
168
168
  path: `${app.directory}/src/routes/ultramodern-route-head.tsx`,
@@ -73,17 +73,8 @@ function createPublicRouteMetadata(app) {
73
73
  function createJsonLdHelperModule() {
74
74
  return renderFileTemplate('workspace/apps/shared/src/routes/ultramodern-jsonld.ts', {});
75
75
  }
76
- function createRouteMetadataModule(app) {
77
- const routes = sortJsonValue(createRouteOwnedI18nPaths(app));
78
- const localisedUrls = sortJsonValue(createLocalisedUrlsMap(app));
79
- const publicRoutes = sortJsonValue(createPublicRouteMetadata(app));
80
- const namespace = appI18nNamespace(app);
81
- return renderFileTemplate('workspace/apps/shared/src/routes/ultramodern-route-metadata.ts', {
82
- value0: namespace,
83
- value1: JSON.stringify(routes, null, 2),
84
- value2: JSON.stringify(localisedUrls, null, 2),
85
- value3: JSON.stringify(publicRoutes, null, 2)
86
- });
76
+ function createRouteMetadataModule() {
77
+ return renderFileTemplate('workspace/apps/shared/src/routes/ultramodern-route-metadata.ts', {});
87
78
  }
88
79
  function createRouteMetaModule(route) {
89
80
  return `const routeMeta = ${JSON.stringify(sortJsonValue(route), null, 2)} as const;
@@ -1,3 +1,3 @@
1
- import { ULTRAMODERN_WORKSPACE_POLICY } from "./policy.js";
2
- const SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES = ULTRAMODERN_WORKSPACE_POLICY.pnpm.patchedDependencies.required.map((patch)=>patch.path.replace(/^patches\//u, '')).filter((patchFile)=>patchFile.startsWith('@module-federation__') || patchFile.startsWith('@tanstack__') || patchFile.startsWith('msgpackr@') || patchFile.startsWith('zod@'));
1
+ import patch_inventory from "./patch-inventory.js";
2
+ const SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES = patch_inventory.filter((patch)=>patch.repository && null !== patch.workspace).map((patch)=>patch.path.slice(8));
3
3
  export { SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES };