@bleedingdev/modern-js-create 3.5.0-ultramodern.6 → 3.5.0-ultramodern.75

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 (562) 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 +74 -0
  21. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +99 -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 +205 -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/help.cjs +54 -0
  29. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +52 -0
  30. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +350 -0
  31. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +200 -0
  32. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +89 -0
  33. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +442 -0
  34. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +358 -0
  35. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +99 -0
  36. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.cjs +135 -0
  37. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +410 -0
  38. package/dist/cjs/ultramodern-tooling/commands/options.cjs +59 -0
  39. package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +122 -0
  40. package/dist/cjs/ultramodern-tooling/commands/skills.cjs +49 -0
  41. package/dist/cjs/ultramodern-tooling/commands/sync-delivery-unit.cjs +40 -0
  42. package/dist/cjs/ultramodern-tooling/commands/validate.cjs +53 -0
  43. package/dist/cjs/ultramodern-tooling/commands.cjs +27 -491
  44. package/dist/cjs/ultramodern-tooling/config/constants.cjs +48 -0
  45. package/dist/cjs/ultramodern-tooling/config/index.cjs +104 -0
  46. package/dist/cjs/ultramodern-tooling/config/json.cjs +61 -0
  47. package/dist/cjs/ultramodern-tooling/config/load.cjs +62 -0
  48. package/dist/cjs/ultramodern-tooling/config/metadata.cjs +92 -0
  49. package/dist/cjs/ultramodern-tooling/config/normalize.cjs +236 -0
  50. package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +157 -0
  51. package/dist/cjs/ultramodern-tooling/config/types.cjs +18 -0
  52. package/dist/cjs/ultramodern-tooling/config.cjs +23 -133
  53. package/dist/cjs/ultramodern-workspace/add-shell.cjs +274 -0
  54. package/dist/cjs/ultramodern-workspace/add-vertical/constants.cjs +52 -0
  55. package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +183 -0
  56. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +255 -0
  57. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +256 -0
  58. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +122 -0
  59. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +152 -0
  60. package/dist/cjs/ultramodern-workspace/add-vertical/transaction.cjs +327 -0
  61. package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +137 -0
  62. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +22 -571
  63. package/dist/cjs/ultramodern-workspace/api/checkout-cart.cjs +145 -0
  64. package/dist/cjs/ultramodern-workspace/api/client.cjs +224 -0
  65. package/dist/cjs/ultramodern-workspace/api/contracts.cjs +251 -0
  66. package/dist/cjs/ultramodern-workspace/api/names.cjs +98 -0
  67. package/dist/cjs/ultramodern-workspace/api/rpc.cjs +264 -0
  68. package/dist/cjs/ultramodern-workspace/api/service.cjs +252 -0
  69. package/dist/cjs/ultramodern-workspace/api/shared.cjs +270 -0
  70. package/dist/cjs/ultramodern-workspace/api.cjs +49 -1005
  71. package/dist/cjs/ultramodern-workspace/app-files.cjs +51 -69
  72. package/dist/cjs/ultramodern-workspace/backend-federation.cjs +346 -0
  73. package/dist/cjs/ultramodern-workspace/bridge-config/cli.cjs +71 -0
  74. package/dist/cjs/ultramodern-workspace/bridge-config/defaults.cjs +43 -0
  75. package/dist/cjs/ultramodern-workspace/bridge-config/gates.cjs +93 -0
  76. package/dist/cjs/ultramodern-workspace/bridge-config/index.cjs +60 -0
  77. package/dist/cjs/ultramodern-workspace/bridge-config/normalize.cjs +68 -0
  78. package/dist/cjs/ultramodern-workspace/bridge-config/schema.cjs +78 -0
  79. package/dist/cjs/ultramodern-workspace/bridge-config/shared.cjs +110 -0
  80. package/dist/cjs/ultramodern-workspace/bridge-config/validation.cjs +68 -0
  81. package/dist/cjs/ultramodern-workspace/bridge-config/workspace-packages.cjs +108 -0
  82. package/dist/cjs/ultramodern-workspace/bridge-config.cjs +32 -297
  83. package/dist/cjs/ultramodern-workspace/codesmith.cjs +10 -1
  84. package/dist/cjs/ultramodern-workspace/contracts.cjs +80 -26
  85. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/types.cjs +291 -0
  86. package/dist/cjs/ultramodern-workspace/delivery-unit-schema/up-projection.cjs +188 -0
  87. package/dist/cjs/ultramodern-workspace/delivery-unit-stamp.cjs +56 -0
  88. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +153 -0
  89. package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +75 -0
  90. package/dist/cjs/ultramodern-workspace/demo-components.cjs +474 -205
  91. package/dist/cjs/ultramodern-workspace/descriptors.cjs +101 -16
  92. package/dist/cjs/ultramodern-workspace/effect-diagnostics.cjs +114 -0
  93. package/dist/cjs/ultramodern-workspace/fs-io.cjs +26 -36
  94. package/dist/cjs/ultramodern-workspace/generation-result.cjs +36 -3
  95. package/dist/cjs/ultramodern-workspace/index.cjs +28 -0
  96. package/dist/cjs/ultramodern-workspace/locales.cjs +3 -17
  97. package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +69 -0
  98. package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +77 -0
  99. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +84 -0
  100. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +188 -0
  101. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +165 -0
  102. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +201 -0
  103. package/dist/cjs/ultramodern-workspace/mf-validation/types.cjs +18 -0
  104. package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +112 -0
  105. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +6 -529
  106. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +336 -0
  107. package/dist/cjs/ultramodern-workspace/module-federation/index.cjs +73 -0
  108. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +111 -0
  109. package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +106 -0
  110. package/dist/cjs/ultramodern-workspace/module-federation/shared-config.cjs +53 -0
  111. package/dist/cjs/ultramodern-workspace/module-federation.cjs +18 -477
  112. package/dist/cjs/ultramodern-workspace/naming.cjs +1 -7
  113. package/dist/cjs/ultramodern-workspace/overlay-baseline-guard.cjs +408 -0
  114. package/dist/cjs/ultramodern-workspace/overlays.cjs +39 -5
  115. package/dist/cjs/ultramodern-workspace/package-json.cjs +54 -301
  116. package/dist/cjs/ultramodern-workspace/package-source.cjs +11 -2
  117. package/dist/cjs/ultramodern-workspace/policy.cjs +789 -24
  118. package/dist/cjs/ultramodern-workspace/public-surface.cjs +1 -22
  119. package/dist/cjs/ultramodern-workspace/routes.cjs +8 -157
  120. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +41 -0
  121. package/dist/cjs/ultramodern-workspace/shells.cjs +151 -0
  122. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +147 -0
  123. package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +200 -0
  124. package/dist/cjs/ultramodern-workspace/types.cjs +27 -0
  125. package/dist/cjs/ultramodern-workspace/versions.cjs +52 -37
  126. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +174 -0
  127. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +118 -88
  128. package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +642 -0
  129. package/dist/cjs/ultramodern-workspace/write-app.cjs +148 -0
  130. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +45 -67
  131. package/dist/cjs/ultramodern-workspace/zerops.cjs +108 -0
  132. package/dist/esm/cli/flags.js +262 -0
  133. package/dist/esm/cli/help.js +67 -0
  134. package/dist/esm/cli/package-source.js +124 -0
  135. package/dist/esm/cli/project-setup.js +105 -0
  136. package/dist/esm/cli/prompts.js +51 -0
  137. package/dist/esm/index.js +19 -565
  138. package/dist/esm/locale/en.js +5 -6
  139. package/dist/esm/locale/zh.js +5 -6
  140. package/dist/esm/ultramodern-package-source.js +1 -24
  141. package/dist/esm/ultramodern-release-cohort.js +133 -0
  142. package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +88 -0
  143. package/dist/esm/ultramodern-tooling/commands/context.js +66 -0
  144. package/dist/esm/ultramodern-tooling/commands/mf-types.js +17 -0
  145. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +154 -0
  146. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +12 -0
  147. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +38 -0
  148. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +10 -0
  149. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +22 -0
  150. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +50 -0
  151. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +83 -0
  152. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +16 -0
  153. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +156 -0
  154. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +12 -0
  155. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +7 -0
  156. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +15 -0
  157. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +16 -0
  158. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +14 -0
  159. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +285 -0
  160. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +156 -0
  161. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +51 -0
  162. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +383 -0
  163. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +311 -0
  164. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +24 -0
  165. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +80 -0
  166. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +361 -0
  167. package/dist/esm/ultramodern-tooling/commands/options.js +18 -0
  168. package/dist/esm/ultramodern-tooling/commands/routes-generate.js +74 -0
  169. package/dist/esm/ultramodern-tooling/commands/skills.js +11 -0
  170. package/dist/esm/ultramodern-tooling/commands/sync-delivery-unit.js +1 -0
  171. package/dist/esm/ultramodern-tooling/commands/validate.js +15 -0
  172. package/dist/esm/ultramodern-tooling/commands.js +23 -482
  173. package/dist/esm/ultramodern-tooling/config/constants.js +4 -0
  174. package/dist/esm/ultramodern-tooling/config/index.js +7 -0
  175. package/dist/esm/ultramodern-tooling/config/json.js +10 -0
  176. package/dist/esm/ultramodern-tooling/config/load.js +13 -0
  177. package/dist/esm/ultramodern-tooling/config/metadata.js +37 -0
  178. package/dist/esm/ultramodern-tooling/config/normalize.js +173 -0
  179. package/dist/esm/ultramodern-tooling/config/synthesize.js +108 -0
  180. package/dist/esm/ultramodern-tooling/config/types.js +0 -0
  181. package/dist/esm/ultramodern-tooling/config.js +1 -120
  182. package/dist/esm/ultramodern-workspace/add-shell.js +221 -0
  183. package/dist/esm/ultramodern-workspace/add-vertical/constants.js +5 -0
  184. package/dist/esm/ultramodern-workspace/add-vertical/execute.js +135 -0
  185. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +205 -0
  186. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +198 -0
  187. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +65 -0
  188. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +108 -0
  189. package/dist/esm/ultramodern-workspace/add-vertical/transaction.js +254 -0
  190. package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +67 -0
  191. package/dist/esm/ultramodern-workspace/add-vertical.js +6 -544
  192. package/dist/esm/ultramodern-workspace/api/checkout-cart.js +86 -0
  193. package/dist/esm/ultramodern-workspace/api/client.js +183 -0
  194. package/dist/esm/ultramodern-workspace/api/contracts.js +201 -0
  195. package/dist/esm/ultramodern-workspace/api/names.js +33 -0
  196. package/dist/esm/ultramodern-workspace/api/rpc.js +205 -0
  197. package/dist/esm/ultramodern-workspace/api/service.js +211 -0
  198. package/dist/esm/ultramodern-workspace/api/shared.js +226 -0
  199. package/dist/esm/ultramodern-workspace/api.js +6 -984
  200. package/dist/esm/ultramodern-workspace/app-files.js +51 -51
  201. package/dist/esm/ultramodern-workspace/backend-federation.js +281 -0
  202. package/dist/esm/ultramodern-workspace/bridge-config/cli.js +30 -0
  203. package/dist/esm/ultramodern-workspace/bridge-config/defaults.js +5 -0
  204. package/dist/esm/ultramodern-workspace/bridge-config/gates.js +52 -0
  205. package/dist/esm/ultramodern-workspace/bridge-config/index.js +3 -0
  206. package/dist/esm/ultramodern-workspace/bridge-config/normalize.js +30 -0
  207. package/dist/esm/ultramodern-workspace/bridge-config/schema.js +31 -0
  208. package/dist/esm/ultramodern-workspace/bridge-config/shared.js +51 -0
  209. package/dist/esm/ultramodern-workspace/bridge-config/validation.js +27 -0
  210. package/dist/esm/ultramodern-workspace/bridge-config/workspace-packages.js +67 -0
  211. package/dist/esm/ultramodern-workspace/bridge-config.js +1 -270
  212. package/dist/esm/ultramodern-workspace/codesmith.js +10 -1
  213. package/dist/esm/ultramodern-workspace/contracts.js +81 -27
  214. package/dist/esm/ultramodern-workspace/delivery-unit-schema/types.js +235 -0
  215. package/dist/esm/ultramodern-workspace/delivery-unit-schema/up-projection.js +129 -0
  216. package/dist/esm/ultramodern-workspace/delivery-unit-stamp.js +18 -0
  217. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +104 -0
  218. package/dist/esm/ultramodern-workspace/delivery-unit.js +21 -0
  219. package/dist/esm/ultramodern-workspace/demo-components.js +461 -204
  220. package/dist/esm/ultramodern-workspace/descriptors.js +75 -17
  221. package/dist/esm/ultramodern-workspace/effect-diagnostics.js +76 -0
  222. package/dist/esm/ultramodern-workspace/fs-io.js +27 -18
  223. package/dist/esm/ultramodern-workspace/generation-result.js +33 -3
  224. package/dist/esm/ultramodern-workspace/index.js +4 -0
  225. package/dist/esm/ultramodern-workspace/locales.js +3 -4
  226. package/dist/esm/ultramodern-workspace/mf-validation/constants.js +19 -0
  227. package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +28 -0
  228. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +46 -0
  229. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +144 -0
  230. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +89 -0
  231. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +154 -0
  232. package/dist/esm/ultramodern-workspace/mf-validation/types.js +0 -0
  233. package/dist/esm/ultramodern-workspace/mf-validation/validate.js +57 -0
  234. package/dist/esm/ultramodern-workspace/mf-validation.js +3 -516
  235. package/dist/esm/ultramodern-workspace/module-federation/config.js +289 -0
  236. package/dist/esm/ultramodern-workspace/module-federation/index.js +4 -0
  237. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +67 -0
  238. package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +65 -0
  239. package/dist/esm/ultramodern-workspace/module-federation/shared-config.js +12 -0
  240. package/dist/esm/ultramodern-workspace/module-federation.js +2 -458
  241. package/dist/esm/ultramodern-workspace/naming.js +2 -2
  242. package/dist/esm/ultramodern-workspace/overlay-baseline-guard.js +350 -0
  243. package/dist/esm/ultramodern-workspace/overlays.js +28 -5
  244. package/dist/esm/ultramodern-workspace/package-json.js +48 -283
  245. package/dist/esm/ultramodern-workspace/package-source.js +7 -1
  246. package/dist/esm/ultramodern-workspace/policy.js +772 -10
  247. package/dist/esm/ultramodern-workspace/public-surface.js +2 -2
  248. package/dist/esm/ultramodern-workspace/routes.js +9 -143
  249. package/dist/esm/ultramodern-workspace/shared-patches.js +3 -0
  250. package/dist/esm/ultramodern-workspace/shells.js +92 -0
  251. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
  252. package/dist/esm/ultramodern-workspace/tsconfigs.js +137 -0
  253. package/dist/esm/ultramodern-workspace/types.js +16 -1
  254. package/dist/esm/ultramodern-workspace/versions.js +35 -26
  255. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +124 -0
  256. package/dist/esm/ultramodern-workspace/workspace-scripts.js +115 -85
  257. package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +604 -0
  258. package/dist/esm/ultramodern-workspace/write-app.js +105 -0
  259. package/dist/esm/ultramodern-workspace/write-workspace.js +47 -66
  260. package/dist/esm/ultramodern-workspace/zerops.js +70 -0
  261. package/dist/esm-node/cli/flags.js +263 -0
  262. package/dist/esm-node/cli/help.js +68 -0
  263. package/dist/esm-node/cli/package-source.js +125 -0
  264. package/dist/esm-node/cli/project-setup.js +106 -0
  265. package/dist/esm-node/cli/prompts.js +52 -0
  266. package/dist/esm-node/index.js +19 -565
  267. package/dist/esm-node/locale/en.js +5 -6
  268. package/dist/esm-node/locale/zh.js +5 -6
  269. package/dist/esm-node/ultramodern-package-source.js +1 -24
  270. package/dist/esm-node/ultramodern-release-cohort.js +134 -0
  271. package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +89 -0
  272. package/dist/esm-node/ultramodern-tooling/commands/context.js +67 -0
  273. package/dist/esm-node/ultramodern-tooling/commands/mf-types.js +18 -0
  274. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +155 -0
  275. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +13 -0
  276. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +39 -0
  277. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +11 -0
  278. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +23 -0
  279. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +51 -0
  280. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +84 -0
  281. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +17 -0
  282. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +157 -0
  283. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +13 -0
  284. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +8 -0
  285. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +16 -0
  286. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +17 -0
  287. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +15 -0
  288. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +286 -0
  289. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +157 -0
  290. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +52 -0
  291. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +384 -0
  292. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +312 -0
  293. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +25 -0
  294. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +81 -0
  295. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +362 -0
  296. package/dist/esm-node/ultramodern-tooling/commands/options.js +19 -0
  297. package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +75 -0
  298. package/dist/esm-node/ultramodern-tooling/commands/skills.js +12 -0
  299. package/dist/esm-node/ultramodern-tooling/commands/sync-delivery-unit.js +2 -0
  300. package/dist/esm-node/ultramodern-tooling/commands/validate.js +16 -0
  301. package/dist/esm-node/ultramodern-tooling/commands.js +23 -482
  302. package/dist/esm-node/ultramodern-tooling/config/constants.js +5 -0
  303. package/dist/esm-node/ultramodern-tooling/config/index.js +8 -0
  304. package/dist/esm-node/ultramodern-tooling/config/json.js +11 -0
  305. package/dist/esm-node/ultramodern-tooling/config/load.js +14 -0
  306. package/dist/esm-node/ultramodern-tooling/config/metadata.js +38 -0
  307. package/dist/esm-node/ultramodern-tooling/config/normalize.js +174 -0
  308. package/dist/esm-node/ultramodern-tooling/config/synthesize.js +109 -0
  309. package/dist/esm-node/ultramodern-tooling/config/types.js +1 -0
  310. package/dist/esm-node/ultramodern-tooling/config.js +1 -120
  311. package/dist/esm-node/ultramodern-workspace/add-shell.js +222 -0
  312. package/dist/esm-node/ultramodern-workspace/add-vertical/constants.js +6 -0
  313. package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +136 -0
  314. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +206 -0
  315. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +199 -0
  316. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +66 -0
  317. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +109 -0
  318. package/dist/esm-node/ultramodern-workspace/add-vertical/transaction.js +255 -0
  319. package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +68 -0
  320. package/dist/esm-node/ultramodern-workspace/add-vertical.js +6 -544
  321. package/dist/esm-node/ultramodern-workspace/api/checkout-cart.js +87 -0
  322. package/dist/esm-node/ultramodern-workspace/api/client.js +184 -0
  323. package/dist/esm-node/ultramodern-workspace/api/contracts.js +202 -0
  324. package/dist/esm-node/ultramodern-workspace/api/names.js +34 -0
  325. package/dist/esm-node/ultramodern-workspace/api/rpc.js +206 -0
  326. package/dist/esm-node/ultramodern-workspace/api/service.js +212 -0
  327. package/dist/esm-node/ultramodern-workspace/api/shared.js +227 -0
  328. package/dist/esm-node/ultramodern-workspace/api.js +6 -984
  329. package/dist/esm-node/ultramodern-workspace/app-files.js +51 -51
  330. package/dist/esm-node/ultramodern-workspace/backend-federation.js +282 -0
  331. package/dist/esm-node/ultramodern-workspace/bridge-config/cli.js +31 -0
  332. package/dist/esm-node/ultramodern-workspace/bridge-config/defaults.js +6 -0
  333. package/dist/esm-node/ultramodern-workspace/bridge-config/gates.js +53 -0
  334. package/dist/esm-node/ultramodern-workspace/bridge-config/index.js +4 -0
  335. package/dist/esm-node/ultramodern-workspace/bridge-config/normalize.js +31 -0
  336. package/dist/esm-node/ultramodern-workspace/bridge-config/schema.js +32 -0
  337. package/dist/esm-node/ultramodern-workspace/bridge-config/shared.js +52 -0
  338. package/dist/esm-node/ultramodern-workspace/bridge-config/validation.js +28 -0
  339. package/dist/esm-node/ultramodern-workspace/bridge-config/workspace-packages.js +68 -0
  340. package/dist/esm-node/ultramodern-workspace/bridge-config.js +1 -270
  341. package/dist/esm-node/ultramodern-workspace/codesmith.js +10 -1
  342. package/dist/esm-node/ultramodern-workspace/contracts.js +81 -27
  343. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/types.js +236 -0
  344. package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/up-projection.js +130 -0
  345. package/dist/esm-node/ultramodern-workspace/delivery-unit-stamp.js +19 -0
  346. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +105 -0
  347. package/dist/esm-node/ultramodern-workspace/delivery-unit.js +22 -0
  348. package/dist/esm-node/ultramodern-workspace/demo-components.js +461 -204
  349. package/dist/esm-node/ultramodern-workspace/descriptors.js +75 -17
  350. package/dist/esm-node/ultramodern-workspace/effect-diagnostics.js +77 -0
  351. package/dist/esm-node/ultramodern-workspace/fs-io.js +27 -18
  352. package/dist/esm-node/ultramodern-workspace/generation-result.js +33 -3
  353. package/dist/esm-node/ultramodern-workspace/index.js +4 -0
  354. package/dist/esm-node/ultramodern-workspace/locales.js +3 -4
  355. package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +20 -0
  356. package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +29 -0
  357. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +47 -0
  358. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +145 -0
  359. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +90 -0
  360. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +155 -0
  361. package/dist/esm-node/ultramodern-workspace/mf-validation/types.js +1 -0
  362. package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +58 -0
  363. package/dist/esm-node/ultramodern-workspace/mf-validation.js +3 -516
  364. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +290 -0
  365. package/dist/esm-node/ultramodern-workspace/module-federation/index.js +5 -0
  366. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +68 -0
  367. package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +66 -0
  368. package/dist/esm-node/ultramodern-workspace/module-federation/shared-config.js +13 -0
  369. package/dist/esm-node/ultramodern-workspace/module-federation.js +2 -458
  370. package/dist/esm-node/ultramodern-workspace/naming.js +2 -2
  371. package/dist/esm-node/ultramodern-workspace/overlay-baseline-guard.js +351 -0
  372. package/dist/esm-node/ultramodern-workspace/overlays.js +28 -5
  373. package/dist/esm-node/ultramodern-workspace/package-json.js +48 -283
  374. package/dist/esm-node/ultramodern-workspace/package-source.js +7 -1
  375. package/dist/esm-node/ultramodern-workspace/policy.js +772 -10
  376. package/dist/esm-node/ultramodern-workspace/public-surface.js +2 -2
  377. package/dist/esm-node/ultramodern-workspace/routes.js +9 -143
  378. package/dist/esm-node/ultramodern-workspace/shared-patches.js +4 -0
  379. package/dist/esm-node/ultramodern-workspace/shells.js +93 -0
  380. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
  381. package/dist/esm-node/ultramodern-workspace/tsconfigs.js +138 -0
  382. package/dist/esm-node/ultramodern-workspace/types.js +16 -1
  383. package/dist/esm-node/ultramodern-workspace/versions.js +35 -26
  384. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +125 -0
  385. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +115 -85
  386. package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +605 -0
  387. package/dist/esm-node/ultramodern-workspace/write-app.js +106 -0
  388. package/dist/esm-node/ultramodern-workspace/write-workspace.js +47 -66
  389. package/dist/esm-node/ultramodern-workspace/zerops.js +71 -0
  390. package/dist/types/cli/flags.d.ts +35 -0
  391. package/dist/types/cli/help.d.ts +2 -0
  392. package/dist/types/cli/package-source.d.ts +15 -0
  393. package/dist/types/cli/project-setup.d.ts +8 -0
  394. package/dist/types/cli/prompts.d.ts +4 -0
  395. package/dist/types/locale/en.d.ts +3 -4
  396. package/dist/types/locale/index.d.ts +6 -8
  397. package/dist/types/locale/zh.d.ts +3 -4
  398. package/dist/types/ultramodern-package-source.d.ts +0 -11
  399. package/dist/types/ultramodern-release-cohort.d.ts +30 -0
  400. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -0
  401. package/dist/types/ultramodern-tooling/commands/context.d.ts +11 -0
  402. package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +2 -0
  403. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +12 -0
  404. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +4 -0
  405. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +1 -0
  406. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +3 -0
  407. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +4 -0
  408. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +3 -0
  409. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +2 -0
  410. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +4 -0
  411. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +3 -0
  412. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +3 -0
  413. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +7 -0
  414. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +3 -0
  415. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +1 -0
  416. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +2 -0
  417. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +20 -0
  418. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +9 -0
  419. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +3 -0
  420. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +27 -0
  421. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +26 -0
  422. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +10 -0
  423. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +4 -0
  424. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +2 -0
  425. package/dist/types/ultramodern-tooling/commands/options.d.ts +2 -0
  426. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +2 -0
  427. package/dist/types/ultramodern-tooling/commands/skills.d.ts +2 -0
  428. package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -0
  429. package/dist/types/ultramodern-tooling/commands/validate.d.ts +2 -0
  430. package/dist/types/ultramodern-tooling/commands.d.ts +1 -1
  431. package/dist/types/ultramodern-tooling/config/constants.d.ts +3 -0
  432. package/dist/types/ultramodern-tooling/config/index.d.ts +7 -0
  433. package/dist/types/ultramodern-tooling/config/json.d.ts +2 -0
  434. package/dist/types/ultramodern-tooling/config/load.d.ts +2 -0
  435. package/dist/types/ultramodern-tooling/config/metadata.d.ts +4 -0
  436. package/dist/types/ultramodern-tooling/config/normalize.d.ts +22 -0
  437. package/dist/types/ultramodern-tooling/config/synthesize.d.ts +5 -0
  438. package/dist/types/ultramodern-tooling/config/types.d.ts +45 -0
  439. package/dist/types/ultramodern-tooling/config.d.ts +1 -43
  440. package/dist/types/ultramodern-workspace/add-shell.d.ts +14 -0
  441. package/dist/types/ultramodern-workspace/add-vertical/constants.d.ts +4 -0
  442. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +9 -0
  443. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +2 -0
  444. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +42 -0
  445. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +6 -0
  446. package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +9 -0
  447. package/dist/types/ultramodern-workspace/add-vertical/transaction.d.ts +80 -0
  448. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +15 -0
  449. package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -39
  450. package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +33 -0
  451. package/dist/types/ultramodern-workspace/api/client.d.ts +6 -0
  452. package/dist/types/ultramodern-workspace/api/contracts.d.ts +15 -0
  453. package/dist/types/ultramodern-workspace/api/names.d.ts +41 -0
  454. package/dist/types/ultramodern-workspace/api/rpc.d.ts +41 -0
  455. package/dist/types/ultramodern-workspace/api/service.d.ts +6 -0
  456. package/dist/types/ultramodern-workspace/api/shared.d.ts +10 -0
  457. package/dist/types/ultramodern-workspace/api.d.ts +6 -73
  458. package/dist/types/ultramodern-workspace/app-files.d.ts +4 -10
  459. package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
  460. package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +3 -0
  461. package/dist/types/ultramodern-workspace/bridge-config/defaults.d.ts +1 -0
  462. package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +3 -0
  463. package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -0
  464. package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +2 -0
  465. package/dist/types/ultramodern-workspace/bridge-config/schema.d.ts +61 -0
  466. package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +12 -0
  467. package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +3 -0
  468. package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +3 -0
  469. package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -64
  470. package/dist/types/ultramodern-workspace/codesmith.d.ts +12 -6
  471. package/dist/types/ultramodern-workspace/contracts.d.ts +3 -3
  472. package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +291 -0
  473. package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +189 -0
  474. package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +3 -0
  475. package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
  476. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +8 -0
  477. package/dist/types/ultramodern-workspace/demo-components.d.ts +14 -3
  478. package/dist/types/ultramodern-workspace/descriptors.d.ts +27 -3
  479. package/dist/types/ultramodern-workspace/effect-diagnostics.d.ts +1 -0
  480. package/dist/types/ultramodern-workspace/fs-io.d.ts +2 -8
  481. package/dist/types/ultramodern-workspace/generation-result.d.ts +3 -1
  482. package/dist/types/ultramodern-workspace/index.d.ts +6 -1
  483. package/dist/types/ultramodern-workspace/locales.d.ts +1 -133
  484. package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +5 -0
  485. package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +2 -0
  486. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +2 -0
  487. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +4 -0
  488. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +11 -0
  489. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +5 -0
  490. package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +33 -0
  491. package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +4 -0
  492. package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -27
  493. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +5 -0
  494. package/dist/types/ultramodern-workspace/module-federation/index.d.ts +4 -0
  495. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +4 -0
  496. package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +3 -0
  497. package/dist/types/ultramodern-workspace/module-federation/shared-config.d.ts +2 -0
  498. package/dist/types/ultramodern-workspace/module-federation.d.ts +2 -17
  499. package/dist/types/ultramodern-workspace/naming.d.ts +0 -2
  500. package/dist/types/ultramodern-workspace/overlay-baseline-guard.d.ts +57 -0
  501. package/dist/types/ultramodern-workspace/package-json.d.ts +2 -17
  502. package/dist/types/ultramodern-workspace/package-source.d.ts +1 -0
  503. package/dist/types/ultramodern-workspace/policy.d.ts +254 -47
  504. package/dist/types/ultramodern-workspace/public-api.d.ts +1 -1
  505. package/dist/types/ultramodern-workspace/public-surface.d.ts +5 -15
  506. package/dist/types/ultramodern-workspace/routes.d.ts +0 -9
  507. package/dist/types/ultramodern-workspace/shared-patches.d.ts +1 -0
  508. package/dist/types/ultramodern-workspace/shells.d.ts +51 -0
  509. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
  510. package/dist/types/ultramodern-workspace/tsconfigs.d.ts +13 -0
  511. package/dist/types/ultramodern-workspace/types.d.ts +134 -3
  512. package/dist/types/ultramodern-workspace/versions.d.ts +35 -26
  513. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +63 -0
  514. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +15 -5
  515. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +243 -0
  516. package/dist/types/ultramodern-workspace/write-app.d.ts +4 -0
  517. package/dist/types/ultramodern-workspace/write-workspace.d.ts +3 -3
  518. package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
  519. package/package.json +15 -13
  520. package/template-workspace/.gitignore.handlebars +8 -0
  521. package/template-workspace/.modernjs/release-cohort.json +208 -0
  522. package/template-workspace/AGENTS.md.handlebars +16 -89
  523. package/template-workspace/README.md.handlebars +17 -16
  524. package/template-workspace/patches/@module-federation__bridge-react@2.8.0.patch +138 -0
  525. package/template-workspace/patches/@module-federation__modern-js-v3@2.8.0.patch +259 -0
  526. package/template-workspace/patches/@tanstack__router-core@1.171.14.patch +123 -0
  527. package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
  528. package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
  529. package/template-workspace/pnpm-workspace.yaml.handlebars +8 -25
  530. package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
  531. package/templates/app/shell-frame.tsx +5 -4
  532. package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +37 -0
  533. package/templates/workspace/apps/modern.config.ts.handlebars +191 -0
  534. package/templates/workspace/apps/shared/src/routes/ultramodern-jsonld.ts.handlebars +119 -0
  535. package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -0
  536. package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +49 -0
  537. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +27 -0
  538. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +4 -0
  539. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +44 -0
  540. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.helpers.tsx.handlebars +17 -0
  541. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.imports.tsx.handlebars +1 -0
  542. package/templates/workspace/packages/shared-design-tokens/tokens.css.handlebars +7 -0
  543. package/templates/workspace/tailwind.config.ts.handlebars +3 -0
  544. package/templates/workspace/verticals/server/checkout-cart-handlers.ts.handlebars +49 -0
  545. package/templates/workspace/verticals/server/checkout-cart-state.ts.handlebars +23 -0
  546. package/templates/workspace/verticals/shared/api.checkout-cart-contract-fields.ts.handlebars +1 -0
  547. package/templates/workspace/verticals/shared/api.checkout-cart-endpoints.ts.handlebars +23 -0
  548. package/templates/workspace/verticals/shared/api.checkout-cart-operation-contexts.ts.handlebars +29 -0
  549. package/templates/workspace/verticals/shared/api.checkout-cart-schemas.ts.handlebars +48 -0
  550. package/templates/workspace/verticals/src/api/checkout-cart-client-exports.ts.handlebars +70 -0
  551. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +4 -4
  552. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
  553. package/templates/workspace-scripts/generate-node-backend-federation.mjs +379 -0
  554. package/templates/workspace-scripts/generate-public-surface-assets.mjs +5 -5
  555. package/templates/workspace-scripts/materialize-zerops-runtime.mjs +447 -0
  556. package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
  557. package/templates/workspace-scripts/proof-node-backend-federation.mjs +984 -0
  558. package/templates/workspace-scripts/proof-workerd-ssr.mts +815 -0
  559. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
  560. package/templates/workspace-scripts/ultramodern-typecheck.mjs +6 -46
  561. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +2447 -249
  562. package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +0 -51
