@camaradesuk/git-worktree-tools 1.2.1 → 1.4.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 (346) hide show
  1. package/README.md +323 -16
  2. package/dist/api/clean.d.ts +65 -0
  3. package/dist/api/clean.d.ts.map +1 -0
  4. package/dist/api/clean.js +209 -0
  5. package/dist/api/clean.js.map +1 -0
  6. package/dist/api/create.d.ts +88 -0
  7. package/dist/api/create.d.ts.map +1 -0
  8. package/dist/api/create.js +370 -0
  9. package/dist/api/create.js.map +1 -0
  10. package/dist/api/index.d.ts +15 -0
  11. package/dist/api/index.d.ts.map +1 -0
  12. package/dist/api/index.js +19 -0
  13. package/dist/api/index.js.map +1 -0
  14. package/dist/api/list.d.ts +74 -0
  15. package/dist/api/list.d.ts.map +1 -0
  16. package/dist/api/list.js +80 -0
  17. package/dist/api/list.js.map +1 -0
  18. package/dist/api/state.d.ts +43 -0
  19. package/dist/api/state.d.ts.map +1 -0
  20. package/dist/api/state.js +70 -0
  21. package/dist/api/state.js.map +1 -0
  22. package/dist/cli/cleanpr.js +171 -28
  23. package/dist/cli/cleanpr.js.map +1 -1
  24. package/dist/cli/cleanpr.test.js +460 -7
  25. package/dist/cli/cleanpr.test.js.map +1 -1
  26. package/dist/cli/lswt.js +8 -1
  27. package/dist/cli/lswt.js.map +1 -1
  28. package/dist/cli/lswt.test.js +2 -0
  29. package/dist/cli/lswt.test.js.map +1 -1
  30. package/dist/cli/newpr.js +189 -28
  31. package/dist/cli/newpr.js.map +1 -1
  32. package/dist/cli/newpr.test.js +350 -0
  33. package/dist/cli/newpr.test.js.map +1 -1
  34. package/dist/cli/wtconfig.d.ts +14 -0
  35. package/dist/cli/wtconfig.d.ts.map +1 -0
  36. package/dist/cli/wtconfig.js +948 -0
  37. package/dist/cli/wtconfig.js.map +1 -0
  38. package/dist/cli/wtconfig.test.d.ts +5 -0
  39. package/dist/cli/wtconfig.test.d.ts.map +1 -0
  40. package/dist/cli/wtconfig.test.js +1281 -0
  41. package/dist/cli/wtconfig.test.js.map +1 -0
  42. package/dist/cli/wtlink.js +5 -0
  43. package/dist/cli/wtlink.js.map +1 -1
  44. package/dist/cli/wtstate.d.ts +8 -0
  45. package/dist/cli/wtstate.d.ts.map +1 -0
  46. package/dist/cli/wtstate.js +83 -0
  47. package/dist/cli/wtstate.js.map +1 -0
  48. package/dist/cli/wtstate.test.d.ts +5 -0
  49. package/dist/cli/wtstate.test.d.ts.map +1 -0
  50. package/dist/cli/wtstate.test.js +193 -0
  51. package/dist/cli/wtstate.test.js.map +1 -0
  52. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts +2 -0
  53. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts.map +1 -0
  54. package/dist/e2e/cleanpr/cleanpr.e2e.test.js +326 -0
  55. package/dist/e2e/cleanpr/cleanpr.e2e.test.js.map +1 -0
  56. package/dist/e2e/helpers/cli-runner.d.ts +103 -0
  57. package/dist/e2e/helpers/cli-runner.d.ts.map +1 -0
  58. package/dist/e2e/helpers/cli-runner.js +200 -0
  59. package/dist/e2e/helpers/cli-runner.js.map +1 -0
  60. package/dist/e2e/helpers/gh-mock.d.ts +87 -0
  61. package/dist/e2e/helpers/gh-mock.d.ts.map +1 -0
  62. package/dist/e2e/helpers/gh-mock.js +384 -0
  63. package/dist/e2e/helpers/gh-mock.js.map +1 -0
  64. package/dist/e2e/helpers/index.d.ts +12 -0
  65. package/dist/e2e/helpers/index.d.ts.map +1 -0
  66. package/dist/e2e/helpers/index.js +16 -0
  67. package/dist/e2e/helpers/index.js.map +1 -0
  68. package/dist/e2e/helpers/pty-wrapper.d.ts +118 -0
  69. package/dist/e2e/helpers/pty-wrapper.d.ts.map +1 -0
  70. package/dist/e2e/helpers/pty-wrapper.js +276 -0
  71. package/dist/e2e/helpers/pty-wrapper.js.map +1 -0
  72. package/dist/e2e/helpers/scenario-harness.d.ts +55 -0
  73. package/dist/e2e/helpers/scenario-harness.d.ts.map +1 -0
  74. package/dist/e2e/helpers/scenario-harness.js +360 -0
  75. package/dist/e2e/helpers/scenario-harness.js.map +1 -0
  76. package/dist/e2e/helpers/test-context.d.ts +120 -0
  77. package/dist/e2e/helpers/test-context.d.ts.map +1 -0
  78. package/dist/e2e/helpers/test-context.js +263 -0
  79. package/dist/e2e/helpers/test-context.js.map +1 -0
  80. package/dist/e2e/lswt/lswt.e2e.test.d.ts +2 -0
  81. package/dist/e2e/lswt/lswt.e2e.test.d.ts.map +1 -0
  82. package/dist/e2e/lswt/lswt.e2e.test.js +328 -0
  83. package/dist/e2e/lswt/lswt.e2e.test.js.map +1 -0
  84. package/dist/e2e/newpr/newpr.e2e.test.d.ts +2 -0
  85. package/dist/e2e/newpr/newpr.e2e.test.d.ts.map +1 -0
  86. package/dist/e2e/newpr/newpr.e2e.test.js +286 -0
  87. package/dist/e2e/newpr/newpr.e2e.test.js.map +1 -0
  88. package/dist/e2e/newpr/scenarios.e2e.test.d.ts +2 -0
  89. package/dist/e2e/newpr/scenarios.e2e.test.d.ts.map +1 -0
  90. package/dist/e2e/newpr/scenarios.e2e.test.js +426 -0
  91. package/dist/e2e/newpr/scenarios.e2e.test.js.map +1 -0
  92. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts +2 -0
  93. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts.map +1 -0
  94. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js +298 -0
  95. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js.map +1 -0
  96. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts +2 -0
  97. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts.map +1 -0
  98. package/dist/e2e/wtlink/wtlink.e2e.test.js +364 -0
  99. package/dist/e2e/wtlink/wtlink.e2e.test.js.map +1 -0
  100. package/dist/index.d.ts +15 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +14 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/lib/ai/base-provider.d.ts +58 -0
  105. package/dist/lib/ai/base-provider.d.ts.map +1 -0
  106. package/dist/lib/ai/base-provider.js +246 -0
  107. package/dist/lib/ai/base-provider.js.map +1 -0
  108. package/dist/lib/ai/base-provider.test.d.ts +7 -0
  109. package/dist/lib/ai/base-provider.test.d.ts.map +1 -0
  110. package/dist/lib/ai/base-provider.test.js +320 -0
  111. package/dist/lib/ai/base-provider.test.js.map +1 -0
  112. package/dist/lib/ai/cli-provider.d.ts +87 -0
  113. package/dist/lib/ai/cli-provider.d.ts.map +1 -0
  114. package/dist/lib/ai/cli-provider.js +280 -0
  115. package/dist/lib/ai/cli-provider.js.map +1 -0
  116. package/dist/lib/ai/cli-provider.test.d.ts +5 -0
  117. package/dist/lib/ai/cli-provider.test.d.ts.map +1 -0
  118. package/dist/lib/ai/cli-provider.test.js +462 -0
  119. package/dist/lib/ai/cli-provider.test.js.map +1 -0
  120. package/dist/lib/ai/fallback-provider.d.ts +20 -0
  121. package/dist/lib/ai/fallback-provider.d.ts.map +1 -0
  122. package/dist/lib/ai/fallback-provider.js +125 -0
  123. package/dist/lib/ai/fallback-provider.js.map +1 -0
  124. package/dist/lib/ai/fallback-provider.test.d.ts +7 -0
  125. package/dist/lib/ai/fallback-provider.test.d.ts.map +1 -0
  126. package/dist/lib/ai/fallback-provider.test.js +165 -0
  127. package/dist/lib/ai/fallback-provider.test.js.map +1 -0
  128. package/dist/lib/ai/generation-service.d.ts +44 -0
  129. package/dist/lib/ai/generation-service.d.ts.map +1 -0
  130. package/dist/lib/ai/generation-service.js +107 -0
  131. package/dist/lib/ai/generation-service.js.map +1 -0
  132. package/dist/lib/ai/generation-service.test.d.ts +7 -0
  133. package/dist/lib/ai/generation-service.test.d.ts.map +1 -0
  134. package/dist/lib/ai/generation-service.test.js +213 -0
  135. package/dist/lib/ai/generation-service.test.js.map +1 -0
  136. package/dist/lib/ai/index.d.ts +19 -0
  137. package/dist/lib/ai/index.d.ts.map +1 -0
  138. package/dist/lib/ai/index.js +22 -0
  139. package/dist/lib/ai/index.js.map +1 -0
  140. package/dist/lib/ai/provider-manager.d.ts +109 -0
  141. package/dist/lib/ai/provider-manager.d.ts.map +1 -0
  142. package/dist/lib/ai/provider-manager.js +270 -0
  143. package/dist/lib/ai/provider-manager.js.map +1 -0
  144. package/dist/lib/ai/provider-manager.test.d.ts +5 -0
  145. package/dist/lib/ai/provider-manager.test.d.ts.map +1 -0
  146. package/dist/lib/ai/provider-manager.test.js +312 -0
  147. package/dist/lib/ai/provider-manager.test.js.map +1 -0
  148. package/dist/lib/ai/types.d.ts +166 -0
  149. package/dist/lib/ai/types.d.ts.map +1 -0
  150. package/dist/lib/ai/types.js +19 -0
  151. package/dist/lib/ai/types.js.map +1 -0
  152. package/dist/lib/cleanpr/args.d.ts.map +1 -1
  153. package/dist/lib/cleanpr/args.js +18 -0
  154. package/dist/lib/cleanpr/args.js.map +1 -1
  155. package/dist/lib/cleanpr/args.test.js +88 -11
  156. package/dist/lib/cleanpr/args.test.js.map +1 -1
  157. package/dist/lib/cleanpr/cleanup.d.ts +2 -0
  158. package/dist/lib/cleanpr/cleanup.d.ts.map +1 -1
  159. package/dist/lib/cleanpr/cleanup.js +30 -2
  160. package/dist/lib/cleanpr/cleanup.js.map +1 -1
  161. package/dist/lib/cleanpr/cleanup.test.js +37 -5
  162. package/dist/lib/cleanpr/cleanup.test.js.map +1 -1
  163. package/dist/lib/cleanpr/types.d.ts +10 -0
  164. package/dist/lib/cleanpr/types.d.ts.map +1 -1
  165. package/dist/lib/cleanpr/worktree-info.test.js +72 -1
  166. package/dist/lib/cleanpr/worktree-info.test.js.map +1 -1
  167. package/dist/lib/config.d.ts +176 -1
  168. package/dist/lib/config.d.ts.map +1 -1
  169. package/dist/lib/config.js +130 -2
  170. package/dist/lib/config.js.map +1 -1
  171. package/dist/lib/config.test.js +406 -2
  172. package/dist/lib/config.test.js.map +1 -1
  173. package/dist/lib/git.test.js +58 -0
  174. package/dist/lib/git.test.js.map +1 -1
  175. package/dist/lib/github.test.js +20 -0
  176. package/dist/lib/github.test.js.map +1 -1
  177. package/dist/lib/hooks/executor.d.ts +35 -0
  178. package/dist/lib/hooks/executor.d.ts.map +1 -0
  179. package/dist/lib/hooks/executor.js +401 -0
  180. package/dist/lib/hooks/executor.js.map +1 -0
  181. package/dist/lib/hooks/executor.test.d.ts +5 -0
  182. package/dist/lib/hooks/executor.test.d.ts.map +1 -0
  183. package/dist/lib/hooks/executor.test.js +648 -0
  184. package/dist/lib/hooks/executor.test.js.map +1 -0
  185. package/dist/lib/hooks/index.d.ts +25 -0
  186. package/dist/lib/hooks/index.d.ts.map +1 -0
  187. package/dist/lib/hooks/index.js +26 -0
  188. package/dist/lib/hooks/index.js.map +1 -0
  189. package/dist/lib/hooks/templates.d.ts +74 -0
  190. package/dist/lib/hooks/templates.d.ts.map +1 -0
  191. package/dist/lib/hooks/templates.js +270 -0
  192. package/dist/lib/hooks/templates.js.map +1 -0
  193. package/dist/lib/hooks/templates.test.d.ts +5 -0
  194. package/dist/lib/hooks/templates.test.d.ts.map +1 -0
  195. package/dist/lib/hooks/templates.test.js +163 -0
  196. package/dist/lib/hooks/templates.test.js.map +1 -0
  197. package/dist/lib/hooks/types.d.ts +161 -0
  198. package/dist/lib/hooks/types.d.ts.map +1 -0
  199. package/dist/lib/hooks/types.js +73 -0
  200. package/dist/lib/hooks/types.js.map +1 -0
  201. package/dist/lib/hooks/types.test.d.ts +5 -0
  202. package/dist/lib/hooks/types.test.d.ts.map +1 -0
  203. package/dist/lib/hooks/types.test.js +132 -0
  204. package/dist/lib/hooks/types.test.js.map +1 -0
  205. package/dist/lib/json-output.d.ts +172 -0
  206. package/dist/lib/json-output.d.ts.map +1 -0
  207. package/dist/lib/json-output.js +134 -0
  208. package/dist/lib/json-output.js.map +1 -0
  209. package/dist/lib/json-output.test.d.ts +5 -0
  210. package/dist/lib/json-output.test.d.ts.map +1 -0
  211. package/dist/lib/json-output.test.js +259 -0
  212. package/dist/lib/json-output.test.js.map +1 -0
  213. package/dist/lib/lswt/action-executors.d.ts +32 -0
  214. package/dist/lib/lswt/action-executors.d.ts.map +1 -0
  215. package/dist/lib/lswt/action-executors.js +489 -0
  216. package/dist/lib/lswt/action-executors.js.map +1 -0
  217. package/dist/lib/lswt/action-executors.test.d.ts +2 -0
  218. package/dist/lib/lswt/action-executors.test.d.ts.map +1 -0
  219. package/dist/lib/lswt/action-executors.test.js +755 -0
  220. package/dist/lib/lswt/action-executors.test.js.map +1 -0
  221. package/dist/lib/lswt/actions.d.ts +25 -0
  222. package/dist/lib/lswt/actions.d.ts.map +1 -0
  223. package/dist/lib/lswt/actions.js +187 -0
  224. package/dist/lib/lswt/actions.js.map +1 -0
  225. package/dist/lib/lswt/actions.test.d.ts +2 -0
  226. package/dist/lib/lswt/actions.test.d.ts.map +1 -0
  227. package/dist/lib/lswt/actions.test.js +359 -0
  228. package/dist/lib/lswt/actions.test.js.map +1 -0
  229. package/dist/lib/lswt/args.d.ts.map +1 -1
  230. package/dist/lib/lswt/args.js +44 -8
  231. package/dist/lib/lswt/args.js.map +1 -1
  232. package/dist/lib/lswt/args.test.js +70 -10
  233. package/dist/lib/lswt/args.test.js.map +1 -1
  234. package/dist/lib/lswt/environment.d.ts +43 -0
  235. package/dist/lib/lswt/environment.d.ts.map +1 -0
  236. package/dist/lib/lswt/environment.js +143 -0
  237. package/dist/lib/lswt/environment.js.map +1 -0
  238. package/dist/lib/lswt/environment.test.d.ts +2 -0
  239. package/dist/lib/lswt/environment.test.d.ts.map +1 -0
  240. package/dist/lib/lswt/environment.test.js +339 -0
  241. package/dist/lib/lswt/environment.test.js.map +1 -0
  242. package/dist/lib/lswt/formatters.d.ts.map +1 -1
  243. package/dist/lib/lswt/formatters.js +1 -0
  244. package/dist/lib/lswt/formatters.js.map +1 -1
  245. package/dist/lib/lswt/formatters.test.js +26 -0
  246. package/dist/lib/lswt/formatters.test.js.map +1 -1
  247. package/dist/lib/lswt/index.d.ts +7 -2
  248. package/dist/lib/lswt/index.d.ts.map +1 -1
  249. package/dist/lib/lswt/index.js +7 -0
  250. package/dist/lib/lswt/index.js.map +1 -1
  251. package/dist/lib/lswt/interactive.d.ts +24 -0
  252. package/dist/lib/lswt/interactive.d.ts.map +1 -0
  253. package/dist/lib/lswt/interactive.js +245 -0
  254. package/dist/lib/lswt/interactive.js.map +1 -0
  255. package/dist/lib/lswt/interactive.test.d.ts +2 -0
  256. package/dist/lib/lswt/interactive.test.d.ts.map +1 -0
  257. package/dist/lib/lswt/interactive.test.js +383 -0
  258. package/dist/lib/lswt/interactive.test.js.map +1 -0
  259. package/dist/lib/lswt/types.d.ts +52 -1
  260. package/dist/lib/lswt/types.d.ts.map +1 -1
  261. package/dist/lib/lswt/worktree-info.d.ts +8 -1
  262. package/dist/lib/lswt/worktree-info.d.ts.map +1 -1
  263. package/dist/lib/lswt/worktree-info.js +14 -4
  264. package/dist/lib/lswt/worktree-info.js.map +1 -1
  265. package/dist/lib/lswt/worktree-info.test.js +153 -16
  266. package/dist/lib/lswt/worktree-info.test.js.map +1 -1
  267. package/dist/lib/newpr/action-deps.d.ts +15 -0
  268. package/dist/lib/newpr/action-deps.d.ts.map +1 -0
  269. package/dist/lib/newpr/action-deps.js +22 -0
  270. package/dist/lib/newpr/action-deps.js.map +1 -0
  271. package/dist/lib/newpr/args.d.ts.map +1 -1
  272. package/dist/lib/newpr/args.js +56 -0
  273. package/dist/lib/newpr/args.js.map +1 -1
  274. package/dist/lib/newpr/hook-runner.d.ts +80 -0
  275. package/dist/lib/newpr/hook-runner.d.ts.map +1 -0
  276. package/dist/lib/newpr/hook-runner.js +182 -0
  277. package/dist/lib/newpr/hook-runner.js.map +1 -0
  278. package/dist/lib/newpr/hook-runner.test.d.ts +7 -0
  279. package/dist/lib/newpr/hook-runner.test.d.ts.map +1 -0
  280. package/dist/lib/newpr/hook-runner.test.js +301 -0
  281. package/dist/lib/newpr/hook-runner.test.js.map +1 -0
  282. package/dist/lib/newpr/index.d.ts +3 -0
  283. package/dist/lib/newpr/index.d.ts.map +1 -1
  284. package/dist/lib/newpr/index.js +3 -0
  285. package/dist/lib/newpr/index.js.map +1 -1
  286. package/dist/lib/newpr/types.d.ts +9 -0
  287. package/dist/lib/newpr/types.d.ts.map +1 -1
  288. package/dist/lib/prompts.test.js +208 -1
  289. package/dist/lib/prompts.test.js.map +1 -1
  290. package/dist/lib/wtconfig/config-manager.d.ts +72 -0
  291. package/dist/lib/wtconfig/config-manager.d.ts.map +1 -0
  292. package/dist/lib/wtconfig/config-manager.js +408 -0
  293. package/dist/lib/wtconfig/config-manager.js.map +1 -0
  294. package/dist/lib/wtconfig/config-manager.test.d.ts +5 -0
  295. package/dist/lib/wtconfig/config-manager.test.d.ts.map +1 -0
  296. package/dist/lib/wtconfig/config-manager.test.js +501 -0
  297. package/dist/lib/wtconfig/config-manager.test.js.map +1 -0
  298. package/dist/lib/wtconfig/environment.d.ts +23 -0
  299. package/dist/lib/wtconfig/environment.d.ts.map +1 -0
  300. package/dist/lib/wtconfig/environment.js +238 -0
  301. package/dist/lib/wtconfig/environment.js.map +1 -0
  302. package/dist/lib/wtconfig/environment.test.d.ts +5 -0
  303. package/dist/lib/wtconfig/environment.test.d.ts.map +1 -0
  304. package/dist/lib/wtconfig/environment.test.js +246 -0
  305. package/dist/lib/wtconfig/environment.test.js.map +1 -0
  306. package/dist/lib/wtconfig/index.d.ts +7 -0
  307. package/dist/lib/wtconfig/index.d.ts.map +1 -0
  308. package/dist/lib/wtconfig/index.js +8 -0
  309. package/dist/lib/wtconfig/index.js.map +1 -0
  310. package/dist/lib/wtconfig/types.d.ts +97 -0
  311. package/dist/lib/wtconfig/types.d.ts.map +1 -0
  312. package/dist/lib/wtconfig/types.js +5 -0
  313. package/dist/lib/wtconfig/types.js.map +1 -0
  314. package/dist/lib/wtstate/analyze.d.ts +13 -0
  315. package/dist/lib/wtstate/analyze.d.ts.map +1 -0
  316. package/dist/lib/wtstate/analyze.js +165 -0
  317. package/dist/lib/wtstate/analyze.js.map +1 -0
  318. package/dist/lib/wtstate/analyze.test.d.ts +5 -0
  319. package/dist/lib/wtstate/analyze.test.d.ts.map +1 -0
  320. package/dist/lib/wtstate/analyze.test.js +282 -0
  321. package/dist/lib/wtstate/analyze.test.js.map +1 -0
  322. package/dist/lib/wtstate/args.d.ts +17 -0
  323. package/dist/lib/wtstate/args.d.ts.map +1 -0
  324. package/dist/lib/wtstate/args.js +91 -0
  325. package/dist/lib/wtstate/args.js.map +1 -0
  326. package/dist/lib/wtstate/args.test.d.ts +5 -0
  327. package/dist/lib/wtstate/args.test.d.ts.map +1 -0
  328. package/dist/lib/wtstate/args.test.js +120 -0
  329. package/dist/lib/wtstate/args.test.js.map +1 -0
  330. package/dist/lib/wtstate/index.d.ts +7 -0
  331. package/dist/lib/wtstate/index.d.ts.map +1 -0
  332. package/dist/lib/wtstate/index.js +8 -0
  333. package/dist/lib/wtstate/index.js.map +1 -0
  334. package/dist/lib/wtstate/types.d.ts +64 -0
  335. package/dist/lib/wtstate/types.d.ts.map +1 -0
  336. package/dist/lib/wtstate/types.js +5 -0
  337. package/dist/lib/wtstate/types.js.map +1 -0
  338. package/dist/mcp/server.d.ts +14 -0
  339. package/dist/mcp/server.d.ts.map +1 -0
  340. package/dist/mcp/server.js +339 -0
  341. package/dist/mcp/server.js.map +1 -0
  342. package/dist/mcp/server.test.d.ts +9 -0
  343. package/dist/mcp/server.test.d.ts.map +1 -0
  344. package/dist/mcp/server.test.js +390 -0
  345. package/dist/mcp/server.test.js.map +1 -0
  346. package/package.json +8 -2
