@mannyc1/ts-release 0.0.7 → 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 (635) hide show
  1. package/ARCHITECTURE.md +124 -92
  2. package/CHANGELOG.md +115 -0
  3. package/LICENSE +21 -0
  4. package/README.md +278 -324
  5. package/SPEC.md +206 -310
  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 +60 -156
  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 -72
  440. package/templates/bun-cli-github/README.md +7 -9
  441. package/templates/bun-cli-github/release.config.json +35 -73
  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/artifacts/adapter.d.ts +0 -39
  455. package/dist/artifacts/adapter.d.ts.map +0 -1
  456. package/dist/artifacts/adapter.js +0 -23
  457. package/dist/artifacts/adapter.js.map +0 -1
  458. package/dist/artifacts/registry.d.ts +0 -21
  459. package/dist/artifacts/registry.d.ts.map +0 -1
  460. package/dist/artifacts/registry.js +0 -21
  461. package/dist/artifacts/registry.js.map +0 -1
  462. package/dist/config/errors.d.ts +0 -24
  463. package/dist/config/errors.d.ts.map +0 -1
  464. package/dist/config/errors.js +0 -19
  465. package/dist/config/errors.js.map +0 -1
  466. package/dist/config/load.d.ts +0 -9
  467. package/dist/config/load.d.ts.map +0 -1
  468. package/dist/config/load.js +0 -29
  469. package/dist/config/load.js.map +0 -1
  470. package/dist/config/schema.d.ts +0 -12
  471. package/dist/config/schema.d.ts.map +0 -1
  472. package/dist/config/schema.js +0 -19
  473. package/dist/config/schema.js.map +0 -1
  474. package/dist/domain/artifact.d.ts +0 -118
  475. package/dist/domain/artifact.d.ts.map +0 -1
  476. package/dist/domain/artifact.js +0 -197
  477. package/dist/domain/artifact.js.map +0 -1
  478. package/dist/domain/evidence.d.ts +0 -59
  479. package/dist/domain/evidence.d.ts.map +0 -1
  480. package/dist/domain/evidence.js +0 -51
  481. package/dist/domain/evidence.js.map +0 -1
  482. package/dist/domain/operation.d.ts +0 -143
  483. package/dist/domain/operation.d.ts.map +0 -1
  484. package/dist/domain/operation.js +0 -198
  485. package/dist/domain/operation.js.map +0 -1
  486. package/dist/domain/release.d.ts +0 -93
  487. package/dist/domain/release.d.ts.map +0 -1
  488. package/dist/domain/release.js +0 -82
  489. package/dist/domain/release.js.map +0 -1
  490. package/dist/domain/remote-state.d.ts +0 -58
  491. package/dist/domain/remote-state.d.ts.map +0 -1
  492. package/dist/domain/remote-state.js +0 -55
  493. package/dist/domain/remote-state.js.map +0 -1
  494. package/dist/domain/target.d.ts +0 -148
  495. package/dist/domain/target.d.ts.map +0 -1
  496. package/dist/domain/target.js +0 -151
  497. package/dist/domain/target.js.map +0 -1
  498. package/dist/host/host.d.ts +0 -32
  499. package/dist/host/host.d.ts.map +0 -1
  500. package/dist/host/host.js +0 -24
  501. package/dist/host/host.js.map +0 -1
  502. package/dist/host/http-live.d.ts +0 -6
  503. package/dist/host/http-live.d.ts.map +0 -1
  504. package/dist/host/http-live.js +0 -86
  505. package/dist/host/http-live.js.map +0 -1
  506. package/dist/host/http.d.ts +0 -43
  507. package/dist/host/http.d.ts.map +0 -1
  508. package/dist/host/http.js +0 -59
  509. package/dist/host/http.js.map +0 -1
  510. package/dist/host/platform.d.ts +0 -10
  511. package/dist/host/platform.d.ts.map +0 -1
  512. package/dist/host/platform.js +0 -114
  513. package/dist/host/platform.js.map +0 -1
  514. package/dist/host/test.d.ts +0 -23
  515. package/dist/host/test.d.ts.map +0 -1
  516. package/dist/host/test.js +0 -222
  517. package/dist/host/test.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 -86
  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 -67
  531. package/dist/planner/errors.d.ts.map +0 -1
  532. package/dist/planner/errors.js +0 -58
  533. package/dist/planner/errors.js.map +0 -1
  534. package/dist/planner/evidence-recorder.d.ts +0 -28
  535. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  536. package/dist/planner/evidence-recorder.js +0 -362
  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 -147
  541. package/dist/planner/executor.js.map +0 -1
  542. package/dist/planner/normalize-release.d.ts +0 -19
  543. package/dist/planner/normalize-release.d.ts.map +0 -1
  544. package/dist/planner/normalize-release.js +0 -342
  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 -259
  549. package/dist/planner/reconcile.js.map +0 -1
  550. package/dist/planner/render-plan.d.ts +0 -15
  551. package/dist/planner/render-plan.d.ts.map +0 -1
  552. package/dist/planner/render-plan.js +0 -231
  553. package/dist/planner/render-plan.js.map +0 -1
  554. package/dist/targets/adapter-helpers.d.ts +0 -79
  555. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  556. package/dist/targets/adapter-helpers.js +0 -194
  557. package/dist/targets/adapter-helpers.js.map +0 -1
  558. package/dist/targets/adapter.d.ts +0 -17
  559. package/dist/targets/adapter.d.ts.map +0 -1
  560. package/dist/targets/adapter.js +0 -2
  561. package/dist/targets/adapter.js.map +0 -1
  562. package/dist/targets/github-release.d.ts +0 -25
  563. package/dist/targets/github-release.d.ts.map +0 -1
  564. package/dist/targets/github-release.js +0 -82
  565. package/dist/targets/github-release.js.map +0 -1
  566. package/dist/targets/github.d.ts +0 -11
  567. package/dist/targets/github.d.ts.map +0 -1
  568. package/dist/targets/github.js +0 -117
  569. package/dist/targets/github.js.map +0 -1
  570. package/dist/targets/homebrew.d.ts +0 -11
  571. package/dist/targets/homebrew.d.ts.map +0 -1
  572. package/dist/targets/homebrew.js +0 -210
  573. package/dist/targets/homebrew.js.map +0 -1
  574. package/dist/targets/live.d.ts +0 -5
  575. package/dist/targets/live.d.ts.map +0 -1
  576. package/dist/targets/live.js +0 -50
  577. package/dist/targets/live.js.map +0 -1
  578. package/dist/targets/npm.d.ts +0 -10
  579. package/dist/targets/npm.d.ts.map +0 -1
  580. package/dist/targets/npm.js +0 -112
  581. package/dist/targets/npm.js.map +0 -1
  582. package/dist/targets/pypi.d.ts +0 -11
  583. package/dist/targets/pypi.d.ts.map +0 -1
  584. package/dist/targets/pypi.js +0 -141
  585. package/dist/targets/pypi.js.map +0 -1
  586. package/dist/targets/registry.d.ts +0 -25
  587. package/dist/targets/registry.d.ts.map +0 -1
  588. package/dist/targets/registry.js +0 -34
  589. package/dist/targets/registry.js.map +0 -1
  590. package/dist/targets/scoop.d.ts +0 -11
  591. package/dist/targets/scoop.d.ts.map +0 -1
  592. package/dist/targets/scoop.js +0 -88
  593. package/dist/targets/scoop.js.map +0 -1
  594. package/dist/types/effect-internal.d.ts +0 -5
  595. package/dist/types/effect-internal.d.ts.map +0 -1
  596. package/dist/types/effect-internal.js +0 -2
  597. package/dist/types/effect-internal.js.map +0 -1
  598. package/dist/workflows/config.d.ts +0 -202
  599. package/dist/workflows/config.d.ts.map +0 -1
  600. package/dist/workflows/config.js +0 -420
  601. package/dist/workflows/config.js.map +0 -1
  602. package/dist/workflows/diagnostics.d.ts +0 -62
  603. package/dist/workflows/diagnostics.d.ts.map +0 -1
  604. package/dist/workflows/diagnostics.js +0 -530
  605. package/dist/workflows/diagnostics.js.map +0 -1
  606. package/dist/workflows/distribution.d.ts +0 -25
  607. package/dist/workflows/distribution.d.ts.map +0 -1
  608. package/dist/workflows/distribution.js +0 -24
  609. package/dist/workflows/distribution.js.map +0 -1
  610. package/dist/workflows/evidence.d.ts +0 -17
  611. package/dist/workflows/evidence.d.ts.map +0 -1
  612. package/dist/workflows/evidence.js +0 -32
  613. package/dist/workflows/evidence.js.map +0 -1
  614. package/dist/workflows/index.d.ts +0 -8
  615. package/dist/workflows/index.d.ts.map +0 -1
  616. package/dist/workflows/index.js +0 -7
  617. package/dist/workflows/index.js.map +0 -1
  618. package/dist/workflows/init.d.ts +0 -84
  619. package/dist/workflows/init.d.ts.map +0 -1
  620. package/dist/workflows/init.js +0 -487
  621. package/dist/workflows/init.js.map +0 -1
  622. package/dist/workflows/live.d.ts +0 -9
  623. package/dist/workflows/live.d.ts.map +0 -1
  624. package/dist/workflows/live.js +0 -7
  625. package/dist/workflows/live.js.map +0 -1
  626. package/dist/workflows/options.d.ts +0 -30
  627. package/dist/workflows/options.d.ts.map +0 -1
  628. package/dist/workflows/options.js +0 -16
  629. package/dist/workflows/options.js.map +0 -1
  630. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  631. package/examples/non-strict-skips/release.config.json +0 -31
  632. package/examples/pypi-registry/release.config.json +0 -31
  633. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  634. package/templates/github-actions/plan-only.yml +0 -33
  635. package/templates/github-actions/trusted-publishing.yml +0 -61
