@mannyc1/ts-release 0.0.7 → 0.3.0

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 (695) hide show
  1. package/ARCHITECTURE.md +184 -92
  2. package/CHANGELOG.md +197 -0
  3. package/LICENSE +21 -0
  4. package/README.md +404 -327
  5. package/SPEC.md +257 -310
  6. package/apps/release-ts/README.md +39 -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 +122 -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 +39346 -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 +9 -0
  82. package/dist/drivers/archive.d.ts.map +1 -0
  83. package/dist/drivers/archive.js +105 -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/python-wheel.d.ts +21 -0
  106. package/dist/drivers/python-wheel.d.ts.map +1 -0
  107. package/dist/drivers/python-wheel.js +109 -0
  108. package/dist/drivers/python-wheel.js.map +1 -0
  109. package/dist/drivers/redact.d.ts +4 -0
  110. package/dist/drivers/redact.d.ts.map +1 -0
  111. package/dist/drivers/redact.js +24 -0
  112. package/dist/drivers/redact.js.map +1 -0
  113. package/dist/drivers/seccomp-helper-source.d.ts +7 -0
  114. package/dist/drivers/seccomp-helper-source.d.ts.map +1 -0
  115. package/dist/drivers/seccomp-helper-source.js +121 -0
  116. package/dist/drivers/seccomp-helper-source.js.map +1 -0
  117. package/dist/drivers/utils.d.ts +4 -0
  118. package/dist/drivers/utils.d.ts.map +1 -0
  119. package/dist/drivers/utils.js +5 -0
  120. package/dist/drivers/utils.js.map +1 -0
  121. package/dist/drivers/workspace.d.ts +9 -0
  122. package/dist/drivers/workspace.d.ts.map +1 -0
  123. package/dist/drivers/workspace.js +53 -0
  124. package/dist/drivers/workspace.js.map +1 -0
  125. package/dist/extensions/provider-adapter.d.ts +48 -0
  126. package/dist/extensions/provider-adapter.d.ts.map +1 -0
  127. package/dist/extensions/provider-adapter.js +64 -0
  128. package/dist/extensions/provider-adapter.js.map +1 -0
  129. package/dist/host.d.ts +33 -0
  130. package/dist/host.d.ts.map +1 -0
  131. package/dist/host.js +20 -0
  132. package/dist/host.js.map +1 -0
  133. package/dist/index.d.ts +19 -1
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +12 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/model/artifact-collection.d.ts +84 -0
  138. package/dist/model/artifact-collection.d.ts.map +1 -0
  139. package/dist/model/artifact-collection.js +185 -0
  140. package/dist/model/artifact-collection.js.map +1 -0
  141. package/dist/model/authority.d.ts +89 -0
  142. package/dist/model/authority.d.ts.map +1 -0
  143. package/dist/model/authority.js +80 -0
  144. package/dist/model/authority.js.map +1 -0
  145. package/dist/model/bun-targets.d.ts +34 -0
  146. package/dist/model/bun-targets.d.ts.map +1 -0
  147. package/dist/model/bun-targets.js +17 -0
  148. package/dist/model/bun-targets.js.map +1 -0
  149. package/dist/model/canonical.d.ts +8 -0
  150. package/dist/model/canonical.d.ts.map +1 -0
  151. package/dist/model/canonical.js +205 -0
  152. package/dist/model/canonical.js.map +1 -0
  153. package/dist/model/catalog.d.ts +76 -0
  154. package/dist/model/catalog.d.ts.map +1 -0
  155. package/dist/model/catalog.js +174 -0
  156. package/dist/model/catalog.js.map +1 -0
  157. package/dist/model/digest.d.ts +53 -0
  158. package/dist/model/digest.d.ts.map +1 -0
  159. package/dist/model/digest.js +127 -0
  160. package/dist/model/digest.js.map +1 -0
  161. package/dist/model/errors.d.ts +14 -0
  162. package/dist/model/errors.d.ts.map +1 -0
  163. package/dist/model/errors.js +8 -0
  164. package/dist/model/errors.js.map +1 -0
  165. package/dist/model/primitives.d.ts +19 -0
  166. package/dist/model/primitives.d.ts.map +1 -0
  167. package/dist/model/primitives.js +18 -0
  168. package/dist/model/primitives.js.map +1 -0
  169. package/dist/model/pypi.d.ts +12 -0
  170. package/dist/model/pypi.d.ts.map +1 -0
  171. package/dist/model/pypi.js +20 -0
  172. package/dist/model/pypi.js.map +1 -0
  173. package/dist/model/python-distribution.d.ts +33 -0
  174. package/dist/model/python-distribution.d.ts.map +1 -0
  175. package/dist/model/python-distribution.js +367 -0
  176. package/dist/model/python-distribution.js.map +1 -0
  177. package/dist/model/secret-patterns.d.ts +2 -0
  178. package/dist/model/secret-patterns.d.ts.map +1 -0
  179. package/dist/model/secret-patterns.js +12 -0
  180. package/dist/model/secret-patterns.js.map +1 -0
  181. package/dist/operation-journal/authority.d.ts +3 -0
  182. package/dist/operation-journal/authority.d.ts.map +1 -0
  183. package/dist/operation-journal/authority.js +147 -0
  184. package/dist/operation-journal/authority.js.map +1 -0
  185. package/dist/operation-journal/aws/deadline.d.ts +12 -0
  186. package/dist/operation-journal/aws/deadline.d.ts.map +1 -0
  187. package/dist/operation-journal/aws/deadline.js +38 -0
  188. package/dist/operation-journal/aws/deadline.js.map +1 -0
  189. package/dist/operation-journal/aws/oidc.d.ts +27 -0
  190. package/dist/operation-journal/aws/oidc.d.ts.map +1 -0
  191. package/dist/operation-journal/aws/oidc.js +361 -0
  192. package/dist/operation-journal/aws/oidc.js.map +1 -0
  193. package/dist/operation-journal/aws/policy.d.ts +42 -0
  194. package/dist/operation-journal/aws/policy.d.ts.map +1 -0
  195. package/dist/operation-journal/aws/policy.js +404 -0
  196. package/dist/operation-journal/aws/policy.js.map +1 -0
  197. package/dist/operation-journal/aws/s3-boundary.d.ts +17 -0
  198. package/dist/operation-journal/aws/s3-boundary.d.ts.map +1 -0
  199. package/dist/operation-journal/aws/s3-boundary.js +417 -0
  200. package/dist/operation-journal/aws/s3-boundary.js.map +1 -0
  201. package/dist/operation-journal/aws.d.ts +11 -0
  202. package/dist/operation-journal/aws.d.ts.map +1 -0
  203. package/dist/operation-journal/aws.js +50 -0
  204. package/dist/operation-journal/aws.js.map +1 -0
  205. package/dist/operation-journal/canonical.d.ts +52 -0
  206. package/dist/operation-journal/canonical.d.ts.map +1 -0
  207. package/dist/operation-journal/canonical.js +282 -0
  208. package/dist/operation-journal/canonical.js.map +1 -0
  209. package/dist/operation-journal/model.d.ts +251 -0
  210. package/dist/operation-journal/model.d.ts.map +1 -0
  211. package/dist/operation-journal/model.js +56 -0
  212. package/dist/operation-journal/model.js.map +1 -0
  213. package/dist/operation-journal/reducer.d.ts +28 -0
  214. package/dist/operation-journal/reducer.d.ts.map +1 -0
  215. package/dist/operation-journal/reducer.js +73 -0
  216. package/dist/operation-journal/reducer.js.map +1 -0
  217. package/dist/operation-journal/s3.d.ts +7 -0
  218. package/dist/operation-journal/s3.d.ts.map +1 -0
  219. package/dist/operation-journal/s3.js +667 -0
  220. package/dist/operation-journal/s3.js.map +1 -0
  221. package/dist/operation-journal.d.ts +14 -0
  222. package/dist/operation-journal.d.ts.map +1 -0
  223. package/dist/operation-journal.js +12 -0
  224. package/dist/operation-journal.js.map +1 -0
  225. package/dist/platform/bun.d.ts +7 -0
  226. package/dist/platform/bun.d.ts.map +1 -0
  227. package/dist/platform/bun.js +15 -0
  228. package/dist/platform/bun.js.map +1 -0
  229. package/dist/platform/credentials.d.ts +32 -0
  230. package/dist/platform/credentials.d.ts.map +1 -0
  231. package/dist/platform/credentials.js +834 -0
  232. package/dist/platform/credentials.js.map +1 -0
  233. package/dist/platform/host-support.d.ts +2 -0
  234. package/dist/platform/host-support.d.ts.map +1 -0
  235. package/dist/platform/host-support.js +4 -0
  236. package/dist/platform/host-support.js.map +1 -0
  237. package/dist/platform/node.d.ts +7 -0
  238. package/dist/platform/node.d.ts.map +1 -0
  239. package/dist/platform/node.js +15 -0
  240. package/dist/platform/node.js.map +1 -0
  241. package/dist/platform/release-runtime.d.ts +11 -0
  242. package/dist/platform/release-runtime.d.ts.map +1 -0
  243. package/dist/platform/release-runtime.js +34 -0
  244. package/dist/platform/release-runtime.js.map +1 -0
  245. package/dist/platform/services.d.ts +15 -0
  246. package/dist/platform/services.d.ts.map +1 -0
  247. package/dist/platform/services.js +30 -0
  248. package/dist/platform/services.js.map +1 -0
  249. package/dist/platform/source-observer.d.ts +5 -0
  250. package/dist/platform/source-observer.d.ts.map +1 -0
  251. package/dist/platform/source-observer.js +159 -0
  252. package/dist/platform/source-observer.js.map +1 -0
  253. package/dist/provider-sdk.d.ts +14 -0
  254. package/dist/provider-sdk.d.ts.map +1 -0
  255. package/dist/provider-sdk.js +10 -0
  256. package/dist/provider-sdk.js.map +1 -0
  257. package/dist/publication/adapter.d.ts +212 -0
  258. package/dist/publication/adapter.d.ts.map +1 -0
  259. package/dist/publication/adapter.js +83 -0
  260. package/dist/publication/adapter.js.map +1 -0
  261. package/dist/publication/authority.d.ts +137 -0
  262. package/dist/publication/authority.d.ts.map +1 -0
  263. package/dist/publication/authority.js +233 -0
  264. package/dist/publication/authority.js.map +1 -0
  265. package/dist/publication/catalog-git.d.ts +37 -0
  266. package/dist/publication/catalog-git.d.ts.map +1 -0
  267. package/dist/publication/catalog-git.js +451 -0
  268. package/dist/publication/catalog-git.js.map +1 -0
  269. package/dist/publication/claim.d.ts +39 -0
  270. package/dist/publication/claim.d.ts.map +1 -0
  271. package/dist/publication/claim.js +31 -0
  272. package/dist/publication/claim.js.map +1 -0
  273. package/dist/publication/coordinator.d.ts +246 -0
  274. package/dist/publication/coordinator.d.ts.map +1 -0
  275. package/dist/publication/coordinator.js +370 -0
  276. package/dist/publication/coordinator.js.map +1 -0
  277. package/dist/publication/github.d.ts +36 -0
  278. package/dist/publication/github.d.ts.map +1 -0
  279. package/dist/publication/github.js +695 -0
  280. package/dist/publication/github.js.map +1 -0
  281. package/dist/publication/http.d.ts +69 -0
  282. package/dist/publication/http.d.ts.map +1 -0
  283. package/dist/publication/http.js +29 -0
  284. package/dist/publication/http.js.map +1 -0
  285. package/dist/publication/index.d.ts +5 -0
  286. package/dist/publication/index.d.ts.map +1 -0
  287. package/dist/publication/index.js +5 -0
  288. package/dist/publication/index.js.map +1 -0
  289. package/dist/publication/npm.d.ts +40 -0
  290. package/dist/publication/npm.d.ts.map +1 -0
  291. package/dist/publication/npm.js +359 -0
  292. package/dist/publication/npm.js.map +1 -0
  293. package/dist/publication/profiles.d.ts +136 -0
  294. package/dist/publication/profiles.d.ts.map +1 -0
  295. package/dist/publication/profiles.js +90 -0
  296. package/dist/publication/profiles.js.map +1 -0
  297. package/dist/publication/publisher.d.ts +82 -0
  298. package/dist/publication/publisher.d.ts.map +1 -0
  299. package/dist/publication/publisher.js +53 -0
  300. package/dist/publication/publisher.js.map +1 -0
  301. package/dist/publication/pypi.d.ts +45 -0
  302. package/dist/publication/pypi.d.ts.map +1 -0
  303. package/dist/publication/pypi.js +369 -0
  304. package/dist/publication/pypi.js.map +1 -0
  305. package/dist/publication/recovery.d.ts +663 -0
  306. package/dist/publication/recovery.d.ts.map +1 -0
  307. package/dist/publication/recovery.js +252 -0
  308. package/dist/publication/recovery.js.map +1 -0
  309. package/dist/publication/report.d.ts +1061 -0
  310. package/dist/publication/report.d.ts.map +1 -0
  311. package/dist/publication/report.js +441 -0
  312. package/dist/publication/report.js.map +1 -0
  313. package/dist/recipes/config.d.ts +296 -0
  314. package/dist/recipes/config.d.ts.map +1 -0
  315. package/dist/recipes/config.js +325 -0
  316. package/dist/recipes/config.js.map +1 -0
  317. package/dist/release/capabilities.d.ts +12 -0
  318. package/dist/release/capabilities.d.ts.map +1 -0
  319. package/dist/release/capabilities.js +395 -0
  320. package/dist/release/capabilities.js.map +1 -0
  321. package/dist/release/compiler.d.ts +5 -0
  322. package/dist/release/compiler.d.ts.map +1 -0
  323. package/dist/release/compiler.js +19 -0
  324. package/dist/release/compiler.js.map +1 -0
  325. package/dist/release/config.d.ts +5 -0
  326. package/dist/release/config.d.ts.map +1 -0
  327. package/dist/release/config.js +10 -0
  328. package/dist/release/config.js.map +1 -0
  329. package/dist/release/context.d.ts +96 -0
  330. package/dist/release/context.d.ts.map +1 -0
  331. package/dist/release/context.js +168 -0
  332. package/dist/release/context.js.map +1 -0
  333. package/dist/release/graph.d.ts +271 -0
  334. package/dist/release/graph.d.ts.map +1 -0
  335. package/dist/release/graph.js +766 -0
  336. package/dist/release/graph.js.map +1 -0
  337. package/dist/release/inspect.d.ts +88 -0
  338. package/dist/release/inspect.d.ts.map +1 -0
  339. package/dist/release/inspect.js +75 -0
  340. package/dist/release/inspect.js.map +1 -0
  341. package/dist/release/prepare.d.ts +24 -0
  342. package/dist/release/prepare.d.ts.map +1 -0
  343. package/dist/release/prepare.js +1115 -0
  344. package/dist/release/prepare.js.map +1 -0
  345. package/dist/release/prepared-ref.d.ts +60 -0
  346. package/dist/release/prepared-ref.d.ts.map +1 -0
  347. package/dist/release/prepared-ref.js +131 -0
  348. package/dist/release/prepared-ref.js.map +1 -0
  349. package/dist/release/prepared-store.d.ts +90 -0
  350. package/dist/release/prepared-store.d.ts.map +1 -0
  351. package/dist/release/prepared-store.js +339 -0
  352. package/dist/release/prepared-store.js.map +1 -0
  353. package/dist/release/prepared.d.ts +172 -0
  354. package/dist/release/prepared.d.ts.map +1 -0
  355. package/dist/release/prepared.js +268 -0
  356. package/dist/release/prepared.js.map +1 -0
  357. package/dist/release/staging.d.ts +31 -0
  358. package/dist/release/staging.d.ts.map +1 -0
  359. package/dist/release/staging.js +218 -0
  360. package/dist/release/staging.js.map +1 -0
  361. package/dist/resolve/authored.d.ts +53 -0
  362. package/dist/resolve/authored.d.ts.map +1 -0
  363. package/dist/resolve/authored.js +55 -0
  364. package/dist/resolve/authored.js.map +1 -0
  365. package/dist/resolve/encode.d.ts +3 -0
  366. package/dist/resolve/encode.d.ts.map +1 -0
  367. package/dist/resolve/encode.js +21 -0
  368. package/dist/resolve/encode.js.map +1 -0
  369. package/dist/resolve/errors.d.ts +7 -0
  370. package/dist/resolve/errors.d.ts.map +1 -0
  371. package/dist/resolve/errors.js +17 -0
  372. package/dist/resolve/errors.js.map +1 -0
  373. package/dist/resolve/facts.d.ts +12 -0
  374. package/dist/resolve/facts.d.ts.map +1 -0
  375. package/dist/resolve/facts.js +18 -0
  376. package/dist/resolve/facts.js.map +1 -0
  377. package/dist/resolve/resolve.d.ts +10 -0
  378. package/dist/resolve/resolve.d.ts.map +1 -0
  379. package/dist/resolve/resolve.js +242 -0
  380. package/dist/resolve/resolve.js.map +1 -0
  381. package/dist/store.d.ts +11 -0
  382. package/dist/store.d.ts.map +1 -0
  383. package/dist/store.js +9 -0
  384. package/dist/store.js.map +1 -0
  385. package/examples/README.md +20 -30
  386. package/examples/github-release/release.config.json +11 -18
  387. package/examples/homebrew-tap/README.md +11 -0
  388. package/examples/homebrew-tap/release.config.json +40 -28
  389. package/examples/multi-target/release.config.json +28 -53
  390. package/examples/npm-first-publish/release.config.json +23 -25
  391. package/examples/npm-only/release.config.json +22 -30
  392. package/examples/portable-cli/README.md +17 -0
  393. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-arm64 +1 -0
  394. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-x64 +1 -0
  395. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-arm64 +1 -0
  396. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-x64 +1 -0
  397. package/examples/portable-cli/artifacts/portable-example-0.1.0-windows-x64.exe +1 -0
  398. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_10_15_x86_64.whl +1 -0
  399. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_11_0_arm64.whl +1 -0
  400. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_aarch64.whl +1 -0
  401. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_x86_64.whl +1 -0
  402. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-win_amd64.whl +1 -0
  403. package/examples/portable-cli/package.json +9 -0
  404. package/examples/portable-cli/release.config.json +53 -0
  405. package/examples/portable-cli/src/cli.ts +3 -0
  406. package/examples/pypi-registry/README.md +8 -0
  407. package/examples/scoop-bucket/README.md +10 -0
  408. package/examples/scoop-bucket/release.config.json +40 -30
  409. package/package.json +73 -154
  410. package/src/api/api.ts +365 -0
  411. package/src/api/errors.ts +36 -0
  412. package/src/api/input.ts +92 -0
  413. package/src/api/runtime.ts +14 -0
  414. package/src/api/types.ts +103 -0
  415. package/src/capabilities/bun-targets.ts +2 -0
  416. package/src/capabilities/field-ownership.ts +60 -0
  417. package/src/capabilities/module.ts +158 -0
  418. package/src/capabilities/registry.ts +333 -0
  419. package/src/config/config.ts +48 -0
  420. package/src/correction/coordinator.ts +336 -0
  421. package/src/correction/index.ts +2 -0
  422. package/src/correction/intent.ts +172 -0
  423. package/src/drivers/archive.ts +111 -0
  424. package/src/drivers/contain.ts +20 -0
  425. package/src/drivers/environment.ts +28 -0
  426. package/src/drivers/errors.ts +6 -0
  427. package/src/drivers/glob.ts +137 -0
  428. package/src/drivers/process.ts +339 -0
  429. package/src/drivers/python-wheel.ts +145 -0
  430. package/src/drivers/redact.ts +31 -0
  431. package/src/drivers/seccomp-helper-source.ts +121 -0
  432. package/src/drivers/utils.ts +10 -0
  433. package/src/drivers/workspace.ts +46 -0
  434. package/src/extensions/provider-adapter.ts +99 -0
  435. package/src/host.ts +140 -0
  436. package/src/index.ts +64 -0
  437. package/src/model/artifact-collection.ts +237 -0
  438. package/src/model/authority.ts +116 -0
  439. package/src/model/bun-targets.ts +34 -0
  440. package/src/model/canonical.ts +205 -0
  441. package/src/model/catalog.ts +220 -0
  442. package/src/model/digest.ts +172 -0
  443. package/src/model/errors.ts +6 -0
  444. package/src/model/primitives.ts +37 -0
  445. package/src/model/pypi.ts +30 -0
  446. package/src/model/python-distribution.ts +360 -0
  447. package/src/model/secret-patterns.ts +11 -0
  448. package/src/operation-journal/authority.ts +162 -0
  449. package/src/operation-journal/aws/deadline.ts +41 -0
  450. package/src/operation-journal/aws/oidc.ts +439 -0
  451. package/src/operation-journal/aws/policy.ts +491 -0
  452. package/src/operation-journal/aws/s3-boundary.ts +562 -0
  453. package/src/operation-journal/aws.ts +60 -0
  454. package/src/operation-journal/canonical.ts +373 -0
  455. package/src/operation-journal/model.ts +301 -0
  456. package/src/operation-journal/reducer.ts +112 -0
  457. package/src/operation-journal/s3.ts +884 -0
  458. package/src/operation-journal.ts +51 -0
  459. package/src/platform/bun.ts +38 -0
  460. package/src/platform/credentials.ts +1151 -0
  461. package/src/platform/host-support.ts +4 -0
  462. package/src/platform/node.ts +38 -0
  463. package/src/platform/release-runtime.ts +47 -0
  464. package/src/platform/services.ts +57 -0
  465. package/src/platform/source-observer.ts +193 -0
  466. package/src/provider-sdk.ts +48 -0
  467. package/src/publication/adapter.ts +132 -0
  468. package/src/publication/authority.ts +397 -0
  469. package/src/publication/catalog-git.ts +603 -0
  470. package/src/publication/claim.ts +51 -0
  471. package/src/publication/coordinator.ts +578 -0
  472. package/src/publication/github.ts +1022 -0
  473. package/src/publication/http.ts +101 -0
  474. package/src/publication/index.ts +4 -0
  475. package/src/publication/npm.ts +525 -0
  476. package/src/publication/profiles.ts +94 -0
  477. package/src/publication/publisher.ts +130 -0
  478. package/src/publication/pypi.ts +463 -0
  479. package/src/publication/recovery.ts +349 -0
  480. package/src/publication/report.ts +628 -0
  481. package/src/recipes/config.ts +395 -0
  482. package/src/release/capabilities.ts +460 -0
  483. package/src/release/compiler.ts +28 -0
  484. package/src/release/config.ts +12 -0
  485. package/src/release/context.ts +223 -0
  486. package/src/release/graph.ts +866 -0
  487. package/src/release/inspect.ts +83 -0
  488. package/src/release/prepare.ts +1329 -0
  489. package/src/release/prepared-ref.ts +193 -0
  490. package/src/release/prepared-store.ts +378 -0
  491. package/src/release/prepared.ts +299 -0
  492. package/src/release/staging.ts +257 -0
  493. package/src/resolve/authored.ts +64 -0
  494. package/src/resolve/encode.ts +22 -0
  495. package/src/resolve/errors.ts +15 -0
  496. package/src/resolve/facts.ts +18 -0
  497. package/src/resolve/resolve.ts +328 -0
  498. package/src/store.ts +28 -0
  499. package/templates/README.md +55 -72
  500. package/templates/bun-cli-github/README.md +7 -9
  501. package/templates/bun-cli-github/release.config.json +35 -73
  502. package/templates/github-actions/release.yml +74 -0
  503. package/templates/github-actions/reviewed-release.yml +115 -0
  504. package/templates/multi-target-homebrew/README.md +10 -0
  505. package/templates/multi-target-homebrew/release.config.json +43 -60
  506. package/templates/multi-target-scoop/README.md +10 -0
  507. package/templates/multi-target-scoop/release.config.json +43 -62
  508. package/templates/npm-github/release.config.json +25 -38
  509. package/templates/npm-github/reviewed-release.config.json +37 -0
  510. package/templates/npm-only/README.md +10 -0
  511. package/templates/npm-only/release.config.json +15 -30
  512. package/templates/portable-cli/README.md +13 -0
  513. package/templates/portable-cli/release.config.json +53 -0
  514. package/dist/artifacts/adapter.d.ts +0 -39
  515. package/dist/artifacts/adapter.d.ts.map +0 -1
  516. package/dist/artifacts/adapter.js +0 -23
  517. package/dist/artifacts/adapter.js.map +0 -1
  518. package/dist/artifacts/registry.d.ts +0 -21
  519. package/dist/artifacts/registry.d.ts.map +0 -1
  520. package/dist/artifacts/registry.js +0 -21
  521. package/dist/artifacts/registry.js.map +0 -1
  522. package/dist/config/errors.d.ts +0 -24
  523. package/dist/config/errors.d.ts.map +0 -1
  524. package/dist/config/errors.js +0 -19
  525. package/dist/config/errors.js.map +0 -1
  526. package/dist/config/load.d.ts +0 -9
  527. package/dist/config/load.d.ts.map +0 -1
  528. package/dist/config/load.js +0 -29
  529. package/dist/config/load.js.map +0 -1
  530. package/dist/config/schema.d.ts +0 -12
  531. package/dist/config/schema.d.ts.map +0 -1
  532. package/dist/config/schema.js +0 -19
  533. package/dist/config/schema.js.map +0 -1
  534. package/dist/domain/artifact.d.ts +0 -118
  535. package/dist/domain/artifact.d.ts.map +0 -1
  536. package/dist/domain/artifact.js +0 -197
  537. package/dist/domain/artifact.js.map +0 -1
  538. package/dist/domain/evidence.d.ts +0 -59
  539. package/dist/domain/evidence.d.ts.map +0 -1
  540. package/dist/domain/evidence.js +0 -51
  541. package/dist/domain/evidence.js.map +0 -1
  542. package/dist/domain/operation.d.ts +0 -143
  543. package/dist/domain/operation.d.ts.map +0 -1
  544. package/dist/domain/operation.js +0 -198
  545. package/dist/domain/operation.js.map +0 -1
  546. package/dist/domain/release.d.ts +0 -93
  547. package/dist/domain/release.d.ts.map +0 -1
  548. package/dist/domain/release.js +0 -82
  549. package/dist/domain/release.js.map +0 -1
  550. package/dist/domain/remote-state.d.ts +0 -58
  551. package/dist/domain/remote-state.d.ts.map +0 -1
  552. package/dist/domain/remote-state.js +0 -55
  553. package/dist/domain/remote-state.js.map +0 -1
  554. package/dist/domain/target.d.ts +0 -148
  555. package/dist/domain/target.d.ts.map +0 -1
  556. package/dist/domain/target.js +0 -151
  557. package/dist/domain/target.js.map +0 -1
  558. package/dist/host/host.d.ts +0 -32
  559. package/dist/host/host.d.ts.map +0 -1
  560. package/dist/host/host.js +0 -24
  561. package/dist/host/host.js.map +0 -1
  562. package/dist/host/http-live.d.ts +0 -6
  563. package/dist/host/http-live.d.ts.map +0 -1
  564. package/dist/host/http-live.js +0 -86
  565. package/dist/host/http-live.js.map +0 -1
  566. package/dist/host/http.d.ts +0 -43
  567. package/dist/host/http.d.ts.map +0 -1
  568. package/dist/host/http.js +0 -59
  569. package/dist/host/http.js.map +0 -1
  570. package/dist/host/platform.d.ts +0 -10
  571. package/dist/host/platform.d.ts.map +0 -1
  572. package/dist/host/platform.js +0 -114
  573. package/dist/host/platform.js.map +0 -1
  574. package/dist/host/test.d.ts +0 -23
  575. package/dist/host/test.d.ts.map +0 -1
  576. package/dist/host/test.js +0 -222
  577. package/dist/host/test.js.map +0 -1
  578. package/dist/internal/workspace-path.d.ts +0 -15
  579. package/dist/internal/workspace-path.d.ts.map +0 -1
  580. package/dist/internal/workspace-path.js +0 -36
  581. package/dist/internal/workspace-path.js.map +0 -1
  582. package/dist/planner/artifact-inventory.d.ts +0 -9
  583. package/dist/planner/artifact-inventory.d.ts.map +0 -1
  584. package/dist/planner/artifact-inventory.js +0 -86
  585. package/dist/planner/artifact-inventory.js.map +0 -1
  586. package/dist/planner/create-release-plan.d.ts +0 -5
  587. package/dist/planner/create-release-plan.d.ts.map +0 -1
  588. package/dist/planner/create-release-plan.js +0 -25
  589. package/dist/planner/create-release-plan.js.map +0 -1
  590. package/dist/planner/errors.d.ts +0 -67
  591. package/dist/planner/errors.d.ts.map +0 -1
  592. package/dist/planner/errors.js +0 -58
  593. package/dist/planner/errors.js.map +0 -1
  594. package/dist/planner/evidence-recorder.d.ts +0 -28
  595. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  596. package/dist/planner/evidence-recorder.js +0 -362
  597. package/dist/planner/evidence-recorder.js.map +0 -1
  598. package/dist/planner/executor.d.ts +0 -58
  599. package/dist/planner/executor.d.ts.map +0 -1
  600. package/dist/planner/executor.js +0 -147
  601. package/dist/planner/executor.js.map +0 -1
  602. package/dist/planner/normalize-release.d.ts +0 -19
  603. package/dist/planner/normalize-release.d.ts.map +0 -1
  604. package/dist/planner/normalize-release.js +0 -342
  605. package/dist/planner/normalize-release.js.map +0 -1
  606. package/dist/planner/reconcile.d.ts +0 -17
  607. package/dist/planner/reconcile.d.ts.map +0 -1
  608. package/dist/planner/reconcile.js +0 -259
  609. package/dist/planner/reconcile.js.map +0 -1
  610. package/dist/planner/render-plan.d.ts +0 -15
  611. package/dist/planner/render-plan.d.ts.map +0 -1
  612. package/dist/planner/render-plan.js +0 -231
  613. package/dist/planner/render-plan.js.map +0 -1
  614. package/dist/targets/adapter-helpers.d.ts +0 -79
  615. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  616. package/dist/targets/adapter-helpers.js +0 -194
  617. package/dist/targets/adapter-helpers.js.map +0 -1
  618. package/dist/targets/adapter.d.ts +0 -17
  619. package/dist/targets/adapter.d.ts.map +0 -1
  620. package/dist/targets/adapter.js +0 -2
  621. package/dist/targets/adapter.js.map +0 -1
  622. package/dist/targets/github-release.d.ts +0 -25
  623. package/dist/targets/github-release.d.ts.map +0 -1
  624. package/dist/targets/github-release.js +0 -82
  625. package/dist/targets/github-release.js.map +0 -1
  626. package/dist/targets/github.d.ts +0 -11
  627. package/dist/targets/github.d.ts.map +0 -1
  628. package/dist/targets/github.js +0 -117
  629. package/dist/targets/github.js.map +0 -1
  630. package/dist/targets/homebrew.d.ts +0 -11
  631. package/dist/targets/homebrew.d.ts.map +0 -1
  632. package/dist/targets/homebrew.js +0 -210
  633. package/dist/targets/homebrew.js.map +0 -1
  634. package/dist/targets/live.d.ts +0 -5
  635. package/dist/targets/live.d.ts.map +0 -1
  636. package/dist/targets/live.js +0 -50
  637. package/dist/targets/live.js.map +0 -1
  638. package/dist/targets/npm.d.ts +0 -10
  639. package/dist/targets/npm.d.ts.map +0 -1
  640. package/dist/targets/npm.js +0 -112
  641. package/dist/targets/npm.js.map +0 -1
  642. package/dist/targets/pypi.d.ts +0 -11
  643. package/dist/targets/pypi.d.ts.map +0 -1
  644. package/dist/targets/pypi.js +0 -141
  645. package/dist/targets/pypi.js.map +0 -1
  646. package/dist/targets/registry.d.ts +0 -25
  647. package/dist/targets/registry.d.ts.map +0 -1
  648. package/dist/targets/registry.js +0 -34
  649. package/dist/targets/registry.js.map +0 -1
  650. package/dist/targets/scoop.d.ts +0 -11
  651. package/dist/targets/scoop.d.ts.map +0 -1
  652. package/dist/targets/scoop.js +0 -88
  653. package/dist/targets/scoop.js.map +0 -1
  654. package/dist/types/effect-internal.d.ts +0 -5
  655. package/dist/types/effect-internal.d.ts.map +0 -1
  656. package/dist/types/effect-internal.js +0 -2
  657. package/dist/types/effect-internal.js.map +0 -1
  658. package/dist/workflows/config.d.ts +0 -202
  659. package/dist/workflows/config.d.ts.map +0 -1
  660. package/dist/workflows/config.js +0 -420
  661. package/dist/workflows/config.js.map +0 -1
  662. package/dist/workflows/diagnostics.d.ts +0 -62
  663. package/dist/workflows/diagnostics.d.ts.map +0 -1
  664. package/dist/workflows/diagnostics.js +0 -530
  665. package/dist/workflows/diagnostics.js.map +0 -1
  666. package/dist/workflows/distribution.d.ts +0 -25
  667. package/dist/workflows/distribution.d.ts.map +0 -1
  668. package/dist/workflows/distribution.js +0 -24
  669. package/dist/workflows/distribution.js.map +0 -1
  670. package/dist/workflows/evidence.d.ts +0 -17
  671. package/dist/workflows/evidence.d.ts.map +0 -1
  672. package/dist/workflows/evidence.js +0 -32
  673. package/dist/workflows/evidence.js.map +0 -1
  674. package/dist/workflows/index.d.ts +0 -8
  675. package/dist/workflows/index.d.ts.map +0 -1
  676. package/dist/workflows/index.js +0 -7
  677. package/dist/workflows/index.js.map +0 -1
  678. package/dist/workflows/init.d.ts +0 -84
  679. package/dist/workflows/init.d.ts.map +0 -1
  680. package/dist/workflows/init.js +0 -487
  681. package/dist/workflows/init.js.map +0 -1
  682. package/dist/workflows/live.d.ts +0 -9
  683. package/dist/workflows/live.d.ts.map +0 -1
  684. package/dist/workflows/live.js +0 -7
  685. package/dist/workflows/live.js.map +0 -1
  686. package/dist/workflows/options.d.ts +0 -30
  687. package/dist/workflows/options.d.ts.map +0 -1
  688. package/dist/workflows/options.js +0 -16
  689. package/dist/workflows/options.js.map +0 -1
  690. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  691. package/examples/non-strict-skips/release.config.json +0 -31
  692. package/examples/pypi-registry/release.config.json +0 -31
  693. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  694. package/templates/github-actions/plan-only.yml +0 -33
  695. package/templates/github-actions/trusted-publishing.yml +0 -61