@@ -0,0 +1,80 @@
1
+ /**
2
+ * List worktrees API - List git worktrees with PR status
3
+ *
4
+ * Wraps the lswt module to provide a clean programmatic interface.
5
+ */
6
+ import { gatherWorktreeInfo, createDefaultDeps, } from '../lib/lswt/index.js';
7
+ import { createSuccessResult, createErrorResult, ErrorCode, } from '../lib/json-output.js';
8
+ import * as git from '../lib/git.js';
9
+ import * as github from '../lib/github.js';
10
+ /**
11
+ * List all git worktrees with optional PR status
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { listWorktrees } from '@camaradesuk/git-worktree-tools/api';
16
+ *
17
+ * const result = await listWorktrees({ showStatus: true });
18
+ * if (result.success) {
19
+ * for (const wt of result.data.worktrees) {
20
+ * console.log(`${wt.path}: ${wt.branch} (${wt.type})`);
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export async function listWorktrees(options = {}) {
26
+ const { showStatus = false, cwd } = options;
27
+ const warnings = [];
28
+ try {
29
+ // Verify we're in a git repo
30
+ const repoRoot = git.getRepoRoot(cwd);
31
+ if (!repoRoot) {
32
+ return createErrorResult('lswt', ErrorCode.NOT_GIT_REPO, 'Not in a git repository');
33
+ }
34
+ // Check if gh is available when status is requested
35
+ let effectiveShowStatus = showStatus;
36
+ if (showStatus && !github.isGhInstalled()) {
37
+ warnings.push('GitHub CLI (gh) not installed. PR status will not be shown.');
38
+ effectiveShowStatus = false;
39
+ }
40
+ // Build options for the lib function
41
+ const listOptions = {
42
+ json: true, // We always want structured output
43
+ verbose: true, // Include all info
44
+ showStatus: effectiveShowStatus,
45
+ interactive: false, // Never interactive for API
46
+ };
47
+ // Gather worktree info
48
+ const deps = createDefaultDeps();
49
+ const worktreeDisplays = await gatherWorktreeInfo(repoRoot, listOptions, deps);
50
+ // Map to our API type
51
+ const worktrees = worktreeDisplays.map((wt) => ({
52
+ path: wt.path,
53
+ name: wt.name,
54
+ branch: wt.branch,
55
+ commit: wt.commit,
56
+ type: wt.type,
57
+ prNumber: wt.prNumber,
58
+ prState: wt.prState,
59
+ isDraft: wt.isDraft,
60
+ hasChanges: wt.hasChanges,
61
+ }));
62
+ // Calculate summary stats
63
+ const prCount = worktrees.filter((w) => w.type === 'pr').length;
64
+ const openCount = worktrees.filter((w) => w.prState === 'OPEN').length;
65
+ const changesCount = worktrees.filter((w) => w.hasChanges).length;
66
+ const data = {
67
+ worktrees,
68
+ total: worktrees.length,
69
+ prCount,
70
+ openCount,
71
+ changesCount,
72
+ };
73
+ return createSuccessResult('lswt', data, warnings.length > 0 ? warnings : undefined);
74
+ }
75
+ catch (error) {
76
+ const message = error instanceof Error ? error.message : String(error);
77
+ return createErrorResult('lswt', ErrorCode.UNKNOWN_ERROR, message);
78
+ }
79
+ }
80
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/api/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * State query API - Query git state for programmatic use
3
+ *
4
+ * Wraps the wtstate module to provide a clean programmatic interface.
5
+ */
6
+ import { type CommandResult, type WtstateResultData } from '../lib/json-output.js';
7
+ /**
8
+ * Options for querying git state
9
+ */
10
+ export interface QueryStateOptions {
11
+ /** Base branch to compare against (default: 'main') */
12
+ baseBranch?: string;
13
+ /** Include detailed file lists and commit info */
14
+ verbose?: boolean;
15
+ /** Working directory (defaults to current directory) */
16
+ cwd?: string;
17
+ }
18
+ /**
19
+ * Result type for queryState
20
+ */
21
+ export type QueryStateResult = CommandResult<WtstateResultData>;
22
+ /**
23
+ * Query the current git state
24
+ *
25
+ * Returns structured information about the repository state including:
26
+ * - Current scenario (e.g., 'main_clean_same', 'branch_with_changes')
27
+ * - Branch information
28
+ * - Uncommitted changes
29
+ * - Available actions and recommended action
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * import { queryState } from '@camaradesuk/git-worktree-tools/api';
34
+ *
35
+ * const result = await queryState({ baseBranch: 'main' });
36
+ * if (result.success) {
37
+ * console.log(`Scenario: ${result.data.scenario}`);
38
+ * console.log(`Recommended: ${result.data.recommendedAction}`);
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function queryState(options?: QueryStateOptions): Promise<QueryStateResult>;
43
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/api/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C3F"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * State query API - Query git state for programmatic use
3
+ *
4
+ * Wraps the wtstate module to provide a clean programmatic interface.
5
+ */
6
+ import { analyzeState } from '../lib/wtstate/index.js';
7
+ import { createSuccessResult, createErrorResult, ErrorCode, } from '../lib/json-output.js';
8
+ import * as git from '../lib/git.js';
9
+ /**
10
+ * Query the current git state
11
+ *
12
+ * Returns structured information about the repository state including:
13
+ * - Current scenario (e.g., 'main_clean_same', 'branch_with_changes')
14
+ * - Branch information
15
+ * - Uncommitted changes
16
+ * - Available actions and recommended action
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { queryState } from '@camaradesuk/git-worktree-tools/api';
21
+ *
22
+ * const result = await queryState({ baseBranch: 'main' });
23
+ * if (result.success) {
24
+ * console.log(`Scenario: ${result.data.scenario}`);
25
+ * console.log(`Recommended: ${result.data.recommendedAction}`);
26
+ * }
27
+ * ```
28
+ */
29
+ export async function queryState(options = {}) {
30
+ const { baseBranch = 'main', verbose = false, cwd } = options;
31
+ try {
32
+ // Verify we're in a git repo
33
+ const repoRoot = git.getRepoRoot(cwd);
34
+ if (!repoRoot) {
35
+ return createErrorResult('wtstate', ErrorCode.NOT_GIT_REPO, 'Not in a git repository');
36
+ }
37
+ // Use the wtstate analyze function
38
+ const result = analyzeState({
39
+ baseBranch,
40
+ verbose,
41
+ json: true, // We always want structured output
42
+ });
43
+ // Map to WtstateResultData
44
+ const data = {
45
+ scenario: result.scenario,
46
+ scenarioDescription: result.scenarioDescription,
47
+ currentBranch: result.currentBranch,
48
+ baseBranch: result.baseBranch,
49
+ worktreeType: result.worktreeType,
50
+ hasChanges: result.hasChanges,
51
+ hasStagedChanges: result.hasStagedChanges,
52
+ hasUnstagedChanges: result.hasUnstagedChanges,
53
+ localCommits: result.localCommits,
54
+ stagedFiles: verbose ? result.stagedFiles : [],
55
+ unstagedFiles: verbose ? result.unstagedFiles : [],
56
+ availableActions: result.availableActions.map((a) => ({
57
+ key: a.key,
58
+ label: a.label,
59
+ description: a.description,
60
+ })),
61
+ recommendedAction: result.recommendedAction,
62
+ };
63
+ return createSuccessResult('wtstate', data);
64
+ }
65
+ catch (error) {
66
+ const message = error instanceof Error ? error.message : String(error);
67
+ return createErrorResult('wtstate', ErrorCode.UNKNOWN_ERROR, message);
68
+ }
69
+ }
70
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/api/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAGL,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAmBrC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA6B,EAAE;IAC9D,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE9D,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACzF,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAkB,YAAY,CAAC;YACzC,UAAU;YACV,OAAO;YACP,IAAI,EAAE,IAAI,EAAE,mCAAmC;SAChD,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,IAAI,GAAsB;YAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC9C,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAClD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;YACH,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C,CAAC;QAEF,OAAO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
@@ -12,6 +12,7 @@ import * as prompts from '../lib/prompts.js';
12
12
  import * as colors from '../lib/colors.js';
