@chief-clancy/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/board/azdo/api/api.d.ts +95 -0
  4. package/dist/board/azdo/api/api.d.ts.map +1 -0
  5. package/dist/board/azdo/api/api.js +173 -0
  6. package/dist/board/azdo/api/api.js.map +1 -0
  7. package/dist/board/azdo/api/helpers.d.ts +89 -0
  8. package/dist/board/azdo/api/helpers.d.ts.map +1 -0
  9. package/dist/board/azdo/api/helpers.js +133 -0
  10. package/dist/board/azdo/api/helpers.js.map +1 -0
  11. package/dist/board/azdo/api/index.d.ts +5 -0
  12. package/dist/board/azdo/api/index.d.ts.map +1 -0
  13. package/dist/board/azdo/api/index.js +3 -0
  14. package/dist/board/azdo/api/index.js.map +1 -0
  15. package/dist/board/azdo/azdo-board.d.ts +12 -0
  16. package/dist/board/azdo/azdo-board.d.ts.map +1 -0
  17. package/dist/board/azdo/azdo-board.js +104 -0
  18. package/dist/board/azdo/azdo-board.js.map +1 -0
  19. package/dist/board/azdo/index.d.ts +3 -0
  20. package/dist/board/azdo/index.d.ts.map +1 -0
  21. package/dist/board/azdo/index.js +3 -0
  22. package/dist/board/azdo/index.js.map +1 -0
  23. package/dist/board/azdo/labels/index.d.ts +2 -0
  24. package/dist/board/azdo/labels/index.d.ts.map +1 -0
  25. package/dist/board/azdo/labels/index.js +2 -0
  26. package/dist/board/azdo/labels/index.js.map +1 -0
  27. package/dist/board/azdo/labels/labels.d.ts +27 -0
  28. package/dist/board/azdo/labels/labels.d.ts.map +1 -0
  29. package/dist/board/azdo/labels/labels.js +64 -0
  30. package/dist/board/azdo/labels/labels.js.map +1 -0
  31. package/dist/board/azdo/relations/index.d.ts +2 -0
  32. package/dist/board/azdo/relations/index.d.ts.map +1 -0
  33. package/dist/board/azdo/relations/index.js +2 -0
  34. package/dist/board/azdo/relations/index.js.map +1 -0
  35. package/dist/board/azdo/relations/relations.d.ts +37 -0
  36. package/dist/board/azdo/relations/relations.d.ts.map +1 -0
  37. package/dist/board/azdo/relations/relations.js +109 -0
  38. package/dist/board/azdo/relations/relations.js.map +1 -0
  39. package/dist/board/detect-board.d.ts +28 -0
  40. package/dist/board/detect-board.d.ts.map +1 -0
  41. package/dist/board/detect-board.js +80 -0
  42. package/dist/board/detect-board.js.map +1 -0
  43. package/dist/board/factory/factory.d.ts +18 -0
  44. package/dist/board/factory/factory.d.ts.map +1 -0
  45. package/dist/board/factory/factory.js +34 -0
  46. package/dist/board/factory/factory.js.map +1 -0
  47. package/dist/board/factory/index.d.ts +2 -0
  48. package/dist/board/factory/index.d.ts.map +1 -0
  49. package/dist/board/factory/index.js +2 -0
  50. package/dist/board/factory/index.js.map +1 -0
  51. package/dist/board/github/api/api.d.ts +86 -0
  52. package/dist/board/github/api/api.d.ts.map +1 -0
  53. package/dist/board/github/api/api.js +161 -0
  54. package/dist/board/github/api/api.js.map +1 -0
  55. package/dist/board/github/api/index.d.ts +3 -0
  56. package/dist/board/github/api/index.d.ts.map +1 -0
  57. package/dist/board/github/api/index.js +2 -0
  58. package/dist/board/github/api/index.js.map +1 -0
  59. package/dist/board/github/github-board.d.ts +19 -0
  60. package/dist/board/github/github-board.d.ts.map +1 -0
  61. package/dist/board/github/github-board.js +104 -0
  62. package/dist/board/github/github-board.js.map +1 -0
  63. package/dist/board/github/index.d.ts +3 -0
  64. package/dist/board/github/index.d.ts.map +1 -0
  65. package/dist/board/github/index.js +3 -0
  66. package/dist/board/github/index.js.map +1 -0
  67. package/dist/board/github/labels/index.d.ts +2 -0
  68. package/dist/board/github/labels/index.d.ts.map +1 -0
  69. package/dist/board/github/labels/index.js +2 -0
  70. package/dist/board/github/labels/index.js.map +1 -0
  71. package/dist/board/github/labels/labels.d.ts +42 -0
  72. package/dist/board/github/labels/labels.d.ts.map +1 -0
  73. package/dist/board/github/labels/labels.js +93 -0
  74. package/dist/board/github/labels/labels.js.map +1 -0
  75. package/dist/board/github/relations/index.d.ts +2 -0
  76. package/dist/board/github/relations/index.d.ts.map +1 -0
  77. package/dist/board/github/relations/index.js +2 -0
  78. package/dist/board/github/relations/index.js.map +1 -0
  79. package/dist/board/github/relations/relations.d.ts +54 -0
  80. package/dist/board/github/relations/relations.d.ts.map +1 -0
  81. package/dist/board/github/relations/relations.js +152 -0
  82. package/dist/board/github/relations/relations.js.map +1 -0
  83. package/dist/board/index.d.ts +2 -0
  84. package/dist/board/index.d.ts.map +1 -0
  85. package/dist/board/index.js +2 -0
  86. package/dist/board/index.js.map +1 -0
  87. package/dist/board/jira/api/api.d.ts +129 -0
  88. package/dist/board/jira/api/api.d.ts.map +1 -0
  89. package/dist/board/jira/api/api.js +207 -0
  90. package/dist/board/jira/api/api.js.map +1 -0
  91. package/dist/board/jira/api/index.d.ts +3 -0
  92. package/dist/board/jira/api/index.d.ts.map +1 -0
  93. package/dist/board/jira/api/index.js +2 -0
  94. package/dist/board/jira/api/index.js.map +1 -0
  95. package/dist/board/jira/index.d.ts +3 -0
  96. package/dist/board/jira/index.d.ts.map +1 -0
  97. package/dist/board/jira/index.js +3 -0
  98. package/dist/board/jira/index.js.map +1 -0
  99. package/dist/board/jira/jira-board.d.ts +12 -0
  100. package/dist/board/jira/jira-board.d.ts.map +1 -0
  101. package/dist/board/jira/jira-board.js +112 -0
  102. package/dist/board/jira/jira-board.js.map +1 -0
  103. package/dist/board/jira/labels/index.d.ts +2 -0
  104. package/dist/board/jira/labels/index.d.ts.map +1 -0
  105. package/dist/board/jira/labels/index.js +2 -0
  106. package/dist/board/jira/labels/index.js.map +1 -0
  107. package/dist/board/jira/labels/labels.d.ts +34 -0
  108. package/dist/board/jira/labels/labels.d.ts.map +1 -0
  109. package/dist/board/jira/labels/labels.js +69 -0
  110. package/dist/board/jira/labels/labels.js.map +1 -0
  111. package/dist/board/jira/relations/index.d.ts +2 -0
  112. package/dist/board/jira/relations/index.d.ts.map +1 -0
  113. package/dist/board/jira/relations/index.js +2 -0
  114. package/dist/board/jira/relations/index.js.map +1 -0
  115. package/dist/board/jira/relations/relations.d.ts +44 -0
  116. package/dist/board/jira/relations/relations.d.ts.map +1 -0
  117. package/dist/board/jira/relations/relations.js +111 -0
  118. package/dist/board/jira/relations/relations.js.map +1 -0
  119. package/dist/board/linear/api/api.d.ts +68 -0
  120. package/dist/board/linear/api/api.d.ts.map +1 -0
  121. package/dist/board/linear/api/api.js +179 -0
  122. package/dist/board/linear/api/api.js.map +1 -0
  123. package/dist/board/linear/api/index.d.ts +2 -0
  124. package/dist/board/linear/api/index.d.ts.map +1 -0
  125. package/dist/board/linear/api/index.js +2 -0
  126. package/dist/board/linear/api/index.js.map +1 -0
  127. package/dist/board/linear/index.d.ts +3 -0
  128. package/dist/board/linear/index.d.ts.map +1 -0
  129. package/dist/board/linear/index.js +3 -0
  130. package/dist/board/linear/index.js.map +1 -0
  131. package/dist/board/linear/labels/index.d.ts +2 -0
  132. package/dist/board/linear/labels/index.d.ts.map +1 -0
  133. package/dist/board/linear/labels/index.js +2 -0
  134. package/dist/board/linear/labels/index.js.map +1 -0
  135. package/dist/board/linear/labels/labels.d.ts +63 -0
  136. package/dist/board/linear/labels/labels.d.ts.map +1 -0
  137. package/dist/board/linear/labels/labels.js +204 -0
  138. package/dist/board/linear/labels/labels.js.map +1 -0
  139. package/dist/board/linear/linear-board.d.ts +18 -0
  140. package/dist/board/linear/linear-board.d.ts.map +1 -0
  141. package/dist/board/linear/linear-board.js +115 -0
  142. package/dist/board/linear/linear-board.js.map +1 -0
  143. package/dist/board/linear/relations/index.d.ts +2 -0
  144. package/dist/board/linear/relations/index.d.ts.map +1 -0
  145. package/dist/board/linear/relations/index.js +2 -0
  146. package/dist/board/linear/relations/index.js.map +1 -0
  147. package/dist/board/linear/relations/relations.d.ts +67 -0
  148. package/dist/board/linear/relations/relations.d.ts.map +1 -0
  149. package/dist/board/linear/relations/relations.js +195 -0
  150. package/dist/board/linear/relations/relations.js.map +1 -0
  151. package/dist/board/notion/api/api.d.ts +83 -0
  152. package/dist/board/notion/api/api.d.ts.map +1 -0
  153. package/dist/board/notion/api/api.js +124 -0
  154. package/dist/board/notion/api/api.js.map +1 -0
  155. package/dist/board/notion/api/helpers.d.ts +105 -0
  156. package/dist/board/notion/api/helpers.d.ts.map +1 -0
  157. package/dist/board/notion/api/helpers.js +175 -0
  158. package/dist/board/notion/api/helpers.js.map +1 -0
  159. package/dist/board/notion/api/index.d.ts +4 -0
  160. package/dist/board/notion/api/index.d.ts.map +1 -0
  161. package/dist/board/notion/api/index.js +3 -0
  162. package/dist/board/notion/api/index.js.map +1 -0
  163. package/dist/board/notion/index.d.ts +3 -0
  164. package/dist/board/notion/index.d.ts.map +1 -0
  165. package/dist/board/notion/index.js +3 -0
  166. package/dist/board/notion/index.js.map +1 -0
  167. package/dist/board/notion/labels/index.d.ts +2 -0
  168. package/dist/board/notion/labels/index.d.ts.map +1 -0
  169. package/dist/board/notion/labels/index.js +2 -0
  170. package/dist/board/notion/labels/index.js.map +1 -0
  171. package/dist/board/notion/labels/labels.d.ts +30 -0
  172. package/dist/board/notion/labels/labels.d.ts.map +1 -0
  173. package/dist/board/notion/labels/labels.js +56 -0
  174. package/dist/board/notion/labels/labels.js.map +1 -0
  175. package/dist/board/notion/notion-board.d.ts +12 -0
  176. package/dist/board/notion/notion-board.d.ts.map +1 -0
  177. package/dist/board/notion/notion-board.js +156 -0
  178. package/dist/board/notion/notion-board.js.map +1 -0
  179. package/dist/board/notion/relations/index.d.ts +2 -0
  180. package/dist/board/notion/relations/index.d.ts.map +1 -0
  181. package/dist/board/notion/relations/index.js +2 -0
  182. package/dist/board/notion/relations/index.js.map +1 -0
  183. package/dist/board/notion/relations/relations.d.ts +43 -0
  184. package/dist/board/notion/relations/relations.d.ts.map +1 -0
  185. package/dist/board/notion/relations/relations.js +127 -0
  186. package/dist/board/notion/relations/relations.js.map +1 -0
  187. package/dist/board/shortcut/api/api.d.ts +110 -0
  188. package/dist/board/shortcut/api/api.d.ts.map +1 -0
  189. package/dist/board/shortcut/api/api.js +227 -0
  190. package/dist/board/shortcut/api/api.js.map +1 -0
  191. package/dist/board/shortcut/api/index.d.ts +2 -0
  192. package/dist/board/shortcut/api/index.d.ts.map +1 -0
  193. package/dist/board/shortcut/api/index.js +2 -0
  194. package/dist/board/shortcut/api/index.js.map +1 -0
  195. package/dist/board/shortcut/index.d.ts +3 -0
  196. package/dist/board/shortcut/index.d.ts.map +1 -0
  197. package/dist/board/shortcut/index.js +3 -0
  198. package/dist/board/shortcut/index.js.map +1 -0
  199. package/dist/board/shortcut/labels/index.d.ts +2 -0
  200. package/dist/board/shortcut/labels/index.d.ts.map +1 -0
  201. package/dist/board/shortcut/labels/index.js +2 -0
  202. package/dist/board/shortcut/labels/index.js.map +1 -0
  203. package/dist/board/shortcut/labels/labels.d.ts +95 -0
  204. package/dist/board/shortcut/labels/labels.d.ts.map +1 -0
  205. package/dist/board/shortcut/labels/labels.js +154 -0
  206. package/dist/board/shortcut/labels/labels.js.map +1 -0
  207. package/dist/board/shortcut/relations/index.d.ts +2 -0
  208. package/dist/board/shortcut/relations/index.d.ts.map +1 -0
  209. package/dist/board/shortcut/relations/index.js +2 -0
  210. package/dist/board/shortcut/relations/index.js.map +1 -0
  211. package/dist/board/shortcut/relations/relations.d.ts +44 -0
  212. package/dist/board/shortcut/relations/relations.d.ts.map +1 -0
  213. package/dist/board/shortcut/relations/relations.js +118 -0
  214. package/dist/board/shortcut/relations/relations.js.map +1 -0
  215. package/dist/board/shortcut/shortcut-board.d.ts +18 -0
  216. package/dist/board/shortcut/shortcut-board.d.ts.map +1 -0
  217. package/dist/board/shortcut/shortcut-board.js +143 -0
  218. package/dist/board/shortcut/shortcut-board.js.map +1 -0
  219. package/dist/dev/lifecycle/branch/branch.d.ts +35 -0
  220. package/dist/dev/lifecycle/branch/branch.d.ts.map +1 -0
  221. package/dist/dev/lifecycle/branch/branch.js +48 -0
  222. package/dist/dev/lifecycle/branch/branch.js.map +1 -0
  223. package/dist/dev/lifecycle/branch/index.d.ts +2 -0
  224. package/dist/dev/lifecycle/branch/index.d.ts.map +1 -0
  225. package/dist/dev/lifecycle/branch/index.js +2 -0
  226. package/dist/dev/lifecycle/branch/index.js.map +1 -0
  227. package/dist/dev/lifecycle/commit-type/commit-type.d.ts +22 -0
  228. package/dist/dev/lifecycle/commit-type/commit-type.d.ts.map +1 -0
  229. package/dist/dev/lifecycle/commit-type/commit-type.js +50 -0
  230. package/dist/dev/lifecycle/commit-type/commit-type.js.map +1 -0
  231. package/dist/dev/lifecycle/commit-type/index.d.ts +2 -0
  232. package/dist/dev/lifecycle/commit-type/index.d.ts.map +1 -0
  233. package/dist/dev/lifecycle/commit-type/index.js +2 -0
  234. package/dist/dev/lifecycle/commit-type/index.js.map +1 -0
  235. package/dist/dev/lifecycle/cost/cost.d.ts +28 -0
  236. package/dist/dev/lifecycle/cost/cost.d.ts.map +1 -0
  237. package/dist/dev/lifecycle/cost/cost.js +36 -0
  238. package/dist/dev/lifecycle/cost/cost.js.map +1 -0
  239. package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts +44 -0
  240. package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts.map +1 -0
  241. package/dist/dev/lifecycle/deliver-epic/deliver-epic.js +75 -0
  242. package/dist/dev/lifecycle/deliver-epic/deliver-epic.js.map +1 -0
  243. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts +51 -0
  244. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts.map +1 -0
  245. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js +132 -0
  246. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js.map +1 -0
  247. package/dist/dev/lifecycle/epic/epic.d.ts +66 -0
  248. package/dist/dev/lifecycle/epic/epic.d.ts.map +1 -0
  249. package/dist/dev/lifecycle/epic/epic.js +91 -0
  250. package/dist/dev/lifecycle/epic/epic.js.map +1 -0
  251. package/dist/dev/lifecycle/epic/index.d.ts +2 -0
  252. package/dist/dev/lifecycle/epic/index.d.ts.map +1 -0
  253. package/dist/dev/lifecycle/epic/index.js +2 -0
  254. package/dist/dev/lifecycle/epic/index.js.map +1 -0
  255. package/dist/dev/lifecycle/feasibility/feasibility.d.ts +55 -0
  256. package/dist/dev/lifecycle/feasibility/feasibility.d.ts.map +1 -0
  257. package/dist/dev/lifecycle/feasibility/feasibility.js +75 -0
  258. package/dist/dev/lifecycle/feasibility/feasibility.js.map +1 -0
  259. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts +49 -0
  260. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts.map +1 -0
  261. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js +81 -0
  262. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js.map +1 -0
  263. package/dist/dev/lifecycle/format/format.d.ts +11 -0
  264. package/dist/dev/lifecycle/format/format.d.ts.map +1 -0
  265. package/dist/dev/lifecycle/format/format.js +23 -0
  266. package/dist/dev/lifecycle/format/format.js.map +1 -0
  267. package/dist/dev/lifecycle/lock/index.d.ts +3 -0
  268. package/dist/dev/lifecycle/lock/index.d.ts.map +1 -0
  269. package/dist/dev/lifecycle/lock/index.js +2 -0
  270. package/dist/dev/lifecycle/lock/index.js.map +1 -0
  271. package/dist/dev/lifecycle/lock/lock.d.ts +68 -0
  272. package/dist/dev/lifecycle/lock/lock.d.ts.map +1 -0
  273. package/dist/dev/lifecycle/lock/lock.js +125 -0
  274. package/dist/dev/lifecycle/lock/lock.js.map +1 -0
  275. package/dist/dev/lifecycle/outcome/index.d.ts +2 -0
  276. package/dist/dev/lifecycle/outcome/index.d.ts.map +1 -0
  277. package/dist/dev/lifecycle/outcome/index.js +2 -0
  278. package/dist/dev/lifecycle/outcome/index.js.map +1 -0
  279. package/dist/dev/lifecycle/outcome/outcome.d.ts +65 -0
  280. package/dist/dev/lifecycle/outcome/outcome.d.ts.map +1 -0
  281. package/dist/dev/lifecycle/outcome/outcome.js +61 -0
  282. package/dist/dev/lifecycle/outcome/outcome.js.map +1 -0
  283. package/dist/dev/lifecycle/pr-creation/index.d.ts +3 -0
  284. package/dist/dev/lifecycle/pr-creation/index.d.ts.map +1 -0
  285. package/dist/dev/lifecycle/pr-creation/index.js +2 -0
  286. package/dist/dev/lifecycle/pr-creation/index.js.map +1 -0
  287. package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts +47 -0
  288. package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts.map +1 -0
  289. package/dist/dev/lifecycle/pr-creation/pr-creation.js +143 -0
  290. package/dist/dev/lifecycle/pr-creation/pr-creation.js.map +1 -0
  291. package/dist/dev/lifecycle/preflight/preflight.d.ts +42 -0
  292. package/dist/dev/lifecycle/preflight/preflight.d.ts.map +1 -0
  293. package/dist/dev/lifecycle/preflight/preflight.js +101 -0
  294. package/dist/dev/lifecycle/preflight/preflight.js.map +1 -0
  295. package/dist/dev/lifecycle/progress/index.d.ts +3 -0
  296. package/dist/dev/lifecycle/progress/index.d.ts.map +1 -0
  297. package/dist/dev/lifecycle/progress/index.js +2 -0
  298. package/dist/dev/lifecycle/progress/index.js.map +1 -0
  299. package/dist/dev/lifecycle/progress/progress.d.ts +98 -0
  300. package/dist/dev/lifecycle/progress/progress.d.ts.map +1 -0
  301. package/dist/dev/lifecycle/progress/progress.js +212 -0
  302. package/dist/dev/lifecycle/progress/progress.js.map +1 -0
  303. package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts +86 -0
  304. package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts.map +1 -0
  305. package/dist/dev/lifecycle/pull-request/azdo/azdo.js +198 -0
  306. package/dist/dev/lifecycle/pull-request/azdo/azdo.js.map +1 -0
  307. package/dist/dev/lifecycle/pull-request/azdo/index.d.ts +2 -0
  308. package/dist/dev/lifecycle/pull-request/azdo/index.d.ts.map +1 -0
  309. package/dist/dev/lifecycle/pull-request/azdo/index.js +2 -0
  310. package/dist/dev/lifecycle/pull-request/azdo/index.js.map +1 -0
  311. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts +85 -0
  312. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts.map +1 -0
  313. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js +158 -0
  314. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js.map +1 -0
  315. package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts +3 -0
  316. package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts.map +1 -0
  317. package/dist/dev/lifecycle/pull-request/bitbucket/index.js +3 -0
  318. package/dist/dev/lifecycle/pull-request/bitbucket/index.js.map +1 -0
  319. package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts +85 -0
  320. package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts.map +1 -0
  321. package/dist/dev/lifecycle/pull-request/bitbucket/server.js +168 -0
  322. package/dist/dev/lifecycle/pull-request/bitbucket/server.js.map +1 -0
  323. package/dist/dev/lifecycle/pull-request/github/github.d.ts +107 -0
  324. package/dist/dev/lifecycle/pull-request/github/github.d.ts.map +1 -0
  325. package/dist/dev/lifecycle/pull-request/github/github.js +225 -0
  326. package/dist/dev/lifecycle/pull-request/github/github.js.map +1 -0
  327. package/dist/dev/lifecycle/pull-request/github/index.d.ts +2 -0
  328. package/dist/dev/lifecycle/pull-request/github/index.d.ts.map +1 -0
  329. package/dist/dev/lifecycle/pull-request/github/index.js +2 -0
  330. package/dist/dev/lifecycle/pull-request/github/index.js.map +1 -0
  331. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts +103 -0
  332. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts.map +1 -0
  333. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js +215 -0
  334. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js.map +1 -0
  335. package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts +2 -0
  336. package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts.map +1 -0
  337. package/dist/dev/lifecycle/pull-request/gitlab/index.js +2 -0
  338. package/dist/dev/lifecycle/pull-request/gitlab/index.js.map +1 -0
  339. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts +44 -0
  340. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts.map +1 -0
  341. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js +64 -0
  342. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js.map +1 -0
  343. package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts +3 -0
  344. package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts.map +1 -0
  345. package/dist/dev/lifecycle/pull-request/pr-body/index.js +2 -0
  346. package/dist/dev/lifecycle/pull-request/pr-body/index.js.map +1 -0
  347. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts +65 -0
  348. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts.map +1 -0
  349. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js +144 -0
  350. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js.map +1 -0
  351. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts +30 -0
  352. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts.map +1 -0
  353. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js +39 -0
  354. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js.map +1 -0
  355. package/dist/dev/lifecycle/quality/quality.d.ts +99 -0
  356. package/dist/dev/lifecycle/quality/quality.d.ts.map +1 -0
  357. package/dist/dev/lifecycle/quality/quality.js +213 -0
  358. package/dist/dev/lifecycle/quality/quality.js.map +1 -0
  359. package/dist/dev/lifecycle/resume/resume.d.ts +64 -0
  360. package/dist/dev/lifecycle/resume/resume.d.ts.map +1 -0
  361. package/dist/dev/lifecycle/resume/resume.js +171 -0
  362. package/dist/dev/lifecycle/resume/resume.js.map +1 -0
  363. package/dist/dev/lifecycle/rework/rework-builders.d.ts +20 -0
  364. package/dist/dev/lifecycle/rework/rework-builders.d.ts.map +1 -0
  365. package/dist/dev/lifecycle/rework/rework-builders.js +203 -0
  366. package/dist/dev/lifecycle/rework/rework-builders.js.map +1 -0
  367. package/dist/dev/lifecycle/rework/rework-handlers.d.ts +50 -0
  368. package/dist/dev/lifecycle/rework/rework-handlers.d.ts.map +1 -0
  369. package/dist/dev/lifecycle/rework/rework-handlers.js +41 -0
  370. package/dist/dev/lifecycle/rework/rework-handlers.js.map +1 -0
  371. package/dist/dev/lifecycle/rework/rework.d.ts +63 -0
  372. package/dist/dev/lifecycle/rework/rework.d.ts.map +1 -0
  373. package/dist/dev/lifecycle/rework/rework.js +141 -0
  374. package/dist/dev/lifecycle/rework/rework.js.map +1 -0
  375. package/dist/dev/pipeline/context.d.ts +105 -0
  376. package/dist/dev/pipeline/context.d.ts.map +1 -0
  377. package/dist/dev/pipeline/context.js +107 -0
  378. package/dist/dev/pipeline/context.js.map +1 -0
  379. package/dist/dev/pipeline/index.d.ts +6 -0
  380. package/dist/dev/pipeline/index.d.ts.map +1 -0
  381. package/dist/dev/pipeline/index.js +5 -0
  382. package/dist/dev/pipeline/index.js.map +1 -0
  383. package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts +62 -0
  384. package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts.map +1 -0
  385. package/dist/dev/pipeline/phases/branch-setup/branch-setup.js +128 -0
  386. package/dist/dev/pipeline/phases/branch-setup/branch-setup.js.map +1 -0
  387. package/dist/dev/pipeline/phases/branch-setup/index.d.ts +3 -0
  388. package/dist/dev/pipeline/phases/branch-setup/index.d.ts.map +1 -0
  389. package/dist/dev/pipeline/phases/branch-setup/index.js +2 -0
  390. package/dist/dev/pipeline/phases/branch-setup/index.js.map +1 -0
  391. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts +32 -0
  392. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts.map +1 -0
  393. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js +32 -0
  394. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js.map +1 -0
  395. package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts +3 -0
  396. package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts.map +1 -0
  397. package/dist/dev/pipeline/phases/cleanup-phase/index.js +2 -0
  398. package/dist/dev/pipeline/phases/cleanup-phase/index.js.map +1 -0
  399. package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts +40 -0
  400. package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts.map +1 -0
  401. package/dist/dev/pipeline/phases/cost-phase/cost-phase.js +43 -0
  402. package/dist/dev/pipeline/phases/cost-phase/cost-phase.js.map +1 -0
  403. package/dist/dev/pipeline/phases/cost-phase/index.d.ts +3 -0
  404. package/dist/dev/pipeline/phases/cost-phase/index.d.ts.map +1 -0
  405. package/dist/dev/pipeline/phases/cost-phase/index.js +2 -0
  406. package/dist/dev/pipeline/phases/cost-phase/index.js.map +1 -0
  407. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts +68 -0
  408. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts.map +1 -0
  409. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js +125 -0
  410. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js.map +1 -0
  411. package/dist/dev/pipeline/phases/deliver-phase/index.d.ts +3 -0
  412. package/dist/dev/pipeline/phases/deliver-phase/index.d.ts.map +1 -0
  413. package/dist/dev/pipeline/phases/deliver-phase/index.js +2 -0
  414. package/dist/dev/pipeline/phases/deliver-phase/index.js.map +1 -0
  415. package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts +38 -0
  416. package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts.map +1 -0
  417. package/dist/dev/pipeline/phases/dry-run/dry-run.js +33 -0
  418. package/dist/dev/pipeline/phases/dry-run/dry-run.js.map +1 -0
  419. package/dist/dev/pipeline/phases/dry-run/index.d.ts +2 -0
  420. package/dist/dev/pipeline/phases/dry-run/index.d.ts.map +1 -0
  421. package/dist/dev/pipeline/phases/dry-run/index.js +2 -0
  422. package/dist/dev/pipeline/phases/dry-run/index.js.map +1 -0
  423. package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts +48 -0
  424. package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts.map +1 -0
  425. package/dist/dev/pipeline/phases/epic-completion/epic-completion.js +42 -0
  426. package/dist/dev/pipeline/phases/epic-completion/epic-completion.js.map +1 -0
  427. package/dist/dev/pipeline/phases/epic-completion/index.d.ts +3 -0
  428. package/dist/dev/pipeline/phases/epic-completion/index.d.ts.map +1 -0
  429. package/dist/dev/pipeline/phases/epic-completion/index.js +2 -0
  430. package/dist/dev/pipeline/phases/epic-completion/index.js.map +1 -0
  431. package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts +52 -0
  432. package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts.map +1 -0
  433. package/dist/dev/pipeline/phases/feasibility/feasibility.js +34 -0
  434. package/dist/dev/pipeline/phases/feasibility/feasibility.js.map +1 -0
  435. package/dist/dev/pipeline/phases/feasibility/index.d.ts +3 -0
  436. package/dist/dev/pipeline/phases/feasibility/index.d.ts.map +1 -0
  437. package/dist/dev/pipeline/phases/feasibility/index.js +2 -0
  438. package/dist/dev/pipeline/phases/feasibility/index.js.map +1 -0
  439. package/dist/dev/pipeline/phases/index.d.ts +26 -0
  440. package/dist/dev/pipeline/phases/index.d.ts.map +1 -0
  441. package/dist/dev/pipeline/phases/index.js +14 -0
  442. package/dist/dev/pipeline/phases/index.js.map +1 -0
  443. package/dist/dev/pipeline/phases/lock-check/index.d.ts +3 -0
  444. package/dist/dev/pipeline/phases/lock-check/index.d.ts.map +1 -0
  445. package/dist/dev/pipeline/phases/lock-check/index.js +2 -0
  446. package/dist/dev/pipeline/phases/lock-check/index.js.map +1 -0
  447. package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts +55 -0
  448. package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts.map +1 -0
  449. package/dist/dev/pipeline/phases/lock-check/lock-check.js +60 -0
  450. package/dist/dev/pipeline/phases/lock-check/lock-check.js.map +1 -0
  451. package/dist/dev/pipeline/phases/pr-retry/index.d.ts +3 -0
  452. package/dist/dev/pipeline/phases/pr-retry/index.d.ts.map +1 -0
  453. package/dist/dev/pipeline/phases/pr-retry/index.js +2 -0
  454. package/dist/dev/pipeline/phases/pr-retry/index.js.map +1 -0
  455. package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts +58 -0
  456. package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts.map +1 -0
  457. package/dist/dev/pipeline/phases/pr-retry/pr-retry.js +82 -0
  458. package/dist/dev/pipeline/phases/pr-retry/pr-retry.js.map +1 -0
  459. package/dist/dev/pipeline/phases/preflight-phase/index.d.ts +3 -0
  460. package/dist/dev/pipeline/phases/preflight-phase/index.d.ts.map +1 -0
  461. package/dist/dev/pipeline/phases/preflight-phase/index.js +2 -0
  462. package/dist/dev/pipeline/phases/preflight-phase/index.js.map +1 -0
  463. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts +42 -0
  464. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts.map +1 -0
  465. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js +41 -0
  466. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js.map +1 -0
  467. package/dist/dev/pipeline/phases/rework-detection/index.d.ts +3 -0
  468. package/dist/dev/pipeline/phases/rework-detection/index.d.ts.map +1 -0
  469. package/dist/dev/pipeline/phases/rework-detection/index.js +2 -0
  470. package/dist/dev/pipeline/phases/rework-detection/index.js.map +1 -0
  471. package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts +40 -0
  472. package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts.map +1 -0
  473. package/dist/dev/pipeline/phases/rework-detection/rework-detection.js +38 -0
  474. package/dist/dev/pipeline/phases/rework-detection/rework-detection.js.map +1 -0
  475. package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts +3 -0
  476. package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts.map +1 -0
  477. package/dist/dev/pipeline/phases/ticket-fetch/index.js +2 -0
  478. package/dist/dev/pipeline/phases/ticket-fetch/index.js.map +1 -0
  479. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts +46 -0
  480. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts.map +1 -0
  481. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js +64 -0
  482. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js.map +1 -0
  483. package/dist/dev/pipeline/phases/transition/index.d.ts +3 -0
  484. package/dist/dev/pipeline/phases/transition/index.d.ts.map +1 -0
  485. package/dist/dev/pipeline/phases/transition/index.js +2 -0
  486. package/dist/dev/pipeline/phases/transition/index.js.map +1 -0
  487. package/dist/dev/pipeline/phases/transition/transition.d.ts +30 -0
  488. package/dist/dev/pipeline/phases/transition/transition.d.ts.map +1 -0
  489. package/dist/dev/pipeline/phases/transition/transition.js +27 -0
  490. package/dist/dev/pipeline/phases/transition/transition.js.map +1 -0
  491. package/dist/dev/pipeline/run-pipeline.d.ts +98 -0
  492. package/dist/dev/pipeline/run-pipeline.d.ts.map +1 -0
  493. package/dist/dev/pipeline/run-pipeline.js +106 -0
  494. package/dist/dev/pipeline/run-pipeline.js.map +1 -0
  495. package/dist/index.d.ts +58 -0
  496. package/dist/index.d.ts.map +1 -0
  497. package/dist/index.js +58 -0
  498. package/dist/index.js.map +1 -0
  499. package/dist/schemas/azdo/azdo-pr.d.ts +58 -0
  500. package/dist/schemas/azdo/azdo-pr.d.ts.map +1 -0
  501. package/dist/schemas/azdo/azdo-pr.js +48 -0
  502. package/dist/schemas/azdo/azdo-pr.js.map +1 -0
  503. package/dist/schemas/azdo/azdo.d.ts +88 -0
  504. package/dist/schemas/azdo/azdo.d.ts.map +1 -0
  505. package/dist/schemas/azdo/azdo.js +60 -0
  506. package/dist/schemas/azdo/azdo.js.map +1 -0
  507. package/dist/schemas/bitbucket/bitbucket.d.ts +112 -0
  508. package/dist/schemas/bitbucket/bitbucket.d.ts.map +1 -0
  509. package/dist/schemas/bitbucket/bitbucket.js +73 -0
  510. package/dist/schemas/bitbucket/bitbucket.js.map +1 -0
  511. package/dist/schemas/env/env.d.ts +336 -0
  512. package/dist/schemas/env/env.d.ts.map +1 -0
  513. package/dist/schemas/env/env.js +94 -0
  514. package/dist/schemas/env/env.js.map +1 -0
  515. package/dist/schemas/github/github.d.ts +128 -0
  516. package/dist/schemas/github/github.d.ts.map +1 -0
  517. package/dist/schemas/github/github.js +65 -0
  518. package/dist/schemas/github/github.js.map +1 -0
  519. package/dist/schemas/gitlab/gitlab.d.ts +72 -0
  520. package/dist/schemas/gitlab/gitlab.d.ts.map +1 -0
  521. package/dist/schemas/gitlab/gitlab.js +38 -0
  522. package/dist/schemas/gitlab/gitlab.js.map +1 -0
  523. package/dist/schemas/index.d.ts +15 -0
  524. package/dist/schemas/index.d.ts.map +1 -0
  525. package/dist/schemas/index.js +8 -0
  526. package/dist/schemas/index.js.map +1 -0
  527. package/dist/schemas/jira/jira.d.ts +79 -0
  528. package/dist/schemas/jira/jira.d.ts.map +1 -0
  529. package/dist/schemas/jira/jira.js +69 -0
  530. package/dist/schemas/jira/jira.js.map +1 -0
  531. package/dist/schemas/linear/linear.d.ts +178 -0
  532. package/dist/schemas/linear/linear.d.ts.map +1 -0
  533. package/dist/schemas/linear/linear.js +136 -0
  534. package/dist/schemas/linear/linear.js.map +1 -0
  535. package/dist/schemas/notion/notion.d.ts +131 -0
  536. package/dist/schemas/notion/notion.d.ts.map +1 -0
  537. package/dist/schemas/notion/notion.js +102 -0
  538. package/dist/schemas/notion/notion.js.map +1 -0
  539. package/dist/schemas/shortcut/shortcut.d.ts +149 -0
  540. package/dist/schemas/shortcut/shortcut.d.ts.map +1 -0
  541. package/dist/schemas/shortcut/shortcut.js +68 -0
  542. package/dist/schemas/shortcut/shortcut.js.map +1 -0
  543. package/dist/shared/cache/cache.d.ts +14 -0
  544. package/dist/shared/cache/cache.d.ts.map +1 -0
  545. package/dist/shared/cache/cache.js +25 -0
  546. package/dist/shared/cache/cache.js.map +1 -0
  547. package/dist/shared/cache/index.d.ts +2 -0
  548. package/dist/shared/cache/index.d.ts.map +1 -0
  549. package/dist/shared/cache/index.js +2 -0
  550. package/dist/shared/cache/index.js.map +1 -0
  551. package/dist/shared/env-parser/env-parser.d.ts +42 -0
  552. package/dist/shared/env-parser/env-parser.d.ts.map +1 -0
  553. package/dist/shared/env-parser/env-parser.js +97 -0
  554. package/dist/shared/env-parser/env-parser.js.map +1 -0
  555. package/dist/shared/env-parser/index.d.ts +3 -0
  556. package/dist/shared/env-parser/index.d.ts.map +1 -0
  557. package/dist/shared/env-parser/index.js +2 -0
  558. package/dist/shared/env-parser/index.js.map +1 -0
  559. package/dist/shared/git-ops/git-ops.d.ts +127 -0
  560. package/dist/shared/git-ops/git-ops.d.ts.map +1 -0
  561. package/dist/shared/git-ops/git-ops.js +225 -0
  562. package/dist/shared/git-ops/git-ops.js.map +1 -0
  563. package/dist/shared/git-ops/index.d.ts +3 -0
  564. package/dist/shared/git-ops/index.d.ts.map +1 -0
  565. package/dist/shared/git-ops/index.js +2 -0
  566. package/dist/shared/git-ops/index.js.map +1 -0
  567. package/dist/shared/git-token/git-token.d.ts +18 -0
  568. package/dist/shared/git-token/git-token.d.ts.map +1 -0
  569. package/dist/shared/git-token/git-token.js +28 -0
  570. package/dist/shared/git-token/git-token.js.map +1 -0
  571. package/dist/shared/git-token/index.d.ts +2 -0
  572. package/dist/shared/git-token/index.d.ts.map +1 -0
  573. package/dist/shared/git-token/index.js +2 -0
  574. package/dist/shared/git-token/index.js.map +1 -0
  575. package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts +32 -0
  576. package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts.map +1 -0
  577. package/dist/shared/http/fetch-and-parse/fetch-and-parse.js +53 -0
  578. package/dist/shared/http/fetch-and-parse/fetch-and-parse.js.map +1 -0
  579. package/dist/shared/http/fetch-and-parse/index.d.ts +3 -0
  580. package/dist/shared/http/fetch-and-parse/index.d.ts.map +1 -0
  581. package/dist/shared/http/fetch-and-parse/index.js +2 -0
  582. package/dist/shared/http/fetch-and-parse/index.js.map +1 -0
  583. package/dist/shared/http/index.d.ts +7 -0
  584. package/dist/shared/http/index.d.ts.map +1 -0
  585. package/dist/shared/http/index.js +4 -0
  586. package/dist/shared/http/index.js.map +1 -0
  587. package/dist/shared/http/ping-endpoint/index.d.ts +3 -0
  588. package/dist/shared/http/ping-endpoint/index.d.ts.map +1 -0
  589. package/dist/shared/http/ping-endpoint/index.js +2 -0
  590. package/dist/shared/http/ping-endpoint/index.js.map +1 -0
  591. package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts +29 -0
  592. package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts.map +1 -0
  593. package/dist/shared/http/ping-endpoint/ping-endpoint.js +31 -0
  594. package/dist/shared/http/ping-endpoint/ping-endpoint.js.map +1 -0
  595. package/dist/shared/http/retry-fetch/index.d.ts +3 -0
  596. package/dist/shared/http/retry-fetch/index.d.ts.map +1 -0
  597. package/dist/shared/http/retry-fetch/index.js +2 -0
  598. package/dist/shared/http/retry-fetch/index.js.map +1 -0
  599. package/dist/shared/http/retry-fetch/retry-fetch.d.ts +33 -0
  600. package/dist/shared/http/retry-fetch/retry-fetch.d.ts.map +1 -0
  601. package/dist/shared/http/retry-fetch/retry-fetch.js +94 -0
  602. package/dist/shared/http/retry-fetch/retry-fetch.js.map +1 -0
  603. package/dist/shared/label-helpers/index.d.ts +3 -0
  604. package/dist/shared/label-helpers/index.d.ts.map +1 -0
  605. package/dist/shared/label-helpers/index.js +2 -0
  606. package/dist/shared/label-helpers/index.js.map +1 -0
  607. package/dist/shared/label-helpers/label-helpers.d.ts +41 -0
  608. package/dist/shared/label-helpers/label-helpers.d.ts.map +1 -0
  609. package/dist/shared/label-helpers/label-helpers.js +51 -0
  610. package/dist/shared/label-helpers/label-helpers.js.map +1 -0
  611. package/dist/shared/remote/index.d.ts +2 -0
  612. package/dist/shared/remote/index.d.ts.map +1 -0
  613. package/dist/shared/remote/index.js +2 -0
  614. package/dist/shared/remote/index.js.map +1 -0
  615. package/dist/shared/remote/remote.d.ts +39 -0
  616. package/dist/shared/remote/remote.d.ts.map +1 -0
  617. package/dist/shared/remote/remote.js +180 -0
  618. package/dist/shared/remote/remote.js.map +1 -0
  619. package/dist/types/board.d.ts +62 -0
  620. package/dist/types/board.d.ts.map +1 -0
  621. package/dist/types/board.js +5 -0
  622. package/dist/types/board.js.map +1 -0
  623. package/dist/types/index.d.ts +5 -0
  624. package/dist/types/index.d.ts.map +1 -0
  625. package/dist/types/index.js +2 -0
  626. package/dist/types/index.js.map +1 -0
  627. package/dist/types/progress.d.ts +21 -0
  628. package/dist/types/progress.d.ts.map +1 -0
  629. package/dist/types/progress.js +34 -0
  630. package/dist/types/progress.js.map +1 -0
  631. package/dist/types/remote.d.ts +77 -0
  632. package/dist/types/remote.d.ts.map +1 -0
  633. package/dist/types/remote.js +5 -0
  634. package/dist/types/remote.js.map +1 -0
  635. package/package.json +44 -0
