@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
@@ -0,0 +1,296 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { ArtifactCollectionSelector } from "../model/artifact-collection.js";
3
+ export { PyPiProjectName, PyPiRepository, normalizePyPiProjectName, pypiRepositoryEndpoints } from "../model/pypi.js";
4
+ export type { PyPiRepositoryEndpoints } from "../model/pypi.js";
5
+ declare const CandidateProject_base: Schema.Class<CandidateProject, Schema.Struct<{
6
+ readonly name: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
7
+ readonly packageName: Schema.optionalKey<Schema.NonEmptyString>;
8
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
9
+ readonly repository: Schema.optionalKey<Schema.NonEmptyString>;
10
+ readonly tag: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
11
+ }>, {}>;
12
+ export declare class CandidateProject extends CandidateProject_base {
13
+ }
14
+ declare const CandidateArtifact_base: Schema.Class<CandidateArtifact, Schema.Struct<{
15
+ readonly id: Schema.brand<Schema.NonEmptyString, "OutputId">;
16
+ readonly path: Schema.brand<Schema.String, "SafeRelativePath">;
17
+ readonly format: Schema.Literals<readonly ["tarball", "zip", "file", "executable"]>;
18
+ }>, {}>;
19
+ export declare class CandidateArtifact extends CandidateArtifact_base {
20
+ }
21
+ declare const CandidateChecksum_base: Schema.Class<CandidateChecksum, Schema.Struct<{
22
+ readonly algorithm: Schema.Literals<readonly ["sha256", "sha512"]>;
23
+ }>, {}>;
24
+ export declare class CandidateChecksum extends CandidateChecksum_base {
25
+ }
26
+ declare const CandidateBunBuild_base: Schema.Class<CandidateBunBuild, Schema.Struct<{
27
+ readonly builder: Schema.Literal<"bun">;
28
+ readonly entry: Schema.brand<Schema.String, "SafeRelativePath">;
29
+ readonly minify: Schema.optionalKey<Schema.Literal<true>>;
30
+ readonly id: Schema.optionalKey<Schema.NonEmptyString>;
31
+ readonly targets: Schema.NonEmptyArray<Schema.Literals<readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"]>>;
32
+ readonly output: Schema.optionalKey<Schema.brand<Schema.String, "SafeRelativePath">>;
33
+ readonly binary: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "NonEmptyName">>;
34
+ }>, {}>;
35
+ export declare class CandidateBunBuild extends CandidateBunBuild_base {
36
+ }
37
+ declare const CandidateCommandBuild_base: Schema.Class<CandidateCommandBuild, Schema.Struct<{
38
+ readonly builder: Schema.Literal<"command">;
39
+ readonly output: Schema.brand<Schema.String, "SafeRelativePath">;
40
+ readonly run: Schema.NonEmptyArray<Schema.String>;
41
+ readonly id: Schema.optionalKey<Schema.NonEmptyString>;
42
+ readonly targets: Schema.NonEmptyArray<Schema.Literals<readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"]>>;
43
+ readonly binary: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "NonEmptyName">>;
44
+ }>, {}>;
45
+ export declare class CandidateCommandBuild extends CandidateCommandBuild_base {
46
+ }
47
+ declare const CandidatePrebuiltBuild_base: Schema.Class<CandidatePrebuiltBuild, Schema.Struct<{
48
+ readonly builder: Schema.Literal<"prebuilt">;
49
+ readonly output: Schema.brand<Schema.String, "SafeRelativePath">;
50
+ readonly id: Schema.optionalKey<Schema.NonEmptyString>;
51
+ readonly targets: Schema.NonEmptyArray<Schema.Literals<readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"]>>;
52
+ readonly binary: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "NonEmptyName">>;
53
+ }>, {}>;
54
+ export declare class CandidatePrebuiltBuild extends CandidatePrebuiltBuild_base {
55
+ }
56
+ export declare const CandidateBuild: Schema.Union<readonly [typeof CandidateBunBuild, typeof CandidateCommandBuild, typeof CandidatePrebuiltBuild]>;
57
+ declare const CandidateArchive_base: Schema.Class<CandidateArchive, Schema.Struct<{
58
+ readonly id: Schema.optionalKey<Schema.NonEmptyString>;
59
+ readonly ids: Schema.optionalKey<Schema.NonEmptyArray<Schema.brand<Schema.NonEmptyString, "OutputId">>>;
60
+ readonly nameTemplate: Schema.optionalKey<Schema.NonEmptyString>;
61
+ readonly formats: Schema.optionalKey<Schema.NonEmptyArray<Schema.Literals<readonly ["tar.gz", "zip"]>>>;
62
+ }>, {}>;
63
+ export declare class CandidateArchive extends CandidateArchive_base {
64
+ }
65
+ declare const CandidateCheckPreparation_base: Schema.Class<CandidateCheckPreparation, Schema.Struct<{
66
+ readonly id: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
67
+ readonly run: Schema.NonEmptyArray<Schema.String>;
68
+ readonly cwd: Schema.optionalKey<Schema.brand<Schema.String, "SafeRelativePath">>;
69
+ readonly inputs: Schema.optionalKey<Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>>;
70
+ readonly kind: Schema.Literal<"check">;
71
+ }>, {}>;
72
+ export declare class CandidateCheckPreparation extends CandidateCheckPreparation_base {
73
+ }
74
+ declare const CandidateArtifactPreparation_base: Schema.Class<CandidateArtifactPreparation, Schema.Struct<{
75
+ readonly outputs: Schema.NonEmptyArray<Schema.Struct<{
76
+ readonly id: Schema.brand<Schema.NonEmptyString, "OutputId">;
77
+ readonly path: Schema.brand<Schema.String, "SafeRelativePath">;
78
+ readonly kind: Schema.optionalKey<Schema.Literals<readonly ["file", "archive", "executable", "digest"]>>;
79
+ readonly mediaType: Schema.optionalKey<Schema.NonEmptyString>;
80
+ }>>;
81
+ readonly id: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
82
+ readonly run: Schema.NonEmptyArray<Schema.String>;
83
+ readonly cwd: Schema.optionalKey<Schema.brand<Schema.String, "SafeRelativePath">>;
84
+ readonly inputs: Schema.optionalKey<Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>>;
85
+ readonly kind: Schema.Literal<"artifact">;
86
+ }>, {}>;
87
+ export declare class CandidateArtifactPreparation extends CandidateArtifactPreparation_base {
88
+ }
89
+ declare const CandidateArtifactCollection_base: Schema.Class<CandidateArtifactCollection, Schema.Struct<{
90
+ readonly root: Schema.brand<Schema.brand<Schema.String, "SafeRelativePath">, "ArtifactCollectionRoot">;
91
+ readonly artifactKind: Schema.Literals<readonly ["file", "executable", "archive", "digest"]>;
92
+ readonly pathSuffix: Schema.brand<Schema.NonEmptyString, "ArtifactPathSuffix">;
93
+ readonly mediaType: Schema.NonEmptyString;
94
+ readonly cardinality: Schema.Union<readonly [typeof import("../model/artifact-collection.js").OneArtifactCardinality, typeof import("../model/artifact-collection.js").OneOrMoreArtifactCardinality, typeof import("../model/artifact-collection.js").BoundedArtifactCardinality]>;
95
+ }>, {}>;
96
+ /** Runtime-discovered outputs for one CommandArtifact preparation. */
97
+ export declare class CandidateArtifactCollection extends CandidateArtifactCollection_base {
98
+ }
99
+ declare const CandidateCollectionPreparation_base: Schema.Class<CandidateCollectionPreparation, Schema.Struct<{
100
+ readonly collection: typeof CandidateArtifactCollection;
101
+ readonly id: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
102
+ readonly run: Schema.NonEmptyArray<Schema.String>;
103
+ readonly cwd: Schema.optionalKey<Schema.brand<Schema.String, "SafeRelativePath">>;
104
+ readonly inputs: Schema.optionalKey<Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>>;
105
+ readonly kind: Schema.Literal<"artifact">;
106
+ }>, {}>;
107
+ export declare class CandidateCollectionPreparation extends CandidateCollectionPreparation_base {
108
+ }
109
+ export declare const CandidatePreparation: Schema.Union<readonly [typeof CandidateCheckPreparation, typeof CandidateArtifactPreparation, typeof CandidateCollectionPreparation]>;
110
+ export interface NpmRegistryEndpointPolicy {
111
+ /** Test servers must opt in; production-authored config never enables this. */
112
+ readonly allowInsecureLoopback?: true;
113
+ }
114
+ /** Parse and normalize the complete npm credential audience, including base path. */
115
+ export declare const canonicalizeNpmRegistryEndpoint: (value: string, policy?: NpmRegistryEndpointPolicy) => string;
116
+ /** Canonical npm registry audience, including its normalized base path. */
117
+ export declare const CanonicalNpmRegistryEndpoint: Schema.brand<Schema.NonEmptyString, "CanonicalNpmRegistryEndpoint">;
118
+ export type CanonicalNpmRegistryEndpoint = typeof CanonicalNpmRegistryEndpoint.Type;
119
+ /** npm distribution tags are URI-safe names that do not parse as SemVer ranges. */
120
+ export declare const NpmDistTag: Schema.brand<Schema.NonEmptyString, "NpmDistTag">;
121
+ export type NpmDistTag = typeof NpmDistTag.Type;
122
+ export declare const NpmAccess: Schema.Literals<readonly ["public", "restricted"]>;
123
+ export type NpmAccess = typeof NpmAccess.Type;
124
+ export declare const NpmProvenancePolicy: Schema.Literals<readonly ["automatic", "required", "disabled"]>;
125
+ export type NpmProvenancePolicy = typeof NpmProvenancePolicy.Type;
126
+ declare const NpmTokenAuthentication_base: Schema.Class<NpmTokenAuthentication, Schema.Struct<{
127
+ readonly strategy: Schema.Literal<"token">;
128
+ readonly credential: Schema.brand<Schema.NonEmptyString, "CredentialRef">;
129
+ }>, {}>;
130
+ export declare class NpmTokenAuthentication extends NpmTokenAuthentication_base {
131
+ }
132
+ export declare const NpmTrustedPublisherRepository: Schema.NonEmptyString;
133
+ export declare const NpmTrustedPublisherWorkflow: Schema.NonEmptyString;
134
+ export declare const NpmTrustedPublisherWorkflowRef: Schema.NonEmptyString;
135
+ declare const NpmTrustedPublisherAttestation_base: Schema.Class<NpmTrustedPublisherAttestation, Schema.Struct<{
136
+ readonly provider: Schema.Literal<"github-actions">;
137
+ readonly runner: Schema.Literal<"github-hosted">;
138
+ readonly repository: Schema.NonEmptyString;
139
+ readonly workflow: Schema.NonEmptyString;
140
+ readonly workflowRef: Schema.NonEmptyString;
141
+ readonly allowedAction: Schema.Literal<"npm-publish-direct">;
142
+ }>, {}>;
143
+ /** Operator-attested npm package trust relationship for one GitHub workflow. */
144
+ export declare class NpmTrustedPublisherAttestation extends NpmTrustedPublisherAttestation_base {
145
+ }
146
+ declare const NpmTrustedPublishingAuthentication_base: Schema.Class<NpmTrustedPublishingAuthentication, Schema.Struct<{
147
+ readonly strategy: Schema.Literal<"trusted-publishing">;
148
+ readonly attestation: typeof NpmTrustedPublisherAttestation;
149
+ }>, {}>;
150
+ export declare class NpmTrustedPublishingAuthentication extends NpmTrustedPublishingAuthentication_base {
151
+ }
152
+ export declare const NpmAuthentication: Schema.Union<readonly [typeof NpmTokenAuthentication, typeof NpmTrustedPublishingAuthentication]>;
153
+ export type NpmAuthentication = typeof NpmAuthentication.Type;
154
+ declare const CandidateNpmPublish_base: Schema.Class<CandidateNpmPublish, Schema.Struct<{
155
+ readonly packageArtifact: Schema.brand<Schema.NonEmptyString, "OutputId">;
156
+ readonly packageName: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
157
+ readonly registry: Schema.brand<Schema.NonEmptyString, "CanonicalNpmRegistryEndpoint">;
158
+ readonly distTag: Schema.brand<Schema.NonEmptyString, "NpmDistTag">;
159
+ readonly access: Schema.Literals<readonly ["public", "restricted"]>;
160
+ readonly authentication: Schema.Union<readonly [typeof NpmTokenAuthentication, typeof NpmTrustedPublishingAuthentication]>;
161
+ readonly provenance: Schema.Literals<readonly ["automatic", "required", "disabled"]>;
162
+ }>, {}>;
163
+ /** Fully resolved npm intent. Every field is durable and behavior-affecting. */
164
+ export declare class CandidateNpmPublish extends CandidateNpmPublish_base {
165
+ }
166
+ declare const PyPiTokenAuthentication_base: Schema.Class<PyPiTokenAuthentication, Schema.Struct<{
167
+ readonly strategy: Schema.Literal<"token">;
168
+ readonly credential: Schema.brand<Schema.NonEmptyString, "CredentialRef">;
169
+ /** PyPI project-scoped tokens are the only token authority admitted here. */
170
+ readonly scope: Schema.Literal<"project">;
171
+ }>, {}>;
172
+ /** Closed PyPI destination set with standards-defined Simple and upload APIs. */
173
+ export declare class PyPiTokenAuthentication extends PyPiTokenAuthentication_base {
174
+ }
175
+ declare const PyPiExternalTrustedPublishingAuthentication_base: Schema.Class<PyPiExternalTrustedPublishingAuthentication, Schema.Struct<{
176
+ readonly strategy: Schema.Literal<"trusted-publishing">;
177
+ readonly owner: Schema.Literal<"external">;
178
+ readonly action: Schema.Literal<"pypa/gh-action-pypi-publish@release/v1">;
179
+ readonly repository: Schema.NonEmptyString;
180
+ readonly workflow: Schema.NonEmptyString;
181
+ readonly workflowRef: Schema.NonEmptyString;
182
+ readonly environment: Schema.NonEmptyString;
183
+ /** Complete bundled authority set for the configured publisher identity. */
184
+ readonly projects: Schema.NonEmptyArray<Schema.NonEmptyString>;
185
+ }>, {}>;
186
+ /**
187
+ * Durable description of the supported external Trusted Publisher owner.
188
+ * ts-release observes these publications but never exchanges OIDC assertions
189
+ * or dispatches their upload itself.
190
+ */
191
+ export declare class PyPiExternalTrustedPublishingAuthentication extends PyPiExternalTrustedPublishingAuthentication_base {
192
+ }
193
+ export declare const PyPiAuthentication: Schema.Union<readonly [typeof PyPiTokenAuthentication, typeof PyPiExternalTrustedPublishingAuthentication]>;
194
+ export type PyPiAuthentication = typeof PyPiAuthentication.Type;
195
+ declare const CandidatePyPiPublish_base: Schema.Class<CandidatePyPiPublish, Schema.Struct<{
196
+ readonly artifacts: Schema.NonEmptyArray<Schema.brand<Schema.NonEmptyString, "OutputId">>;
197
+ readonly project: Schema.brand<Schema.NonEmptyString, "PyPiProjectName">;
198
+ readonly version: Schema.brand<Schema.NonEmptyString, "Version">;
199
+ readonly repository: Schema.Literals<readonly ["pypi", "testpypi"]>;
200
+ readonly authentication: Schema.Union<readonly [typeof PyPiTokenAuthentication, typeof PyPiExternalTrustedPublishingAuthentication]>;
201
+ }>, {}>;
202
+ /** Fully resolved prebuilt-distribution publication intent. */
203
+ export declare class CandidatePyPiPublish extends CandidatePyPiPublish_base {
204
+ }
205
+ declare const CandidateCatalogSource_base: Schema.Class<CandidateCatalogSource, Schema.Struct<{
206
+ readonly artifact: Schema.brand<Schema.NonEmptyString, "OutputId">;
207
+ readonly architecture: Schema.Literals<readonly ["x64", "arm64"]>;
208
+ }>, {}>;
209
+ export declare class CandidateCatalogSource extends CandidateCatalogSource_base {
210
+ }
211
+ declare const CandidateHomebrewCatalog_base: Schema.Class<CandidateHomebrewCatalog, Schema.Struct<{
212
+ readonly formulaName: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
213
+ readonly installPath: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
214
+ readonly id: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
215
+ readonly description: Schema.NonEmptyString;
216
+ readonly homepage: Schema.NonEmptyString;
217
+ readonly license: Schema.optionalKey<Schema.NonEmptyString>;
218
+ readonly sources: Schema.NonEmptyArray<typeof CandidateCatalogSource>;
219
+ }>, {}>;
220
+ export declare class CandidateHomebrewCatalog extends CandidateHomebrewCatalog_base {
221
+ }
222
+ declare const CandidateScoopCatalog_base: Schema.Class<CandidateScoopCatalog, Schema.Struct<{
223
+ readonly manifestName: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
224
+ readonly bin: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
225
+ readonly id: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
226
+ readonly description: Schema.NonEmptyString;
227
+ readonly homepage: Schema.NonEmptyString;
228
+ readonly license: Schema.optionalKey<Schema.NonEmptyString>;
229
+ readonly sources: Schema.NonEmptyArray<typeof CandidateCatalogSource>;
230
+ }>, {}>;
231
+ export declare class CandidateScoopCatalog extends CandidateScoopCatalog_base {
232
+ }
233
+ declare const CandidateCatalogs_base: Schema.Class<CandidateCatalogs, Schema.Struct<{
234
+ readonly homebrew: Schema.optionalKey<Schema.NonEmptyArray<typeof CandidateHomebrewCatalog>>;
235
+ readonly scoop: Schema.optionalKey<Schema.NonEmptyArray<typeof CandidateScoopCatalog>>;
236
+ }>, {}>;
237
+ export declare class CandidateCatalogs extends CandidateCatalogs_base {
238
+ }
239
+ declare const CandidateCatalogGitDestination_base: Schema.Class<CandidateCatalogGitDestination, Schema.Struct<{
240
+ readonly catalog: Schema.brand<Schema.NonEmptyString, "NonEmptyName">;
241
+ readonly repository: Schema.brand<Schema.NonEmptyString, "GitHubRepositoryCoordinate">;
242
+ readonly branch: Schema.brand<Schema.NonEmptyString, "GitBranchName">;
243
+ readonly targetPath: Schema.brand<Schema.brand<Schema.String, "SafeRelativePath">, "CatalogRepositoryPath">;
244
+ readonly statePath: Schema.brand<Schema.brand<Schema.String, "SafeRelativePath">, "CatalogRepositoryPath">;
245
+ readonly tokenEnv: Schema.NonEmptyString;
246
+ }>, {}>;
247
+ export declare class CandidateCatalogGitDestination extends CandidateCatalogGitDestination_base {
248
+ }
249
+ declare const CandidateGitHubPublish_base: Schema.Class<CandidateGitHubPublish, Schema.Struct<{
250
+ readonly repository: Schema.optionalKey<Schema.NonEmptyString>;
251
+ readonly tokenEnv: Schema.optionalKey<Schema.NonEmptyString>;
252
+ readonly draft: Schema.optionalKey<Schema.Boolean>;
253
+ readonly prerelease: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Literal<"auto">]>>;
254
+ readonly body: Schema.optionalKey<Schema.String>;
255
+ readonly bodyArtifact: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "OutputId">>;
256
+ readonly ids: Schema.optionalKey<Schema.$Array<Schema.brand<Schema.NonEmptyString, "OutputId">>>;
257
+ readonly collections: Schema.optionalKey<Schema.NonEmptyArray<typeof ArtifactCollectionSelector>>;
258
+ }>, {}>;
259
+ export declare class CandidateGitHubPublish extends CandidateGitHubPublish_base {
260
+ }
261
+ declare const CandidatePublish_base: Schema.Class<CandidatePublish, Schema.Struct<{
262
+ readonly npm: Schema.optionalKey<typeof CandidateNpmPublish>;
263
+ readonly pypi: Schema.optionalKey<typeof CandidatePyPiPublish>;
264
+ readonly catalogGit: Schema.optionalKey<Schema.NonEmptyArray<typeof CandidateCatalogGitDestination>>;
265
+ readonly github: Schema.optionalKey<typeof CandidateGitHubPublish>;
266
+ }>, {}>;
267
+ export declare class CandidatePublish extends CandidatePublish_base {
268
+ }
269
+ declare const CandidateNpmPackageBuild_base: Schema.Class<CandidateNpmPackageBuild, Schema.Struct<{
270
+ readonly run: Schema.NonEmptyArray<Schema.NonEmptyString>;
271
+ readonly outputRoots: Schema.NonEmptyArray<Schema.brand<Schema.String, "SafeRelativePath">>;
272
+ }>, {}>;
273
+ /** Closed package build performed in private verified staging before npm pack. */
274
+ export declare class CandidateNpmPackageBuild extends CandidateNpmPackageBuild_base {
275
+ }
276
+ declare const CandidateNpmPackage_base: Schema.Class<CandidateNpmPackage, Schema.Struct<{
277
+ readonly path: Schema.optionalKey<Schema.brand<Schema.String, "SafeRelativePath">>;
278
+ readonly build: Schema.optionalKey<typeof CandidateNpmPackageBuild>;
279
+ }>, {}>;
280
+ export declare class CandidateNpmPackage extends CandidateNpmPackage_base {
281
+ }
282
+ declare const CandidateConfig_base: Schema.Class<CandidateConfig, Schema.Struct<{
283
+ readonly $schema: Schema.optionalKey<Schema.String>;
284
+ readonly project: typeof CandidateProject;
285
+ readonly builds: Schema.optionalKey<Schema.NonEmptyArray<Schema.Union<readonly [typeof CandidateBunBuild, typeof CandidateCommandBuild, typeof CandidatePrebuiltBuild]>>>;
286
+ readonly preparations: Schema.optionalKey<Schema.NonEmptyArray<Schema.Union<readonly [typeof CandidateCheckPreparation, typeof CandidateArtifactPreparation, typeof CandidateCollectionPreparation]>>>;
287
+ readonly npmPackage: Schema.optionalKey<typeof CandidateNpmPackage>;
288
+ readonly artifacts: Schema.optionalKey<Schema.NonEmptyArray<typeof CandidateArtifact>>;
289
+ readonly archives: Schema.optionalKey<Schema.NonEmptyArray<typeof CandidateArchive>>;
290
+ readonly checksum: Schema.optionalKey<typeof CandidateChecksum>;
291
+ readonly catalogs: Schema.optionalKey<typeof CandidateCatalogs>;
292
+ readonly publish: Schema.optionalKey<typeof CandidatePublish>;
293
+ }>, {}>;
294
+ export declare class CandidateConfig extends CandidateConfig_base {
295
+ }
296
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/recipes/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ import * as Schema from "effect/Schema";
2
+ import * as Semver from "semver";
3
+ import { bunArtifactTargetIds } from "../model/bun-targets.js";
4
+ import { CredentialRef } from "../model/authority.js";
5
+ import { ArtifactCollectionContract, ArtifactCollectionSelector } from "../model/artifact-collection.js";
6
+ import { NonEmptyName, OutputId, SafeRelativePath, Version } from "../model/primitives.js";
7
+ import { PyPiProjectName, PyPiRepository } from "../model/pypi.js";
8
+ import { CatalogArchitecture, CatalogRepositoryPath, GitBranchName, GitHubRepositoryCoordinate } from "../model/catalog.js";
9
+ export { PyPiProjectName, PyPiRepository, normalizePyPiProjectName, pypiRepositoryEndpoints } from "../model/pypi.js";
10
+ const optional = Schema.optionalKey;
11
+ const nonempty = Schema.NonEmptyString;
12
+ const target = Schema.Literals(bunArtifactTargetIds);
13
+ export class CandidateProject extends Schema.Class("CandidateProject")({
14
+ name: NonEmptyName,
15
+ packageName: optional(nonempty),
16
+ version: Version,
17
+ repository: optional(nonempty),
18
+ tag: NonEmptyName
19
+ }) {
20
+ }
21
+ export class CandidateArtifact extends Schema.Class("CandidateArtifact")({
22
+ id: OutputId,
23
+ path: SafeRelativePath,
24
+ format: Schema.Literals(["tarball", "zip", "file", "executable"])
25
+ }) {
26
+ }
27
+ export class CandidateChecksum extends Schema.Class("CandidateChecksum")({
28
+ algorithm: Schema.Literals(["sha256", "sha512"])
29
+ }) {
30
+ }
31
+ const build = {
32
+ id: optional(nonempty),
33
+ targets: Schema.NonEmptyArray(target),
34
+ output: optional(SafeRelativePath),
35
+ binary: optional(NonEmptyName)
36
+ };
37
+ export class CandidateBunBuild extends Schema.Class("CandidateBunBuild")({
38
+ ...build,
39
+ builder: Schema.Literal("bun"),
40
+ entry: SafeRelativePath,
41
+ minify: optional(Schema.Literal(true))
42
+ }) {
43
+ }
44
+ export class CandidateCommandBuild extends Schema.Class("CandidateCommandBuild")({
45
+ ...build,
46
+ builder: Schema.Literal("command"),
47
+ output: SafeRelativePath,
48
+ run: Schema.NonEmptyArray(Schema.String)
49
+ }) {
50
+ }
51
+ export class CandidatePrebuiltBuild extends Schema.Class("CandidatePrebuiltBuild")({
52
+ ...build,
53
+ builder: Schema.Literal("prebuilt"),
54
+ output: SafeRelativePath
55
+ }) {
56
+ }
57
+ export const CandidateBuild = Schema.Union([
58
+ CandidateBunBuild,
59
+ CandidateCommandBuild,
60
+ CandidatePrebuiltBuild
61
+ ]);
62
+ export class CandidateArchive extends Schema.Class("CandidateArchive")({
63
+ id: optional(nonempty),
64
+ ids: optional(Schema.NonEmptyArray(OutputId)),
65
+ nameTemplate: optional(nonempty),
66
+ formats: optional(Schema.NonEmptyArray(Schema.Literals(["tar.gz", "zip"])))
67
+ }) {
68
+ }
69
+ const preparationBase = {
70
+ id: NonEmptyName,
71
+ run: Schema.NonEmptyArray(Schema.String),
72
+ cwd: optional(SafeRelativePath),
73
+ inputs: optional(Schema.Array(OutputId))
74
+ };
75
+ export class CandidateCheckPreparation extends Schema.Class("CandidateCheckPreparation")({
76
+ kind: Schema.Literal("check"), ...preparationBase
77
+ }) {
78
+ }
79
+ export class CandidateArtifactPreparation extends Schema.Class("CandidateArtifactPreparation")({
80
+ kind: Schema.Literal("artifact"), ...preparationBase,
81
+ outputs: Schema.NonEmptyArray(Schema.Struct({
82
+ id: OutputId, path: SafeRelativePath,
83
+ kind: optional(Schema.Literals(["file", "archive", "executable", "digest"])),
84
+ mediaType: optional(nonempty)
85
+ }))
86
+ }) {
87
+ }
88
+ const { id: _collectionId, producer: _collectionProducer, ...candidateCollectionFields } = ArtifactCollectionContract.fields;
89
+ /** Runtime-discovered outputs for one CommandArtifact preparation. */
90
+ export class CandidateArtifactCollection extends Schema.Class("CandidateArtifactCollection")({
91
+ ...candidateCollectionFields
92
+ }) {
93
+ }
94
+ export class CandidateCollectionPreparation extends Schema.Class("CandidateCollectionPreparation")({
95
+ kind: Schema.Literal("artifact"), ...preparationBase,
96
+ collection: CandidateArtifactCollection
97
+ }) {
98
+ }
99
+ export const CandidatePreparation = Schema.Union([
100
+ CandidateCheckPreparation, CandidateArtifactPreparation, CandidateCollectionPreparation
101
+ ]);
102
+ /** Parse and normalize the complete npm credential audience, including base path. */
103
+ export const canonicalizeNpmRegistryEndpoint = (value, policy = {}) => {
104
+ let endpoint;
105
+ try {
106
+ endpoint = new URL(value);
107
+ }
108
+ catch {
109
+ throw new Error("npm registry must be an absolute HTTPS URL.");
110
+ }
111
+ const loopback = endpoint.hostname === "localhost" || endpoint.hostname === "127.0.0.1" ||
112
+ endpoint.hostname === "[::1]";
113
+ if (endpoint.host.length === 0 || (endpoint.protocol !== "https:" &&
114
+ !(policy.allowInsecureLoopback === true && loopback && endpoint.protocol === "http:"))) {
115
+ throw new Error("npm registry must be HTTPS; HTTP is reserved for explicitly enabled loopback tests.");
116
+ }
117
+ if (endpoint.username.length > 0 || endpoint.password.length > 0) {
118
+ throw new Error("npm registry must not contain credentials.");
119
+ }
120
+ if (endpoint.search.length > 0 || endpoint.hash.length > 0) {
121
+ throw new Error("npm registry must not contain a query or fragment.");
122
+ }
123
+ endpoint.pathname = endpoint.pathname.replace(/\/{2,}/gu, "/").replace(/\/+$/u, "") || "/";
124
+ return `${endpoint.origin}${endpoint.pathname === "/" ? "/" : `${endpoint.pathname}/`}`;
125
+ };
126
+ /** Canonical npm registry audience, including its normalized base path. */
127
+ export const CanonicalNpmRegistryEndpoint = Schema.NonEmptyString.check(Schema.makeFilter((value) => {
128
+ try {
129
+ return canonicalizeNpmRegistryEndpoint(value) === value
130
+ ? undefined
131
+ : "npm registry endpoint must be canonical.";
132
+ }
133
+ catch (cause) {
134
+ return cause instanceof Error ? cause.message : String(cause);
135
+ }
136
+ })).pipe(Schema.brand("CanonicalNpmRegistryEndpoint"));
137
+ /** npm distribution tags are URI-safe names that do not parse as SemVer ranges. */
138
+ export const NpmDistTag = Schema.NonEmptyString.check(Schema.makeFilter((value) => {
139
+ if (Semver.validRange(value) !== null) {
140
+ return "npm dist-tag must not be a valid SemVer range.";
141
+ }
142
+ if (value.trim() !== value || encodeURIComponent(value) !== value) {
143
+ return "npm dist-tag must be a nonempty URI-safe name without surrounding whitespace.";
144
+ }
145
+ return undefined;
146
+ })).pipe(Schema.brand("NpmDistTag"));
147
+ export const NpmAccess = Schema.Literals(["public", "restricted"]);
148
+ export const NpmProvenancePolicy = Schema.Literals(["automatic", "required", "disabled"]);
149
+ const environmentName = Schema.NonEmptyString.check(Schema.makeFilter((value) => /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value)
150
+ ? undefined
151
+ : "Credential references must be portable environment variable names."));
152
+ export class NpmTokenAuthentication extends Schema.Class("NpmTokenAuthentication")({
153
+ strategy: Schema.Literal("token"),
154
+ credential: CredentialRef.check(Schema.makeFilter((value) => /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value)
155
+ ? undefined
156
+ : "npm token credential must be a portable environment variable name."))
157
+ }) {
158
+ }
159
+ export const NpmTrustedPublisherRepository = Schema.NonEmptyString.check(Schema.makeFilter((value) => /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/u.test(value)
160
+ ? undefined
161
+ : "npm trusted-publisher repository must be an owner/repository coordinate."));
162
+ export const NpmTrustedPublisherWorkflow = Schema.NonEmptyString.check(Schema.makeFilter((value) => /^[A-Za-z0-9_.-]+\.ya?ml$/u.test(value)
163
+ ? undefined
164
+ : "npm trusted-publisher workflow must be one YAML filename from .github/workflows/."));
165
+ export const NpmTrustedPublisherWorkflowRef = Schema.NonEmptyString.check(Schema.makeFilter((value) => {
166
+ if (/^[a-f0-9]{40}(?:[a-f0-9]{24})?$/u.test(value))
167
+ return undefined;
168
+ if (!/^refs\/(?:heads|tags)\/[A-Za-z0-9][A-Za-z0-9._/-]*$/u.test(value) ||
169
+ value.endsWith("/") || value.endsWith(".") || value.endsWith(".lock") ||
170
+ value.includes("..") || value.includes("//") || value.includes("@{")) {
171
+ return "npm trusted-publisher workflowRef must be an exact heads/tags ref or lowercase 40/64-hex commit SHA.";
172
+ }
173
+ return undefined;
174
+ }));
175
+ /** Operator-attested npm package trust relationship for one GitHub workflow. */
176
+ export class NpmTrustedPublisherAttestation extends Schema.Class("NpmTrustedPublisherAttestation")({
177
+ provider: Schema.Literal("github-actions"),
178
+ runner: Schema.Literal("github-hosted"),
179
+ repository: NpmTrustedPublisherRepository,
180
+ workflow: NpmTrustedPublisherWorkflow,
181
+ workflowRef: NpmTrustedPublisherWorkflowRef,
182
+ allowedAction: Schema.Literal("npm-publish-direct")
183
+ }) {
184
+ }
185
+ export class NpmTrustedPublishingAuthentication extends Schema.Class("NpmTrustedPublishingAuthentication")({
186
+ strategy: Schema.Literal("trusted-publishing"),
187
+ attestation: NpmTrustedPublisherAttestation
188
+ }) {
189
+ }
190
+ export const NpmAuthentication = Schema.Union([
191
+ NpmTokenAuthentication,
192
+ NpmTrustedPublishingAuthentication
193
+ ]);
194
+ /** Fully resolved npm intent. Every field is durable and behavior-affecting. */
195
+ export class CandidateNpmPublish extends Schema.Class("CandidateNpmPublish")({
196
+ packageArtifact: OutputId,
197
+ packageName: NonEmptyName,
198
+ registry: CanonicalNpmRegistryEndpoint,
199
+ distTag: NpmDistTag,
200
+ access: NpmAccess,
201
+ authentication: NpmAuthentication,
202
+ provenance: NpmProvenancePolicy
203
+ }) {
204
+ }
205
+ /** Closed PyPI destination set with standards-defined Simple and upload APIs. */
206
+ export class PyPiTokenAuthentication extends Schema.Class("PyPiTokenAuthentication")({
207
+ strategy: Schema.Literal("token"),
208
+ credential: CredentialRef.check(Schema.makeFilter((value) => /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value)
209
+ ? undefined
210
+ : "PyPI token credential must be a portable environment variable name.")),
211
+ /** PyPI project-scoped tokens are the only token authority admitted here. */
212
+ scope: Schema.Literal("project")
213
+ }) {
214
+ }
215
+ /**
216
+ * Durable description of the supported external Trusted Publisher owner.
217
+ * ts-release observes these publications but never exchanges OIDC assertions
218
+ * or dispatches their upload itself.
219
+ */
220
+ export class PyPiExternalTrustedPublishingAuthentication extends Schema.Class("PyPiExternalTrustedPublishingAuthentication")({
221
+ strategy: Schema.Literal("trusted-publishing"),
222
+ owner: Schema.Literal("external"),
223
+ action: Schema.Literal("pypa/gh-action-pypi-publish@release/v1"),
224
+ repository: NpmTrustedPublisherRepository,
225
+ workflow: NpmTrustedPublisherWorkflow,
226
+ workflowRef: NpmTrustedPublisherWorkflowRef,
227
+ environment: nonempty,
228
+ /** Complete bundled authority set for the configured publisher identity. */
229
+ projects: Schema.NonEmptyArray(nonempty)
230
+ }) {
231
+ }
232
+ export const PyPiAuthentication = Schema.Union([
233
+ PyPiTokenAuthentication,
234
+ PyPiExternalTrustedPublishingAuthentication
235
+ ]);
236
+ /** Fully resolved prebuilt-distribution publication intent. */
237
+ export class CandidatePyPiPublish extends Schema.Class("CandidatePyPiPublish")({
238
+ artifacts: Schema.NonEmptyArray(OutputId),
239
+ project: PyPiProjectName,
240
+ version: Version,
241
+ repository: PyPiRepository,
242
+ authentication: PyPiAuthentication
243
+ }) {
244
+ }
245
+ export class CandidateCatalogSource extends Schema.Class("CandidateCatalogSource")({
246
+ artifact: OutputId,
247
+ architecture: CatalogArchitecture
248
+ }) {
249
+ }
250
+ const catalogRendererFields = {
251
+ id: NonEmptyName,
252
+ description: nonempty,
253
+ homepage: nonempty,
254
+ license: optional(nonempty),
255
+ sources: Schema.NonEmptyArray(CandidateCatalogSource)
256
+ };
257
+ export class CandidateHomebrewCatalog extends Schema.Class("CandidateHomebrewCatalog")({
258
+ ...catalogRendererFields,
259
+ formulaName: NonEmptyName,
260
+ installPath: NonEmptyName
261
+ }) {
262
+ }
263
+ export class CandidateScoopCatalog extends Schema.Class("CandidateScoopCatalog")({
264
+ ...catalogRendererFields,
265
+ manifestName: NonEmptyName,
266
+ bin: NonEmptyName
267
+ }) {
268
+ }
269
+ export class CandidateCatalogs extends Schema.Class("CandidateCatalogs")({
270
+ homebrew: optional(Schema.NonEmptyArray(CandidateHomebrewCatalog)),
271
+ scoop: optional(Schema.NonEmptyArray(CandidateScoopCatalog))
272
+ }) {
273
+ }
274
+ export class CandidateCatalogGitDestination extends Schema.Class("CandidateCatalogGitDestination")({
275
+ catalog: NonEmptyName,
276
+ repository: GitHubRepositoryCoordinate,
277
+ branch: GitBranchName,
278
+ targetPath: CatalogRepositoryPath,
279
+ statePath: CatalogRepositoryPath,
280
+ tokenEnv: environmentName
281
+ }) {
282
+ }
283
+ export class CandidateGitHubPublish extends Schema.Class("CandidateGitHubPublish")({
284
+ repository: optional(nonempty),
285
+ tokenEnv: optional(environmentName),
286
+ draft: optional(Schema.Boolean),
287
+ prerelease: optional(Schema.Union([Schema.Boolean, Schema.Literal("auto")])),
288
+ body: optional(Schema.String),
289
+ bodyArtifact: optional(OutputId),
290
+ ids: optional(Schema.Array(OutputId)),
291
+ collections: optional(Schema.NonEmptyArray(ArtifactCollectionSelector))
292
+ }) {
293
+ }
294
+ export class CandidatePublish extends Schema.Class("CandidatePublish")({
295
+ npm: optional(CandidateNpmPublish),
296
+ pypi: optional(CandidatePyPiPublish),
297
+ catalogGit: optional(Schema.NonEmptyArray(CandidateCatalogGitDestination)),
298
+ github: optional(CandidateGitHubPublish)
299
+ }) {
300
+ }
301
+ /** Closed package build performed in private verified staging before npm pack. */
302
+ export class CandidateNpmPackageBuild extends Schema.Class("CandidateNpmPackageBuild")({
303
+ run: Schema.NonEmptyArray(Schema.NonEmptyString),
304
+ outputRoots: Schema.NonEmptyArray(SafeRelativePath)
305
+ }) {
306
+ }
307
+ export class CandidateNpmPackage extends Schema.Class("CandidateNpmPackage")({
308
+ path: optional(SafeRelativePath),
309
+ build: optional(CandidateNpmPackageBuild)
310
+ }) {
311
+ }
312
+ export class CandidateConfig extends Schema.Class("CandidateConfig")({
313
+ "$schema": optional(Schema.String),
314
+ project: CandidateProject,
315
+ builds: optional(Schema.NonEmptyArray(CandidateBuild)),
316
+ preparations: optional(Schema.NonEmptyArray(CandidatePreparation)),
317
+ npmPackage: optional(CandidateNpmPackage),
318
+ artifacts: optional(Schema.NonEmptyArray(CandidateArtifact)),
319
+ archives: optional(Schema.NonEmptyArray(CandidateArchive)),
320
+ checksum: optional(CandidateChecksum),
321
+ catalogs: optional(CandidateCatalogs),
322
+ publish: optional(CandidatePublish)
323
+ }) {
324
+ }
325
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/recipes/config.ts"],"names":[],"mappings":"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"}