13
13
  import { loadConfig } from '../lib/config.js';
14
14
  import { parseArgs, getHelpText, gatherPrWorktreeInfo, createDefaultDeps, groupWorktreesByState, getCleanableWorktrees, findWorktreeByPrNumber, cleanWorktree, summarizeResults, } from '../lib/cleanpr/index.js';
15
+ import { createSuccessResult, createErrorResult, formatJsonResult, ErrorCode, } from '../lib/json-output.js';
15
16
  /**
16
17
  * Create cleanup dependencies using real git operations
17
18
  */
@@ -58,6 +59,71 @@ function printWorktree(w) {
58
59
  const changeIndicator = w.hasChanges ? colors.red(' [has changes]') : '';
59
60
  console.log(` PR #${w.prNumber}: ${w.branch}${changeIndicator}`);
60
61
  }
62
+ /**
63
+ * Convert cleanup result to JSON-friendly format
64
+ */
65
+ function resultToCleanedInfo(result, worktree) {
66
+ return {
67
+ prNumber: result.prNumber,
68
+ branch: worktree.branch,
69
+ path: worktree.path,
70
+ prState: worktree.prState,
71
+ localBranchDeleted: result.localBranchDeleted,
72
+ remoteBranchDeleted: result.remoteBranchDeleted,
73
+ };
74
+ }
75
+ /**
76
+ * Output JSON result for cleanup operation
77
+ */
78
+ function outputJsonResult(results, worktrees, dryRun) {
79
+ // Create a map for quick lookup
80
+ const worktreeMap = new Map(worktrees.map((w) => [w.prNumber, w]));
81
+ if (dryRun) {
82
+ const data = {
83
+ wouldClean: results
84
+ .filter((r) => r.success)
85
+ .map((r) => {
86
+ const w = worktreeMap.get(r.prNumber);
87
+ return {
88
+ prNumber: r.prNumber,
89
+ branch: w.branch,
90
+ path: w.path,
91
+ prState: w.prState,
92
+ };
93
+ }),
94
+ totalWouldClean: results.filter((r) => r.success).length,
95
+ };
96
+ console.log(formatJsonResult(createSuccessResult('cleanpr', data)));
97
+ }
98
+ else {
99
+ const cleaned = [];
100
+ const skipped = [];
101
+ for (const result of results) {
102
+ const w = worktreeMap.get(result.prNumber);
103
+ if (!w)
104
+ continue;
105
+ if (result.success) {
106
+ cleaned.push(resultToCleanedInfo(result, w));
107
+ }
108
+ else {
109
+ skipped.push({ prNumber: result.prNumber, reason: result.message });
110
+ }
111
+ }
112
+ const data = {
113
+ cleaned,
114
+ skipped,
115
+ totalCleaned: cleaned.length,
116
+ totalSkipped: skipped.length,
117
+ };
118
+ console.log(formatJsonResult(createSuccessResult('cleanpr', data)));
119
+ }
120
+ }
121
+ /**
122
+ * Output JSON error
123
+ */
124
+ function outputJsonError(code, message) {
125
+ console.log(formatJsonResult(createErrorResult('cleanpr', code, message)));
126
+ }
61
127
  /**
62
128
  * Interactive mode - let user select worktrees to clean
63
129
  */