@@ -1,59 +0,0 @@
1
- import * as Schema from "effect/Schema";
2
- import { CommandSpec, HttpEnvHeader, HttpHeader } from "./operation.js";
3
- export type * from "../types/effect-internal.js";
4
- export declare const EvidenceId: Schema.NonEmptyString;
5
- export type EvidenceId = typeof EvidenceId.Type;
6
- export declare const EvidenceSeverity: Schema.Literals<readonly ["info", "warning", "error"]>;
7
- export type EvidenceSeverity = typeof EvidenceSeverity.Type;
8
- export declare const EvidenceStatus: Schema.Literals<readonly ["passed", "failed", "skipped", "warning"]>;
9
- export type EvidenceStatus = typeof EvidenceStatus.Type;
10
- export declare const EvidencePhase: Schema.Literals<readonly ["render", "validation", "execution", "verification", "reconciliation"]>;
11
- export type EvidencePhase = typeof EvidencePhase.Type;
12
- declare const HttpRequestEvidence_base: Schema.Class<HttpRequestEvidence, Schema.Struct<{
13
- readonly method: Schema.Literals<readonly ["GET", "HEAD"]>;
14
- readonly url: Schema.String;
15
- readonly headers: Schema.$Array<typeof HttpHeader>;
16
- readonly envHeaders: Schema.$Array<typeof HttpEnvHeader>;
17
- }>, {}>;
18
- export declare class HttpRequestEvidence extends HttpRequestEvidence_base {
19
- }
20
- declare const HttpCheckEvidence_base: Schema.Class<HttpCheckEvidence, Schema.Struct<{
21
- readonly description: Schema.String;
22
- readonly passed: Schema.Boolean;
23
- }>, {}>;
24
- export declare class HttpCheckEvidence extends HttpCheckEvidence_base {
25
- }
26
- declare const OperationEvidenceRecord_base: Schema.Class<OperationEvidenceRecord, Schema.Struct<{
27
- readonly id: Schema.NonEmptyString;
28
- readonly operationId: Schema.NonEmptyString;
29
- readonly phase: Schema.Literals<readonly ["render", "validation", "execution", "verification", "reconciliation"]>;
30
- readonly targetId: Schema.optionalKey<Schema.NonEmptyString>;
31
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
32
- readonly status: Schema.Literals<readonly ["passed", "failed", "skipped", "warning"]>;
33
- readonly severity: Schema.Literals<readonly ["info", "warning", "error"]>;
34
- readonly message: Schema.String;
35
- readonly startedAt: Schema.String;
36
- readonly endedAt: Schema.String;
37
- readonly durationMillis: Schema.Number;
38
- readonly command: Schema.optionalKey<typeof CommandSpec>;
39
- readonly exitCode: Schema.optionalKey<Schema.Number>;
40
- readonly stdout: Schema.optionalKey<Schema.String>;
41
- readonly stderr: Schema.optionalKey<Schema.String>;
42
- readonly request: Schema.optionalKey<typeof HttpRequestEvidence>;
43
- readonly responseStatus: Schema.optionalKey<Schema.Number>;
44
- readonly checks: Schema.optionalKey<Schema.$Array<typeof HttpCheckEvidence>>;
45
- readonly skipped: Schema.optionalKey<Schema.Boolean>;
46
- }>, {}>;
47
- export declare class OperationEvidenceRecord extends OperationEvidenceRecord_base {
48
- }
49
- export declare const EvidenceRecord: typeof OperationEvidenceRecord;
50
- export type EvidenceRecord = typeof EvidenceRecord.Type;
51
- declare const EvidenceBundle_base: Schema.Class<EvidenceBundle, Schema.Struct<{
52
- readonly schemaVersion: Schema.Literal<"release-evidence/v1">;
53
- readonly releaseName: Schema.NonEmptyString;
54
- readonly releaseVersion: Schema.NonEmptyString;
55
- readonly records: Schema.$Array<typeof OperationEvidenceRecord>;
56
- }>, {}>;
57
- export declare class EvidenceBundle extends EvidenceBundle_base {
58
- }
59
- //# sourceMappingURL=evidence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAA0C,MAAM,gBAAgB,CAAA;AAI/G,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,UAAU,uBAAwB,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,gBAAgB,wDAAgD,CAAA;AAC7E,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,cAAc,sEAA8D,CAAA;AACzF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,aAAa,mGAA2F,CAAA;AACrH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;;;;;;;AAErD,qBAAa,mBAAoB,SAAQ,wBAKvC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAGrC;CAAG;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAoB3C;CAAG;AAEL,eAAO,MAAM,cAAc,gCAA0B,CAAA;AACrD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;;;;;;;AAEvD,qBAAa,cAAe,SAAQ,mBAKlC;CAAG"}
@@ -1,51 +0,0 @@
1
- import * as Schema from "effect/Schema";
2
- import { CommandSpec, HttpEnvHeader, HttpHeader, HttpMethod, OperationId, OperationRisk } from "./operation.js";
3
- import { ReleaseName, ReleaseVersion } from "./release.js";
4
- import { TargetId } from "./target.js";
5
- export const EvidenceId = Schema.NonEmptyString;
6
- export const EvidenceSeverity = Schema.Literals(["info", "warning", "error"]);
7
- export const EvidenceStatus = Schema.Literals(["passed", "failed", "skipped", "warning"]);
8
- export const EvidencePhase = Schema.Literals(["render", "validation", "execution", "verification", "reconciliation"]);
9
- export class HttpRequestEvidence extends Schema.Class("HttpRequestEvidence")({
10
- method: HttpMethod,
11
- url: Schema.String,
12
- headers: Schema.Array(HttpHeader),
13
- envHeaders: Schema.Array(HttpEnvHeader)
14
- }) {
15
- }
16
- export class HttpCheckEvidence extends Schema.Class("HttpCheckEvidence")({
17
- description: Schema.String,
18
- passed: Schema.Boolean
19
- }) {
20
- }
21
- export class OperationEvidenceRecord extends Schema.Class("OperationEvidenceRecord")({
22
- id: EvidenceId,
23
- operationId: OperationId,
24
- phase: EvidencePhase,
25
- targetId: Schema.optionalKey(TargetId),
26
- risk: OperationRisk,
27
- status: EvidenceStatus,
28
- severity: EvidenceSeverity,
29
- message: Schema.String,
30
- startedAt: Schema.String,
31
- endedAt: Schema.String,
32
- durationMillis: Schema.Number,
33
- command: Schema.optionalKey(CommandSpec),
34
- exitCode: Schema.optionalKey(Schema.Number),
35
- stdout: Schema.optionalKey(Schema.String),
36
- stderr: Schema.optionalKey(Schema.String),
37
- request: Schema.optionalKey(HttpRequestEvidence),
38
- responseStatus: Schema.optionalKey(Schema.Number),
39
- checks: Schema.optionalKey(Schema.Array(HttpCheckEvidence)),
40
- skipped: Schema.optionalKey(Schema.Boolean)
41
- }) {
42
- }
43
- export const EvidenceRecord = OperationEvidenceRecord;
44
- export class EvidenceBundle extends Schema.Class("EvidenceBundle")({
45
- schemaVersion: Schema.Literal("release-evidence/v1"),
46
- releaseName: ReleaseName,
47
- releaseVersion: ReleaseVersion,
48
- records: Schema.Array(EvidenceRecord)
49
- }) {
50
- }
51
- //# sourceMappingURL=evidence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"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"}
@@ -1,143 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Schema from "effect/Schema";
3
- export type * from "../types/effect-internal.js";
4
- export declare const OperationId: Schema.NonEmptyString;
5
- export type OperationId = typeof OperationId.Type;
6
- export declare const OperationRisk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
7
- export type OperationRisk = typeof OperationRisk.Type;
8
- declare const CommandSpec_base: Schema.Class<CommandSpec, Schema.Struct<{
9
- readonly executable: Schema.String;
10
- readonly args: Schema.$Array<Schema.String>;
11
- readonly cwd: Schema.optionalKey<Schema.String>;
12
- readonly requiredEnv: Schema.$Array<Schema.String>;
13
- readonly redactedEnv: Schema.$Array<Schema.String>;
14
- }>, {}>;
15
- export declare class CommandSpec extends CommandSpec_base {
16
- }
17
- export declare const HttpMethod: Schema.Literals<readonly ["GET", "HEAD"]>;
18
- export type HttpMethod = typeof HttpMethod.Type;
19
- declare const HttpHeader_base: Schema.Class<HttpHeader, Schema.Struct<{
20
- readonly name: Schema.String;
21
- readonly value: Schema.String;
22
- }>, {}>;
23
- export declare class HttpHeader extends HttpHeader_base {
24
- }
25
- declare const HttpEnvHeader_base: Schema.Class<HttpEnvHeader, Schema.Struct<{
26
- readonly name: Schema.String;
27
- readonly valueEnv: Schema.String;
28
- readonly prefix: Schema.optionalKey<Schema.String>;
29
- }>, {}>;
30
- export declare class HttpEnvHeader extends HttpEnvHeader_base {
31
- }
32
- declare const HttpRequestSpec_base: Schema.Class<HttpRequestSpec, Schema.Struct<{
33
- readonly method: Schema.Literals<readonly ["GET", "HEAD"]>;
34
- readonly url: Schema.String;
35
- readonly headers: Schema.$Array<typeof HttpHeader>;
36
- readonly envHeaders: Schema.$Array<typeof HttpEnvHeader>;
37
- readonly requiredEnv: Schema.$Array<Schema.String>;
38
- readonly redactedEnv: Schema.$Array<Schema.String>;
39
- }>, {}>;
40
- export declare class HttpRequestSpec extends HttpRequestSpec_base {
41
- }
42
- export declare const JsonPathSegment: Schema.Union<readonly [Schema.String, Schema.Number]>;
43
- export type JsonPathSegment = typeof JsonPathSegment.Type;
44
- declare const HttpJsonEqualsCheck_base: Schema.Class<HttpJsonEqualsCheck, Schema.TaggedStruct<"HttpJsonEqualsCheck", {
45
- readonly path: Schema.$Array<Schema.Union<readonly [Schema.String, Schema.Number]>>;
46
- readonly expected: Schema.Codec<Schema.Json, Schema.Json, never, never>;
47
- }>, {}>;
48
- export declare class HttpJsonEqualsCheck extends HttpJsonEqualsCheck_base {
49
- }
50
- declare const HttpJsonArrayObjectFieldEqualsCheck_base: Schema.Class<HttpJsonArrayObjectFieldEqualsCheck, Schema.TaggedStruct<"HttpJsonArrayObjectFieldEqualsCheck", {
51
- readonly path: Schema.$Array<Schema.Union<readonly [Schema.String, Schema.Number]>>;
52
- readonly field: Schema.String;
53
- readonly expected: Schema.Codec<Schema.Json, Schema.Json, never, never>;
54
- }>, {}>;
55
- export declare class HttpJsonArrayObjectFieldEqualsCheck extends HttpJsonArrayObjectFieldEqualsCheck_base {
56
- }
57
- export declare const HttpJsonCheck: Schema.Union<readonly [typeof HttpJsonEqualsCheck, typeof HttpJsonArrayObjectFieldEqualsCheck]>;
58
- export type HttpJsonCheck = typeof HttpJsonCheck.Type;
59
- declare const RenderFileOperation_base: Schema.Class<RenderFileOperation, Schema.TaggedStruct<"RenderFileOperation", {
60
- readonly id: Schema.NonEmptyString;
61
- readonly targetId: Schema.optionalKey<Schema.NonEmptyString>;
62
- readonly description: Schema.String;
63
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
64
- readonly path: Schema.String;
65
- readonly contents: Schema.String;
66
- }>, {}>;
67
- export declare class RenderFileOperation extends RenderFileOperation_base {
68
- }
69
- declare const ValidateCommandOperation_base: Schema.Class<ValidateCommandOperation, Schema.TaggedStruct<"ValidateCommandOperation", {
70
- readonly id: Schema.NonEmptyString;
71
- readonly targetId: Schema.optionalKey<Schema.NonEmptyString>;
72
- readonly description: Schema.String;
73
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
74
- readonly command: typeof CommandSpec;
75
- }>, {}>;
76
- export declare class ValidateCommandOperation extends ValidateCommandOperation_base {
77
- }
78
- declare const ValidationNoteOperation_base: Schema.Class<ValidationNoteOperation, Schema.TaggedStruct<"ValidationNoteOperation", {
79
- readonly id: Schema.NonEmptyString;
80
- readonly targetId: Schema.optionalKey<Schema.NonEmptyString>;
81
- readonly description: Schema.String;
82
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
83
- readonly message: Schema.String;
84
- readonly skipped: Schema.Boolean;
85
- readonly severity: Schema.Literals<readonly ["info", "warning"]>;
86
- }>, {}>;
87
- export declare class ValidationNoteOperation extends ValidationNoteOperation_base {
88
- }
89
- declare const PublishCommandOperation_base: Schema.Class<PublishCommandOperation, Schema.TaggedStruct<"PublishCommandOperation", {
90
- readonly id: Schema.NonEmptyString;
91
- readonly targetId: Schema.NonEmptyString;
92
- readonly description: Schema.String;
93
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
94
- readonly command: typeof CommandSpec;
95
- }>, {}>;
96
- export declare class PublishCommandOperation extends PublishCommandOperation_base {
97
- }
98
- declare const VerifyRemoteOperation_base: Schema.Class<VerifyRemoteOperation, Schema.TaggedStruct<"VerifyRemoteOperation", {
99
- readonly id: Schema.NonEmptyString;
100
- readonly targetId: Schema.NonEmptyString;
101
- readonly description: Schema.String;
102
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
103
- readonly command: typeof CommandSpec;
104
- }>, {}>;
105
- export declare class VerifyRemoteOperation extends VerifyRemoteOperation_base {
106
- }
107
- declare const VerifyHttpOperation_base: Schema.Class<VerifyHttpOperation, Schema.TaggedStruct<"VerifyHttpOperation", {
108
- readonly id: Schema.NonEmptyString;
109
- readonly targetId: Schema.NonEmptyString;
110
- readonly description: Schema.String;
111
- readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
112
- readonly request: typeof HttpRequestSpec;
113
- readonly expectedStatus: Schema.Number;
114
- readonly checks: Schema.$Array<Schema.Union<readonly [typeof HttpJsonEqualsCheck, typeof HttpJsonArrayObjectFieldEqualsCheck]>>;
115
- }>, {}>;
116
- export declare class VerifyHttpOperation extends VerifyHttpOperation_base {
117
- }
118
- export declare const Operation: Schema.Union<readonly [typeof RenderFileOperation, typeof ValidateCommandOperation, typeof ValidationNoteOperation, typeof PublishCommandOperation, typeof VerifyRemoteOperation, typeof VerifyHttpOperation]>;
119
- export type Operation = typeof Operation.Type;
120
- declare const ExecutionApproval_base: Schema.Class<ExecutionApproval, Schema.Struct<{
121
- readonly execute: Schema.Boolean;
122
- readonly approveIrreversible: Schema.Boolean;
123
- }>, {}>;
124
- export declare class ExecutionApproval extends ExecutionApproval_base {
125
- static readonly none: ExecutionApproval;
126
- }
127
- declare const ExecutionApprovalError_base: Schema.Class<ExecutionApprovalError, Schema.TaggedStruct<"ExecutionApprovalError", {
128
- readonly operationId: Schema.NonEmptyString;
129
- readonly reason: Schema.String;
130
- }>, import("effect/Cause").YieldableError>;
131
- export declare class ExecutionApprovalError extends ExecutionApprovalError_base {
132
- }
133
- export declare const operationApprovalRequirements: (operation: Operation) => {
134
- requiresExecute: boolean;
135
- requiresIrreversibleApproval: boolean;
136
- };
137
- export declare const operationRequiresExecute: (operation: Operation) => boolean;
138
- export declare const operationRequiresIrreversibleApproval: (operation: Operation) => boolean;
139
- export declare const operationApprovalLabel: (operation: Operation) => string;
140
- export declare const canExecuteOperation: (operation: Operation, approval: ExecutionApproval) => boolean;
141
- export declare const requireExecutionApproval: (operation: RenderFileOperation | ValidateCommandOperation | ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | VerifyHttpOperation, approval: ExecutionApproval) => Effect.Effect<undefined, ExecutionApprovalError, never>;
142
- export declare const operationOrder: (left: Operation, right: Operation) => number;
143
- //# sourceMappingURL=operation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/domain/operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,WAAW,uBAAwB,CAAA;AAChD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,aAAa,+FAAuF,CAAA;AACjH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;;;;;;;;AAErD,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;AAEL,eAAO,MAAM,UAAU,2CAAmC,CAAA;AAC1D,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;AAE/C,qBAAa,UAAW,SAAQ,eAG9B;CAAG;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;;;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAOnC;CAAG;AAEL,eAAO,MAAM,eAAe,uDAA+C,CAAA;AAC3E,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;;;;;AAEzD,qBAAa,mBAAoB,SAAQ,wBAGvC;CAAG;;;;;;AAEL,qBAAa,mCAAoC,SAAQ,wCAOxD;CAAG;AAEJ,eAAO,MAAM,aAAa,iGAA2E,CAAA;AACrG,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;;;;;;;;;AAErD,qBAAa,mBAAoB,SAAQ,wBAOvC;CAAG;;;;;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAM5C;CAAG;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAQ3C;CAAG;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAM3C;CAAG;;;;;;;;AAEL,qBAAa,qBAAsB,SAAQ,0BAMzC;CAAG;;;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAQvC;CAAG;AAEL,eAAO,MAAM,SAAS,gNAOpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;;;;;AAE7C,qBAAa,iBAAkB,SAAQ,sBAGrC;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,oBAGlB;CACH;;;;;AAED,qBAAa,sBAAuB,SAAQ,2BAM3C;CAAG;AAEJ,eAAO,MAAM,6BAA6B,GAAI,WAAW,SAAS;;;CAGhE,CAAA;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAW,SAAS,KAAG,OACN,CAAA;AAE1D,eAAO,MAAM,qCAAqC,GAAI,WAAW,SAAS,KAAG,OACN,CAAA;AAEvE,eAAO,MAAM,sBAAsB,GAAI,WAAW,SAAS,KAAG,MAQ7D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,EAAE,UAAU,iBAAiB,KAAG,OAUvF,CAAA;AAED,eAAO,MAAM,wBAAwB,uPAmBnC,CAAA;AAoCF,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,EAAE,OAAO,SAAS,KAAG,MAKlC,CAAA"}
@@ -1,198 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Schema from "effect/Schema";
3
- import { TargetId } from "./target.js";
4
- export const OperationId = Schema.NonEmptyString;
5
- export const OperationRisk = Schema.Literals(["read-only", "writes-local", "externally-visible", "irreversible"]);
6
- export class CommandSpec extends Schema.Class("CommandSpec")({
7
- executable: Schema.String,
8
- args: Schema.Array(Schema.String),
9
- cwd: Schema.optionalKey(Schema.String),
10
- requiredEnv: Schema.Array(Schema.String),
11
- redactedEnv: Schema.Array(Schema.String)
12
- }) {
13
- }
14
- export const HttpMethod = Schema.Literals(["GET", "HEAD"]);
15
- export class HttpHeader extends Schema.Class("HttpHeader")({
16
- name: Schema.String,
17
- value: Schema.String
18
- }) {
19
- }
20
- export class HttpEnvHeader extends Schema.Class("HttpEnvHeader")({
21
- name: Schema.String,
22
- valueEnv: Schema.String,
23
- prefix: Schema.optionalKey(Schema.String)
24
- }) {
25
- }
26
- export class HttpRequestSpec extends Schema.Class("HttpRequestSpec")({
27
- method: HttpMethod,
28
- url: Schema.String,
29
- headers: Schema.Array(HttpHeader),
30
- envHeaders: Schema.Array(HttpEnvHeader),
31
- requiredEnv: Schema.Array(Schema.String),
32
- redactedEnv: Schema.Array(Schema.String)
33
- }) {
34
- }
35
- export const JsonPathSegment = Schema.Union([Schema.String, Schema.Number]);
36
- export class HttpJsonEqualsCheck extends Schema.TaggedClass()("HttpJsonEqualsCheck", {
37
- path: Schema.Array(JsonPathSegment),
38
- expected: Schema.Json
39
- }) {
40
- }
41
- export class HttpJsonArrayObjectFieldEqualsCheck extends Schema.TaggedClass()("HttpJsonArrayObjectFieldEqualsCheck", {
42
- path: Schema.Array(JsonPathSegment),
43
- field: Schema.String,
44
- expected: Schema.Json
45
- }) {
46
- }
47
- export const HttpJsonCheck = Schema.Union([HttpJsonEqualsCheck, HttpJsonArrayObjectFieldEqualsCheck]);
48
- export class RenderFileOperation extends Schema.TaggedClass()("RenderFileOperation", {
49
- id: OperationId,
50
- targetId: Schema.optionalKey(TargetId),
51
- description: Schema.String,
52
- risk: OperationRisk,
53
- path: Schema.String,
54
- contents: Schema.String
55
- }) {
56
- }
57
- export class ValidateCommandOperation extends Schema.TaggedClass()("ValidateCommandOperation", {
58
- id: OperationId,
59
- targetId: Schema.optionalKey(TargetId),
60
- description: Schema.String,
61
- risk: OperationRisk,
62
- command: CommandSpec
63
- }) {
64
- }
65
- export class ValidationNoteOperation extends Schema.TaggedClass()("ValidationNoteOperation", {
66
- id: OperationId,
67
- targetId: Schema.optionalKey(TargetId),
68
- description: Schema.String,
69
- risk: OperationRisk,
70
- message: Schema.String,
71
- skipped: Schema.Boolean,
72
- severity: Schema.Literals(["info", "warning"])
73
- }) {
74
- }
75
- export class PublishCommandOperation extends Schema.TaggedClass()("PublishCommandOperation", {
76
- id: OperationId,
77
- targetId: TargetId,
78
- description: Schema.String,
79
- risk: OperationRisk,
80
- command: CommandSpec
81
- }) {
82
- }
83
- export class VerifyRemoteOperation extends Schema.TaggedClass()("VerifyRemoteOperation", {
84
- id: OperationId,
85
- targetId: TargetId,
86
- description: Schema.String,
87
- risk: OperationRisk,
88
- command: CommandSpec
89
- }) {
90
- }
91
- export class VerifyHttpOperation extends Schema.TaggedClass()("VerifyHttpOperation", {
92
- id: OperationId,
93
- targetId: TargetId,
94
- description: Schema.String,
95
- risk: OperationRisk,
96
- request: HttpRequestSpec,
97
- expectedStatus: Schema.Number,
98
- checks: Schema.Array(HttpJsonCheck)
99
- }) {
100
- }
101
- export const Operation = Schema.Union([
102
- RenderFileOperation,
103
- ValidateCommandOperation,
104
- ValidationNoteOperation,
105
- PublishCommandOperation,
106
- VerifyRemoteOperation,
107
- VerifyHttpOperation
108
- ]);
109
- export class ExecutionApproval extends Schema.Class("ExecutionApproval")({
110
- execute: Schema.Boolean,
111
- approveIrreversible: Schema.Boolean
112
- }) {
113
- static none = ExecutionApproval.make({
114
- execute: false,
115
- approveIrreversible: false
116
- });
117
- }
118
- export class ExecutionApprovalError extends Schema.TaggedErrorClass()("ExecutionApprovalError", {
119
- operationId: OperationId,
120
- reason: Schema.String
121
- }) {
122
- }
123
- export const operationApprovalRequirements = (operation) => ({
124
- requiresExecute: operation.risk !== "read-only",
125
- requiresIrreversibleApproval: operation.risk === "irreversible"
126
- });
127
- export const operationRequiresExecute = (operation) => operationApprovalRequirements(operation).requiresExecute;
128
- export const operationRequiresIrreversibleApproval = (operation) => operationApprovalRequirements(operation).requiresIrreversibleApproval;
129
- export const operationApprovalLabel = (operation) => {
130
- const requirements = operationApprovalRequirements(operation);
131
- if (!requirements.requiresExecute) {
132
- return "none";
133
- }
134
- return requirements.requiresIrreversibleApproval
135
- ? "--execute + --approve-irreversible"
136
- : "--execute";
137
- };
138
- export const canExecuteOperation = (operation, approval) => {
139
- const requirements = operationApprovalRequirements(operation);
140
- if (requirements.requiresExecute && !approval.execute) {
141
- return false;
142
- }
143
- if (requirements.requiresIrreversibleApproval && !approval.approveIrreversible) {
144
- return false;
145
- }
146
- return true;
147
- };
148
- export const requireExecutionApproval = Effect.fn("requireExecutionApproval")(function* (operation, approval) {
149
- if (canExecuteOperation(operation, approval)) {
150
- return;
151
- }
152
- const requirements = operationApprovalRequirements(operation);
153
- const reason = requirements.requiresIrreversibleApproval && !approval.approveIrreversible
154
- ? "Operation requires irreversible approval."
155
- : "Operation requires execute approval.";
156
- return yield* Effect.fail(ExecutionApprovalError.make({
157
- operationId: operation.id,
158
- reason
159
- }));
160
- });
161
- const operationPhasePriority = (operation) => {
162
- switch (operation._tag) {
163
- case "RenderFileOperation":
164
- return 0;
165
- case "ValidateCommandOperation":
166
- case "ValidationNoteOperation":
167
- return 1;
168
- case "PublishCommandOperation":
169
- return 2;
170
- case "VerifyRemoteOperation":
171
- case "VerifyHttpOperation":
172
- return 3;
173
- }
174
- };
175
- const publishOperationPriority = (operation) => {
176
- if (operation.id.endsWith(":npm-publish") || operation.id.endsWith(":twine-upload")) {
177
- return 0;
178
- }
179
- if (operation.id.endsWith(":gh-release-create")) {
180
- return 1;
181
- }
182
- if (operation.id.endsWith(":add")) {
183
- return 2;
184
- }
185
- if (operation.id.endsWith(":commit")) {
186
- return 3;
187
- }
188
- if (operation.id.endsWith(":homebrew-push") || operation.id.endsWith(":scoop-push")) {
189
- return 4;
190
- }
191
- return 5;
192
- };
193
- export const operationOrder = (left, right) => operationPhasePriority(left) - operationPhasePriority(right) ||
194
- (left._tag === "PublishCommandOperation" && right._tag === "PublishCommandOperation"
195
- ? publishOperationPriority(left) - publishOperationPriority(right)
196
- : 0) ||
197
- left.id.localeCompare(right.id);
198
- //# sourceMappingURL=operation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/domain/operation.ts"],"names":[],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- import * as Schema from "effect/Schema";
2
- import { ArtifactIntent, ArtifactInventoryItem } from "./artifact.js";
3
- import { TargetCapabilities } from "./target.js";
4
- export type * from "../types/effect-internal.js";
5
- export declare const ReleaseName: Schema.NonEmptyString;
6
- export type ReleaseName = typeof ReleaseName.Type;
7
- export declare const ReleaseVersion: Schema.NonEmptyString;
8
- export type ReleaseVersion = typeof ReleaseVersion.Type;
9
- export declare const GitCommit: Schema.NonEmptyString;
10
- export type GitCommit = typeof GitCommit.Type;
11
- export declare const GitTag: Schema.NonEmptyString;
12
- export type GitTag = typeof GitTag.Type;
13
- declare const ReleaseIdentity_base: Schema.Class<ReleaseIdentity, Schema.Struct<{
14
- readonly name: Schema.NonEmptyString;
15
- readonly version: Schema.NonEmptyString;
16
- readonly commit: Schema.NonEmptyString;
17
- readonly tag: Schema.optionalKey<Schema.NonEmptyString>;
18
- readonly notes: Schema.optionalKey<Schema.String>;
19
- }>, {}>;
20
- export declare class ReleaseIdentity extends ReleaseIdentity_base {
21
- }
22
- declare const ReleasePackageManifest_base: Schema.Class<ReleasePackageManifest, Schema.Struct<{
23
- readonly name: Schema.NonEmptyString;
24
- readonly version: Schema.NonEmptyString;
25
- }>, {}>;
26
- export declare class ReleasePackageManifest extends ReleasePackageManifest_base {
27
- }
28
- declare const StaticReleaseIdentitySource_base: Schema.Class<StaticReleaseIdentitySource, Schema.Struct<{
29
- readonly name: Schema.NonEmptyString;
30
- readonly version: Schema.NonEmptyString;
31
- readonly commit: Schema.NonEmptyString;
32
- readonly tag: Schema.optionalKey<Schema.NonEmptyString>;
33
- readonly notes: Schema.optionalKey<Schema.String>;
34
- }>, {}>;
35
- export declare class StaticReleaseIdentitySource extends StaticReleaseIdentitySource_base {
36
- }
37
- declare const PackageManifestReleaseIdentitySource_base: Schema.Class<PackageManifestReleaseIdentitySource, Schema.TaggedStruct<"PackageManifestReleaseIdentitySource", {
38
- readonly packagePath: Schema.optionalKey<Schema.String>;
39
- readonly commit: Schema.NonEmptyString;
40
- readonly tagTemplate: Schema.optionalKey<Schema.String>;
41
- readonly notes: Schema.optionalKey<Schema.String>;
42
- }>, {}>;
43
- export declare class PackageManifestReleaseIdentitySource extends PackageManifestReleaseIdentitySource_base {
44
- }
45
- export declare const ReleaseIdentitySource: Schema.Union<readonly [typeof StaticReleaseIdentitySource, typeof PackageManifestReleaseIdentitySource]>;
46
- export type ReleaseIdentitySource = typeof ReleaseIdentitySource.Type;
47
- declare const SourceMetadata_base: Schema.Class<SourceMetadata, Schema.Struct<{
48
- readonly root: Schema.String;
49
- readonly configPath: Schema.optionalKey<Schema.String>;
50
- }>, {}>;
51
- export declare class SourceMetadata extends SourceMetadata_base {
52
- }
53
- declare const ReleaseIntent_base: Schema.Class<ReleaseIntent, Schema.Struct<{
54
- readonly $schema: Schema.optionalKey<Schema.String>;
55
- readonly identity: Schema.Union<readonly [typeof StaticReleaseIdentitySource, typeof PackageManifestReleaseIdentitySource]>;
56
- readonly artifacts: Schema.$Array<typeof ArtifactIntent>;
57
- readonly artifactRecipes: Schema.optionalKey<Schema.$Array<Schema.Union<readonly [typeof import("./artifact.js").BunExecutableArtifactRecipe, typeof import("./artifact.js").PyPiWheelArtifactRecipe]>>>;
58
- readonly targets: Schema.$Array<Schema.Union<readonly [typeof import("./target.js").NpmRegistryTarget, typeof import("./target.js").GitHubReleaseTarget, typeof import("./target.js").HomebrewTapTarget, typeof import("./target.js").PyPiRegistryTarget, typeof import("./target.js").ScoopBucketTarget]>>;
59
- readonly strict: Schema.optionalKey<Schema.Boolean>;
60
- readonly evidenceDirectory: Schema.optionalKey<Schema.String>;
61
- }>, {}>;
62
- export declare class ReleaseIntent extends ReleaseIntent_base {
63
- }
64
- declare const ReleaseModel_base: Schema.Class<ReleaseModel, Schema.Struct<{
65
- readonly identity: typeof ReleaseIdentity;
66
- readonly source: typeof SourceMetadata;
67
- readonly artifacts: Schema.$Array<typeof ArtifactInventoryItem>;
68
- readonly targets: Schema.$Array<Schema.Union<readonly [typeof import("./target.js").NpmRegistryTarget, typeof import("./target.js").GitHubReleaseTarget, typeof import("./target.js").HomebrewTapTarget, typeof import("./target.js").PyPiRegistryTarget, typeof import("./target.js").ScoopBucketTarget]>>;
69
- readonly strict: Schema.Boolean;
70
- readonly evidenceDirectory: Schema.String;
71
- }>, {}>;
72
- export declare class ReleaseModel extends ReleaseModel_base {
73
- }
74
- declare const PlannerMetadata_base: Schema.Class<PlannerMetadata, Schema.Struct<{
75
- readonly createdBy: Schema.String;
76
- readonly planSchemaVersion: Schema.Literal<"release-plan/v1">;
77
- }>, {}>;
78
- export declare class PlannerMetadata extends PlannerMetadata_base {
79
- }
80
- declare const ReleasePlan_base: Schema.Class<ReleasePlan, Schema.Struct<{
81
- readonly schemaVersion: Schema.Literal<"release-plan/v1">;
82
- readonly identity: typeof ReleaseIdentity;
83
- readonly source: typeof SourceMetadata;
84
- readonly artifacts: Schema.$Array<typeof ArtifactInventoryItem>;
85
- readonly targets: Schema.$Array<Schema.Union<readonly [typeof import("./target.js").NpmRegistryTarget, typeof import("./target.js").GitHubReleaseTarget, typeof import("./target.js").HomebrewTapTarget, typeof import("./target.js").PyPiRegistryTarget, typeof import("./target.js").ScoopBucketTarget]>>;
86
- readonly targetCapabilities: Schema.$Array<typeof TargetCapabilities>;
87
- readonly operations: Schema.$Array<Schema.Union<readonly [typeof import("./operation.js").RenderFileOperation, typeof import("./operation.js").ValidateCommandOperation, typeof import("./operation.js").ValidationNoteOperation, typeof import("./operation.js").PublishCommandOperation, typeof import("./operation.js").VerifyRemoteOperation, typeof import("./operation.js").VerifyHttpOperation]>>;
88
- readonly evidenceDirectory: Schema.String;
89
- readonly metadata: typeof PlannerMetadata;
90
- }>, {}>;
91
- export declare class ReleasePlan extends ReleasePlan_base {
92
- }
93
- //# sourceMappingURL=release.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/domain/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAkB,MAAM,eAAe,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAgB,MAAM,aAAa,CAAA;AAE9D,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,WAAW,uBAAwB,CAAA;AAChD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,cAAc,uBAAwB,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,SAAS,uBAAwB,CAAA;AAC9C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,MAAM,uBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;;;;;;;;AAEvC,qBAAa,eAAgB,SAAQ,oBAMnC;CAAG;;;;;AAEL,qBAAa,sBAAuB,SAAQ,2BAG1C;CAAG;;;;;;;;AAEL,qBAAa,2BAA4B,SAAQ,gCAQ/C;CAAG;;;;;;;AAEL,qBAAa,oCAAqC,SAAQ,yCAQzD;CAAG;AAEJ,eAAO,MAAM,qBAAqB,0GAGhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;;;;;AAErE,qBAAa,cAAe,SAAQ,mBAGlC;CAAG;;;;;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAQjC;CAAG;;;;;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAOhC;CAAG;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAGnC;CAAG;;;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAU/B;CAAG"}