@gitkraken/core-gitlens 0.6.0 → 0.7.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 (1914) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +9 -2
  3. package/dist/_virtual/@oxc-project+runtime/helpers/esm/decorate.js +9 -0
  4. package/dist/_virtual/@oxc-project+runtime/helpers/esm/usingCtx.js +57 -0
  5. package/dist/git/cache.d.ts +297 -297
  6. package/dist/git/cache.js +948 -1276
  7. package/dist/git/cache.js.map +1 -1
  8. package/dist/git/context.d.ts +202 -197
  9. package/dist/git/context.js +12 -8
  10. package/dist/git/context.js.map +1 -1
  11. package/dist/git/errors.d.ts +268 -281
  12. package/dist/git/errors.js +928 -706
  13. package/dist/git/errors.js.map +1 -1
  14. package/dist/git/features.d.ts +3 -2
  15. package/dist/git/features.js +34 -55
  16. package/dist/git/features.js.map +1 -1
  17. package/dist/git/gitHealth.d.ts +88 -81
  18. package/dist/git/gitHealth.js +259 -329
  19. package/dist/git/gitHealth.js.map +1 -1
  20. package/dist/git/models/author.d.ts +12 -10
  21. package/dist/git/models/author.js +0 -2
  22. package/dist/git/models/autolink.d.ts +36 -37
  23. package/dist/git/models/autolink.js +0 -2
  24. package/dist/git/models/blame.d.ts +25 -23
  25. package/dist/git/models/blame.js +0 -2
  26. package/dist/git/models/branch.d.ts +74 -72
  27. package/dist/git/models/branch.js +132 -171
  28. package/dist/git/models/branch.js.map +1 -1
  29. package/dist/git/models/commit.d.ts +135 -133
  30. package/dist/git/models/commit.js +381 -484
  31. package/dist/git/models/commit.js.map +1 -1
  32. package/dist/git/models/contributor.d.ts +30 -29
  33. package/dist/git/models/contributor.js +56 -64
  34. package/dist/git/models/contributor.js.map +1 -1
  35. package/dist/git/models/defaultBranch.d.ts +5 -3
  36. package/dist/git/models/defaultBranch.js +0 -2
  37. package/dist/git/models/diff.d.ts +49 -47
  38. package/dist/git/models/diff.js +0 -2
  39. package/dist/git/models/file.d.ts +20 -18
  40. package/dist/git/models/file.js +0 -2
  41. package/dist/git/models/fileChange.d.ts +45 -43
  42. package/dist/git/models/fileChange.js +60 -66
  43. package/dist/git/models/fileChange.js.map +1 -1
  44. package/dist/git/models/fileStatus.d.ts +25 -23
  45. package/dist/git/models/fileStatus.js +30 -26
  46. package/dist/git/models/fileStatus.js.map +1 -1
  47. package/dist/git/models/graph.d.ts +328 -320
  48. package/dist/git/models/graph.js +31 -27
  49. package/dist/git/models/graph.js.map +1 -1
  50. package/dist/git/models/graphSearch.d.ts +37 -35
  51. package/dist/git/models/graphSearch.js +0 -2
  52. package/dist/git/models/graphSession.d.ts +158 -66
  53. package/dist/git/models/graphSession.js +72 -1
  54. package/dist/git/models/graphSession.js.map +1 -1
  55. package/dist/git/models/issue.d.ts +171 -150
  56. package/dist/git/models/issue.js +86 -88
  57. package/dist/git/models/issue.js.map +1 -1
  58. package/dist/git/models/issueOrPullRequest.d.ts +16 -14
  59. package/dist/git/models/issueOrPullRequest.js +0 -2
  60. package/dist/git/models/lineRange.d.ts +6 -4
  61. package/dist/git/models/lineRange.js +0 -2
  62. package/dist/git/models/log.d.ts +18 -16
  63. package/dist/git/models/log.js +0 -2
  64. package/dist/git/models/mergeConflicts.d.ts +17 -15
  65. package/dist/git/models/mergeConflicts.js +0 -2
  66. package/dist/git/models/patch.d.ts +14 -12
  67. package/dist/git/models/patch.js +0 -2
  68. package/dist/git/models/pausedOperationStatus.d.ts +42 -40
  69. package/dist/git/models/pausedOperationStatus.js +0 -2
  70. package/dist/git/models/pullRequest.d.ts +238 -236
  71. package/dist/git/models/pullRequest.js +151 -163
  72. package/dist/git/models/pullRequest.js.map +1 -1
  73. package/dist/git/models/rebase.d.ts +30 -28
  74. package/dist/git/models/rebase.js +0 -2
  75. package/dist/git/models/reference.d.ts +57 -55
  76. package/dist/git/models/reference.js +0 -2
  77. package/dist/git/models/reflog.d.ts +29 -27
  78. package/dist/git/models/reflog.js +63 -82
  79. package/dist/git/models/reflog.js.map +1 -1
  80. package/dist/git/models/remote.d.ts +34 -32
  81. package/dist/git/models/remote.js +74 -95
  82. package/dist/git/models/remote.js.map +1 -1
  83. package/dist/git/models/remoteProvider.d.ts +86 -84
  84. package/dist/git/models/remoteProvider.js +145 -150
  85. package/dist/git/models/remoteProvider.js.map +1 -1
  86. package/dist/git/models/remoteResource.d.ts +58 -56
  87. package/dist/git/models/remoteResource.js +15 -12
  88. package/dist/git/models/remoteResource.js.map +1 -1
  89. package/dist/git/models/repository.d.ts +144 -142
  90. package/dist/git/models/repository.js +358 -406
  91. package/dist/git/models/repository.js.map +1 -1
  92. package/dist/git/models/repositoryChangeEvent.d.ts +8 -6
  93. package/dist/git/models/repositoryChangeEvent.js +26 -24
  94. package/dist/git/models/repositoryChangeEvent.js.map +1 -1
  95. package/dist/git/models/repositoryIdentities.d.ts +50 -46
  96. package/dist/git/models/repositoryIdentities.js +7 -5
  97. package/dist/git/models/repositoryIdentities.js.map +1 -1
  98. package/dist/git/models/repositoryMetadata.d.ts +9 -7
  99. package/dist/git/models/repositoryMetadata.js +0 -2
  100. package/dist/git/models/resourceDescriptor.d.ts +11 -9
  101. package/dist/git/models/resourceDescriptor.js +0 -2
  102. package/dist/git/models/revision.d.ts +2 -0
  103. package/dist/git/models/revision.js +8 -5
  104. package/dist/git/models/revision.js.map +1 -1
  105. package/dist/git/models/search.d.ts +48 -47
  106. package/dist/git/models/search.js +53 -49
  107. package/dist/git/models/search.js.map +1 -1
  108. package/dist/git/models/shortlog.d.ts +5 -3
  109. package/dist/git/models/shortlog.js +0 -2
  110. package/dist/git/models/signature.d.ts +28 -26
  111. package/dist/git/models/signature.js +0 -2
  112. package/dist/git/models/staging.d.ts +18 -16
  113. package/dist/git/models/staging.js +0 -2
  114. package/dist/git/models/stash.d.ts +5 -3
  115. package/dist/git/models/stash.js +0 -2
  116. package/dist/git/models/status.d.ts +51 -49
  117. package/dist/git/models/status.js +172 -205
  118. package/dist/git/models/status.js.map +1 -1
  119. package/dist/git/models/statusFile.d.ts +35 -34
  120. package/dist/git/models/statusFile.js +112 -125
  121. package/dist/git/models/statusFile.js.map +1 -1
  122. package/dist/git/models/tag.d.ts +34 -32
  123. package/dist/git/models/tag.js +64 -77
  124. package/dist/git/models/tag.js.map +1 -1
  125. package/dist/git/models/tree.d.ts +8 -6
  126. package/dist/git/models/tree.js +0 -2
  127. package/dist/git/models/user.d.ts +6 -4
  128. package/dist/git/models/user.js +0 -2
  129. package/dist/git/models/worktree.d.ts +50 -48
  130. package/dist/git/models/worktree.js +102 -133
  131. package/dist/git/models/worktree.js.map +1 -1
  132. package/dist/git/parsers/diffParser.d.ts +7 -5
  133. package/dist/git/parsers/diffParser.js +438 -587
  134. package/dist/git/parsers/diffParser.js.map +1 -1
  135. package/dist/git/parsers/rebaseTodoParser.d.ts +3 -1
  136. package/dist/git/parsers/rebaseTodoParser.js +165 -208
  137. package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
  138. package/dist/git/providers/blame.d.ts +12 -10
  139. package/dist/git/providers/blame.js +0 -2
  140. package/dist/git/providers/branches.d.ts +96 -94
  141. package/dist/git/providers/branches.js +0 -2
  142. package/dist/git/providers/commits.d.ts +105 -104
  143. package/dist/git/providers/commits.js +0 -2
  144. package/dist/git/providers/config.d.ts +80 -78
  145. package/dist/git/providers/config.js +0 -2
  146. package/dist/git/providers/contributors.d.ts +23 -21
  147. package/dist/git/providers/contributors.js +0 -2
  148. package/dist/git/providers/diff.d.ts +68 -66
  149. package/dist/git/providers/diff.js +0 -2
  150. package/dist/git/providers/graph.d.ts +73 -62
  151. package/dist/git/providers/graph.js +0 -2
  152. package/dist/git/providers/maintenance.d.ts +180 -178
  153. package/dist/git/providers/maintenance.js +0 -20
  154. package/dist/git/providers/operations.d.ts +114 -112
  155. package/dist/git/providers/operations.js +0 -2
  156. package/dist/git/providers/patch.d.ts +26 -24
  157. package/dist/git/providers/patch.js +0 -2
  158. package/dist/git/providers/pausedOperations.d.ts +19 -17
  159. package/dist/git/providers/pausedOperations.js +0 -2
  160. package/dist/git/providers/provider.d.ts +52 -50
  161. package/dist/git/providers/provider.js +0 -2
  162. package/dist/git/providers/refs.d.ts +42 -40
  163. package/dist/git/providers/refs.js +0 -2
  164. package/dist/git/providers/remotes.d.ts +24 -22
  165. package/dist/git/providers/remotes.js +0 -2
  166. package/dist/git/providers/revision.d.ts +25 -23
  167. package/dist/git/providers/revision.js +0 -2
  168. package/dist/git/providers/shared/remotes.d.ts +24 -22
  169. package/dist/git/providers/shared/remotes.js +52 -77
  170. package/dist/git/providers/shared/remotes.js.map +1 -1
  171. package/dist/git/providers/staging.d.ts +37 -35
  172. package/dist/git/providers/staging.js +0 -2
  173. package/dist/git/providers/stash.d.ts +38 -36
  174. package/dist/git/providers/stash.js +0 -2
  175. package/dist/git/providers/status.d.ts +32 -30
  176. package/dist/git/providers/status.js +0 -2
  177. package/dist/git/providers/tags.d.ts +20 -18
  178. package/dist/git/providers/tags.js +0 -2
  179. package/dist/git/providers/types.d.ts +19 -17
  180. package/dist/git/providers/types.js +0 -2
  181. package/dist/git/providers/worktrees.d.ts +26 -24
  182. package/dist/git/providers/worktrees.js +0 -2
  183. package/dist/git/remotes/azure-devops.d.ts +46 -45
  184. package/dist/git/remotes/azure-devops.js +252 -257
  185. package/dist/git/remotes/azure-devops.js.map +1 -1
  186. package/dist/git/remotes/bitbucket-server.d.ts +30 -29
  187. package/dist/git/remotes/bitbucket-server.js +141 -142
  188. package/dist/git/remotes/bitbucket-server.js.map +1 -1
  189. package/dist/git/remotes/bitbucket.d.ts +27 -26
  190. package/dist/git/remotes/bitbucket.js +114 -111
  191. package/dist/git/remotes/bitbucket.js.map +1 -1
  192. package/dist/git/remotes/custom.d.ts +26 -25
  193. package/dist/git/remotes/custom.js +130 -130
  194. package/dist/git/remotes/custom.js.map +1 -1
  195. package/dist/git/remotes/gerrit.d.ts +29 -28
  196. package/dist/git/remotes/gerrit.js +140 -143
  197. package/dist/git/remotes/gerrit.js.map +1 -1
  198. package/dist/git/remotes/gitea.d.ts +28 -27
  199. package/dist/git/remotes/gitea.js +141 -145
  200. package/dist/git/remotes/gitea.js.map +1 -1
  201. package/dist/git/remotes/github.d.ts +35 -34
  202. package/dist/git/remotes/github.js +196 -190
  203. package/dist/git/remotes/github.js.map +1 -1
  204. package/dist/git/remotes/gitlab.d.ts +31 -30
  205. package/dist/git/remotes/gitlab.js +245 -227
  206. package/dist/git/remotes/gitlab.js.map +1 -1
  207. package/dist/git/remotes/google-source.d.ts +16 -14
  208. package/dist/git/remotes/google-source.js +33 -31
  209. package/dist/git/remotes/google-source.js.map +1 -1
  210. package/dist/git/remotes/matcher.d.ts +16 -14
  211. package/dist/git/remotes/matcher.js +141 -124
  212. package/dist/git/remotes/matcher.js.map +1 -1
  213. package/dist/git/repositoryService.d.ts +47 -47
  214. package/dist/git/repositoryService.js +47 -44
  215. package/dist/git/repositoryService.js.map +1 -1
  216. package/dist/git/run.types.d.ts +91 -76
  217. package/dist/git/run.types.js +0 -2
  218. package/dist/git/service.d.ts +73 -71
  219. package/dist/git/service.js +286 -302
  220. package/dist/git/service.js.map +1 -1
  221. package/dist/git/utils/autolink.utils.d.ts +4 -2
  222. package/dist/git/utils/autolink.utils.js +103 -139
  223. package/dist/git/utils/autolink.utils.js.map +1 -1
  224. package/dist/git/utils/blame.utils.d.ts +22 -20
  225. package/dist/git/utils/blame.utils.js +196 -230
  226. package/dist/git/utils/blame.utils.js.map +1 -1
  227. package/dist/git/utils/branch.utils.d.ts +7 -9
  228. package/dist/git/utils/branch.utils.js +89 -115
  229. package/dist/git/utils/branch.utils.js.map +1 -1
  230. package/dist/git/utils/commit.utils.d.ts +10 -16
  231. package/dist/git/utils/commit.utils.js +28 -47
  232. package/dist/git/utils/commit.utils.js.map +1 -1
  233. package/dist/git/utils/config.utils.d.ts +2 -0
  234. package/dist/git/utils/config.utils.js +14 -5
  235. package/dist/git/utils/config.utils.js.map +1 -1
  236. package/dist/git/utils/conflictResolution.utils.d.ts +16 -13
  237. package/dist/git/utils/conflictResolution.utils.js +116 -113
  238. package/dist/git/utils/conflictResolution.utils.js.map +1 -1
  239. package/dist/git/utils/contributor.utils.d.ts +10 -8
  240. package/dist/git/utils/contributor.utils.js +47 -69
  241. package/dist/git/utils/contributor.utils.js.map +1 -1
  242. package/dist/git/utils/fetch.utils.d.ts +2 -0
  243. package/dist/git/utils/fetch.utils.js +33 -44
  244. package/dist/git/utils/fetch.utils.js.map +1 -1
  245. package/dist/git/utils/fileStatus.utils.d.ts +22 -21
  246. package/dist/git/utils/fileStatus.utils.js +59 -45
  247. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  248. package/dist/git/utils/graph.utils.d.ts +19 -1
  249. package/dist/git/utils/graph.utils.js +60 -35
  250. package/dist/git/utils/graph.utils.js.map +1 -1
  251. package/dist/git/utils/issue.utils.d.ts +3 -1
  252. package/dist/git/utils/issue.utils.js +154 -158
  253. package/dist/git/utils/issue.utils.js.map +1 -1
  254. package/dist/git/utils/issueOrPullRequest.utils.d.ts +3 -1
  255. package/dist/git/utils/issueOrPullRequest.utils.js +23 -20
  256. package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
  257. package/dist/git/utils/mergeConflicts.utils.d.ts +4 -1
  258. package/dist/git/utils/mergeConflicts.utils.js +28 -15
  259. package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
  260. package/dist/git/utils/pausedOperationStatus.utils.d.ts +7 -42
  261. package/dist/git/utils/pausedOperationStatus.utils.js +83 -146
  262. package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
  263. package/dist/git/utils/pullRequest.utils.d.ts +7 -5
  264. package/dist/git/utils/pullRequest.utils.js +180 -187
  265. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  266. package/dist/git/utils/reachability.utils.d.ts +6 -6
  267. package/dist/git/utils/reachability.utils.js +120 -147
  268. package/dist/git/utils/reachability.utils.js.map +1 -1
  269. package/dist/git/utils/rebase.utils.d.ts +3 -1
  270. package/dist/git/utils/rebase.utils.js +87 -71
  271. package/dist/git/utils/rebase.utils.js.map +1 -1
  272. package/dist/git/utils/reference.utils.d.ts +33 -32
  273. package/dist/git/utils/reference.utils.js +152 -179
  274. package/dist/git/utils/reference.utils.js.map +1 -1
  275. package/dist/git/utils/remote.utils.d.ts +5 -3
  276. package/dist/git/utils/remote.utils.js +77 -116
  277. package/dist/git/utils/remote.utils.js.map +1 -1
  278. package/dist/git/utils/repository.utils.d.ts +3 -1
  279. package/dist/git/utils/repository.utils.js +12 -11
  280. package/dist/git/utils/repository.utils.js.map +1 -1
  281. package/dist/git/utils/resourceDescriptor.utils.d.ts +3 -1
  282. package/dist/git/utils/resourceDescriptor.utils.js +8 -14
  283. package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
  284. package/dist/git/utils/revision.utils.d.ts +11 -10
  285. package/dist/git/utils/revision.utils.js +69 -83
  286. package/dist/git/utils/revision.utils.js.map +1 -1
  287. package/dist/git/utils/search.utils.d.ts +5 -3
  288. package/dist/git/utils/search.utils.js +383 -522
  289. package/dist/git/utils/search.utils.js.map +1 -1
  290. package/dist/git/utils/sorting.d.ts +22 -20
  291. package/dist/git/utils/sorting.js +133 -227
  292. package/dist/git/utils/sorting.js.map +1 -1
  293. package/dist/git/utils/sshKey.utils.d.ts +2 -0
  294. package/dist/git/utils/sshKey.utils.js +10 -15
  295. package/dist/git/utils/sshKey.utils.js.map +1 -1
  296. package/dist/git/utils/status.utils.d.ts +20 -15
  297. package/dist/git/utils/status.utils.js +93 -79
  298. package/dist/git/utils/status.utils.js.map +1 -1
  299. package/dist/git/utils/statusFile.utils.d.ts +6 -4
  300. package/dist/git/utils/statusFile.utils.js +71 -72
  301. package/dist/git/utils/statusFile.utils.js.map +1 -1
  302. package/dist/git/utils/tag.utils.d.ts +4 -2
  303. package/dist/git/utils/tag.utils.js +10 -8
  304. package/dist/git/utils/tag.utils.js.map +1 -1
  305. package/dist/git/utils/tooltip.utils.d.ts +5 -2
  306. package/dist/git/utils/tooltip.utils.js +49 -24
  307. package/dist/git/utils/tooltip.utils.js.map +1 -1
  308. package/dist/git/utils/uriAuthority.d.ts +9 -7
  309. package/dist/git/utils/uriAuthority.js +19 -16
  310. package/dist/git/utils/uriAuthority.js.map +1 -1
  311. package/dist/git/utils/user.utils.d.ts +3 -1
  312. package/dist/git/utils/user.utils.js +6 -10
  313. package/dist/git/utils/user.utils.js.map +1 -1
  314. package/dist/git/utils/worktree.utils.d.ts +5 -3
  315. package/dist/git/utils/worktree.utils.js +14 -12
  316. package/dist/git/utils/worktree.utils.js.map +1 -1
  317. package/dist/git/watching/changeEvent.d.ts +38 -36
  318. package/dist/git/watching/changeEvent.js +60 -67
  319. package/dist/git/watching/changeEvent.js.map +1 -1
  320. package/dist/git/watching/classifyChange.d.ts +3 -1
  321. package/dist/git/watching/classifyChange.js +50 -79
  322. package/dist/git/watching/classifyChange.js.map +1 -1
  323. package/dist/git/watching/gitIgnoreFilter.d.ts +43 -41
  324. package/dist/git/watching/gitIgnoreFilter.js +92 -107
  325. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  326. package/dist/git/watching/initWatcher.d.ts +22 -20
  327. package/dist/git/watching/initWatcher.js +58 -57
  328. package/dist/git/watching/initWatcher.js.map +1 -1
  329. package/dist/git/watching/provider.d.ts +8 -7
  330. package/dist/git/watching/provider.js +0 -2
  331. package/dist/git/watching/watchGroup.d.ts +29 -28
  332. package/dist/git/watching/watchGroup.js +105 -137
  333. package/dist/git/watching/watchGroup.js.map +1 -1
  334. package/dist/git/watching/watchService.d.ts +70 -68
  335. package/dist/git/watching/watchService.js +275 -339
  336. package/dist/git/watching/watchService.js.map +1 -1
  337. package/dist/git/watching/watchSession.d.ts +112 -111
  338. package/dist/git/watching/watchSession.js +260 -314
  339. package/dist/git/watching/watchSession.js.map +1 -1
  340. package/dist/git/watching/watcherPatterns.d.ts +4 -2
  341. package/dist/git/watching/watcherPatterns.js +21 -24
  342. package/dist/git/watching/watcherPatterns.js.map +1 -1
  343. package/dist/git-cli/cliGitProvider.d.ts +117 -114
  344. package/dist/git-cli/cliGitProvider.js +261 -283
  345. package/dist/git-cli/cliGitProvider.js.map +1 -1
  346. package/dist/git-cli/exec/eventLoopMonitor.d.ts +26 -0
  347. package/dist/git-cli/exec/eventLoopMonitor.js +61 -0
  348. package/dist/git-cli/exec/eventLoopMonitor.js.map +1 -0
  349. package/dist/git-cli/exec/exec.d.ts +3 -4
  350. package/dist/git-cli/exec/exec.errors.d.ts +2 -2
  351. package/dist/git-cli/exec/exec.errors.js +2 -2
  352. package/dist/git-cli/exec/exec.js +3 -3
  353. package/dist/git-cli/exec/exec.types.d.ts +2 -2
  354. package/dist/git-cli/exec/exec.types.js +0 -2
  355. package/dist/git-cli/exec/features.d.ts +2 -3
  356. package/dist/git-cli/exec/features.js +2 -2
  357. package/dist/git-cli/exec/git.d.ts +224 -205
  358. package/dist/git-cli/exec/git.js +834 -1042
  359. package/dist/git-cli/exec/git.js.map +1 -1
  360. package/dist/git-cli/exec/gitQueue.d.ts +51 -48
  361. package/dist/git-cli/exec/gitQueue.js +225 -260
  362. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  363. package/dist/git-cli/exec/locator.d.ts +8 -6
  364. package/dist/git-cli/exec/locator.js +95 -121
  365. package/dist/git-cli/exec/locator.js.map +1 -1
  366. package/dist/git-cli/parsers/blameParser.d.ts +22 -20
  367. package/dist/git-cli/parsers/blameParser.js +238 -332
  368. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  369. package/dist/git-cli/parsers/indexParser.d.ts +3 -1
  370. package/dist/git-cli/parsers/indexParser.js +146 -221
  371. package/dist/git-cli/parsers/indexParser.js.map +1 -1
  372. package/dist/git-cli/parsers/logParser.d.ts +103 -110
  373. package/dist/git-cli/parsers/logParser.js +998 -1199
  374. package/dist/git-cli/parsers/logParser.js.map +1 -1
  375. package/dist/git-cli/parsers/mergeTreeParser.d.ts +5 -3
  376. package/dist/git-cli/parsers/mergeTreeParser.js +28 -72
  377. package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
  378. package/dist/git-cli/parsers/refParser.d.ts +5 -4
  379. package/dist/git-cli/parsers/refParser.js +92 -137
  380. package/dist/git-cli/parsers/refParser.js.map +1 -1
  381. package/dist/git-cli/parsers/reflogParser.d.ts +7 -6
  382. package/dist/git-cli/parsers/reflogParser.js +100 -173
  383. package/dist/git-cli/parsers/reflogParser.js.map +1 -1
  384. package/dist/git-cli/parsers/remoteParser.d.ts +4 -2
  385. package/dist/git-cli/parsers/remoteParser.js +74 -126
  386. package/dist/git-cli/parsers/remoteParser.js.map +1 -1
  387. package/dist/git-cli/parsers/shortlogParser.d.ts +4 -2
  388. package/dist/git-cli/parsers/shortlogParser.js +44 -49
  389. package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
  390. package/dist/git-cli/parsers/signatureParser.d.ts +3 -1
  391. package/dist/git-cli/parsers/signatureParser.js +82 -124
  392. package/dist/git-cli/parsers/signatureParser.js.map +1 -1
  393. package/dist/git-cli/parsers/sshSignatureParser.d.ts +5 -3
  394. package/dist/git-cli/parsers/sshSignatureParser.js +55 -64
  395. package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -1
  396. package/dist/git-cli/parsers/statusParser.d.ts +4 -2
  397. package/dist/git-cli/parsers/statusParser.js +148 -205
  398. package/dist/git-cli/parsers/statusParser.js.map +1 -1
  399. package/dist/git-cli/parsers/treeParser.d.ts +3 -1
  400. package/dist/git-cli/parsers/treeParser.js +57 -108
  401. package/dist/git-cli/parsers/treeParser.js.map +1 -1
  402. package/dist/git-cli/parsers/worktreeParser.d.ts +4 -3
  403. package/dist/git-cli/parsers/worktreeParser.js +76 -132
  404. package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
  405. package/dist/git-cli/providers/blame.d.ts +25 -23
  406. package/dist/git-cli/providers/blame.js +404 -413
  407. package/dist/git-cli/providers/blame.js.map +1 -1
  408. package/dist/git-cli/providers/branches.d.ts +117 -116
  409. package/dist/git-cli/providers/branches.js +1132 -1468
  410. package/dist/git-cli/providers/branches.js.map +1 -1
  411. package/dist/git-cli/providers/commitFilesetUtils.d.ts +4 -2
  412. package/dist/git-cli/providers/commitFilesetUtils.js +36 -18
  413. package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
  414. package/dist/git-cli/providers/commits.d.ts +58 -56
  415. package/dist/git-cli/providers/commits.js +1084 -1423
  416. package/dist/git-cli/providers/commits.js.map +1 -1
  417. package/dist/git-cli/providers/config.d.ts +129 -127
  418. package/dist/git-cli/providers/config.js +612 -831
  419. package/dist/git-cli/providers/config.js.map +1 -1
  420. package/dist/git-cli/providers/contributors.d.ts +29 -28
  421. package/dist/git-cli/providers/contributors.js +246 -351
  422. package/dist/git-cli/providers/contributors.js.map +1 -1
  423. package/dist/git-cli/providers/diff.d.ts +97 -94
  424. package/dist/git-cli/providers/diff.js +638 -845
  425. package/dist/git-cli/providers/diff.js.map +1 -1
  426. package/dist/git-cli/providers/graph.d.ts +66 -68
  427. package/dist/git-cli/providers/graph.js +1400 -1848
  428. package/dist/git-cli/providers/graph.js.map +1 -1
  429. package/dist/git-cli/providers/maintenance.d.ts +305 -303
  430. package/dist/git-cli/providers/maintenance.js +1526 -2078
  431. package/dist/git-cli/providers/maintenance.js.map +1 -1
  432. package/dist/git-cli/providers/operations.d.ts +96 -94
  433. package/dist/git-cli/providers/operations.js +664 -724
  434. package/dist/git-cli/providers/operations.js.map +1 -1
  435. package/dist/git-cli/providers/patch.d.ts +37 -35
  436. package/dist/git-cli/providers/patch.js +206 -307
  437. package/dist/git-cli/providers/patch.js.map +1 -1
  438. package/dist/git-cli/providers/pausedOperations.d.ts +30 -28
  439. package/dist/git-cli/providers/pausedOperations.js +475 -506
  440. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  441. package/dist/git-cli/providers/refs.d.ts +50 -48
  442. package/dist/git-cli/providers/refs.js +335 -479
  443. package/dist/git-cli/providers/refs.js.map +1 -1
  444. package/dist/git-cli/providers/remotes.d.ts +23 -21
  445. package/dist/git-cli/providers/remotes.js +71 -92
  446. package/dist/git-cli/providers/remotes.js.map +1 -1
  447. package/dist/git-cli/providers/revision.d.ts +27 -25
  448. package/dist/git-cli/providers/revision.js +288 -304
  449. package/dist/git-cli/providers/revision.js.map +1 -1
  450. package/dist/git-cli/providers/staging.d.ts +31 -29
  451. package/dist/git-cli/providers/staging.js +140 -189
  452. package/dist/git-cli/providers/staging.js.map +1 -1
  453. package/dist/git-cli/providers/stash.d.ts +44 -42
  454. package/dist/git-cli/providers/stash.js +288 -387
  455. package/dist/git-cli/providers/stash.js.map +1 -1
  456. package/dist/git-cli/providers/status.d.ts +61 -59
  457. package/dist/git-cli/providers/status.js +332 -453
  458. package/dist/git-cli/providers/status.js.map +1 -1
  459. package/dist/git-cli/providers/tags.d.ts +31 -29
  460. package/dist/git-cli/providers/tags.js +158 -215
  461. package/dist/git-cli/providers/tags.js.map +1 -1
  462. package/dist/git-cli/providers/worktrees.d.ts +35 -33
  463. package/dist/git-cli/providers/worktrees.js +178 -203
  464. package/dist/git-cli/providers/worktrees.js.map +1 -1
  465. package/dist/git-cli/service.d.ts +28 -26
  466. package/dist/git-cli/service.js +38 -40
  467. package/dist/git-cli/service.js.map +1 -1
  468. package/dist/ipc/discovery.d.ts +19 -17
  469. package/dist/ipc/discovery.js +104 -128
  470. package/dist/ipc/discovery.js.map +1 -1
  471. package/dist/ipc/ipcServer.d.ts +16 -14
  472. package/dist/ipc/ipcServer.js +139 -160
  473. package/dist/ipc/ipcServer.js.map +1 -1
  474. package/dist/plus/agents/agentCapabilities.d.ts +50 -37
  475. package/dist/plus/agents/agentCapabilities.js +138 -173
  476. package/dist/plus/agents/agentCapabilities.js.map +1 -1
  477. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +153 -151
  478. package/dist/plus/agents/providers/claudeCodeTranscript.js +605 -679
  479. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
  480. package/dist/plus/agents/providers/gkAgentProvider.d.ts +237 -240
  481. package/dist/plus/agents/providers/gkAgentProvider.js +2162 -3334
  482. package/dist/plus/agents/providers/gkAgentProvider.js.map +1 -1
  483. package/dist/plus/agents/sanitizePrompt.d.ts +2 -0
  484. package/dist/plus/agents/sanitizePrompt.js +58 -91
  485. package/dist/plus/agents/sanitizePrompt.js.map +1 -1
  486. package/dist/plus/agents/stateMachine.d.ts +7 -5
  487. package/dist/plus/agents/stateMachine.js +135 -163
  488. package/dist/plus/agents/stateMachine.js.map +1 -1
  489. package/dist/plus/agents/types.d.ts +333 -336
  490. package/dist/plus/agents/types.js +48 -48
  491. package/dist/plus/agents/types.js.map +1 -1
  492. package/dist/plus/ai/constants.d.ts +3 -1
  493. package/dist/plus/ai/constants.js +88 -84
  494. package/dist/plus/ai/constants.js.map +1 -1
  495. package/dist/plus/ai/errors.d.ts +22 -18
  496. package/dist/plus/ai/errors.js +158 -138
  497. package/dist/plus/ai/errors.js.map +1 -1
  498. package/dist/plus/ai/models/conversation.d.ts +11 -9
  499. package/dist/plus/ai/models/conversation.js +30 -26
  500. package/dist/plus/ai/models/conversation.js.map +1 -1
  501. package/dist/plus/ai/models/model.d.ts +29 -27
  502. package/dist/plus/ai/models/model.js +663 -471
  503. package/dist/plus/ai/models/model.js.map +1 -1
  504. package/dist/plus/ai/models/promptTemplates.d.ts +56 -55
  505. package/dist/plus/ai/models/promptTemplates.js +0 -2
  506. package/dist/plus/ai/models/provider.d.ts +79 -77
  507. package/dist/plus/ai/models/provider.js +0 -2
  508. package/dist/plus/ai/models/results.d.ts +27 -21
  509. package/dist/plus/ai/models/results.js +0 -2
  510. package/dist/plus/ai/prompts.d.ts +4 -2
  511. package/dist/plus/ai/prompts.js +301 -190
  512. package/dist/plus/ai/prompts.js.map +1 -1
  513. package/dist/plus/ai/providers/anthropicProvider.d.ts +33 -32
  514. package/dist/plus/ai/providers/anthropicProvider.js +484 -381
  515. package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
  516. package/dist/plus/ai/providers/azureProvider.d.ts +18 -16
  517. package/dist/plus/ai/providers/azureProvider.js +53 -53
  518. package/dist/plus/ai/providers/azureProvider.js.map +1 -1
  519. package/dist/plus/ai/providers/context.d.ts +23 -20
  520. package/dist/plus/ai/providers/context.js +0 -2
  521. package/dist/plus/ai/providers/deepSeekProvider.d.ts +17 -15
  522. package/dist/plus/ai/providers/deepSeekProvider.js +45 -39
  523. package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
  524. package/dist/plus/ai/providers/geminiProvider.d.ts +16 -14
  525. package/dist/plus/ai/providers/geminiProvider.js +316 -230
  526. package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
  527. package/dist/plus/ai/providers/gitkrakenProvider.d.ts +22 -20
  528. package/dist/plus/ai/providers/gitkrakenProvider.js +165 -260
  529. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  530. package/dist/plus/ai/providers/huggingFaceProvider.d.ts +16 -14
  531. package/dist/plus/ai/providers/huggingFaceProvider.js +45 -46
  532. package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
  533. package/dist/plus/ai/providers/mistralProvider.d.ts +22 -20
  534. package/dist/plus/ai/providers/mistralProvider.js +263 -195
  535. package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
  536. package/dist/plus/ai/providers/ollamaProvider.d.ts +26 -24
  537. package/dist/plus/ai/providers/ollamaProvider.js +156 -189
  538. package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
  539. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts +18 -16
  540. package/dist/plus/ai/providers/openAICompatibleProvider.js +50 -50
  541. package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
  542. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +187 -185
  543. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +356 -475
  544. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  545. package/dist/plus/ai/providers/openRouterProvider.d.ts +20 -19
  546. package/dist/plus/ai/providers/openRouterProvider.js +60 -65
  547. package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
  548. package/dist/plus/ai/providers/openaiProvider.d.ts +17 -15
  549. package/dist/plus/ai/providers/openaiProvider.js +35 -34
  550. package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
  551. package/dist/plus/ai/providers/responseFormatCache.d.ts +4 -2
  552. package/dist/plus/ai/providers/responseFormatCache.js +21 -17
  553. package/dist/plus/ai/providers/responseFormatCache.js.map +1 -1
  554. package/dist/plus/ai/providers/xaiProvider.d.ts +16 -14
  555. package/dist/plus/ai/providers/xaiProvider.js +61 -46
  556. package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
  557. package/dist/plus/ai/utils/ai.utils.d.ts +4 -2
  558. package/dist/plus/ai/utils/ai.utils.js +50 -77
  559. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  560. package/dist/plus/ai/utils/results.utils.d.ts +7 -5
  561. package/dist/plus/ai/utils/results.utils.js +235 -269
  562. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  563. package/dist/plus/ai/utils/truncation.utils.d.ts +3 -2
  564. package/dist/plus/ai/utils/truncation.utils.js +242 -205
  565. package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
  566. package/dist/plus/git-github/api/config.d.ts +58 -56
  567. package/dist/plus/git-github/api/config.js +15 -11
  568. package/dist/plus/git-github/api/config.js.map +1 -1
  569. package/dist/plus/git-github/api/github.d.ts +500 -497
  570. package/dist/plus/git-github/api/github.js +2326 -3121
  571. package/dist/plus/git-github/api/github.js.map +1 -1
  572. package/dist/plus/git-github/api/github.utils.d.ts +5 -3
  573. package/dist/plus/git-github/api/github.utils.js +24 -19
  574. package/dist/plus/git-github/api/github.utils.js.map +1 -1
  575. package/dist/plus/git-github/api/issueSearchQuery.d.ts +5 -3
  576. package/dist/plus/git-github/api/issueSearchQuery.js +204 -221
  577. package/dist/plus/git-github/api/issueSearchQuery.js.map +1 -1
  578. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +6 -5
  579. package/dist/plus/git-github/api/pullRequestSearchQuery.js +89 -116
  580. package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -1
  581. package/dist/plus/git-github/api/token.d.ts +10 -8
  582. package/dist/plus/git-github/api/token.js +0 -2
  583. package/dist/plus/git-github/api/tokenUtils.d.ts +4 -2
  584. package/dist/plus/git-github/api/tokenUtils.js +14 -10
  585. package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
  586. package/dist/plus/git-github/api/types.d.ts +94 -92
  587. package/dist/plus/git-github/api/types.js +0 -2
  588. package/dist/plus/git-github/context.d.ts +65 -63
  589. package/dist/plus/git-github/context.js +13 -9
  590. package/dist/plus/git-github/context.js.map +1 -1
  591. package/dist/plus/git-github/models.d.ts +182 -182
  592. package/dist/plus/git-github/models.js +199 -265
  593. package/dist/plus/git-github/models.js.map +1 -1
  594. package/dist/plus/git-github/providers/github/blame.d.ts +32 -31
  595. package/dist/plus/git-github/providers/github/blame.js +137 -150
  596. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  597. package/dist/plus/git-github/providers/github/branches.d.ts +42 -40
  598. package/dist/plus/git-github/providers/github/branches.js +199 -274
  599. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  600. package/dist/plus/git-github/providers/github/commits.d.ts +35 -33
  601. package/dist/plus/git-github/providers/github/commits.js +527 -606
  602. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  603. package/dist/plus/git-github/providers/github/config.d.ts +10 -8
  604. package/dist/plus/git-github/providers/github/config.js +35 -45
  605. package/dist/plus/git-github/providers/github/config.js.map +1 -1
  606. package/dist/plus/git-github/providers/github/contributors.d.ts +25 -24
  607. package/dist/plus/git-github/providers/github/contributors.js +174 -216
  608. package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
  609. package/dist/plus/git-github/providers/github/diff.d.ts +34 -32
  610. package/dist/plus/git-github/providers/github/diff.js +154 -194
  611. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  612. package/dist/plus/git-github/providers/github/graph.d.ts +33 -31
  613. package/dist/plus/git-github/providers/github/graph.js +400 -452
  614. package/dist/plus/git-github/providers/github/graph.js.map +1 -1
  615. package/dist/plus/git-github/providers/github/refs.d.ts +33 -31
  616. package/dist/plus/git-github/providers/github/refs.js +97 -131
  617. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  618. package/dist/plus/git-github/providers/github/remotes.d.ts +8 -6
  619. package/dist/plus/git-github/providers/github/remotes.js +30 -35
  620. package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
  621. package/dist/plus/git-github/providers/github/revision.d.ts +13 -11
  622. package/dist/plus/git-github/providers/github/revision.js +106 -129
  623. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  624. package/dist/plus/git-github/providers/github/status.d.ts +24 -22
  625. package/dist/plus/git-github/providers/github/status.js +49 -47
  626. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  627. package/dist/plus/git-github/providers/github/tags.d.ts +21 -19
  628. package/dist/plus/git-github/providers/github/tags.js +78 -103
  629. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  630. package/dist/plus/git-github/providers/githubGitProvider.d.ts +67 -64
  631. package/dist/plus/git-github/providers/githubGitProvider.js +131 -128
  632. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  633. package/dist/plus/git-github/providers/githubProvider.d.ts +46 -44
  634. package/dist/plus/git-github/providers/githubProvider.js +0 -2
  635. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +29 -27
  636. package/dist/plus/integrations/authentication/cloudIntegrationService.js +173 -208
  637. package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
  638. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +126 -107
  639. package/dist/plus/integrations/authentication/configuredIntegrationService.js +399 -497
  640. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
  641. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +73 -72
  642. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +153 -232
  643. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
  644. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +61 -59
  645. package/dist/plus/integrations/authentication/integrationAuthenticationService.js +100 -124
  646. package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
  647. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +14 -12
  648. package/dist/plus/integrations/authentication/manualTokenProvider.js +26 -51
  649. package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
  650. package/dist/plus/integrations/authentication/models.d.ts +102 -85
  651. package/dist/plus/integrations/authentication/models.js +55 -54
  652. package/dist/plus/integrations/authentication/models.js.map +1 -1
  653. package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts +19 -17
  654. package/dist/plus/integrations/authentication/rejectedTokenTracker.js +53 -51
  655. package/dist/plus/integrations/authentication/rejectedTokenTracker.js.map +1 -1
  656. package/dist/plus/integrations/collectionMetadata.d.ts +12 -10
  657. package/dist/plus/integrations/collectionMetadata.js +204 -254
  658. package/dist/plus/integrations/collectionMetadata.js.map +1 -1
  659. package/dist/plus/integrations/constants.d.ts +60 -34
  660. package/dist/plus/integrations/constants.js +157 -132
  661. package/dist/plus/integrations/constants.js.map +1 -1
  662. package/dist/plus/integrations/context.d.ts +253 -252
  663. package/dist/plus/integrations/context.js +0 -2
  664. package/dist/plus/integrations/errors.d.ts +26 -25
  665. package/dist/plus/integrations/errors.js +116 -140
  666. package/dist/plus/integrations/errors.js.map +1 -1
  667. package/dist/plus/integrations/index.d.ts +36 -40
  668. package/dist/plus/integrations/index.js +46 -57
  669. package/dist/plus/integrations/index.js.map +1 -1
  670. package/dist/plus/integrations/integrationService.d.ts +445 -440
  671. package/dist/plus/integrations/integrationService.js +1054 -1324
  672. package/dist/plus/integrations/integrationService.js.map +1 -1
  673. package/dist/plus/integrations/lite.d.ts +33 -31
  674. package/dist/plus/integrations/lite.js +84 -122
  675. package/dist/plus/integrations/lite.js.map +1 -1
  676. package/dist/plus/integrations/manager.d.ts +592 -580
  677. package/dist/plus/integrations/manager.js +0 -2
  678. package/dist/plus/integrations/models/gitHostIntegration.d.ts +420 -415
  679. package/dist/plus/integrations/models/gitHostIntegration.js +1180 -1293
  680. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  681. package/dist/plus/integrations/models/integration.d.ts +200 -190
  682. package/dist/plus/integrations/models/integration.js +577 -722
  683. package/dist/plus/integrations/models/integration.js.map +1 -1
  684. package/dist/plus/integrations/models/issueCache.d.ts +15 -13
  685. package/dist/plus/integrations/models/issueCache.js +9 -7
  686. package/dist/plus/integrations/models/issueCache.js.map +1 -1
  687. package/dist/plus/integrations/models/issueReads.d.ts +108 -85
  688. package/dist/plus/integrations/models/issueReads.js +0 -2
  689. package/dist/plus/integrations/models/issuesIntegration.d.ts +72 -71
  690. package/dist/plus/integrations/models/issuesIntegration.js +160 -186
  691. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
  692. package/dist/plus/integrations/models/pullRequestReads.d.ts +9 -7
  693. package/dist/plus/integrations/models/pullRequestReads.js +0 -2
  694. package/dist/plus/integrations/providerFilters.d.ts +8 -20
  695. package/dist/plus/integrations/providerFilters.js +11 -7
  696. package/dist/plus/integrations/providerFilters.js.map +1 -1
  697. package/dist/plus/integrations/providers/accounts.d.ts +7 -5
  698. package/dist/plus/integrations/providers/accounts.js +21 -31
  699. package/dist/plus/integrations/providers/accounts.js.map +1 -1
  700. package/dist/plus/integrations/providers/apiClients.d.ts +13 -10
  701. package/dist/plus/integrations/providers/apiClients.js +51 -36
  702. package/dist/plus/integrations/providers/apiClients.js.map +1 -1
  703. package/dist/plus/integrations/providers/apiConfig.d.ts +31 -29
  704. package/dist/plus/integrations/providers/apiConfig.js +18 -16
  705. package/dist/plus/integrations/providers/apiConfig.js.map +1 -1
  706. package/dist/plus/integrations/providers/azure/azure.d.ts +69 -67
  707. package/dist/plus/integrations/providers/azure/azure.js +452 -577
  708. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  709. package/dist/plus/integrations/providers/azure/models.d.ts +228 -226
  710. package/dist/plus/integrations/providers/azure/models.js +223 -251
  711. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  712. package/dist/plus/integrations/providers/azureDevOps.d.ts +132 -131
  713. package/dist/plus/integrations/providers/azureDevOps.js +773 -931
  714. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  715. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +50 -48
  716. package/dist/plus/integrations/providers/bitbucket/bitbucket.js +417 -585
  717. package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
  718. package/dist/plus/integrations/providers/bitbucket/models.d.ts +179 -179
  719. package/dist/plus/integrations/providers/bitbucket/models.js +96 -144
  720. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
  721. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +111 -109
  722. package/dist/plus/integrations/providers/bitbucket-server/models.js +102 -121
  723. package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
  724. package/dist/plus/integrations/providers/bitbucket-server.d.ts +79 -79
  725. package/dist/plus/integrations/providers/bitbucket-server.js +205 -241
  726. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
  727. package/dist/plus/integrations/providers/bitbucket.d.ts +80 -79
  728. package/dist/plus/integrations/providers/bitbucket.js +390 -477
  729. package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
  730. package/dist/plus/integrations/providers/github/github.d.ts +5 -3
  731. package/dist/plus/integrations/providers/github/github.js +38 -45
  732. package/dist/plus/integrations/providers/github/github.js.map +1 -1
  733. package/dist/plus/integrations/providers/github/github.utils.d.ts +8 -5
  734. package/dist/plus/integrations/providers/github/github.utils.js +7 -4
  735. package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
  736. package/dist/plus/integrations/providers/github/models.d.ts +2 -3
  737. package/dist/plus/integrations/providers/github/models.js +2 -2
  738. package/dist/plus/integrations/providers/github.d.ts +174 -172
  739. package/dist/plus/integrations/providers/github.js +431 -523
  740. package/dist/plus/integrations/providers/github.js.map +1 -1
  741. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +67 -66
  742. package/dist/plus/integrations/providers/gitlab/gitlab.js +546 -757
  743. package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
  744. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +7 -5
  745. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +45 -46
  746. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
  747. package/dist/plus/integrations/providers/gitlab/models.d.ts +109 -107
  748. package/dist/plus/integrations/providers/gitlab/models.js +74 -89
  749. package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
  750. package/dist/plus/integrations/providers/gitlab.d.ts +115 -114
  751. package/dist/plus/integrations/providers/gitlab.js +440 -528
  752. package/dist/plus/integrations/providers/gitlab.js.map +1 -1
  753. package/dist/plus/integrations/providers/issueSorts.d.ts +3 -1
  754. package/dist/plus/integrations/providers/issueSorts.js +66 -62
  755. package/dist/plus/integrations/providers/issueSorts.js.map +1 -1
  756. package/dist/plus/integrations/providers/jira-server.d.ts +90 -0
  757. package/dist/plus/integrations/providers/jira-server.js +322 -0
  758. package/dist/plus/integrations/providers/jira-server.js.map +1 -0
  759. package/dist/plus/integrations/providers/jira.d.ts +41 -39
  760. package/dist/plus/integrations/providers/jira.js +378 -440
  761. package/dist/plus/integrations/providers/jira.js.map +1 -1
  762. package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +3 -1
  763. package/dist/plus/integrations/providers/jiraIssueByKey.js +85 -89
  764. package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -1
  765. package/dist/plus/integrations/providers/linear.d.ts +63 -62
  766. package/dist/plus/integrations/providers/linear.js +315 -358
  767. package/dist/plus/integrations/providers/linear.js.map +1 -1
  768. package/dist/plus/integrations/providers/models.d.ts +514 -503
  769. package/dist/plus/integrations/providers/models.js +816 -865
  770. package/dist/plus/integrations/providers/models.js.map +1 -1
  771. package/dist/plus/integrations/providers/providerErrors.d.ts +35 -2
  772. package/dist/plus/integrations/providers/providerErrors.js +120 -81
  773. package/dist/plus/integrations/providers/providerErrors.js.map +1 -1
  774. package/dist/plus/integrations/providers/providersApi.d.ts +299 -271
  775. package/dist/plus/integrations/providers/providersApi.js +1048 -1001
  776. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  777. package/dist/plus/integrations/providers/pullRequestReviews.d.ts +21 -21
  778. package/dist/plus/integrations/providers/pullRequestReviews.js +64 -90
  779. package/dist/plus/integrations/providers/pullRequestReviews.js.map +1 -1
  780. package/dist/plus/integrations/providers/trello.d.ts +35 -34
  781. package/dist/plus/integrations/providers/trello.js +136 -143
  782. package/dist/plus/integrations/providers/trello.js.map +1 -1
  783. package/dist/plus/integrations/providers/utils/providerPaging.d.ts +4 -2
  784. package/dist/plus/integrations/providers/utils/providerPaging.js +131 -156
  785. package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
  786. package/dist/plus/integrations/providers/utils.d.ts +51 -50
  787. package/dist/plus/integrations/providers/utils.js +185 -296
  788. package/dist/plus/integrations/providers/utils.js.map +1 -1
  789. package/dist/plus/integrations/reads/broaden.d.ts +10 -8
  790. package/dist/plus/integrations/reads/broaden.js +320 -439
  791. package/dist/plus/integrations/reads/broaden.js.map +1 -1
  792. package/dist/plus/integrations/reads/context.d.ts +47 -45
  793. package/dist/plus/integrations/reads/context.js +0 -2
  794. package/dist/plus/integrations/reads/counts.d.ts +74 -72
  795. package/dist/plus/integrations/reads/counts.js +233 -314
  796. package/dist/plus/integrations/reads/counts.js.map +1 -1
  797. package/dist/plus/integrations/reads/cursors.d.ts +26 -24
  798. package/dist/plus/integrations/reads/cursors.js +80 -115
  799. package/dist/plus/integrations/reads/cursors.js.map +1 -1
  800. package/dist/plus/integrations/reads/drains.d.ts +24 -23
  801. package/dist/plus/integrations/reads/drains.js +225 -298
  802. package/dist/plus/integrations/reads/drains.js.map +1 -1
  803. package/dist/plus/integrations/reads/filters.d.ts +84 -80
  804. package/dist/plus/integrations/reads/filters.js +326 -414
  805. package/dist/plus/integrations/reads/filters.js.map +1 -1
  806. package/dist/plus/integrations/reads/hierarchy.d.ts +14 -12
  807. package/dist/plus/integrations/reads/hierarchy.js +248 -332
  808. package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
  809. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +11 -9
  810. package/dist/plus/integrations/reads/hierarchy.utils.js +109 -108
  811. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -1
  812. package/dist/plus/integrations/reads/issueBatch.d.ts +28 -26
  813. package/dist/plus/integrations/reads/issueBatch.js +83 -85
  814. package/dist/plus/integrations/reads/issueBatch.js.map +1 -1
  815. package/dist/plus/integrations/reads/issueTracker.d.ts +42 -33
  816. package/dist/plus/integrations/reads/issueTracker.js +265 -386
  817. package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
  818. package/dist/plus/integrations/reads/issues.d.ts +50 -47
  819. package/dist/plus/integrations/reads/issues.js +202 -331
  820. package/dist/plus/integrations/reads/issues.js.map +1 -1
  821. package/dist/plus/integrations/reads/ordering.d.ts +32 -30
  822. package/dist/plus/integrations/reads/ordering.js +47 -43
  823. package/dist/plus/integrations/reads/ordering.js.map +1 -1
  824. package/dist/plus/integrations/reads/paging.d.ts +59 -57
  825. package/dist/plus/integrations/reads/paging.js +244 -261
  826. package/dist/plus/integrations/reads/paging.js.map +1 -1
  827. package/dist/plus/integrations/reads/pullRequests.d.ts +37 -35
  828. package/dist/plus/integrations/reads/pullRequests.js +95 -148
  829. package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
  830. package/dist/plus/integrations/reads/resolveRepository.d.ts +15 -13
  831. package/dist/plus/integrations/reads/resolveRepository.js +147 -231
  832. package/dist/plus/integrations/reads/resolveRepository.js.map +1 -1
  833. package/dist/plus/integrations/reads/searchIssues.d.ts +29 -27
  834. package/dist/plus/integrations/reads/searchIssues.js +104 -153
  835. package/dist/plus/integrations/reads/searchIssues.js.map +1 -1
  836. package/dist/plus/integrations/reads/searchPullRequests.d.ts +20 -18
  837. package/dist/plus/integrations/reads/searchPullRequests.js +91 -113
  838. package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
  839. package/dist/plus/integrations/reads/sweeps.d.ts +6 -4
  840. package/dist/plus/integrations/reads/sweeps.js +143 -178
  841. package/dist/plus/integrations/reads/sweeps.js.map +1 -1
  842. package/dist/plus/integrations/reads/trackerIssue.d.ts +24 -16
  843. package/dist/plus/integrations/reads/trackerIssue.js +52 -49
  844. package/dist/plus/integrations/reads/trackerIssue.js.map +1 -1
  845. package/dist/plus/integrations/reads/warnings.d.ts +10 -7
  846. package/dist/plus/integrations/reads/warnings.js +264 -291
  847. package/dist/plus/integrations/reads/warnings.js.map +1 -1
  848. package/dist/plus/integrations/results.d.ts +201 -199
  849. package/dist/plus/integrations/results.js +105 -119
  850. package/dist/plus/integrations/results.js.map +1 -1
  851. package/dist/plus/integrations/telemetry.d.ts +7 -5
  852. package/dist/plus/integrations/telemetry.js +9 -9
  853. package/dist/plus/integrations/telemetry.js.map +1 -1
  854. package/dist/plus/integrations/utils/domain.utils.d.ts +21 -0
  855. package/dist/plus/integrations/utils/domain.utils.js +55 -22
  856. package/dist/plus/integrations/utils/domain.utils.js.map +1 -1
  857. package/dist/plus/integrations/utils/integration.utils.d.ts +30 -6
  858. package/dist/plus/integrations/utils/integration.utils.js +154 -161
  859. package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
  860. package/dist/utils/array.d.ts +9 -7
  861. package/dist/utils/array.js +110 -126
  862. package/dist/utils/array.js.map +1 -1
  863. package/dist/utils/base64.d.ts +2 -2
  864. package/dist/utils/base64.js +2 -2
  865. package/dist/utils/brand.d.ts +4 -3
  866. package/dist/utils/brand.js +0 -2
  867. package/dist/utils/cancellation.d.ts +24 -24
  868. package/dist/utils/cancellation.js +152 -167
  869. package/dist/utils/cancellation.js.map +1 -1
  870. package/dist/utils/charCode.d.ts +31 -37
  871. package/dist/utils/charCode.js +41 -37
  872. package/dist/utils/charCode.js.map +1 -1
  873. package/dist/utils/coalescedRun.d.ts +10 -8
  874. package/dist/utils/coalescedRun.js +39 -41
  875. package/dist/utils/coalescedRun.js.map +1 -1
  876. package/dist/utils/color.d.ts +137 -135
  877. package/dist/utils/color.js +535 -660
  878. package/dist/utils/color.js.map +1 -1
  879. package/dist/utils/counter.d.ts +5 -3
  880. package/dist/utils/counter.js +19 -17
  881. package/dist/utils/counter.js.map +1 -1
  882. package/dist/utils/crypto.d.ts +2 -2
  883. package/dist/utils/crypto.js +2 -2
  884. package/dist/utils/date.d.ts +10 -9
  885. package/dist/utils/date.js +312 -350
  886. package/dist/utils/date.js.map +1 -1
  887. package/dist/utils/debounce.d.ts +45 -43
  888. package/dist/utils/debounce.js +175 -206
  889. package/dist/utils/debounce.js.map +1 -1
  890. package/dist/utils/decorators/debounce.d.ts +3 -1
  891. package/dist/utils/decorators/debounce.js +16 -19
  892. package/dist/utils/decorators/debounce.js.map +1 -1
  893. package/dist/utils/decorators/gate.d.ts +13 -11
  894. package/dist/utils/decorators/gate.js +97 -124
  895. package/dist/utils/decorators/gate.js.map +1 -1
  896. package/dist/utils/decorators/log.d.ts +25 -24
  897. package/dist/utils/decorators/log.js +166 -227
  898. package/dist/utils/decorators/log.js.map +1 -1
  899. package/dist/utils/decorators/memoize.d.ts +10 -8
  900. package/dist/utils/decorators/memoize.js +49 -57
  901. package/dist/utils/decorators/memoize.js.map +1 -1
  902. package/dist/utils/decorators/resolver.d.ts +2 -0
  903. package/dist/utils/decorators/resolver.js +64 -75
  904. package/dist/utils/decorators/resolver.js.map +1 -1
  905. package/dist/utils/decorators/sequentialize.d.ts +15 -14
  906. package/dist/utils/decorators/sequentialize.js +61 -80
  907. package/dist/utils/decorators/sequentialize.js.map +1 -1
  908. package/dist/utils/decorators/serializable.d.ts +2 -0
  909. package/dist/utils/decorators/serializable.js +30 -39
  910. package/dist/utils/decorators/serializable.js.map +1 -1
  911. package/dist/utils/dedupedAsyncCache.d.ts +23 -21
  912. package/dist/utils/dedupedAsyncCache.js +63 -66
  913. package/dist/utils/dedupedAsyncCache.js.map +1 -1
  914. package/dist/utils/diff.d.ts +2 -0
  915. package/dist/utils/diff.js +41 -51
  916. package/dist/utils/diff.js.map +1 -1
  917. package/dist/utils/disposable.d.ts +15 -13
  918. package/dist/utils/disposable.js +71 -80
  919. package/dist/utils/disposable.js.map +1 -1
  920. package/dist/utils/dom.d.ts +45 -0
  921. package/dist/utils/dom.js +106 -0
  922. package/dist/utils/dom.js.map +1 -0
  923. package/dist/utils/encoding.d.ts +2 -0
  924. package/dist/utils/encoding.js +7 -5
  925. package/dist/utils/encoding.js.map +1 -1
  926. package/dist/utils/env/browser/base64.d.ts +2 -0
  927. package/dist/utils/env/browser/base64.js +32 -34
  928. package/dist/utils/env/browser/base64.js.map +1 -1
  929. package/dist/utils/env/browser/crypto.d.ts +2 -0
  930. package/dist/utils/env/browser/crypto.js +17 -13
  931. package/dist/utils/env/browser/crypto.js.map +1 -1
  932. package/dist/utils/env/browser/fs.d.ts +2 -0
  933. package/dist/utils/env/browser/fs.js +6 -2
  934. package/dist/utils/env/browser/fs.js.map +1 -1
  935. package/dist/utils/env/browser/hex.d.ts +2 -0
  936. package/dist/utils/env/browser/hex.js +271 -29
  937. package/dist/utils/env/browser/hex.js.map +1 -1
  938. package/dist/utils/env/browser/hrtime.d.ts +2 -0
  939. package/dist/utils/env/browser/hrtime.js +17 -13
  940. package/dist/utils/env/browser/hrtime.js.map +1 -1
  941. package/dist/utils/env/browser/logScope.d.ts +3 -1
  942. package/dist/utils/env/browser/logScope.js +39 -43
  943. package/dist/utils/env/browser/logScope.js.map +1 -1
  944. package/dist/utils/env/browser/md5.d.ts +2 -0
  945. package/dist/utils/env/browser/md5.js +211 -184
  946. package/dist/utils/env/browser/md5.js.map +1 -1
  947. package/dist/utils/env/browser/platform.d.ts +3 -0
  948. package/dist/utils/env/browser/platform.js +11 -4
  949. package/dist/utils/env/browser/platform.js.map +1 -1
  950. package/dist/utils/env/node/base64.d.ts +2 -0
  951. package/dist/utils/env/node/base64.js +13 -11
  952. package/dist/utils/env/node/base64.js.map +1 -1
  953. package/dist/utils/env/node/crypto.d.ts +2 -0
  954. package/dist/utils/env/node/crypto.js +13 -9
  955. package/dist/utils/env/node/crypto.js.map +1 -1
  956. package/dist/utils/env/node/exec.d.ts +66 -65
  957. package/dist/utils/env/node/exec.js +255 -267
  958. package/dist/utils/env/node/exec.js.map +1 -1
  959. package/dist/utils/env/node/fs.d.ts +2 -0
  960. package/dist/utils/env/node/fs.js +7 -3
  961. package/dist/utils/env/node/fs.js.map +1 -1
  962. package/dist/utils/env/node/hex.d.ts +2 -0
  963. package/dist/utils/env/node/hex.js +10 -6
  964. package/dist/utils/env/node/hex.js.map +1 -1
  965. package/dist/utils/env/node/hrtime.d.ts +2 -2
  966. package/dist/utils/env/node/hrtime.js +2 -2
  967. package/dist/utils/env/node/logScope.d.ts +3 -1
  968. package/dist/utils/env/node/logScope.js +52 -42
  969. package/dist/utils/env/node/logScope.js.map +1 -1
  970. package/dist/utils/env/node/platform.d.ts +3 -0
  971. package/dist/utils/env/node/platform.js +11 -4
  972. package/dist/utils/env/node/platform.js.map +1 -1
  973. package/dist/utils/error.d.ts +8 -6
  974. package/dist/utils/error.js +16 -14
  975. package/dist/utils/error.js.map +1 -1
  976. package/dist/utils/event.d.ts +27 -25
  977. package/dist/utils/event.js +141 -170
  978. package/dist/utils/event.js.map +1 -1
  979. package/dist/utils/formatter.d.ts +15 -14
  980. package/dist/utils/formatter.js +96 -129
  981. package/dist/utils/formatter.js.map +1 -1
  982. package/dist/utils/fs.d.ts +2 -2
  983. package/dist/utils/fs.js +2 -2
  984. package/dist/utils/function.d.ts +5 -6
  985. package/dist/utils/function.js +73 -90
  986. package/dist/utils/function.js.map +1 -1
  987. package/dist/utils/fuzzy.d.ts +18 -16
  988. package/dist/utils/fuzzy.js +121 -127
  989. package/dist/utils/fuzzy.js.map +1 -1
  990. package/dist/utils/gitRefs.d.ts +11 -0
  991. package/dist/utils/gitRefs.js +21 -0
  992. package/dist/utils/gitRefs.js.map +1 -0
  993. package/dist/utils/hash.d.ts +2 -0
  994. package/dist/utils/hash.js +49 -47
  995. package/dist/utils/hash.js.map +1 -1
  996. package/dist/utils/hex.d.ts +2 -2
  997. package/dist/utils/hex.js +2 -2
  998. package/dist/utils/hostingServiceType.d.ts +8 -0
  999. package/dist/utils/hostingServiceType.js +0 -0
  1000. package/dist/utils/hrtime.d.ts +4 -2
  1001. package/dist/utils/hrtime.js +8 -5
  1002. package/dist/utils/hrtime.js.map +1 -1
  1003. package/dist/utils/iterable.d.ts +3 -1
  1004. package/dist/utils/iterable.js +591 -616
  1005. package/dist/utils/iterable.js.map +1 -1
  1006. package/dist/utils/keys/chord.d.ts +27 -25
  1007. package/dist/utils/keys/chord.js +108 -122
  1008. package/dist/utils/keys/chord.js.map +1 -1
  1009. package/dist/utils/keys/keybinding.d.ts +98 -22
  1010. package/dist/utils/keys/keybinding.js +151 -53
  1011. package/dist/utils/keys/keybinding.js.map +1 -1
  1012. package/dist/utils/keys/keymapDispatcher.d.ts +66 -0
  1013. package/dist/utils/keys/keymapDispatcher.js +187 -0
  1014. package/dist/utils/keys/keymapDispatcher.js.map +1 -0
  1015. package/dist/utils/lazy.d.ts +14 -12
  1016. package/dist/utils/lazy.js +35 -36
  1017. package/dist/utils/lazy.js.map +1 -1
  1018. package/dist/utils/loggable.d.ts +3 -1
  1019. package/dist/utils/loggable.js +6 -2
  1020. package/dist/utils/loggable.js.map +1 -1
  1021. package/dist/utils/logger.d.ts +48 -46
  1022. package/dist/utils/logger.js +219 -304
  1023. package/dist/utils/logger.js.map +1 -1
  1024. package/dist/utils/logger.scoped.d.ts +30 -28
  1025. package/dist/utils/logger.scoped.js +133 -147
  1026. package/dist/utils/logger.scoped.js.map +1 -1
  1027. package/dist/utils/lruMap.d.ts +34 -32
  1028. package/dist/utils/lruMap.js +97 -101
  1029. package/dist/utils/lruMap.js.map +1 -1
  1030. package/dist/utils/markdown.d.ts +5 -3
  1031. package/dist/utils/markdown.js +52 -88
  1032. package/dist/utils/markdown.js.map +1 -1
  1033. package/dist/utils/mru.d.ts +13 -11
  1034. package/dist/utils/mru.js +57 -62
  1035. package/dist/utils/mru.js.map +1 -1
  1036. package/dist/utils/object.d.ts +9 -34
  1037. package/dist/utils/object.js +132 -191
  1038. package/dist/utils/object.js.map +1 -1
  1039. package/dist/utils/paging.d.ts +36 -34
  1040. package/dist/utils/paging.js +42 -45
  1041. package/dist/utils/paging.js.map +1 -1
  1042. package/dist/utils/path.d.ts +4 -1
  1043. package/dist/utils/path.js +129 -162
  1044. package/dist/utils/path.js.map +1 -1
  1045. package/dist/utils/pausedOperation.d.ts +42 -0
  1046. package/dist/utils/pausedOperation.js +62 -0
  1047. package/dist/utils/pausedOperation.js.map +1 -0
  1048. package/dist/utils/platform.d.ts +2 -2
  1049. package/dist/utils/platform.js +2 -2
  1050. package/dist/utils/plural.d.ts +21 -0
  1051. package/dist/utils/plural.js +136 -0
  1052. package/dist/utils/plural.js.map +1 -0
  1053. package/dist/utils/promise.d.ts +19 -18
  1054. package/dist/utils/promise.js +323 -360
  1055. package/dist/utils/promise.js.map +1 -1
  1056. package/dist/utils/promiseCache.d.ts +331 -330
  1057. package/dist/utils/promiseCache.js +602 -717
  1058. package/dist/utils/promiseCache.js.map +1 -1
  1059. package/dist/utils/resourceUsage.d.ts +2 -0
  1060. package/dist/utils/resourceUsage.js +0 -2
  1061. package/dist/utils/searchTree.d.ts +51 -49
  1062. package/dist/utils/searchTree.js +306 -396
  1063. package/dist/utils/searchTree.js.map +1 -1
  1064. package/dist/utils/stopwatch.d.ts +33 -32
  1065. package/dist/utils/stopwatch.js +67 -81
  1066. package/dist/utils/stopwatch.js.map +1 -1
  1067. package/dist/utils/string.d.ts +17 -24
  1068. package/dist/utils/string.js +787 -803
  1069. package/dist/utils/string.js.map +1 -1
  1070. package/dist/utils/subscriptionManager.d.ts +15 -14
  1071. package/dist/utils/subscriptionManager.js +36 -33
  1072. package/dist/utils/subscriptionManager.js.map +1 -1
  1073. package/dist/utils/trie.d.ts +64 -62
  1074. package/dist/utils/trie.js +438 -580
  1075. package/dist/utils/trie.js.map +1 -1
  1076. package/dist/utils/types.d.ts +8 -16
  1077. package/dist/utils/types.js +0 -2
  1078. package/dist/utils/uri.d.ts +27 -25
  1079. package/dist/utils/uri.js +42 -42
  1080. package/dist/utils/uri.js.map +1 -1
  1081. package/dist/utils/validation.d.ts +13 -12
  1082. package/dist/utils/validation.js +17 -23
  1083. package/dist/utils/validation.js.map +1 -1
  1084. package/dist/utils/version.d.ts +6 -5
  1085. package/dist/utils/version.js +77 -104
  1086. package/dist/utils/version.js.map +1 -1
  1087. package/docs/integrations.md +70 -26
  1088. package/package.json +18 -8
  1089. package/dist/git/cache.d.ts.map +0 -1
  1090. package/dist/git/context.d.ts.map +0 -1
  1091. package/dist/git/errors.d.ts.map +0 -1
  1092. package/dist/git/features.d.ts.map +0 -1
  1093. package/dist/git/gitHealth.d.ts.map +0 -1
  1094. package/dist/git/models/author.d.ts.map +0 -1
  1095. package/dist/git/models/author.js.map +0 -1
  1096. package/dist/git/models/autolink.d.ts.map +0 -1
  1097. package/dist/git/models/autolink.js.map +0 -1
  1098. package/dist/git/models/blame.d.ts.map +0 -1
  1099. package/dist/git/models/blame.js.map +0 -1
  1100. package/dist/git/models/branch.d.ts.map +0 -1
  1101. package/dist/git/models/commit.d.ts.map +0 -1
  1102. package/dist/git/models/contributor.d.ts.map +0 -1
  1103. package/dist/git/models/defaultBranch.d.ts.map +0 -1
  1104. package/dist/git/models/defaultBranch.js.map +0 -1
  1105. package/dist/git/models/diff.d.ts.map +0 -1
  1106. package/dist/git/models/diff.js.map +0 -1
  1107. package/dist/git/models/file.d.ts.map +0 -1
  1108. package/dist/git/models/file.js.map +0 -1
  1109. package/dist/git/models/fileChange.d.ts.map +0 -1
  1110. package/dist/git/models/fileStatus.d.ts.map +0 -1
  1111. package/dist/git/models/graph.d.ts.map +0 -1
  1112. package/dist/git/models/graphSearch.d.ts.map +0 -1
  1113. package/dist/git/models/graphSearch.js.map +0 -1
  1114. package/dist/git/models/graphSession.d.ts.map +0 -1
  1115. package/dist/git/models/issue.d.ts.map +0 -1
  1116. package/dist/git/models/issueOrPullRequest.d.ts.map +0 -1
  1117. package/dist/git/models/issueOrPullRequest.js.map +0 -1
  1118. package/dist/git/models/lineRange.d.ts.map +0 -1
  1119. package/dist/git/models/lineRange.js.map +0 -1
  1120. package/dist/git/models/log.d.ts.map +0 -1
  1121. package/dist/git/models/log.js.map +0 -1
  1122. package/dist/git/models/mergeConflicts.d.ts.map +0 -1
  1123. package/dist/git/models/mergeConflicts.js.map +0 -1
  1124. package/dist/git/models/patch.d.ts.map +0 -1
  1125. package/dist/git/models/patch.js.map +0 -1
  1126. package/dist/git/models/pausedOperationStatus.d.ts.map +0 -1
  1127. package/dist/git/models/pausedOperationStatus.js.map +0 -1
  1128. package/dist/git/models/pullRequest.d.ts.map +0 -1
  1129. package/dist/git/models/rebase.d.ts.map +0 -1
  1130. package/dist/git/models/rebase.js.map +0 -1
  1131. package/dist/git/models/reference.d.ts.map +0 -1
  1132. package/dist/git/models/reference.js.map +0 -1
  1133. package/dist/git/models/reflog.d.ts.map +0 -1
  1134. package/dist/git/models/remote.d.ts.map +0 -1
  1135. package/dist/git/models/remoteProvider.d.ts.map +0 -1
  1136. package/dist/git/models/remoteResource.d.ts.map +0 -1
  1137. package/dist/git/models/repository.d.ts.map +0 -1
  1138. package/dist/git/models/repositoryChangeEvent.d.ts.map +0 -1
  1139. package/dist/git/models/repositoryIdentities.d.ts.map +0 -1
  1140. package/dist/git/models/repositoryMetadata.d.ts.map +0 -1
  1141. package/dist/git/models/repositoryMetadata.js.map +0 -1
  1142. package/dist/git/models/resourceDescriptor.d.ts.map +0 -1
  1143. package/dist/git/models/resourceDescriptor.js.map +0 -1
  1144. package/dist/git/models/revision.d.ts.map +0 -1
  1145. package/dist/git/models/search.d.ts.map +0 -1
  1146. package/dist/git/models/shortlog.d.ts.map +0 -1
  1147. package/dist/git/models/shortlog.js.map +0 -1
  1148. package/dist/git/models/signature.d.ts.map +0 -1
  1149. package/dist/git/models/signature.js.map +0 -1
  1150. package/dist/git/models/staging.d.ts.map +0 -1
  1151. package/dist/git/models/staging.js.map +0 -1
  1152. package/dist/git/models/stash.d.ts.map +0 -1
  1153. package/dist/git/models/stash.js.map +0 -1
  1154. package/dist/git/models/status.d.ts.map +0 -1
  1155. package/dist/git/models/statusFile.d.ts.map +0 -1
  1156. package/dist/git/models/tag.d.ts.map +0 -1
  1157. package/dist/git/models/tree.d.ts.map +0 -1
  1158. package/dist/git/models/tree.js.map +0 -1
  1159. package/dist/git/models/user.d.ts.map +0 -1
  1160. package/dist/git/models/user.js.map +0 -1
  1161. package/dist/git/models/worktree.d.ts.map +0 -1
  1162. package/dist/git/parsers/diffParser.d.ts.map +0 -1
  1163. package/dist/git/parsers/rebaseTodoParser.d.ts.map +0 -1
  1164. package/dist/git/providers/blame.d.ts.map +0 -1
  1165. package/dist/git/providers/blame.js.map +0 -1
  1166. package/dist/git/providers/branches.d.ts.map +0 -1
  1167. package/dist/git/providers/branches.js.map +0 -1
  1168. package/dist/git/providers/commits.d.ts.map +0 -1
  1169. package/dist/git/providers/commits.js.map +0 -1
  1170. package/dist/git/providers/config.d.ts.map +0 -1
  1171. package/dist/git/providers/config.js.map +0 -1
  1172. package/dist/git/providers/contributors.d.ts.map +0 -1
  1173. package/dist/git/providers/contributors.js.map +0 -1
  1174. package/dist/git/providers/diff.d.ts.map +0 -1
  1175. package/dist/git/providers/diff.js.map +0 -1
  1176. package/dist/git/providers/graph.d.ts.map +0 -1
  1177. package/dist/git/providers/graph.js.map +0 -1
  1178. package/dist/git/providers/maintenance.d.ts.map +0 -1
  1179. package/dist/git/providers/maintenance.js.map +0 -1
  1180. package/dist/git/providers/operations.d.ts.map +0 -1
  1181. package/dist/git/providers/operations.js.map +0 -1
  1182. package/dist/git/providers/patch.d.ts.map +0 -1
  1183. package/dist/git/providers/patch.js.map +0 -1
  1184. package/dist/git/providers/pausedOperations.d.ts.map +0 -1
  1185. package/dist/git/providers/pausedOperations.js.map +0 -1
  1186. package/dist/git/providers/provider.d.ts.map +0 -1
  1187. package/dist/git/providers/provider.js.map +0 -1
  1188. package/dist/git/providers/refs.d.ts.map +0 -1
  1189. package/dist/git/providers/refs.js.map +0 -1
  1190. package/dist/git/providers/remotes.d.ts.map +0 -1
  1191. package/dist/git/providers/remotes.js.map +0 -1
  1192. package/dist/git/providers/revision.d.ts.map +0 -1
  1193. package/dist/git/providers/revision.js.map +0 -1
  1194. package/dist/git/providers/shared/remotes.d.ts.map +0 -1
  1195. package/dist/git/providers/staging.d.ts.map +0 -1
  1196. package/dist/git/providers/staging.js.map +0 -1
  1197. package/dist/git/providers/stash.d.ts.map +0 -1
  1198. package/dist/git/providers/stash.js.map +0 -1
  1199. package/dist/git/providers/status.d.ts.map +0 -1
  1200. package/dist/git/providers/status.js.map +0 -1
  1201. package/dist/git/providers/tags.d.ts.map +0 -1
  1202. package/dist/git/providers/tags.js.map +0 -1
  1203. package/dist/git/providers/types.d.ts.map +0 -1
  1204. package/dist/git/providers/types.js.map +0 -1
  1205. package/dist/git/providers/worktrees.d.ts.map +0 -1
  1206. package/dist/git/providers/worktrees.js.map +0 -1
  1207. package/dist/git/remotes/azure-devops.d.ts.map +0 -1
  1208. package/dist/git/remotes/bitbucket-server.d.ts.map +0 -1
  1209. package/dist/git/remotes/bitbucket.d.ts.map +0 -1
  1210. package/dist/git/remotes/custom.d.ts.map +0 -1
  1211. package/dist/git/remotes/gerrit.d.ts.map +0 -1
  1212. package/dist/git/remotes/gitea.d.ts.map +0 -1
  1213. package/dist/git/remotes/github.d.ts.map +0 -1
  1214. package/dist/git/remotes/gitlab.d.ts.map +0 -1
  1215. package/dist/git/remotes/google-source.d.ts.map +0 -1
  1216. package/dist/git/remotes/matcher.d.ts.map +0 -1
  1217. package/dist/git/repositoryService.d.ts.map +0 -1
  1218. package/dist/git/run.types.d.ts.map +0 -1
  1219. package/dist/git/run.types.js.map +0 -1
  1220. package/dist/git/service.d.ts.map +0 -1
  1221. package/dist/git/utils/autolink.utils.d.ts.map +0 -1
  1222. package/dist/git/utils/blame.utils.d.ts.map +0 -1
  1223. package/dist/git/utils/branch.utils.d.ts.map +0 -1
  1224. package/dist/git/utils/commit.utils.d.ts.map +0 -1
  1225. package/dist/git/utils/config.utils.d.ts.map +0 -1
  1226. package/dist/git/utils/conflictResolution.utils.d.ts.map +0 -1
  1227. package/dist/git/utils/contributor.utils.d.ts.map +0 -1
  1228. package/dist/git/utils/fetch.utils.d.ts.map +0 -1
  1229. package/dist/git/utils/fileStatus.utils.d.ts.map +0 -1
  1230. package/dist/git/utils/graph.utils.d.ts.map +0 -1
  1231. package/dist/git/utils/issue.utils.d.ts.map +0 -1
  1232. package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +0 -1
  1233. package/dist/git/utils/mergeConflicts.utils.d.ts.map +0 -1
  1234. package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +0 -1
  1235. package/dist/git/utils/pullRequest.utils.d.ts.map +0 -1
  1236. package/dist/git/utils/reachability.utils.d.ts.map +0 -1
  1237. package/dist/git/utils/rebase.utils.d.ts.map +0 -1
  1238. package/dist/git/utils/reference.utils.d.ts.map +0 -1
  1239. package/dist/git/utils/remote.utils.d.ts.map +0 -1
  1240. package/dist/git/utils/repository.utils.d.ts.map +0 -1
  1241. package/dist/git/utils/resourceDescriptor.utils.d.ts.map +0 -1
  1242. package/dist/git/utils/revision.utils.d.ts.map +0 -1
  1243. package/dist/git/utils/search.utils.d.ts.map +0 -1
  1244. package/dist/git/utils/sorting.d.ts.map +0 -1
  1245. package/dist/git/utils/sshKey.utils.d.ts.map +0 -1
  1246. package/dist/git/utils/status.utils.d.ts.map +0 -1
  1247. package/dist/git/utils/statusFile.utils.d.ts.map +0 -1
  1248. package/dist/git/utils/tag.utils.d.ts.map +0 -1
  1249. package/dist/git/utils/tooltip.utils.d.ts.map +0 -1
  1250. package/dist/git/utils/uriAuthority.d.ts.map +0 -1
  1251. package/dist/git/utils/user.utils.d.ts.map +0 -1
  1252. package/dist/git/utils/worktree.utils.d.ts.map +0 -1
  1253. package/dist/git/watching/changeEvent.d.ts.map +0 -1
  1254. package/dist/git/watching/classifyChange.d.ts.map +0 -1
  1255. package/dist/git/watching/gitIgnoreFilter.d.ts.map +0 -1
  1256. package/dist/git/watching/initWatcher.d.ts.map +0 -1
  1257. package/dist/git/watching/provider.d.ts.map +0 -1
  1258. package/dist/git/watching/provider.js.map +0 -1
  1259. package/dist/git/watching/watchGroup.d.ts.map +0 -1
  1260. package/dist/git/watching/watchService.d.ts.map +0 -1
  1261. package/dist/git/watching/watchSession.d.ts.map +0 -1
  1262. package/dist/git/watching/watcherPatterns.d.ts.map +0 -1
  1263. package/dist/git-cli/cliGitProvider.d.ts.map +0 -1
  1264. package/dist/git-cli/exec/exec.d.ts.map +0 -1
  1265. package/dist/git-cli/exec/exec.errors.d.ts.map +0 -1
  1266. package/dist/git-cli/exec/exec.errors.js.map +0 -1
  1267. package/dist/git-cli/exec/exec.js.map +0 -1
  1268. package/dist/git-cli/exec/exec.types.d.ts.map +0 -1
  1269. package/dist/git-cli/exec/exec.types.js.map +0 -1
  1270. package/dist/git-cli/exec/features.d.ts.map +0 -1
  1271. package/dist/git-cli/exec/features.js.map +0 -1
  1272. package/dist/git-cli/exec/git.d.ts.map +0 -1
  1273. package/dist/git-cli/exec/gitQueue.d.ts.map +0 -1
  1274. package/dist/git-cli/exec/locator.d.ts.map +0 -1
  1275. package/dist/git-cli/parsers/blameParser.d.ts.map +0 -1
  1276. package/dist/git-cli/parsers/indexParser.d.ts.map +0 -1
  1277. package/dist/git-cli/parsers/logParser.d.ts.map +0 -1
  1278. package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +0 -1
  1279. package/dist/git-cli/parsers/refParser.d.ts.map +0 -1
  1280. package/dist/git-cli/parsers/reflogParser.d.ts.map +0 -1
  1281. package/dist/git-cli/parsers/remoteParser.d.ts.map +0 -1
  1282. package/dist/git-cli/parsers/shortlogParser.d.ts.map +0 -1
  1283. package/dist/git-cli/parsers/signatureParser.d.ts.map +0 -1
  1284. package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +0 -1
  1285. package/dist/git-cli/parsers/statusParser.d.ts.map +0 -1
  1286. package/dist/git-cli/parsers/treeParser.d.ts.map +0 -1
  1287. package/dist/git-cli/parsers/worktreeParser.d.ts.map +0 -1
  1288. package/dist/git-cli/providers/blame.d.ts.map +0 -1
  1289. package/dist/git-cli/providers/branches.d.ts.map +0 -1
  1290. package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +0 -1
  1291. package/dist/git-cli/providers/commits.d.ts.map +0 -1
  1292. package/dist/git-cli/providers/config.d.ts.map +0 -1
  1293. package/dist/git-cli/providers/contributors.d.ts.map +0 -1
  1294. package/dist/git-cli/providers/diff.d.ts.map +0 -1
  1295. package/dist/git-cli/providers/graph.d.ts.map +0 -1
  1296. package/dist/git-cli/providers/maintenance.d.ts.map +0 -1
  1297. package/dist/git-cli/providers/operations.d.ts.map +0 -1
  1298. package/dist/git-cli/providers/patch.d.ts.map +0 -1
  1299. package/dist/git-cli/providers/pausedOperations.d.ts.map +0 -1
  1300. package/dist/git-cli/providers/refs.d.ts.map +0 -1
  1301. package/dist/git-cli/providers/remotes.d.ts.map +0 -1
  1302. package/dist/git-cli/providers/revision.d.ts.map +0 -1
  1303. package/dist/git-cli/providers/staging.d.ts.map +0 -1
  1304. package/dist/git-cli/providers/stash.d.ts.map +0 -1
  1305. package/dist/git-cli/providers/status.d.ts.map +0 -1
  1306. package/dist/git-cli/providers/tags.d.ts.map +0 -1
  1307. package/dist/git-cli/providers/worktrees.d.ts.map +0 -1
  1308. package/dist/git-cli/service.d.ts.map +0 -1
  1309. package/dist/ipc/discovery.d.ts.map +0 -1
  1310. package/dist/ipc/ipcServer.d.ts.map +0 -1
  1311. package/dist/plus/agents/agentCapabilities.d.ts.map +0 -1
  1312. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +0 -1
  1313. package/dist/plus/agents/providers/gkAgentProvider.d.ts.map +0 -1
  1314. package/dist/plus/agents/sanitizePrompt.d.ts.map +0 -1
  1315. package/dist/plus/agents/stateMachine.d.ts.map +0 -1
  1316. package/dist/plus/agents/types.d.ts.map +0 -1
  1317. package/dist/plus/ai/constants.d.ts.map +0 -1
  1318. package/dist/plus/ai/errors.d.ts.map +0 -1
  1319. package/dist/plus/ai/models/conversation.d.ts.map +0 -1
  1320. package/dist/plus/ai/models/model.d.ts.map +0 -1
  1321. package/dist/plus/ai/models/promptTemplates.d.ts.map +0 -1
  1322. package/dist/plus/ai/models/promptTemplates.js.map +0 -1
  1323. package/dist/plus/ai/models/provider.d.ts.map +0 -1
  1324. package/dist/plus/ai/models/provider.js.map +0 -1
  1325. package/dist/plus/ai/models/results.d.ts.map +0 -1
  1326. package/dist/plus/ai/models/results.js.map +0 -1
  1327. package/dist/plus/ai/prompts.d.ts.map +0 -1
  1328. package/dist/plus/ai/providers/anthropicProvider.d.ts.map +0 -1
  1329. package/dist/plus/ai/providers/azureProvider.d.ts.map +0 -1
  1330. package/dist/plus/ai/providers/context.d.ts.map +0 -1
  1331. package/dist/plus/ai/providers/context.js.map +0 -1
  1332. package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +0 -1
  1333. package/dist/plus/ai/providers/geminiProvider.d.ts.map +0 -1
  1334. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +0 -1
  1335. package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +0 -1
  1336. package/dist/plus/ai/providers/mistralProvider.d.ts.map +0 -1
  1337. package/dist/plus/ai/providers/ollamaProvider.d.ts.map +0 -1
  1338. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +0 -1
  1339. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +0 -1
  1340. package/dist/plus/ai/providers/openRouterProvider.d.ts.map +0 -1
  1341. package/dist/plus/ai/providers/openaiProvider.d.ts.map +0 -1
  1342. package/dist/plus/ai/providers/responseFormatCache.d.ts.map +0 -1
  1343. package/dist/plus/ai/providers/xaiProvider.d.ts.map +0 -1
  1344. package/dist/plus/ai/utils/ai.utils.d.ts.map +0 -1
  1345. package/dist/plus/ai/utils/results.utils.d.ts.map +0 -1
  1346. package/dist/plus/ai/utils/truncation.utils.d.ts.map +0 -1
  1347. package/dist/plus/git-github/api/config.d.ts.map +0 -1
  1348. package/dist/plus/git-github/api/github.d.ts.map +0 -1
  1349. package/dist/plus/git-github/api/github.utils.d.ts.map +0 -1
  1350. package/dist/plus/git-github/api/issueSearchQuery.d.ts.map +0 -1
  1351. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +0 -1
  1352. package/dist/plus/git-github/api/token.d.ts.map +0 -1
  1353. package/dist/plus/git-github/api/token.js.map +0 -1
  1354. package/dist/plus/git-github/api/tokenUtils.d.ts.map +0 -1
  1355. package/dist/plus/git-github/api/types.d.ts.map +0 -1
  1356. package/dist/plus/git-github/api/types.js.map +0 -1
  1357. package/dist/plus/git-github/context.d.ts.map +0 -1
  1358. package/dist/plus/git-github/models.d.ts.map +0 -1
  1359. package/dist/plus/git-github/providers/github/blame.d.ts.map +0 -1
  1360. package/dist/plus/git-github/providers/github/branches.d.ts.map +0 -1
  1361. package/dist/plus/git-github/providers/github/commits.d.ts.map +0 -1
  1362. package/dist/plus/git-github/providers/github/config.d.ts.map +0 -1
  1363. package/dist/plus/git-github/providers/github/contributors.d.ts.map +0 -1
  1364. package/dist/plus/git-github/providers/github/diff.d.ts.map +0 -1
  1365. package/dist/plus/git-github/providers/github/graph.d.ts.map +0 -1
  1366. package/dist/plus/git-github/providers/github/refs.d.ts.map +0 -1
  1367. package/dist/plus/git-github/providers/github/remotes.d.ts.map +0 -1
  1368. package/dist/plus/git-github/providers/github/revision.d.ts.map +0 -1
  1369. package/dist/plus/git-github/providers/github/status.d.ts.map +0 -1
  1370. package/dist/plus/git-github/providers/github/tags.d.ts.map +0 -1
  1371. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +0 -1
  1372. package/dist/plus/git-github/providers/githubProvider.d.ts.map +0 -1
  1373. package/dist/plus/git-github/providers/githubProvider.js.map +0 -1
  1374. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +0 -1
  1375. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +0 -1
  1376. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +0 -1
  1377. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +0 -1
  1378. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +0 -1
  1379. package/dist/plus/integrations/authentication/models.d.ts.map +0 -1
  1380. package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts.map +0 -1
  1381. package/dist/plus/integrations/collectionMetadata.d.ts.map +0 -1
  1382. package/dist/plus/integrations/constants.d.ts.map +0 -1
  1383. package/dist/plus/integrations/context.d.ts.map +0 -1
  1384. package/dist/plus/integrations/context.js.map +0 -1
  1385. package/dist/plus/integrations/errors.d.ts.map +0 -1
  1386. package/dist/plus/integrations/index.d.ts.map +0 -1
  1387. package/dist/plus/integrations/integrationService.d.ts.map +0 -1
  1388. package/dist/plus/integrations/lite.d.ts.map +0 -1
  1389. package/dist/plus/integrations/manager.d.ts.map +0 -1
  1390. package/dist/plus/integrations/manager.js.map +0 -1
  1391. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +0 -1
  1392. package/dist/plus/integrations/models/integration.d.ts.map +0 -1
  1393. package/dist/plus/integrations/models/issueCache.d.ts.map +0 -1
  1394. package/dist/plus/integrations/models/issueReads.d.ts.map +0 -1
  1395. package/dist/plus/integrations/models/issueReads.js.map +0 -1
  1396. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +0 -1
  1397. package/dist/plus/integrations/models/pullRequestReads.d.ts.map +0 -1
  1398. package/dist/plus/integrations/models/pullRequestReads.js.map +0 -1
  1399. package/dist/plus/integrations/providerFilters.d.ts.map +0 -1
  1400. package/dist/plus/integrations/providers/accounts.d.ts.map +0 -1
  1401. package/dist/plus/integrations/providers/apiClients.d.ts.map +0 -1
  1402. package/dist/plus/integrations/providers/apiConfig.d.ts.map +0 -1
  1403. package/dist/plus/integrations/providers/azure/azure.d.ts.map +0 -1
  1404. package/dist/plus/integrations/providers/azure/models.d.ts.map +0 -1
  1405. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +0 -1
  1406. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +0 -1
  1407. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +0 -1
  1408. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +0 -1
  1409. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +0 -1
  1410. package/dist/plus/integrations/providers/bitbucket.d.ts.map +0 -1
  1411. package/dist/plus/integrations/providers/github/github.d.ts.map +0 -1
  1412. package/dist/plus/integrations/providers/github/github.utils.d.ts.map +0 -1
  1413. package/dist/plus/integrations/providers/github/models.d.ts.map +0 -1
  1414. package/dist/plus/integrations/providers/github/models.js.map +0 -1
  1415. package/dist/plus/integrations/providers/github.d.ts.map +0 -1
  1416. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +0 -1
  1417. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +0 -1
  1418. package/dist/plus/integrations/providers/gitlab/models.d.ts.map +0 -1
  1419. package/dist/plus/integrations/providers/gitlab.d.ts.map +0 -1
  1420. package/dist/plus/integrations/providers/issueSorts.d.ts.map +0 -1
  1421. package/dist/plus/integrations/providers/jira.d.ts.map +0 -1
  1422. package/dist/plus/integrations/providers/jiraIssueByKey.d.ts.map +0 -1
  1423. package/dist/plus/integrations/providers/linear.d.ts.map +0 -1
  1424. package/dist/plus/integrations/providers/models.d.ts.map +0 -1
  1425. package/dist/plus/integrations/providers/providerErrors.d.ts.map +0 -1
  1426. package/dist/plus/integrations/providers/providersApi.d.ts.map +0 -1
  1427. package/dist/plus/integrations/providers/pullRequestReviews.d.ts.map +0 -1
  1428. package/dist/plus/integrations/providers/trello.d.ts.map +0 -1
  1429. package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +0 -1
  1430. package/dist/plus/integrations/providers/utils.d.ts.map +0 -1
  1431. package/dist/plus/integrations/reads/broaden.d.ts.map +0 -1
  1432. package/dist/plus/integrations/reads/context.d.ts.map +0 -1
  1433. package/dist/plus/integrations/reads/context.js.map +0 -1
  1434. package/dist/plus/integrations/reads/counts.d.ts.map +0 -1
  1435. package/dist/plus/integrations/reads/cursors.d.ts.map +0 -1
  1436. package/dist/plus/integrations/reads/drains.d.ts.map +0 -1
  1437. package/dist/plus/integrations/reads/filters.d.ts.map +0 -1
  1438. package/dist/plus/integrations/reads/hierarchy.d.ts.map +0 -1
  1439. package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +0 -1
  1440. package/dist/plus/integrations/reads/issueBatch.d.ts.map +0 -1
  1441. package/dist/plus/integrations/reads/issueTracker.d.ts.map +0 -1
  1442. package/dist/plus/integrations/reads/issues.d.ts.map +0 -1
  1443. package/dist/plus/integrations/reads/ordering.d.ts.map +0 -1
  1444. package/dist/plus/integrations/reads/paging.d.ts.map +0 -1
  1445. package/dist/plus/integrations/reads/pullRequests.d.ts.map +0 -1
  1446. package/dist/plus/integrations/reads/resolveRepository.d.ts.map +0 -1
  1447. package/dist/plus/integrations/reads/searchIssues.d.ts.map +0 -1
  1448. package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +0 -1
  1449. package/dist/plus/integrations/reads/sweeps.d.ts.map +0 -1
  1450. package/dist/plus/integrations/reads/trackerIssue.d.ts.map +0 -1
  1451. package/dist/plus/integrations/reads/warnings.d.ts.map +0 -1
  1452. package/dist/plus/integrations/results.d.ts.map +0 -1
  1453. package/dist/plus/integrations/telemetry.d.ts.map +0 -1
  1454. package/dist/plus/integrations/utils/domain.utils.d.ts.map +0 -1
  1455. package/dist/plus/integrations/utils/integration.utils.d.ts.map +0 -1
  1456. package/dist/utils/array.d.ts.map +0 -1
  1457. package/dist/utils/base64.d.ts.map +0 -1
  1458. package/dist/utils/base64.js.map +0 -1
  1459. package/dist/utils/brand.d.ts.map +0 -1
  1460. package/dist/utils/brand.js.map +0 -1
  1461. package/dist/utils/cancellation.d.ts.map +0 -1
  1462. package/dist/utils/charCode.d.ts.map +0 -1
  1463. package/dist/utils/coalescedRun.d.ts.map +0 -1
  1464. package/dist/utils/color.d.ts.map +0 -1
  1465. package/dist/utils/counter.d.ts.map +0 -1
  1466. package/dist/utils/crypto.d.ts.map +0 -1
  1467. package/dist/utils/crypto.js.map +0 -1
  1468. package/dist/utils/date.d.ts.map +0 -1
  1469. package/dist/utils/debounce.d.ts.map +0 -1
  1470. package/dist/utils/decorators/debounce.d.ts.map +0 -1
  1471. package/dist/utils/decorators/gate.d.ts.map +0 -1
  1472. package/dist/utils/decorators/log.d.ts.map +0 -1
  1473. package/dist/utils/decorators/memoize.d.ts.map +0 -1
  1474. package/dist/utils/decorators/resolver.d.ts.map +0 -1
  1475. package/dist/utils/decorators/sequentialize.d.ts.map +0 -1
  1476. package/dist/utils/decorators/serializable.d.ts.map +0 -1
  1477. package/dist/utils/dedupedAsyncCache.d.ts.map +0 -1
  1478. package/dist/utils/diff.d.ts.map +0 -1
  1479. package/dist/utils/disposable.d.ts.map +0 -1
  1480. package/dist/utils/encoding.d.ts.map +0 -1
  1481. package/dist/utils/env/browser/base64.d.ts.map +0 -1
  1482. package/dist/utils/env/browser/crypto.d.ts.map +0 -1
  1483. package/dist/utils/env/browser/fs.d.ts.map +0 -1
  1484. package/dist/utils/env/browser/hex.d.ts.map +0 -1
  1485. package/dist/utils/env/browser/hrtime.d.ts.map +0 -1
  1486. package/dist/utils/env/browser/logScope.d.ts.map +0 -1
  1487. package/dist/utils/env/browser/md5.d.ts.map +0 -1
  1488. package/dist/utils/env/browser/platform.d.ts.map +0 -1
  1489. package/dist/utils/env/node/base64.d.ts.map +0 -1
  1490. package/dist/utils/env/node/crypto.d.ts.map +0 -1
  1491. package/dist/utils/env/node/exec.d.ts.map +0 -1
  1492. package/dist/utils/env/node/fs.d.ts.map +0 -1
  1493. package/dist/utils/env/node/hex.d.ts.map +0 -1
  1494. package/dist/utils/env/node/hrtime.d.ts.map +0 -1
  1495. package/dist/utils/env/node/hrtime.js.map +0 -1
  1496. package/dist/utils/env/node/logScope.d.ts.map +0 -1
  1497. package/dist/utils/env/node/platform.d.ts.map +0 -1
  1498. package/dist/utils/error.d.ts.map +0 -1
  1499. package/dist/utils/event.d.ts.map +0 -1
  1500. package/dist/utils/formatter.d.ts.map +0 -1
  1501. package/dist/utils/fs.d.ts.map +0 -1
  1502. package/dist/utils/fs.js.map +0 -1
  1503. package/dist/utils/function.d.ts.map +0 -1
  1504. package/dist/utils/fuzzy.d.ts.map +0 -1
  1505. package/dist/utils/hash.d.ts.map +0 -1
  1506. package/dist/utils/hex.d.ts.map +0 -1
  1507. package/dist/utils/hex.js.map +0 -1
  1508. package/dist/utils/hrtime.d.ts.map +0 -1
  1509. package/dist/utils/iterable.d.ts.map +0 -1
  1510. package/dist/utils/keys/chord.d.ts.map +0 -1
  1511. package/dist/utils/keys/keybinding.d.ts.map +0 -1
  1512. package/dist/utils/lazy.d.ts.map +0 -1
  1513. package/dist/utils/loggable.d.ts.map +0 -1
  1514. package/dist/utils/logger.d.ts.map +0 -1
  1515. package/dist/utils/logger.scoped.d.ts.map +0 -1
  1516. package/dist/utils/lruMap.d.ts.map +0 -1
  1517. package/dist/utils/markdown.d.ts.map +0 -1
  1518. package/dist/utils/mru.d.ts.map +0 -1
  1519. package/dist/utils/object.d.ts.map +0 -1
  1520. package/dist/utils/paging.d.ts.map +0 -1
  1521. package/dist/utils/path.d.ts.map +0 -1
  1522. package/dist/utils/platform.d.ts.map +0 -1
  1523. package/dist/utils/platform.js.map +0 -1
  1524. package/dist/utils/promise.d.ts.map +0 -1
  1525. package/dist/utils/promiseCache.d.ts.map +0 -1
  1526. package/dist/utils/resourceUsage.d.ts.map +0 -1
  1527. package/dist/utils/resourceUsage.js.map +0 -1
  1528. package/dist/utils/searchTree.d.ts.map +0 -1
  1529. package/dist/utils/stopwatch.d.ts.map +0 -1
  1530. package/dist/utils/string.d.ts.map +0 -1
  1531. package/dist/utils/subscriptionManager.d.ts.map +0 -1
  1532. package/dist/utils/trie.d.ts.map +0 -1
  1533. package/dist/utils/types.d.ts.map +0 -1
  1534. package/dist/utils/types.js.map +0 -1
  1535. package/dist/utils/uri.d.ts.map +0 -1
  1536. package/dist/utils/validation.d.ts.map +0 -1
  1537. package/dist/utils/version.d.ts.map +0 -1
  1538. package/src/git/cache.ts +0 -1859
  1539. package/src/git/context.ts +0 -301
  1540. package/src/git/errors.ts +0 -1168
  1541. package/src/git/features.ts +0 -98
  1542. package/src/git/gitHealth.ts +0 -522
  1543. package/src/git/models/author.ts +0 -19
  1544. package/src/git/models/autolink.ts +0 -59
  1545. package/src/git/models/blame.ts +0 -46
  1546. package/src/git/models/branch.ts +0 -237
  1547. package/src/git/models/commit.ts +0 -673
  1548. package/src/git/models/contributor.ts +0 -84
  1549. package/src/git/models/defaultBranch.ts +0 -6
  1550. package/src/git/models/diff.ts +0 -74
  1551. package/src/git/models/file.ts +0 -29
  1552. package/src/git/models/fileChange.ts +0 -82
  1553. package/src/git/models/fileStatus.ts +0 -36
  1554. package/src/git/models/graph.ts +0 -444
  1555. package/src/git/models/graphSearch.ts +0 -53
  1556. package/src/git/models/graphSession.ts +0 -102
  1557. package/src/git/models/issue.ts +0 -273
  1558. package/src/git/models/issueOrPullRequest.ts +0 -20
  1559. package/src/git/models/lineRange.ts +0 -7
  1560. package/src/git/models/log.ts +0 -21
  1561. package/src/git/models/mergeConflicts.ts +0 -19
  1562. package/src/git/models/patch.ts +0 -25
  1563. package/src/git/models/pausedOperationStatus.ts +0 -63
  1564. package/src/git/models/pullRequest.ts +0 -357
  1565. package/src/git/models/rebase.ts +0 -60
  1566. package/src/git/models/reference.ts +0 -80
  1567. package/src/git/models/reflog.ts +0 -88
  1568. package/src/git/models/remote.ts +0 -100
  1569. package/src/git/models/remoteProvider.ts +0 -291
  1570. package/src/git/models/remoteResource.ts +0 -87
  1571. package/src/git/models/repository.ts +0 -510
  1572. package/src/git/models/repositoryChangeEvent.ts +0 -30
  1573. package/src/git/models/repositoryIdentities.ts +0 -99
  1574. package/src/git/models/repositoryMetadata.ts +0 -12
  1575. package/src/git/models/resourceDescriptor.ts +0 -28
  1576. package/src/git/models/revision.ts +0 -12
  1577. package/src/git/models/search.ts +0 -138
  1578. package/src/git/models/shortlog.ts +0 -6
  1579. package/src/git/models/signature.ts +0 -45
  1580. package/src/git/models/staging.ts +0 -27
  1581. package/src/git/models/stash.ts +0 -6
  1582. package/src/git/models/status.ts +0 -246
  1583. package/src/git/models/statusFile.ts +0 -131
  1584. package/src/git/models/tag.ts +0 -76
  1585. package/src/git/models/tree.ts +0 -10
  1586. package/src/git/models/user.ts +0 -7
  1587. package/src/git/models/worktree.ts +0 -160
  1588. package/src/git/parsers/diffParser.ts +0 -648
  1589. package/src/git/parsers/rebaseTodoParser.ts +0 -169
  1590. package/src/git/providers/blame.ts +0 -40
  1591. package/src/git/providers/branches.ts +0 -143
  1592. package/src/git/providers/commits.ts +0 -174
  1593. package/src/git/providers/config.ts +0 -167
  1594. package/src/git/providers/contributors.ts +0 -34
  1595. package/src/git/providers/diff.ts +0 -133
  1596. package/src/git/providers/graph.ts +0 -95
  1597. package/src/git/providers/maintenance.ts +0 -224
  1598. package/src/git/providers/operations.ts +0 -164
  1599. package/src/git/providers/patch.ts +0 -31
  1600. package/src/git/providers/pausedOperations.ts +0 -23
  1601. package/src/git/providers/provider.ts +0 -64
  1602. package/src/git/providers/refs.ts +0 -68
  1603. package/src/git/providers/remotes.ts +0 -33
  1604. package/src/git/providers/revision.ts +0 -32
  1605. package/src/git/providers/shared/remotes.ts +0 -95
  1606. package/src/git/providers/staging.ts +0 -36
  1607. package/src/git/providers/stash.ts +0 -51
  1608. package/src/git/providers/status.ts +0 -48
  1609. package/src/git/providers/tags.ts +0 -29
  1610. package/src/git/providers/types.ts +0 -33
  1611. package/src/git/providers/worktrees.ts +0 -37
  1612. package/src/git/remotes/azure-devops.ts +0 -361
  1613. package/src/git/remotes/bitbucket-server.ts +0 -189
  1614. package/src/git/remotes/bitbucket.ts +0 -142
  1615. package/src/git/remotes/custom.ts +0 -162
  1616. package/src/git/remotes/gerrit.ts +0 -186
  1617. package/src/git/remotes/gitea.ts +0 -184
  1618. package/src/git/remotes/github.ts +0 -236
  1619. package/src/git/remotes/gitlab.ts +0 -270
  1620. package/src/git/remotes/google-source.ts +0 -51
  1621. package/src/git/remotes/matcher.ts +0 -215
  1622. package/src/git/repositoryService.ts +0 -180
  1623. package/src/git/run.types.ts +0 -156
  1624. package/src/git/service.ts +0 -369
  1625. package/src/git/utils/autolink.utils.ts +0 -202
  1626. package/src/git/utils/blame.utils.ts +0 -298
  1627. package/src/git/utils/branch.utils.ts +0 -165
  1628. package/src/git/utils/commit.utils.ts +0 -89
  1629. package/src/git/utils/config.utils.ts +0 -8
  1630. package/src/git/utils/conflictResolution.utils.ts +0 -157
  1631. package/src/git/utils/contributor.utils.ts +0 -105
  1632. package/src/git/utils/fetch.utils.ts +0 -48
  1633. package/src/git/utils/fileStatus.utils.ts +0 -62
  1634. package/src/git/utils/graph.utils.ts +0 -46
  1635. package/src/git/utils/issue.utils.ts +0 -187
  1636. package/src/git/utils/issueOrPullRequest.utils.ts +0 -23
  1637. package/src/git/utils/mergeConflicts.utils.ts +0 -21
  1638. package/src/git/utils/pausedOperationStatus.utils.ts +0 -184
  1639. package/src/git/utils/pullRequest.utils.ts +0 -244
  1640. package/src/git/utils/reachability.utils.ts +0 -180
  1641. package/src/git/utils/rebase.utils.ts +0 -128
  1642. package/src/git/utils/reference.utils.ts +0 -267
  1643. package/src/git/utils/remote.utils.ts +0 -146
  1644. package/src/git/utils/repository.utils.ts +0 -18
  1645. package/src/git/utils/resourceDescriptor.utils.ts +0 -26
  1646. package/src/git/utils/revision.utils.ts +0 -149
  1647. package/src/git/utils/search.utils.ts +0 -624
  1648. package/src/git/utils/sorting.ts +0 -329
  1649. package/src/git/utils/sshKey.utils.ts +0 -30
  1650. package/src/git/utils/status.utils.ts +0 -115
  1651. package/src/git/utils/statusFile.utils.ts +0 -182
  1652. package/src/git/utils/tag.utils.ts +0 -17
  1653. package/src/git/utils/tooltip.utils.ts +0 -37
  1654. package/src/git/utils/uriAuthority.ts +0 -34
  1655. package/src/git/utils/user.utils.ts +0 -20
  1656. package/src/git/utils/worktree.utils.ts +0 -21
  1657. package/src/git/watching/changeEvent.ts +0 -95
  1658. package/src/git/watching/classifyChange.ts +0 -104
  1659. package/src/git/watching/gitIgnoreFilter.ts +0 -134
  1660. package/src/git/watching/initWatcher.ts +0 -81
  1661. package/src/git/watching/provider.ts +0 -24
  1662. package/src/git/watching/watchGroup.ts +0 -185
  1663. package/src/git/watching/watchService.ts +0 -430
  1664. package/src/git/watching/watchSession.ts +0 -439
  1665. package/src/git/watching/watcherPatterns.ts +0 -51
  1666. package/src/git-cli/cliGitProvider.ts +0 -461
  1667. package/src/git-cli/exec/exec.errors.ts +0 -1
  1668. package/src/git-cli/exec/exec.ts +0 -11
  1669. package/src/git-cli/exec/exec.types.ts +0 -8
  1670. package/src/git-cli/exec/features.ts +0 -2
  1671. package/src/git-cli/exec/git.ts +0 -1371
  1672. package/src/git-cli/exec/gitQueue.ts +0 -326
  1673. package/src/git-cli/exec/locator.ts +0 -157
  1674. package/src/git-cli/parsers/blameParser.ts +0 -374
  1675. package/src/git-cli/parsers/indexParser.ts +0 -192
  1676. package/src/git-cli/parsers/logParser.ts +0 -1365
  1677. package/src/git-cli/parsers/mergeTreeParser.ts +0 -22
  1678. package/src/git-cli/parsers/refParser.ts +0 -110
  1679. package/src/git-cli/parsers/reflogParser.ts +0 -153
  1680. package/src/git-cli/parsers/remoteParser.ts +0 -95
  1681. package/src/git-cli/parsers/shortlogParser.ts +0 -59
  1682. package/src/git-cli/parsers/signatureParser.ts +0 -162
  1683. package/src/git-cli/parsers/sshSignatureParser.ts +0 -85
  1684. package/src/git-cli/parsers/statusParser.ts +0 -209
  1685. package/src/git-cli/parsers/treeParser.ts +0 -61
  1686. package/src/git-cli/parsers/worktreeParser.ts +0 -111
  1687. package/src/git-cli/providers/blame.ts +0 -598
  1688. package/src/git-cli/providers/branches.ts +0 -1931
  1689. package/src/git-cli/providers/commitFilesetUtils.ts +0 -45
  1690. package/src/git-cli/providers/commits.ts +0 -1856
  1691. package/src/git-cli/providers/config.ts +0 -1025
  1692. package/src/git-cli/providers/contributors.ts +0 -360
  1693. package/src/git-cli/providers/diff.ts +0 -1172
  1694. package/src/git-cli/providers/graph.ts +0 -2237
  1695. package/src/git-cli/providers/maintenance.ts +0 -2599
  1696. package/src/git-cli/providers/operations.ts +0 -1016
  1697. package/src/git-cli/providers/patch.ts +0 -305
  1698. package/src/git-cli/providers/pausedOperations.ts +0 -670
  1699. package/src/git-cli/providers/refs.ts +0 -486
  1700. package/src/git-cli/providers/remotes.ts +0 -115
  1701. package/src/git-cli/providers/revision.ts +0 -383
  1702. package/src/git-cli/providers/staging.ts +0 -210
  1703. package/src/git-cli/providers/stash.ts +0 -577
  1704. package/src/git-cli/providers/status.ts +0 -568
  1705. package/src/git-cli/providers/tags.ts +0 -224
  1706. package/src/git-cli/providers/worktrees.ts +0 -285
  1707. package/src/git-cli/service.ts +0 -82
  1708. package/src/ipc/discovery.ts +0 -186
  1709. package/src/ipc/ipcServer.ts +0 -171
  1710. package/src/plus/agents/agentCapabilities.ts +0 -286
  1711. package/src/plus/agents/providers/claudeCodeTranscript.ts +0 -867
  1712. package/src/plus/agents/providers/gkAgentProvider.ts +0 -4036
  1713. package/src/plus/agents/sanitizePrompt.ts +0 -109
  1714. package/src/plus/agents/stateMachine.ts +0 -197
  1715. package/src/plus/agents/types.ts +0 -500
  1716. package/src/plus/ai/constants.ts +0 -121
  1717. package/src/plus/ai/errors.ts +0 -152
  1718. package/src/plus/ai/models/conversation.ts +0 -35
  1719. package/src/plus/ai/models/model.ts +0 -528
  1720. package/src/plus/ai/models/promptTemplates.ts +0 -171
  1721. package/src/plus/ai/models/provider.ts +0 -125
  1722. package/src/plus/ai/models/results.ts +0 -31
  1723. package/src/plus/ai/prompts.ts +0 -849
  1724. package/src/plus/ai/providers/anthropicProvider.ts +0 -458
  1725. package/src/plus/ai/providers/azureProvider.ts +0 -74
  1726. package/src/plus/ai/providers/context.ts +0 -29
  1727. package/src/plus/ai/providers/deepSeekProvider.ts +0 -46
  1728. package/src/plus/ai/providers/geminiProvider.ts +0 -245
  1729. package/src/plus/ai/providers/gitkrakenProvider.ts +0 -347
  1730. package/src/plus/ai/providers/huggingFaceProvider.ts +0 -64
  1731. package/src/plus/ai/providers/mistralProvider.ts +0 -243
  1732. package/src/plus/ai/providers/ollamaProvider.ts +0 -292
  1733. package/src/plus/ai/providers/openAICompatibleProvider.ts +0 -64
  1734. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +0 -654
  1735. package/src/plus/ai/providers/openRouterProvider.ts +0 -101
  1736. package/src/plus/ai/providers/openaiProvider.ts +0 -47
  1737. package/src/plus/ai/providers/responseFormatCache.ts +0 -39
  1738. package/src/plus/ai/providers/xaiProvider.ts +0 -54
  1739. package/src/plus/ai/utils/ai.utils.ts +0 -95
  1740. package/src/plus/ai/utils/results.utils.ts +0 -407
  1741. package/src/plus/ai/utils/truncation.utils.ts +0 -296
  1742. package/src/plus/git-github/api/config.ts +0 -91
  1743. package/src/plus/git-github/api/github.ts +0 -5462
  1744. package/src/plus/git-github/api/github.utils.ts +0 -36
  1745. package/src/plus/git-github/api/issueSearchQuery.ts +0 -273
  1746. package/src/plus/git-github/api/pullRequestSearchQuery.ts +0 -154
  1747. package/src/plus/git-github/api/token.ts +0 -15
  1748. package/src/plus/git-github/api/tokenUtils.ts +0 -15
  1749. package/src/plus/git-github/api/types.ts +0 -197
  1750. package/src/plus/git-github/context.ts +0 -107
  1751. package/src/plus/git-github/models.ts +0 -623
  1752. package/src/plus/git-github/providers/github/blame.ts +0 -225
  1753. package/src/plus/git-github/providers/github/branches.ts +0 -401
  1754. package/src/plus/git-github/providers/github/commits.ts +0 -929
  1755. package/src/plus/git-github/providers/github/config.ts +0 -47
  1756. package/src/plus/git-github/providers/github/contributors.ts +0 -313
  1757. package/src/plus/git-github/providers/github/diff.ts +0 -281
  1758. package/src/plus/git-github/providers/github/graph.ts +0 -635
  1759. package/src/plus/git-github/providers/github/refs.ts +0 -172
  1760. package/src/plus/git-github/providers/github/remotes.ts +0 -44
  1761. package/src/plus/git-github/providers/github/revision.ts +0 -140
  1762. package/src/plus/git-github/providers/github/status.ts +0 -69
  1763. package/src/plus/git-github/providers/github/tags.ts +0 -148
  1764. package/src/plus/git-github/providers/githubGitProvider.ts +0 -168
  1765. package/src/plus/git-github/providers/githubProvider.ts +0 -65
  1766. package/src/plus/integrations/authentication/cloudIntegrationService.ts +0 -292
  1767. package/src/plus/integrations/authentication/configuredIntegrationService.ts +0 -656
  1768. package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +0 -385
  1769. package/src/plus/integrations/authentication/integrationAuthenticationService.ts +0 -148
  1770. package/src/plus/integrations/authentication/manualTokenProvider.ts +0 -79
  1771. package/src/plus/integrations/authentication/models.ts +0 -202
  1772. package/src/plus/integrations/authentication/rejectedTokenTracker.ts +0 -56
  1773. package/src/plus/integrations/collectionMetadata.ts +0 -325
  1774. package/src/plus/integrations/constants.ts +0 -190
  1775. package/src/plus/integrations/context.ts +0 -386
  1776. package/src/plus/integrations/errors.ts +0 -188
  1777. package/src/plus/integrations/index.ts +0 -231
  1778. package/src/plus/integrations/integrationService.ts +0 -2003
  1779. package/src/plus/integrations/lite.ts +0 -233
  1780. package/src/plus/integrations/manager.ts +0 -728
  1781. package/src/plus/integrations/models/gitHostIntegration.ts +0 -1862
  1782. package/src/plus/integrations/models/integration.ts +0 -1005
  1783. package/src/plus/integrations/models/issueCache.ts +0 -29
  1784. package/src/plus/integrations/models/issueReads.ts +0 -152
  1785. package/src/plus/integrations/models/issuesIntegration.ts +0 -248
  1786. package/src/plus/integrations/models/pullRequestReads.ts +0 -18
  1787. package/src/plus/integrations/providerFilters.ts +0 -36
  1788. package/src/plus/integrations/providers/accounts.ts +0 -38
  1789. package/src/plus/integrations/providers/apiClients.ts +0 -69
  1790. package/src/plus/integrations/providers/apiConfig.ts +0 -71
  1791. package/src/plus/integrations/providers/azure/azure.ts +0 -953
  1792. package/src/plus/integrations/providers/azure/models.ts +0 -723
  1793. package/src/plus/integrations/providers/azureDevOps.ts +0 -1355
  1794. package/src/plus/integrations/providers/bitbucket/bitbucket.ts +0 -904
  1795. package/src/plus/integrations/providers/bitbucket/models.ts +0 -446
  1796. package/src/plus/integrations/providers/bitbucket-server/models.ts +0 -283
  1797. package/src/plus/integrations/providers/bitbucket-server.ts +0 -445
  1798. package/src/plus/integrations/providers/bitbucket.ts +0 -793
  1799. package/src/plus/integrations/providers/github/github.ts +0 -64
  1800. package/src/plus/integrations/providers/github/github.utils.ts +0 -23
  1801. package/src/plus/integrations/providers/github/models.ts +0 -29
  1802. package/src/plus/integrations/providers/github.ts +0 -940
  1803. package/src/plus/integrations/providers/gitlab/gitlab.ts +0 -1320
  1804. package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +0 -80
  1805. package/src/plus/integrations/providers/gitlab/models.ts +0 -271
  1806. package/src/plus/integrations/providers/gitlab.ts +0 -841
  1807. package/src/plus/integrations/providers/issueSorts.ts +0 -89
  1808. package/src/plus/integrations/providers/jira.ts +0 -596
  1809. package/src/plus/integrations/providers/jiraIssueByKey.ts +0 -155
  1810. package/src/plus/integrations/providers/linear.ts +0 -484
  1811. package/src/plus/integrations/providers/models.ts +0 -1833
  1812. package/src/plus/integrations/providers/providerErrors.ts +0 -115
  1813. package/src/plus/integrations/providers/providersApi.ts +0 -1881
  1814. package/src/plus/integrations/providers/pullRequestReviews.ts +0 -122
  1815. package/src/plus/integrations/providers/trello.ts +0 -208
  1816. package/src/plus/integrations/providers/utils/providerPaging.ts +0 -212
  1817. package/src/plus/integrations/providers/utils.ts +0 -419
  1818. package/src/plus/integrations/reads/broaden.ts +0 -704
  1819. package/src/plus/integrations/reads/context.ts +0 -99
  1820. package/src/plus/integrations/reads/counts.ts +0 -610
  1821. package/src/plus/integrations/reads/cursors.ts +0 -224
  1822. package/src/plus/integrations/reads/drains.ts +0 -420
  1823. package/src/plus/integrations/reads/filters.ts +0 -614
  1824. package/src/plus/integrations/reads/hierarchy.ts +0 -486
  1825. package/src/plus/integrations/reads/hierarchy.utils.ts +0 -155
  1826. package/src/plus/integrations/reads/issueBatch.ts +0 -197
  1827. package/src/plus/integrations/reads/issueTracker.ts +0 -556
  1828. package/src/plus/integrations/reads/issues.ts +0 -600
  1829. package/src/plus/integrations/reads/ordering.ts +0 -124
  1830. package/src/plus/integrations/reads/paging.ts +0 -379
  1831. package/src/plus/integrations/reads/pullRequests.ts +0 -260
  1832. package/src/plus/integrations/reads/resolveRepository.ts +0 -275
  1833. package/src/plus/integrations/reads/searchIssues.ts +0 -274
  1834. package/src/plus/integrations/reads/searchPullRequests.ts +0 -235
  1835. package/src/plus/integrations/reads/sweeps.ts +0 -266
  1836. package/src/plus/integrations/reads/trackerIssue.ts +0 -105
  1837. package/src/plus/integrations/reads/warnings.ts +0 -535
  1838. package/src/plus/integrations/results.ts +0 -443
  1839. package/src/plus/integrations/telemetry.ts +0 -29
  1840. package/src/plus/integrations/utils/domain.utils.ts +0 -26
  1841. package/src/plus/integrations/utils/integration.utils.ts +0 -215
  1842. package/src/utils/array.ts +0 -194
  1843. package/src/utils/base64.ts +0 -1
  1844. package/src/utils/brand.ts +0 -7
  1845. package/src/utils/cancellation.ts +0 -199
  1846. package/src/utils/charCode.ts +0 -38
  1847. package/src/utils/coalescedRun.ts +0 -45
  1848. package/src/utils/color.ts +0 -817
  1849. package/src/utils/counter.ts +0 -21
  1850. package/src/utils/crypto.ts +0 -1
  1851. package/src/utils/date.ts +0 -474
  1852. package/src/utils/debounce.ts +0 -303
  1853. package/src/utils/decorators/debounce.ts +0 -31
  1854. package/src/utils/decorators/gate.ts +0 -167
  1855. package/src/utils/decorators/log.ts +0 -320
  1856. package/src/utils/decorators/memoize.ts +0 -98
  1857. package/src/utils/decorators/resolver.ts +0 -95
  1858. package/src/utils/decorators/sequentialize.ts +0 -118
  1859. package/src/utils/decorators/serializable.ts +0 -43
  1860. package/src/utils/dedupedAsyncCache.ts +0 -74
  1861. package/src/utils/diff.ts +0 -61
  1862. package/src/utils/disposable.ts +0 -156
  1863. package/src/utils/encoding.ts +0 -8
  1864. package/src/utils/env/browser/base64.ts +0 -50
  1865. package/src/utils/env/browser/crypto.ts +0 -21
  1866. package/src/utils/env/browser/fs.ts +0 -3
  1867. package/src/utils/env/browser/hex.ts +0 -41
  1868. package/src/utils/env/browser/hrtime.ts +0 -14
  1869. package/src/utils/env/browser/logScope.ts +0 -57
  1870. package/src/utils/env/browser/md5.ts +0 -217
  1871. package/src/utils/env/browser/platform.ts +0 -10
  1872. package/src/utils/env/node/base64.ts +0 -19
  1873. package/src/utils/env/node/crypto.ts +0 -17
  1874. package/src/utils/env/node/exec.ts +0 -488
  1875. package/src/utils/env/node/fs.ts +0 -5
  1876. package/src/utils/env/node/hex.ts +0 -11
  1877. package/src/utils/env/node/hrtime.ts +0 -1
  1878. package/src/utils/env/node/logScope.ts +0 -63
  1879. package/src/utils/env/node/platform.ts +0 -5
  1880. package/src/utils/error.ts +0 -18
  1881. package/src/utils/event.ts +0 -230
  1882. package/src/utils/formatter.ts +0 -198
  1883. package/src/utils/fs.ts +0 -1
  1884. package/src/utils/function.ts +0 -141
  1885. package/src/utils/fuzzy.ts +0 -185
  1886. package/src/utils/hash.ts +0 -60
  1887. package/src/utils/hex.ts +0 -1
  1888. package/src/utils/hrtime.ts +0 -8
  1889. package/src/utils/iterable.ts +0 -797
  1890. package/src/utils/keys/chord.ts +0 -184
  1891. package/src/utils/keys/keybinding.ts +0 -116
  1892. package/src/utils/lazy.ts +0 -39
  1893. package/src/utils/loggable.ts +0 -7
  1894. package/src/utils/logger.scoped.ts +0 -237
  1895. package/src/utils/logger.ts +0 -403
  1896. package/src/utils/lruMap.ts +0 -112
  1897. package/src/utils/markdown.ts +0 -115
  1898. package/src/utils/mru.ts +0 -68
  1899. package/src/utils/object.ts +0 -278
  1900. package/src/utils/paging.ts +0 -97
  1901. package/src/utils/path.ts +0 -204
  1902. package/src/utils/platform.ts +0 -1
  1903. package/src/utils/promise.ts +0 -657
  1904. package/src/utils/promiseCache.ts +0 -908
  1905. package/src/utils/resourceUsage.ts +0 -5
  1906. package/src/utils/searchTree.ts +0 -444
  1907. package/src/utils/stopwatch.ts +0 -125
  1908. package/src/utils/string.ts +0 -1003
  1909. package/src/utils/subscriptionManager.ts +0 -40
  1910. package/src/utils/trie.ts +0 -740
  1911. package/src/utils/types.ts +0 -31
  1912. package/src/utils/uri.ts +0 -118
  1913. package/src/utils/validation.ts +0 -38
  1914. package/src/utils/version.ts +0 -128