@@ -0,0 +1,168 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Schema from "effect/Schema";
4
+ import { Sha256Digest } from "../model/digest.js";
5
+ import { NonEmptyName, SafeRelativePath, Version, WorkspaceRoot } from "../model/primitives.js";
6
+ const optional = Schema.optionalKey;
7
+ export class VerifiedSource extends Schema.Class("VerifiedSource")({
8
+ commit: NonEmptyName,
9
+ tree: NonEmptyName,
10
+ clean: Schema.Literal(true),
11
+ packageManifestPath: SafeRelativePath,
12
+ packageManifestDigest: Sha256Digest,
13
+ repository: optional(Schema.NonEmptyString),
14
+ headTags: Schema.Array(NonEmptyName)
15
+ }) {
16
+ }
17
+ export class VerifiedPackage extends Schema.Class("VerifiedPackage")({
18
+ name: NonEmptyName,
19
+ version: Version,
20
+ path: SafeRelativePath,
21
+ digest: Sha256Digest,
22
+ repository: optional(Schema.NonEmptyString)
23
+ }) {
24
+ }
25
+ export class VerifiedReleaseContext extends Schema.Class("VerifiedReleaseContext")({
26
+ workspace: WorkspaceRoot,
27
+ source: VerifiedSource,
28
+ package: VerifiedPackage
29
+ }) {
30
+ }
31
+ export class StagingEntry extends Schema.Class("StagingEntry")({
32
+ path: SafeRelativePath,
33
+ kind: Schema.Literals(["file", "executable", "directory", "symlink"]),
34
+ mode: Schema.Number.check(Schema.makeFilter((value) => Number.isSafeInteger(value) && value >= 0 && value <= 0o777
35
+ ? undefined
36
+ : "Staging entry mode must be a portable permission mask.")),
37
+ size: Schema.Number.check(Schema.makeFilter((value) => Number.isSafeInteger(value) && value >= 0
38
+ ? undefined
39
+ : "Staging entry size must be a nonnegative safe integer.")),
40
+ digest: Sha256Digest
41
+ }) {
42
+ }
43
+ /** Canonical path/type/digest manifest of materialized private bytes. */
44
+ export class StagingSnapshot extends Schema.Class("StagingSnapshot")({
45
+ entries: Schema.Array(StagingEntry),
46
+ digest: Sha256Digest
47
+ }) {
48
+ }
49
+ /** A non-Git input admitted explicitly and copied into private staging. */
50
+ export class ExplicitInputSnapshot extends Schema.Class("ExplicitInputSnapshot")({
51
+ id: Schema.NonEmptyString,
52
+ path: SafeRelativePath,
53
+ kind: Schema.Literals(["file", "directory"]),
54
+ size: Schema.Number.check(Schema.makeFilter((value) => Number.isSafeInteger(value) && value >= 0
55
+ ? undefined
56
+ : "Explicit input size must be a nonnegative safe integer.")),
57
+ digest: Sha256Digest,
58
+ /** The closed operation that copied or derived these bytes. */
59
+ materializer: Schema.NonEmptyString,
60
+ /** Exact source/tool digests that governed materialization. */
61
+ materializationBasis: Schema.Array(Sha256Digest)
62
+ }) {
63
+ }
64
+ export class SourceMaterializationError extends Schema.TaggedErrorClass()("SourceMaterializationError", {
65
+ field: Schema.String,
66
+ reason: Schema.String
67
+ }) {
68
+ }
69
+ export class ReleaseContextError extends Schema.TaggedErrorClass()("ReleaseContextError", {
70
+ field: Schema.String, reason: Schema.String
71
+ }) {
72
+ }
73
+ export class SourceObserver extends Context.Service()("SourceObserver") {
74
+ }
75
+ const runtimeFailure = (field, cause) => ReleaseContextError.make({
76
+ field, reason: cause instanceof Error ? cause.message : String(cause)
77
+ });
78
+ const command = (runtime, workspace, argv, field) => runtime.command(workspace, argv).pipe(Effect.mapError((cause) => runtimeFailure(field, cause)));
79
+ const repositoryCoordinate = (value) => {
80
+ if (typeof value !== "string")
81
+ return undefined;
82
+ const trimmed = value.trim().replace(/\.git$/u, "");
83
+ const match = /(?:github\.com[/:]|^)([A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+)$/u.exec(trimmed);
84
+ return match?.[1];
85
+ };
86
+ const jsonObject = (bytes, path) => {
87
+ try {
88
+ const value = JSON.parse(new TextDecoder().decode(bytes));
89
+ if (typeof value !== "object" || value === null || Array.isArray(value))
90
+ throw new Error("manifest root must be an object");
91
+ return value;
92
+ }
93
+ catch (cause) {
94
+ throw new Error(`${path} is not valid JSON: ${cause instanceof Error ? cause.message : String(cause)}`);
95
+ }
96
+ };
97
+ /** Shared Git/package observation used by both host entrypoints. */
98
+ export const makeSourceObserver = (runtime) => ({
99
+ observe: Effect.fn("observeVerifiedReleaseContext")(function* (workspace, packageManifestPath, expectedCommit) {
100
+ const canonical = yield* runtime.canonicalRoot(workspace).pipe(Effect.mapError((cause) => runtimeFailure("workspace", cause)));
101
+ const root = WorkspaceRoot.make(canonical);
102
+ const commit = yield* command(runtime, workspace, ["rev-parse", "HEAD"], "source.commit").pipe(Effect.map((value) => value.trim()));
103
+ const tree = yield* command(runtime, workspace, ["rev-parse", "HEAD^{tree}"], "source.tree").pipe(Effect.map((value) => value.trim()));
104
+ const status = yield* command(runtime, workspace, ["status", "--porcelain=v1", "--untracked-files=no"], "source.clean");
105
+ if (status.trim().length > 0)
106
+ return yield* new ReleaseContextError({
107
+ field: "source.clean", reason: "Preparation requires a clean tracked source tree; untracked bytes require explicit input declaration."
108
+ });
109
+ const bytes = yield* runtime.read(workspace, packageManifestPath).pipe(Effect.mapError((cause) => runtimeFailure("package.manifest", cause)));
110
+ let manifest;
111
+ try {
112
+ manifest = jsonObject(bytes, packageManifestPath);
113
+ }
114
+ catch (cause) {
115
+ return yield* new ReleaseContextError({ field: "package.manifest", reason: cause instanceof Error ? cause.message : String(cause) });
116
+ }
117
+ const name = typeof manifest.name === "string" && manifest.name.trim().length > 0 ? manifest.name.trim() : undefined;
118
+ const version = typeof manifest.version === "string" && manifest.version.trim().length > 0 ? manifest.version.trim() : undefined;
119
+ if (name === undefined)
120
+ return yield* new ReleaseContextError({ field: "package.name", reason: "Manifest name is missing or empty." });
121
+ if (version === undefined)
122
+ return yield* new ReleaseContextError({ field: "package.version", reason: "Manifest version is missing or empty." });
123
+ const digest = yield* runtime.digest(bytes).pipe(Effect.mapError((cause) => runtimeFailure("package.manifestDigest", cause)));
124
+ const tags = yield* command(runtime, workspace, ["tag", "--points-at", "HEAD"], "source.headTags").pipe(Effect.map((value) => value.split("\n").map((tag) => tag.trim()).filter((tag) => tag.length > 0).sort((a, b) => a < b ? -1 : a > b ? 1 : 0)));
125
+ const remote = yield* command(runtime, workspace, ["remote", "get-url", "origin"], "source.repository").pipe(Effect.map((value) => repositoryCoordinate(value))).pipe(Effect.orElseSucceed(() => undefined));
126
+ const manifestRepository = repositoryCoordinate(manifest.repository);
127
+ if (remote !== undefined && manifestRepository !== undefined && remote !== manifestRepository) {
128
+ return yield* new ReleaseContextError({
129
+ field: "source.repository",
130
+ reason: `Git remote ${remote} disagrees with manifest repository ${manifestRepository}.`
131
+ });
132
+ }
133
+ const repository = remote ?? manifestRepository;
134
+ const source = VerifiedSource.make({
135
+ commit: NonEmptyName.make(commit), tree: NonEmptyName.make(tree), clean: true,
136
+ packageManifestPath, packageManifestDigest: digest, headTags: tags.map((tag) => NonEmptyName.make(tag)),
137
+ ...(repository === undefined ? {} : { repository })
138
+ });
139
+ const context = VerifiedReleaseContext.make({
140
+ workspace: root, source,
141
+ package: VerifiedPackage.make({ name: NonEmptyName.make(name), version: Version.make(version),
142
+ path: packageManifestPath, digest,
143
+ ...(manifestRepository === undefined ? {} : { repository: manifestRepository }) })
144
+ });
145
+ return yield* verifySource(context, expectedCommit);
146
+ }),
147
+ materialize: Effect.fn("materializeVerifiedSource")((workspace, source, destination) => runtime.materialize(workspace, source, destination).pipe(Effect.mapError((cause) => cause instanceof SourceMaterializationError
148
+ ? cause
149
+ : new SourceMaterializationError({
150
+ field: "source.materialization",
151
+ reason: cause instanceof Error ? cause.message : String(cause)
152
+ }))))
153
+ });
154
+ export const verifySource = Effect.fn("verifySource")(function* (context, expectedCommit) {
155
+ if (expectedCommit !== undefined && context.source.commit !== expectedCommit) {
156
+ return yield* new ReleaseContextError({
157
+ field: "source.commit",
158
+ reason: `Expected ${expectedCommit}, observed ${context.source.commit}.`
159
+ });
160
+ }
161
+ if (context.source.clean !== true) {
162
+ return yield* new ReleaseContextError({
163
+ field: "source.clean", reason: "Preparation requires a clean verified source."
164
+ });
165
+ }
166
+ return context;
167
+ });
168
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/release/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { AnonymousAuthStrategy, ExternalTrustedPublishingAuthStrategy, TokenAuthStrategy, TrustedPublishingAuthStrategy } from "../model/authority.js";
3
+ import { ArtifactCollectionContract, ArtifactCollectionSelector } from "../model/artifact-collection.js";
4
+ import { CatalogRenderSource } from "../model/catalog.js";
5
+ import { PyPiRepository, type NpmAuthentication as NpmAuthenticationValue, type PyPiAuthentication as PyPiAuthenticationValue } from "../recipes/config.js";
6
+ declare const OutputDeclaration_base: Schema.Class<OutputDeclaration, Schema.Struct<{
7
+ readonly id: Schema.brand<Schema.NonEmptyString, "OutputId">;
8
+ readonly path: Schema.brand<Schema.String, "SafeRelativePath">;
9
+ readonly kind: Schema.Literals<readonly ["file", "executable", "archive", "digest", "package"]>;
10
+ readonly mediaType: Schema.optionalKey<Schema.NonEmptyString>;
11
+ }>, {}>;
12
+ export declare class OutputDeclaration extends OutputDeclaration_base {
13
+ }
14
+ declare const GraphCommandCheck_base: Schema.Class<GraphCommandCheck, Schema.TaggedStruct<"GraphCommandCheck", {
15
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
16
+ readonly argv: Schema.NonEmptyArray<Schema.String>;
17
+ readonly cwd: Schema.brand<Schema.String, "SafeRelativePath">;
18
+ readonly inputs: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
19
+ }>, {}>;
20
+ export declare class GraphCommandCheck extends GraphCommandCheck_base {
21
+ }
22
+ declare const GraphCommandArtifact_base: Schema.Class<GraphCommandArtifact, Schema.TaggedStruct<"GraphCommandArtifact", {
23
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
24
+ readonly argv: Schema.NonEmptyArray<Schema.String>;
25
+ readonly cwd: Schema.brand<Schema.String, "SafeRelativePath">;
26
+ readonly inputs: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
27
+ readonly outputs: Schema.NonEmptyArray<typeof OutputDeclaration>;
28
+ }>, {}>;
29
+ export declare class GraphCommandArtifact extends GraphCommandArtifact_base {
30
+ }
31
+ declare const GraphCommandCollection_base: Schema.Class<GraphCommandCollection, Schema.TaggedStruct<"GraphCommandCollection", {
32
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
33
+ readonly argv: Schema.NonEmptyArray<Schema.String>;
34
+ readonly cwd: Schema.brand<Schema.String, "SafeRelativePath">;
35
+ readonly inputs: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
36
+ readonly collection: typeof ArtifactCollectionContract;
37
+ }>, {}>;
38
+ export declare class GraphCommandCollection extends GraphCommandCollection_base {
39
+ }
40
+ declare const GraphNpmPackageBuild_base: Schema.Class<GraphNpmPackageBuild, Schema.TaggedStruct<"GraphNpmPackageBuild", {
41
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
42
+ readonly argv: Schema.NonEmptyArray<Schema.String>;
43
+ readonly cwd: Schema.brand<Schema.String, "SafeRelativePath">;
44
+ readonly inputs: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
45
+ readonly outputRoots: Schema.NonEmptyArray<Schema.brand<Schema.String, "SafeRelativePath">>;
46
+ }>, {}>;
47
+ /** Package-scoped build whose directory outputs are consumed only by npm pack. */
48
+ export declare class GraphNpmPackageBuild extends GraphNpmPackageBuild_base {
49
+ }
50
+ declare const GraphArchive_base: Schema.Class<GraphArchive, Schema.TaggedStruct<"GraphArchive", {
51
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
52
+ readonly inputs: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
53
+ readonly output: typeof OutputDeclaration;
54
+ readonly format: Schema.Literals<readonly ["tar.gz", "zip"]>;
55
+ }>, {}>;
56
+ export declare class GraphArchive extends GraphArchive_base {
57
+ }
58
+ declare const GraphChecksum_base: Schema.Class<GraphChecksum, Schema.TaggedStruct<"GraphChecksum", {
59
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
60
+ readonly inputs: Schema.NonEmptyArray<Schema.brand<Schema.NonEmptyString, "OutputId">>;
61
+ readonly output: typeof OutputDeclaration;
62
+ readonly algorithm: Schema.Literals<readonly ["sha256", "sha512"]>;
63
+ }>, {}>;
64
+ export declare class GraphChecksum extends GraphChecksum_base {
65
+ }
66
+ declare const GraphCatalogRender_base: Schema.Class<GraphCatalogRender, Schema.TaggedStruct<"GraphCatalogRender", {
67
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
68
+ readonly inputs: Schema.NonEmptyArray<Schema.brand<Schema.NonEmptyString, "OutputId">>;
69
+ readonly output: typeof OutputDeclaration;
70
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
71
+ readonly renderer: Schema.Union<readonly [typeof import("../model/catalog.js").HomebrewRenderer, typeof import("../model/catalog.js").ScoopRenderer]>;
72
+ readonly sources: Schema.NonEmptyArray<typeof CatalogRenderSource>;
73
+ }>, {}>;
74
+ export declare class GraphCatalogRender extends GraphCatalogRender_base {
75
+ }
76
+ export declare const GraphPreparation: Schema.Union<readonly [typeof GraphCommandCheck, typeof GraphCommandArtifact, typeof GraphCommandCollection, typeof GraphNpmPackageBuild, typeof GraphArchive, typeof GraphChecksum, typeof GraphCatalogRender]>;
77
+ export type GraphPreparation = typeof GraphPreparation.Type;
78
+ declare const PublicationAuthorityIntent_base: Schema.Class<PublicationAuthorityIntent, Schema.Struct<{
79
+ readonly subject: Schema.brand<Schema.NonEmptyString, "SubjectId">;
80
+ readonly provider: Schema.brand<Schema.NonEmptyString, "ProviderId">;
81
+ readonly audience: Schema.brand<Schema.NonEmptyString, "CanonicalAudience">;
82
+ readonly observationStrategies: Schema.NonEmptyArray<Schema.Union<readonly [typeof AnonymousAuthStrategy, typeof TokenAuthStrategy, Schema.Union<readonly [typeof TrustedPublishingAuthStrategy, typeof ExternalTrustedPublishingAuthStrategy]>]>>;
83
+ readonly publishStrategy: Schema.Union<readonly [typeof AnonymousAuthStrategy, typeof TokenAuthStrategy, Schema.Union<readonly [typeof TrustedPublishingAuthStrategy, typeof ExternalTrustedPublishingAuthStrategy]>]>;
84
+ }>, {}>;
85
+ /** Safe, durable authority intent resolved before a publication enters the graph. */
86
+ export declare class PublicationAuthorityIntent extends PublicationAuthorityIntent_base {
87
+ }
88
+ declare const GraphNpmPublication_base: Schema.Class<GraphNpmPublication, Schema.TaggedStruct<"GraphNpmPublication", {
89
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
90
+ readonly packageArtifact: Schema.brand<Schema.NonEmptyString, "OutputId">;
91
+ readonly packageName: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
92
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
93
+ readonly registryUrl: Schema.brand<Schema.NonEmptyString, "CanonicalNpmRegistryEndpoint">;
94
+ readonly distTag: Schema.brand<Schema.NonEmptyString, "NpmDistTag">;
95
+ readonly access: Schema.Literals<readonly ["public", "restricted"]>;
96
+ readonly authentication: Schema.Union<readonly [typeof import("../recipes/config.js").NpmTokenAuthentication, typeof import("../recipes/config.js").NpmTrustedPublishingAuthentication]>;
97
+ readonly provenance: Schema.Literals<readonly ["automatic", "required", "disabled"]>;
98
+ readonly authority: typeof PublicationAuthorityIntent;
99
+ }>, {}>;
100
+ export declare class GraphNpmPublication extends GraphNpmPublication_base {
101
+ }
102
+ declare const GraphGitHubPublication_base: Schema.Class<GraphGitHubPublication, Schema.TaggedStruct<"GraphGitHubPublication", {
103
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
104
+ readonly repository: Schema.NonEmptyString;
105
+ readonly tag: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
106
+ readonly title: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
107
+ readonly draft: Schema.Boolean;
108
+ readonly prerelease: Schema.Boolean;
109
+ readonly body: Schema.optionalKey<Schema.String>;
110
+ readonly bodyArtifact: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "OutputId">>;
111
+ readonly assetIds: Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>;
112
+ readonly assetCollections: Schema.$Array<typeof ArtifactCollectionSelector>;
113
+ readonly authority: typeof PublicationAuthorityIntent;
114
+ }>, {}>;
115
+ export declare class GraphGitHubPublication extends GraphGitHubPublication_base {
116
+ }
117
+ declare const GraphPyPiDistribution_base: Schema.Class<GraphPyPiDistribution, Schema.Struct<{
118
+ readonly artifactId: Schema.brand<Schema.NonEmptyString, "OutputId">;
119
+ readonly filename: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
120
+ readonly authority: typeof PublicationAuthorityIntent;
121
+ }>, {}>;
122
+ export declare class GraphPyPiDistribution extends GraphPyPiDistribution_base {
123
+ }
124
+ declare const GraphPyPiPublication_base: Schema.Class<GraphPyPiPublication, Schema.TaggedStruct<"GraphPyPiPublication", {
125
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
126
+ readonly project: Schema.brand<Schema.NonEmptyString, "PyPiProjectName">;
127
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
128
+ readonly repository: Schema.Literals<readonly ["pypi", "testpypi"]>;
129
+ readonly simpleBaseUrl: Schema.NonEmptyString;
130
+ readonly projectUrl: Schema.NonEmptyString;
131
+ readonly uploadUrl: Schema.NonEmptyString;
132
+ readonly authentication: Schema.Union<readonly [typeof import("../recipes/config.js").PyPiTokenAuthentication, typeof import("../recipes/config.js").PyPiExternalTrustedPublishingAuthentication]>;
133
+ readonly files: Schema.NonEmptyArray<typeof GraphPyPiDistribution>;
134
+ }>, {}>;
135
+ export declare class GraphPyPiPublication extends GraphPyPiPublication_base {
136
+ }
137
+ declare const GraphCatalogPublication_base: Schema.Class<GraphCatalogPublication, Schema.TaggedStruct<"GraphCatalogPublication", {
138
+ readonly id: Schema.brand<Schema.NonEmptyString, "OperationId">;
139
+ readonly catalogId: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
140
+ readonly targetArtifact: Schema.brand<Schema.NonEmptyString, "OutputId">;
141
+ readonly repository: Schema.brand<Schema.NonEmptyString, "GitHubRepositoryCoordinate">;
142
+ readonly branch: Schema.brand<Schema.NonEmptyString, "GitBranchName">;
143
+ readonly targetPath: Schema.brand<Schema.brand<Schema.String, "SafeRelativePath">, "CatalogRepositoryPath">;
144
+ readonly statePath: Schema.brand<Schema.brand<Schema.String, "SafeRelativePath">, "CatalogRepositoryPath">;
145
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
146
+ readonly sourceRepository: Schema.brand<Schema.NonEmptyString, "GitHubRepositoryCoordinate">;
147
+ readonly sourceTag: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
148
+ readonly renderer: Schema.Union<readonly [typeof import("../model/catalog.js").HomebrewRenderer, typeof import("../model/catalog.js").ScoopRenderer]>;
149
+ readonly sources: Schema.NonEmptyArray<typeof CatalogRenderSource>;
150
+ readonly authority: typeof PublicationAuthorityIntent;
151
+ }>, {}>;
152
+ export declare class GraphCatalogPublication extends GraphCatalogPublication_base {
153
+ }
154
+ export declare const GraphPublication: Schema.Union<readonly [typeof GraphNpmPublication, typeof GraphPyPiPublication, typeof GraphGitHubPublication, typeof GraphCatalogPublication]>;
155
+ export type GraphPublication = typeof GraphPublication.Type;
156
+ declare const CapabilityContribution_base: Schema.Class<CapabilityContribution, Schema.Struct<{
157
+ readonly artifacts: Schema.$Array<typeof OutputDeclaration>;
158
+ readonly preparations: Schema.$Array<Schema.Union<readonly [typeof GraphCommandCheck, typeof GraphCommandArtifact, typeof GraphCommandCollection, typeof GraphNpmPackageBuild, typeof GraphArchive, typeof GraphChecksum, typeof GraphCatalogRender]>>;
159
+ readonly publications: Schema.$Array<Schema.Union<readonly [typeof GraphNpmPublication, typeof GraphPyPiPublication, typeof GraphGitHubPublication, typeof GraphCatalogPublication]>>;
160
+ }>, {}>;
161
+ export declare class CapabilityContribution extends CapabilityContribution_base {
162
+ }
163
+ declare const ReleaseGraph_base: Schema.Class<ReleaseGraph, Schema.Struct<{
164
+ readonly artifacts: Schema.$Array<typeof OutputDeclaration>;
165
+ readonly collections: Schema.$Array<typeof ArtifactCollectionContract>;
166
+ readonly preparations: Schema.$Array<Schema.Union<readonly [typeof GraphCommandCheck, typeof GraphCommandArtifact, typeof GraphCommandCollection, typeof GraphNpmPackageBuild, typeof GraphArchive, typeof GraphChecksum, typeof GraphCatalogRender]>>;
167
+ readonly publications: Schema.$Array<Schema.Union<readonly [typeof GraphNpmPublication, typeof GraphPyPiPublication, typeof GraphGitHubPublication, typeof GraphCatalogPublication]>>;
168
+ }>, {}>;
169
+ export declare class ReleaseGraph extends ReleaseGraph_base {
170
+ }
171
+ declare const GraphLinkError_base: Schema.Class<GraphLinkError, Schema.TaggedStruct<"GraphLinkError", {
172
+ readonly kind: Schema.Literals<readonly ["duplicate", "missing", "cycle", "path", "reference"]>;
173
+ readonly value: Schema.String;
174
+ readonly reason: Schema.String;
175
+ }>, import("effect/Cause").YieldableError>;
176
+ export declare class GraphLinkError extends GraphLinkError_base {
177
+ }
178
+ /**
179
+ * Canonical registry authority includes the complete normalized base path.
180
+ * Query, fragment, and user-info components can never enter a credential
181
+ * audience.
182
+ */
183
+ export declare const canonicalizeRegistryUrl: (value: string) => string;
184
+ export interface NpmPublicationAuthorityInput {
185
+ readonly packageName: string;
186
+ readonly version: string;
187
+ readonly registryUrl: string;
188
+ readonly distTag: string;
189
+ readonly authentication: NpmAuthenticationValue;
190
+ readonly sourceCommit?: string;
191
+ }
192
+ /** Resolve npm auth once; no secret value enters the graph or prepared state. */
193
+ export declare const makeNpmPublicationAuthorityIntent: (input: NpmPublicationAuthorityInput) => PublicationAuthorityIntent;
194
+ export interface PyPiPublicationAuthorityInput {
195
+ readonly project: string;
196
+ readonly version: string;
197
+ readonly filename: string;
198
+ readonly repository: PyPiRepository;
199
+ readonly authentication: PyPiAuthenticationValue;
200
+ readonly sourceCommit?: string;
201
+ }
202
+ /** Exact per-file PyPI authority; OIDC remains external-host-owned. */
203
+ export declare const makePyPiPublicationAuthorityIntent: (input: PyPiPublicationAuthorityInput) => PublicationAuthorityIntent;
204
+ export declare const makeCatalogPublicationAuthorityIntent: (input: {
205
+ readonly repository: string;
206
+ readonly branch: string;
207
+ readonly targetPath: string;
208
+ readonly statePath: string;
209
+ readonly tokenEnv: string;
210
+ }) => PublicationAuthorityIntent;
211
+ export interface GitHubPublicationAuthorityInput {
212
+ readonly repository: string;
213
+ readonly tag: string;
214
+ readonly tokenEnv?: string;
215
+ }
216
+ /** Resolve GitHub auth once; anonymous observation is always attempted first. */
217
+ export declare const makeGitHubPublicationAuthorityIntent: (input: GitHubPublicationAuthorityInput) => PublicationAuthorityIntent;
218
+ export declare const npmPublicationAuthorityIssue: (publication: {
219
+ readonly packageName: {
220
+ readonly toString: () => string;
221
+ };
222
+ readonly version: {
223
+ readonly toString: () => string;
224
+ };
225
+ readonly registryUrl: string;
226
+ readonly distTag: string;
227
+ readonly access: "public" | "restricted";
228
+ readonly authentication: NpmAuthenticationValue;
229
+ readonly provenance: "automatic" | "required" | "disabled";
230
+ readonly authority: PublicationAuthorityIntent;
231
+ }) => string | undefined;
232
+ export declare const githubPublicationAuthorityIssue: (publication: {
233
+ readonly repository: string;
234
+ readonly tag: {
235
+ readonly toString: () => string;
236
+ };
237
+ readonly authority: PublicationAuthorityIntent;
238
+ }) => string | undefined;
239
+ export declare const pyPiPublicationAuthorityIssue: (publication: {
240
+ readonly project: string;
241
+ readonly version: {
242
+ readonly toString: () => string;
243
+ };
244
+ readonly repository: PyPiRepository;
245
+ readonly simpleBaseUrl: string;
246
+ readonly projectUrl: string;
247
+ readonly uploadUrl: string;
248
+ readonly authentication: PyPiAuthenticationValue;
249
+ readonly files: ReadonlyArray<{
250
+ readonly filename: {
251
+ readonly toString: () => string;
252
+ };
253
+ readonly authority: PublicationAuthorityIntent;
254
+ }>;
255
+ }) => string | undefined;
256
+ export declare const catalogPublicationAuthorityIssue: (publication: {
257
+ readonly repository: string;
258
+ readonly branch: {
259
+ readonly toString: () => string;
260
+ };
261
+ readonly targetPath: {
262
+ readonly toString: () => string;
263
+ };
264
+ readonly statePath: {
265
+ readonly toString: () => string;
266
+ };
267
+ readonly authority: PublicationAuthorityIntent;
268
+ }) => string | undefined;
269
+ export declare const linkContributions: (contributions: ReadonlyArray<CapabilityContribution>) => ReleaseGraph;
270
+ export {};
271
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/release/graph.ts"],"names":[],"mappings":"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"}