@@ -0,0 +1,104 @@
1
+ import { fetchTickets, isSafeWiqlValue, parseWorkItemId, pingAzdo, updateWorkItem, } from './api/index.js';
2
+ import { addLabel, removeLabel } from './labels/index.js';
3
+ import { fetchBlockerStatus, fetchChildrenStatus } from './relations/index.js';
4
+ /** Map an AzdoTicket to the normalised FetchedTicket shape. */
5
+ function toFetchedTicket(ticket, statusName) {
6
+ return {
7
+ key: ticket.key,
8
+ title: ticket.title,
9
+ description: ticket.description,
10
+ parentInfo: ticket.parentId ? `azdo-${String(ticket.parentId)}` : 'none',
11
+ blockers: 'None',
12
+ issueId: String(ticket.workItemId),
13
+ labels: ticket.labels ?? [],
14
+ status: statusName,
15
+ };
16
+ }
17
+ /** Validate WIQL-interpolated env values. */
18
+ function validateWiqlInputs(env) {
19
+ if (!env.AZDO_ORG.trim())
20
+ return '✗ AZDO_ORG must not be empty';
21
+ if (!env.AZDO_PROJECT.trim())
22
+ return '✗ AZDO_PROJECT must not be empty';
23
+ if (!env.AZDO_PAT.trim())
24
+ return '✗ AZDO_PAT must not be empty';
25
+ if (!isSafeWiqlValue(env.AZDO_PROJECT)) {
26
+ return '✗ AZDO_PROJECT contains unsafe characters for WIQL queries';
27
+ }
28
+ const status = env.CLANCY_AZDO_STATUS ?? 'New';
29
+ if (!isSafeWiqlValue(status)) {
30
+ return '✗ CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries';
31
+ }
32
+ if (env.CLANCY_AZDO_WIT && !isSafeWiqlValue(env.CLANCY_AZDO_WIT)) {
33
+ return '✗ CLANCY_AZDO_WIT contains unsafe characters for WIQL queries';
34
+ }
35
+ return undefined;
36
+ }
37
+ /** Fetch and normalise AzDo tickets into FetchedTickets. */
38
+ async function fetchAzdoTickets(ctx, opts, env) {
39
+ const status = env.CLANCY_AZDO_STATUS ?? 'New';
40
+ const tickets = await fetchTickets({
41
+ ctx,
42
+ status,
43
+ wit: env.CLANCY_AZDO_WIT,
44
+ excludeHitl: opts.excludeHitl,
45
+ label: opts.buildLabel ?? env.CLANCY_LABEL,
46
+ });
47
+ return tickets.map((t) => toFetchedTicket(t, status));
48
+ }
49
+ /** Transition an AzDo work item and log on success. */
50
+ async function doTransition(ctx, ticket, status) {
51
+ const workItemId = parseWorkItemId(ticket.key);
52
+ if (workItemId === undefined)
53
+ return false;
54
+ const ok = await updateWorkItem({
55
+ ctx,
56
+ id: workItemId,
57
+ patchOps: [{ op: 'replace', path: '/fields/System.State', value: status }],
58
+ });
59
+ if (ok)
60
+ console.log(` → Transitioned to ${status}`);
61
+ return ok;
62
+ }
63
+ /**
64
+ * Create a Board implementation for Azure DevOps.
65
+ *
66
+ * @param env - The validated Azure DevOps environment variables.
67
+ * @param fetcher - Optional custom fetch function for DI in tests.
68
+ * @returns A Board object that delegates to Azure DevOps API functions.
69
+ */
70
+ export function createAzdoBoard(env, fetcher) {
71
+ const ctx = {
72
+ org: env.AZDO_ORG,
73
+ project: env.AZDO_PROJECT,
74
+ pat: env.AZDO_PAT,
75
+ fetcher,
76
+ };
77
+ const doFetch = (opts) => fetchAzdoTickets(ctx, opts, env);
78
+ return {
79
+ ping: () => pingAzdo(ctx),
80
+ validateInputs: () => validateWiqlInputs(env),
81
+ fetchTicket: async (opts) => (await doFetch(opts))[0],
82
+ fetchTickets: doFetch,
83
+ fetchBlockerStatus(ticket) {
84
+ const workItemId = parseWorkItemId(ticket.key);
85
+ return workItemId !== undefined
86
+ ? fetchBlockerStatus(ctx, workItemId)
87
+ : Promise.resolve(false);
88
+ },
89
+ fetchChildrenStatus(parentKey, parentId) {
90
+ const id = parseWorkItemId(parentId ?? parentKey);
91
+ return id === undefined
92
+ ? Promise.resolve(undefined)
93
+ : fetchChildrenStatus({ ctx, parentId: id, parentKey });
94
+ },
95
+ transitionTicket: (ticket, status) => doTransition(ctx, ticket, status),
96
+ ensureLabel: async () => {
97
+ // Azure DevOps tags auto-create — no-op.
98
+ },
99
+ addLabel: (issueKey, label) => addLabel(ctx, issueKey, label),
100
+ removeLabel: (issueKey, label) => removeLabel(ctx, issueKey, label),
101
+ sharedEnv: () => env,
102
+ };
103
+ }
104
+ //# sourceMappingURL=azdo-board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azdo-board.js","sourceRoot":"","sources":["../../../src/board/azdo/azdo-board.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createAzdoBoard } from './azdo-board.js';
2
+ export { fetchBlockerStatus, fetchChildrenStatus } from './relations/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/board/azdo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createAzdoBoard } from './azdo-board.js';
2
+ export { fetchBlockerStatus, fetchChildrenStatus } from './relations/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/board/azdo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { addLabel, removeLabel } from './labels.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/board/azdo/labels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { addLabel, removeLabel } from './labels.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/board/azdo/labels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Azure DevOps work item label (tag) operations.
3
+ *
4
+ * Uses read-modify-write via {@link modifyLabelList} because Azure DevOps
5
+ * stores tags as a semicolon-delimited string field. Wrapped in
6
+ * {@link safeLabel} for best-effort error handling.
7
+ */
8
+ import type { AzdoCtx } from '../api/index.js';
9
+ /**
10
+ * Add a tag to an Azure DevOps work item (best-effort).
11
+ *
12
+ * @param ctx - Azure DevOps connection context.
13
+ * @param issueKey - The work item key (e.g., `'azdo-42'`).
14
+ * @param label - The tag to add.
15
+ * @returns Resolves when complete (best-effort — never throws).
16
+ */
17
+ export declare function addLabel(ctx: AzdoCtx, issueKey: string, label: string): Promise<void>;
18
+ /**
19
+ * Remove a tag from an Azure DevOps work item (best-effort).
20
+ *
21
+ * @param ctx - Azure DevOps connection context.
22
+ * @param issueKey - The work item key (e.g., `'azdo-42'`).
23
+ * @param label - The tag to remove.
24
+ * @returns Resolves when complete (best-effort — never throws).
25
+ */
26
+ export declare function removeLabel(ctx: AzdoCtx, issueKey: string, label: string): Promise<void>;
27
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../../src/board/azdo/labels/labels.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAwC/C;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,64 @@
1
+ import { modifyLabelList, safeLabel } from '../../../shared/label-helpers/index.js';
2
+ import { buildTagsString, fetchWorkItem, parseTags, parseWorkItemId, updateWorkItem, } from '../api/index.js';
3
+ /** Fetch current tags for a work item as a string array. */
4
+ async function fetchTags(ctx, workItemId) {
5
+ const item = await fetchWorkItem(ctx, workItemId);
6
+ return item ? parseTags(item.fields['System.Tags']) : undefined;
7
+ }
8
+ /** Write updated tags to a work item via JSON Patch. */
9
+ async function writeTags(ctx, workItemId, tags) {
10
+ await updateWorkItem({
11
+ ctx,
12
+ id: workItemId,
13
+ patchOps: [
14
+ {
15
+ op: 'replace',
16
+ path: '/fields/System.Tags',
17
+ value: buildTagsString(tags),
18
+ },
19
+ ],
20
+ });
21
+ }
22
+ /**
23
+ * Add a tag to an Azure DevOps work item (best-effort).
24
+ *
25
+ * @param ctx - Azure DevOps connection context.
26
+ * @param issueKey - The work item key (e.g., `'azdo-42'`).
27
+ * @param label - The tag to add.
28
+ * @returns Resolves when complete (best-effort — never throws).
29
+ */
30
+ export async function addLabel(ctx, issueKey, label) {
31
+ await safeLabel(async () => {
32
+ const workItemId = parseWorkItemId(issueKey);
33
+ if (workItemId === undefined)
34
+ return;
35
+ await modifyLabelList({
36
+ fetchCurrent: () => fetchTags(ctx, workItemId),
37
+ writeUpdated: (tags) => writeTags(ctx, workItemId, tags),
38
+ target: label,
39
+ mode: 'add',
40
+ });
41
+ }, 'addLabel');
42
+ }
43
+ /**
44
+ * Remove a tag from an Azure DevOps work item (best-effort).
45
+ *
46
+ * @param ctx - Azure DevOps connection context.
47
+ * @param issueKey - The work item key (e.g., `'azdo-42'`).
48
+ * @param label - The tag to remove.
49
+ * @returns Resolves when complete (best-effort — never throws).
50
+ */
51
+ export async function removeLabel(ctx, issueKey, label) {
52
+ await safeLabel(async () => {
53
+ const workItemId = parseWorkItemId(issueKey);
54
+ if (workItemId === undefined)
55
+ return;
56
+ await modifyLabelList({
57
+ fetchCurrent: () => fetchTags(ctx, workItemId),
58
+ writeUpdated: (tags) => writeTags(ctx, workItemId, tags),
59
+ target: label,
60
+ mode: 'remove',
61
+ });
62
+ }, 'removeLabel');
63
+ }
64
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../src/board/azdo/labels/labels.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,4DAA4D;AAC5D,KAAK,UAAU,SAAS,CACtB,GAAY,EACZ,UAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,wDAAwD;AACxD,KAAK,UAAU,SAAS,CACtB,GAAY,EACZ,UAAkB,EAClB,IAAuB;IAEvB,MAAM,cAAc,CAAC;QACnB,GAAG;QACH,EAAE,EAAE,UAAU;QACd,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC;aAC7B;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAY,EACZ,QAAgB,EAChB,KAAa;IAEb,MAAM,SAAS,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO;QAErC,MAAM,eAAe,CAAC;YACpB,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;YAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC;YACxD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAY,EACZ,QAAgB,EAChB,KAAa;IAEb,MAAM,SAAS,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO;QAErC,MAAM,eAAe,CAAC;YACpB,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;YAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC;YACxD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,EAAE,aAAa,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { fetchBlockerStatus, fetchChildrenStatus } from './relations.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/board/azdo/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { fetchBlockerStatus, fetchChildrenStatus } from './relations.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/board/azdo/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Azure DevOps work item relationship functions.
3
+ *
4
+ * Checks blocker status (via dependency-reverse relations) and children
5
+ * status (dual-mode: Epic: text convention + native hierarchy links).
6
+ */
7
+ import type { AzdoCtx } from '../api/index.js';
8
+ import type { ChildrenStatus } from '../../../types/index.js';
9
+ /**
10
+ * Check whether a work item is blocked by unresolved predecessors.
11
+ *
12
+ * Looks for relations with `rel: "System.LinkTypes.Dependency-Reverse"`
13
+ * (predecessor). Fetches each predecessor and checks if its state is done.
14
+ *
15
+ * @param ctx - Azure DevOps connection context.
16
+ * @param workItemId - The work item ID to check.
17
+ * @returns `true` if any predecessor is unresolved, `false` otherwise.
18
+ */
19
+ export declare function fetchBlockerStatus(ctx: AzdoCtx, workItemId: number): Promise<boolean>;
20
+ /** Options for {@link fetchChildrenStatus}. */
21
+ type ChildrenStatusOpts = {
22
+ readonly ctx: AzdoCtx;
23
+ readonly parentId: number;
24
+ readonly parentKey?: string;
25
+ };
26
+ /**
27
+ * Fetch the children status of a parent work item (dual-mode).
28
+ *
29
+ * Mode 1: Tries the `Epic: azdo-{parentId}` text convention (WIQL).
30
+ * Mode 2: Falls back to native hierarchy links (child work items).
31
+ *
32
+ * @param opts - Connection context, parent ID, and optional parent key.
33
+ * @returns The children status, or `undefined` on failure.
34
+ */
35
+ export declare function fetchChildrenStatus(opts: ChildrenStatusOpts): Promise<ChildrenStatus | undefined>;
36
+ export {};
37
+ //# sourceMappingURL=relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../src/board/azdo/relations/relations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiCzD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAID,+CAA+C;AAC/C,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAcrC"}
@@ -0,0 +1,109 @@
1
+ import { azdoWiqlLinkResponseSchema } from '../../../schemas/index.js';
2
+ import { fetchAndParse } from '../../../shared/http/index.js';
3
+ import { apiBase, AZDO_API_VERSION, azdoHeaders, extractIdFromRelationUrl, fetchWorkItem, fetchWorkItems, isSafeWiqlValue, runWiql, } from '../api/index.js';
4
+ /** Done/Closed states — used for blocker resolution check. */
5
+ const DONE_STATES = new Set(['Done', 'Closed', 'Completed', 'Resolved']);
6
+ /** Check if a work item's state is not in a done/closed state. */
7
+ function isIncomplete(item) {
8
+ const state = item.fields['System.State'];
9
+ return !state || !DONE_STATES.has(state);
10
+ }
11
+ /** Count total and incomplete items from a work item list. */
12
+ function countStatus(items) {
13
+ return {
14
+ total: items.length,
15
+ incomplete: items.filter(isIncomplete).length,
16
+ };
17
+ }
18
+ /**
19
+ * Check whether a work item is blocked by unresolved predecessors.
20
+ *
21
+ * Looks for relations with `rel: "System.LinkTypes.Dependency-Reverse"`
22
+ * (predecessor). Fetches each predecessor and checks if its state is done.
23
+ *
24
+ * @param ctx - Azure DevOps connection context.
25
+ * @param workItemId - The work item ID to check.
26
+ * @returns `true` if any predecessor is unresolved, `false` otherwise.
27
+ */
28
+ export async function fetchBlockerStatus(ctx, workItemId) {
29
+ try {
30
+ const item = await fetchWorkItem(ctx, workItemId);
31
+ if (!item)
32
+ return false;
33
+ const predecessors = (item.relations ?? []).filter((r) => r.rel === 'System.LinkTypes.Dependency-Reverse');
34
+ if (!predecessors.length)
35
+ return false;
36
+ const predIds = predecessors
37
+ .map((p) => extractIdFromRelationUrl(p.url))
38
+ .filter((id) => id !== undefined);
39
+ if (!predIds.length)
40
+ return false;
41
+ const predItems = await fetchWorkItems(ctx, predIds);
42
+ return predItems.some(isIncomplete);
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ }
48
+ /**
49
+ * Fetch the children status of a parent work item (dual-mode).
50
+ *
51
+ * Mode 1: Tries the `Epic: azdo-{parentId}` text convention (WIQL).
52
+ * Mode 2: Falls back to native hierarchy links (child work items).
53
+ *
54
+ * @param opts - Connection context, parent ID, and optional parent key.
55
+ * @returns The children status, or `undefined` on failure.
56
+ */
57
+ export async function fetchChildrenStatus(opts) {
58
+ const { ctx, parentId, parentKey } = opts;
59
+ try {
60
+ if (parentKey) {
61
+ const epicRef = `Epic: ${parentKey}`;
62
+ const result = await fetchChildrenByDescription(ctx, epicRef);
63
+ if (result && result.total > 0)
64
+ return result;
65
+ }
66
+ return await fetchChildrenByLinks(ctx, parentId);
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
72
+ /** Count children by searching descriptions for an Epic: reference. */
73
+ async function fetchChildrenByDescription(ctx, descriptionRef) {
74
+ if (!isSafeWiqlValue(ctx.project) || !isSafeWiqlValue(descriptionRef)) {
75
+ return undefined;
76
+ }
77
+ const wiql = `SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${ctx.project}' AND [System.Description] CONTAINS '${descriptionRef}'`;
78
+ const ids = await runWiql(ctx, wiql);
79
+ if (!ids.length)
80
+ return { total: 0, incomplete: 0 };
81
+ const items = await fetchWorkItems(ctx, ids);
82
+ return countStatus(items);
83
+ }
84
+ /** Count children via hierarchy link queries. */
85
+ async function fetchChildrenByLinks(ctx, parentId) {
86
+ if (Number.isNaN(parentId))
87
+ return undefined;
88
+ const wiql = `SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[System.Id] = ${String(parentId)} AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' MODE (MustContain)`;
89
+ const data = await fetchAndParse(`${apiBase(ctx.org, ctx.project)}/wit/wiql?api-version=${AZDO_API_VERSION}`, {
90
+ method: 'POST',
91
+ headers: azdoHeaders(ctx.pat),
92
+ body: JSON.stringify({ query: wiql }),
93
+ }, {
94
+ schema: azdoWiqlLinkResponseSchema,
95
+ label: 'Azure DevOps WIQL links',
96
+ fetcher: ctx.fetcher,
97
+ });
98
+ if (!data)
99
+ return undefined;
100
+ const relations = data.workItemRelations ?? [];
101
+ const childIds = relations
102
+ .map((r) => r.target?.id)
103
+ .filter((id) => id !== undefined && id !== parentId);
104
+ if (!childIds.length)
105
+ return { total: 0, incomplete: 0 };
106
+ const items = await fetchWorkItems(ctx, childIds);
107
+ return countStatus(items);
108
+ }
109
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../src/board/azdo/relations/relations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Board detection from raw `.clancy/.env` key-value pairs.
3
+ *
4
+ * Checks env vars in priority order and validates against the
5
+ * board-specific schema. Returns a `BoardConfig` on success or
6
+ * an error string on failure.
7
+ */
8
+ import type { BoardConfig, SharedEnv } from '../schemas/env/env.js';
9
+ /**
10
+ * Detect which board provider is configured from raw env vars.
11
+ *
12
+ * Detection priority: Jira → GitHub → Linear → Shortcut → Notion → Azure DevOps.
13
+ *
14
+ * @param raw - Key-value pairs from the `.clancy/.env` file.
15
+ * @returns A validated `BoardConfig` on success, or an error string on failure.
16
+ */
17
+ export declare function detectBoard(raw: Record<string, string>): BoardConfig | string;
18
+ /**
19
+ * Type-safe accessor for shared env vars from any board config.
20
+ *
21
+ * Returns the full env object typed as `SharedEnv`. Board-specific fields
22
+ * are still present at runtime but not visible in the type.
23
+ *
24
+ * @param config - A validated board configuration from `detectBoard`.
25
+ * @returns The shared env fields common to all board providers.
26
+ */
27
+ export declare function sharedEnv(config: BoardConfig): SharedEnv;
28
+ //# sourceMappingURL=detect-board.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-board.d.ts","sourceRoot":"","sources":["../../src/board/detect-board.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAiFrE;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,GAAG,MAAM,CAe7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAExD"}
@@ -0,0 +1,80 @@
1
+ import { azdoEnvSchema, githubEnvSchema, jiraEnvSchema, linearEnvSchema, notionEnvSchema, shortcutEnvSchema, } from '../schemas/env/env.js';
2
+ /**
3
+ * Board probes in priority order.
4
+ *
5
+ * GitHub requires both `GITHUB_TOKEN` and `GITHUB_REPO` to avoid
6
+ * false positives when `GITHUB_TOKEN` is used as a git host token
7
+ * for other boards.
8
+ */
9
+ const probes = [
10
+ {
11
+ provider: 'jira',
12
+ label: 'Jira',
13
+ detect: (raw) => Boolean(raw.JIRA_BASE_URL),
14
+ schema: jiraEnvSchema,
15
+ },
16
+ {
17
+ provider: 'github',
18
+ label: 'GitHub',
19
+ detect: (raw) => Boolean(raw.GITHUB_TOKEN && raw.GITHUB_REPO),
20
+ schema: githubEnvSchema,
21
+ },
22
+ {
23
+ provider: 'linear',
24
+ label: 'Linear',
25
+ detect: (raw) => Boolean(raw.LINEAR_API_KEY),
26
+ schema: linearEnvSchema,
27
+ },
28
+ {
29
+ provider: 'shortcut',
30
+ label: 'Shortcut',
31
+ detect: (raw) => Boolean(raw.SHORTCUT_API_TOKEN),
32
+ schema: shortcutEnvSchema,
33
+ },
34
+ {
35
+ provider: 'notion',
36
+ label: 'Notion',
37
+ detect: (raw) => Boolean(raw.NOTION_DATABASE_ID),
38
+ schema: notionEnvSchema,
39
+ },
40
+ {
41
+ provider: 'azdo',
42
+ label: 'Azure DevOps',
43
+ detect: (raw) => Boolean(raw.AZDO_ORG),
44
+ schema: azdoEnvSchema,
45
+ },
46
+ ];
47
+ /**
48
+ * Detect which board provider is configured from raw env vars.
49
+ *
50
+ * Detection priority: Jira → GitHub → Linear → Shortcut → Notion → Azure DevOps.
51
+ *
52
+ * @param raw - Key-value pairs from the `.clancy/.env` file.
53
+ * @returns A validated `BoardConfig` on success, or an error string on failure.
54
+ */
55
+ export function detectBoard(raw) {
56
+ const matched = probes.find((probe) => probe.detect(raw));
57
+ if (!matched) {
58
+ return '✗ No board detected — set Jira, GitHub, Linear, Shortcut, Notion, or Azure DevOps credentials in .clancy/.env';
59
+ }
60
+ const parsed = matched.schema.safeParse(raw);
61
+ if (!parsed.success) {
62
+ return `✗ ${matched.label} env validation failed: ${parsed.error.message}`;
63
+ }
64
+ // Safe: each probe pairs a literal provider with the schema that produces
65
+ // that provider's env type. See SafeParseable comment for why erasure is needed.
66
+ return { provider: matched.provider, env: parsed.data };
67
+ }
68
+ /**
69
+ * Type-safe accessor for shared env vars from any board config.
70
+ *
71
+ * Returns the full env object typed as `SharedEnv`. Board-specific fields
72
+ * are still present at runtime but not visible in the type.
73
+ *
74
+ * @param config - A validated board configuration from `detectBoard`.
75
+ * @returns The shared env fields common to all board providers.
76
+ */
77
+ export function sharedEnv(config) {
78
+ return config.env;
79
+ }
80
+ //# sourceMappingURL=detect-board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-board.js","sourceRoot":"","sources":["../../src/board/detect-board.ts"],"names":[],"mappings":"AASA,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AA0BhC;;;;;;GAMG;AACH,MAAM,MAAM,GAA0B;IACpC;QACE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC3C,MAAM,EAAE,aAAa;KACtB;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC;QAC7D,MAAM,EAAE,eAAe;KACxB;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5C,MAAM,EAAE,eAAe;KACxB;IACD;QACE,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAChD,MAAM,EAAE,iBAAiB;KAC1B;IACD;QACE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAChD,MAAM,EAAE,eAAe;KACxB;IACD;QACE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,MAAM,EAAE,aAAa;KACtB;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAA2B;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,+GAA+G,CAAC;IACzH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,OAAO,CAAC,KAAK,2BAA2B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,iFAAiF;IACjF,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAiB,CAAC;AACzE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Board factory.
3
+ *
4
+ * Creates a Board implementation from a BoardConfig discriminated union.
5
+ * Each case dispatches to the provider-specific factory function.
6
+ */
7
+ import type { BoardConfig } from '../../schemas/env/env.js';
8
+ import type { Fetcher } from '../../shared/http/index.js';
9
+ import type { Board } from '../../types/index.js';
10
+ /**
11
+ * Create a Board from a detected board configuration.
12
+ *
13
+ * @param config - The validated board config from `detectBoard`.
14
+ * @param fetcher - Optional custom fetch function for DI in tests.
15
+ * @returns A Board object for the configured provider.
16
+ */
17
+ export declare function createBoard(config: BoardConfig, fetcher?: Fetcher): Board;
18
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/board/factory/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAShD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAmBzE"}
@@ -0,0 +1,34 @@
1
+ import { createAzdoBoard } from '../azdo/azdo-board.js';
2
+ import { createGitHubBoard } from '../github/github-board.js';
3
+ import { createJiraBoard } from '../jira/jira-board.js';
4
+ import { createLinearBoard } from '../linear/linear-board.js';
5
+ import { createNotionBoard } from '../notion/notion-board.js';
6
+ import { createShortcutBoard } from '../shortcut/shortcut-board.js';
7
+ /**
8
+ * Create a Board from a detected board configuration.
9
+ *
10
+ * @param config - The validated board config from `detectBoard`.
11
+ * @param fetcher - Optional custom fetch function for DI in tests.
12
+ * @returns A Board object for the configured provider.
13
+ */
14
+ export function createBoard(config, fetcher) {
15
+ switch (config.provider) {
16
+ case 'jira':
17
+ return createJiraBoard(config.env, fetcher);
18
+ case 'github':
19
+ return createGitHubBoard(config.env, fetcher);
20
+ case 'linear':
21
+ return createLinearBoard(config.env, fetcher);
22
+ case 'shortcut':
23
+ return createShortcutBoard(config.env, fetcher);
24
+ case 'notion':
25
+ return createNotionBoard(config.env, fetcher);
26
+ case 'azdo':
27
+ return createAzdoBoard(config.env, fetcher);
28
+ default: {
29
+ const _exhaustive = config;
30
+ return _exhaustive;
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/board/factory/factory.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,OAAiB;IAChE,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC;YAClC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createBoard } from './factory.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/board/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createBoard } from './factory.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/board/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}