@mannyc1/ts-release 0.0.6 → 0.2.2

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 (639) hide show
  1. package/ARCHITECTURE.md +124 -87
  2. package/CHANGELOG.md +115 -0
  3. package/LICENSE +21 -0
  4. package/README.md +272 -540
  5. package/SPEC.md +206 -305
  6. package/apps/release-ts/README.md +32 -0
  7. package/apps/release-ts/src/cli/command.ts +164 -0
  8. package/apps/release-ts/src/cli/commands.ts +351 -0
  9. package/apps/release-ts/src/cli/main.ts +43 -0
  10. package/apps/release-ts/src/cli/node-main.ts +49 -0
  11. package/apps/ts-release-agents/LICENSE +21 -0
  12. package/apps/ts-release-agents/README.md +21 -0
  13. package/apps/ts-release-agents/evals/cases.json +11 -0
  14. package/apps/ts-release-agents/manifests/claude.json +5 -0
  15. package/apps/ts-release-agents/manifests/codex.json +5 -0
  16. package/apps/ts-release-agents/package.json +11 -0
  17. package/apps/ts-release-agents/skills/release/SKILL.md +48 -0
  18. package/apps/ts-release-agents/skills/release/references/configuration.md +18 -0
  19. package/apps/ts-release-agents/skills/release/references/recovery.md +10 -0
  20. package/apps/ts-release-agents/skills/release/references/staged-workflow.md +12 -0
  21. package/apps/ts-release-agents/skills/release/references/target-selection.md +13 -0
  22. package/apps/ts-release-agents/skills/release/references/verification.md +14 -0
  23. package/apps/ts-release-agents/src/build.ts +105 -0
  24. package/apps/ts-release-agents/src/check.ts +117 -0
  25. package/apps/ts-release-agents/src/install.ts +121 -0
  26. package/apps/ts-release-agents/test/contract.test.ts +56 -0
  27. package/apps/ts-release-agents/tsconfig.json +5 -0
  28. package/dist/api/api.d.ts +15 -0
  29. package/dist/api/api.d.ts.map +1 -0
  30. package/dist/api/api.js +244 -0
  31. package/dist/api/api.js.map +1 -0
  32. package/dist/api/errors.d.ts +39 -0
  33. package/dist/api/errors.d.ts.map +1 -0
  34. package/dist/api/errors.js +32 -0
  35. package/dist/api/errors.js.map +1 -0
  36. package/dist/api/input.d.ts +10 -0
  37. package/dist/api/input.d.ts.map +1 -0
  38. package/dist/api/input.js +73 -0
  39. package/dist/api/input.js.map +1 -0
  40. package/dist/api/runtime.d.ts +18 -0
  41. package/dist/api/runtime.d.ts.map +1 -0
  42. package/dist/api/runtime.js +7 -0
  43. package/dist/api/runtime.js.map +1 -0
  44. package/dist/api/types.d.ts +76 -0
  45. package/dist/api/types.d.ts.map +1 -0
  46. package/dist/api/types.js +17 -0
  47. package/dist/api/types.js.map +1 -0
  48. package/dist/bin/ts-release.js +39239 -0
  49. package/dist/capabilities/bun-targets.d.ts +3 -0
  50. package/dist/capabilities/bun-targets.d.ts.map +1 -0
  51. package/dist/capabilities/bun-targets.js +3 -0
  52. package/dist/capabilities/bun-targets.js.map +1 -0
  53. package/dist/capabilities/field-ownership.d.ts +17 -0
  54. package/dist/capabilities/field-ownership.d.ts.map +1 -0
  55. package/dist/capabilities/field-ownership.js +40 -0
  56. package/dist/capabilities/field-ownership.js.map +1 -0
  57. package/dist/capabilities/module.d.ts +91 -0
  58. package/dist/capabilities/module.d.ts.map +1 -0
  59. package/dist/capabilities/module.js +2 -0
  60. package/dist/capabilities/module.js.map +1 -0
  61. package/dist/capabilities/registry.d.ts +829 -0
  62. package/dist/capabilities/registry.d.ts.map +1 -0
  63. package/dist/capabilities/registry.js +291 -0
  64. package/dist/capabilities/registry.js.map +1 -0
  65. package/dist/config/config.d.ts +6 -0
  66. package/dist/config/config.d.ts.map +1 -0
  67. package/dist/config/config.js +42 -0
  68. package/dist/config/config.js.map +1 -0
  69. package/dist/correction/coordinator.d.ts +248 -0
  70. package/dist/correction/coordinator.d.ts.map +1 -0
  71. package/dist/correction/coordinator.js +274 -0
  72. package/dist/correction/coordinator.js.map +1 -0
  73. package/dist/correction/index.d.ts +3 -0
  74. package/dist/correction/index.d.ts.map +1 -0
  75. package/dist/correction/index.js +3 -0
  76. package/dist/correction/index.js.map +1 -0
  77. package/dist/correction/intent.d.ts +111 -0
  78. package/dist/correction/intent.d.ts.map +1 -0
  79. package/dist/correction/intent.js +146 -0
  80. package/dist/correction/intent.js.map +1 -0
  81. package/dist/drivers/archive.d.ts +8 -0
  82. package/dist/drivers/archive.d.ts.map +1 -0
  83. package/dist/drivers/archive.js +101 -0
  84. package/dist/drivers/archive.js.map +1 -0
  85. package/dist/drivers/contain.d.ts +6 -0
  86. package/dist/drivers/contain.d.ts.map +1 -0
  87. package/dist/drivers/contain.js +17 -0
  88. package/dist/drivers/contain.js.map +1 -0
  89. package/dist/drivers/environment.d.ts +4 -0
  90. package/dist/drivers/environment.d.ts.map +1 -0
  91. package/dist/drivers/environment.js +18 -0
  92. package/dist/drivers/environment.js.map +1 -0
  93. package/dist/drivers/errors.d.ts +9 -0
  94. package/dist/drivers/errors.d.ts.map +1 -0
  95. package/dist/drivers/errors.js +6 -0
  96. package/dist/drivers/errors.js.map +1 -0
  97. package/dist/drivers/glob.d.ts +2 -0
  98. package/dist/drivers/glob.d.ts.map +1 -0
  99. package/dist/drivers/glob.js +162 -0
  100. package/dist/drivers/glob.js.map +1 -0
  101. package/dist/drivers/process.d.ts +48 -0
  102. package/dist/drivers/process.d.ts.map +1 -0
  103. package/dist/drivers/process.js +257 -0
  104. package/dist/drivers/process.js.map +1 -0
  105. package/dist/drivers/redact.d.ts +4 -0
  106. package/dist/drivers/redact.d.ts.map +1 -0
  107. package/dist/drivers/redact.js +24 -0
  108. package/dist/drivers/redact.js.map +1 -0
  109. package/dist/drivers/seccomp-helper-source.d.ts +7 -0
  110. package/dist/drivers/seccomp-helper-source.d.ts.map +1 -0
  111. package/dist/drivers/seccomp-helper-source.js +121 -0
  112. package/dist/drivers/seccomp-helper-source.js.map +1 -0
  113. package/dist/drivers/utils.d.ts +4 -0
  114. package/dist/drivers/utils.d.ts.map +1 -0
  115. package/dist/drivers/utils.js +5 -0
  116. package/dist/drivers/utils.js.map +1 -0
  117. package/dist/drivers/workspace.d.ts +6 -0
  118. package/dist/drivers/workspace.d.ts.map +1 -0
  119. package/dist/drivers/workspace.js +49 -0
  120. package/dist/drivers/workspace.js.map +1 -0
  121. package/dist/extensions/provider-adapter.d.ts +48 -0
  122. package/dist/extensions/provider-adapter.d.ts.map +1 -0
  123. package/dist/extensions/provider-adapter.js +64 -0
  124. package/dist/extensions/provider-adapter.js.map +1 -0
  125. package/dist/host.d.ts +33 -0
  126. package/dist/host.d.ts.map +1 -0
  127. package/dist/host.js +20 -0
  128. package/dist/host.js.map +1 -0
  129. package/dist/index.d.ts +19 -1
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +12 -1
  132. package/dist/index.js.map +1 -1
  133. package/dist/model/artifact-collection.d.ts +84 -0
  134. package/dist/model/artifact-collection.d.ts.map +1 -0
  135. package/dist/model/artifact-collection.js +185 -0
  136. package/dist/model/artifact-collection.js.map +1 -0
  137. package/dist/model/authority.d.ts +89 -0
  138. package/dist/model/authority.d.ts.map +1 -0
  139. package/dist/model/authority.js +80 -0
  140. package/dist/model/authority.js.map +1 -0
  141. package/dist/model/bun-targets.d.ts +34 -0
  142. package/dist/model/bun-targets.d.ts.map +1 -0
  143. package/dist/model/bun-targets.js +17 -0
  144. package/dist/model/bun-targets.js.map +1 -0
  145. package/dist/model/canonical.d.ts +8 -0
  146. package/dist/model/canonical.d.ts.map +1 -0
  147. package/dist/model/canonical.js +205 -0
  148. package/dist/model/canonical.js.map +1 -0
  149. package/dist/model/catalog.d.ts +76 -0
  150. package/dist/model/catalog.d.ts.map +1 -0
  151. package/dist/model/catalog.js +174 -0
  152. package/dist/model/catalog.js.map +1 -0
  153. package/dist/model/digest.d.ts +53 -0
  154. package/dist/model/digest.d.ts.map +1 -0
  155. package/dist/model/digest.js +127 -0
  156. package/dist/model/digest.js.map +1 -0
  157. package/dist/model/errors.d.ts +14 -0
  158. package/dist/model/errors.d.ts.map +1 -0
  159. package/dist/model/errors.js +8 -0
  160. package/dist/model/errors.js.map +1 -0
  161. package/dist/model/primitives.d.ts +19 -0
  162. package/dist/model/primitives.d.ts.map +1 -0
  163. package/dist/model/primitives.js +18 -0
  164. package/dist/model/primitives.js.map +1 -0
  165. package/dist/model/pypi.d.ts +12 -0
  166. package/dist/model/pypi.d.ts.map +1 -0
  167. package/dist/model/pypi.js +20 -0
  168. package/dist/model/pypi.js.map +1 -0
  169. package/dist/model/python-distribution.d.ts +33 -0
  170. package/dist/model/python-distribution.d.ts.map +1 -0
  171. package/dist/model/python-distribution.js +367 -0
  172. package/dist/model/python-distribution.js.map +1 -0
  173. package/dist/model/secret-patterns.d.ts +2 -0
  174. package/dist/model/secret-patterns.d.ts.map +1 -0
  175. package/dist/model/secret-patterns.js +12 -0
  176. package/dist/model/secret-patterns.js.map +1 -0
  177. package/dist/platform/bun.d.ts +7 -0
  178. package/dist/platform/bun.d.ts.map +1 -0
  179. package/dist/platform/bun.js +15 -0
  180. package/dist/platform/bun.js.map +1 -0
  181. package/dist/platform/credentials.d.ts +32 -0
  182. package/dist/platform/credentials.d.ts.map +1 -0
  183. package/dist/platform/credentials.js +772 -0
  184. package/dist/platform/credentials.js.map +1 -0
  185. package/dist/platform/host-support.d.ts +2 -0
  186. package/dist/platform/host-support.d.ts.map +1 -0
  187. package/dist/platform/host-support.js +4 -0
  188. package/dist/platform/host-support.js.map +1 -0
  189. package/dist/platform/node.d.ts +7 -0
  190. package/dist/platform/node.d.ts.map +1 -0
  191. package/dist/platform/node.js +15 -0
  192. package/dist/platform/node.js.map +1 -0
  193. package/dist/platform/release-runtime.d.ts +11 -0
  194. package/dist/platform/release-runtime.d.ts.map +1 -0
  195. package/dist/platform/release-runtime.js +34 -0
  196. package/dist/platform/release-runtime.js.map +1 -0
  197. package/dist/platform/services.d.ts +15 -0
  198. package/dist/platform/services.d.ts.map +1 -0
  199. package/dist/platform/services.js +30 -0
  200. package/dist/platform/services.js.map +1 -0
  201. package/dist/platform/source-observer.d.ts +5 -0
  202. package/dist/platform/source-observer.d.ts.map +1 -0
  203. package/dist/platform/source-observer.js +159 -0
  204. package/dist/platform/source-observer.js.map +1 -0
  205. package/dist/provider-sdk.d.ts +14 -0
  206. package/dist/provider-sdk.d.ts.map +1 -0
  207. package/dist/provider-sdk.js +10 -0
  208. package/dist/provider-sdk.js.map +1 -0
  209. package/dist/publication/adapter.d.ts +212 -0
  210. package/dist/publication/adapter.d.ts.map +1 -0
  211. package/dist/publication/adapter.js +83 -0
  212. package/dist/publication/adapter.js.map +1 -0
  213. package/dist/publication/authority.d.ts +137 -0
  214. package/dist/publication/authority.d.ts.map +1 -0
  215. package/dist/publication/authority.js +233 -0
  216. package/dist/publication/authority.js.map +1 -0
  217. package/dist/publication/catalog-git.d.ts +37 -0
  218. package/dist/publication/catalog-git.d.ts.map +1 -0
  219. package/dist/publication/catalog-git.js +451 -0
  220. package/dist/publication/catalog-git.js.map +1 -0
  221. package/dist/publication/claim.d.ts +39 -0
  222. package/dist/publication/claim.d.ts.map +1 -0
  223. package/dist/publication/claim.js +31 -0
  224. package/dist/publication/claim.js.map +1 -0
  225. package/dist/publication/coordinator.d.ts +246 -0
  226. package/dist/publication/coordinator.d.ts.map +1 -0
  227. package/dist/publication/coordinator.js +370 -0
  228. package/dist/publication/coordinator.js.map +1 -0
  229. package/dist/publication/github.d.ts +36 -0
  230. package/dist/publication/github.d.ts.map +1 -0
  231. package/dist/publication/github.js +644 -0
  232. package/dist/publication/github.js.map +1 -0
  233. package/dist/publication/http.d.ts +69 -0
  234. package/dist/publication/http.d.ts.map +1 -0
  235. package/dist/publication/http.js +29 -0
  236. package/dist/publication/http.js.map +1 -0
  237. package/dist/publication/index.d.ts +5 -0
  238. package/dist/publication/index.d.ts.map +1 -0
  239. package/dist/publication/index.js +5 -0
  240. package/dist/publication/index.js.map +1 -0
  241. package/dist/publication/npm.d.ts +40 -0
  242. package/dist/publication/npm.d.ts.map +1 -0
  243. package/dist/publication/npm.js +359 -0
  244. package/dist/publication/npm.js.map +1 -0
  245. package/dist/publication/profiles.d.ts +136 -0
  246. package/dist/publication/profiles.d.ts.map +1 -0
  247. package/dist/publication/profiles.js +90 -0
  248. package/dist/publication/profiles.js.map +1 -0
  249. package/dist/publication/publisher.d.ts +82 -0
  250. package/dist/publication/publisher.d.ts.map +1 -0
  251. package/dist/publication/publisher.js +53 -0
  252. package/dist/publication/publisher.js.map +1 -0
  253. package/dist/publication/pypi.d.ts +45 -0
  254. package/dist/publication/pypi.d.ts.map +1 -0
  255. package/dist/publication/pypi.js +369 -0
  256. package/dist/publication/pypi.js.map +1 -0
  257. package/dist/publication/recovery.d.ts +663 -0
  258. package/dist/publication/recovery.d.ts.map +1 -0
  259. package/dist/publication/recovery.js +252 -0
  260. package/dist/publication/recovery.js.map +1 -0
  261. package/dist/publication/report.d.ts +1061 -0
  262. package/dist/publication/report.d.ts.map +1 -0
  263. package/dist/publication/report.js +441 -0
  264. package/dist/publication/report.js.map +1 -0
  265. package/dist/recipes/config.d.ts +296 -0
  266. package/dist/recipes/config.d.ts.map +1 -0
  267. package/dist/recipes/config.js +325 -0
  268. package/dist/recipes/config.js.map +1 -0
  269. package/dist/release/capabilities.d.ts +12 -0
  270. package/dist/release/capabilities.d.ts.map +1 -0
  271. package/dist/release/capabilities.js +395 -0
  272. package/dist/release/capabilities.js.map +1 -0
  273. package/dist/release/compiler.d.ts +5 -0
  274. package/dist/release/compiler.d.ts.map +1 -0
  275. package/dist/release/compiler.js +19 -0
  276. package/dist/release/compiler.js.map +1 -0
  277. package/dist/release/config.d.ts +5 -0
  278. package/dist/release/config.d.ts.map +1 -0
  279. package/dist/release/config.js +10 -0
  280. package/dist/release/config.js.map +1 -0
  281. package/dist/release/context.d.ts +96 -0
  282. package/dist/release/context.d.ts.map +1 -0
  283. package/dist/release/context.js +168 -0
  284. package/dist/release/context.js.map +1 -0
  285. package/dist/release/graph.d.ts +271 -0
  286. package/dist/release/graph.d.ts.map +1 -0
  287. package/dist/release/graph.js +766 -0
  288. package/dist/release/graph.js.map +1 -0
  289. package/dist/release/inspect.d.ts +88 -0
  290. package/dist/release/inspect.d.ts.map +1 -0
  291. package/dist/release/inspect.js +75 -0
  292. package/dist/release/inspect.js.map +1 -0
  293. package/dist/release/prepare.d.ts +24 -0
  294. package/dist/release/prepare.d.ts.map +1 -0
  295. package/dist/release/prepare.js +1116 -0
  296. package/dist/release/prepare.js.map +1 -0
  297. package/dist/release/prepared-ref.d.ts +60 -0
  298. package/dist/release/prepared-ref.d.ts.map +1 -0
  299. package/dist/release/prepared-ref.js +131 -0
  300. package/dist/release/prepared-ref.js.map +1 -0
  301. package/dist/release/prepared-store.d.ts +90 -0
  302. package/dist/release/prepared-store.d.ts.map +1 -0
  303. package/dist/release/prepared-store.js +337 -0
  304. package/dist/release/prepared-store.js.map +1 -0
  305. package/dist/release/prepared.d.ts +172 -0
  306. package/dist/release/prepared.d.ts.map +1 -0
  307. package/dist/release/prepared.js +268 -0
  308. package/dist/release/prepared.js.map +1 -0
  309. package/dist/release/staging.d.ts +31 -0
  310. package/dist/release/staging.d.ts.map +1 -0
  311. package/dist/release/staging.js +218 -0
  312. package/dist/release/staging.js.map +1 -0
  313. package/dist/resolve/authored.d.ts +53 -0
  314. package/dist/resolve/authored.d.ts.map +1 -0
  315. package/dist/resolve/authored.js +55 -0
  316. package/dist/resolve/authored.js.map +1 -0
  317. package/dist/resolve/encode.d.ts +3 -0
  318. package/dist/resolve/encode.d.ts.map +1 -0
  319. package/dist/resolve/encode.js +21 -0
  320. package/dist/resolve/encode.js.map +1 -0
  321. package/dist/resolve/errors.d.ts +7 -0
  322. package/dist/resolve/errors.d.ts.map +1 -0
  323. package/dist/resolve/errors.js +17 -0
  324. package/dist/resolve/errors.js.map +1 -0
  325. package/dist/resolve/facts.d.ts +12 -0
  326. package/dist/resolve/facts.d.ts.map +1 -0
  327. package/dist/resolve/facts.js +18 -0
  328. package/dist/resolve/facts.js.map +1 -0
  329. package/dist/resolve/resolve.d.ts +10 -0
  330. package/dist/resolve/resolve.d.ts.map +1 -0
  331. package/dist/resolve/resolve.js +242 -0
  332. package/dist/resolve/resolve.js.map +1 -0
  333. package/dist/store.d.ts +11 -0
  334. package/dist/store.d.ts.map +1 -0
  335. package/dist/store.js +9 -0
  336. package/dist/store.js.map +1 -0
  337. package/examples/README.md +20 -30
  338. package/examples/github-release/release.config.json +11 -18
  339. package/examples/homebrew-tap/README.md +11 -0
  340. package/examples/homebrew-tap/release.config.json +40 -28
  341. package/examples/multi-target/release.config.json +28 -53
  342. package/examples/npm-first-publish/release.config.json +23 -25
  343. package/examples/npm-only/release.config.json +22 -30
  344. package/examples/portable-cli/README.md +17 -0
  345. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-arm64 +1 -0
  346. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-x64 +1 -0
  347. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-arm64 +1 -0
  348. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-x64 +1 -0
  349. package/examples/portable-cli/artifacts/portable-example-0.1.0-windows-x64.exe +1 -0
  350. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_10_15_x86_64.whl +1 -0
  351. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_11_0_arm64.whl +1 -0
  352. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_aarch64.whl +1 -0
  353. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_x86_64.whl +1 -0
  354. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-win_amd64.whl +1 -0
  355. package/examples/portable-cli/package.json +9 -0
  356. package/examples/portable-cli/release.config.json +53 -0
  357. package/examples/portable-cli/src/cli.ts +3 -0
  358. package/examples/pypi-registry/README.md +8 -0
  359. package/examples/scoop-bucket/README.md +10 -0
  360. package/examples/scoop-bucket/release.config.json +40 -30
  361. package/package.json +61 -154
  362. package/src/api/api.ts +365 -0
  363. package/src/api/errors.ts +36 -0
  364. package/src/api/input.ts +92 -0
  365. package/src/api/runtime.ts +14 -0
  366. package/src/api/types.ts +103 -0
  367. package/src/capabilities/bun-targets.ts +2 -0
  368. package/src/capabilities/field-ownership.ts +60 -0
  369. package/src/capabilities/module.ts +158 -0
  370. package/src/capabilities/registry.ts +333 -0
  371. package/src/config/config.ts +48 -0
  372. package/src/correction/coordinator.ts +336 -0
  373. package/src/correction/index.ts +2 -0
  374. package/src/correction/intent.ts +172 -0
  375. package/src/drivers/archive.ts +102 -0
  376. package/src/drivers/contain.ts +20 -0
  377. package/src/drivers/environment.ts +28 -0
  378. package/src/drivers/errors.ts +6 -0
  379. package/src/drivers/glob.ts +137 -0
  380. package/src/drivers/process.ts +340 -0
  381. package/src/drivers/redact.ts +31 -0
  382. package/src/drivers/seccomp-helper-source.ts +121 -0
  383. package/src/drivers/utils.ts +10 -0
  384. package/src/drivers/workspace.ts +40 -0
  385. package/src/extensions/provider-adapter.ts +99 -0
  386. package/src/host.ts +140 -0
  387. package/src/index.ts +64 -0
  388. package/src/model/artifact-collection.ts +237 -0
  389. package/src/model/authority.ts +116 -0
  390. package/src/model/bun-targets.ts +34 -0
  391. package/src/model/canonical.ts +205 -0
  392. package/src/model/catalog.ts +220 -0
  393. package/src/model/digest.ts +172 -0
  394. package/src/model/errors.ts +6 -0
  395. package/src/model/primitives.ts +37 -0
  396. package/src/model/pypi.ts +30 -0
  397. package/src/model/python-distribution.ts +360 -0
  398. package/src/model/secret-patterns.ts +11 -0
  399. package/src/platform/bun.ts +38 -0
  400. package/src/platform/credentials.ts +1083 -0
  401. package/src/platform/host-support.ts +4 -0
  402. package/src/platform/node.ts +38 -0
  403. package/src/platform/release-runtime.ts +47 -0
  404. package/src/platform/services.ts +57 -0
  405. package/src/platform/source-observer.ts +193 -0
  406. package/src/provider-sdk.ts +48 -0
  407. package/src/publication/adapter.ts +132 -0
  408. package/src/publication/authority.ts +397 -0
  409. package/src/publication/catalog-git.ts +603 -0
  410. package/src/publication/claim.ts +51 -0
  411. package/src/publication/coordinator.ts +578 -0
  412. package/src/publication/github.ts +954 -0
  413. package/src/publication/http.ts +101 -0
  414. package/src/publication/index.ts +4 -0
  415. package/src/publication/npm.ts +525 -0
  416. package/src/publication/profiles.ts +94 -0
  417. package/src/publication/publisher.ts +130 -0
  418. package/src/publication/pypi.ts +463 -0
  419. package/src/publication/recovery.ts +349 -0
  420. package/src/publication/report.ts +628 -0
  421. package/src/recipes/config.ts +395 -0
  422. package/src/release/capabilities.ts +459 -0
  423. package/src/release/compiler.ts +28 -0
  424. package/src/release/config.ts +12 -0
  425. package/src/release/context.ts +223 -0
  426. package/src/release/graph.ts +866 -0
  427. package/src/release/inspect.ts +83 -0
  428. package/src/release/prepare.ts +1331 -0
  429. package/src/release/prepared-ref.ts +193 -0
  430. package/src/release/prepared-store.ts +377 -0
  431. package/src/release/prepared.ts +299 -0
  432. package/src/release/staging.ts +257 -0
  433. package/src/resolve/authored.ts +64 -0
  434. package/src/resolve/encode.ts +22 -0
  435. package/src/resolve/errors.ts +15 -0
  436. package/src/resolve/facts.ts +18 -0
  437. package/src/resolve/resolve.ts +328 -0
  438. package/src/store.ts +28 -0
  439. package/templates/README.md +55 -59
  440. package/templates/bun-cli-github/README.md +12 -0
  441. package/templates/bun-cli-github/release.config.json +51 -0
  442. package/templates/github-actions/release.yml +57 -0
  443. package/templates/github-actions/reviewed-release.yml +80 -0
  444. package/templates/multi-target-homebrew/README.md +10 -0
  445. package/templates/multi-target-homebrew/release.config.json +43 -60
  446. package/templates/multi-target-scoop/README.md +10 -0
  447. package/templates/multi-target-scoop/release.config.json +43 -62
  448. package/templates/npm-github/release.config.json +25 -38
  449. package/templates/npm-github/reviewed-release.config.json +37 -0
  450. package/templates/npm-only/README.md +10 -0
  451. package/templates/npm-only/release.config.json +15 -30
  452. package/templates/portable-cli/README.md +13 -0
  453. package/templates/portable-cli/release.config.json +53 -0
  454. package/dist/config/errors.d.ts +0 -24
  455. package/dist/config/errors.d.ts.map +0 -1
  456. package/dist/config/errors.js +0 -19
  457. package/dist/config/errors.js.map +0 -1
  458. package/dist/config/load.d.ts +0 -9
  459. package/dist/config/load.d.ts.map +0 -1
  460. package/dist/config/load.js +0 -29
  461. package/dist/config/load.js.map +0 -1
  462. package/dist/config/schema.d.ts +0 -12
  463. package/dist/config/schema.d.ts.map +0 -1
  464. package/dist/config/schema.js +0 -19
  465. package/dist/config/schema.js.map +0 -1
  466. package/dist/domain/artifact.d.ts +0 -36
  467. package/dist/domain/artifact.d.ts.map +0 -1
  468. package/dist/domain/artifact.js +0 -29
  469. package/dist/domain/artifact.js.map +0 -1
  470. package/dist/domain/evidence.d.ts +0 -108
  471. package/dist/domain/evidence.d.ts.map +0 -1
  472. package/dist/domain/evidence.js +0 -96
  473. package/dist/domain/evidence.js.map +0 -1
  474. package/dist/domain/operation.d.ts +0 -153
  475. package/dist/domain/operation.d.ts.map +0 -1
  476. package/dist/domain/operation.js +0 -320
  477. package/dist/domain/operation.js.map +0 -1
  478. package/dist/domain/release.d.ts +0 -141
  479. package/dist/domain/release.d.ts.map +0 -1
  480. package/dist/domain/release.js +0 -127
  481. package/dist/domain/release.js.map +0 -1
  482. package/dist/domain/remote-state.d.ts +0 -85
  483. package/dist/domain/remote-state.d.ts.map +0 -1
  484. package/dist/domain/remote-state.js +0 -77
  485. package/dist/domain/remote-state.js.map +0 -1
  486. package/dist/domain/status.d.ts +0 -43
  487. package/dist/domain/status.d.ts.map +0 -1
  488. package/dist/domain/status.js +0 -51
  489. package/dist/domain/status.js.map +0 -1
  490. package/dist/domain/target.d.ts +0 -135
  491. package/dist/domain/target.d.ts.map +0 -1
  492. package/dist/domain/target.js +0 -137
  493. package/dist/domain/target.js.map +0 -1
  494. package/dist/host/host.d.ts +0 -32
  495. package/dist/host/host.d.ts.map +0 -1
  496. package/dist/host/host.js +0 -24
  497. package/dist/host/host.js.map +0 -1
  498. package/dist/host/http-live.d.ts +0 -6
  499. package/dist/host/http-live.d.ts.map +0 -1
  500. package/dist/host/http-live.js +0 -86
  501. package/dist/host/http-live.js.map +0 -1
  502. package/dist/host/http.d.ts +0 -43
  503. package/dist/host/http.d.ts.map +0 -1
  504. package/dist/host/http.js +0 -59
  505. package/dist/host/http.js.map +0 -1
  506. package/dist/host/platform.d.ts +0 -10
  507. package/dist/host/platform.d.ts.map +0 -1
  508. package/dist/host/platform.js +0 -114
  509. package/dist/host/platform.js.map +0 -1
  510. package/dist/host/test.d.ts +0 -23
  511. package/dist/host/test.d.ts.map +0 -1
  512. package/dist/host/test.js +0 -222
  513. package/dist/host/test.js.map +0 -1
  514. package/dist/internal/workflow-phases.d.ts +0 -3
  515. package/dist/internal/workflow-phases.d.ts.map +0 -1
  516. package/dist/internal/workflow-phases.js +0 -2
  517. package/dist/internal/workflow-phases.js.map +0 -1
  518. package/dist/internal/workspace-path.d.ts +0 -15
  519. package/dist/internal/workspace-path.d.ts.map +0 -1
  520. package/dist/internal/workspace-path.js +0 -36
  521. package/dist/internal/workspace-path.js.map +0 -1
  522. package/dist/planner/artifact-inventory.d.ts +0 -9
  523. package/dist/planner/artifact-inventory.d.ts.map +0 -1
  524. package/dist/planner/artifact-inventory.js +0 -84
  525. package/dist/planner/artifact-inventory.js.map +0 -1
  526. package/dist/planner/create-release-plan.d.ts +0 -5
  527. package/dist/planner/create-release-plan.d.ts.map +0 -1
  528. package/dist/planner/create-release-plan.js +0 -25
  529. package/dist/planner/create-release-plan.js.map +0 -1
  530. package/dist/planner/errors.d.ts +0 -81
  531. package/dist/planner/errors.d.ts.map +0 -1
  532. package/dist/planner/errors.js +0 -70
  533. package/dist/planner/errors.js.map +0 -1
  534. package/dist/planner/evidence-recorder.d.ts +0 -26
  535. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  536. package/dist/planner/evidence-recorder.js +0 -330
  537. package/dist/planner/evidence-recorder.js.map +0 -1
  538. package/dist/planner/executor.d.ts +0 -58
  539. package/dist/planner/executor.d.ts.map +0 -1
  540. package/dist/planner/executor.js +0 -159
  541. package/dist/planner/executor.js.map +0 -1
  542. package/dist/planner/normalize-release.d.ts +0 -16
  543. package/dist/planner/normalize-release.d.ts.map +0 -1
  544. package/dist/planner/normalize-release.js +0 -218
  545. package/dist/planner/normalize-release.js.map +0 -1
  546. package/dist/planner/reconcile.d.ts +0 -17
  547. package/dist/planner/reconcile.d.ts.map +0 -1
  548. package/dist/planner/reconcile.js +0 -261
  549. package/dist/planner/reconcile.js.map +0 -1
  550. package/dist/planner/release-eligibility.d.ts +0 -39
  551. package/dist/planner/release-eligibility.d.ts.map +0 -1
  552. package/dist/planner/release-eligibility.js +0 -578
  553. package/dist/planner/release-eligibility.js.map +0 -1
  554. package/dist/planner/render-plan.d.ts +0 -15
  555. package/dist/planner/render-plan.d.ts.map +0 -1
  556. package/dist/planner/render-plan.js +0 -238
  557. package/dist/planner/render-plan.js.map +0 -1
  558. package/dist/planner/status.d.ts +0 -40
  559. package/dist/planner/status.d.ts.map +0 -1
  560. package/dist/planner/status.js +0 -313
  561. package/dist/planner/status.js.map +0 -1
  562. package/dist/targets/adapter-helpers.d.ts +0 -64
  563. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  564. package/dist/targets/adapter-helpers.js +0 -124
  565. package/dist/targets/adapter-helpers.js.map +0 -1
  566. package/dist/targets/adapter.d.ts +0 -17
  567. package/dist/targets/adapter.d.ts.map +0 -1
  568. package/dist/targets/adapter.js +0 -2
  569. package/dist/targets/adapter.js.map +0 -1
  570. package/dist/targets/github-release.d.ts +0 -25
  571. package/dist/targets/github-release.d.ts.map +0 -1
  572. package/dist/targets/github-release.js +0 -82
  573. package/dist/targets/github-release.js.map +0 -1
  574. package/dist/targets/github.d.ts +0 -11
  575. package/dist/targets/github.d.ts.map +0 -1
  576. package/dist/targets/github.js +0 -125
  577. package/dist/targets/github.js.map +0 -1
  578. package/dist/targets/homebrew.d.ts +0 -11
  579. package/dist/targets/homebrew.d.ts.map +0 -1
  580. package/dist/targets/homebrew.js +0 -97
  581. package/dist/targets/homebrew.js.map +0 -1
  582. package/dist/targets/live.d.ts +0 -5
  583. package/dist/targets/live.d.ts.map +0 -1
  584. package/dist/targets/live.js +0 -50
  585. package/dist/targets/live.js.map +0 -1
  586. package/dist/targets/npm.d.ts +0 -10
  587. package/dist/targets/npm.d.ts.map +0 -1
  588. package/dist/targets/npm.js +0 -118
  589. package/dist/targets/npm.js.map +0 -1
  590. package/dist/targets/pypi.d.ts +0 -11
  591. package/dist/targets/pypi.d.ts.map +0 -1
  592. package/dist/targets/pypi.js +0 -103
  593. package/dist/targets/pypi.js.map +0 -1
  594. package/dist/targets/registry.d.ts +0 -25
  595. package/dist/targets/registry.d.ts.map +0 -1
  596. package/dist/targets/registry.js +0 -34
  597. package/dist/targets/registry.js.map +0 -1
  598. package/dist/targets/scoop.d.ts +0 -11
  599. package/dist/targets/scoop.d.ts.map +0 -1
  600. package/dist/targets/scoop.js +0 -78
  601. package/dist/targets/scoop.js.map +0 -1
  602. package/dist/types/effect-internal.d.ts +0 -5
  603. package/dist/types/effect-internal.d.ts.map +0 -1
  604. package/dist/types/effect-internal.js +0 -2
  605. package/dist/types/effect-internal.js.map +0 -1
  606. package/dist/workflows/config.d.ts +0 -252
  607. package/dist/workflows/config.d.ts.map +0 -1
  608. package/dist/workflows/config.js +0 -465
  609. package/dist/workflows/config.js.map +0 -1
  610. package/dist/workflows/diagnostics.d.ts +0 -62
  611. package/dist/workflows/diagnostics.d.ts.map +0 -1
  612. package/dist/workflows/diagnostics.js +0 -527
  613. package/dist/workflows/diagnostics.js.map +0 -1
  614. package/dist/workflows/evidence.d.ts +0 -26
  615. package/dist/workflows/evidence.d.ts.map +0 -1
  616. package/dist/workflows/evidence.js +0 -44
  617. package/dist/workflows/evidence.js.map +0 -1
  618. package/dist/workflows/index.d.ts +0 -7
  619. package/dist/workflows/index.d.ts.map +0 -1
  620. package/dist/workflows/index.js +0 -6
  621. package/dist/workflows/index.js.map +0 -1
  622. package/dist/workflows/init.d.ts +0 -84
  623. package/dist/workflows/init.d.ts.map +0 -1
  624. package/dist/workflows/init.js +0 -441
  625. package/dist/workflows/init.js.map +0 -1
  626. package/dist/workflows/live.d.ts +0 -9
  627. package/dist/workflows/live.d.ts.map +0 -1
  628. package/dist/workflows/live.js +0 -7
  629. package/dist/workflows/live.js.map +0 -1
  630. package/dist/workflows/options.d.ts +0 -30
  631. package/dist/workflows/options.d.ts.map +0 -1
  632. package/dist/workflows/options.js +0 -16
  633. package/dist/workflows/options.js.map +0 -1
  634. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  635. package/examples/non-strict-skips/release.config.json +0 -31
  636. package/examples/pypi-registry/release.config.json +0 -31
  637. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  638. package/templates/github-actions/plan-only.yml +0 -33
  639. package/templates/github-actions/trusted-publishing.yml +0 -61