@@ -1,1433 +1,1094 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
8
- if (value !== null && value !== void 0) {
9
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
10
- var dispose, inner;
11
- if (async) {
12
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
13
- dispose = value[Symbol.asyncDispose];
14
- }
15
- if (dispose === void 0) {
16
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
17
- dispose = value[Symbol.dispose];
18
- if (async) inner = dispose;
19
- }
20
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
21
- if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
22
- env.stack.push({ value: value, dispose: dispose, async: async });
23
- }
24
- else if (async) {
25
- env.stack.push({ async: true });
26
- }
27
- return value;
28
- };
29
- var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
30
- return function (env) {
31
- function fail(e) {
32
- env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
33
- env.hasError = true;
34
- }
35
- var r, s = 0;
36
- function next() {
37
- while (r = env.stack.pop()) {
38
- try {
39
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
40
- if (r.dispose) {
41
- var result = r.dispose.call(r.value);
42
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
43
- }
44
- else s |= 1;
45
- }
46
- catch (e) {
47
- fail(e);
48
- }
49
- }
50
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
51
- if (env.hasError) throw env.error;
52
- }
53
- return next();
54
- };
55
- })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
56
- var e = new Error(message);
57
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
58
- });
59
- import { GitCommit, GitCommitIdentity } from '../../git/models/commit.js';
60
- import { GitFileChange } from '../../git/models/fileChange.js';
61
- import { createUncommittedChangesCommit } from '../../git/utils/commit.utils.js';
62
- import { isRevisionRange, isSha, isUncommitted, isUncommittedStaged } from '../../git/utils/revision.utils.js';
63
- import { parseSearchQueryGitCommand } from '../../git/utils/search.utils.js';
64
- import { compareReachableRefs } from '../../git/utils/sorting.js';
65
- import { isUserMatch } from '../../git/utils/user.utils.js';
66
- import { chunk as chunkArray } from '../../utils/array.js';
67
- import { CancellationError, isCancellationError } from '../../utils/cancellation.js';
68
- import { debug, trace } from '../../utils/decorators/log.js';
69
- import { createDisposable } from '../../utils/disposable.js';
70
- import { filterMap, findLast, first, join, last, some } from '../../utils/iterable.js';
71
- import { getScopedLogger } from '../../utils/logger.scoped.js';
72
- import { isFolderGlob, normalizePath, splitPath, stripFolderGlob } from '../../utils/path.js';
73
- import { maybeStopWatch } from '../../utils/stopwatch.js';
74
- import { escapeRegex, iterateByDelimiter } from '../../utils/string.js';
75
- import { fileUri, joinUriPath, toFsPath } from '../../utils/uri.js';
76
- import { gitConfigsLog, gitConfigsLogWithFiles, GitErrors } from '../exec/git.js';
77
- import { getCommitsLogParser, getShaAndDatesLogParser, getShaAndFilesAndStatsLogParser, getShaLogParser, } from '../parsers/logParser.js';
78
- import { getReflogParser, parseGitRefLog } from '../parsers/reflogParser.js';
79
- import { parseSignatureOutput, signatureFormat } from '../parsers/signatureParser.js';
80
- import { extractCommitterFromCommitObject, extractSshPublicKeyFromCommitObject, } from '../parsers/sshSignatureParser.js';
81
- import { createCommitFileset } from './commitFilesetUtils.js';
82
- import { convertStashesToStdin } from './stash.js';
83
- const emptyPromise = Promise.resolve(undefined);
84
- const reflogCommands = ['merge', 'pull'];
1
+ import { filterMap, findLast, first, join, last, some } from "../../utils/iterable.js";
2
+ import { chunk } from "../../utils/array.js";
3
+ import { CancellationError, isCancellationError } from "../../utils/cancellation.js";
4
+ import { escapeRegex, iterateByDelimiter } from "../../utils/string.js";
5
+ import { getScopedLogger } from "../../utils/logger.scoped.js";
6
+ import { debug, trace } from "../../utils/decorators/log.js";
7
+ import { fileUri, joinUriPath, toFsPath } from "../../utils/uri.js";
8
+ import { isFolderGlob, normalizePath, splitPath, stripFolderGlob } from "../../utils/path.js";
9
+ import { isRevisionRange, isSha, isUncommitted, isUncommittedStaged } from "../../git/utils/revision.utils.js";
10
+ import __decorate from "../../_virtual/@oxc-project+runtime/helpers/esm/decorate.js";
11
+ import { createDisposable } from "../../utils/disposable.js";
12
+ import { GitErrors, gitConfigsLog, gitConfigsLogWithFiles } from "../exec/git.js";
13
+ import { GitFileChange } from "../../git/models/fileChange.js";
14
+ import { createUncommittedChangesCommit } from "../../git/utils/commit.utils.js";
15
+ import { GitCommit, GitCommitIdentity } from "../../git/models/commit.js";
16
+ import { isUserMatch } from "../../git/utils/user.utils.js";
17
+ import { maybeStopWatch } from "../../utils/stopwatch.js";
18
+ import _usingCtx from "../../_virtual/@oxc-project+runtime/helpers/esm/usingCtx.js";
19
+ import { compareReachableRefs } from "../../git/utils/sorting.js";
20
+ import { parseSearchQueryGitCommand } from "../../git/utils/search.utils.js";
21
+ import { getCommitsLogParser, getShaAndDatesLogParser, getShaAndFilesAndStatsLogParser, getShaLogParser } from "../parsers/logParser.js";
22
+ import { getReflogParser, parseGitRefLog } from "../parsers/reflogParser.js";
23
+ import { parseSignatureOutput, signatureFormat } from "../parsers/signatureParser.js";
24
+ import { extractCommitterFromCommitObject, extractSshPublicKeyFromCommitObject } from "../parsers/sshSignatureParser.js";
25
+ import { createCommitFileset } from "./commitFilesetUtils.js";
26
+ import { convertStashesToStdin } from "./stash.js";
27
+ //#region ../git-cli/src/providers/commits.ts
28
+ const emptyPromise = Promise.resolve(void 0);
29
+ const reflogCommands = ["merge", "pull"];
85
30
  /** Keeps `filterUnpublishedShas` well inside Windows' ~32K command-line cap (40 hex chars + separator each). */