@@ -0,0 +1,156 @@
1
+ import { ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES, ULTRAMODERN_WORKSPACE_MODERN_PACKAGES, modernPackageSpecifier } from "../../../ultramodern-package-source.js";
2
+ import { ULTRAMODERN_PACKAGE_PINS } from "../../../ultramodern-workspace/policy.js";
3
+ import { GENERATED_POSTINSTALL_SCRIPT, createWorkspaceAppPackageScripts, createWorkspaceRootPackageScripts } from "../../../ultramodern-workspace/workspace-script-plan.js";
4
+ import { migratedWorkspaceScriptBasenames } from "../../../ultramodern-workspace/workspace-scripts.js";
5
+ const modernPackageNames = new Set([
6
+ ...ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES,
7
+ ...ULTRAMODERN_WORKSPACE_MODERN_PACKAGES
8
+ ]);
9
+ function updateModernDependencies(packageJson, packageSource) {
10
+ let changed = false;
11
+ for (const section of [
12
+ 'dependencies',
13
+ 'devDependencies',
14
+ 'peerDependencies',
15
+ 'optionalDependencies'
16
+ ]){
17
+ const dependencies = packageJson[section];
18
+ if (!(!dependencies || 'object' != typeof dependencies || Array.isArray(dependencies))) for (const packageName of Object.keys(dependencies)){
19
+ if (!modernPackageNames.has(packageName)) continue;
20
+ const nextSpecifier = modernPackageSpecifier(packageName, packageSource);
21
+ if (dependencies[packageName] !== nextSpecifier) {
22
+ dependencies[packageName] = nextSpecifier;
23
+ changed = true;
24
+ }
25
+ }
26
+ }
27
+ return changed;
28
+ }
29
+ const generatedToolingDependencyPins = new Map(Object.entries({
30
+ ...ULTRAMODERN_PACKAGE_PINS.appDependencies,
31
+ ...ULTRAMODERN_PACKAGE_PINS.appDevDependencies,
32
+ ...ULTRAMODERN_PACKAGE_PINS.rootDevDependencies
33
+ }));
34
+ function updateGeneratedToolingDependencies(packageJson) {
35
+ let changed = false;
36
+ for (const section of [
37
+ 'dependencies',
38
+ 'devDependencies',
39
+ 'peerDependencies',
40
+ 'optionalDependencies'
41
+ ]){
42
+ const dependencies = packageJson[section];
43
+ if (!(!dependencies || 'object' != typeof dependencies || Array.isArray(dependencies))) {
44
+ for (const [packageName, version] of generatedToolingDependencyPins)if (Object.prototype.hasOwnProperty.call(dependencies, packageName) && dependencies[packageName] !== version) {
45
+ dependencies[packageName] = version;
46
+ changed = true;
47
+ }
48
+ }
49
+ }
50
+ return changed;
51
+ }
52
+ const cloudflareModernDeployCommand = 'MODERNJS_DEPLOY=cloudflare modern deploy';
53
+ const cloudflareModernDeploySkipBuildCommand = `${cloudflareModernDeployCommand} --skip-build`;
54
+ const cloudflareWranglerDeployCommand = 'wrangler deploy --config .output/wrangler.json';
55
+ const cloudflareWranglerDeployInvalidSkipBuildCommand = `${cloudflareWranglerDeployCommand} --skip-build`;
56
+ function removeStaleBackendFederationCommandSegments(command) {
57
+ return command.replace(/\s+&&\s+node\s+\S*scripts\/generate-node-backend-federation\.m[ct]s(?:\s+--app\s+\S+)?(?:\s+--target\s+\S+)?(?=\s+&&|$)/gu, '');
58
+ }
59
+ const CONDITIONAL_FRAMEWORK_ROOT_SCRIPTS = [
60
+ 'node:backend-federation:generate',
61
+ 'node:proof',
62
+ 'zerops:materialize'
63
+ ];
64
+ const splitScriptSegments = (command)=>command.split('&&').map((segment)=>segment.trim()).filter((segment)=>segment.length > 0);
65
+ const scriptSegmentTarget = (segment)=>segment.replace(/^pnpm\s+/u, '').split(/\s+/u)[0] ?? segment;
66
+ const FRAMEWORK_CHECK_TARGETS = new Set([
67
+ 'format:check',
68
+ 'lint',
69
+ 'typecheck',
70
+ 'skills:check',
71
+ 'i18n:boundaries',
72
+ 'api:check',
73
+ 'contract:check',
74
+ 'node:backend-federation:generate',
75
+ 'node:proof',
76
+ 'performance:readiness',
77
+ 'bridge:check'
78
+ ]);
79
+ function mergeAggregateCheckScript(consumer, framework) {
80
+ const frameworkSegments = splitScriptSegments(framework);
81
+ const consumerExtras = splitScriptSegments(consumer).filter((segment)=>!FRAMEWORK_CHECK_TARGETS.has(scriptSegmentTarget(segment)));
82
+ return [
83
+ ...consumerExtras,
84
+ ...frameworkSegments
85
+ ].join(' && ');
86
+ }
87
+ function rewriteMigratedScriptReferences(scripts) {
88
+ let changed = false;
89
+ const pattern = new RegExp(`(scripts/(?:${migratedWorkspaceScriptBasenames.join('|')}))\\.mjs`, 'gu');
90
+ for (const [name, value] of Object.entries(scripts)){
91
+ if ('string' != typeof value) continue;
92
+ const next = value.replace(pattern, '$1.mts');
93
+ if (next !== value) {
94
+ scripts[name] = next;
95
+ changed = true;
96
+ }
97
+ }
98
+ return changed;
99
+ }
100
+ function updateGeneratedPackageScripts(packageJson, options = {}) {
101
+ const scripts = packageJson.scripts;
102
+ if (!scripts || 'object' != typeof scripts || Array.isArray(scripts)) return false;
103
+ let changed = false;
104
+ const apps = options.apps ?? [];
105
+ const app = apps.find((candidate)=>`${candidate.directory}/package.json` === options.relativePackageFile);
106
+ const isRootPackage = 'package.json' === options.relativePackageFile;
107
+ if (isRootPackage && scripts.postinstall !== GENERATED_POSTINSTALL_SCRIPT) {
108
+ scripts.postinstall = GENERATED_POSTINSTALL_SCRIPT;
109
+ changed = true;
110
+ }
111
+ const expectedScripts = isRootPackage ? createWorkspaceRootPackageScripts(apps.filter((candidate)=>'shell' !== candidate.kind), {
112
+ shells: apps.filter((candidate)=>'shell' === candidate.kind)
113
+ }) : app ? createWorkspaceAppPackageScripts(app) : void 0;
114
+ if (expectedScripts) {
115
+ if (isRootPackage) {
116
+ for (const name of CONDITIONAL_FRAMEWORK_ROOT_SCRIPTS)if (!(name in expectedScripts) && name in scripts) {
117
+ delete scripts[name];
118
+ changed = true;
119
+ }
120
+ }
121
+ for (const [name, value] of Object.entries(expectedScripts)){
122
+ if (void 0 === value) continue;
123
+ const existingScript = scripts[name];
124
+ const nextValue = 'check' === name && 'string' == typeof existingScript ? mergeAggregateCheckScript(existingScript, value) : value;
125
+ if (scripts[name] !== nextValue) {
126
+ scripts[name] = nextValue;
127
+ changed = true;
128
+ }
129
+ }
130
+ }
131
+ if (rewriteMigratedScriptReferences(scripts)) changed = true;
132
+ const build = scripts.build;
133
+ if ('string' == typeof build) {
134
+ const nextBuild = removeStaleBackendFederationCommandSegments(build);
135
+ if (nextBuild !== build) {
136
+ scripts.build = nextBuild;
137
+ changed = true;
138
+ }
139
+ }
140
+ const cloudflareBuild = scripts['cloudflare:build'];
141
+ if ('string' == typeof cloudflareBuild) {
142
+ let nextCloudflareBuild = removeStaleBackendFederationCommandSegments(cloudflareBuild);
143
+ if (nextCloudflareBuild.includes(cloudflareModernDeployCommand) && !nextCloudflareBuild.includes(cloudflareModernDeploySkipBuildCommand)) nextCloudflareBuild = nextCloudflareBuild.replace(cloudflareModernDeployCommand, cloudflareModernDeploySkipBuildCommand);
144
+ if (nextCloudflareBuild !== cloudflareBuild) {
145
+ scripts['cloudflare:build'] = nextCloudflareBuild;
146
+ changed = true;
147
+ }
148
+ }
149
+ const cloudflareDeploy = scripts['cloudflare:deploy'];
150
+ if ('string' == typeof cloudflareDeploy && cloudflareDeploy.includes(cloudflareWranglerDeployInvalidSkipBuildCommand)) {
151
+ scripts['cloudflare:deploy'] = cloudflareDeploy.replace(cloudflareWranglerDeployInvalidSkipBuildCommand, cloudflareWranglerDeployCommand);
152
+ changed = true;
153
+ }
154
+ return changed;
155
+ }
156
+ export { updateGeneratedPackageScripts, updateGeneratedToolingDependencies, updateModernDependencies };
@@ -0,0 +1,51 @@
1
+ import { BLEEDINGDEV_PACKAGE_NAME_PREFIX, BLEEDINGDEV_PACKAGE_SCOPE, WORKSPACE_PACKAGE_VERSION } from "../../../ultramodern-package-source.js";
2
+ import { isCreatePackageSourceCheckout } from "../../../ultramodern-release-cohort.js";
3
+ import { hasFlag, readOption } from "../options.js";
4
+ function createMigrationPackageSource(args, current) {
5
+ const workspaceRequested = hasFlag(args, '--workspace');
6
+ const explicitInstallRequested = !workspaceRequested && (current.packageSource?.strategy === 'install' || [
7
+ '--version',
8
+ '--ultramodern-package-version',
9
+ '--registry',
10
+ '--ultramodern-package-registry',
11
+ '--alias-scope',
12
+ '--ultramodern-package-scope',
13
+ '--alias-package-name-prefix',
14
+ '--ultramodern-package-name-prefix'
15
+ ].some((option)=>void 0 !== readOption(args, option)));
16
+ if (isCreatePackageSourceCheckout() && explicitInstallRequested) throw new Error('A local @modern-js/create source checkout cannot migrate an explicit install package source. Use --workspace locally or run the packed published package with its authenticated release cohort projection.');
17
+ const strategy = workspaceRequested || isCreatePackageSourceCheckout() ? 'workspace' : 'install';
18
+ const registry = readOption(args, '--registry') ?? readOption(args, '--ultramodern-package-registry');
19
+ const explicitAliasScope = readOption(args, '--alias-scope') ?? readOption(args, '--ultramodern-package-scope');
20
+ const aliasScope = explicitAliasScope ?? ('install' === strategy && void 0 === registry ? current.packageSource?.aliasScope ?? BLEEDINGDEV_PACKAGE_SCOPE : current.packageSource?.aliasScope);
21
+ const aliasPackageNamePrefix = readOption(args, '--alias-package-name-prefix') ?? readOption(args, '--ultramodern-package-name-prefix') ?? current.packageSource?.aliasPackageNamePrefix ?? (aliasScope ? BLEEDINGDEV_PACKAGE_NAME_PREFIX : void 0);
22
+ if ('workspace' === strategy) return {
23
+ strategy,
24
+ modernPackageVersion: WORKSPACE_PACKAGE_VERSION,
25
+ ...registry ? {
26
+ registry
27
+ } : {},
28
+ ...aliasScope ? {
29
+ aliasScope
30
+ } : {},
31
+ ...aliasPackageNamePrefix ? {
32
+ aliasPackageNamePrefix
33
+ } : {}
34
+ };
35
+ const version = readOption(args, '--version') ?? readOption(args, '--ultramodern-package-version') ?? current.packageSource?.modernPackageVersion;
36
+ if (!version || version === WORKSPACE_PACKAGE_VERSION) throw new Error('migrate-strict-effect needs --version <published-ultramodern-version> for install package source.');
37
+ return {
38
+ strategy,
39
+ modernPackageVersion: version,
40
+ ...registry ? {
41
+ registry
42
+ } : {},
43
+ ...aliasScope ? {
44
+ aliasScope
45
+ } : {},
46
+ ...aliasPackageNamePrefix ? {
47
+ aliasPackageNamePrefix
48
+ } : {}
49
+ };
50
+ }
51
+ export { createMigrationPackageSource };
@@ -0,0 +1,383 @@
1
+ import node_crypto from "node:crypto";
2
+ import node_fs from "node:fs";
3
+ import node_path from "node:path";
4
+ import { readWorkspaceReleaseCohort, releaseCohortSelectors } from "../../../ultramodern-release-cohort.js";
5
+ import { resolveWorkspacePackageLinkingPolicy } from "../../../ultramodern-workspace/package-source.js";
6
+ import { ULTRAMODERN_PACKAGE_PINS, ULTRAMODERN_WORKSPACE_POLICY, renderMinimumReleaseAgeExclude, resolveReleaseAgeApprovals } from "../../../ultramodern-workspace/policy.js";
7
+ import { workspaceUsesDependency } from "./dependency-usage.js";
8
+ import { discoverReachablePnpmLockReleaseAgeClosure, isYamlRecord, parsePnpmWorkspaceYaml, stringifyPnpmWorkspaceYaml } from "./pnpm-yaml.js";
9
+ 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;
10
+ const legacyBareReleaseAgePackages = new Set([
11
+ ...Object.keys(ULTRAMODERN_PACKAGE_PINS.appDependencies),
12
+ ...Object.keys(ULTRAMODERN_PACKAGE_PINS.appDevDependencies),
13
+ ...Object.keys(ULTRAMODERN_PACKAGE_PINS.transitiveDependencies),
14
+ '@module-federation/bridge-react-webpack-plugin',
15
+ '@module-federation/cli',
16
+ '@module-federation/dts-plugin',
17
+ '@module-federation/enhanced',
18
+ '@module-federation/error-codes',
19
+ '@module-federation/inject-external-runtime-core-plugin',
20
+ '@module-federation/managers',
21
+ '@module-federation/manifest',
22
+ '@module-federation/rsbuild-plugin',
23
+ '@module-federation/rspack',
24
+ '@module-federation/runtime-core',
25
+ '@module-federation/runtime-tools',
26
+ '@module-federation/sdk',
27
+ '@module-federation/third-party-dts-extractor',
28
+ '@module-federation/webpack-bundler-runtime',
29
+ '@rsbuild/core',
30
+ '@rsbuild/plugin-react',
31
+ '@rsbuild/plugin-type-check',
32
+ '@rspack/binding',
33
+ '@rspack/core',
34
+ '@rspack/plugin-react-refresh',
35
+ 'ts-checker-rspack-plugin'
36
+ ]);
37
+ const knownStaleReleaseAgeEntries = new Set([
38
+ '@effect/opentelemetry@4.0.0-beta.92',
39
+ '@effect/opentelemetry@4.0.0-beta.94',
40
+ "@typescript/native-preview@7.0.0-dev.20260628.1",
41
+ "@typescript/typescript6@6.0.2",
42
+ '@cloudflare/workers-types@5.20260708.1',
43
+ 'effect@4.0.0-beta.92',
44
+ 'effect@4.0.0-beta.94',
45
+ 'i18next@26.3.1',
46
+ 'miniflare@4.20260708.0',
47
+ 'workerd@1.20260708.1',
48
+ 'wrangler@4.109.0',
49
+ ...ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals.filter((approval)=>approval.packageName.startsWith('@module-federation/')).map((approval)=>`${approval.packageName}@2.6.0`)
50
+ ]);
51
+ const canonicalReleaseAgeEntries = new Set(ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals.map((approval)=>`${approval.packageName}@${approval.version}`));
52
+ const retiredTypescriptPeerOverrides = new Set([
53
+ "@module-federation/dts-plugin>typescript",
54
+ "@module-federation/enhanced>typescript",
55
+ "@module-federation/modern-js-v3>typescript",
56
+ "@module-federation/rspack>typescript",
57
+ "i18next>typescript"
58
+ ]);
59
+ function ensureMap(document, key) {
60
+ const current = document[key];
61
+ if (void 0 === current) {
62
+ const created = {};
63
+ document[key] = created;
64
+ return created;
65
+ }
66
+ if (!isYamlRecord(current)) throw new Error(`pnpm-workspace.yaml ${key} must be a mapping.`);
67
+ return current;
68
+ }
69
+ function setOwnedScalar(document, key, value) {
70
+ const current = document[key];
71
+ if (void 0 !== current && 'object' == typeof current) throw new Error(`pnpm-workspace.yaml ${key} must be a scalar.`);
72
+ document[key] = value;
73
+ }
74
+ function reconcileOwnedMap(target, expected) {
75
+ for (const [key, value] of Object.entries(expected))target[key] = value;
76
+ }
77
+ function assertUniqueStringList(value, key) {
78
+ if (!Array.isArray(value) || value.some((item)=>'string' != typeof item)) throw new Error(`pnpm-workspace.yaml ${key} must be a string list.`);
79
+ const entries = value;
80
+ if (new Set(entries).size !== entries.length) throw new Error(`pnpm-workspace.yaml ${key} contains duplicate entries.`);
81
+ return entries;
82
+ }
83
+ function packageVersionParts(selector) {
84
+ const separator = selector.lastIndexOf('@');
85
+ if (separator <= 0) return;
86
+ return {
87
+ packageName: selector.slice(0, separator),
88
+ version: selector.slice(separator + 1)
89
+ };
90
+ }
91
+ function assertOwnedReleaseAgeList(current, expected) {
92
+ const entries = assertUniqueStringList(current, 'minimumReleaseAgeExclude');
93
+ const expectedSet = new Set(expected);
94
+ for (const entry of entries){
95
+ if (expectedSet.has(entry) || canonicalReleaseAgeEntries.has(entry) || knownStaleReleaseAgeEntries.has(entry)) continue;
96
+ if ('@bleedingdev/modern-js-*' === entry || '@module-federation/*' === entry || '@rspack/binding-*' === entry || legacyBareReleaseAgePackages.has(entry)) continue;
97
+ if (/^@bleedingdev\/modern-js-[^@]+@[^@]+$/u.test(entry)) continue;
98
+ const parts = packageVersionParts(entry);
99
+ if (!parts || !exactVersionPattern.test(parts.version)) throw new Error(`Unapproved release-age exclusion "${entry}" is not an exact package@version.`);
100
+ throw new Error(`Unapproved release-age exclusion "${entry}" has no canonical review evidence.`);
101
+ }
102
+ }
103
+ function assertOwnedTrustPolicyList(current, expected) {
104
+ const entries = assertUniqueStringList(current, 'trustPolicyExclude');
105
+ const expectedSet = new Set(expected);
106
+ for (const entry of entries)if (!expectedSet.has(entry) && 'effect@4.0.0-beta.92' !== entry && '@effect/opentelemetry@4.0.0-beta.92' !== entry && 'effect@4.0.0-beta.94' !== entry && '@effect/opentelemetry@4.0.0-beta.94' !== entry) throw new Error(`Unmatched trust-policy exclusion "${entry}" cannot be migrated safely.`);
107
+ }
108
+ function patchKey(patch) {
109
+ return `${patch.packageName}@${patch.version}`;
110
+ }
111
+ function reconcilePatchedDependencies(document, includeDrizzleOrmPatch) {
112
+ const policy = ULTRAMODERN_WORKSPACE_POLICY.pnpm.patchedDependencies;
113
+ const expectedPatches = [
114
+ ...policy.required,
115
+ ...includeDrizzleOrmPatch ? policy.conditional : []
116
+ ];
117
+ const expected = new Map(expectedPatches.map((patch)=>[
118
+ patchKey(patch),
119
+ patch.path
120
+ ]));
121
+ const stale = new Map(policy.stale.map((patch)=>[
122
+ patchKey(patch),
123
+ patch
124
+ ]));
125
+ const ownedPackageNames = new Set([
126
+ ...policy.required,
127
+ ...policy.conditional,
128
+ ...policy.stale
129
+ ].map((patch)=>patch.packageName));
130
+ const patchedDependencies = ensureMap(document, 'patchedDependencies');
131
+ for (const [selector, patchPath] of Object.entries(patchedDependencies)){
132
+ const stalePatch = stale.get(selector);
133
+ if (stalePatch) {
134
+ if (patchPath !== stalePatch.path) throw new Error(`Stale framework patch ${selector} uses an unrecognized path and cannot be removed safely.`);
135
+ delete patchedDependencies[selector];
136
+ continue;
137
+ }
138
+ const parts = packageVersionParts(selector);
139
+ if (parts && ownedPackageNames.has(parts.packageName) && !expected.has(selector)) {
140
+ const conditionalPatch = policy.conditional.find((patch)=>patchKey(patch) === selector);
141
+ if (conditionalPatch && !includeDrizzleOrmPatch && patchPath === conditionalPatch.path) {
142
+ delete patchedDependencies[selector];
143
+ continue;
144
+ }
145
+ throw new Error(`Framework-owned patch selector ${selector} has unknown provenance.`);
146
+ }
147
+ }
148
+ for (const [selector, patchPath] of expected)patchedDependencies[selector] = patchPath;
149
+ }
150
+ function reconcilePnpmPolicy(document, includeDrizzleOrmPatch, packageSource, releaseCohort, now) {
151
+ const policy = ULTRAMODERN_WORKSPACE_POLICY.pnpm;
152
+ const minimumReleaseAgeExclude = renderMinimumReleaseAgeExclude({
153
+ now,
154
+ packageSource,
155
+ releaseCohort
156
+ });
157
+ const workspacePackageLinkingPolicy = resolveWorkspacePackageLinkingPolicy(packageSource);
158
+ if (void 0 !== document.minimumReleaseAgeExclude) assertOwnedReleaseAgeList(document.minimumReleaseAgeExclude, minimumReleaseAgeExclude);
159
+ if (void 0 !== document.trustPolicyExclude) assertOwnedTrustPolicyList(document.trustPolicyExclude, policy.trustPolicyExclude);
160
+ for (const [key, value] of [
161
+ [
162
+ 'minimumReleaseAge',
163
+ policy.minimumReleaseAge
164
+ ],
165
+ [
166
+ 'minimumReleaseAgeStrict',
167
+ policy.minimumReleaseAgeStrict
168
+ ],
169
+ [
170
+ 'minimumReleaseAgeIgnoreMissingTime',
171
+ policy.minimumReleaseAgeIgnoreMissingTime
172
+ ],
173
+ [
174
+ 'trustPolicy',
175
+ policy.trustPolicy
176
+ ],
177
+ [
178
+ 'trustPolicyIgnoreAfter',
179
+ policy.trustPolicyIgnoreAfter
180
+ ],
181
+ [
182
+ 'blockExoticSubdeps',
183
+ policy.blockExoticSubdeps
184
+ ],
185
+ [
186
+ 'engineStrict',
187
+ policy.engineStrict
188
+ ],
189
+ [
190
+ 'pmOnFail',
191
+ policy.pmOnFail
192
+ ],
193
+ [
194
+ 'verifyDepsBeforeRun',
195
+ policy.verifyDepsBeforeRun
196
+ ],
197
+ [
198
+ 'strictDepBuilds',
199
+ policy.strictDepBuilds
200
+ ]
201
+ ])setOwnedScalar(document, key, value);
202
+ for (const key of [
203
+ 'injectWorkspacePackages',
204
+ 'linkWorkspacePackages'
205
+ ]){
206
+ const value = workspacePackageLinkingPolicy[key];
207
+ if (void 0 === value) delete document[key];
208
+ else setOwnedScalar(document, key, value);
209
+ }
210
+ document.minimumReleaseAgeExclude = minimumReleaseAgeExclude;
211
+ document.trustPolicyExclude = [
212
+ ...policy.trustPolicyExclude
213
+ ];
214
+ const peerDependencyRules = ensureMap(document, 'peerDependencyRules');
215
+ const allowedVersions = ensureMap(peerDependencyRules, 'allowedVersions');
216
+ for (const selector of retiredTypescriptPeerOverrides)delete allowedVersions[selector];
217
+ reconcileOwnedMap(allowedVersions, policy.peerDependencyRules.allowedVersions);
218
+ const overrides = ensureMap(document, 'overrides');
219
+ const ownedOverrideNames = new Set(Object.keys(policy.overrides));
220
+ for (const selector of Object.keys(overrides)){
221
+ const parts = packageVersionParts(selector);
222
+ if (parts && ownedOverrideNames.has(parts.packageName)) delete overrides[selector];
223
+ }
224
+ reconcileOwnedMap(overrides, policy.overrides);
225
+ const packageExtensions = document.packageExtensions;
226
+ if (void 0 !== packageExtensions) {
227
+ if (!isYamlRecord(packageExtensions)) throw new Error('pnpm-workspace.yaml packageExtensions must be a mapping.');
228
+ for (const selector of Object.keys(packageExtensions))if (packageVersionParts(selector)?.packageName === '@module-federation/dts-plugin') delete packageExtensions[selector];
229
+ if (0 === Object.keys(packageExtensions).length) delete document.packageExtensions;
230
+ }
231
+ reconcileOwnedMap(ensureMap(document, 'allowBuilds'), policy.allowBuilds);
232
+ reconcilePatchedDependencies(document, includeDrizzleOrmPatch);
233
+ }
234
+ function stalePatchFilesToRemove(workspaceRoot) {
235
+ const staleFiles = [];
236
+ for (const patch of ULTRAMODERN_WORKSPACE_POLICY.pnpm.patchedDependencies.stale){
237
+ const patchPath = node_path.join(workspaceRoot, patch.path);
238
+ if (!node_fs.existsSync(patchPath)) continue;
239
+ const digest = node_crypto.createHash('sha256').update(node_fs.readFileSync(patchPath)).digest('hex');
240
+ const acceptedDigests = new Set([
241
+ patch.sha256,
242
+ ...patch.acceptedLegacySha256 ?? []
243
+ ]);
244
+ if (!acceptedDigests.has(digest)) throw new Error(`Stale framework patch ${patch.path} was modified (expected a reviewed sha256, found ${digest}); refusing to delete it.`);
245
+ staleFiles.push(patchPath);
246
+ }
247
+ return staleFiles;
248
+ }
249
+ function updateGeneratedPnpmWorkspacePolicy(io, packageSource, options = {}) {
250
+ const workspaceFile = node_path.join(io.workspaceRoot, 'pnpm-workspace.yaml');
251
+ if (!node_fs.existsSync(workspaceFile)) return false;
252
+ const source = node_fs.readFileSync(workspaceFile, 'utf-8');
253
+ const { document, lineEnding } = parsePnpmWorkspaceYaml(source, workspaceFile);
254
+ const before = JSON.stringify(document);
255
+ reconcilePnpmPolicy(document, workspaceUsesDependency(io.workspaceRoot, 'drizzle-orm'), packageSource, options.releaseCohort, options.now);
256
+ const stalePatchFiles = stalePatchFilesToRemove(io.workspaceRoot);
257
+ let changed = false;
258
+ if (JSON.stringify(document) !== before) changed = io.write(workspaceFile, stringifyPnpmWorkspaceYaml(document, lineEnding)) || changed;
259
+ for (const stalePatchFile of stalePatchFiles)changed = io.remove(stalePatchFile) || changed;
260
+ return changed;
261
+ }
262
+ function packageRegistryUrl(registryUrl, packageName) {
263
+ let base;
264
+ try {
265
+ base = new URL(registryUrl);
266
+ } catch {
267
+ throw new Error(`Registry URL is invalid: ${registryUrl}`);
268
+ }
269
+ if ('https:' !== base.protocol) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
270
+ const encodedName = packageName.startsWith('@') ? packageName.replace('/', '%2f') : encodeURIComponent(packageName);
271
+ return new URL(encodedName, base);
272
+ }
273
+ function packageVersionKey(packageName, version) {
274
+ return `${packageName}@${version}`;
275
+ }
276
+ function isRegistryRecord(value) {
277
+ return Boolean(value) && 'object' == typeof value && !Array.isArray(value);
278
+ }
279
+ async function resolveRegistryCandidates(candidates, options) {
280
+ const nowTimestamp = options.now.getTime();
281
+ if (!Number.isFinite(nowTimestamp)) throw new Error('Release-age validation requires a valid current time.');
282
+ return Promise.all(candidates.map(async (candidate)=>{
283
+ const key = packageVersionKey(candidate.packageName, candidate.version);
284
+ let response;
285
+ try {
286
+ response = await options.fetchImpl(packageRegistryUrl(options.registryUrl, candidate.packageName), {
287
+ headers: {
288
+ accept: 'application/json'
289
+ },
290
+ redirect: 'error'
291
+ });
292
+ } catch (error) {
293
+ throw new Error(`Registry metadata is uncertain for ${key} (${candidate.path.join(' -> ')}): ${error instanceof Error ? error.message : String(error)}`);
294
+ }
295
+ if (!response.ok) throw new Error(`Registry metadata is uncertain for ${key} (${candidate.path.join(' -> ')}): HTTP ${response.status}`);
296
+ let packument;
297
+ try {
298
+ packument = await response.json();
299
+ } catch (error) {
300
+ throw new Error(`Registry metadata is invalid JSON for ${key}: ${error instanceof Error ? error.message : String(error)}`);
301
+ }
302
+ if (!isRegistryRecord(packument)) throw new Error(`Registry metadata is invalid for ${key}.`);
303
+ const versions = packument.versions;
304
+ const time = packument.time;
305
+ const versionMetadata = isRegistryRecord(versions) ? versions[candidate.version] : void 0;
306
+ const dist = isRegistryRecord(versionMetadata) ? versionMetadata.dist : void 0;
307
+ const integrity = isRegistryRecord(dist) ? dist.integrity : void 0;
308
+ if (integrity !== candidate.registry.dist.integrity) throw new Error(`Registry metadata integrity mismatch for ${key}: lock has ${candidate.registry.dist.integrity}, registry has ${String(integrity)}`);
309
+ const publishedAt = isRegistryRecord(time) ? time[candidate.version] : void 0;
310
+ const publishedAtTimestamp = 'string' == typeof publishedAt ? Date.parse(publishedAt) : NaN;
311
+ if ('string' != typeof publishedAt || !Number.isFinite(publishedAtTimestamp) || publishedAtTimestamp > nowTimestamp) throw new Error(`Registry publication time is missing, invalid, or in the future for ${key}.`);
312
+ return {
313
+ ...candidate,
314
+ registry: {
315
+ ...candidate.registry,
316
+ publishedAt: new Date(publishedAtTimestamp).toISOString()
317
+ }
318
+ };
319
+ }));
320
+ }
321
+ async function validateGeneratedPnpmLockReleaseAgePolicy(workspaceRoot, packageSource, options = {}) {
322
+ const lockfilePath = node_path.join(workspaceRoot, 'pnpm-lock.yaml');
323
+ if (!node_fs.existsSync(lockfilePath)) throw new Error('Cannot validate release-age approvals without pnpm-lock.yaml.');
324
+ const now = options.now ?? new Date();
325
+ const releaseCohort = options.releaseCohort ?? ('install' === packageSource.strategy ? readWorkspaceReleaseCohort(workspaceRoot) : void 0);
326
+ const activeSelectors = renderMinimumReleaseAgeExclude({
327
+ now,
328
+ packageSource,
329
+ releaseCohort
330
+ });
331
+ const workspacePolicyPath = node_path.join(workspaceRoot, 'pnpm-workspace.yaml');
332
+ const { document: workspacePolicy } = parsePnpmWorkspaceYaml(node_fs.readFileSync(workspacePolicyPath, 'utf-8'), workspacePolicyPath);
333
+ const renderedSelectors = assertUniqueStringList(workspacePolicy.minimumReleaseAgeExclude, 'minimumReleaseAgeExclude');
334
+ if (JSON.stringify(renderedSelectors) !== JSON.stringify(activeSelectors)) throw new Error('pnpm-workspace.yaml release-age exclusions do not match canonical policy.');
335
+ const firstPartySelectors = new Set(releaseCohort ? releaseCohortSelectors(releaseCohort) : []);
336
+ const firstPartyTargetNames = new Set(releaseCohort?.packages.map((item)=>item.targetName) ?? []);
337
+ const { document: lockfile } = parsePnpmWorkspaceYaml(node_fs.readFileSync(lockfilePath, 'utf-8'), lockfilePath);
338
+ const closure = discoverReachablePnpmLockReleaseAgeClosure(lockfile);
339
+ if (closure.unresolved.length > 0) {
340
+ const unresolved = closure.unresolved.slice(0, 20).map((candidate)=>{
341
+ const packageName = candidate.package ?? 'unknown package';
342
+ return `- ${packageName}: ${candidate.reason}; path ${candidate.path.join(' -> ')}`;
343
+ }).join('\n');
344
+ throw new Error(`Dependency closure has unresolved candidates:\n${unresolved}`);
345
+ }
346
+ const closureKeys = new Set(closure.candidates.map((candidate)=>packageVersionKey(candidate.packageName, candidate.version)));
347
+ const approvals = ULTRAMODERN_WORKSPACE_POLICY.pnpm.releaseAge.approvals.filter((approval)=>closureKeys.has(`${approval.packageName}@${approval.version}`));
348
+ const isFirstPartyCandidate = (packageName, version)=>{
349
+ if (!firstPartyTargetNames.has(packageName)) return false;
350
+ const key = `${packageName}@${version}`;
351
+ if (!firstPartySelectors.has(key)) throw new Error(`First-party lock candidate ${key} is absent from the authenticated release cohort.`);
352
+ return true;
353
+ };
354
+ const thirdPartyCandidates = closure.candidates.filter((candidate)=>!isFirstPartyCandidate(candidate.packageName, candidate.version));
355
+ const activeCandidates = await resolveRegistryCandidates(thirdPartyCandidates, {
356
+ fetchImpl: options.fetchImpl ?? fetch,
357
+ now,
358
+ registryUrl: options.registryUrl ?? packageSource.registry ?? 'https://registry.npmjs.org/'
359
+ });
360
+ const resolved = resolveReleaseAgeApprovals(activeCandidates, {
361
+ approvals,
362
+ now
363
+ });
364
+ if (resolved.reviewCandidates.length > 0) {
365
+ const pathsByKey = new Map(thirdPartyCandidates.map((candidate)=>[
366
+ packageVersionKey(candidate.packageName, candidate.version),
367
+ candidate.path
368
+ ]));
369
+ throw new Error([
370
+ `Dependency closure contains ${resolved.reviewCandidates.length} immature package(s) without an exact, unexpired approval:`,
371
+ ...resolved.reviewCandidates.slice(0, 20).map((candidate)=>{
372
+ const key = packageVersionKey(candidate.packageName, candidate.version);
373
+ return `- ${key}; path ${pathsByKey.get(key)?.join(' -> ') ?? 'unknown'}`;
374
+ })
375
+ ].join('\n'));
376
+ }
377
+ return {
378
+ ...resolved,
379
+ minimumReleaseAgeExclude: activeSelectors
380
+ };
381
+ }
382
+ export { ensureGeneratedDeclarationPatches } from "./declaration-patches.js";
383
+ export { updateGeneratedPnpmWorkspacePolicy, validateGeneratedPnpmLockReleaseAgePolicy, workspaceUsesDependency };