@@ -152,25 +218,50 @@ async function interactiveClean(worktrees, repoRoot, options) {
152
218
  async function cleanAll(worktrees, repoRoot, options) {
153
219
  const cleanable = getCleanableWorktrees(worktrees);
154
220
  if (cleanable.length === 0) {
155
- console.log(colors.info('No merged or closed PR worktrees found.'));
221
+ if (options.json) {
222
+ const data = {
223
+ cleaned: [],
224
+ skipped: [],
225
+ totalCleaned: 0,
226
+ totalSkipped: 0,
227
+ };
228
+ console.log(formatJsonResult(createSuccessResult('cleanpr', data)));
229
+ }
230
+ else {
231
+ console.log(colors.info('No merged or closed PR worktrees found.'));
232
+ }
156
233
  return;
157
234
  }
158
- console.log(colors.info(`Found ${cleanable.length} merged/closed PR worktrees.`));
159
- console.log('');
235
+ if (!options.json) {
236
+ console.log(colors.info(`Found ${cleanable.length} merged/closed PR worktrees.`));
237
+ console.log('');
238
+ }
160
239
  const deps = createCleanupDeps(repoRoot);
161
240
  const results = cleanable.map((w) => {
162
241
  const result = cleanWorktree(w, options, deps);
163
- if (result.success) {
164
- console.log(colors.success(result.message));
165
- }
166
- else {
167
- console.log(colors.warning(result.message));
242
+ if (!options.json) {
243
+ if (result.success) {
244
+ console.log(colors.success(result.message));
245
+ }
246
+ else {
247
+ console.log(colors.warning(result.message));
248
+ }
168
249
  }
169
250
  return result;
170
251
  });
171
- const summary = summarizeResults(results);
172
- console.log('');
173
- console.log(colors.success(`Cleaned ${summary.cleaned} of ${summary.total} worktrees.`));
252
+ if (options.json) {
253
+ outputJsonResult(results, cleanable, options.dryRun);
254
+ }
255
+ else {
256
+ const summary = summarizeResults(results);
257
+ console.log('');
258
+ if (options.dryRun) {
259
+ console.log(colors.info(`Would clean ${summary.cleaned} of ${summary.total} worktrees.`));
260
+ }
261
+ else {
262
+ console.log(colors.success(`Cleaned ${summary.cleaned} of ${summary.total} worktrees.`));
263
+ }
264
+ }
174
265
  }
175
266
  /**
176
267
  * Clean a specific PR worktree
@@ -182,53 +273,93 @@ async function cleanSpecific(prNumber, worktrees, repoRoot, config, options) {
182
273
  .replace('{repo}', path.basename(repoRoot))
183
274
  .replace('{number}', String(prNumber));
184
275
  const expectedPath = path.join(path.dirname(repoRoot), pattern);
185
- console.error(colors.error(`No worktree found for PR #${prNumber}`));
186
- console.error(colors.dim(`Expected at: ${expectedPath}`));
276
+ if (options.json) {
277
+ outputJsonError(ErrorCode.PR_NOT_FOUND, `No worktree found for PR #${prNumber}`);
278
+ }
279
+ else {
280
+ console.error(colors.error(`No worktree found for PR #${prNumber}`));
281
+ console.error(colors.dim(`Expected at: ${expectedPath}`));
282
+ }
187
283
  process.exit(1);
188
284
  }
189
- console.log(colors.info(`Cleaning PR #${prNumber} worktree...`));
190
- console.log(colors.dim(` Path: ${target.path}`));
191
- console.log(colors.dim(` Branch: ${target.branch}`));
192
- console.log(colors.dim(` State: ${target.prState}`));
193
- console.log('');
285
+ if (!options.json) {
286
+ console.log(colors.info(`Cleaning PR #${prNumber} worktree...`));
287
+ console.log(colors.dim(` Path: ${target.path}`));
288
+ console.log(colors.dim(` Branch: ${target.branch}`));
289
+ console.log(colors.dim(` State: ${target.prState}`));
290
+ console.log('');
291
+ }
194
292
  const deps = createCleanupDeps(repoRoot);
195
293
  const result = cleanWorktree(target, options, deps);
196
- if (result.success) {
294
+ if (options.json) {
295
+ outputJsonResult([result], [target], options.dryRun);
296
+ }
297
+ else if (result.success) {
197
298
  console.log('');
198
- console.log(colors.success(`PR #${prNumber} worktree cleaned up successfully.`));
299
+ if (options.dryRun) {
300
+ console.log(colors.info(result.message));
301
+ }
302
+ else {
303
+ console.log(colors.success(`PR #${prNumber} worktree cleaned up successfully.`));
304
+ }
199
305
  }
200
306
  else {
201
307
  console.log(colors.warning(result.message));
202
308
  process.exit(1);
203
309
  }
204
310
  }
311
+ /**
312
+ * Check if --json flag was passed (for error handling before parsing completes)
313
+ */
314
+ function hasJsonFlag(args) {
315
+ return args.includes('--json');
316
+ }
205
317
  async function main() {
206
- const parseResult = parseArgs(process.argv.slice(2));
318
+ const rawArgs = process.argv.slice(2);
319
+ const useJson = hasJsonFlag(rawArgs);
320
+ const parseResult = parseArgs(rawArgs);
207
321
  if (parseResult.kind === 'help') {
208
322
  console.log(getHelpText());
209
323
  process.exit(0);
210
324
  }
211
325
  if (parseResult.kind === 'error') {
212
- console.error(colors.error(parseResult.message));
326
+ if (useJson) {
327
+ outputJsonError(ErrorCode.INVALID_ARGUMENT, parseResult.message);
328
+ }
329
+ else {
330
+ console.error(colors.error(parseResult.message));
331
+ }
213
332
  process.exit(1);
214
333
  }
215
334
  const { prNumber, options } = parseResult;
216
335
  // Check prerequisites
217
336
  if (!github.isGhInstalled()) {
218
- console.error(colors.error('GitHub CLI (gh) is required for PR status checking.'));
219
- console.error(colors.dim('Install: https://cli.github.com/'));
337
+ if (options.json) {
338
+ outputJsonError(ErrorCode.GH_NOT_INSTALLED, 'GitHub CLI (gh) is required for PR status checking');
339
+ }
340
+ else {
341
+ console.error(colors.error('GitHub CLI (gh) is required for PR status checking.'));
342
+ console.error(colors.dim('Install: https://cli.github.com/'));
343
+ }
220
344
  process.exit(1);
221
345
  }
222
346
  // Find repo root
223
347
  const repoRoot = git.getRepoRoot();
224
348
  if (!repoRoot) {
225
- console.error(colors.error('Not in a git repository.'));
349
+ if (options.json) {
350
+ outputJsonError(ErrorCode.NOT_GIT_REPO, 'Not in a git repository');
351
+ }
352
+ else {
353
+ console.error(colors.error('Not in a git repository.'));
354
+ }
226
355
  process.exit(1);
227
356
  }
228
357
  // Load configuration
229
358
  const config = loadConfig(repoRoot);
230
- console.log('');
231
- console.log(colors.info('Scanning worktrees...'));
359
+ if (!options.json) {
360
+ console.log('');
361
+ console.log(colors.info('Scanning worktrees...'));
362
+ }
232
363
  // Gather worktree info
233
364
  const gatherDeps = createDefaultDeps();
234
365
  const worktrees = await gatherPrWorktreeInfo(repoRoot, config.worktreePattern, gatherDeps);
@@ -239,11 +370,23 @@ async function main() {
239
370
  await cleanAll(worktrees, repoRoot, options);
240
371
  }
241
372
  else {
373
+ // Interactive mode with JSON not supported
374
+ if (options.json) {
375
+ outputJsonError(ErrorCode.INVALID_ARGUMENT, 'Interactive mode not supported with --json. Use --all or specify a PR number.');
376
+ process.exit(1);
377
+ }
242
378
  await interactiveClean(worktrees, repoRoot, options);
243
379
  }
244
380
  }
245
381
  main().catch((err) => {
246
- console.error(colors.error(`Error: ${err.message}`));
382
+ const useJson = hasJsonFlag(process.argv.slice(2));
383
+ const message = err instanceof Error ? err.message : String(err);
384
+ if (useJson) {
385
+ outputJsonError(ErrorCode.UNKNOWN_ERROR, message);
386
+ }
387
+ else {
388
+ console.error(colors.error(`Error: ${message}`));
389
+ }
247
390
  process.exit(1);
248
391
  });
249
392
  //# sourceMappingURL=cleanpr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanpr.js","sourceRoot":"","sources":["../../src/cli/cleanpr.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO;QACL,cAAc,EAAE,CAAC,MAAc,EAAE,KAAc,EAAE,EAAE;YACjD,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,iBAAiB,EAAE,CAAC,MAAc,EAAW,EAAE;YAC7C,IAAI,CAAC;gBACH,QAAQ,CAAC,kBAAkB,MAAM,GAAG,EAAE;oBACpC,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,kBAAkB,EAAE,CAAC,MAAc,EAAW,EAAE;YAC9C,IAAI,CAAC;gBACH,QAAQ,CAAC,6BAA6B,MAAM,GAAG,EAAE;oBAC/C,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,cAAc,EAAE,GAAG,EAAE;YACnB,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,CAAe;IACpC,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,SAAyB,EACzB,QAAgB,EAChB,OAAqB;IAErB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAmC;QAC9C,EAAE,KAAK,EAAE,4BAA4B,SAAS,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;KACzE,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;IAEpF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAmB,EAAE,CAAC;IAEjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CACzC,aAAa,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,YAAY,GAAG,CAC1D,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,CAAC,YAAY,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ,CACrB,SAAyB,EACzB,QAAgB,EAChB,OAAqB;IAErB,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,8BAA8B,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,QAAgB,EAChB,SAAyB,EACzB,QAAgB,EAChB,MAAqC,EACrC,OAAqB;IAErB,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE3D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe;aACnC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC1C,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAEhE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,cAAc,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,QAAQ,oCAAoC,CAAC,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAE1C,sBAAsB;IACtB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAElD,uBAAuB;IACvB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAE3F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cleanpr.js","sourceRoot":"","sources":["../../src/cli/cleanpr.ts"],"names":[],"mappings":"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"}