86
31
  const maxShasPerRevListSpawn = 500;
87
- export class CommitsGitSubProvider {
88
- context;
89
- git;
90
- cache;
91
- provider;
92
- constructor(context, git, cache, provider) {
93
- this.context = context;
94
- this.git = git;
95
- this.cache = cache;
96
- this.provider = provider;
97
- }
98
- async createUnreachableCommitFromTree(repoPath, tree, parent, message, cancellation) {
99
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'throw' }, 'commit-tree', tree, '-p', parent, '-m', message);
100
- return result.stdout.trim();
101
- }
102
- async getCommit(repoPath, rev, cancellation) {
103
- if (isUncommitted(rev, true)) {
104
- return createUncommittedChangesCommit(repoPath, rev, new Date(), await this.provider.config.getCurrentUser(repoPath));
105
- }
106
- const log = await this.getLogCore(repoPath, rev, { limit: 1 }, cancellation);
107
- if (log == null)
108
- return undefined;
109
- return log.commits.get(rev) ?? first(log.commits.values());
110
- }
111
- getCommitCount(repoPath, rev, cancellation) {
112
- return this.cache.commitCount.getOrCreate(repoPath, rev, async (cacheable, signal) => {
113
- // Bind the shared spawn to the aggregate `signal` (fires only when ALL current callers
114
- // abort), not this-caller's `cancellation` — otherwise a superseded caller's abort would
115
- // kill the shared command and reject concurrent riders that never cancelled.
116
- const result = await this.git.run({ cwd: repoPath, cancellation: signal ?? cancellation, errors: 'ignore' }, 'rev-list', '--count', rev, '--');
117
- if (result.completion.status === 'cancelled' || signal?.aborted) {
118
- throw new CancellationError();
119
- }
120
- // `errors: 'ignore'` turns a failed run (unknown rev, a transient `index.lock`) into an
121
- // empty stdout rather than a throw. That's indistinguishable from a real answer here, so
122
- // don't let it become a cached one — this entry has a sliding hour-long TTL, and repeated
123
- // access would keep a transient failure alive indefinitely. The pre-cache implementation
124
- // simply retried on the next call; invalidating restores that.
125
- //
126
- // BOTH conditions, not either alone. `exitCode !== 0` catches "git ran and said no" (a bad
127
- // rev exits 128); `status !== 'exited'` catches "git never answered" — a queue rejection or
128
- // spawn failure (no exit code at all), or a swallowed `GitWarnings` match, which carries git's
129
- // real code and so can slip past the exit-code test on its own.
130
- if (result.completion.status !== 'exited' || result.exitCode !== 0) {
131
- cacheable.invalidate();
132
- return undefined;
133
- }
134
- const data = result.stdout.trim();
135
- if (!data)
136
- return undefined;
137
- const count = parseInt(data, 10);
138
- return isNaN(count) ? undefined : count;
139
- }, { cancellation: cancellation });
140
- }
141
- async hasUnpublishedCommits(repoPath, rev, cancellation) {
142
- // `<rev> --not --remotes` = commits reachable from `rev` but not from any remote-tracking ref.
143
- // `--max-count=1` early-exits at the first such commit, so this is a presence probe, not a count.
144
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'ignore' }, 'rev-list', '--max-count=1', rev, '--not', '--remotes', '--');
145
- if (result.completion.status === 'cancelled' || cancellation?.aborted) {
146
- throw new CancellationError();
147
- }
148
- return result.stdout.trim().length > 0;
149
- }
150
- async filterUnpublishedShas(repoPath, shas, options, cancellation) {
151
- const unpublished = new Set();
152
- if (!shas.length)
153
- return unpublished;
154
- // One walk answers every sha: `<shas…> --not --remotes` yields the commits reachable from any of them
155
- // but not from any remote-tracking ref, so a sha is unpublished exactly when it appears in the output.
156
- // Callers pass tips from sibling worktrees — safe from a single `cwd` because the object store and
157
- // `refs/remotes` are shared across a repo's worktrees (unlike the index/working tree, which are not).
158
- //
159
- // NOT `--no-walk`: it "has no effect if a range is specified", and `--not --remotes` makes this a range,
160
- // so it would silently walk anyway and return the whole unpublished history instead of just these tips.
161
- // The walk is bounded by divergence from the remotes, not by repo size; callers skip this entirely when
162
- // the repo has no remotes (where every local commit would qualify).
163
- // Chunked so a repo with a very large number of worktrees can't overflow the platform's argument
164
- // limit (Windows' `CreateProcess` caps the whole command line at ~32K characters).
165
- // Deliberately NOT `errors: 'ignore'`: this answers for EVERY sha at once, so a swallowed failure
166
- // would return an empty set the caller can't distinguish from "nothing is unpublished", publishing a
167
- // confident `hasUnpushed: false` across every worktree in the batch. Letting it throw degrades the
168
- // caller to "unknown", which omits the field and leaves the client's last-known value in place.
169
- for (const chunk of chunkArray([...shas], maxShasPerRevListSpawn)) {
170
- const result = await this.git.run({
171
- cwd: repoPath,
172
- cancellation: cancellation,
173
- ...(options?.priority != null ? { priority: options.priority } : undefined),
174
- }, 'rev-list', ...chunk, '--not', '--remotes', '--');
175
- // Anything but a clean exit leaves empty stdout, which this function would otherwise read as
176
- // "every sha is published" — publishing a definite, wrong `hasUnpushed: false` for the whole
177
- // batch. Dropping `errors: 'ignore'` was not enough on its own: a stderr matching `GitWarnings`
178
- // (a repo path that briefly vanished, an unknown rev) is swallowed by the default handler and
179
- // resolves rather than throwing. Rethrow so the caller degrades to "unknown".
180
- if (result.completion.status !== 'exited')
181
- throw result.completion.error;
182
- if (cancellation?.aborted)
183
- throw new CancellationError();
184
- const candidates = new Set(chunk);
185
- for (const line of iterateByDelimiter(result.stdout, '\n')) {
186
- const sha = line.trim();
187
- // The walk emits ancestors too; keep only the tips we were asked about.
188
- if (sha.length && candidates.has(sha)) {
189
- unpublished.add(sha);
190
- }
191
- }
192
- }
193
- return unpublished;
194
- }
195
- async getCommitDates(repoPath, rev, cancellation) {
196
- const parser = getShaAndDatesLogParser();
197
- const result = await this.git.run({
198
- cwd: repoPath,
199
- cancellation: cancellation,
200
- errors: 'ignore',
201
- // Why: full SHAs identify immutable commits (5-min TTL is safe). Non-SHA refs rely on
202
- // gitResults being cleared on 'head'/'heads'/'remotes' events; the 60s TTL is the
203
- // failsafe for watcher latency / web (no fs watcher).
204
- caching: {
205
- cache: this.cache.gitResults,
206
- options: { accessTTL: isSha(rev) ? 5 * 60 * 1000 : 60 * 1000 },
207
- },
208
- }, 'log', '-1', ...parser.arguments, rev);
209
- if (result.completion.status === 'cancelled' || cancellation?.aborted)
210
- return undefined;
211
- for (const entry of parser.parse(result.stdout)) {
212
- const authorSeconds = Number(entry.authorDate);
213
- const committerSeconds = Number(entry.committerDate);
214
- if (!Number.isFinite(authorSeconds) || !Number.isFinite(committerSeconds))
215
- return undefined;
216
- return {
217
- authorDate: new Date(authorSeconds * 1000),
218
- committerDate: new Date(committerSeconds * 1000),
219
- };
220
- }
221
- return undefined;
222
- }
223
- async getCommitFiles(repoPath, rev, cancellation) {
224
- const parser = getShaAndFilesAndStatsLogParser();
225
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, configs: gitConfigsLog }, 'log', ...parser.arguments, '-n1', rev && !isUncommittedStaged(rev) ? rev : undefined, '--');
226
- const repoUri = fileUri(normalizePath(repoPath));
227
- const files = first(parser.parse(result.stdout))?.files.map(f => new GitFileChange(repoPath, f.path, f.status, joinUriPath(repoUri, normalizePath(f.path)), f.originalPath, f.originalPath != null ? joinUriPath(repoUri, normalizePath(f.originalPath)) : undefined, undefined, { additions: f.additions, deletions: f.deletions, changes: 0 }, undefined, undefined, f.mode, f.oid ? { oid: f.oid, previousOid: f.previousOid } : undefined));
228
- return files ?? [];
229
- }
230
- async getCommitForFile(repoPath, pathOrUri, rev, options, cancellation) {
231
- const scope = getScopedLogger();
232
- const [relativePath, root] = splitPath(toFsPath(pathOrUri), repoPath);
233
- try {
234
- const log = await this.getLogForPath(root, relativePath, rev, { limit: 1 }, cancellation);
235
- if (log == null)
236
- return undefined;
237
- let commit;
238
- if (rev) {
239
- commit = log.commits.get(rev);
240
- if (commit == null && !options?.firstIfNotFound) {
241
- // If the ref isn't a valid sha we will never find it, so let it fall through so we return the first
242
- if (isSha(rev) || isUncommitted(rev))
243
- return undefined;
244
- }
245
- }
246
- return commit ?? first(log.commits.values());
247
- }
248
- catch (ex) {
249
- scope?.error(ex);
250
- if (isCancellationError(ex))
251
- throw ex;
252
- return undefined;
253
- }
254
- }
255
- getCommitReachability(repoPath, rev, cancellation) {
256
- if (repoPath == null || isUncommitted(rev))
257
- return Promise.resolve(undefined);
258
- const scope = getScopedLogger();
259
- const getCore = async (cacheable) => {
260
- try {
261
- // Use for-each-ref with %(HEAD) to mark current branch with *
262
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'ignore' }, 'for-each-ref', '--contains', rev, '--format=%(HEAD)%(refname)', '--sort=-version:refname', '--sort=-committerdate', '--sort=-HEAD', 'refs/heads/', 'refs/remotes/', 'refs/tags/');
263
- if (cancellation?.aborted)
264
- throw new CancellationError();
265
- const refs = [];
266
- // Parse branches from refs/heads/ and refs/remotes/
267
- if (result?.stdout) {
268
- const lines = result.stdout.split('\n');
269
- for (let line of lines) {
270
- line = line.trim();
271
- if (!line)
272
- continue;
273
- // %(HEAD) outputs '*' for current branch, ' ' for others
274
- const isCurrent = line.startsWith('*');
275
- const refname = isCurrent ? line.substring(1) : line; // Skip the HEAD marker
276
- // Skip HEADs
277
- if (refname.endsWith('/HEAD'))
278
- continue;
279
- if (refname.startsWith('refs/heads/')) {
280
- // Remove 'refs/heads/'
281
- const name = refname.substring(11);
282
- refs.push({
283
- refType: 'branch',
284
- name: name,
285
- remote: false,
286
- current: isCurrent,
287
- });
288
- }
289
- else if (refname.startsWith('refs/remotes/')) {
290
- // Remove 'refs/remotes/'
291
- refs.push({ refType: 'branch', name: refname.substring(13), remote: true });
292
- }
293
- else if (refname.startsWith('refs/tags/')) {
294
- // Remove 'refs/tags/'
295
- refs.push({ refType: 'tag', name: refname.substring(10) });
296
- }
297
- }
298
- }
299
- // git already returns sorted by -HEAD, -committerdate, -version:refname;
300
- // compareReachableRefs refines by current-first / local-before-remote / tag-version.
301
- refs.sort(compareReachableRefs);
302
- return { refs: refs };
303
- }
304
- catch (ex) {
305
- cacheable?.invalidate();
306
- if (isCancellationError(ex))
307
- throw ex;
308
- debugger;
309
- scope?.error(ex);
310
- return undefined;
311
- }
312
- };
313
- return this.cache.reachability.getOrCreate(repoPath, rev, getCore);
314
- }
315
- async getIncomingActivity(repoPath, options, cancellation) {
316
- const scope = getScopedLogger();
317
- const cfg = this.context.config;
318
- const parser = getReflogParser();
319
- const args = ['--walk-reflogs', ...parser.arguments, '--date=iso8601'];
320
- const ordering = options?.ordering ?? cfg?.commits.ordering;
321
- if (ordering) {
322
- args.push(`--${ordering}-order`);
323
- }
324
- if (options?.all) {
325
- args.push('--all');
326
- }
327
- // Pass a much larger limit to reflog, because we aggregate the data and we won't know how many lines we'll need
328
- const limit = (options?.limit ?? cfg?.commits.maxItems ?? 0) * 100;
329
- if (limit) {
330
- args.push(`-n${limit}`);
331
- }
332
- if (options?.skip) {
333
- args.push(`--skip=${options.skip}`);
334
- }
335
- try {
336
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, configs: gitConfigsLog, priority: 'background' }, 'log', ...args);
337
- const reflog = parseGitRefLog(parser, result.stdout, repoPath, reflogCommands, limit, limit * 100);
338
- if (reflog?.hasMore) {
339
- reflog.more = this.getReflogMoreFn(reflog, options);
340
- }
341
- return reflog;
342
- }
343
- catch (ex) {
344
- scope?.error(ex);
345
- if (isCancellationError(ex))
346
- throw ex;
347
- return undefined;
348
- }
349
- }
350
- getReflogMoreFn(reflog, options) {
351
- return async (limit) => {
352
- limit = limit ?? 0;
353
- const moreLog = await this.getIncomingActivity(reflog.repoPath, {
354
- ...options,
355
- limit: limit,
356
- skip: reflog.total,
357
- });
358
- if (moreLog == null) {
359
- // If we can't find any more, assume we have everything
360
- return { ...reflog, hasMore: false, more: undefined };
361
- }
362
- const mergedLog = {
363
- repoPath: reflog.repoPath,
364
- records: [...reflog.records, ...moreLog.records],
365
- count: reflog.count + moreLog.count,
366
- total: reflog.total + moreLog.total,
367
- limit: (reflog.limit ?? 0) + limit,
368
- hasMore: moreLog.hasMore,
369
- };
370
- if (mergedLog.hasMore) {
371
- mergedLog.more = this.getReflogMoreFn(mergedLog, options);
372
- }
373
- return mergedLog;
374
- };
375
- }
376
- getInitialCommitSha(repoPath, cancellation) {
377
- // Initial commit SHA is shared across all worktrees
378
- return this.cache.getInitialCommitSha(repoPath, async (commonPath) => {
379
- try {
380
- const result = await this.git.run({ cwd: commonPath, cancellation: cancellation, errors: 'ignore' }, 'rev-list', `--max-parents=0`, 'HEAD', '--');
381
- if (result.completion.status === 'cancelled' || cancellation?.aborted) {
382
- throw new CancellationError();
383
- }
384
- return result.stdout.trim().split('\n')?.[0];
385
- }
386
- catch (ex) {
387
- if (isCancellationError(ex))
388
- throw ex;
389
- return undefined;
390
- }
391
- });
392
- }
393
- async getLeftRightCommitCount(repoPath, range, options, cancellation) {
394
- const authors = options?.authors?.length
395
- ? options.authors.map(a => `--author=^${escapeRegex(a.name ?? '')} <${escapeRegex(a.email ?? '')}>$`)
396
- : [];
397
- const run = async () => {
398
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'ignore' }, 'rev-list', '--left-right', '--count', ...authors, options?.excludeMerges ? '--no-merges' : undefined, range, '--');
399
- if (result.completion.status === 'cancelled' || cancellation?.aborted) {
400
- throw new CancellationError();
401
- }
402
- if (!result.stdout)
403
- return undefined;
404
- const parts = result.stdout.split('\t');
405
- if (parts.length !== 2)
406
- return undefined;
407
- const [left, right] = parts;
408
- const counts = {
409
- left: parseInt(left, 10),
410
- right: parseInt(right, 10),
411
- };
412
- if (isNaN(counts.left) || isNaN(counts.right))
413
- return undefined;
414
- return counts;
415
- };
416
- // Author-filtered calls are one-off (e.g. "who made these commits") with low re-hit
417
- // rate; skip the cache to protect its capacity for the hot no-author merge-target path.
418
- if (authors.length > 0)
419
- return run();
420
- // Cache key: range + excludeMerges. RepositoryChange events affecting branches/remotes
421
- // invalidate this cache via clearCaches('branches').
422
- const cacheKey = `${range}\x1f${options?.excludeMerges ? 'no-merges' : ''}`;
423
- return this.cache.leftRightCommitCount.getOrCreate(repoPath, cacheKey, run);
424
- }
425
- async getLog(repoPath, rev, options, cancellation) {
426
- return this.getLogCore(repoPath, rev, options, cancellation);
427
- }
428
- async getLogCore(repoPath, rev, options, cancellation, additionalArgs) {
429
- const scope = getScopedLogger();
430
- try {
431
- const currentUserPromise = this.provider.config.getCurrentUser(repoPath);
432
- const cfg = this.context.config;
433
- const limit = options?.limit ?? cfg?.commits.maxItems ?? 0;
434
- const isSingleCommit = limit === 1;
435
- const cfgIncludeFiles = options?.includeFiles ?? cfg?.commits.includeFileDetails ?? true;
436
- const includeFiles = cfgIncludeFiles || isSingleCommit || Boolean(options?.path?.pathspec);
437
- const parser = getCommitsLogParser(includeFiles, Boolean(options?.path?.pathspec && options?.path?.range));
438
- const args = ['log', ...parser.arguments];
439
- const similarityThreshold = options?.similarityThreshold ?? cfg?.commits.similarityThreshold;
440
- args.push(`-M${similarityThreshold == null ? '' : `${similarityThreshold}%`}`, '--use-mailmap');
441
- if (options?.all) {
442
- args.push('--all');
443
- if (options?.path?.pathspec) {
444
- args.push('--single-worktree');
445
- }
446
- }
447
- const merges = options?.merges ?? true;
448
- if (merges) {
449
- // If we are are asking for a specific ref, ensure we return the merge commit files
450
- if (isSingleCommit) {
451
- args.push('-m');
452
- }
453
- args.push(merges === 'first-parent' ? '--first-parent' : '--no-min-parents');
454
- }
455
- else {
456
- args.push('--no-merges');
457
- }
458
- const ordering = options?.ordering ?? cfg?.commits.ordering;
459
- if (ordering) {
460
- args.push(`--${ordering}-order`);
461
- }
462
- if (options?.authors?.length) {
463
- args.push(...options.authors.map(a => `--author=^${escapeRegex(a.name ?? '')} <${escapeRegex(a.email ?? '')}>$`));
464
- }
465
- let overrideHasMore;
466
- if (options?.since) {
467
- overrideHasMore = true;
468
- args.push(`--since="${options.since}"`);
469
- }
470
- if (options?.until) {
471
- overrideHasMore = true;
472
- args.push(`--until="${options.until}"`);
473
- }
474
- if (additionalArgs?.length) {
475
- args.push(...additionalArgs);
476
- }
477
- if (limit > 0) {
478
- overrideHasMore = isSingleCommit ? false : undefined;
479
- // Add 1 to the limit so we can check if there are more commits
480
- args.push(`-n${isSingleCommit ? 1 : limit + 1}`);
481
- }
482
- let stashes;
483
- if (!isSingleCommit && options?.stashes) {
484
- stashes =
485
- typeof options.stashes === 'boolean'
486
- ? (await this.provider.stash?.getStash(repoPath, { reachableFrom: rev }, cancellation))?.stashes
487
- : options.stashes;
488
- if (stashes?.size) {
489
- rev ??= 'HEAD';
490
- }
491
- }
492
- if (rev && !isUncommittedStaged(rev)) {
493
- args.push(rev);
494
- }
495
- let pathspec;
496
- let pathspecRange;
497
- if (options?.path?.pathspec) {
498
- pathspec = options.path.pathspec;
499
- const { filters, range, renames } = options.path;
500
- if (filters?.length) {
501
- args.push(`--diff-filter=${filters.join('')}`);
502
- }
503
- if (range != null) {
504
- // Git doesn't allow rename detection (`--follow`) if a range is used
505
- const [start, end] = getGitStartEnd(range);
506
- pathspecRange = `${start},${end}`;
507
- args.push(`-L ${pathspecRange}:${pathspec}`, '--');
508
- }
509
- else {
510
- if (renames !== false) {
511
- args.push('--follow');
512
- }
513
- args.push('--', pathspec);
514
- }
515
- }
516
- else {
517
- args.push('--');
518
- }
519
- const currentUser = await currentUserPromise.catch(() => undefined);
520
- if (cancellation?.aborted)
521
- throw new CancellationError();
522
- const cmdOpts = {
523
- cwd: repoPath,
524
- cancellation: cancellation,
525
- configs: gitConfigsLogWithFiles,
526
- // Single-commit log serves user-initiated reads (commit details, hover, etc.).
527
- // Mirrors getCommitDates: full SHAs are immutable so a 5-min TTL is safe; non-SHA refs
528
- // rely on gitResults being cleared on head/heads/remotes events (60s is the failsafe
529
- // for watcher latency / web with no fs watcher).
530
- ...(isSingleCommit && rev
531
- ? {
532
- caching: {
533
- cache: this.cache.gitResults,
534
- options: { accessTTL: isSha(rev) ? 5 * 60 * 1000 : 60 * 1000 },
535
- },
536
- }
537
- : undefined),
538
- };
539
- let { commits, count } = await parseCommits(parser, isSingleCommit ? this.git.run(cmdOpts, ...args) : this.git.stream(cmdOpts, ...args), repoPath, pathspec, limit, undefined, currentUser);
540
- // If we didn't find any history from the working tree, check to see if the file was renamed
541
- if (rev == null && pathspec && !commits.size) {
542
- const status = await this.provider.status?.getStatusForFile?.(repoPath, pathspec, undefined, cancellation);
543
- if (status?.originalPath != null) {
544
- pathspec = status.originalPath;
545
- if (pathspecRange) {
546
- const index = args.findIndex(a => a.startsWith('-L '));
547
- args.splice(index, 1, `-L ${pathspecRange}:${pathspec}`);
548
- }
549
- else {
550
- args.splice(args.length - 1, 1, pathspec);
551
- }
552
- ({ commits, count } = await parseCommits(parser, isSingleCommit ? this.git.run(cmdOpts, ...args) : this.git.stream(cmdOpts, ...args), repoPath, pathspec, limit, undefined, currentUser));
553
- }
554
- }
555
- // Merge stashes in-memory rather than via `git log --stdin <stash>` — git would
556
- // walk each stash's parent chains and pull in pre-rebase ancestors that aren't
557
- // reachable from <rev>. Slot each stash directly above its first parent; stashes
558
- // whose parent isn't in the result (rebased away, or below the current limit) are
559
- // dropped the Stashes view still surfaces them, and they reappear here if the
560
- // parent loads via "Load more".
561
- if (stashes?.size) {
562
- // `stashes` arrives in `git stash list` order (newest @{0} first), so per-parent
563
- // groups naturally land newest-first without an explicit sort
564
- const stashesByParent = new Map();
565
- for (const stash of stashes.values()) {
566
- const parentSha = stash.parents[0];
567
- if (parentSha == null || !commits.has(parentSha))
568
- continue;
569
- const group = stashesByParent.get(parentSha);
570
- if (group != null) {
571
- group.push(stash);
572
- }
573
- else {
574
- stashesByParent.set(parentSha, [stash]);
575
- }
576
- }
577
- if (stashesByParent.size) {
578
- const cap = limit > 0 ? limit + 1 : Number.POSITIVE_INFINITY;
579
- const merged = new Map();
580
- outer: for (const c of commits.values()) {
581
- const group = stashesByParent.get(c.sha);
582
- if (group != null) {
583
- for (const s of group) {
584
- if (merged.size >= cap)
585
- break outer;
586
- merged.set(s.sha, s);
587
- }
588
- }
589
- if (merged.size >= cap)
590
- break;
591
- merged.set(c.sha, c);
592
- }
593
- commits = merged;
594
- }
595
- }
596
- const log = {
597
- repoPath: repoPath,
598
- commits: commits,
599
- sha: isRevisionRange(rev) ? undefined : rev,
600
- count: commits.size,
601
- limit: limit,
602
- hasMore: overrideHasMore ?? (limit > 0 && count > limit),
603
- };
604
- if (!isSingleCommit) {
605
- log.query = (limit) => this.getLogCore(repoPath, rev, { ...options, limit: limit }, undefined, additionalArgs);
606
- if (log.hasMore) {
607
- log.more = this.getLogCoreMoreFn(log, rev, options);
608
- }
609
- }
610
- return log;
611
- }
612
- catch (ex) {
613
- if (isCancellationError(ex))
614
- throw ex;
615
- // Check if this is a "bad object" error due to a submodule's internal SHA
616
- const pathspec = options?.path?.pathspec;
617
- if (rev && pathspec && ex instanceof Error && GitErrors.badObject.test(ex.message)) {
618
- const tree = await this.provider.revision.getTreeEntryForRevision(repoPath, pathspec, 'HEAD');
619
- if (tree?.type === 'commit') {
620
- // It's a submodule - retry without the rev and without rename tracking
621
- return this.getLogCore(repoPath, undefined, { ...options, path: { ...options.path, pathspec: pathspec, renames: false } }, cancellation, additionalArgs);
622
- }
623
- }
624
- scope?.error(ex);
625
- debugger;
626
- return undefined;
627
- }
628
- }
629
- getLogCoreMoreFn(log, rev, options) {
630
- return async (limit) => {
631
- const moreUntil = limit != null && typeof limit === 'object' ? limit.until : undefined;
632
- let moreLimit = typeof limit === 'number' ? limit : undefined;
633
- if (moreUntil && some(log.commits.values(), c => c.ref === moreUntil)) {
634
- return log;
635
- }
636
- moreLimit = moreLimit ?? 0;
637
- // If the log is for a range, then just get everything prior + more
638
- if (isRevisionRange(log.sha)) {
639
- const moreLog = await this.getLogCore(log.repoPath, rev, {
640
- ...options,
641
- limit: moreLimit === 0 ? 0 : (options?.limit ?? 0) + moreLimit,
642
- });
643
- // If we can't find any more, assume we have everything
644
- if (moreLog == null)
645
- return { ...log, hasMore: false, more: undefined };
646
- return moreLog;
647
- }
648
- // Stashes are not part of the normal commit history, so we need to find the last non-stash commit for the cursor
649
- const lastCommit = findLast(log.commits.values(), c => !GitCommit.isStash(c)) ?? last(log.commits.values());
650
- const sha = lastCommit?.ref;
651
- // Check to make sure the filename hasn't changed and if it has use the previous
652
- const lastCommitFile = lastCommit?.anyFiles?.[0];
653
- if (options?.path?.pathspec && lastCommitFile != null) {
654
- const path = lastCommitFile.originalPath ?? lastCommitFile.path;
655
- if (path !== options.path.pathspec) {
656
- options = { ...options, path: { ...options.path, pathspec: path } };
657
- }
658
- }
659
- // If we were asked for all refs, use the last commit timestamp (plus a second) as a cursor
660
- let timestamp;
661
- if (options?.all) {
662
- const date = lastCommit?.committer.date;
663
- // Git only allows 1-second precision, so round up to the nearest second
664
- timestamp = date != null ? Math.ceil(date.getTime() / 1000) + 1 : undefined;
665
- }
666
- let moreLogCount;
667
- let queryLimit = moreUntil == null ? moreLimit : 0;
668
- do {
669
- const moreLog = await this.getLogCore(log.repoPath, timestamp ? rev : moreUntil == null ? `${sha}^` : `${moreUntil}^..${sha}^`, {
670
- ...options,
671
- limit: queryLimit,
672
- ...(timestamp ? { until: timestamp } : undefined),
673
- }, undefined, timestamp ? ['--boundary'] : undefined);
674
- // If we can't find any more, assume we have everything
675
- if (moreLog == null)
676
- return { ...log, hasMore: false, more: undefined };
677
- const currentCount = log.commits.size;
678
- const commits = new Map([...log.commits, ...moreLog.commits]);
679
- if (currentCount === commits.size && queryLimit !== 0) {
680
- // If we didn't find any new commits, we must have them all so return that we have everything
681
- if (moreLogCount === moreLog.commits.size) {
682
- return { ...log, hasMore: false, more: undefined };
683
- }
684
- moreLogCount = moreLog.commits.size;
685
- queryLimit = queryLimit * 2;
686
- continue;
687
- }
688
- if (timestamp != null && sha != null && !moreLog.commits.has(sha)) {
689
- debugger;
690
- }
691
- const mergedLog = {
692
- repoPath: log.repoPath,
693
- commits: commits,
694
- sha: log.sha,
695
- count: commits.size,
696
- limit: moreUntil == null ? (log.limit ?? 0) + moreLimit : undefined,
697
- hasMore: moreUntil == null ? moreLog.hasMore : true,
698
- // The oldest commit SHA of the previous page — the graph webview compares this
699
- // against its last displayed row to determine the merge point for appending new rows
700
- startingCursor: sha,
701
- endingCursor: moreLog.endingCursor,
702
- pagedCommits: () => {
703
- // Remove any duplicates
704
- for (const sha of log.commits.keys()) {
705
- moreLog.commits.delete(sha);
706
- }
707
- return moreLog.commits;
708
- },
709
- // oxlint-disable-next-line no-loop-func
710
- query: (limit) => this.getLogCore(log.repoPath, rev, { ...options, limit: limit }),
711
- };
712
- if (mergedLog.hasMore) {
713
- mergedLog.more = this.getLogCoreMoreFn(mergedLog, rev, options);
714
- }
715
- return mergedLog;
716
- } while (true);
717
- };
718
- }
719
- async getLogForPath(repoPath, pathOrUri, rev, options, cancellation) {
720
- if (repoPath == null)
721
- return undefined;
722
- const scope = getScopedLogger();
723
- let relativePath = this.provider.getRelativePath(pathOrUri, repoPath);
724
- if (repoPath != null && repoPath === relativePath) {
725
- throw new Error(`Path cannot match the repository path; path=${relativePath}`);
726
- }
727
- const cfg = this.context.config;
728
- options = {
729
- ...options,
730
- all: options?.all ?? cfg?.fileHistory?.showAllBranches,
731
- limit: options?.limit ?? cfg?.commits.maxItems ?? 0,
732
- merges: options?.merges ?? cfg?.fileHistory?.showMergeCommits,
733
- ordering: options?.ordering ?? cfg?.commits.ordering ?? undefined,
734
- renames: options?.renames ?? cfg?.fileHistory?.followRenames,
735
- similarityThreshold: options?.similarityThreshold ?? cfg?.commits.similarityThreshold,
736
- };
737
- if (isFolderGlob(relativePath)) {
738
- relativePath = stripFolderGlob(relativePath);
739
- options.isFolder = true;
740
- }
741
- else if (options.isFolder == null) {
742
- const tree = await this.provider.revision.getTreeEntryForRevision(repoPath, relativePath, rev || 'HEAD');
743
- if (cancellation?.aborted)
744
- throw new CancellationError();
745
- if (tree?.type === 'commit') {
746
- // It's a submodule — line ranges and rename tracking don't apply, and the rev may reference
747
- // the submodule's internal SHA which isn't valid in the parent repo
748
- options.range = undefined;
749
- options.renames = false;
750
- // rev = undefined;
751
- }
752
- else {
753
- options.isFolder = tree?.type === 'tree';
754
- }
755
- }
756
- // Build cache key — only for non-folder, non-filtered queries
757
- let cacheKey;
758
- if (!options.isFolder &&
759
- options.authors == null &&
760
- options.cursor == null &&
761
- options.filters == null &&
762
- options.range == null &&
763
- options.since == null &&
764
- options.until == null) {
765
- let suffix = 'log';
766
- if (rev != null) {
767
- suffix += `:${rev}`;
768
- }
769
- if (options.all) {
770
- suffix += ':all';
771
- }
772
- if (options.limit) {
773
- suffix += `:n${options.limit}`;
774
- }
775
- if (options.merges) {
776
- suffix += `:merges=${options.merges}`;
777
- }
778
- if (options.ordering) {
779
- suffix += `:ordering=${options.ordering}`;
780
- }
781
- if (options.renames) {
782
- suffix += ':follow';
783
- }
784
- cacheKey = `${normalizePath(relativePath)}:${suffix}`;
785
- }
786
- if (cacheKey != null) {
787
- // Check for exact cache hit
788
- const cached = this.cache.fileLog.get(repoPath, cacheKey);
789
- if (cached != null) {
790
- scope?.trace(`Cache hit: '${cacheKey}'`);
791
- return cached;
792
- }
793
- // Subset optimization: if requesting partial log, check if whole-file log is cached
794
- if (rev != null || (options.limit != null && options.limit !== 0)) {
795
- const baseKey = `${normalizePath(relativePath)}:log${options.renames ? ':follow' : ''}`;
796
- const baseLog = this.cache.fileLog.get(repoPath, baseKey);
797
- if (baseLog != null) {
798
- if (rev == null) {
799
- scope?.trace(`Cache hit: ~'${cacheKey}'`);
800
- return baseLog;
801
- }
802
- scope?.trace(`Cache ?: '${cacheKey}'`);
803
- const log = await baseLog;
804
- if (log != null && !log.hasMore && log.commits.has(rev)) {
805
- scope?.trace(`Cache hit: '${cacheKey}'`);
806
- // Create a copy of the log starting at the requested commit
807
- let skip = true;
808
- let i = 0;
809
- const limit = options.limit;
810
- const commits = new Map(filterMap(log.commits.entries(), ([sha, c]) => {
811
- if (skip) {
812
- if (sha !== rev)
813
- return undefined;
814
- skip = false;
815
- }
816
- i++;
817
- if (limit != null && i > limit) {
818
- return undefined;
819
- }
820
- return [sha, c];
821
- }));
822
- const optsCopy = { ...options };
823
- return {
824
- ...log,
825
- limit: optsCopy.limit,
826
- count: commits.size,
827
- commits: commits,
828
- query: (limit) => this.getLogForPath(repoPath, pathOrUri, rev, {
829
- ...optsCopy,
830
- limit: limit,
831
- }),
832
- };
833
- }
834
- }
835
- }
836
- scope?.trace(`Cache miss: '${cacheKey}'`);
837
- return this.cache.fileLog.getOrCreate(repoPath, cacheKey, (_cacheable, signal) => this.getLogForPathCore(repoPath, relativePath, rev, options, signal), { cancellation: cancellation });
838
- }
839
- return this.getLogForPathCore(repoPath, relativePath, rev, options, cancellation);
840
- }
841
- async getLogForPathCore(repoPath, path, rev, options, cancellation) {
842
- const scope = getScopedLogger();
843
- const tracked = await this.provider.isTrackedWithDetails(path, repoPath, rev);
844
- if (cancellation?.aborted)
845
- throw new CancellationError();
846
- if (tracked == null) {
847
- scope?.debug(`Skipping log; '${path}' is not tracked`);
848
- return emptyPromise;
849
- }
850
- const relativePath = tracked.path;
851
- const root = repoPath;
852
- const log = await this.getLogCore(root, rev, {
853
- all: options.all,
854
- authors: options.authors,
855
- cursor: options.cursor,
856
- limit: options.limit,
857
- merges: options.merges,
858
- ordering: options.ordering,
859
- since: options.since,
860
- until: options.until,
861
- path: {
862
- pathspec: relativePath,
863
- filters: options.filters,
864
- range: options.range,
865
- renames: options.renames,
866
- },
867
- }, cancellation);
868
- return log;
869
- }
870
- async getLogShas(repoPath, rev, options, cancellation) {
871
- const scope = getScopedLogger();
872
- const cfg = this.context.config;
873
- options ??= {};
874
- options.limit ??= cfg?.commits.maxItems ?? 0;
875
- options.ordering ??= cfg?.commits.ordering ?? undefined;
876
- options.similarityThreshold ??= cfg?.commits.similarityThreshold;
877
- options.merges ??= true;
878
- const getCore = async () => {
879
- try {
880
- const parser = getShaLogParser();
881
- const args = [...parser.arguments];
882
- if (options.all) {
883
- args.push(`--all`);
884
- }
885
- if (options.ordering) {
886
- args.push(`--${options.ordering}-order`);
887
- }
888
- if (options.limit) {
889
- args.push(`-n${options.limit}`);
890
- }
891
- if (options.since) {
892
- args.push(`--since="${options.since}"`);
893
- }
894
- if (options.merges) {
895
- args.push(options.merges === 'first-parent' ? '--first-parent' : '--no-min-parents');
896
- }
897
- else {
898
- args.push('--no-merges');
899
- }
900
- if (options.reverse) {
901
- args.push('--reverse');
902
- }
903
- if (options.authors?.length) {
904
- if (!args.includes('--use-mailmap')) {
905
- args.push('--use-mailmap');
906
- }
907
- args.push(...options.authors.map(a => `--author=^${escapeRegex(a.name ?? '')} <${escapeRegex(a.email ?? '')}>$`));
908
- }
909
- const pathspec = options.pathOrUri != null ? this.provider.getRelativePath(options.pathOrUri, repoPath) : undefined;
910
- if (pathspec) {
911
- const similarityThreshold = options.similarityThreshold;
912
- args.push(`-M${similarityThreshold == null ? '' : `${similarityThreshold}%`}`);
913
- }
914
- if (rev && !isUncommittedStaged(rev)) {
915
- args.push(rev);
916
- }
917
- args.push('--');
918
- if (pathspec) {
919
- args.push(pathspec);
920
- }
921
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, configs: gitConfigsLog }, 'log', ...args);
922
- return [...parser.parse(result.stdout)];
923
- }
924
- catch (ex) {
925
- scope?.error(ex);
926
- if (isCancellationError(ex))
927
- throw ex;
928
- debugger;
929
- return [];
930
- }
931
- };
932
- // Cache simple queries (no pathspec, no authors) as these are on hot paths (e.g. getting unpublished commits)
933
- const cacheable = !options.pathOrUri && !options.authors?.length && !options.reverse && !options.all;
934
- if (cacheable) {
935
- return this.cache.logShas.getOrCreate(repoPath, `${rev ?? ''}:${options.ordering ?? ''}:${options.limit}:${options.merges}:${options.since ?? ''}`, () => getCore());
936
- }
937
- return getCore();
938
- }
939
- async getOldestUnpushedShaForPath(repoPath, pathOrUri, cancellation) {
940
- const scope = getScopedLogger();
941
- try {
942
- const relativePath = this.provider.getRelativePath(pathOrUri, repoPath);
943
- const parser = getShaLogParser();
944
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, configs: gitConfigsLog }, 'log', ...parser.arguments, '--follow', '--reverse', '@{u}..', '--', relativePath);
945
- return first(parser.parse(result.stdout));
946
- }
947
- catch (ex) {
948
- scope?.error(ex);
949
- if (isCancellationError(ex))
950
- throw ex;
951
- debugger;
952
- return undefined;
953
- }
954
- }
955
- async hasCommitBeenPushed(repoPath, rev, cancellation) {
956
- if (repoPath == null)
957
- return false;
958
- return this.isAncestorOf(repoPath, rev, '@{u}', cancellation);
959
- }
960
- async isAncestorOf(repoPath, rev1, rev2, cancellation) {
961
- if (repoPath == null)
962
- return false;
963
- const result = await this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'ignore' }, 'merge-base', '--is-ancestor', rev1, rev2);
964
- // A cancelled check has no answer. `completion` now keeps that distinct from a real "is an ancestor"
965
- // result — the missing `exitCode` alone already makes the check below `false` — but callers branch on
966
- // `isCancellationError`, so this still has to throw rather than quietly answer "no".
967
- if (cancellation?.aborted)
968
- throw new CancellationError();
969
- return result.exitCode === 0;
970
- }
971
- async searchCommits(repoPath, search, options, cancellation) {
972
- const scope = getScopedLogger();
973
- search = { matchAll: false, matchCase: false, matchRegex: true, matchWholeWord: false, ...search };
974
- // Pre-process natural language search queries via the host-provided hook
975
- if (search.naturalLanguage &&
976
- (typeof search.naturalLanguage !== 'object' || !search.naturalLanguage.processedQuery)) {
977
- search = (await this.context.searchQuery?.preprocessQuery?.(search, options?.source)) ?? search;
978
- }
979
- // The conversion failed — `search.query` is still the raw English sentence, not a query; running
980
- // it as an ERE would produce a regex error about text the user never wrote.
981
- if (typeof search.naturalLanguage === 'object' && search.naturalLanguage.error) {
982
- return { search: search, log: undefined };
983
- }
984
- try {
985
- const cfg = this.context.config;
986
- const currentUser = await this.provider.config.getCurrentUser(repoPath);
987
- if (cancellation?.aborted)
988
- throw new CancellationError();
989
- const parser = getCommitsLogParser(true);
990
- const similarityThreshold = options?.similarityThreshold ?? cfg?.commits.similarityThreshold;
991
- const args = [
992
- 'log',
993
- ...parser.arguments,
994
- `-M${similarityThreshold == null ? '' : `${similarityThreshold}%`}`,
995
- '--use-mailmap',
996
- ];
997
- const { args: searchArgs, files, shas, filters } = parseSearchQueryGitCommand(search, currentUser);
998
- // Stash commits have 2-3 parents, so `--merges` matches them; excluded in parseCommits.
999
- // Derived from the args git actually runs rather than `filters.type`, since a multi-value
1000
- // `type:` query (e.g. `type:merge type:tip`) leaves `--merges` in the args while
1001
- // `filters.type` reflects only the last value parsed
1002
- const mergesOnly = searchArgs.includes('--merges');
1003
- let stashes;
1004
- let stdin;
1005
- let resolvedShas;
1006
- if (shas?.size) {
1007
- resolvedShas = await this.provider.revision.resolveShas(repoPath, shas, cancellation);
1008
- if (cancellation?.aborted)
1009
- throw new CancellationError();
1010
- // Short SHA(s) matched no commit: return empty (empty stdin to `--no-walk --stdin`
1011
- // would return HEAD, so we must not fall through to git).
1012
- if (!resolvedShas.size) {
1013
- return {
1014
- search: search,
1015
- log: {
1016
- repoPath: repoPath,
1017
- commits: new Map(),
1018
- sha: undefined,
1019
- searchFilters: filters,
1020
- count: 0,
1021
- limit: options?.limit ?? cfg?.search?.maxItems ?? 0,
1022
- hasMore: false,
1023
- },
1024
- };
1025
- }
1026
- }
1027
- if (resolvedShas?.size) {
1028
- stdin = join(resolvedShas, '\n');
1029
- args.push('--no-walk');
1030
- }
1031
- else if (!filters.refs) {
1032
- // Don't include stashes when using ref: filter, as they would add unrelated commits
1033
- // There *HAS* to be a better way to get git log to return stashes, but this is the best we've found
1034
- const converted = convertStashesToStdin(await this.provider.stash?.getStash(repoPath, undefined, cancellation));
1035
- stashes = converted.stashes;
1036
- // `--all` already surfaces refs/stash's tip on its own, so when merges-only there's no need
1037
- // to walk the rest of the stash stack via stdin -- parseCommits still excludes any stash
1038
- // sha that slips through via refs/stash
1039
- stdin = mergesOnly ? undefined : converted.stdin;
1040
- }
1041
- else if (mergesOnly) {
1042
- // `ref:` skips walking stashes into the results (they're unrelated to the ref), but a
1043
- // stash's tip can still leak in via `--merges` if the ref reaches refs/stash -- fetch
1044
- // stashes here purely so parseCommits can exclude them, without widening the walk via
1045
- // stdin
1046
- stashes = convertStashesToStdin(await this.provider.stash?.getStash(repoPath, undefined, cancellation)).stashes;
1047
- }
1048
- if (stdin) {
1049
- args.push('--stdin');
1050
- }
1051
- const limit = options?.limit ?? cfg?.search?.maxItems ?? 0;
1052
- if (limit && !shas?.size) {
1053
- args.push(`-n${limit + 1}`);
1054
- }
1055
- const ordering = options?.ordering ?? cfg?.commits.ordering;
1056
- if (ordering) {
1057
- args.push(`--${ordering}-order`);
1058
- }
1059
- if (options?.skip) {
1060
- args.push(`--skip=${options.skip}`);
1061
- }
1062
- // Add the search args, but skip any shas (as they are already included in the stdin)
1063
- for (const arg of searchArgs) {
1064
- if (shas?.has(arg) || args.includes(arg))
1065
- continue;
1066
- args.push(arg);
1067
- }
1068
- const pathspec = files?.join(' ');
1069
- const { commits, count, countStashChildCommits } = await parseCommits(parser, this.git.stream({
1070
- cwd: repoPath,
1071
- cancellation: cancellation,
1072
- configs: ['-C', repoPath, ...gitConfigsLog],
1073
- stdin: stdin,
1074
- }, ...args, '--', ...files), repoPath, pathspec, limit, stashes, currentUser, filters, mergesOnly);
1075
- const log = {
1076
- repoPath: repoPath,
1077
- commits: commits,
1078
- sha: undefined,
1079
- searchFilters: filters,
1080
- count: commits.size,
1081
- limit: limit,
1082
- hasMore: count - countStashChildCommits > commits.size,
1083
- query: (limit) => this.searchCommits(repoPath, search, { ...options, limit: limit }).then(r => r.log),
1084
- };
1085
- if (log.hasMore) {
1086
- const searchCommitsCore = (log) => {
1087
- return async (limit) => {
1088
- limit = limit ?? 0;
1089
- const moreLog = (await this.searchCommits(log.repoPath, search, {
1090
- ...options,
1091
- limit: limit,
1092
- skip: log.count,
1093
- })).log;
1094
- // If we can't find any more, assume we have everything
1095
- if (moreLog == null)
1096
- return { ...log, hasMore: false, more: undefined };
1097
- const commits = new Map([...log.commits, ...moreLog.commits]);
1098
- const mergedLog = {
1099
- repoPath: log.repoPath,
1100
- commits: commits,
1101
- sha: log.sha,
1102
- searchFilters: filters,
1103
- count: commits.size,
1104
- limit: (log.limit ?? 0) + limit,
1105
- hasMore: moreLog.hasMore,
1106
- query: (limit) => this.searchCommits(log.repoPath, search, { ...options, limit: limit }).then(r => r.log),
1107
- };
1108
- if (mergedLog.hasMore) {
1109
- mergedLog.more = searchCommitsCore(mergedLog);
1110
- }
1111
- return mergedLog;
1112
- };
1113
- };
1114
- log.more = searchCommitsCore(log);
1115
- }
1116
- return { search: search, log: log };
1117
- }
1118
- catch (ex) {
1119
- scope?.error(ex);
1120
- if (isCancellationError(ex))
1121
- throw ex;
1122
- return { search: search, log: undefined };
1123
- }
1124
- }
1125
- async getCommitSignature(repoPath, sha) {
1126
- const scope = getScopedLogger();
1127
- try {
1128
- const result = await this.git.run({
1129
- cwd: repoPath,
1130
- errors: 'ignore',
1131
- caching: {
1132
- cache: this.cache.gitResults,
1133
- options: { accessTTL: isSha(sha) ? 5 * 60 * 1000 : 60 * 1000 },
1134
- },
1135
- configs: gitConfigsLog,
1136
- }, 'log', `--format=${signatureFormat}`, '-1', sha);
1137
- if (!result.stdout)
1138
- return undefined;
1139
- return parseSignatureOutput(result.stdout);
1140
- }
1141
- catch (ex) {
1142
- scope?.error(ex);
1143
- return undefined;
1144
- }
1145
- }
1146
- async isCommitSigned(repoPath, sha) {
1147
- const scope = getScopedLogger();
1148
- try {
1149
- const result = await this.git.run({
1150
- cwd: repoPath,
1151
- errors: 'ignore',
1152
- caching: {
1153
- cache: this.cache.gitResults,
1154
- options: { accessTTL: isSha(sha) ? 5 * 60 * 1000 : 60 * 1000 },
1155
- },
1156
- }, 'cat-file', 'commit', sha);
1157
- return /^gpgsig(-sha256)? /m.test(result.stdout);
1158
- }
1159
- catch (ex) {
1160
- scope?.error(ex);
1161
- return false;
1162
- }
1163
- }
1164
- async getCommitsSshSigners(repoPath, shas) {
1165
- const scope = getScopedLogger();
1166
- const result = new Map();
1167
- if (shas.length === 0)
1168
- return result;
1169
- try {
1170
- // Read every commit object in a single `cat-file --batch` process (the SHAs are piped to stdin) rather than
1171
- // spawning one `git` per commit — the embedded SSH signature and committer identity are then parsed from
1172
- // each raw object, avoiding a separate (and far heavier) `git log` pass to enumerate identities.
1173
- const data = await this.git.run({ cwd: repoPath, errors: 'ignore', stdin: `${shas.join('\n')}\n`, encoding: 'buffer' }, 'cat-file', '--batch');
1174
- parseCatFileBatchForSshSigners(data.stdout, new Set(shas), result);
1175
- }
1176
- catch (ex) {
1177
- scope?.error(ex);
1178
- }
1179
- return result;
1180
- }
1181
- }
1182
- __decorate([
1183
- debug()
1184
- ], CommitsGitSubProvider.prototype, "createUnreachableCommitFromTree", null);
1185
- __decorate([
1186
- debug()
1187
- ], CommitsGitSubProvider.prototype, "getCommit", null);
1188
- __decorate([
1189
- debug({ exit: true })
1190
- ], CommitsGitSubProvider.prototype, "getCommitCount", null);
1191
- __decorate([
1192
- debug({ exit: true })
1193
- ], CommitsGitSubProvider.prototype, "hasUnpublishedCommits", null);
1194
- __decorate([
1195
- debug({
1196
- args: (repoPath, shas) => ({ repoPath: repoPath, shas: `${shas.length} value(s)` }),
1197
- exit: r => `${r.size} unpublished`,
1198
- })
1199
- ], CommitsGitSubProvider.prototype, "filterUnpublishedShas", null);
1200
- __decorate([
1201
- debug({ exit: true })
1202
- ], CommitsGitSubProvider.prototype, "getCommitDates", null);
1203
- __decorate([
1204
- debug()
1205
- ], CommitsGitSubProvider.prototype, "getCommitFiles", null);
1206
- __decorate([
1207
- debug()
1208
- ], CommitsGitSubProvider.prototype, "getCommitForFile", null);
1209
- __decorate([
1210
- debug()
1211
- ], CommitsGitSubProvider.prototype, "getCommitReachability", null);
1212
- __decorate([
1213
- debug()
1214
- ], CommitsGitSubProvider.prototype, "getIncomingActivity", null);
1215
- __decorate([
1216
- debug({ exit: true })
1217
- ], CommitsGitSubProvider.prototype, "getInitialCommitSha", null);
1218
- __decorate([
1219
- debug()
1220
- ], CommitsGitSubProvider.prototype, "getLeftRightCommitCount", null);
1221
- __decorate([
1222
- debug()
1223
- ], CommitsGitSubProvider.prototype, "getLog", null);
1224
- __decorate([
1225
- trace({ args: (repoPath, rev) => ({ repoPath: repoPath, rev: rev }), exit: true })
1226
- ], CommitsGitSubProvider.prototype, "getLogCore", null);
1227
- __decorate([
1228
- debug()
1229
- ], CommitsGitSubProvider.prototype, "getLogForPath", null);
1230
- __decorate([
1231
- debug()
1232
- ], CommitsGitSubProvider.prototype, "getLogShas", null);
1233
- __decorate([
1234
- debug()
1235
- ], CommitsGitSubProvider.prototype, "getOldestUnpushedShaForPath", null);
1236
- __decorate([
1237
- debug()
1238
- ], CommitsGitSubProvider.prototype, "hasCommitBeenPushed", null);
1239
- __decorate([
1240
- debug()
1241
- ], CommitsGitSubProvider.prototype, "isAncestorOf", null);
1242
- __decorate([
1243
- debug({
1244
- args: (repoPath, s) => ({
1245
- repoPath: repoPath,
1246
- search: `[${s.matchAll ? 'A' : ''}${s.matchCase ? 'C' : ''}${s.matchRegex ? 'R' : ''}${s.matchWholeWord ? 'W' : ''}]: ${s.query.length > 500 ? `${s.query.substring(0, 500)}...` : s.query}`,
1247
- }),
1248
- })
1249
- ], CommitsGitSubProvider.prototype, "searchCommits", null);
1250
- __decorate([
1251
- debug()
1252
- ], CommitsGitSubProvider.prototype, "getCommitSignature", null);
1253
- __decorate([
1254
- debug()
1255
- ], CommitsGitSubProvider.prototype, "isCommitSigned", null);
1256
- __decorate([
1257
- debug()
1258
- ], CommitsGitSubProvider.prototype, "getCommitsSshSigners", null);
32
+ var CommitsGitSubProvider = class {
33
+ context;
34
+ git;
35
+ cache;
36
+ provider;
37
+ constructor(context, git, cache, provider) {
38
+ this.context = context;
39
+ this.git = git;
40
+ this.cache = cache;
41
+ this.provider = provider;
42
+ }
43
+ async createUnreachableCommitFromTree(repoPath, tree, parent, message, cancellation) {
44
+ return (await this.git.run({
45
+ cwd: repoPath,
46
+ cancellation,
47
+ errors: "throw"
48
+ }, "commit-tree", tree, "-p", parent, "-m", message)).stdout.trim();
49
+ }
50
+ async getCommit(repoPath, rev, cancellation) {
51
+ if (isUncommitted(rev, true)) return createUncommittedChangesCommit(repoPath, rev, /* @__PURE__ */ new Date(), await this.provider.config.getCurrentUser(repoPath));
52
+ const log = await this.getLogCore(repoPath, rev, { limit: 1 }, cancellation);
53
+ if (log == null) return void 0;
54
+ return log.commits.get(rev) ?? first(log.commits.values());
55
+ }
56
+ getCommitCount(repoPath, rev, cancellation) {
57
+ return this.cache.commitCount.getOrCreate(repoPath, rev, async (cacheable, signal) => {
58
+ const result = await this.git.run({
59
+ cwd: repoPath,
60
+ cancellation: signal ?? cancellation,
61
+ errors: "ignore"
62
+ }, "rev-list", "--count", rev, "--");
63
+ if (result.completion.status === "cancelled" || signal?.aborted) throw new CancellationError();
64
+ if (result.completion.status !== "exited" || result.exitCode !== 0) {
65
+ cacheable.invalidate();
66
+ return;
67
+ }
68
+ const data = result.stdout.trim();
69
+ if (!data) return void 0;
70
+ const count = parseInt(data, 10);
71
+ return isNaN(count) ? void 0 : count;
72
+ }, { cancellation });
73
+ }
74
+ async hasUnpublishedCommits(repoPath, rev, cancellation) {
75
+ const result = await this.git.run({
76
+ cwd: repoPath,
77
+ cancellation,
78
+ errors: "ignore"
79
+ }, "rev-list", "--max-count=1", rev, "--not", "--remotes", "--");
80
+ if (result.completion.status === "cancelled" || cancellation?.aborted) throw new CancellationError();
81
+ return result.stdout.trim().length > 0;
82
+ }
83
+ async filterUnpublishedShas(repoPath, shas, options, cancellation) {
84
+ const unpublished = /* @__PURE__ */ new Set();
85
+ if (!shas.length) return unpublished;
86
+ for (const chunk$1 of chunk([...shas], maxShasPerRevListSpawn)) {
87
+ const result = await this.git.run({
88
+ cwd: repoPath,
89
+ cancellation,
90
+ ...options?.priority != null ? { priority: options.priority } : void 0
91
+ }, "rev-list", ...chunk$1, "--not", "--remotes", "--");
92
+ if (result.completion.status !== "exited") throw result.completion.error;
93
+ if (cancellation?.aborted) throw new CancellationError();
94
+ const candidates = new Set(chunk$1);
95
+ for (const line of iterateByDelimiter(result.stdout, "\n")) {
96
+ const sha = line.trim();
97
+ if (sha.length && candidates.has(sha)) unpublished.add(sha);
98
+ }
99
+ }
100
+ return unpublished;
101
+ }
102
+ async getCommitDates(repoPath, rev, cancellation) {
103
+ const parser = getShaAndDatesLogParser();
104
+ const result = await this.git.run({
105
+ cwd: repoPath,
106
+ cancellation,
107
+ errors: "ignore",
108
+ caching: {
109
+ cache: this.cache.gitResults,
110
+ options: { accessTTL: isSha(rev) ? 3e5 : 6e4 }
111
+ }
112
+ }, "log", "-1", ...parser.arguments, rev);
113
+ if (result.completion.status === "cancelled" || cancellation?.aborted) return void 0;
114
+ for (const entry of parser.parse(result.stdout)) {
115
+ const authorSeconds = Number(entry.authorDate);
116
+ const committerSeconds = Number(entry.committerDate);
117
+ if (!Number.isFinite(authorSeconds) || !Number.isFinite(committerSeconds)) return void 0;
118
+ return {
119
+ authorDate: /* @__PURE__ */ new Date(authorSeconds * 1e3),
120
+ committerDate: /* @__PURE__ */ new Date(committerSeconds * 1e3)
121
+ };
122
+ }
123
+ }
124
+ async getCommitFiles(repoPath, rev, cancellation) {
125
+ const parser = getShaAndFilesAndStatsLogParser();
126
+ const result = await this.git.run({
127
+ cwd: repoPath,
128
+ cancellation,
129
+ configs: gitConfigsLog
130
+ }, "log", ...parser.arguments, "-n1", rev && !isUncommittedStaged(rev) ? rev : void 0, "--");
131
+ const repoUri = fileUri(normalizePath(repoPath));
132
+ return first(parser.parse(result.stdout))?.files.map((f) => new GitFileChange(repoPath, f.path, f.status, joinUriPath(repoUri, normalizePath(f.path)), f.originalPath, f.originalPath != null ? joinUriPath(repoUri, normalizePath(f.originalPath)) : void 0, void 0, {
133
+ additions: f.additions,
134
+ deletions: f.deletions,
135
+ changes: 0
136
+ }, void 0, void 0, f.mode, f.oid ? {
137
+ oid: f.oid,
138
+ previousOid: f.previousOid
139
+ } : void 0)) ?? [];
140
+ }
141
+ async getCommitForFile(repoPath, pathOrUri, rev, options, cancellation) {
142
+ const scope = getScopedLogger();
143
+ const [relativePath, root] = splitPath(toFsPath(pathOrUri), repoPath);
144
+ try {
145
+ const log = await this.getLogForPath(root, relativePath, rev, { limit: 1 }, cancellation);
146
+ if (log == null) return void 0;
147
+ let commit;
148
+ if (rev) {
149
+ commit = log.commits.get(rev);
150
+ if (commit == null && !options?.firstIfNotFound) {
151
+ if (isSha(rev) || isUncommitted(rev)) return void 0;
152
+ }
153
+ }
154
+ return commit ?? first(log.commits.values());
155
+ } catch (ex) {
156
+ scope?.error(ex);
157
+ if (isCancellationError(ex)) throw ex;
158
+ return;
159
+ }
160
+ }
161
+ getCommitReachability(repoPath, rev, cancellation) {
162
+ if (repoPath == null || isUncommitted(rev)) return Promise.resolve(void 0);
163
+ const scope = getScopedLogger();
164
+ const getCore = async (cacheable) => {
165
+ try {
166
+ const result = await this.git.run({
167
+ cwd: repoPath,
168
+ cancellation,
169
+ errors: "ignore"
170
+ }, "for-each-ref", "--contains", rev, "--format=%(HEAD)%(refname)", "--sort=-version:refname", "--sort=-committerdate", "--sort=-HEAD", "refs/heads/", "refs/remotes/", "refs/tags/");
171
+ if (cancellation?.aborted) throw new CancellationError();
172
+ const refs = [];
173
+ if (result?.stdout) {
174
+ const lines = result.stdout.split("\n");
175
+ for (let line of lines) {
176
+ line = line.trim();
177
+ if (!line) continue;
178
+ const isCurrent = line.startsWith("*");
179
+ const refname = isCurrent ? line.substring(1) : line;
180
+ if (refname.endsWith("/HEAD")) continue;
181
+ if (refname.startsWith("refs/heads/")) {
182
+ const name = refname.substring(11);
183
+ refs.push({
184
+ refType: "branch",
185
+ name,
186
+ remote: false,
187
+ current: isCurrent
188
+ });
189
+ } else if (refname.startsWith("refs/remotes/")) refs.push({
190
+ refType: "branch",
191
+ name: refname.substring(13),
192
+ remote: true
193
+ });
194
+ else if (refname.startsWith("refs/tags/")) refs.push({
195
+ refType: "tag",
196
+ name: refname.substring(10)
197
+ });
198
+ }
199
+ }
200
+ refs.sort(compareReachableRefs);
201
+ return { refs };
202
+ } catch (ex) {
203
+ cacheable?.invalidate();
204
+ if (isCancellationError(ex)) throw ex;
205
+ debugger;
206
+ scope?.error(ex);
207
+ return;
208
+ }
209
+ };
210
+ return this.cache.reachability.getOrCreate(repoPath, rev, getCore);
211
+ }
212
+ async getIncomingActivity(repoPath, options, cancellation) {
213
+ const scope = getScopedLogger();
214
+ const cfg = this.context.config;
215
+ const parser = getReflogParser();
216
+ const args = [
217
+ "--walk-reflogs",
218
+ ...parser.arguments,
219
+ "--date=iso8601"
220
+ ];
221
+ const ordering = options?.ordering ?? cfg?.commits.ordering;
222
+ if (ordering) args.push(`--${ordering}-order`);
223
+ if (options?.all) args.push("--all");
224
+ const limit = (options?.limit ?? cfg?.commits.maxItems ?? 0) * 100;
225
+ if (limit) args.push(`-n${limit}`);
226
+ if (options?.skip) args.push(`--skip=${options.skip}`);
227
+ try {
228
+ const result = await this.git.run({
229
+ cwd: repoPath,
230
+ cancellation,
231
+ configs: gitConfigsLog,
232
+ priority: "background"
233
+ }, "log", ...args);
234
+ const reflog = parseGitRefLog(parser, result.stdout, repoPath, reflogCommands, limit, limit * 100);
235
+ if (reflog?.hasMore) reflog.more = this.getReflogMoreFn(reflog, options);
236
+ return reflog;
237
+ } catch (ex) {
238
+ scope?.error(ex);
239
+ if (isCancellationError(ex)) throw ex;
240
+ return;
241
+ }
242
+ }
243
+ getReflogMoreFn(reflog, options) {
244
+ return async (limit) => {
245
+ limit = limit ?? 0;
246
+ const moreLog = await this.getIncomingActivity(reflog.repoPath, {
247
+ ...options,
248
+ limit,
249
+ skip: reflog.total
250
+ });
251
+ if (moreLog == null) return {
252
+ ...reflog,
253
+ hasMore: false,
254
+ more: void 0
255
+ };
256
+ const mergedLog = {
257
+ repoPath: reflog.repoPath,
258
+ records: [...reflog.records, ...moreLog.records],
259
+ count: reflog.count + moreLog.count,
260
+ total: reflog.total + moreLog.total,
261
+ limit: (reflog.limit ?? 0) + limit,
262
+ hasMore: moreLog.hasMore
263
+ };
264
+ if (mergedLog.hasMore) mergedLog.more = this.getReflogMoreFn(mergedLog, options);
265
+ return mergedLog;
266
+ };
267
+ }
268
+ getInitialCommitSha(repoPath, cancellation) {
269
+ return this.cache.getInitialCommitSha(repoPath, async (commonPath) => {
270
+ try {
271
+ const result = await this.git.run({
272
+ cwd: commonPath,
273
+ cancellation,
274
+ errors: "ignore"
275
+ }, "rev-list", `--max-parents=0`, "HEAD", "--");
276
+ if (result.completion.status === "cancelled" || cancellation?.aborted) throw new CancellationError();
277
+ return result.stdout.trim().split("\n")?.[0];
278
+ } catch (ex) {
279
+ if (isCancellationError(ex)) throw ex;
280
+ return;
281
+ }
282
+ });
283
+ }
284
+ async getLeftRightCommitCount(repoPath, range, options, cancellation) {
285
+ const authors = options?.authors?.length ? options.authors.map((a) => `--author=^${escapeRegex(a.name ?? "")} <${escapeRegex(a.email ?? "")}>$`) : [];
286
+ const run = async () => {
287
+ const result = await this.git.run({
288
+ cwd: repoPath,
289
+ cancellation,
290
+ errors: "ignore"
291
+ }, "rev-list", "--left-right", "--count", ...authors, options?.excludeMerges ? "--no-merges" : void 0, range, "--");
292
+ if (result.completion.status === "cancelled" || cancellation?.aborted) throw new CancellationError();
293
+ if (!result.stdout) return void 0;
294
+ const parts = result.stdout.split(" ");
295
+ if (parts.length !== 2) return void 0;
296
+ const [left, right] = parts;
297
+ const counts = {
298
+ left: parseInt(left, 10),
299
+ right: parseInt(right, 10)
300
+ };
301
+ if (isNaN(counts.left) || isNaN(counts.right)) return void 0;
302
+ return counts;
303
+ };
304
+ if (authors.length > 0) return run();
305
+ const cacheKey = `${range}\x1f${options?.excludeMerges ? "no-merges" : ""}`;
306
+ return this.cache.leftRightCommitCount.getOrCreate(repoPath, cacheKey, run);
307
+ }
308
+ async getLog(repoPath, rev, options, cancellation) {
309
+ return this.getLogCore(repoPath, rev, options, cancellation);
310
+ }
311
+ async getLogCore(repoPath, rev, options, cancellation, additionalArgs) {
312
+ const scope = getScopedLogger();
313
+ try {
314
+ const currentUserPromise = this.provider.config.getCurrentUser(repoPath);
315
+ const cfg = this.context.config;
316
+ const limit = options?.limit ?? cfg?.commits.maxItems ?? 0;
317
+ const isSingleCommit = limit === 1;
318
+ const includeFiles = (options?.includeFiles ?? cfg?.commits.includeFileDetails?.(repoPath) ?? true) || isSingleCommit || Boolean(options?.path?.pathspec);
319
+ const parser = getCommitsLogParser(includeFiles, Boolean(options?.path?.pathspec && options?.path?.range));
320
+ const args = ["log", ...parser.arguments];
321
+ const similarityThreshold = options?.similarityThreshold ?? cfg?.commits.similarityThreshold;
322
+ args.push(`-M${similarityThreshold == null ? "" : `${similarityThreshold}%`}`, "--use-mailmap");
323
+ if (options?.all) {
324
+ args.push("--all");
325
+ if (options?.path?.pathspec) args.push("--single-worktree");
326
+ }
327
+ const merges = options?.merges ?? true;
328
+ if (merges) {
329
+ if (isSingleCommit) args.push("-m");
330
+ args.push(merges === "first-parent" ? "--first-parent" : "--no-min-parents");
331
+ } else args.push("--no-merges");
332
+ const ordering = options?.ordering ?? cfg?.commits.ordering;
333
+ if (ordering) args.push(`--${ordering}-order`);
334
+ if (options?.authors?.length) args.push(...options.authors.map((a) => `--author=^${escapeRegex(a.name ?? "")} <${escapeRegex(a.email ?? "")}>$`));
335
+ let overrideHasMore;
336
+ if (options?.since) {
337
+ overrideHasMore = true;
338
+ args.push(`--since="${options.since}"`);
339
+ }
340
+ if (options?.until) {
341
+ overrideHasMore = true;
342
+ args.push(`--until="${options.until}"`);
343
+ }
344
+ if (additionalArgs?.length) args.push(...additionalArgs);
345
+ if (limit > 0) {
346
+ overrideHasMore = isSingleCommit ? false : void 0;
347
+ args.push(`-n${isSingleCommit ? 1 : limit + 1}`);
348
+ }
349
+ let stashes;
350
+ if (!isSingleCommit && options?.stashes) {
351
+ stashes = typeof options.stashes === "boolean" ? (await this.provider.stash?.getStash(repoPath, { reachableFrom: rev }, cancellation))?.stashes : options.stashes;
352
+ if (stashes?.size) rev ??= "HEAD";
353
+ }
354
+ if (rev && !isUncommittedStaged(rev)) args.push(rev);
355
+ let pathspec;
356
+ let pathspecRange;
357
+ if (options?.path?.pathspec) {
358
+ pathspec = options.path.pathspec;
359
+ const { filters, range, renames } = options.path;
360
+ if (filters?.length) args.push(`--diff-filter=${filters.join("")}`);
361
+ if (range != null) {
362
+ const [start, end] = getGitStartEnd(range);
363
+ pathspecRange = `${start},${end}`;
364
+ args.push(`-L ${pathspecRange}:${pathspec}`, "--");
365
+ } else {
366
+ if (renames !== false) args.push("--follow");
367
+ args.push("--", pathspec);
368
+ }
369
+ } else args.push("--");
370
+ const currentUser = await currentUserPromise.catch(() => void 0);
371
+ if (cancellation?.aborted) throw new CancellationError();
372
+ const isEagerPagedFileLog = includeFiles && !isSingleCommit && !options?.path?.pathspec;
373
+ const cmdOpts = {
374
+ cwd: repoPath,
375
+ cancellation,
376
+ configs: gitConfigsLogWithFiles,
377
+ ...isSingleCommit && rev ? { caching: {
378
+ cache: this.cache.gitResults,
379
+ options: { accessTTL: isSha(rev) ? 3e5 : 6e4 }
380
+ } } : void 0,
381
+ ...isEagerPagedFileLog ? { slownessCategory: "commitFiles" } : void 0
382
+ };
383
+ let { commits, count } = await parseCommits(parser, isSingleCommit ? this.git.run(cmdOpts, ...args) : this.git.stream(cmdOpts, ...args), repoPath, pathspec, limit, void 0, currentUser);
384
+ if (rev == null && pathspec && !commits.size) {
385
+ const status = await this.provider.status?.getStatusForFile?.(repoPath, pathspec, void 0, cancellation);
386
+ if (status?.originalPath != null) {
387
+ pathspec = status.originalPath;
388
+ if (pathspecRange) {
389
+ const index = args.findIndex((a) => a.startsWith("-L "));
390
+ args.splice(index, 1, `-L ${pathspecRange}:${pathspec}`);
391
+ } else args.splice(args.length - 1, 1, pathspec);
392
+ ({commits, count} = await parseCommits(parser, isSingleCommit ? this.git.run(cmdOpts, ...args) : this.git.stream(cmdOpts, ...args), repoPath, pathspec, limit, void 0, currentUser));
393
+ }
394
+ }
395
+ if (stashes?.size) {
396
+ const stashesByParent = /* @__PURE__ */ new Map();
397
+ for (const stash of stashes.values()) {
398
+ const parentSha = stash.parents[0];
399
+ if (parentSha == null || !commits.has(parentSha)) continue;
400
+ const group = stashesByParent.get(parentSha);
401
+ if (group != null) group.push(stash);
402
+ else stashesByParent.set(parentSha, [stash]);
403
+ }
404
+ if (stashesByParent.size) {
405
+ const cap = limit > 0 ? limit + 1 : Number.POSITIVE_INFINITY;
406
+ const merged = /* @__PURE__ */ new Map();
407
+ outer: for (const c of commits.values()) {
408
+ const group = stashesByParent.get(c.sha);
409
+ if (group != null) for (const s of group) {
410
+ if (merged.size >= cap) break outer;
411
+ merged.set(s.sha, s);
412
+ }
413
+ if (merged.size >= cap) break;
414
+ merged.set(c.sha, c);
415
+ }
416
+ commits = merged;
417
+ }
418
+ }
419
+ const log = {
420
+ repoPath,
421
+ commits,
422
+ sha: isRevisionRange(rev) ? void 0 : rev,
423
+ count: commits.size,
424
+ limit,
425
+ hasMore: overrideHasMore ?? (limit > 0 && count > limit)
426
+ };
427
+ if (!isSingleCommit) {
428
+ log.query = (limit) => this.getLogCore(repoPath, rev, {
429
+ ...options,
430
+ limit
431
+ }, void 0, additionalArgs);
432
+ if (log.hasMore) log.more = this.getLogCoreMoreFn(log, rev, options);
433
+ }
434
+ return log;
435
+ } catch (ex) {
436
+ if (isCancellationError(ex)) throw ex;
437
+ const pathspec = options?.path?.pathspec;
438
+ if (rev && pathspec && ex instanceof Error && GitErrors.badObject.test(ex.message)) {
439
+ if ((await this.provider.revision.getTreeEntryForRevision(repoPath, pathspec, "HEAD"))?.type === "commit") return this.getLogCore(repoPath, void 0, {
440
+ ...options,
441
+ path: {
442
+ ...options.path,
443
+ pathspec,
444
+ renames: false
445
+ }
446
+ }, cancellation, additionalArgs);
447
+ }
448
+ scope?.error(ex);
449
+ debugger;
450
+ return;
451
+ }
452
+ }
453
+ getLogCoreMoreFn(log, rev, options) {
454
+ return async (limit) => {
455
+ const moreUntil = limit != null && typeof limit === "object" ? limit.until : void 0;
456
+ let moreLimit = typeof limit === "number" ? limit : void 0;
457
+ if (moreUntil && some(log.commits.values(), (c) => c.ref === moreUntil)) return log;
458
+ moreLimit = moreLimit ?? 0;
459
+ if (isRevisionRange(log.sha)) {
460
+ const moreLog = await this.getLogCore(log.repoPath, rev, {
461
+ ...options,
462
+ limit: moreLimit === 0 ? 0 : (options?.limit ?? 0) + moreLimit
463
+ });
464
+ if (moreLog == null) return {
465
+ ...log,
466
+ hasMore: false,
467
+ more: void 0
468
+ };
469
+ return moreLog;
470
+ }
471
+ const lastCommit = findLast(log.commits.values(), (c) => !GitCommit.isStash(c)) ?? last(log.commits.values());
472
+ const sha = lastCommit?.ref;
473
+ const lastCommitFile = lastCommit?.anyFiles?.[0];
474
+ if (options?.path?.pathspec && lastCommitFile != null) {
475
+ const path = lastCommitFile.originalPath ?? lastCommitFile.path;
476
+ if (path !== options.path.pathspec) options = {
477
+ ...options,
478
+ path: {
479
+ ...options.path,
480
+ pathspec: path
481
+ }
482
+ };
483
+ }
484
+ let timestamp;
485
+ if (options?.all) {
486
+ const date = lastCommit?.committer.date;
487
+ timestamp = date != null ? Math.ceil(date.getTime() / 1e3) + 1 : void 0;
488
+ }
489
+ let moreLogCount;
490
+ let queryLimit = moreUntil == null ? moreLimit : 0;
491
+ do {
492
+ const moreLog = await this.getLogCore(log.repoPath, timestamp ? rev : moreUntil == null ? `${sha}^` : `${moreUntil}^..${sha}^`, {
493
+ ...options,
494
+ limit: queryLimit,
495
+ ...timestamp ? { until: timestamp } : void 0
496
+ }, void 0, timestamp ? ["--boundary"] : void 0);
497
+ if (moreLog == null) return {
498
+ ...log,
499
+ hasMore: false,
500
+ more: void 0
501
+ };
502
+ const currentCount = log.commits.size;
503
+ const commits = new Map([...log.commits, ...moreLog.commits]);
504
+ if (currentCount === commits.size && queryLimit !== 0) {
505
+ if (moreLogCount === moreLog.commits.size) return {
506
+ ...log,
507
+ hasMore: false,
508
+ more: void 0
509
+ };
510
+ moreLogCount = moreLog.commits.size;
511
+ queryLimit = queryLimit * 2;
512
+ continue;
513
+ }
514
+ if (timestamp != null && sha != null && !moreLog.commits.has(sha)) debugger;
515
+ const mergedLog = {
516
+ repoPath: log.repoPath,
517
+ commits,
518
+ sha: log.sha,
519
+ count: commits.size,
520
+ limit: moreUntil == null ? (log.limit ?? 0) + moreLimit : void 0,
521
+ hasMore: moreUntil == null ? moreLog.hasMore : true,
522
+ startingCursor: sha,
523
+ endingCursor: moreLog.endingCursor,
524
+ pagedCommits: () => {
525
+ for (const sha of log.commits.keys()) moreLog.commits.delete(sha);
526
+ return moreLog.commits;
527
+ },
528
+ query: (limit) => this.getLogCore(log.repoPath, rev, {
529
+ ...options,
530
+ limit
531
+ })
532
+ };
533
+ if (mergedLog.hasMore) mergedLog.more = this.getLogCoreMoreFn(mergedLog, rev, options);
534
+ return mergedLog;
535
+ } while (true);
536
+ };
537
+ }
538
+ async getLogForPath(repoPath, pathOrUri, rev, options, cancellation) {
539
+ if (repoPath == null) return void 0;
540
+ const scope = getScopedLogger();
541
+ let relativePath = this.provider.getRelativePath(pathOrUri, repoPath);
542
+ if (repoPath != null && repoPath === relativePath) throw new Error(`Path cannot match the repository path; path=${relativePath}`);
543
+ const cfg = this.context.config;
544
+ options = {
545
+ ...options,
546
+ all: options?.all ?? cfg?.fileHistory?.showAllBranches,
547
+ limit: options?.limit ?? cfg?.commits.maxItems ?? 0,
548
+ merges: options?.merges ?? cfg?.fileHistory?.showMergeCommits,
549
+ ordering: options?.ordering ?? cfg?.commits.ordering ?? void 0,
550
+ renames: options?.renames ?? cfg?.fileHistory?.followRenames,
551
+ similarityThreshold: options?.similarityThreshold ?? cfg?.commits.similarityThreshold
552
+ };
553
+ if (isFolderGlob(relativePath)) {
554
+ relativePath = stripFolderGlob(relativePath);
555
+ options.isFolder = true;
556
+ } else if (options.isFolder == null) {
557
+ const tree = await this.provider.revision.getTreeEntryForRevision(repoPath, relativePath, rev || "HEAD");
558
+ if (cancellation?.aborted) throw new CancellationError();
559
+ if (tree?.type === "commit") {
560
+ options.range = void 0;
561
+ options.renames = false;
562
+ } else options.isFolder = tree?.type === "tree";
563
+ }
564
+ let cacheKey;
565
+ if (!options.isFolder && options.authors == null && options.cursor == null && options.filters == null && options.range == null && options.since == null && options.until == null) {
566
+ let suffix = "log";
567
+ if (rev != null) suffix += `:${rev}`;
568
+ if (options.all) suffix += ":all";
569
+ if (options.limit) suffix += `:n${options.limit}`;
570
+ if (options.merges) suffix += `:merges=${options.merges}`;
571
+ if (options.ordering) suffix += `:ordering=${options.ordering}`;
572
+ if (options.renames) suffix += ":follow";
573
+ cacheKey = `${normalizePath(relativePath)}:${suffix}`;
574
+ }
575
+ if (cacheKey != null) {
576
+ const cached = this.cache.fileLog.get(repoPath, cacheKey);
577
+ if (cached != null) {
578
+ scope?.trace(`Cache hit: '${cacheKey}'`);
579
+ return cached;
580
+ }
581
+ if (rev != null || options.limit != null && options.limit !== 0) {
582
+ const baseKey = `${normalizePath(relativePath)}:log${options.renames ? ":follow" : ""}`;
583
+ const baseLog = this.cache.fileLog.get(repoPath, baseKey);
584
+ if (baseLog != null) {
585
+ if (rev == null) {
586
+ scope?.trace(`Cache hit: ~'${cacheKey}'`);
587
+ return baseLog;
588
+ }
589
+ scope?.trace(`Cache ?: '${cacheKey}'`);
590
+ const log = await baseLog;
591
+ if (log != null && !log.hasMore && log.commits.has(rev)) {
592
+ scope?.trace(`Cache hit: '${cacheKey}'`);
593
+ let skip = true;
594
+ let i = 0;
595
+ const limit = options.limit;
596
+ const commits = new Map(filterMap(log.commits.entries(), ([sha, c]) => {
597
+ if (skip) {
598
+ if (sha !== rev) return void 0;
599
+ skip = false;
600
+ }
601
+ i++;
602
+ if (limit != null && i > limit) return;
603
+ return [sha, c];
604
+ }));
605
+ const optsCopy = { ...options };
606
+ return {
607
+ ...log,
608
+ limit: optsCopy.limit,
609
+ count: commits.size,
610
+ commits,
611
+ query: (limit) => this.getLogForPath(repoPath, pathOrUri, rev, {
612
+ ...optsCopy,
613
+ limit
614
+ })
615
+ };
616
+ }
617
+ }
618
+ }
619
+ scope?.trace(`Cache miss: '${cacheKey}'`);
620
+ return this.cache.fileLog.getOrCreate(repoPath, cacheKey, (_cacheable, signal) => this.getLogForPathCore(repoPath, relativePath, rev, options, signal), { cancellation });
621
+ }
622
+ return this.getLogForPathCore(repoPath, relativePath, rev, options, cancellation);
623
+ }
624
+ async getLogForPathCore(repoPath, path, rev, options, cancellation) {
625
+ const scope = getScopedLogger();
626
+ const tracked = await this.provider.isTrackedWithDetails(path, repoPath, rev);
627
+ if (cancellation?.aborted) throw new CancellationError();
628
+ if (tracked == null) {
629
+ scope?.debug(`Skipping log; '${path}' is not tracked`);
630
+ return emptyPromise;
631
+ }
632
+ const relativePath = tracked.path;
633
+ const root = repoPath;
634
+ return await this.getLogCore(root, rev, {
635
+ all: options.all,
636
+ authors: options.authors,
637
+ cursor: options.cursor,
638
+ limit: options.limit,
639
+ merges: options.merges,
640
+ ordering: options.ordering,
641
+ since: options.since,
642
+ until: options.until,
643
+ path: {
644
+ pathspec: relativePath,
645
+ filters: options.filters,
646
+ range: options.range,
647
+ renames: options.renames
648
+ }
649
+ }, cancellation);
650
+ }
651
+ async getLogShas(repoPath, rev, options, cancellation) {
652
+ const scope = getScopedLogger();
653
+ const cfg = this.context.config;
654
+ options ??= {};
655
+ options.limit ??= cfg?.commits.maxItems ?? 0;
656
+ options.ordering ??= cfg?.commits.ordering ?? void 0;
657
+ options.similarityThreshold ??= cfg?.commits.similarityThreshold;
658
+ options.merges ??= true;
659
+ const getCore = async () => {
660
+ try {
661
+ const parser = getShaLogParser();
662
+ const args = [...parser.arguments];
663
+ if (options.all) args.push(`--all`);
664
+ if (options.ordering) args.push(`--${options.ordering}-order`);
665
+ if (options.limit) args.push(`-n${options.limit}`);
666
+ if (options.since) args.push(`--since="${options.since}"`);
667
+ if (options.merges) args.push(options.merges === "first-parent" ? "--first-parent" : "--no-min-parents");
668
+ else args.push("--no-merges");
669
+ if (options.reverse) args.push("--reverse");
670
+ if (options.authors?.length) {
671
+ if (!args.includes("--use-mailmap")) args.push("--use-mailmap");
672
+ args.push(...options.authors.map((a) => `--author=^${escapeRegex(a.name ?? "")} <${escapeRegex(a.email ?? "")}>$`));
673
+ }
674
+ const pathspec = options.pathOrUri != null ? this.provider.getRelativePath(options.pathOrUri, repoPath) : void 0;
675
+ if (pathspec) {
676
+ const similarityThreshold = options.similarityThreshold;
677
+ args.push(`-M${similarityThreshold == null ? "" : `${similarityThreshold}%`}`);
678
+ }
679
+ if (rev && !isUncommittedStaged(rev)) args.push(rev);
680
+ args.push("--");
681
+ if (pathspec) args.push(pathspec);
682
+ const result = await this.git.run({
683
+ cwd: repoPath,
684
+ cancellation,
685
+ configs: gitConfigsLog
686
+ }, "log", ...args);
687
+ return [...parser.parse(result.stdout)];
688
+ } catch (ex) {
689
+ scope?.error(ex);
690
+ if (isCancellationError(ex)) throw ex;
691
+ debugger;
692
+ return [];
693
+ }
694
+ };
695
+ if (!options.pathOrUri && !options.authors?.length && !options.reverse && !options.all) return this.cache.logShas.getOrCreate(repoPath, `${rev ?? ""}:${options.ordering ?? ""}:${options.limit}:${options.merges}:${options.since ?? ""}`, () => getCore());
696
+ return getCore();
697
+ }
698
+ async getOldestUnpushedShaForPath(repoPath, pathOrUri, cancellation) {
699
+ const scope = getScopedLogger();
700
+ try {
701
+ const relativePath = this.provider.getRelativePath(pathOrUri, repoPath);
702
+ const parser = getShaLogParser();
703
+ const result = await this.git.run({
704
+ cwd: repoPath,
705
+ cancellation,
706
+ configs: gitConfigsLog
707
+ }, "log", ...parser.arguments, "--follow", "--reverse", "@{u}..", "--", relativePath);
708
+ return first(parser.parse(result.stdout));
709
+ } catch (ex) {
710
+ scope?.error(ex);
711
+ if (isCancellationError(ex)) throw ex;
712
+ debugger;
713
+ return;
714
+ }
715
+ }
716
+ async hasCommitBeenPushed(repoPath, rev, cancellation) {
717
+ if (repoPath == null) return false;
718
+ return this.isAncestorOf(repoPath, rev, "@{u}", cancellation);
719
+ }
720
+ async isAncestorOf(repoPath, rev1, rev2, cancellation) {
721
+ if (repoPath == null) return false;
722
+ const result = await this.git.run({
723
+ cwd: repoPath,
724
+ cancellation,
725
+ errors: "ignore"
726
+ }, "merge-base", "--is-ancestor", rev1, rev2);
727
+ if (cancellation?.aborted) throw new CancellationError();
728
+ return result.exitCode === 0;
729
+ }
730
+ async searchCommits(repoPath, search, options, cancellation) {
731
+ const scope = getScopedLogger();
732
+ search = {
733
+ matchAll: false,
734
+ matchCase: false,
735
+ matchRegex: true,
736
+ matchWholeWord: false,
737
+ ...search
738
+ };
739
+ if (search.naturalLanguage && (typeof search.naturalLanguage !== "object" || !search.naturalLanguage.processedQuery)) search = await this.context.searchQuery?.preprocessQuery?.(search, options?.source) ?? search;
740
+ if (typeof search.naturalLanguage === "object" && search.naturalLanguage.error) return {
741
+ search,
742
+ log: void 0
743
+ };
744
+ try {
745
+ const cfg = this.context.config;
746
+ const currentUser = await this.provider.config.getCurrentUser(repoPath);
747
+ if (cancellation?.aborted) throw new CancellationError();
748
+ const parser = getCommitsLogParser(true);
749
+ const similarityThreshold = options?.similarityThreshold ?? cfg?.commits.similarityThreshold;
750
+ const args = [
751
+ "log",
752
+ ...parser.arguments,
753
+ `-M${similarityThreshold == null ? "" : `${similarityThreshold}%`}`,
754
+ "--use-mailmap"
755
+ ];
756
+ const { args: searchArgs, files, shas, filters } = parseSearchQueryGitCommand(search, currentUser);
757
+ const mergesOnly = searchArgs.includes("--merges");
758
+ let stashes;
759
+ let stdin;
760
+ let resolvedShas;
761
+ if (shas?.size) {
762
+ resolvedShas = await this.provider.revision.resolveShas(repoPath, shas, cancellation);
763
+ if (cancellation?.aborted) throw new CancellationError();
764
+ if (!resolvedShas.size) return {
765
+ search,
766
+ log: {
767
+ repoPath,
768
+ commits: /* @__PURE__ */ new Map(),
769
+ sha: void 0,
770
+ searchFilters: filters,
771
+ count: 0,
772
+ limit: options?.limit ?? cfg?.search?.maxItems ?? 0,
773
+ hasMore: false
774
+ }
775
+ };
776
+ }
777
+ if (resolvedShas?.size) {
778
+ stdin = join(resolvedShas, "\n");
779
+ args.push("--no-walk");
780
+ } else if (!filters.refs) {
781
+ const converted = convertStashesToStdin(await this.provider.stash?.getStash(repoPath, void 0, cancellation));
782
+ stashes = converted.stashes;
783
+ stdin = mergesOnly ? void 0 : converted.stdin;
784
+ } else if (mergesOnly) stashes = convertStashesToStdin(await this.provider.stash?.getStash(repoPath, void 0, cancellation)).stashes;
785
+ if (stdin) args.push("--stdin");
786
+ const limit = options?.limit ?? cfg?.search?.maxItems ?? 0;
787
+ if (limit && !shas?.size) args.push(`-n${limit + 1}`);
788
+ const ordering = options?.ordering ?? cfg?.commits.ordering;
789
+ if (ordering) args.push(`--${ordering}-order`);
790
+ if (options?.skip) args.push(`--skip=${options.skip}`);
791
+ for (const arg of searchArgs) {
792
+ if (shas?.has(arg) || args.includes(arg)) continue;
793
+ args.push(arg);
794
+ }
795
+ const pathspec = files?.join(" ");
796
+ const { commits, count, countStashChildCommits } = await parseCommits(parser, this.git.stream({
797
+ cwd: repoPath,
798
+ cancellation,
799
+ configs: [
800
+ "-C",
801
+ repoPath,
802
+ ...gitConfigsLog
803
+ ],
804
+ stdin
805
+ }, ...args, "--", ...files), repoPath, pathspec, limit, stashes, currentUser, filters, mergesOnly);
806
+ const log = {
807
+ repoPath,
808
+ commits,
809
+ sha: void 0,
810
+ searchFilters: filters,
811
+ count: commits.size,
812
+ limit,
813
+ hasMore: count - countStashChildCommits > commits.size,
814
+ query: (limit) => this.searchCommits(repoPath, search, {
815
+ ...options,
816
+ limit
817
+ }).then((r) => r.log)
818
+ };
819
+ if (log.hasMore) {
820
+ const searchCommitsCore = (log) => {
821
+ return async (limit) => {
822
+ limit = limit ?? 0;
823
+ const moreLog = (await this.searchCommits(log.repoPath, search, {
824
+ ...options,
825
+ limit,
826
+ skip: log.count
827
+ })).log;
828
+ if (moreLog == null) return {
829
+ ...log,
830
+ hasMore: false,
831
+ more: void 0
832
+ };
833
+ const commits = new Map([...log.commits, ...moreLog.commits]);
834
+ const mergedLog = {
835
+ repoPath: log.repoPath,
836
+ commits,
837
+ sha: log.sha,
838
+ searchFilters: filters,
839
+ count: commits.size,
840
+ limit: (log.limit ?? 0) + limit,
841
+ hasMore: moreLog.hasMore,
842
+ query: (limit) => this.searchCommits(log.repoPath, search, {
843
+ ...options,
844
+ limit
845
+ }).then((r) => r.log)
846
+ };
847
+ if (mergedLog.hasMore) mergedLog.more = searchCommitsCore(mergedLog);
848
+ return mergedLog;
849
+ };
850
+ };
851
+ log.more = searchCommitsCore(log);
852
+ }
853
+ return {
854
+ search,
855
+ log
856
+ };
857
+ } catch (ex) {
858
+ scope?.error(ex);
859
+ if (isCancellationError(ex)) throw ex;
860
+ return {
861
+ search,
862
+ log: void 0
863
+ };
864
+ }
865
+ }
866
+ async getCommitSignature(repoPath, sha) {
867
+ const scope = getScopedLogger();
868
+ try {
869
+ const result = await this.git.run({
870
+ cwd: repoPath,
871
+ errors: "ignore",
872
+ caching: {
873
+ cache: this.cache.gitResults,
874
+ options: { accessTTL: isSha(sha) ? 3e5 : 6e4 }
875
+ },
876
+ configs: gitConfigsLog
877
+ }, "log", `--format=${signatureFormat}`, "-1", sha);
878
+ if (!result.stdout) return void 0;
879
+ return parseSignatureOutput(result.stdout);
880
+ } catch (ex) {
881
+ scope?.error(ex);
882
+ return;
883
+ }
884
+ }
885
+ async isCommitSigned(repoPath, sha) {
886
+ const scope = getScopedLogger();
887
+ try {
888
+ const result = await this.git.run({
889
+ cwd: repoPath,
890
+ errors: "ignore",
891
+ caching: {
892
+ cache: this.cache.gitResults,
893
+ options: { accessTTL: isSha(sha) ? 3e5 : 6e4 }
894
+ }
895
+ }, "cat-file", "commit", sha);
896
+ return /^gpgsig(-sha256)? /m.test(result.stdout);
897
+ } catch (ex) {
898
+ scope?.error(ex);
899
+ return false;
900
+ }
901
+ }
902
+ async getCommitsSshSigners(repoPath, shas) {
903
+ const scope = getScopedLogger();
904
+ const result = /* @__PURE__ */ new Map();
905
+ if (shas.length === 0) return result;
906
+ try {
907
+ parseCatFileBatchForSshSigners((await this.git.run({
908
+ cwd: repoPath,
909
+ errors: "ignore",
910
+ stdin: `${shas.join("\n")}\n`,
911
+ encoding: "buffer"
912
+ }, "cat-file", "--batch")).stdout, new Set(shas), result);
913
+ } catch (ex) {
914
+ scope?.error(ex);
915
+ }
916
+ return result;
917
+ }
918
+ };
919
+ __decorate([debug()], CommitsGitSubProvider.prototype, "createUnreachableCommitFromTree", null);
920
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommit", null);
921
+ __decorate([debug({ exit: true })], CommitsGitSubProvider.prototype, "getCommitCount", null);
922
+ __decorate([debug({ exit: true })], CommitsGitSubProvider.prototype, "hasUnpublishedCommits", null);
923
+ __decorate([debug({
924
+ args: (repoPath, shas) => ({
925
+ repoPath,
926
+ shas: `${shas.length} value(s)`
927
+ }),
928
+ exit: (r) => `${r.size} unpublished`
929
+ })], CommitsGitSubProvider.prototype, "filterUnpublishedShas", null);
930
+ __decorate([debug({ exit: true })], CommitsGitSubProvider.prototype, "getCommitDates", null);
931
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommitFiles", null);
932
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommitForFile", null);
933
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommitReachability", null);
934
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getIncomingActivity", null);
935
+ __decorate([debug({ exit: true })], CommitsGitSubProvider.prototype, "getInitialCommitSha", null);
936
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getLeftRightCommitCount", null);
937
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getLog", null);
938
+ __decorate([trace({
939
+ args: (repoPath, rev) => ({
940
+ repoPath,
941
+ rev
942
+ }),
943
+ exit: true
944
+ })], CommitsGitSubProvider.prototype, "getLogCore", null);
945
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getLogForPath", null);
946
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getLogShas", null);
947
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getOldestUnpushedShaForPath", null);
948
+ __decorate([debug()], CommitsGitSubProvider.prototype, "hasCommitBeenPushed", null);
949
+ __decorate([debug()], CommitsGitSubProvider.prototype, "isAncestorOf", null);
950
+ __decorate([debug({ args: (repoPath, s) => ({
951
+ repoPath,
952
+ search: `[${s.matchAll ? "A" : ""}${s.matchCase ? "C" : ""}${s.matchRegex ? "R" : ""}${s.matchWholeWord ? "W" : ""}]: ${s.query.length > 500 ? `${s.query.substring(0, 500)}...` : s.query}`
953
+ }) })], CommitsGitSubProvider.prototype, "searchCommits", null);
954
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommitSignature", null);
955
+ __decorate([debug()], CommitsGitSubProvider.prototype, "isCommitSigned", null);
956
+ __decorate([debug()], CommitsGitSubProvider.prototype, "getCommitsSshSigners", null);
1259
957
  /**
1260
- * Parses `git cat-file --batch` output, extracting the embedded SSH public key (if any) from each requested commit
1261
- * object. Each record is `<sha> <type> <size>` LF `<content>` LF (or `<sha> missing` LF), and the object's bytes are
1262
- * consumed using the header's `<size>` rather than scanned line-by-line — so a commit/tag body line that happens to
1263
- * look like an object header can never be misread as a boundary. Operates on the raw `Buffer` because `<size>` counts
1264
- * bytes, not decoded characters.
1265
- *
1266
- * Exported for unit testing.
1267
- */
1268
- export function parseCatFileBatchForSshSigners(stdout, requestedShas, out) {
1269
- const headerRegex = /^([0-9a-f]{40,64}) (commit|tag|blob|missing)(?: (\d+))?$/;
1270
- let offset = 0;
1271
- while (offset < stdout.length) {
1272
- const newline = stdout.indexOf(0x0a, offset);
1273
- if (newline === -1)
1274
- break;
1275
- const match = headerRegex.exec(stdout.toString('utf8', offset, newline));
1276
- offset = newline + 1;
1277
- // A missing object (or an unrecognizable header) has no content body following its header line.
1278
- if (match == null || match[2] === 'missing')
1279
- continue;
1280
- const sha = match[1];
1281
- const object = stdout.toString('utf8', offset, offset + Number(match[3]));
1282
- offset += Number(match[3]) + 1; // consume the object's bytes and the trailing newline that separates records
1283
- if (!requestedShas.has(sha))
1284
- continue;
1285
- const key = extractSshPublicKeyFromCommitObject(object);
1286
- if (key == null)
1287
- continue;
1288
- const committer = extractCommitterFromCommitObject(object);
1289
- out.set(sha, { key: key, name: committer?.name, email: committer?.email });
1290
- }
958
+ * Parses `git cat-file --batch` output, extracting the embedded SSH public key (if any) from each requested commit
959
+ * object. Each record is `<sha> <type> <size>` LF `<content>` LF (or `<sha> missing` LF), and the object's bytes are
960
+ * consumed using the header's `<size>` rather than scanned line-by-line — so a commit/tag body line that happens to
961
+ * look like an object header can never be misread as a boundary. Operates on the raw `Buffer` because `<size>` counts
962
+ * bytes, not decoded characters.
963
+ *
964
+ * Exported for unit testing.
965
+ */
966
+ function parseCatFileBatchForSshSigners(stdout, requestedShas, out) {
967
+ const headerRegex = /^([0-9a-f]{40,64}) (commit|tag|blob|missing)(?: (\d+))?$/;
968
+ let offset = 0;
969
+ while (offset < stdout.length) {
970
+ const newline = stdout.indexOf(10, offset);
971
+ if (newline === -1) break;
972
+ const match = headerRegex.exec(stdout.toString("utf8", offset, newline));
973
+ offset = newline + 1;
974
+ if (match == null || match[2] === "missing") continue;
975
+ const sha = match[1];
976
+ const object = stdout.toString("utf8", offset, offset + Number(match[3]));
977
+ offset += Number(match[3]) + 1;
978
+ if (!requestedShas.has(sha)) continue;
979
+ const key = extractSshPublicKeyFromCommitObject(object);
980
+ if (key == null) continue;
981
+ const committer = extractCommitterFromCommitObject(object);
982
+ out.set(sha, {
983
+ key,
984
+ name: committer?.name,
985
+ email: committer?.email
986
+ });
987
+ }
1291
988
  }
1292
989
  function toCommit(c, repoPath, pathspec, currentUser) {
1293
- const message = c.message.trim();
1294
- const index = message.indexOf('\n');
1295
- const isCurrentAuthor = isUserMatch(currentUser, c.author, c.authorEmail) || undefined;
1296
- const isCurrentCommitter = isUserMatch(currentUser, c.committer, c.committerEmail) || undefined;
1297
- return new GitCommit(repoPath, c.sha, new GitCommitIdentity(c.author, c.authorEmail, new Date(Number(c.authorDate) * 1000), undefined, isCurrentAuthor), new GitCommitIdentity(c.committer, c.committerEmail, new Date(Number(c.committerDate) * 1000), undefined, isCurrentCommitter), index !== -1 ? message.substring(0, index) : message, c.parents?.split(' ') ?? [], message, createCommitFileset(c, repoPath, pathspec), c.stats, undefined, c.tips?.split(' '));
990
+ const message = c.message.trim();
991
+ const index = message.indexOf("\n");
992
+ const isCurrentAuthor = isUserMatch(currentUser, c.author, c.authorEmail) || void 0;
993
+ const isCurrentCommitter = isUserMatch(currentUser, c.committer, c.committerEmail) || void 0;
994
+ return new GitCommit(repoPath, c.sha, new GitCommitIdentity(c.author, c.authorEmail, /* @__PURE__ */ new Date(Number(c.authorDate) * 1e3), void 0, isCurrentAuthor), new GitCommitIdentity(c.committer, c.committerEmail, /* @__PURE__ */ new Date(Number(c.committerDate) * 1e3), void 0, isCurrentCommitter), index !== -1 ? message.substring(0, index) : message, c.parents?.split(" ") ?? [], message, createCommitFileset(c, repoPath, pathspec), c.stats, void 0, c.tips?.split(" "));
1298
995
  }
1299
996
  function getGitStartEnd(range) {
1300
- // Library DiffRange is always 1-based, startLine <= endLine
1301
- return [range.startLine, range.endLine];
997
+ return [range.startLine, range.endLine];
1302
998
  }
1303
- async function parseCommits(parser, resultOrStream, repoPath, pathspec, limit, stashes, currentUser, searchFilters,
1304
- // Stash commits have 2-3 parents, so `--merges` matches them; excluded below. Passed in by the
1305
- // caller (derived from the args git actually runs) rather than re-derived from `searchFilters.type`
1306
- // here, since a multi-value `type:` query (e.g. `type:merge type:tip`) leaves `--merges` in the
1307
- // args while `searchFilters.type` reflects only the last value parsed
1308
- mergesOnly = false) {
1309
- const env_1 = { stack: [], error: void 0, hasError: false };
1310
- try {
1311
- let count = 0;
1312
- let countStashChildCommits = 0;
1313
- const commits = new Map();
1314
- const tipsOnly = searchFilters?.type === 'tip';
1315
- if (resultOrStream instanceof Promise) {
1316
- const env_2 = { stack: [], error: void 0, hasError: false };
1317
- try {
1318
- const scope = getScopedLogger();
1319
- const result = await resultOrStream;
1320
- const sw = __addDisposableResource(env_2, maybeStopWatch(scope, { log: { onlyExit: true, level: 'debug' } }), false);
1321
- if (stashes?.size) {
1322
- const allowFilteredFiles = searchFilters?.files ?? false;
1323
- const stashesOnly = searchFilters?.type === 'stash';
1324
- for (const c of parser.parse(result.stdout)) {
1325
- if (stashesOnly && !stashes?.has(c.sha))
1326
- continue;
1327
- if (mergesOnly && stashes?.has(c.sha))
1328
- continue;
1329
- if (tipsOnly && !c.tips)
1330
- continue;
1331
- count++;
1332
- if (limit && count > limit)
1333
- break;
1334
- const stash = stashes?.get(c.sha);
1335
- if (stash != null) {
1336
- if (commits.has(stash.sha)) {
1337
- countStashChildCommits++;
1338
- }
1339
- else if (allowFilteredFiles) {
1340
- commits.set(stash.sha, stash.with({
1341
- fileset: {
1342
- ...createCommitFileset(c, repoPath, pathspec),
1343
- // Add the full stash files back into the fileset
1344
- files: stash.fileset?.files,
1345
- },
1346
- }));
1347
- }
1348
- else {
1349
- commits.set(stash.sha, stash);
1350
- }
1351
- continue;
1352
- }
1353
- commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1354
- }
1355
- }
1356
- else {
1357
- for (const c of parser.parse(result.stdout)) {
1358
- if (tipsOnly && !c.tips)
1359
- continue;
1360
- count++;
1361
- if (limit && count > limit)
1362
- break;
1363
- commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1364
- }
1365
- }
1366
- sw?.stop({ suffix: ` created ${count} commits` });
1367
- return { commits: commits, count: count, countStashChildCommits: countStashChildCommits };
1368
- }
1369
- catch (e_1) {
1370
- env_2.error = e_1;
1371
- env_2.hasError = true;
1372
- }
1373
- finally {
1374
- __disposeResources(env_2);
1375
- }
1376
- }
1377
- const _streamDisposer = __addDisposableResource(env_1, createDisposable(() => void resultOrStream.return?.(undefined)), false);
1378
- if (stashes?.size) {
1379
- const allowFilteredFiles = searchFilters?.files ?? false;
1380
- const stashesOnly = searchFilters?.type === 'stash';
1381
- for await (const c of parser.parseAsync(resultOrStream)) {
1382
- if (stashesOnly && !stashes?.has(c.sha))
1383
- continue;
1384
- if (mergesOnly && stashes?.has(c.sha))
1385
- continue;
1386
- if (tipsOnly && !c.tips)
1387
- continue;
1388
- count++;
1389
- if (limit && count > limit)
1390
- break;
1391
- const stash = stashes?.get(c.sha);
1392
- if (stash != null) {
1393
- if (commits.has(stash.sha)) {
1394
- countStashChildCommits++;
1395
- }
1396
- else if (allowFilteredFiles) {
1397
- commits.set(stash.sha, stash.with({
1398
- fileset: {
1399
- ...createCommitFileset(c, repoPath, pathspec),
1400
- // Add the full stash files back into the fileset
1401
- files: stash.fileset?.files,
1402
- },
1403
- }));
1404
- }
1405
- else {
1406
- commits.set(stash.sha, stash);
1407
- }
1408
- continue;
1409
- }
1410
- commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1411
- }
1412
- }
1413
- else {
1414
- for await (const c of parser.parseAsync(resultOrStream)) {
1415
- if (tipsOnly && !c.tips)
1416
- continue;
1417
- count++;
1418
- if (limit && count > limit)
1419
- break;
1420
- commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1421
- }
1422
- }
1423
- return { commits: commits, count: count, countStashChildCommits: countStashChildCommits };
1424
- }
1425
- catch (e_2) {
1426
- env_1.error = e_2;
1427
- env_1.hasError = true;
1428
- }
1429
- finally {
1430
- __disposeResources(env_1);
1431
- }
999
+ async function parseCommits(parser, resultOrStream, repoPath, pathspec, limit, stashes, currentUser, searchFilters, mergesOnly = false) {
1000
+ try {
1001
+ var _usingCtx$1 = _usingCtx();
1002
+ let count = 0;
1003
+ let countStashChildCommits = 0;
1004
+ const commits = /* @__PURE__ */ new Map();
1005
+ const tipsOnly = searchFilters?.type === "tip";
1006
+ if (resultOrStream instanceof Promise) try {
1007
+ var _usingCtx3 = _usingCtx();
1008
+ const scope = getScopedLogger();
1009
+ const result = await resultOrStream;
1010
+ const sw = _usingCtx3.u(maybeStopWatch(scope, { log: {
1011
+ onlyExit: true,
1012
+ level: "debug"
1013
+ } }));
1014
+ if (stashes?.size) {
1015
+ const allowFilteredFiles = searchFilters?.files ?? false;
1016
+ const stashesOnly = searchFilters?.type === "stash";
1017
+ for (const c of parser.parse(result.stdout)) {
1018
+ if (stashesOnly && !stashes?.has(c.sha)) continue;
1019
+ if (mergesOnly && stashes?.has(c.sha)) continue;
1020
+ if (tipsOnly && !c.tips) continue;
1021
+ count++;
1022
+ if (limit && count > limit) break;
1023
+ const stash = stashes?.get(c.sha);
1024
+ if (stash != null) {
1025
+ if (commits.has(stash.sha)) countStashChildCommits++;
1026
+ else if (allowFilteredFiles) commits.set(stash.sha, stash.with({ fileset: {
1027
+ ...createCommitFileset(c, repoPath, pathspec),
1028
+ files: stash.fileset?.files
1029
+ } }));
1030
+ else commits.set(stash.sha, stash);
1031
+ continue;
1032
+ }
1033
+ commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1034
+ }
1035
+ } else for (const c of parser.parse(result.stdout)) {
1036
+ if (tipsOnly && !c.tips) continue;
1037
+ count++;
1038
+ if (limit && count > limit) break;
1039
+ commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1040
+ }
1041
+ sw?.stop({ suffix: ` created ${count} commits` });
1042
+ return {
1043
+ commits,
1044
+ count,
1045
+ countStashChildCommits
1046
+ };
1047
+ } catch (_) {
1048
+ _usingCtx3.e = _;
1049
+ } finally {
1050
+ _usingCtx3.d();
1051
+ }
1052
+ _usingCtx$1.u(createDisposable(() => void resultOrStream.return?.(void 0)));
1053
+ if (stashes?.size) {
1054
+ const allowFilteredFiles = searchFilters?.files ?? false;
1055
+ const stashesOnly = searchFilters?.type === "stash";
1056
+ for await (const c of parser.parseAsync(resultOrStream)) {
1057
+ if (stashesOnly && !stashes?.has(c.sha)) continue;
1058
+ if (mergesOnly && stashes?.has(c.sha)) continue;
1059
+ if (tipsOnly && !c.tips) continue;
1060
+ count++;
1061
+ if (limit && count > limit) break;
1062
+ const stash = stashes?.get(c.sha);
1063
+ if (stash != null) {
1064
+ if (commits.has(stash.sha)) countStashChildCommits++;
1065
+ else if (allowFilteredFiles) commits.set(stash.sha, stash.with({ fileset: {
1066
+ ...createCommitFileset(c, repoPath, pathspec),
1067
+ files: stash.fileset?.files
1068
+ } }));
1069
+ else commits.set(stash.sha, stash);
1070
+ continue;
1071
+ }
1072
+ commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1073
+ }
1074
+ } else for await (const c of parser.parseAsync(resultOrStream)) {
1075
+ if (tipsOnly && !c.tips) continue;
1076
+ count++;
1077
+ if (limit && count > limit) break;
1078
+ commits.set(c.sha, toCommit(c, repoPath, pathspec, currentUser));
1079
+ }
1080
+ return {
1081
+ commits,
1082
+ count,
1083
+ countStashChildCommits
1084
+ };
1085
+ } catch (_) {
1086
+ _usingCtx$1.e = _;
1087
+ } finally {
1088
+ _usingCtx$1.d();
1089
+ }
1432
1090
  }
1091
+ //#endregion
1092
+ export { CommitsGitSubProvider, parseCatFileBatchForSshSigners };
1093
+
1433
1094
  //# sourceMappingURL=commits.js.map