@bleedingdev/modern-js-create 3.5.0-ultramodern.9 → 3.5.0-ultramodern.90

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 (566) hide show
  1. package/README.md +25 -25
  2. package/bin/run.js +0 -0
  3. package/dist/cjs/cli/flags.cjs +357 -0
  4. package/dist/cjs/cli/help.cjs +108 -0
  5. package/dist/cjs/cli/package-source.cjs +188 -0
  6. package/dist/cjs/cli/project-setup.cjs +162 -0
  7. package/dist/cjs/cli/prompts.cjs +100 -0
  8. package/dist/cjs/index.cjs +35 -585
  9. package/dist/cjs/locale/en.cjs +5 -6
  10. package/dist/cjs/locale/zh.cjs +5 -6
  11. package/dist/cjs/ultramodern-package-source.cjs +0 -32
  12. package/dist/cjs/ultramodern-release-cohort.cjs +206 -0
  13. package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +136 -0
  14. package/dist/cjs/ultramodern-tooling/commands/context.cjs +131 -0
  15. package/dist/cjs/ultramodern-tooling/commands/mf-types.cjs +55 -0
  16. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +212 -0
  17. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +50 -0
  18. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +87 -0
  19. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +58 -0
  20. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +100 -0
  21. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +100 -0
  22. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +132 -0
  23. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +67 -0
  24. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +206 -0
  25. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +60 -0
  26. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +67 -0
  27. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs +67 -0
  28. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.cjs +148 -0
  29. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +54 -0
  30. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +52 -0
  31. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +350 -0
  32. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +200 -0
  33. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +89 -0
  34. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +476 -0
  35. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +376 -0
  36. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +99 -0
  37. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.cjs +135 -0
  38. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +425 -0
  39. package/dist/cjs/ultramodern-tooling/commands/options.cjs +59 -0
  40. package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +122 -0
  41. package/dist/cjs/ultramodern-tooling/commands/skills.cjs +49 -0
  42. package/dist/cjs/ultramodern-tooling/commands/sync-delivery-unit.cjs +40 -0
  43. package/dist/cjs/ultramodern-tooling/commands/validate.cjs +53 -0
  44. package/dist/cjs/ultramodern-tooling/commands.cjs +27 -491
  45. package/dist/cjs/ultramodern-tooling/config/constants.cjs +48 -0
  46. package/dist/cjs/ultramodern-tooling/config/index.cjs +104 -0
  47. package/dist/cjs/ultramodern-tooling/config/json.cjs +61 -0
  48. package/dist/cjs/ultramodern-tooling/config/load.cjs +62 -0
  49. package/dist/cjs/ultramodern-tooling/config/metadata.cjs +92 -0
  50. package/dist/cjs/ultramodern-tooling/config/normalize.cjs +236 -0
  51. package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +157 -0
  52. package/dist/cjs/ultramodern-tooling/config/types.cjs +18 -0
  53. package/dist/cjs/ultramodern-tooling/config.cjs +23 -133
  54. package/dist/cjs/ultramodern-workspace/add-shell.cjs +274 -0
  55. package/dist/cjs/ultramodern-workspace/add-vertical/constants.cjs +52 -0
  56. package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +183 -0
  57. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +255 -0
  58. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +256 -0
  59. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +122 -0
  60. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +152 -0
  61. package/dist/cjs/ultramodern-workspace/add-vertical/transaction.cjs +327 -0
  62. package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +137 -0
  63. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +22 -571
  64. package/dist/cjs/ultramodern-workspace/api/checkout-cart.cjs +145 -0
  65. package/dist/cjs/ultramodern-workspace/api/client.cjs +224 -0
  66. package/dist/cjs/ultramodern-workspace/api/contracts.cjs +251 -0
  67. package/dist/cjs/ultramodern-workspace/api/names.cjs +98 -0
  68. package/dist/cjs/ultramodern-workspace/api/rpc.cjs +264 -0
  69. package/dist/cjs/ultramodern-workspace/api/service.cjs +252 -0
  70. package/dist/cjs/ultramodern-workspace/api/shared.cjs +270 -0
  71. package/dist/cjs/ultramodern-workspace/api.cjs +49 -1005
  72. package/dist/cjs/ultramodern-workspace/app-files.cjs +51 -69
  73. package/dist/cjs/ultramodern-workspace/backend-federation.cjs +346 -0
  74. package/dist/cjs/ultramodern-workspace/bridge-config/cli.cjs +71 -0
  75. package/dist/cjs/ultramodern-workspace/bridge-config/defaults.cjs +43 -0
  76. package/dist/cjs/ultramodern-workspace/bridge-config/gates.cjs +93 -0
  77. package/dist/cjs/ultramodern-workspace/bridge-config/index.cjs +60 -0
  78. package/dist/cjs/ultramodern-workspace/bridge-config/normalize.cjs +68 -0
  79. package/dist/cjs/ultramodern-workspace/bridge-config/schema.cjs +78 -0
  80. package/dist/cjs/ultramodern-workspace/bridge-config/shared.cjs +110 -0
  81. package/dist/cjs/ultramodern-workspace/bridge-config/validation.cjs +68 -0
  82. package/dist/cjs/ultramodern-workspace/bridge-config/workspace-packages.cjs +108 -0
  83. package/dist/cjs/ultramodern-workspace/bridge-config.cjs +32 -297
  84. package/dist/cjs/ultramodern-workspace/codesmith.cjs +10 -1
  85. package/dist/cjs/ultramodern-workspace/contracts.cjs +80 -26
  86. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/types.cjs +291 -0
  87. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/up-projection.cjs +188 -0
  88. package/dist/cjs/ultramodern-workspace/delivery-unit-stamp.cjs +56 -0
  89. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +153 -0
  90. package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +75 -0
  91. package/dist/cjs/ultramodern-workspace/demo-components.cjs +474 -205
  92. package/dist/cjs/ultramodern-workspace/descriptors.cjs +101 -16
  93. package/dist/cjs/ultramodern-workspace/effect-diagnostics.cjs +114 -0
  94. package/dist/cjs/ultramodern-workspace/fs-io.cjs +26 -36
  95. package/dist/cjs/ultramodern-workspace/generation-result.cjs +36 -3
  96. package/dist/cjs/ultramodern-workspace/index.cjs +28 -0
  97. package/dist/cjs/ultramodern-workspace/locales.cjs +3 -17
  98. package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +69 -0
  99. package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +77 -0
  100. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +84 -0
  101. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +188 -0
  102. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +165 -0
  103. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +201 -0
  104. package/dist/cjs/ultramodern-workspace/mf-validation/types.cjs +18 -0
  105. package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +112 -0
  106. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +6 -529
  107. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +336 -0
  108. package/dist/cjs/ultramodern-workspace/module-federation/index.cjs +73 -0
  109. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +111 -0
  110. package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +106 -0
  111. package/dist/cjs/ultramodern-workspace/module-federation/shared-config.cjs +53 -0
  112. package/dist/cjs/ultramodern-workspace/module-federation.cjs +18 -477
  113. package/dist/cjs/ultramodern-workspace/naming.cjs +1 -7
  114. package/dist/cjs/ultramodern-workspace/overlay-baseline-guard.cjs +408 -0
  115. package/dist/cjs/ultramodern-workspace/overlays.cjs +39 -5
  116. package/dist/cjs/ultramodern-workspace/package-json.cjs +54 -301
  117. package/dist/cjs/ultramodern-workspace/package-source.cjs +11 -2
  118. package/dist/cjs/ultramodern-workspace/policy.cjs +801 -24
  119. package/dist/cjs/ultramodern-workspace/public-surface.cjs +1 -22
  120. package/dist/cjs/ultramodern-workspace/routes.cjs +8 -157
  121. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +41 -0
  122. package/dist/cjs/ultramodern-workspace/shells.cjs +151 -0
  123. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +147 -0
  124. package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +200 -0
  125. package/dist/cjs/ultramodern-workspace/types.cjs +27 -0
  126. package/dist/cjs/ultramodern-workspace/versions.cjs +52 -37
  127. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +174 -0
  128. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +118 -88
  129. package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +642 -0
  130. package/dist/cjs/ultramodern-workspace/write-app.cjs +148 -0
  131. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +45 -67
  132. package/dist/cjs/ultramodern-workspace/zerops.cjs +108 -0
  133. package/dist/esm/cli/flags.js +262 -0
  134. package/dist/esm/cli/help.js +67 -0
  135. package/dist/esm/cli/package-source.js +124 -0
  136. package/dist/esm/cli/project-setup.js +105 -0
  137. package/dist/esm/cli/prompts.js +51 -0
  138. package/dist/esm/index.js +19 -565
  139. package/dist/esm/locale/en.js +5 -6
  140. package/dist/esm/locale/zh.js +5 -6
  141. package/dist/esm/ultramodern-package-source.js +1 -24
  142. package/dist/esm/ultramodern-release-cohort.js +133 -0
  143. package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +88 -0
  144. package/dist/esm/ultramodern-tooling/commands/context.js +66 -0
  145. package/dist/esm/ultramodern-tooling/commands/mf-types.js +17 -0
  146. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +154 -0
  147. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +12 -0
  148. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +38 -0
  149. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +10 -0
  150. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +45 -0
  151. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +51 -0
  152. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +83 -0
  153. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +16 -0
  154. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +157 -0
  155. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +12 -0
  156. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +7 -0
  157. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +15 -0
  158. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +97 -0
  159. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +16 -0
  160. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +14 -0
  161. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +285 -0
  162. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +156 -0
  163. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +51 -0
  164. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +417 -0
  165. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +329 -0
  166. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +24 -0
  167. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +80 -0
  168. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +376 -0
  169. package/dist/esm/ultramodern-tooling/commands/options.js +18 -0
  170. package/dist/esm/ultramodern-tooling/commands/routes-generate.js +74 -0
  171. package/dist/esm/ultramodern-tooling/commands/skills.js +11 -0
  172. package/dist/esm/ultramodern-tooling/commands/sync-delivery-unit.js +1 -0
  173. package/dist/esm/ultramodern-tooling/commands/validate.js +15 -0
  174. package/dist/esm/ultramodern-tooling/commands.js +23 -482
  175. package/dist/esm/ultramodern-tooling/config/constants.js +4 -0
  176. package/dist/esm/ultramodern-tooling/config/index.js +7 -0
  177. package/dist/esm/ultramodern-tooling/config/json.js +10 -0
  178. package/dist/esm/ultramodern-tooling/config/load.js +13 -0
  179. package/dist/esm/ultramodern-tooling/config/metadata.js +37 -0
  180. package/dist/esm/ultramodern-tooling/config/normalize.js +173 -0
  181. package/dist/esm/ultramodern-tooling/config/synthesize.js +108 -0
  182. package/dist/esm/ultramodern-tooling/config/types.js +0 -0
  183. package/dist/esm/ultramodern-tooling/config.js +1 -120
  184. package/dist/esm/ultramodern-workspace/add-shell.js +221 -0
  185. package/dist/esm/ultramodern-workspace/add-vertical/constants.js +5 -0
  186. package/dist/esm/ultramodern-workspace/add-vertical/execute.js +135 -0
  187. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +205 -0
  188. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +198 -0
  189. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +65 -0
  190. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +108 -0
  191. package/dist/esm/ultramodern-workspace/add-vertical/transaction.js +254 -0
  192. package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +67 -0
  193. package/dist/esm/ultramodern-workspace/add-vertical.js +6 -544
  194. package/dist/esm/ultramodern-workspace/api/checkout-cart.js +86 -0
  195. package/dist/esm/ultramodern-workspace/api/client.js +183 -0
  196. package/dist/esm/ultramodern-workspace/api/contracts.js +201 -0
  197. package/dist/esm/ultramodern-workspace/api/names.js +33 -0
  198. package/dist/esm/ultramodern-workspace/api/rpc.js +205 -0
  199. package/dist/esm/ultramodern-workspace/api/service.js +211 -0
  200. package/dist/esm/ultramodern-workspace/api/shared.js +226 -0
  201. package/dist/esm/ultramodern-workspace/api.js +6 -984
  202. package/dist/esm/ultramodern-workspace/app-files.js +51 -51
  203. package/dist/esm/ultramodern-workspace/backend-federation.js +281 -0
  204. package/dist/esm/ultramodern-workspace/bridge-config/cli.js +30 -0
  205. package/dist/esm/ultramodern-workspace/bridge-config/defaults.js +5 -0
  206. package/dist/esm/ultramodern-workspace/bridge-config/gates.js +52 -0
  207. package/dist/esm/ultramodern-workspace/bridge-config/index.js +3 -0
  208. package/dist/esm/ultramodern-workspace/bridge-config/normalize.js +30 -0
  209. package/dist/esm/ultramodern-workspace/bridge-config/schema.js +31 -0
  210. package/dist/esm/ultramodern-workspace/bridge-config/shared.js +51 -0
  211. package/dist/esm/ultramodern-workspace/bridge-config/validation.js +27 -0
  212. package/dist/esm/ultramodern-workspace/bridge-config/workspace-packages.js +67 -0
  213. package/dist/esm/ultramodern-workspace/bridge-config.js +1 -270
  214. package/dist/esm/ultramodern-workspace/codesmith.js +10 -1
  215. package/dist/esm/ultramodern-workspace/contracts.js +81 -27
  216. package/dist/esm/ultramodern-workspace/delivery-unit-schema/types.js +235 -0
  217. package/dist/esm/ultramodern-workspace/delivery-unit-schema/up-projection.js +129 -0
  218. package/dist/esm/ultramodern-workspace/delivery-unit-stamp.js +18 -0
  219. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +104 -0
  220. package/dist/esm/ultramodern-workspace/delivery-unit.js +21 -0
  221. package/dist/esm/ultramodern-workspace/demo-components.js +461 -204
  222. package/dist/esm/ultramodern-workspace/descriptors.js +75 -17
  223. package/dist/esm/ultramodern-workspace/effect-diagnostics.js +76 -0
  224. package/dist/esm/ultramodern-workspace/fs-io.js +27 -18
  225. package/dist/esm/ultramodern-workspace/generation-result.js +33 -3
  226. package/dist/esm/ultramodern-workspace/index.js +4 -0
  227. package/dist/esm/ultramodern-workspace/locales.js +3 -4
  228. package/dist/esm/ultramodern-workspace/mf-validation/constants.js +19 -0
  229. package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +28 -0
  230. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +46 -0
  231. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +144 -0
  232. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +89 -0
  233. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +154 -0
  234. package/dist/esm/ultramodern-workspace/mf-validation/types.js +0 -0
  235. package/dist/esm/ultramodern-workspace/mf-validation/validate.js +57 -0
  236. package/dist/esm/ultramodern-workspace/mf-validation.js +3 -516
  237. package/dist/esm/ultramodern-workspace/module-federation/config.js +289 -0
  238. package/dist/esm/ultramodern-workspace/module-federation/index.js +4 -0
  239. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +67 -0
  240. package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +65 -0
  241. package/dist/esm/ultramodern-workspace/module-federation/shared-config.js +12 -0
  242. package/dist/esm/ultramodern-workspace/module-federation.js +2 -458
  243. package/dist/esm/ultramodern-workspace/naming.js +2 -2
  244. package/dist/esm/ultramodern-workspace/overlay-baseline-guard.js +350 -0
  245. package/dist/esm/ultramodern-workspace/overlays.js +28 -5
  246. package/dist/esm/ultramodern-workspace/package-json.js +48 -283
  247. package/dist/esm/ultramodern-workspace/package-source.js +7 -1
  248. package/dist/esm/ultramodern-workspace/policy.js +784 -10
  249. package/dist/esm/ultramodern-workspace/public-surface.js +2 -2
  250. package/dist/esm/ultramodern-workspace/routes.js +9 -143
  251. package/dist/esm/ultramodern-workspace/shared-patches.js +3 -0
  252. package/dist/esm/ultramodern-workspace/shells.js +92 -0
  253. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
  254. package/dist/esm/ultramodern-workspace/tsconfigs.js +137 -0
  255. package/dist/esm/ultramodern-workspace/types.js +16 -1
  256. package/dist/esm/ultramodern-workspace/versions.js +35 -26
  257. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +124 -0
  258. package/dist/esm/ultramodern-workspace/workspace-scripts.js +115 -85
  259. package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +604 -0
  260. package/dist/esm/ultramodern-workspace/write-app.js +105 -0
  261. package/dist/esm/ultramodern-workspace/write-workspace.js +47 -66
  262. package/dist/esm/ultramodern-workspace/zerops.js +70 -0
  263. package/dist/esm-node/cli/flags.js +263 -0
  264. package/dist/esm-node/cli/help.js +68 -0
  265. package/dist/esm-node/cli/package-source.js +125 -0
  266. package/dist/esm-node/cli/project-setup.js +106 -0
  267. package/dist/esm-node/cli/prompts.js +52 -0
  268. package/dist/esm-node/index.js +19 -565
  269. package/dist/esm-node/locale/en.js +5 -6
  270. package/dist/esm-node/locale/zh.js +5 -6
  271. package/dist/esm-node/ultramodern-package-source.js +1 -24
  272. package/dist/esm-node/ultramodern-release-cohort.js +134 -0
  273. package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +89 -0
  274. package/dist/esm-node/ultramodern-tooling/commands/context.js +67 -0
  275. package/dist/esm-node/ultramodern-tooling/commands/mf-types.js +18 -0
  276. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +155 -0
  277. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +13 -0
  278. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +39 -0
  279. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +11 -0
  280. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +46 -0
  281. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +52 -0
  282. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +84 -0
  283. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +17 -0
  284. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +158 -0
  285. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +13 -0
  286. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +8 -0
  287. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +16 -0
  288. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +98 -0
  289. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +17 -0
  290. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +15 -0
  291. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +286 -0
  292. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +157 -0
  293. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +52 -0
  294. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +418 -0
  295. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +330 -0
  296. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +25 -0
  297. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +81 -0
  298. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +377 -0
  299. package/dist/esm-node/ultramodern-tooling/commands/options.js +19 -0
  300. package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +75 -0
  301. package/dist/esm-node/ultramodern-tooling/commands/skills.js +12 -0
  302. package/dist/esm-node/ultramodern-tooling/commands/sync-delivery-unit.js +2 -0
  303. package/dist/esm-node/ultramodern-tooling/commands/validate.js +16 -0
  304. package/dist/esm-node/ultramodern-tooling/commands.js +23 -482
  305. package/dist/esm-node/ultramodern-tooling/config/constants.js +5 -0
  306. package/dist/esm-node/ultramodern-tooling/config/index.js +8 -0
  307. package/dist/esm-node/ultramodern-tooling/config/json.js +11 -0
  308. package/dist/esm-node/ultramodern-tooling/config/load.js +14 -0
  309. package/dist/esm-node/ultramodern-tooling/config/metadata.js +38 -0
  310. package/dist/esm-node/ultramodern-tooling/config/normalize.js +174 -0
  311. package/dist/esm-node/ultramodern-tooling/config/synthesize.js +109 -0
  312. package/dist/esm-node/ultramodern-tooling/config/types.js +1 -0
  313. package/dist/esm-node/ultramodern-tooling/config.js +1 -120
  314. package/dist/esm-node/ultramodern-workspace/add-shell.js +222 -0
  315. package/dist/esm-node/ultramodern-workspace/add-vertical/constants.js +6 -0
  316. package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +136 -0
  317. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +206 -0
  318. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +199 -0
  319. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +66 -0
  320. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +109 -0
  321. package/dist/esm-node/ultramodern-workspace/add-vertical/transaction.js +255 -0
  322. package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +68 -0
  323. package/dist/esm-node/ultramodern-workspace/add-vertical.js +6 -544
  324. package/dist/esm-node/ultramodern-workspace/api/checkout-cart.js +87 -0
  325. package/dist/esm-node/ultramodern-workspace/api/client.js +184 -0
  326. package/dist/esm-node/ultramodern-workspace/api/contracts.js +202 -0
  327. package/dist/esm-node/ultramodern-workspace/api/names.js +34 -0
  328. package/dist/esm-node/ultramodern-workspace/api/rpc.js +206 -0
  329. package/dist/esm-node/ultramodern-workspace/api/service.js +212 -0
  330. package/dist/esm-node/ultramodern-workspace/api/shared.js +227 -0
  331. package/dist/esm-node/ultramodern-workspace/api.js +6 -984
  332. package/dist/esm-node/ultramodern-workspace/app-files.js +51 -51
  333. package/dist/esm-node/ultramodern-workspace/backend-federation.js +282 -0
  334. package/dist/esm-node/ultramodern-workspace/bridge-config/cli.js +31 -0
  335. package/dist/esm-node/ultramodern-workspace/bridge-config/defaults.js +6 -0
  336. package/dist/esm-node/ultramodern-workspace/bridge-config/gates.js +53 -0
  337. package/dist/esm-node/ultramodern-workspace/bridge-config/index.js +4 -0
  338. package/dist/esm-node/ultramodern-workspace/bridge-config/normalize.js +31 -0
  339. package/dist/esm-node/ultramodern-workspace/bridge-config/schema.js +32 -0
  340. package/dist/esm-node/ultramodern-workspace/bridge-config/shared.js +52 -0
  341. package/dist/esm-node/ultramodern-workspace/bridge-config/validation.js +28 -0
  342. package/dist/esm-node/ultramodern-workspace/bridge-config/workspace-packages.js +68 -0
  343. package/dist/esm-node/ultramodern-workspace/bridge-config.js +1 -270
  344. package/dist/esm-node/ultramodern-workspace/codesmith.js +10 -1
  345. package/dist/esm-node/ultramodern-workspace/contracts.js +81 -27
  346. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/types.js +236 -0
  347. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/up-projection.js +130 -0
  348. package/dist/esm-node/ultramodern-workspace/delivery-unit-stamp.js +19 -0
  349. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +105 -0
  350. package/dist/esm-node/ultramodern-workspace/delivery-unit.js +22 -0
  351. package/dist/esm-node/ultramodern-workspace/demo-components.js +461 -204
  352. package/dist/esm-node/ultramodern-workspace/descriptors.js +75 -17
  353. package/dist/esm-node/ultramodern-workspace/effect-diagnostics.js +77 -0
  354. package/dist/esm-node/ultramodern-workspace/fs-io.js +27 -18
  355. package/dist/esm-node/ultramodern-workspace/generation-result.js +33 -3
  356. package/dist/esm-node/ultramodern-workspace/index.js +4 -0
  357. package/dist/esm-node/ultramodern-workspace/locales.js +3 -4
  358. package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +20 -0
  359. package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +29 -0
  360. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +47 -0
  361. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +145 -0
  362. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +90 -0
  363. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +155 -0
  364. package/dist/esm-node/ultramodern-workspace/mf-validation/types.js +1 -0
  365. package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +58 -0
  366. package/dist/esm-node/ultramodern-workspace/mf-validation.js +3 -516
  367. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +290 -0
  368. package/dist/esm-node/ultramodern-workspace/module-federation/index.js +5 -0
  369. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +68 -0
  370. package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +66 -0
  371. package/dist/esm-node/ultramodern-workspace/module-federation/shared-config.js +13 -0
  372. package/dist/esm-node/ultramodern-workspace/module-federation.js +2 -458
  373. package/dist/esm-node/ultramodern-workspace/naming.js +2 -2
  374. package/dist/esm-node/ultramodern-workspace/overlay-baseline-guard.js +351 -0
  375. package/dist/esm-node/ultramodern-workspace/overlays.js +28 -5
  376. package/dist/esm-node/ultramodern-workspace/package-json.js +48 -283
  377. package/dist/esm-node/ultramodern-workspace/package-source.js +7 -1
  378. package/dist/esm-node/ultramodern-workspace/policy.js +784 -10
  379. package/dist/esm-node/ultramodern-workspace/public-surface.js +2 -2
  380. package/dist/esm-node/ultramodern-workspace/routes.js +9 -143
  381. package/dist/esm-node/ultramodern-workspace/shared-patches.js +4 -0
  382. package/dist/esm-node/ultramodern-workspace/shells.js +93 -0
  383. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
  384. package/dist/esm-node/ultramodern-workspace/tsconfigs.js +138 -0
  385. package/dist/esm-node/ultramodern-workspace/types.js +16 -1
  386. package/dist/esm-node/ultramodern-workspace/versions.js +35 -26
  387. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +125 -0
  388. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +115 -85
  389. package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +605 -0
  390. package/dist/esm-node/ultramodern-workspace/write-app.js +106 -0
  391. package/dist/esm-node/ultramodern-workspace/write-workspace.js +47 -66
  392. package/dist/esm-node/ultramodern-workspace/zerops.js +71 -0
  393. package/dist/types/cli/flags.d.ts +35 -0
  394. package/dist/types/cli/help.d.ts +2 -0
  395. package/dist/types/cli/package-source.d.ts +15 -0
  396. package/dist/types/cli/project-setup.d.ts +8 -0
  397. package/dist/types/cli/prompts.d.ts +4 -0
  398. package/dist/types/locale/en.d.ts +3 -4
  399. package/dist/types/locale/index.d.ts +6 -8
  400. package/dist/types/locale/zh.d.ts +3 -4
  401. package/dist/types/ultramodern-package-source.d.ts +0 -11
  402. package/dist/types/ultramodern-release-cohort.d.ts +30 -0
  403. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -0
  404. package/dist/types/ultramodern-tooling/commands/context.d.ts +11 -0
  405. package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +2 -0
  406. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +12 -0
  407. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +4 -0
  408. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +1 -0
  409. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +3 -0
  410. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +5 -0
  411. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +3 -0
  412. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +2 -0
  413. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +4 -0
  414. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +3 -0
  415. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +3 -0
  416. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +7 -0
  417. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +3 -0
  418. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.d.ts +3 -0
  419. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +1 -0
  420. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +2 -0
  421. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +20 -0
  422. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +9 -0
  423. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +3 -0
  424. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +27 -0
  425. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +26 -0
  426. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +10 -0
  427. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +4 -0
  428. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +2 -0
  429. package/dist/types/ultramodern-tooling/commands/options.d.ts +2 -0
  430. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +2 -0
  431. package/dist/types/ultramodern-tooling/commands/skills.d.ts +2 -0
  432. package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -0
  433. package/dist/types/ultramodern-tooling/commands/validate.d.ts +2 -0
  434. package/dist/types/ultramodern-tooling/commands.d.ts +1 -1
  435. package/dist/types/ultramodern-tooling/config/constants.d.ts +3 -0
  436. package/dist/types/ultramodern-tooling/config/index.d.ts +7 -0
  437. package/dist/types/ultramodern-tooling/config/json.d.ts +2 -0
  438. package/dist/types/ultramodern-tooling/config/load.d.ts +2 -0
  439. package/dist/types/ultramodern-tooling/config/metadata.d.ts +4 -0
  440. package/dist/types/ultramodern-tooling/config/normalize.d.ts +22 -0
  441. package/dist/types/ultramodern-tooling/config/synthesize.d.ts +5 -0
  442. package/dist/types/ultramodern-tooling/config/types.d.ts +45 -0
  443. package/dist/types/ultramodern-tooling/config.d.ts +1 -43
  444. package/dist/types/ultramodern-workspace/add-shell.d.ts +14 -0
  445. package/dist/types/ultramodern-workspace/add-vertical/constants.d.ts +4 -0
  446. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +9 -0
  447. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +2 -0
  448. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +42 -0
  449. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +6 -0
  450. package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +9 -0
  451. package/dist/types/ultramodern-workspace/add-vertical/transaction.d.ts +80 -0
  452. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +15 -0
  453. package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -39
  454. package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +33 -0
  455. package/dist/types/ultramodern-workspace/api/client.d.ts +6 -0
  456. package/dist/types/ultramodern-workspace/api/contracts.d.ts +15 -0
  457. package/dist/types/ultramodern-workspace/api/names.d.ts +41 -0
  458. package/dist/types/ultramodern-workspace/api/rpc.d.ts +41 -0
  459. package/dist/types/ultramodern-workspace/api/service.d.ts +6 -0
  460. package/dist/types/ultramodern-workspace/api/shared.d.ts +10 -0
  461. package/dist/types/ultramodern-workspace/api.d.ts +6 -73
  462. package/dist/types/ultramodern-workspace/app-files.d.ts +4 -10
  463. package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
  464. package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +3 -0
  465. package/dist/types/ultramodern-workspace/bridge-config/defaults.d.ts +1 -0
  466. package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +3 -0
  467. package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -0
  468. package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +2 -0
  469. package/dist/types/ultramodern-workspace/bridge-config/schema.d.ts +61 -0
  470. package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +12 -0
  471. package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +3 -0
  472. package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +3 -0
  473. package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -64
  474. package/dist/types/ultramodern-workspace/codesmith.d.ts +12 -6
  475. package/dist/types/ultramodern-workspace/contracts.d.ts +3 -3
  476. package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +291 -0
  477. package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +189 -0
  478. package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +3 -0
  479. package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
  480. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +8 -0
  481. package/dist/types/ultramodern-workspace/demo-components.d.ts +14 -3
  482. package/dist/types/ultramodern-workspace/descriptors.d.ts +27 -3
  483. package/dist/types/ultramodern-workspace/effect-diagnostics.d.ts +1 -0
  484. package/dist/types/ultramodern-workspace/fs-io.d.ts +2 -8
  485. package/dist/types/ultramodern-workspace/generation-result.d.ts +3 -1
  486. package/dist/types/ultramodern-workspace/index.d.ts +6 -1
  487. package/dist/types/ultramodern-workspace/locales.d.ts +1 -133
  488. package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +5 -0
  489. package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +2 -0
  490. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +2 -0
  491. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +4 -0
  492. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +11 -0
  493. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +5 -0
  494. package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +33 -0
  495. package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +4 -0
  496. package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -27
  497. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +5 -0
  498. package/dist/types/ultramodern-workspace/module-federation/index.d.ts +4 -0
  499. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +4 -0
  500. package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +3 -0
  501. package/dist/types/ultramodern-workspace/module-federation/shared-config.d.ts +2 -0
  502. package/dist/types/ultramodern-workspace/module-federation.d.ts +2 -17
  503. package/dist/types/ultramodern-workspace/naming.d.ts +0 -2
  504. package/dist/types/ultramodern-workspace/overlay-baseline-guard.d.ts +57 -0
  505. package/dist/types/ultramodern-workspace/package-json.d.ts +2 -17
  506. package/dist/types/ultramodern-workspace/package-source.d.ts +1 -0
  507. package/dist/types/ultramodern-workspace/policy.d.ts +254 -47
  508. package/dist/types/ultramodern-workspace/public-api.d.ts +1 -1
  509. package/dist/types/ultramodern-workspace/public-surface.d.ts +5 -15
  510. package/dist/types/ultramodern-workspace/routes.d.ts +0 -9
  511. package/dist/types/ultramodern-workspace/shared-patches.d.ts +1 -0
  512. package/dist/types/ultramodern-workspace/shells.d.ts +51 -0
  513. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
  514. package/dist/types/ultramodern-workspace/tsconfigs.d.ts +13 -0
  515. package/dist/types/ultramodern-workspace/types.d.ts +134 -3
  516. package/dist/types/ultramodern-workspace/versions.d.ts +35 -26
  517. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +63 -0
  518. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +15 -5
  519. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +243 -0
  520. package/dist/types/ultramodern-workspace/write-app.d.ts +4 -0
  521. package/dist/types/ultramodern-workspace/write-workspace.d.ts +3 -3
  522. package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
  523. package/package.json +15 -13
  524. package/template-workspace/.gitignore.handlebars +8 -0
  525. package/template-workspace/.modernjs/release-cohort.json +208 -0
  526. package/template-workspace/AGENTS.md.handlebars +16 -89
  527. package/template-workspace/README.md.handlebars +17 -16
  528. package/template-workspace/patches/@module-federation__bridge-react@2.8.0.patch +185 -0
  529. package/template-workspace/patches/@module-federation__modern-js-v3@2.8.0.patch +259 -0
  530. package/template-workspace/patches/@tanstack__router-core@1.171.14.patch +123 -0
  531. package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
  532. package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
  533. package/template-workspace/pnpm-workspace.yaml.handlebars +8 -25
  534. package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
  535. package/templates/app/shell-frame.tsx +5 -4
  536. package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +37 -0
  537. package/templates/workspace/apps/modern.config.ts.handlebars +191 -0
  538. package/templates/workspace/apps/shared/src/routes/ultramodern-jsonld.ts.handlebars +119 -0
  539. package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -0
  540. package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +49 -0
  541. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +27 -0
  542. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +4 -0
  543. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +44 -0
  544. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.helpers.tsx.handlebars +17 -0
  545. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.imports.tsx.handlebars +1 -0
  546. package/templates/workspace/packages/shared-design-tokens/tokens.css.handlebars +7 -0
  547. package/templates/workspace/tailwind.config.ts.handlebars +3 -0
  548. package/templates/workspace/verticals/server/checkout-cart-handlers.ts.handlebars +49 -0
  549. package/templates/workspace/verticals/server/checkout-cart-state.ts.handlebars +23 -0
  550. package/templates/workspace/verticals/shared/api.checkout-cart-contract-fields.ts.handlebars +1 -0
  551. package/templates/workspace/verticals/shared/api.checkout-cart-endpoints.ts.handlebars +23 -0
  552. package/templates/workspace/verticals/shared/api.checkout-cart-operation-contexts.ts.handlebars +29 -0
  553. package/templates/workspace/verticals/shared/api.checkout-cart-schemas.ts.handlebars +48 -0
  554. package/templates/workspace/verticals/src/api/checkout-cart-client-exports.ts.handlebars +70 -0
  555. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +4 -4
  556. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
  557. package/templates/workspace-scripts/generate-node-backend-federation.mjs +379 -0
  558. package/templates/workspace-scripts/generate-public-surface-assets.mjs +5 -5
  559. package/templates/workspace-scripts/materialize-zerops-runtime.mjs +447 -0
  560. package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
  561. package/templates/workspace-scripts/proof-node-backend-federation.mjs +1223 -0
  562. package/templates/workspace-scripts/proof-workerd-ssr.mts +815 -0
  563. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
  564. package/templates/workspace-scripts/ultramodern-typecheck.mjs +6 -46
  565. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +2436 -258
  566. package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +0 -51