@@ -1,578 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Path from "effect/Path";
4
- import * as Schema from "effect/Schema";
5
- import * as Semver from "semver";
6
- import { CommandSpec } from "../domain/operation.js";
7
- import { ReleaseEligibilityDecision, ReleaseEligibilityInput } from "../domain/remote-state.js";
8
- import { ConventionalCommitReleaseRule, GitTag, IntentFilesReleaseDecision, PackageManifestReleaseIdentitySource, ReleaseIdentity, ReleaseIntentFile, ReleaseName, ReleaseVersion, RemoteStateReleaseDecision, StaticReleaseIdentitySource } from "../domain/release.js";
9
- import { TargetId } from "../domain/target.js";
10
- import { ReleaseCommandRunner } from "../host/host.js";
11
- import { ReleaseEligibilityCheckError } from "./errors.js";
12
- import { readReleasePackageManifest, renderReleaseVersionTemplate, resolveIdentityCommit, resolveReleaseIdentitySource, validateNonEmptySafeRelativePath } from "./normalize-release.js";
13
- export { ReleasePackageManifest } from "../domain/release.js";
14
- export class ReleaseEligibilityRemoteCheck extends Schema.Class("ReleaseEligibilityRemoteCheck")({
15
- packageName: ReleaseName,
16
- packageVersion: ReleaseVersion,
17
- npmTargetId: TargetId,
18
- npmRegistry: Schema.String,
19
- githubTargetId: TargetId,
20
- githubRepository: Schema.String,
21
- githubTag: GitTag,
22
- githubTokenEnv: Schema.optionalKey(Schema.String),
23
- expectedGithubDraft: Schema.Boolean
24
- }) {
25
- }
26
- class GitHubCliReleaseViewResponse extends Schema.Class("GitHubCliReleaseViewResponse")({
27
- isDraft: Schema.Boolean
28
- }) {
29
- }
30
- const decodeGitHubCliReleaseViewResponse = Schema.decodeUnknownEffect(GitHubCliReleaseViewResponse);
31
- const decodeReleaseIntentFile = Schema.decodeUnknownEffect(ReleaseIntentFile);
32
- const defaultReleaseRules = [
33
- ConventionalCommitReleaseRule.make({ breaking: true, release: "major" }),
34
- ConventionalCommitReleaseRule.make({ type: "feat", release: "minor" }),
35
- ConventionalCommitReleaseRule.make({ type: "fix", release: "patch" })
36
- ];
37
- const releaseLabel = (input) => `${input.packageName}@${input.packageVersion}`;
38
- const expectedGithubState = (input) => input.expectedGithubDraft ? "draft" : "published";
39
- const decisionStrategy = (metadata) => metadata?.strategy;
40
- const enrichDecision = (decision, input, metadata) => {
41
- const strategy = decisionStrategy(metadata);
42
- return ReleaseEligibilityDecision.make({
43
- shouldRelease: decision.shouldRelease,
44
- status: decision.status,
45
- reason: decision.reason,
46
- ...(strategy === undefined ? {} : { strategy }),
47
- packageName: input.packageName,
48
- packageVersion: input.packageVersion,
49
- githubTag: input.githubTag,
50
- ...(metadata?.source === undefined ? {} : { source: metadata.source })
51
- });
52
- };
53
- const skippedDecision = (reason, metadata) => ReleaseEligibilityDecision.make({
54
- shouldRelease: false,
55
- status: "skipped",
56
- reason,
57
- ...(metadata.strategy === undefined ? {} : { strategy: metadata.strategy }),
58
- ...(metadata.source === undefined ? {} : { source: metadata.source })
59
- });
60
- export const decideReleaseEligibility = (input) => {
61
- if (input.npm === "missing" && input.github === "missing") {
62
- return ReleaseEligibilityDecision.make({
63
- shouldRelease: true,
64
- status: "ready",
65
- reason: `${releaseLabel(input)} is missing from npm and GitHub.`
66
- });
67
- }
68
- const expectedGithub = expectedGithubState(input);
69
- if (input.npm === "published" && input.github === expectedGithub) {
70
- return ReleaseEligibilityDecision.make({
71
- shouldRelease: false,
72
- status: "complete",
73
- reason: `${releaseLabel(input)} is already published to npm and GitHub.`
74
- });
75
- }
76
- if (input.npm === "published" && input.github === "draft" && !input.expectedGithubDraft) {
77
- return ReleaseEligibilityDecision.make({
78
- shouldRelease: false,
79
- status: "partial",
80
- reason: `${releaseLabel(input)} is published to npm, but GitHub release v${input.packageVersion} is still a draft.`
81
- });
82
- }
83
- if (input.npm === "published" && input.github === "published" && input.expectedGithubDraft) {
84
- return ReleaseEligibilityDecision.make({
85
- shouldRelease: false,
86
- status: "partial",
87
- reason: `${releaseLabel(input)} is published to npm, but GitHub release v${input.packageVersion} is public while the target expects a draft.`
88
- });
89
- }
90
- return ReleaseEligibilityDecision.make({
91
- shouldRelease: false,
92
- status: "partial",
93
- reason: `${releaseLabel(input)} has partial remote state: npm=${input.npm}, github=${input.github}, expected-github=${expectedGithub}.`
94
- });
95
- };
96
- const eligibilityError = (reason, targetId, cause) => ReleaseEligibilityCheckError.make({
97
- ...(targetId === undefined ? {} : { targetId }),
98
- reason,
99
- ...(cause === undefined ? {} : { cause })
100
- });
101
- const findNpmTarget = (targets, packageName) => targets.find((target) => target._tag === "NpmRegistryTarget" && target.packageName === packageName);
102
- const findNpmTargetById = (targets, targetId) => targets.find((target) => target._tag === "NpmRegistryTarget" && target.id === targetId);
103
- const findGitHubTarget = (targets) => targets.find((target) => target._tag === "GitHubReleaseTarget");
104
- export const releaseEligibilityRemoteCheckFromIdentity = Effect.fn("releaseEligibilityRemoteCheckFromIdentity")(function* (identity, targets) {
105
- const npmTarget = findNpmTarget(targets, identity.name);
106
- if (npmTarget === undefined) {
107
- const npmTargetById = findNpmTargetById(targets, "npm");
108
- if (npmTargetById !== undefined) {
109
- return yield* Effect.fail(eligibilityError(`npm target ${npmTargetById.id} packageName ${npmTargetById.packageName} does not match release identity ${identity.name}.`, npmTargetById.id));
110
- }
111
- return yield* Effect.fail(eligibilityError(`release config must include an npm target for ${identity.name}`));
112
- }
113
- const githubTarget = findGitHubTarget(targets);
114
- if (githubTarget === undefined) {
115
- return yield* Effect.fail(eligibilityError("release config must include a GitHub release target"));
116
- }
117
- return ReleaseEligibilityRemoteCheck.make({
118
- packageName: identity.name,
119
- packageVersion: identity.version,
120
- npmTargetId: npmTarget.id,
121
- npmRegistry: npmTarget.registry,
122
- githubTargetId: githubTarget.id,
123
- githubRepository: githubTarget.repository,
124
- githubTag: identity.tag ?? identity.version,
125
- ...(githubTarget.tokenEnv === undefined ? {} : { githubTokenEnv: githubTarget.tokenEnv }),
126
- expectedGithubDraft: githubTarget.draft ?? false
127
- });
128
- });
129
- export const releaseEligibilityRemoteCheckFromIntent = Effect.fn("releaseEligibilityRemoteCheckFromIntent")(function* (manifest, intent) {
130
- const staticTag = intent.identity instanceof StaticReleaseIdentitySource ? intent.identity.tag : undefined;
131
- return yield* releaseEligibilityRemoteCheckFromIdentity(ReleaseIdentity.make({
132
- name: manifest.name,
133
- version: manifest.version,
134
- commit: "HEAD",
135
- ...(staticTag === undefined ? {} : { tag: staticTag })
136
- }), intent.targets);
137
- });
138
- const looksMissing = (stdout, stderr) => {
139
- const text = `${stdout}\n${stderr}`.toLowerCase();
140
- return text.includes("not found") || text.includes("404") || text.includes("e404");
141
- };
142
- const firstDiagnosticLine = (result) => {
143
- const lines = `${result.stderr}\n${result.stdout}`
144
- .split(/\r?\n/)
145
- .map((line) => line.trim())
146
- .filter((line) => line.length > 0);
147
- return lines[0] ?? `exit code ${result.exitCode}`;
148
- };
149
- const npmViewCommand = (input) => CommandSpec.make({
150
- executable: "npm",
151
- args: [
152
- "view",
153
- `${input.packageName}@${input.packageVersion}`,
154
- "version",
155
- "--registry",
156
- input.npmRegistry
157
- ],
158
- requiredEnv: [],
159
- redactedEnv: []
160
- });
161
- const githubReleaseViewCommand = (input) => CommandSpec.make({
162
- executable: "gh",
163
- args: [
164
- "release",
165
- "view",
166
- input.githubTag,
167
- "--repo",
168
- input.githubRepository,
169
- "--json",
170
- "isDraft,tagName,publishedAt"
171
- ],
172
- requiredEnv: input.githubTokenEnv === undefined ? [] : [input.githubTokenEnv],
173
- redactedEnv: input.githubTokenEnv === undefined ? [] : [input.githubTokenEnv]
174
- });
175
- const gitTagsAtHeadCommand = (root) => CommandSpec.make({
176
- executable: "git",
177
- args: ["tag", "--points-at", "HEAD"],
178
- cwd: root,
179
- requiredEnv: [],
180
- redactedEnv: []
181
- });
182
- const gitListTagsCommand = (root) => CommandSpec.make({
183
- executable: "git",
184
- args: ["tag", "--list", "--merged", "HEAD"],
185
- cwd: root,
186
- requiredEnv: [],
187
- redactedEnv: []
188
- });
189
- const gitLogCommand = (root, sinceTag) => CommandSpec.make({
190
- executable: "git",
191
- args: sinceTag === undefined
192
- ? ["log", "--format=%B%x1e"]
193
- : ["log", `${sinceTag}..HEAD`, "--format=%B%x1e"],
194
- cwd: root,
195
- requiredEnv: [],
196
- redactedEnv: []
197
- });
198
- const parseGitHubCliReleaseView = Effect.fn("parseGitHubCliReleaseView")(function* (input, stdout) {
199
- const parsed = yield* Effect.try({
200
- try: () => JSON.parse(stdout),
201
- catch: (cause) => eligibilityError("gh release view returned invalid JSON.", input.githubTargetId, cause)
202
- });
203
- const response = yield* decodeGitHubCliReleaseViewResponse(parsed).pipe(Effect.mapError((error) => eligibilityError(`gh release view returned malformed JSON: ${error.message}`, input.githubTargetId)));
204
- return response.isDraft ? "draft" : "published";
205
- });
206
- export const classifyNpmRemoteState = Effect.fn("classifyNpmRemoteState")(function* (input) {
207
- const commandRunner = yield* ReleaseCommandRunner;
208
- const result = yield* commandRunner.runCommand(npmViewCommand(input));
209
- if (result.exitCode === 0) {
210
- return "published";
211
- }
212
- if (looksMissing(result.stdout, result.stderr)) {
213
- return "missing";
214
- }
215
- return yield* Effect.fail(eligibilityError(`npm view failed while checking package state: ${firstDiagnosticLine(result)}`, input.npmTargetId));
216
- });
217
- export const classifyGitHubReleaseAvailability = Effect.fn("classifyGitHubReleaseAvailability")(function* (input) {
218
- const commandRunner = yield* ReleaseCommandRunner;
219
- const result = yield* commandRunner.runCommand(githubReleaseViewCommand(input));
220
- if (result.exitCode === 0) {
221
- return yield* parseGitHubCliReleaseView(input, result.stdout);
222
- }
223
- if (looksMissing(result.stdout, result.stderr)) {
224
- return "missing";
225
- }
226
- return yield* Effect.fail(eligibilityError(`gh release view failed while checking release state: ${firstDiagnosticLine(result)}`, input.githubTargetId));
227
- });
228
- export const checkReleaseEligibility = Effect.fn("checkReleaseEligibility")(function* (input, metadata = undefined) {
229
- const npm = yield* classifyNpmRemoteState(input);
230
- const github = yield* classifyGitHubReleaseAvailability(input);
231
- return enrichDecision(decideReleaseEligibility(ReleaseEligibilityInput.make({
232
- packageName: input.packageName,
233
- packageVersion: input.packageVersion,
234
- expectedGithubDraft: input.expectedGithubDraft,
235
- npm,
236
- github
237
- })), input, metadata);
238
- });
239
- const strategyFromIntent = (intent) => intent.releaseDecision ?? RemoteStateReleaseDecision.make({});
240
- const identitySourceName = (intent) => intent.identity instanceof PackageManifestReleaseIdentitySource
241
- ? "PackageManifestReleaseIdentitySource"
242
- : "StaticReleaseIdentitySource";
243
- const checkRemoteStateForIdentity = Effect.fn("checkRemoteStateForIdentity")(function* (identity, targets, metadata) {
244
- const remoteCheck = yield* releaseEligibilityRemoteCheckFromIdentity(identity, targets);
245
- return yield* checkReleaseEligibility(remoteCheck, metadata);
246
- });
247
- const skippedReleaseResolution = (decision) => ({
248
- _tag: "Skipped",
249
- decision
250
- });
251
- const resolvedReleaseResolution = (identity, targets, metadata) => ({
252
- _tag: "Resolved",
253
- identity,
254
- targets,
255
- metadata
256
- });
257
- const resolveRemoteStateDecision = Effect.fn("resolveRemoteStateDecision")(function* (strategy, intent, root) {
258
- const identity = yield* resolveReleaseIdentitySource(intent.identity, root);
259
- return resolvedReleaseResolution(identity, intent.targets, {
260
- strategy: strategy._tag,
261
- source: identitySourceName(intent)
262
- });
263
- });
264
- const templateParts = (template, field) => {
265
- const placeholder = "{version}";
266
- const firstIndex = template.indexOf(placeholder);
267
- const lastIndex = template.lastIndexOf(placeholder);
268
- if (firstIndex >= 0 && firstIndex === lastIndex) {
269
- return Effect.succeed({
270
- prefix: template.slice(0, firstIndex),
271
- suffix: template.slice(firstIndex + placeholder.length)
272
- });
273
- }
274
- return Effect.fail(eligibilityError(`${field} must contain exactly one {version} placeholder.`));
275
- };
276
- const versionFromTag = (tag, parts) => {
277
- if (!tag.startsWith(parts.prefix) || !tag.endsWith(parts.suffix)) {
278
- return undefined;
279
- }
280
- const suffixStart = tag.length - parts.suffix.length;
281
- const version = tag.slice(parts.prefix.length, suffixStart);
282
- return version.length === 0 ? undefined : version;
283
- };
284
- const stdoutLines = (stdout) => stdout.split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0);
285
- const readMatchingCurrentTags = Effect.fn("readMatchingCurrentTags")(function* (root, template, providedTag, requireCurrentRef) {
286
- const parts = yield* templateParts(template, "releaseDecision.tagTemplate");
287
- const tags = providedTag !== undefined && !requireCurrentRef
288
- ? [providedTag]
289
- : yield* Effect.gen(function* () {
290
- const commandRunner = yield* ReleaseCommandRunner;
291
- const result = yield* commandRunner.runCommand(gitTagsAtHeadCommand(root));
292
- if (result.exitCode !== 0) {
293
- return yield* Effect.fail(eligibilityError(`git tag --points-at HEAD failed: ${firstDiagnosticLine(result)}`));
294
- }
295
- const currentTags = stdoutLines(result.stdout);
296
- return providedTag === undefined
297
- ? currentTags
298
- : currentTags.filter((tag) => tag === providedTag);
299
- });
300
- return tags.flatMap((tag) => {
301
- const version = versionFromTag(tag, parts);
302
- return version === undefined ? [] : [{ tag, version }];
303
- });
304
- });
305
- const resolveTagIdentity = Effect.fn("resolveTagIdentity")(function* (root, manifest, tag) {
306
- return yield* resolveIdentityCommit(ReleaseIdentity.make({
307
- name: manifest.name,
308
- version: tag.version,
309
- commit: "HEAD",
310
- tag: tag.tag
311
- }), root);
312
- });
313
- const resolveGitTagDecision = Effect.fn("resolveGitTagDecision")(function* (strategy, intent, root) {
314
- const metadata = {
315
- strategy: strategy._tag,
316
- source: strategy.tag === undefined ? "git tag --points-at HEAD" : `tag ${strategy.tag}`
317
- };
318
- const manifest = yield* readReleasePackageManifest(root, strategy.packagePath ?? "package.json", "releaseDecision.packagePath");
319
- const tagTemplate = strategy.tagTemplate ?? "v{version}";
320
- const requireCurrentRef = strategy.requireCurrentRef ?? true;
321
- const matchingTags = yield* readMatchingCurrentTags(root, tagTemplate, strategy.tag, requireCurrentRef);
322
- if (matchingTags.length === 0) {
323
- if (strategy.tag !== undefined && requireCurrentRef) {
324
- return skippedReleaseResolution(skippedDecision(`Release tag ${strategy.tag} does not point at HEAD.`, metadata));
325
- }
326
- return skippedReleaseResolution(skippedDecision("No release tag matching releaseDecision.tagTemplate points at HEAD.", metadata));
327
- }
328
- if (matchingTags.length > 1) {
329
- return yield* Effect.fail(eligibilityError(`Multiple release tags match ${tagTemplate}: ${matchingTags.map((tag) => tag.tag).join(", ")}.`));
330
- }
331
- const tag = matchingTags[0];
332
- if (tag === undefined) {
333
- return skippedReleaseResolution(skippedDecision("No release tag matching releaseDecision.tagTemplate points at HEAD.", metadata));
334
- }
335
- const identity = yield* resolveTagIdentity(root, manifest, tag);
336
- return resolvedReleaseResolution(identity, intent.targets, metadata);
337
- });
338
- const matchingTagsFromList = Effect.fn("matchingTagsFromList")(function* (stdout, template) {
339
- const parts = yield* templateParts(template, "releaseDecision.tagTemplate");
340
- const candidates = [];
341
- for (const tag of stdoutLines(stdout)) {
342
- const version = versionFromTag(tag, parts);
343
- if (version === undefined) {
344
- continue;
345
- }
346
- const validVersion = Semver.valid(version);
347
- if (validVersion !== null) {
348
- candidates.push({ tag, version: validVersion });
349
- }
350
- }
351
- return candidates.sort((left, right) => Semver.rcompare(left.version, right.version));
352
- });
353
- const latestMatchingTag = Effect.fn("latestMatchingTag")(function* (root, template) {
354
- const commandRunner = yield* ReleaseCommandRunner;
355
- const result = yield* commandRunner.runCommand(gitListTagsCommand(root));
356
- if (result.exitCode !== 0) {
357
- return yield* Effect.fail(eligibilityError(`git tag --list failed: ${firstDiagnosticLine(result)}`));
358
- }
359
- const matching = yield* matchingTagsFromList(result.stdout, template);
360
- return matching[0];
361
- });
362
- const parseCommit = (message) => {
363
- const firstLine = message.split(/\r?\n/)[0]?.trim() ?? "";
364
- const match = /^([A-Za-z][A-Za-z0-9-]*)(?:\([^)]+\))?(!)?:/.exec(firstLine);
365
- const type = match?.[1];
366
- const breakingSubject = match?.[2] === "!";
367
- const breakingBody = /^BREAKING[ -]CHANGE:/m.test(message);
368
- return {
369
- type,
370
- breaking: breakingSubject || breakingBody
371
- };
372
- };
373
- const bumpRank = (bump) => {
374
- switch (bump) {
375
- case "major":
376
- return 3;
377
- case "minor":
378
- return 2;
379
- case "patch":
380
- return 1;
381
- case "none":
382
- return 0;
383
- }
384
- };
385
- const higherBump = (left, right) => bumpRank(right) > bumpRank(left) ? right : left;
386
- const ruleMatches = (rule, commit) => {
387
- if (rule.breaking !== undefined && rule.breaking !== commit.breaking) {
388
- return false;
389
- }
390
- if (rule.type !== undefined && rule.type !== commit.type) {
391
- return false;
392
- }
393
- return rule.breaking !== undefined || rule.type !== undefined;
394
- };
395
- const classifyConventionalCommitBump = (message, rules) => {
396
- const commit = parseCommit(message);
397
- let bump = "none";
398
- for (const rule of rules) {
399
- if (ruleMatches(rule, commit)) {
400
- bump = higherBump(bump, rule.release);
401
- }
402
- }
403
- return bump;
404
- };
405
- const readCommitMessages = Effect.fn("readCommitMessages")(function* (root, sinceTag) {
406
- const commandRunner = yield* ReleaseCommandRunner;
407
- const result = yield* commandRunner.runCommand(gitLogCommand(root, sinceTag));
408
- if (result.exitCode !== 0) {
409
- return yield* Effect.fail(eligibilityError(`git log failed: ${firstDiagnosticLine(result)}`));
410
- }
411
- return result.stdout
412
- .split("\x1e")
413
- .map((message) => message.trim())
414
- .filter((message) => message.length > 0);
415
- });
416
- const nextSemverVersion = (version, bump, field) => {
417
- const validVersion = Semver.valid(version);
418
- if (validVersion === null) {
419
- return Effect.fail(eligibilityError(`${field} must be a valid SemVer version.`));
420
- }
421
- const nextVersion = Semver.inc(validVersion, bump);
422
- if (nextVersion !== null) {
423
- return Effect.succeed(nextVersion);
424
- }
425
- return Effect.fail(eligibilityError(`Unable to increment ${validVersion} as ${bump}.`));
426
- };
427
- const highestConventionalBump = (messages, rules) => {
428
- let bump = "none";
429
- for (const message of messages) {
430
- bump = higherBump(bump, classifyConventionalCommitBump(message, rules));
431
- }
432
- return bump;
433
- };
434
- const resolveConventionalCommitsDecision = Effect.fn("resolveConventionalCommitsDecision")(function* (strategy, intent, root) {
435
- const metadata = {
436
- strategy: strategy._tag,
437
- source: "git commits"
438
- };
439
- const tagTemplate = strategy.tagTemplate ?? "v{version}";
440
- const manifest = yield* readReleasePackageManifest(root, strategy.packagePath ?? "package.json", "releaseDecision.packagePath");
441
- const latest = yield* latestMatchingTag(root, tagTemplate);
442
- const messages = yield* readCommitMessages(root, latest?.tag);
443
- if (messages.length === 0) {
444
- return skippedReleaseResolution(skippedDecision("No commits were found for conventional commit analysis.", metadata));
445
- }
446
- const bump = highestConventionalBump(messages, strategy.releaseRules ?? defaultReleaseRules);
447
- if (bump === "none") {
448
- return skippedReleaseResolution(skippedDecision("No releasable conventional commits were found.", metadata));
449
- }
450
- const baseVersion = latest?.version ?? manifest.version;
451
- const nextVersion = yield* nextSemverVersion(baseVersion, bump, latest === undefined ? "package.json version" : "release tag version");
452
- const identity = yield* resolveIdentityCommit(ReleaseIdentity.make({
453
- name: manifest.name,
454
- version: nextVersion,
455
- commit: "HEAD",
456
- tag: renderReleaseVersionTemplate(tagTemplate, nextVersion)
457
- }), root);
458
- return resolvedReleaseResolution(identity, intent.targets, metadata);
459
- });
460
- const readIntentFiles = Effect.fn("readIntentFiles")(function* (root, strategy) {
461
- const directory = strategy.directory ?? ".release/intents";
462
- yield* validateNonEmptySafeRelativePath("releaseDecision.directory", directory);
463
- const manifest = yield* readReleasePackageManifest(root, strategy.packagePath ?? "package.json", "releaseDecision.packagePath");
464
- const fs = yield* FileSystem.FileSystem;
465
- const path = yield* Path.Path;
466
- const absoluteDirectory = path.resolve(root, directory);
467
- const entries = yield* fs.readDirectory(absoluteDirectory).pipe(Effect.catch(() => Effect.succeed([])));
468
- const files = [];
469
- for (const entry of entries.filter((item) => item.endsWith(".json")).sort()) {
470
- yield* validateNonEmptySafeRelativePath("releaseDecision.intentFile", entry);
471
- const intentPath = path.join(absoluteDirectory, entry);
472
- const contents = yield* fs.readFileString(intentPath).pipe(Effect.mapError((error) => eligibilityError(`Unable to read release intent file ${entry}: ${error.message}`, undefined, error)));
473
- const parsed = yield* Effect.try({
474
- try: () => JSON.parse(contents),
475
- catch: (cause) => eligibilityError(`Release intent file ${entry} is not valid JSON.`, undefined, cause)
476
- });
477
- const decoded = yield* decodeReleaseIntentFile(parsed).pipe(Effect.mapError((error) => eligibilityError(`Release intent file ${entry} is invalid: ${error.message}`)));
478
- if (decoded.package === manifest.name) {
479
- files.push(decoded);
480
- }
481
- }
482
- return {
483
- manifest,
484
- packageName: manifest.name,
485
- directory,
486
- files
487
- };
488
- });
489
- const highestIntentBump = (files) => {
490
- let bump = "none";
491
- for (const file of files) {
492
- const release = file.empty === true ? "none" : file.release;
493
- bump = higherBump(bump, release);
494
- }
495
- return bump;
496
- };
497
- const resolveIntentFilesDecision = Effect.fn("resolveIntentFilesDecision")(function* (strategy, intent, root) {
498
- const metadata = {
499
- strategy: strategy._tag,
500
- source: strategy.directory ?? ".release/intents"
501
- };
502
- const intentFiles = yield* readIntentFiles(root, strategy);
503
- const manifest = intentFiles.manifest;
504
- if (intentFiles.files.length === 0) {
505
- return skippedReleaseResolution(skippedDecision(`No release intent files were found for ${manifest.name}.`, metadata));
506
- }
507
- const bump = highestIntentBump(intentFiles.files);
508
- if (bump === "none") {
509
- return skippedReleaseResolution(skippedDecision(`Release intent files for ${manifest.name} request no release.`, metadata));
510
- }
511
- const nextVersion = yield* nextSemverVersion(manifest.version, bump, "package.json version");
512
- const tagTemplate = strategy.tagTemplate ?? "v{version}";
513
- yield* templateParts(tagTemplate, "releaseDecision.tagTemplate");
514
- const identity = yield* resolveIdentityCommit(ReleaseIdentity.make({
515
- name: manifest.name,
516
- version: nextVersion,
517
- commit: "HEAD",
518
- tag: renderReleaseVersionTemplate(tagTemplate, nextVersion)
519
- }), root);
520
- return resolvedReleaseResolution(identity, intent.targets, metadata);
521
- });
522
- const resolveReleaseDecision = Effect.fn("resolveReleaseDecision")(function* (intent, root = ".") {
523
- const strategy = strategyFromIntent(intent);
524
- switch (strategy._tag) {
525
- case "RemoteStateReleaseDecision":
526
- return yield* resolveRemoteStateDecision(strategy, intent, root);
527
- case "GitTagReleaseDecision":
528
- return yield* resolveGitTagDecision(strategy, intent, root);
529
- case "ConventionalCommitsReleaseDecision":
530
- return yield* resolveConventionalCommitsDecision(strategy, intent, root);
531
- case "IntentFilesReleaseDecision":
532
- return yield* resolveIntentFilesDecision(strategy, intent, root);
533
- }
534
- });
535
- export const checkReleaseDecision = Effect.fn("checkReleaseDecision")(function* (intent, root = ".") {
536
- const resolution = yield* resolveReleaseDecision(intent, root);
537
- switch (resolution._tag) {
538
- case "Skipped":
539
- return resolution.decision;
540
- case "Resolved":
541
- return yield* checkRemoteStateForIdentity(resolution.identity, resolution.targets, resolution.metadata);
542
- }
543
- });
544
- export const checkReleaseIntentRequirement = Effect.fn("checkReleaseIntentRequirement")(function* (intent, root = ".") {
545
- const strategy = strategyFromIntent(intent);
546
- if (!(strategy instanceof IntentFilesReleaseDecision)) {
547
- return skippedDecision("Release config is not using IntentFilesReleaseDecision.", {
548
- strategy: strategy._tag,
549
- source: "releaseDecision"
550
- });
551
- }
552
- const intentFiles = yield* readIntentFiles(root, strategy);
553
- if (intentFiles.files.length === 0 && (strategy.requireIntent ?? true)) {
554
- return yield* Effect.fail(eligibilityError(`release intent files are required for ${intentFiles.packageName} in ${intentFiles.directory}.`));
555
- }
556
- const bump = highestIntentBump(intentFiles.files);
557
- return ReleaseEligibilityDecision.make({
558
- shouldRelease: bump !== "none",
559
- status: bump === "none" ? "skipped" : "ready",
560
- reason: bump === "none"
561
- ? `Release intent files for ${intentFiles.packageName} request no release.`
562
- : `Release intent files for ${intentFiles.packageName} request a ${bump} release.`,
563
- strategy: strategy._tag,
564
- packageName: intentFiles.packageName,
565
- source: intentFiles.directory
566
- });
567
- });
568
- export const renderReleaseEligibilityText = (decision) => {
569
- const strategy = decision.strategy === undefined ? "" : ` strategy=${decision.strategy}`;
570
- const source = decision.source === undefined ? "" : ` source=${JSON.stringify(decision.source)}`;
571
- const release = decision.packageName === undefined || decision.packageVersion === undefined
572
- ? ""
573
- : ` release=${decision.packageName}@${decision.packageVersion}`;
574
- const tag = decision.githubTag === undefined ? "" : ` github-tag=${decision.githubTag}`;
575
- return `release eligibility status=${decision.status} should-release=${decision.shouldRelease}${strategy}${source}${release}${tag} reason=${JSON.stringify(decision.reason)}\n`;
576
- };
577
- export const renderReleaseEligibilityJson = (decision) => `${JSON.stringify(decision, null, 2)}\n`;
578
- //# sourceMappingURL=release-eligibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-eligibility.js","sourceRoot":"","sources":["../../src/planner/release-eligibility.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Schema from "effect/Schema";
3
- import { ReleasePlan } from "../domain/release.js";
4
- export type * from "../types/effect-internal.js";
5
- declare const PlanOperationNotFoundError_base: Schema.Class<PlanOperationNotFoundError, Schema.TaggedStruct<"PlanOperationNotFoundError", {
6
- readonly operationId: Schema.NonEmptyString;
7
- }>, import("effect/Cause").YieldableError>;
8
- export declare class PlanOperationNotFoundError extends PlanOperationNotFoundError_base {
9
- }
10
- export declare const renderPlanJson: (plan: ReleasePlan) => string;
11
- export declare const renderPlanText: (plan: ReleasePlan) => string;
12
- export declare const renderPlanSummary: (plan: ReleasePlan) => string;
13
- export declare const renderPlanMarkdown: (plan: ReleasePlan) => string;
14
- export declare const renderPlanOperationExplanation: (plan: ReleasePlan, operationId: string) => Effect.Effect<string, PlanOperationNotFoundError, never>;
15
- //# sourceMappingURL=render-plan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-plan.d.ts","sourceRoot":"","sources":["../../src/planner/render-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,mBAAmB,6BAA6B,CAAA;;;;AAEhD,qBAAa,0BAA2B,SAAQ,+BAK/C;CAAG;AAsFJ,eAAO,MAAM,cAAc,GAAI,MAAM,WAAW,KAAG,MACb,CAAA;AAEtC,eAAO,MAAM,cAAc,GAAI,MAAM,WAAW,KAAG,MAoDlD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,WAAW,KAAG,MA0CrD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,WAAW,KAAG,MAiDtD,CAAA;AA2BD,eAAO,MAAM,8BAA8B,sGASzC,CAAA"}