@@ -1,7 +1,8 @@
1
- import { appHasApi, appI18nNamespace, createCloudflarePublicUrlEnv, createCloudflareWorkerName, resolveApiPrefix, resolveApiStem } from "./descriptors.js";
1
+ import { assertReleaseCohortPackageSource, parseUltramodernReleaseCohort, releaseCohortSelectors } from "../ultramodern-release-cohort.js";
2
+ import { appHasApi, appI18nNamespace, createCloudflarePublicUrlEnv, createCloudflareWorkerName, resolveApiPrefix, resolveApiProtocol, resolveApiStem } from "./descriptors.js";
2
3
  import { createLocalisedUrlsMap } from "./routes.js";
3
4
  import { isRecord } from "./types.js";
4
- import { CLOUDFLARE_COMPATIBILITY_DATE } from "./versions.js";
5
+ import { CLOUDFLARE_COMPATIBILITY_DATE, CLOUDFLARE_WORKERS_TYPES_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, NODE_FETCH_VERSION, NODE_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, REACT_DOM_VERSION, REACT_ROUTER_VERSION, REACT_VERSION, RSBUILD_PLUGIN_TAILWINDCSS_VERSION, TAILWIND_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_NATIVE_PREVIEW_VERSION, TYPESCRIPT_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WORKERD_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION } from "./versions.js";
5
6
  function createCloudflareProofRoute(app) {
6
7
  if ('shell' === app.kind) return {
7
8
  ssr: '/en',
@@ -15,7 +16,7 @@ function createCloudflareProofRoute(app) {
15
16
  ssr: localizedPath ?? '/en',
16
17
  mfManifest: '/mf-manifest.json',
17
18
  locale: `/locales/en/${appI18nNamespace(app)}.json`,
18
- ...appHasApi(app) ? {
19
+ ...appHasApi(app) && 'rest' === resolveApiProtocol(app) ? {
19
20
  apiReadiness: `${resolveApiPrefix(app)}/${resolveApiStem(app)}/readiness`
20
21
  } : {}
21
22
  };
@@ -145,15 +146,9 @@ const PUBLIC_WEBSITE_POLICY = {
145
146
  function formatTsJsonValue(value, indent) {
146
147
  return JSON.stringify(value, null, 2).replaceAll('\n', `\n${' '.repeat(indent)}`);
147
148
  }
148
- function formatIntegerCodeLiteral(value) {
149
- return String(value).replace(/\B(?=(\d{3})+(?!\d))/gu, '_');
150
- }
151
149
  function createPublicWebsiteQualityGateContract() {
152
150
  return PUBLIC_WEBSITE_POLICY.qualityGates;
153
151
  }
154
- function createPublicWebsiteBudgetFallback(budgetName) {
155
- return formatIntegerCodeLiteral(PUBLIC_WEBSITE_POLICY.qualityGates.budgets[budgetName]);
156
- }
157
152
  function createPublicHeadRobotsPolicy() {
158
153
  return PUBLIC_WEBSITE_POLICY.publicHead;
159
154
  }
@@ -177,7 +172,786 @@ function createCloudflareDeployContract(scope, app) {
177
172
  evidence: {
178
173
  proofScript: "scripts/proof-cloudflare-version.mts",
179
174
  reportDefault: '.codex/reports/cloudflare-version-proof/public-url-proof.json'
175
+ },
176
+ ...app.api ? {
177
+ jsonSmokeChecks: [
178
+ {
179
+ id: `${app.id}-readiness-smoke`,
180
+ route: `${app.api.prefix}/${resolveApiStem(app)}/readiness`,
181
+ expect: {
182
+ status: 'ready',
183
+ 'checks.api': 'ready',
184
+ 'checks.moduleFederation': 'ready',
185
+ 'checks.ssr': 'ready'
186
+ }
187
+ }
188
+ ]
189
+ } : {}
190
+ };
191
+ }
192
+ const releaseAgeReasons = {
193
+ cloudflare: 'Reviewed Cloudflare runtime cohort required by generated Worker tooling before pnpm minimum release age elapsed.',
194
+ effect: 'Reviewed Effect 4 beta cohort required by generated strict Effect workspaces before pnpm minimum release age elapsed.',
195
+ i18next: 'Reviewed i18next release required by generated localized applications before pnpm minimum release age elapsed.',
196
+ typescript: 'Reviewed TypeScript compiler and platform cohort required by generated TypeScript 7 workspaces before pnpm minimum release age elapsed.'
197
+ };
198
+ const releaseAgeReviewEvidence = {
199
+ dependencyCohort: {
200
+ reviewer: 'Petr Glaser <syreanis+1@gmail.com>',
201
+ reviewedAt: '2026-07-10T01:20:00.000Z',
202
+ expiresAt: '2026-08-09T01:20:00.000Z',
203
+ uri: 'https://github.com/BleedingDev/ultramodern.js/commit/3e83a30a06fd4d056057e8f0aad52bc46f256811',
204
+ sha256: 'b70f1326e9b555465d9390048d416238bce1efcf91b467336308aa4c3b253940'
205
+ },
206
+ i18next: {
207
+ reviewer: 'Petr Glaser <syreanis+1@gmail.com>',
208
+ reviewedAt: '2026-07-09T23:03:09.000Z',
209
+ expiresAt: '2026-08-08T23:03:09.000Z',
210
+ uri: 'https://github.com/BleedingDev/ultramodern.js/commit/04ae8b3445464e8f6179c3c89606792c97e9acbd',
211
+ sha256: 'bdc703627ded04958aceff6663844994fca3a0be0d1266ea4fdb8dec7c06f4fa'
212
+ },
213
+ releaseCohort: {
214
+ reviewer: 'Petr Glaser <syreanis+1@gmail.com>',
215
+ reviewedAt: '2026-07-10T01:20:00.000Z',
216
+ expiresAt: '2026-08-09T01:20:00.000Z',
217
+ uri: 'https://github.com/BleedingDev/ultramodern.js/commit/2d0622c2e784676161ce28a2299f1d0847b03cf1',
218
+ sha256: '3ad53ef8e90582462b11e062a882ba57991c2c9f2cbf87bc1f88a7eb216b33b4'
219
+ },
220
+ typescript: {
221
+ reviewer: 'Petr Glaser <syreanis+1@gmail.com>',
222
+ reviewedAt: '2026-07-09T14:00:39.000Z',
223
+ expiresAt: '2026-08-08T14:00:39.000Z',
224
+ uri: 'https://github.com/BleedingDev/ultramodern.js/commit/50b905faa441954cac46bef073036514ddf78faa',
225
+ sha256: '39b3f634548088af3e6c8417263d34f8ac430f0aff8ffec6dbded3eb977579c1'
226
+ }
227
+ };
228
+ function createReleaseAgeApproval(seed) {
229
+ return {
230
+ packageName: seed.packageName,
231
+ version: seed.version,
232
+ reason: seed.reason,
233
+ reviewer: seed.review.reviewer,
234
+ reviewedAt: seed.review.reviewedAt,
235
+ evidence: {
236
+ uri: seed.review.uri,
237
+ sha256: seed.review.sha256,
238
+ sha256Subject: 'git-commit-payload'
239
+ },
240
+ registry: {
241
+ publishedAt: seed.publishedAt,
242
+ dist: {
243
+ integrity: seed.integrity
244
+ }
245
+ },
246
+ expiresAt: seed.review.expiresAt
247
+ };
248
+ }
249
+ const ULTRAMODERN_PACKAGE_PINS = {
250
+ appDependencies: {
251
+ '@module-federation/bridge-react': MODULE_FEDERATION_VERSION,
252
+ '@module-federation/modern-js-v3': MODULE_FEDERATION_VERSION,
253
+ '@module-federation/runtime': MODULE_FEDERATION_VERSION,
254
+ '@tanstack/react-router': TANSTACK_ROUTER_VERSION,
255
+ i18next: I18NEXT_VERSION,
256
+ 'node-fetch': NODE_FETCH_VERSION,
257
+ react: REACT_VERSION,
258
+ 'react-dom': REACT_DOM_VERSION,
259
+ 'react-router': REACT_ROUTER_VERSION
260
+ },
261
+ appDevDependencies: {
262
+ '@effect/tsgo': EFFECT_TSGO_VERSION,
263
+ '@rsbuild/plugin-tailwindcss': `^${RSBUILD_PLUGIN_TAILWINDCSS_VERSION}`,
264
+ "@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
265
+ '@types/node': '^20',
266
+ '@types/react': TYPES_REACT_VERSION,
267
+ '@types/react-dom': TYPES_REACT_DOM_VERSION,
268
+ tailwindcss: `^${TAILWIND_VERSION}`,
269
+ typescript: TYPESCRIPT_VERSION,
270
+ wrangler: WRANGLER_VERSION,
271
+ 'zephyr-rspack-plugin': ZEPHYR_RSPACK_PLUGIN_VERSION
272
+ },
273
+ rootDevDependencies: {
274
+ '@effect/tsgo': EFFECT_TSGO_VERSION,
275
+ "@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
276
+ lefthook: LEFTHOOK_VERSION,
277
+ miniflare: MINIFLARE_VERSION,
278
+ oxlint: OXLINT_VERSION,
279
+ oxfmt: OXFMT_VERSION,
280
+ ultracite: ULTRACITE_VERSION,
281
+ wrangler: WRANGLER_VERSION,
282
+ 'zephyr-agent': ZEPHYR_AGENT_VERSION
283
+ },
284
+ transitiveDependencies: {
285
+ '@cloudflare/workers-types': CLOUDFLARE_WORKERS_TYPES_VERSION,
286
+ '@module-federation/node': MODULE_FEDERATION_NODE_VERSION,
287
+ '@tanstack/router-core': TANSTACK_ROUTER_CORE_VERSION,
288
+ "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
289
+ miniflare: MINIFLARE_VERSION,
290
+ workerd: WORKERD_VERSION
291
+ }
292
+ };
293
+ const requiredPatchPolicies = [
294
+ {
295
+ packageName: '@module-federation/bridge-react',
296
+ version: MODULE_FEDERATION_VERSION,
297
+ path: `patches/@module-federation__bridge-react@${MODULE_FEDERATION_VERSION}.patch`
298
+ },
299
+ {
300
+ packageName: '@module-federation/modern-js-v3',
301
+ version: MODULE_FEDERATION_VERSION,
302
+ path: `patches/@module-federation__modern-js-v3@${MODULE_FEDERATION_VERSION}.patch`
303
+ },
304
+ {
305
+ packageName: '@tanstack/router-core',
306
+ version: TANSTACK_ROUTER_CORE_VERSION,
307
+ path: `patches/@tanstack__router-core@${TANSTACK_ROUTER_CORE_VERSION}.patch`
308
+ },
309
+ {
310
+ packageName: 'effect',
311
+ version: EFFECT_VERSION,
312
+ path: 'patches/effect-schema-error-type-id.patch'
313
+ }
314
+ ];
315
+ const conditionalPatchPolicies = [
316
+ {
317
+ packageName: 'drizzle-orm',
318
+ version: DRIZZLE_ORM_VERSION,
319
+ path: 'patches/drizzle-orm-ts7-strict-declarations.patch'
320
+ }
321
+ ];
322
+ const stalePatchPolicies = [
323
+ {
324
+ packageName: '@module-federation/bridge-react',
325
+ version: '2.7.0',
326
+ path: 'patches/@module-federation__bridge-react@2.7.0.patch',
327
+ sha256: '2f89441475f83a6e12d8c2a755b5b15c4d2b04523a1b33fd318c2d537382537f'
328
+ },
329
+ {
330
+ packageName: '@module-federation/modern-js-v3',
331
+ version: '2.7.0',
332
+ path: 'patches/@module-federation__modern-js-v3@2.7.0.patch',
333
+ sha256: 'f51adf0aa6c6e2daa5b7d2978a7716c0d4fb05b29af449b2f16257b957fb7923'
334
+ },
335
+ {
336
+ packageName: 'effect',
337
+ version: '4.0.0-beta.94',
338
+ path: 'patches/effect-schema-error-type-id.patch',
339
+ sha256: 'dc7e8088e600beb20185eb877754d749c4a93909fb79f49465e8319e40d6596a'
340
+ },
341
+ {
342
+ packageName: '@module-federation/dts-plugin',
343
+ version: '2.7.0',
344
+ path: 'patches/@module-federation__dts-plugin@2.7.0.patch',
345
+ sha256: '768cc3bb22e2dede264515f141fdc8af937c8f53d4f8ef8f83469bb0cec1c9a0'
346
+ },
347
+ {
348
+ packageName: '@module-federation/bridge-react',
349
+ version: '2.6.0',
350
+ path: 'patches/@module-federation__bridge-react@2.6.0.patch',
351
+ sha256: '75982bd9b4d40922ce3110ded5254f7faca39112b79d41f27fe0ac4bb416c467'
352
+ },
353
+ {
354
+ packageName: '@module-federation/dts-plugin',
355
+ version: '2.6.0',
356
+ path: 'patches/@module-federation__dts-plugin@2.6.0.patch',
357
+ sha256: 'bc998f74617f7f060ea0f65235f071a5880aade3144ccd610d098d6bbc1c52fe',
358
+ acceptedLegacySha256: [
359
+ 'ad19439992ca0757dc7354ad4197eecd5ac83f3ef5ed990e9200c672138600d5'
360
+ ]
361
+ },
362
+ {
363
+ packageName: '@module-federation/modern-js-v3',
364
+ version: '2.6.0',
365
+ path: 'patches/@module-federation__modern-js-v3@2.6.0.patch',
366
+ sha256: '51ab49dc776c56cdaa8eb43fbd0bb2788633d6b05acfb18fb2f3a1db81c02d87'
367
+ },
368
+ {
369
+ packageName: '@tanstack/router-core',
370
+ version: '1.171.13',
371
+ path: 'patches/@tanstack__router-core@1.171.13.patch',
372
+ sha256: '0c6119dcaa6ad35a11e1ce4fd95179bf929d5b5a86e9cbee110f45bd07c5c8d3'
373
+ }
374
+ ];
375
+ const moduleFederationRegistryReleases = [
376
+ [
377
+ 'bridge-react',
378
+ '2026-07-15T09:16:06.334Z',
379
+ 'sha512-+MIaWVaXyrFfE2qq7ErZeflSTscJtDV6g4lZ+TQxjup1nC83Zw+Nw0fvfJnScDR5lP5SM9epSvZrrZHxpFeEgw=='
380
+ ],
381
+ [
382
+ 'bridge-react-webpack-plugin',
383
+ '2026-07-15T09:15:40.748Z',
384
+ 'sha512-7AaaiE4YOXFb+st6xlVDK65aNKZYR9S9ykH0q2mkHAHTgquXciAjypS8JuhmKn7Lob/2rkplMOc4YsGxG3Ng9Q=='
385
+ ],
386
+ [
387
+ 'cli',
388
+ '2026-07-15T09:16:37.679Z',
389
+ 'sha512-yTxdWkCJPPo+IGASz+NqdW13cw3DhjSBEn9r85aYn1ahckDwB1WcZe0OjDWMqCcR6yi0BMLedk0SWrUeUj0fWw=='
390
+ ],
391
+ [
392
+ 'dts-plugin',
393
+ '2026-07-15T09:16:15.728Z',
394
+ 'sha512-defjq4jOWMEfeejezPWLP5sc8kw0O6FqTT7/E5rbZPEVyjB1A0U3ynhW6GDE5/6hk9/TzdbWS+fBNi4MqUOY6Q=='
395
+ ],
396
+ [
397
+ 'enhanced',
398
+ '2026-07-15T09:17:21.630Z',
399
+ 'sha512-h8vkLdhK7tlcSPmyYNGfGyt0pSzfDB0tYVYdyUt2tXwQRfaJAi3bsIpujMXElw3MXtOfSHESa6M/hPKrtWTHBw=='
400
+ ],
401
+ [
402
+ 'error-codes',
403
+ '2026-07-15T09:15:24.091Z',
404
+ 'sha512-Gaog9904EmxYOQV0hli3XQ7jXeFaADfh5bnBtTCtbZ37Qd/Sz9kQfd+gYQRyIj7RGmkv9DPiN/SsmrTMrTymKw=='
405
+ ],
406
+ [
407
+ 'inject-external-runtime-core-plugin',
408
+ '2026-07-15T09:17:12.157Z',
409
+ 'sha512-fW3jD1ZVds6r/Ul8TtUA42RsB0LfT1yjo5KjqgirH9QrmEMH21x44e3e6BC6IN820XKawRDSmz2kFA5YHIQp7Q=='
410
+ ],
411
+ [
412
+ 'managers',
413
+ '2026-07-15T09:15:44.830Z',
414
+ 'sha512-SnVBCwmi962WGg6hLFElxZUCnrRJdR6glE2ZKPBY/iK07AHUN2ZxuaBCBsVzyws+xLZGHZxBHmVstijTh8dSUA=='
415
+ ],
416
+ [
417
+ 'manifest',
418
+ '2026-07-15T09:16:46.336Z',
419
+ 'sha512-wfVeBXc4/C2F70nRFSPqJhkcwbDgo+wQyEn3jbjJTDoUqxxhYBfHFs1ACBYOk3Qm97L7hHclHGtUG0/nvDEfAA=='
420
+ ],
421
+ [
422
+ 'modern-js-v3',
423
+ '2026-07-15T09:17:49.953Z',
424
+ 'sha512-zmFs0I/E3dLa8Vsj35ep7Ms29SePXFOShjedfFs5VnJPooif6l7fgdIJdxThyI1Rdw5JnRXmJsp4qmGm+naziA=='
425
+ ],
426
+ [
427
+ 'rsbuild-plugin',
428
+ '2026-07-15T09:17:40.351Z',
429
+ 'sha512-rul5OPvLx599rWoAhCtKJ3UYqyM3Dxg0RWEfad3JdnJFqkcSLBojZXgHJE1vbF7DRdGQNmNscKw34iEyn89NwQ=='
430
+ ],
431
+ [
432
+ 'rspack',
433
+ '2026-07-15T09:17:16.399Z',
434
+ 'sha512-TPcrkHpaZgL25Vx3c8oSNwyv7/KktC7uo6HTQdVWlFzbq5RSoMMGkWoir5pY5124isae2/p6v5xAuqICi4r0Zg=='
435
+ ],
436
+ [
437
+ 'runtime',
438
+ '2026-07-15T09:16:02.203Z',
439
+ 'sha512-cGtUBQ1/TVy7KrXy6xPgy3FEmOGyIYkBA2T4iGH3ZH5PNPPTmqN9jF2AfneTSOj0RtBr7Pxq3CUt81E/UCvK1A=='
440
+ ],
441
+ [
442
+ 'runtime-core',
443
+ '2026-07-15T09:15:49.410Z',
444
+ 'sha512-Tf98+epGGiPSHqmQHuXa2uXZMMvjGf1IqJDR1/FpXfmobv5ECN0mGZCjUHGNSyxvoDyXKIkKwJu7IwEoh0ouQA=='
445
+ ],
446
+ [
447
+ 'runtime-tools',
448
+ '2026-07-15T09:16:55.255Z',
449
+ 'sha512-3yOqjdSHXxX4HA3GhlXg3hghGAXW2RJUsnwXCcik2/lTxOHizKI8f3RM+GGCKPxDVqtw43IShe3tA12jNL5A/A=='
450
+ ],
451
+ [
452
+ 'sdk',
453
+ '2026-07-15T09:15:28.114Z',
454
+ 'sha512-yBP+9+0Z8nlvKEXAZS3AsQVy7bFbZf8eMivGk4q4ZdwG3TsLMlsPjb1dQb2i7gcAG6ux9y2LWLkj/0LVk74cnQ=='
455
+ ],
456
+ [
457
+ 'third-party-dts-extractor',
458
+ '2026-07-15T09:15:32.527Z',
459
+ 'sha512-nAMlr74OKIylkfRwlunOhytQbmsgb3gCqdXWnPQhG+ZtqWXGELLfMT4a1Q1ht3cS+sRpWj2SZRqK2M7GadI6tA=='
460
+ ],
461
+ [
462
+ 'webpack-bundler-runtime',
463
+ '2026-07-15T09:16:28.628Z',
464
+ 'sha512-82fDy9v+7qV5fiN8TKVhOdrxhmAZnUIX/IKivYX5ulCt8aoOzVFTiwm/P1GQUDD8z6dqR48xgJdZdf0548Mc9w=='
465
+ ]
466
+ ];
467
+ const moduleFederationNodeRegistryRelease = {
468
+ packageName: '@module-federation/node',
469
+ version: MODULE_FEDERATION_NODE_VERSION,
470
+ registry: {
471
+ publishedAt: '2026-07-15T09:17:26.899Z',
472
+ dist: {
473
+ integrity: 'sha512-mifMvCjWmLl53GS+badQws0j2bsu1ICpdGzCbez4I6kSpaYA8v86L6dwcHtVHIZtkUC6cjAZBDcgpxs4fK3nFQ=='
180
474
  }
475
+ }
476
+ };
477
+ const typescriptPlatformRegistryReleases = [
478
+ [
479
+ 'aix-ppc64',
480
+ '2026-07-08T15:49:32.839Z',
481
+ 'sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=='
482
+ ],
483
+ [
484
+ 'darwin-arm64',
485
+ '2026-07-08T15:49:36.897Z',
486
+ 'sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=='
487
+ ],
488
+ [
489
+ 'darwin-x64',
490
+ '2026-07-08T15:49:40.886Z',
491
+ 'sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=='
492
+ ],
493
+ [
494
+ 'freebsd-arm64',
495
+ '2026-07-08T15:49:45.020Z',
496
+ 'sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=='
497
+ ],
498
+ [
499
+ 'freebsd-x64',
500
+ '2026-07-08T15:49:49.189Z',
501
+ 'sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=='
502
+ ],
503
+ [
504
+ 'linux-arm',
505
+ '2026-07-08T15:49:53.075Z',
506
+ 'sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=='
507
+ ],
508
+ [
509
+ 'linux-arm64',
510
+ '2026-07-08T15:49:57.270Z',
511
+ 'sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=='
512
+ ],
513
+ [
514
+ 'linux-loong64',
515
+ '2026-07-08T15:50:01.501Z',
516
+ 'sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=='
517
+ ],
518
+ [
519
+ 'linux-mips64el',
520
+ '2026-07-08T15:50:05.178Z',
521
+ 'sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=='
522
+ ],
523
+ [
524
+ 'linux-ppc64',
525
+ '2026-07-08T15:50:09.539Z',
526
+ 'sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=='
527
+ ],
528
+ [
529
+ 'linux-riscv64',
530
+ '2026-07-08T15:50:13.357Z',
531
+ 'sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=='
532
+ ],
533
+ [
534
+ 'linux-s390x',
535
+ '2026-07-08T15:50:17.275Z',
536
+ 'sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=='
537
+ ],
538
+ [
539
+ 'linux-x64',
540
+ '2026-07-08T15:50:21.639Z',
541
+ 'sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=='
542
+ ],
543
+ [
544
+ 'netbsd-arm64',
545
+ '2026-07-08T15:50:25.229Z',
546
+ 'sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=='
547
+ ],
548
+ [
549
+ 'netbsd-x64',
550
+ '2026-07-08T15:50:29.798Z',
551
+ 'sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=='
552
+ ],
553
+ [
554
+ 'openbsd-arm64',
555
+ '2026-07-08T15:50:33.600Z',
556
+ 'sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=='
557
+ ],
558
+ [
559
+ 'openbsd-x64',
560
+ '2026-07-08T15:50:37.789Z',
561
+ 'sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=='
562
+ ],
563
+ [
564
+ 'sunos-x64',
565
+ '2026-07-08T15:50:41.700Z',
566
+ 'sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=='
567
+ ],
568
+ [
569
+ 'win32-arm64',
570
+ '2026-07-08T15:50:45.825Z',
571
+ 'sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=='
572
+ ],
573
+ [
574
+ 'win32-x64',
575
+ '2026-07-08T15:50:50.403Z',
576
+ 'sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=='
577
+ ]
578
+ ];
579
+ const releaseAgeApprovals = [
580
+ createReleaseAgeApproval({
581
+ packageName: '@effect/opentelemetry',
582
+ version: EFFECT_VERSION,
583
+ reason: releaseAgeReasons.effect,
584
+ publishedAt: '2026-07-10T00:07:44.725Z',
585
+ integrity: 'sha512-x9yPmb8K8D0GLlGogz28VpKN6q5va9Zvti8kA3Mq1DgTIQf2641Tt6UbhlYfvHxjtwE/mVgztuuapjN8qlDLBw==',
586
+ review: releaseAgeReviewEvidence.dependencyCohort
587
+ }),
588
+ createReleaseAgeApproval({
589
+ packageName: '@effect/vitest',
590
+ version: EFFECT_VITEST_VERSION,
591
+ reason: releaseAgeReasons.effect,
592
+ publishedAt: '2026-07-10T00:07:56.326Z',
593
+ integrity: 'sha512-1dH6LBWSZyqnTV7ZO+yIpPGPf/xd7RtFfvQ4ZpTy9elzFN+wr1YBFpHSCr8+BfXOml6b8g9Mtj5eDy1qjbizUA==',
594
+ review: releaseAgeReviewEvidence.dependencyCohort
595
+ }),
596
+ createReleaseAgeApproval({
597
+ packageName: "@typescript/native-preview",
598
+ version: TYPESCRIPT_NATIVE_PREVIEW_VERSION,
599
+ reason: releaseAgeReasons.typescript,
600
+ publishedAt: '2026-07-07T08:20:24.277Z',
601
+ integrity: 'sha512-oUGp+Rep/hqMhPunyinsALUwSlzHINSxitifPiSaeqoKOKD2OlR9NE3TaPqwsl4NlGslsOSUXI1JotWQzpYCPg==',
602
+ review: releaseAgeReviewEvidence.typescript
603
+ }),
604
+ ...typescriptPlatformRegistryReleases.map(([platform, publishedAt, integrity])=>createReleaseAgeApproval({
605
+ packageName: `@typescript/typescript-${platform}`,
606
+ version: TYPESCRIPT_VERSION,
607
+ reason: releaseAgeReasons.typescript,
608
+ publishedAt,
609
+ integrity,
610
+ review: releaseAgeReviewEvidence.typescript
611
+ })),
612
+ createReleaseAgeApproval({
613
+ packageName: 'effect',
614
+ version: EFFECT_VERSION,
615
+ reason: releaseAgeReasons.effect,
616
+ publishedAt: '2026-07-10T00:07:52.514Z',
617
+ integrity: 'sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg==',
618
+ review: releaseAgeReviewEvidence.dependencyCohort
619
+ }),
620
+ createReleaseAgeApproval({
621
+ packageName: '@cloudflare/workers-types',
622
+ version: CLOUDFLARE_WORKERS_TYPES_VERSION,
623
+ reason: releaseAgeReasons.cloudflare,
624
+ publishedAt: '2026-07-10T01:13:24.132Z',
625
+ integrity: 'sha512-4ooaY2Pb5XGwDn8Fzm6jnTAJkIX0R5LBvL9euQpp2T58sQItlAQd9yivAlkwGhpY5cM1u81/9HaXwKAjXwtyzA==',
626
+ review: releaseAgeReviewEvidence.releaseCohort
627
+ }),
628
+ createReleaseAgeApproval({
629
+ packageName: 'miniflare',
630
+ version: MINIFLARE_VERSION,
631
+ reason: releaseAgeReasons.cloudflare,
632
+ publishedAt: '2026-07-09T18:25:09.203Z',
633
+ integrity: 'sha512-c94O9zRDISdqO18EHt6l0iF/fWgWt8p18PJvRsA/L/NJZ9Cfke3s/F5Blg1XXF7WDutVRzWVWy8Vy4LaT5ifsA==',
634
+ review: releaseAgeReviewEvidence.releaseCohort
635
+ }),
636
+ createReleaseAgeApproval({
637
+ packageName: 'wrangler',
638
+ version: WRANGLER_VERSION,
639
+ reason: releaseAgeReasons.cloudflare,
640
+ publishedAt: '2026-07-09T18:25:09.429Z',
641
+ integrity: 'sha512-xZeXKYi7hxQRF5anL+v77RkufJNpF9f3Eqeyqq2QBsETpLZgh0Agj0jJ6JPtkbgn6ukZdh8OK5egsGPWIditgg==',
642
+ review: releaseAgeReviewEvidence.releaseCohort
643
+ }),
644
+ createReleaseAgeApproval({
645
+ packageName: 'i18next',
646
+ version: I18NEXT_VERSION,
647
+ reason: releaseAgeReasons.i18next,
648
+ publishedAt: '2026-07-09T13:42:14.596Z',
649
+ integrity: 'sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==',
650
+ review: releaseAgeReviewEvidence.i18next
651
+ }),
652
+ createReleaseAgeApproval({
653
+ packageName: "typescript",
654
+ version: TYPESCRIPT_VERSION,
655
+ reason: releaseAgeReasons.typescript,
656
+ publishedAt: '2026-07-08T15:55:18.431Z',
657
+ integrity: 'sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==',
658
+ review: releaseAgeReviewEvidence.typescript
659
+ })
660
+ ];
661
+ const ULTRAMODERN_WORKSPACE_POLICY = {
662
+ schemaVersion: 1,
663
+ dependencies: ULTRAMODERN_PACKAGE_PINS,
664
+ toolchain: {
665
+ node: {
666
+ version: NODE_VERSION,
667
+ engineRange: '>=26'
668
+ },
669
+ packageManager: {
670
+ name: 'pnpm',
671
+ version: PNPM_VERSION,
672
+ engineRange: '>=11'
673
+ }
674
+ },
675
+ pnpm: {
676
+ minimumReleaseAge: 1440,
677
+ minimumReleaseAgeStrict: true,
678
+ minimumReleaseAgeIgnoreMissingTime: false,
679
+ trustPolicy: 'no-downgrade',
680
+ trustPolicyIgnoreAfter: 1440,
681
+ trustPolicyExclude: [
682
+ `@effect/opentelemetry@${EFFECT_VERSION}`,
683
+ `effect@${EFFECT_VERSION}`
684
+ ],
685
+ blockExoticSubdeps: true,
686
+ engineStrict: true,
687
+ pmOnFail: 'error',
688
+ verifyDepsBeforeRun: 'error',
689
+ strictDepBuilds: true,
690
+ peerDependencyRules: {
691
+ allowedVersions: {
692
+ react: '>=19.0.0',
693
+ '@effect/vitest>effect': EFFECT_VERSION
694
+ }
695
+ },
696
+ overrides: {
697
+ '@effect/opentelemetry': EFFECT_VERSION,
698
+ '@effect/vitest': EFFECT_VITEST_VERSION,
699
+ '@tanstack/react-router': TANSTACK_ROUTER_VERSION,
700
+ '@tanstack/router-core': TANSTACK_ROUTER_CORE_VERSION,
701
+ effect: EFFECT_VERSION,
702
+ 'node-fetch': NODE_FETCH_VERSION
703
+ },
704
+ allowBuilds: {
705
+ '@parcel/watcher': true,
706
+ '@swc/core': true,
707
+ 'core-js': true,
708
+ esbuild: true,
709
+ lefthook: true,
710
+ 'msgpackr-extract': true,
711
+ sharp: true,
712
+ workerd: true
713
+ },
714
+ patchedDependencies: {
715
+ required: requiredPatchPolicies,
716
+ conditional: conditionalPatchPolicies,
717
+ stale: stalePatchPolicies
718
+ },
719
+ releaseAge: {
720
+ approvals: releaseAgeApprovals,
721
+ registryEvidence: {
722
+ moduleFederation: {
723
+ version: MODULE_FEDERATION_VERSION,
724
+ nodeVersion: MODULE_FEDERATION_NODE_VERSION,
725
+ releases: moduleFederationRegistryReleases.map(([packageSuffix, publishedAt, integrity])=>({
726
+ packageName: `@module-federation/${packageSuffix}`,
727
+ version: MODULE_FEDERATION_VERSION,
728
+ registry: {
729
+ publishedAt,
730
+ dist: {
731
+ integrity
732
+ }
733
+ }
734
+ })),
735
+ node: moduleFederationNodeRegistryRelease
736
+ }
737
+ },
738
+ firstParty: {
739
+ source: 'authenticated-release-cohort-projection',
740
+ exactVersionOnly: true,
741
+ staticApprovals: false
742
+ }
743
+ }
744
+ },
745
+ metadata: {
746
+ packageSource: {
747
+ configPath: '.modernjs/ultramodern.json',
748
+ rootManifestPath: 'modernjs.packageSource',
749
+ ownedKeys: [
750
+ 'strategy',
751
+ 'modernPackageVersion',
752
+ 'registry',
753
+ 'aliasScope',
754
+ 'aliasPackageNamePrefix'
755
+ ]
756
+ },
757
+ moduleFederation: {
758
+ version: MODULE_FEDERATION_VERSION,
759
+ nodeVersion: MODULE_FEDERATION_NODE_VERSION,
760
+ configPath: 'moduleFederation',
761
+ appConfigPath: 'topology.apps[].moduleFederation'
762
+ },
763
+ nativePreview: {
764
+ packageName: "@typescript/native-preview",
765
+ version: TYPESCRIPT_NATIVE_PREVIEW_VERSION,
766
+ generatedDependencyPolicy: 'forbidden',
767
+ releaseAgePolicy: 'exact-reviewed-closure-only'
768
+ }
769
+ }
770
+ };
771
+ const exactPackageNamePattern = /^(?:@[a-z0-9][a-z0-9._~-]*\/[a-z0-9][a-z0-9._~-]*|[a-z0-9][a-z0-9._~-]*)$/u;
772
+ 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;
773
+ const integrityPattern = /^sha(?:256|384|512)-[A-Za-z0-9+/]+={0,2}$/u;
774
+ const sha256Pattern = /^[a-f0-9]{64}$/u;
775
+ const immutableCommitUriPattern = /^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/commit\/[a-f0-9]{40}$/u;
776
+ function comparePackageVersions(left, right) {
777
+ if (left.packageName !== right.packageName) return left.packageName < right.packageName ? -1 : 1;
778
+ if (left.version === right.version) return 0;
779
+ return left.version < right.version ? -1 : 1;
780
+ }
781
+ function packageVersionKey(value) {
782
+ return `${value.packageName}@${value.version}`;
783
+ }
784
+ function assertCanonicalInstant(value, label) {
785
+ if ('string' != typeof value) throw new Error(`${label} must be an ISO-8601 UTC timestamp.`);
786
+ const timestamp = Date.parse(value);
787
+ if (!Number.isFinite(timestamp) || new Date(timestamp).toISOString() !== value) throw new Error(`${label} must be a canonical ISO-8601 UTC timestamp.`);
788
+ return timestamp;
789
+ }
790
+ function assertExactPackageVersion(value, label) {
791
+ 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.`);
792
+ 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.`);
793
+ }
794
+ function requiredRecord(value, label) {
795
+ if (!value || 'object' != typeof value || Array.isArray(value)) throw new Error(`${label} must be an object.`);
796
+ return value;
797
+ }
798
+ function validateReleaseAgeApprovals(approvals, options = {}) {
799
+ if (!Array.isArray(approvals)) throw new Error('releaseAge.approvals must be an array.');
800
+ const now = options.now ?? new Date();
801
+ if (!Number.isFinite(now.getTime())) throw new Error('Release-age validation requires a valid current time.');
802
+ const seen = new Set();
803
+ const validated = approvals.map((rawApproval, index)=>{
804
+ const label = `releaseAge.approvals[${index}]`;
805
+ const approval = requiredRecord(rawApproval, label);
806
+ assertExactPackageVersion(approval, label);
807
+ const key = packageVersionKey({
808
+ packageName: approval.packageName,
809
+ version: approval.version
810
+ });
811
+ if (seen.has(key)) throw new Error(`Duplicate release-age approval for ${key}.`);
812
+ seen.add(key);
813
+ for (const field of [
814
+ 'reason',
815
+ 'reviewer'
816
+ ]){
817
+ const value = approval[field];
818
+ 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.`);
819
+ }
820
+ const reviewedAt = assertCanonicalInstant(approval.reviewedAt, `${label}.reviewedAt`);
821
+ const expiresAt = assertCanonicalInstant(approval.expiresAt, `${label}.expiresAt`);
822
+ if (expiresAt <= reviewedAt) throw new Error(`${key} expiresAt must be after reviewedAt.`);
823
+ const evidence = requiredRecord(approval.evidence, `${label}.evidence`);
824
+ if ('string' != typeof evidence.uri || !immutableCommitUriPattern.test(evidence.uri)) throw new Error(`${label}.evidence.uri must reference an immutable full GitHub commit.`);
825
+ if ('string' != typeof evidence.sha256 || !sha256Pattern.test(evidence.sha256)) throw new Error(`${label}.evidence.sha256 must be a SHA-256 digest.`);
826
+ if ('git-commit-payload' !== evidence.sha256Subject) throw new Error(`${label}.evidence.sha256Subject must identify the raw Git commit payload.`);
827
+ const registry = requiredRecord(approval.registry, `${label}.registry`);
828
+ const publishedAt = assertCanonicalInstant(registry.publishedAt, `${label}.registry.publishedAt`);
829
+ if (publishedAt > reviewedAt) throw new Error(`${key} cannot be reviewed before its registry publish time.`);
830
+ const dist = requiredRecord(registry.dist, `${label}.registry.dist`);
831
+ if ('string' != typeof dist.integrity || !integrityPattern.test(dist.integrity)) throw new Error(`${label}.registry.dist.integrity must be a valid SRI.`);
832
+ return approval;
833
+ });
834
+ return validated.sort(comparePackageVersions);
835
+ }
836
+ function renderMinimumReleaseAgeExclude(options = {}) {
837
+ const now = options.now ?? new Date();
838
+ const nowTimestamp = now.getTime();
839
+ const reviewedSelectors = validateReleaseAgeApprovals(options.approvals ?? ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals, {
840
+ now
841
+ }).filter((approval)=>{
842
+ const reviewedAt = Date.parse(approval.reviewedAt);
843
+ const expiresAt = Date.parse(approval.expiresAt);
844
+ const maturesAt = Date.parse(approval.registry.publishedAt) + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
845
+ return reviewedAt <= nowTimestamp && nowTimestamp < expiresAt && nowTimestamp < maturesAt;
846
+ }).map(packageVersionKey);
847
+ const packageSource = options.packageSource;
848
+ if (packageSource?.strategy !== 'install' || !exactVersionPattern.test(packageSource.modernPackageVersion)) return reviewedSelectors;
849
+ if (void 0 === options.releaseCohort) throw new Error('Authenticated release cohort projection is required for install package sources.');
850
+ const releaseCohort = parseUltramodernReleaseCohort(options.releaseCohort);
851
+ assertReleaseCohortPackageSource(releaseCohort, packageSource);
852
+ const firstPartySelectors = releaseCohortSelectors(releaseCohort);
853
+ return [
854
+ ...new Set([
855
+ ...reviewedSelectors,
856
+ ...firstPartySelectors
857
+ ])
858
+ ].sort();
859
+ }
860
+ function resolveReleaseAgeApprovals(candidates, options = {}) {
861
+ if (!Array.isArray(candidates)) throw new Error('Release-age dependency closure must be an array.');
862
+ const approvals = validateReleaseAgeApprovals(options.approvals ?? ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals, {
863
+ now: options.now
864
+ });
865
+ const now = options.now ?? new Date();
866
+ const nowTimestamp = now.getTime();
867
+ const approvalsByKey = new Map(approvals.map((approval)=>[
868
+ packageVersionKey(approval),
869
+ approval
870
+ ]));
871
+ const candidatesByKey = new Map();
872
+ for (const [index, candidate] of candidates.entries()){
873
+ const label = `dependencyClosure[${index}]`;
874
+ const record = requiredRecord(candidate, label);
875
+ assertExactPackageVersion(record, label);
876
+ const registry = requiredRecord(record.registry, `${label}.registry`);
877
+ const dist = requiredRecord(registry.dist, `${label}.registry.dist`);
878
+ if ('string' != typeof dist.integrity || !integrityPattern.test(dist.integrity)) throw new Error(`${label}.registry.dist.integrity is required; registry uncertainty is fail-closed.`);
879
+ const publishedAt = assertCanonicalInstant(registry.publishedAt, `${label}.registry.publishedAt`);
880
+ if (publishedAt > nowTimestamp) throw new Error(`${label}.registry.publishedAt is in the future; registry uncertainty is fail-closed.`);
881
+ const key = packageVersionKey(record);
882
+ if (candidatesByKey.has(key)) throw new Error(`Duplicate dependency-closure candidate for ${key}.`);
883
+ candidatesByKey.set(key, {
884
+ candidate,
885
+ publishedAt
886
+ });
887
+ }
888
+ const approved = [];
889
+ const reviewCandidates = [];
890
+ for (const [key, resolvedCandidate] of candidatesByKey){
891
+ const { candidate, publishedAt } = resolvedCandidate;
892
+ const approval = approvalsByKey.get(key);
893
+ const maturesAt = publishedAt + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
894
+ if (approval) {
895
+ if (candidate.registry.dist.integrity !== approval.registry.dist.integrity) throw new Error(`Release-age approval ${key} does not match lock integrity.`);
896
+ if (candidate.registry.publishedAt !== approval.registry.publishedAt) throw new Error(`Release-age approval ${key} does not match registry publish time.`);
897
+ }
898
+ if (!(nowTimestamp >= maturesAt)) {
899
+ if (!approval || Date.parse(approval.reviewedAt) > nowTimestamp) {
900
+ reviewCandidates.push(candidate);
901
+ continue;
902
+ }
903
+ if (Date.parse(approval.expiresAt) <= nowTimestamp) throw new Error(`Release-age approval for immature ${key} expired at ${approval.expiresAt}.`);
904
+ approved.push(candidate);
905
+ }
906
+ }
907
+ for (const approval of approvals){
908
+ const key = packageVersionKey(approval);
909
+ const reviewedAt = Date.parse(approval.reviewedAt);
910
+ const expiresAt = Date.parse(approval.expiresAt);
911
+ const maturesAt = Date.parse(approval.registry.publishedAt) + 60000 * ULTRAMODERN_WORKSPACE_POLICY.pnpm.minimumReleaseAge;
912
+ if (reviewedAt <= nowTimestamp && nowTimestamp < expiresAt && nowTimestamp < maturesAt && !candidatesByKey.has(key)) throw new Error(`Release-age approval ${key} is unmatched by the dependency closure.`);
913
+ }
914
+ return {
915
+ minimumReleaseAgeExclude: approved.sort(comparePackageVersions).map(packageVersionKey),
916
+ reviewCandidates: reviewCandidates.sort(comparePackageVersions)
181
917
  };
182
918
  }
183
- export { PUBLIC_WEBSITE_POLICY, createCloudflareDeployContract, createCloudflareProofRoute, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, createPublicWebsiteBudgetFallback, createPublicWebsiteQualityGateContract, formatIntegerCodeLiteral, formatTsJsonValue };
919
+ function discoverPnpmLockReleaseAgeCandidates(lockfile) {
920
+ const lock = requiredRecord(lockfile, 'pnpm lockfile');
921
+ const packages = requiredRecord(lock.packages, 'pnpm lockfile packages');
922
+ const candidates = new Map();
923
+ for (const [rawKey, rawPackage] of Object.entries(packages)){
924
+ const peerSuffix = rawKey.indexOf('(');
925
+ const packageKey = -1 === peerSuffix ? rawKey : rawKey.slice(0, peerSuffix);
926
+ const versionSeparator = packageKey.lastIndexOf('@');
927
+ if (versionSeparator <= 0) continue;
928
+ const packageName = packageKey.slice(0, versionSeparator);
929
+ const version = packageKey.slice(versionSeparator + 1);
930
+ if (!exactPackageNamePattern.test(packageName) || !exactVersionPattern.test(version)) continue;
931
+ const packageRecord = requiredRecord(rawPackage, `pnpm lockfile package ${packageKey}`);
932
+ const resolution = requiredRecord(packageRecord.resolution, `pnpm lockfile package ${packageKey} resolution`);
933
+ if ('string' != typeof resolution.integrity || !integrityPattern.test(resolution.integrity)) throw new Error(`pnpm lockfile package ${packageKey} has uncertain registry integrity.`);
934
+ const key = packageVersionKey({
935
+ packageName,
936
+ version
937
+ });
938
+ const existing = candidates.get(key);
939
+ if (existing) {
940
+ if (existing.registry.dist.integrity !== resolution.integrity) throw new Error(`pnpm lockfile has conflicting registry integrity for ${key}.`);
941
+ continue;
942
+ }
943
+ candidates.set(key, {
944
+ packageName,
945
+ version,
946
+ registry: {
947
+ dist: {
948
+ integrity: resolution.integrity
949
+ }
950
+ }
951
+ });
952
+ }
953
+ return [
954
+ ...candidates.values()
955
+ ].sort(comparePackageVersions);
956
+ }
957
+ export { ULTRAMODERN_PACKAGE_PINS, ULTRAMODERN_WORKSPACE_POLICY, createCloudflareDeployContract, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, discoverPnpmLockReleaseAgeCandidates, formatTsJsonValue, renderMinimumReleaseAgeExclude, resolveReleaseAgeApprovals, validateReleaseAgeApprovals };