@gitkraken/core-gitlens 0.5.116 → 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.
- package/CHANGELOG.md +32 -1
- package/README.md +9 -2
- package/dist/_virtual/@oxc-project+runtime/helpers/esm/decorate.js +9 -0
- package/dist/_virtual/@oxc-project+runtime/helpers/esm/usingCtx.js +57 -0
- package/dist/git/cache.d.ts +297 -297
- package/dist/git/cache.js +948 -1276
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +202 -197
- package/dist/git/context.js +12 -8
- package/dist/git/context.js.map +1 -1
- package/dist/git/errors.d.ts +268 -281
- package/dist/git/errors.js +928 -706
- package/dist/git/errors.js.map +1 -1
- package/dist/git/features.d.ts +3 -2
- package/dist/git/features.js +34 -55
- package/dist/git/features.js.map +1 -1
- package/dist/git/gitHealth.d.ts +88 -81
- package/dist/git/gitHealth.js +259 -329
- package/dist/git/gitHealth.js.map +1 -1
- package/dist/git/models/author.d.ts +12 -10
- package/dist/git/models/author.js +0 -2
- package/dist/git/models/autolink.d.ts +36 -37
- package/dist/git/models/autolink.js +0 -2
- package/dist/git/models/blame.d.ts +25 -23
- package/dist/git/models/blame.js +0 -2
- package/dist/git/models/branch.d.ts +74 -72
- package/dist/git/models/branch.js +132 -171
- package/dist/git/models/branch.js.map +1 -1
- package/dist/git/models/commit.d.ts +135 -133
- package/dist/git/models/commit.js +381 -484
- package/dist/git/models/commit.js.map +1 -1
- package/dist/git/models/contributor.d.ts +30 -29
- package/dist/git/models/contributor.js +56 -64
- package/dist/git/models/contributor.js.map +1 -1
- package/dist/git/models/defaultBranch.d.ts +5 -3
- package/dist/git/models/defaultBranch.js +0 -2
- package/dist/git/models/diff.d.ts +49 -47
- package/dist/git/models/diff.js +0 -2
- package/dist/git/models/file.d.ts +20 -18
- package/dist/git/models/file.js +0 -2
- package/dist/git/models/fileChange.d.ts +45 -43
- package/dist/git/models/fileChange.js +60 -66
- package/dist/git/models/fileChange.js.map +1 -1
- package/dist/git/models/fileStatus.d.ts +25 -23
- package/dist/git/models/fileStatus.js +30 -26
- package/dist/git/models/fileStatus.js.map +1 -1
- package/dist/git/models/graph.d.ts +328 -320
- package/dist/git/models/graph.js +31 -27
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/graphSearch.d.ts +37 -35
- package/dist/git/models/graphSearch.js +0 -2
- package/dist/git/models/graphSession.d.ts +158 -66
- package/dist/git/models/graphSession.js +72 -1
- package/dist/git/models/graphSession.js.map +1 -1
- package/dist/git/models/issue.d.ts +174 -140
- package/dist/git/models/issue.js +86 -84
- package/dist/git/models/issue.js.map +1 -1
- package/dist/git/models/issueOrPullRequest.d.ts +16 -14
- package/dist/git/models/issueOrPullRequest.js +0 -2
- package/dist/git/models/lineRange.d.ts +6 -4
- package/dist/git/models/lineRange.js +0 -2
- package/dist/git/models/log.d.ts +18 -16
- package/dist/git/models/log.js +0 -2
- package/dist/git/models/mergeConflicts.d.ts +17 -15
- package/dist/git/models/mergeConflicts.js +0 -2
- package/dist/git/models/patch.d.ts +14 -12
- package/dist/git/models/patch.js +0 -2
- package/dist/git/models/pausedOperationStatus.d.ts +42 -40
- package/dist/git/models/pausedOperationStatus.js +0 -2
- package/dist/git/models/pullRequest.d.ts +238 -230
- package/dist/git/models/pullRequest.js +151 -163
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/git/models/rebase.d.ts +30 -28
- package/dist/git/models/rebase.js +0 -2
- package/dist/git/models/reference.d.ts +57 -55
- package/dist/git/models/reference.js +0 -2
- package/dist/git/models/reflog.d.ts +29 -27
- package/dist/git/models/reflog.js +63 -82
- package/dist/git/models/reflog.js.map +1 -1
- package/dist/git/models/remote.d.ts +34 -32
- package/dist/git/models/remote.js +74 -95
- package/dist/git/models/remote.js.map +1 -1
- package/dist/git/models/remoteProvider.d.ts +86 -84
- package/dist/git/models/remoteProvider.js +145 -150
- package/dist/git/models/remoteProvider.js.map +1 -1
- package/dist/git/models/remoteResource.d.ts +58 -56
- package/dist/git/models/remoteResource.js +15 -12
- package/dist/git/models/remoteResource.js.map +1 -1
- package/dist/git/models/repository.d.ts +144 -142
- package/dist/git/models/repository.js +358 -406
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/repositoryChangeEvent.d.ts +8 -6
- package/dist/git/models/repositoryChangeEvent.js +26 -24
- package/dist/git/models/repositoryChangeEvent.js.map +1 -1
- package/dist/git/models/repositoryIdentities.d.ts +50 -46
- package/dist/git/models/repositoryIdentities.js +7 -5
- package/dist/git/models/repositoryIdentities.js.map +1 -1
- package/dist/git/models/repositoryMetadata.d.ts +9 -7
- package/dist/git/models/repositoryMetadata.js +0 -2
- package/dist/git/models/resourceDescriptor.d.ts +11 -9
- package/dist/git/models/resourceDescriptor.js +0 -2
- package/dist/git/models/revision.d.ts +2 -0
- package/dist/git/models/revision.js +8 -5
- package/dist/git/models/revision.js.map +1 -1
- package/dist/git/models/search.d.ts +48 -47
- package/dist/git/models/search.js +53 -49
- package/dist/git/models/search.js.map +1 -1
- package/dist/git/models/shortlog.d.ts +5 -3
- package/dist/git/models/shortlog.js +0 -2
- package/dist/git/models/signature.d.ts +28 -26
- package/dist/git/models/signature.js +0 -2
- package/dist/git/models/staging.d.ts +18 -16
- package/dist/git/models/staging.js +0 -2
- package/dist/git/models/stash.d.ts +5 -3
- package/dist/git/models/stash.js +0 -2
- package/dist/git/models/status.d.ts +51 -49
- package/dist/git/models/status.js +172 -205
- package/dist/git/models/status.js.map +1 -1
- package/dist/git/models/statusFile.d.ts +35 -34
- package/dist/git/models/statusFile.js +112 -125
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/models/tag.d.ts +34 -32
- package/dist/git/models/tag.js +64 -77
- package/dist/git/models/tag.js.map +1 -1
- package/dist/git/models/tree.d.ts +8 -6
- package/dist/git/models/tree.js +0 -2
- package/dist/git/models/user.d.ts +6 -4
- package/dist/git/models/user.js +0 -2
- package/dist/git/models/worktree.d.ts +50 -48
- package/dist/git/models/worktree.js +102 -133
- package/dist/git/models/worktree.js.map +1 -1
- package/dist/git/parsers/diffParser.d.ts +7 -5
- package/dist/git/parsers/diffParser.js +438 -587
- package/dist/git/parsers/diffParser.js.map +1 -1
- package/dist/git/parsers/rebaseTodoParser.d.ts +3 -1
- package/dist/git/parsers/rebaseTodoParser.js +165 -208
- package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
- package/dist/git/providers/blame.d.ts +12 -10
- package/dist/git/providers/blame.js +0 -2
- package/dist/git/providers/branches.d.ts +96 -94
- package/dist/git/providers/branches.js +0 -2
- package/dist/git/providers/commits.d.ts +105 -104
- package/dist/git/providers/commits.js +0 -2
- package/dist/git/providers/config.d.ts +80 -78
- package/dist/git/providers/config.js +0 -2
- package/dist/git/providers/contributors.d.ts +23 -21
- package/dist/git/providers/contributors.js +0 -2
- package/dist/git/providers/diff.d.ts +68 -66
- package/dist/git/providers/diff.js +0 -2
- package/dist/git/providers/graph.d.ts +73 -62
- package/dist/git/providers/graph.js +0 -2
- package/dist/git/providers/maintenance.d.ts +180 -178
- package/dist/git/providers/maintenance.js +0 -20
- package/dist/git/providers/operations.d.ts +114 -112
- package/dist/git/providers/operations.js +0 -2
- package/dist/git/providers/patch.d.ts +26 -24
- package/dist/git/providers/patch.js +0 -2
- package/dist/git/providers/pausedOperations.d.ts +19 -17
- package/dist/git/providers/pausedOperations.js +0 -2
- package/dist/git/providers/provider.d.ts +52 -50
- package/dist/git/providers/provider.js +0 -2
- package/dist/git/providers/refs.d.ts +42 -40
- package/dist/git/providers/refs.js +0 -2
- package/dist/git/providers/remotes.d.ts +24 -22
- package/dist/git/providers/remotes.js +0 -2
- package/dist/git/providers/revision.d.ts +25 -23
- package/dist/git/providers/revision.js +0 -2
- package/dist/git/providers/shared/remotes.d.ts +24 -22
- package/dist/git/providers/shared/remotes.js +52 -77
- package/dist/git/providers/shared/remotes.js.map +1 -1
- package/dist/git/providers/staging.d.ts +37 -35
- package/dist/git/providers/staging.js +0 -2
- package/dist/git/providers/stash.d.ts +38 -36
- package/dist/git/providers/stash.js +0 -2
- package/dist/git/providers/status.d.ts +32 -30
- package/dist/git/providers/status.js +0 -2
- package/dist/git/providers/tags.d.ts +20 -18
- package/dist/git/providers/tags.js +0 -2
- package/dist/git/providers/types.d.ts +19 -17
- package/dist/git/providers/types.js +0 -2
- package/dist/git/providers/worktrees.d.ts +26 -24
- package/dist/git/providers/worktrees.js +0 -2
- package/dist/git/remotes/azure-devops.d.ts +49 -38
- package/dist/git/remotes/azure-devops.js +254 -224
- package/dist/git/remotes/azure-devops.js.map +1 -1
- package/dist/git/remotes/bitbucket-server.d.ts +30 -29
- package/dist/git/remotes/bitbucket-server.js +141 -142
- package/dist/git/remotes/bitbucket-server.js.map +1 -1
- package/dist/git/remotes/bitbucket.d.ts +27 -26
- package/dist/git/remotes/bitbucket.js +114 -111
- package/dist/git/remotes/bitbucket.js.map +1 -1
- package/dist/git/remotes/custom.d.ts +26 -25
- package/dist/git/remotes/custom.js +130 -130
- package/dist/git/remotes/custom.js.map +1 -1
- package/dist/git/remotes/gerrit.d.ts +29 -28
- package/dist/git/remotes/gerrit.js +140 -143
- package/dist/git/remotes/gerrit.js.map +1 -1
- package/dist/git/remotes/gitea.d.ts +28 -27
- package/dist/git/remotes/gitea.js +141 -145
- package/dist/git/remotes/gitea.js.map +1 -1
- package/dist/git/remotes/github.d.ts +35 -34
- package/dist/git/remotes/github.js +196 -190
- package/dist/git/remotes/github.js.map +1 -1
- package/dist/git/remotes/gitlab.d.ts +31 -30
- package/dist/git/remotes/gitlab.js +245 -227
- package/dist/git/remotes/gitlab.js.map +1 -1
- package/dist/git/remotes/google-source.d.ts +16 -14
- package/dist/git/remotes/google-source.js +33 -31
- package/dist/git/remotes/google-source.js.map +1 -1
- package/dist/git/remotes/matcher.d.ts +16 -14
- package/dist/git/remotes/matcher.js +141 -124
- package/dist/git/remotes/matcher.js.map +1 -1
- package/dist/git/repositoryService.d.ts +47 -47
- package/dist/git/repositoryService.js +47 -44
- package/dist/git/repositoryService.js.map +1 -1
- package/dist/git/run.types.d.ts +91 -76
- package/dist/git/run.types.js +0 -2
- package/dist/git/service.d.ts +73 -71
- package/dist/git/service.js +286 -302
- package/dist/git/service.js.map +1 -1
- package/dist/git/utils/autolink.utils.d.ts +4 -2
- package/dist/git/utils/autolink.utils.js +103 -139
- package/dist/git/utils/autolink.utils.js.map +1 -1
- package/dist/git/utils/blame.utils.d.ts +22 -20
- package/dist/git/utils/blame.utils.js +196 -230
- package/dist/git/utils/blame.utils.js.map +1 -1
- package/dist/git/utils/branch.utils.d.ts +7 -9
- package/dist/git/utils/branch.utils.js +89 -115
- package/dist/git/utils/branch.utils.js.map +1 -1
- package/dist/git/utils/commit.utils.d.ts +10 -16
- package/dist/git/utils/commit.utils.js +28 -47
- package/dist/git/utils/commit.utils.js.map +1 -1
- package/dist/git/utils/config.utils.d.ts +2 -0
- package/dist/git/utils/config.utils.js +14 -5
- package/dist/git/utils/config.utils.js.map +1 -1
- package/dist/git/utils/conflictResolution.utils.d.ts +16 -13
- package/dist/git/utils/conflictResolution.utils.js +116 -113
- package/dist/git/utils/conflictResolution.utils.js.map +1 -1
- package/dist/git/utils/contributor.utils.d.ts +10 -8
- package/dist/git/utils/contributor.utils.js +47 -69
- package/dist/git/utils/contributor.utils.js.map +1 -1
- package/dist/git/utils/fetch.utils.d.ts +2 -0
- package/dist/git/utils/fetch.utils.js +33 -44
- package/dist/git/utils/fetch.utils.js.map +1 -1
- package/dist/git/utils/fileStatus.utils.d.ts +22 -21
- package/dist/git/utils/fileStatus.utils.js +59 -45
- package/dist/git/utils/fileStatus.utils.js.map +1 -1
- package/dist/git/utils/graph.utils.d.ts +19 -1
- package/dist/git/utils/graph.utils.js +60 -35
- package/dist/git/utils/graph.utils.js.map +1 -1
- package/dist/git/utils/issue.utils.d.ts +3 -1
- package/dist/git/utils/issue.utils.js +154 -149
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/issueOrPullRequest.utils.d.ts +3 -1
- package/dist/git/utils/issueOrPullRequest.utils.js +23 -20
- package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
- package/dist/git/utils/mergeConflicts.utils.d.ts +4 -1
- package/dist/git/utils/mergeConflicts.utils.js +28 -15
- package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts +7 -42
- package/dist/git/utils/pausedOperationStatus.utils.js +83 -146
- package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
- package/dist/git/utils/pullRequest.utils.d.ts +7 -5
- package/dist/git/utils/pullRequest.utils.js +180 -187
- package/dist/git/utils/pullRequest.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +6 -6
- package/dist/git/utils/reachability.utils.js +120 -147
- package/dist/git/utils/reachability.utils.js.map +1 -1
- package/dist/git/utils/rebase.utils.d.ts +3 -1
- package/dist/git/utils/rebase.utils.js +87 -71
- package/dist/git/utils/rebase.utils.js.map +1 -1
- package/dist/git/utils/reference.utils.d.ts +33 -32
- package/dist/git/utils/reference.utils.js +152 -179
- package/dist/git/utils/reference.utils.js.map +1 -1
- package/dist/git/utils/remote.utils.d.ts +5 -3
- package/dist/git/utils/remote.utils.js +77 -116
- package/dist/git/utils/remote.utils.js.map +1 -1
- package/dist/git/utils/repository.utils.d.ts +3 -1
- package/dist/git/utils/repository.utils.js +12 -11
- package/dist/git/utils/repository.utils.js.map +1 -1
- package/dist/git/utils/resourceDescriptor.utils.d.ts +3 -1
- package/dist/git/utils/resourceDescriptor.utils.js +8 -14
- package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
- package/dist/git/utils/revision.utils.d.ts +11 -10
- package/dist/git/utils/revision.utils.js +69 -83
- package/dist/git/utils/revision.utils.js.map +1 -1
- package/dist/git/utils/search.utils.d.ts +5 -3
- package/dist/git/utils/search.utils.js +383 -522
- package/dist/git/utils/search.utils.js.map +1 -1
- package/dist/git/utils/sorting.d.ts +22 -20
- package/dist/git/utils/sorting.js +133 -227
- package/dist/git/utils/sorting.js.map +1 -1
- package/dist/git/utils/sshKey.utils.d.ts +2 -0
- package/dist/git/utils/sshKey.utils.js +10 -15
- package/dist/git/utils/sshKey.utils.js.map +1 -1
- package/dist/git/utils/status.utils.d.ts +20 -15
- package/dist/git/utils/status.utils.js +93 -79
- package/dist/git/utils/status.utils.js.map +1 -1
- package/dist/git/utils/statusFile.utils.d.ts +6 -4
- package/dist/git/utils/statusFile.utils.js +71 -72
- package/dist/git/utils/statusFile.utils.js.map +1 -1
- package/dist/git/utils/tag.utils.d.ts +4 -2
- package/dist/git/utils/tag.utils.js +10 -8
- package/dist/git/utils/tag.utils.js.map +1 -1
- package/dist/git/utils/tooltip.utils.d.ts +5 -2
- package/dist/git/utils/tooltip.utils.js +49 -24
- package/dist/git/utils/tooltip.utils.js.map +1 -1
- package/dist/git/utils/uriAuthority.d.ts +9 -7
- package/dist/git/utils/uriAuthority.js +19 -16
- package/dist/git/utils/uriAuthority.js.map +1 -1
- package/dist/git/utils/user.utils.d.ts +3 -1
- package/dist/git/utils/user.utils.js +6 -10
- package/dist/git/utils/user.utils.js.map +1 -1
- package/dist/git/utils/worktree.utils.d.ts +5 -3
- package/dist/git/utils/worktree.utils.js +14 -12
- package/dist/git/utils/worktree.utils.js.map +1 -1
- package/dist/git/watching/changeEvent.d.ts +38 -36
- package/dist/git/watching/changeEvent.js +60 -67
- package/dist/git/watching/changeEvent.js.map +1 -1
- package/dist/git/watching/classifyChange.d.ts +3 -1
- package/dist/git/watching/classifyChange.js +50 -79
- package/dist/git/watching/classifyChange.js.map +1 -1
- package/dist/git/watching/gitIgnoreFilter.d.ts +43 -41
- package/dist/git/watching/gitIgnoreFilter.js +92 -107
- package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
- package/dist/git/watching/initWatcher.d.ts +22 -20
- package/dist/git/watching/initWatcher.js +58 -57
- package/dist/git/watching/initWatcher.js.map +1 -1
- package/dist/git/watching/provider.d.ts +8 -7
- package/dist/git/watching/provider.js +0 -2
- package/dist/git/watching/watchGroup.d.ts +29 -28
- package/dist/git/watching/watchGroup.js +105 -137
- package/dist/git/watching/watchGroup.js.map +1 -1
- package/dist/git/watching/watchService.d.ts +70 -68
- package/dist/git/watching/watchService.js +275 -339
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +112 -111
- package/dist/git/watching/watchSession.js +260 -314
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git/watching/watcherPatterns.d.ts +4 -2
- package/dist/git/watching/watcherPatterns.js +21 -24
- package/dist/git/watching/watcherPatterns.js.map +1 -1
- package/dist/git-cli/cliGitProvider.d.ts +117 -114
- package/dist/git-cli/cliGitProvider.js +261 -283
- package/dist/git-cli/cliGitProvider.js.map +1 -1
- package/dist/git-cli/exec/eventLoopMonitor.d.ts +26 -0
- package/dist/git-cli/exec/eventLoopMonitor.js +61 -0
- package/dist/git-cli/exec/eventLoopMonitor.js.map +1 -0
- package/dist/git-cli/exec/exec.d.ts +3 -4
- package/dist/git-cli/exec/exec.errors.d.ts +2 -2
- package/dist/git-cli/exec/exec.errors.js +2 -2
- package/dist/git-cli/exec/exec.js +3 -3
- package/dist/git-cli/exec/exec.types.d.ts +2 -2
- package/dist/git-cli/exec/exec.types.js +0 -2
- package/dist/git-cli/exec/features.d.ts +2 -3
- package/dist/git-cli/exec/features.js +2 -2
- package/dist/git-cli/exec/git.d.ts +224 -205
- package/dist/git-cli/exec/git.js +834 -1042
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/exec/gitQueue.d.ts +51 -48
- package/dist/git-cli/exec/gitQueue.js +225 -260
- package/dist/git-cli/exec/gitQueue.js.map +1 -1
- package/dist/git-cli/exec/locator.d.ts +8 -6
- package/dist/git-cli/exec/locator.js +95 -121
- package/dist/git-cli/exec/locator.js.map +1 -1
- package/dist/git-cli/parsers/blameParser.d.ts +22 -20
- package/dist/git-cli/parsers/blameParser.js +238 -332
- package/dist/git-cli/parsers/blameParser.js.map +1 -1
- package/dist/git-cli/parsers/indexParser.d.ts +3 -1
- package/dist/git-cli/parsers/indexParser.js +146 -221
- package/dist/git-cli/parsers/indexParser.js.map +1 -1
- package/dist/git-cli/parsers/logParser.d.ts +103 -110
- package/dist/git-cli/parsers/logParser.js +998 -1199
- package/dist/git-cli/parsers/logParser.js.map +1 -1
- package/dist/git-cli/parsers/mergeTreeParser.d.ts +5 -3
- package/dist/git-cli/parsers/mergeTreeParser.js +28 -72
- package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
- package/dist/git-cli/parsers/refParser.d.ts +5 -4
- package/dist/git-cli/parsers/refParser.js +92 -137
- package/dist/git-cli/parsers/refParser.js.map +1 -1
- package/dist/git-cli/parsers/reflogParser.d.ts +7 -6
- package/dist/git-cli/parsers/reflogParser.js +100 -173
- package/dist/git-cli/parsers/reflogParser.js.map +1 -1
- package/dist/git-cli/parsers/remoteParser.d.ts +4 -2
- package/dist/git-cli/parsers/remoteParser.js +74 -126
- package/dist/git-cli/parsers/remoteParser.js.map +1 -1
- package/dist/git-cli/parsers/shortlogParser.d.ts +4 -2
- package/dist/git-cli/parsers/shortlogParser.js +44 -49
- package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
- package/dist/git-cli/parsers/signatureParser.d.ts +3 -1
- package/dist/git-cli/parsers/signatureParser.js +82 -124
- package/dist/git-cli/parsers/signatureParser.js.map +1 -1
- package/dist/git-cli/parsers/sshSignatureParser.d.ts +5 -3
- package/dist/git-cli/parsers/sshSignatureParser.js +55 -64
- package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -1
- package/dist/git-cli/parsers/statusParser.d.ts +4 -2
- package/dist/git-cli/parsers/statusParser.js +148 -205
- package/dist/git-cli/parsers/statusParser.js.map +1 -1
- package/dist/git-cli/parsers/treeParser.d.ts +3 -1
- package/dist/git-cli/parsers/treeParser.js +57 -108
- package/dist/git-cli/parsers/treeParser.js.map +1 -1
- package/dist/git-cli/parsers/worktreeParser.d.ts +4 -3
- package/dist/git-cli/parsers/worktreeParser.js +76 -132
- package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
- package/dist/git-cli/providers/blame.d.ts +25 -23
- package/dist/git-cli/providers/blame.js +404 -413
- package/dist/git-cli/providers/blame.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts +117 -116
- package/dist/git-cli/providers/branches.js +1132 -1468
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commitFilesetUtils.d.ts +4 -2
- package/dist/git-cli/providers/commitFilesetUtils.js +36 -18
- package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +58 -56
- package/dist/git-cli/providers/commits.js +1084 -1423
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +129 -127
- package/dist/git-cli/providers/config.js +612 -831
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/contributors.d.ts +29 -28
- package/dist/git-cli/providers/contributors.js +246 -351
- package/dist/git-cli/providers/contributors.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts +97 -94
- package/dist/git-cli/providers/diff.js +638 -845
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +66 -68
- package/dist/git-cli/providers/graph.js +1400 -1848
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/maintenance.d.ts +305 -303
- package/dist/git-cli/providers/maintenance.js +1526 -2078
- package/dist/git-cli/providers/maintenance.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts +96 -94
- package/dist/git-cli/providers/operations.js +664 -724
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/patch.d.ts +37 -35
- package/dist/git-cli/providers/patch.js +206 -307
- package/dist/git-cli/providers/patch.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +30 -28
- package/dist/git-cli/providers/pausedOperations.js +475 -506
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/refs.d.ts +50 -48
- package/dist/git-cli/providers/refs.js +335 -479
- package/dist/git-cli/providers/refs.js.map +1 -1
- package/dist/git-cli/providers/remotes.d.ts +23 -21
- package/dist/git-cli/providers/remotes.js +71 -92
- package/dist/git-cli/providers/remotes.js.map +1 -1
- package/dist/git-cli/providers/revision.d.ts +27 -25
- package/dist/git-cli/providers/revision.js +288 -304
- package/dist/git-cli/providers/revision.js.map +1 -1
- package/dist/git-cli/providers/staging.d.ts +31 -29
- package/dist/git-cli/providers/staging.js +140 -189
- package/dist/git-cli/providers/staging.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts +44 -42
- package/dist/git-cli/providers/stash.js +288 -387
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts +61 -59
- package/dist/git-cli/providers/status.js +332 -453
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/tags.d.ts +31 -29
- package/dist/git-cli/providers/tags.js +158 -215
- package/dist/git-cli/providers/tags.js.map +1 -1
- package/dist/git-cli/providers/worktrees.d.ts +35 -33
- package/dist/git-cli/providers/worktrees.js +178 -203
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/git-cli/service.d.ts +28 -26
- package/dist/git-cli/service.js +38 -40
- package/dist/git-cli/service.js.map +1 -1
- package/dist/ipc/discovery.d.ts +19 -17
- package/dist/ipc/discovery.js +104 -128
- package/dist/ipc/discovery.js.map +1 -1
- package/dist/ipc/ipcServer.d.ts +16 -14
- package/dist/ipc/ipcServer.js +139 -160
- package/dist/ipc/ipcServer.js.map +1 -1
- package/dist/plus/agents/agentCapabilities.d.ts +50 -37
- package/dist/plus/agents/agentCapabilities.js +138 -173
- package/dist/plus/agents/agentCapabilities.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +153 -151
- package/dist/plus/agents/providers/claudeCodeTranscript.js +605 -679
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
- package/dist/plus/agents/providers/gkAgentProvider.d.ts +237 -240
- package/dist/plus/agents/providers/gkAgentProvider.js +2162 -3334
- package/dist/plus/agents/providers/gkAgentProvider.js.map +1 -1
- package/dist/plus/agents/sanitizePrompt.d.ts +2 -0
- package/dist/plus/agents/sanitizePrompt.js +58 -91
- package/dist/plus/agents/sanitizePrompt.js.map +1 -1
- package/dist/plus/agents/stateMachine.d.ts +7 -5
- package/dist/plus/agents/stateMachine.js +135 -163
- package/dist/plus/agents/stateMachine.js.map +1 -1
- package/dist/plus/agents/types.d.ts +333 -336
- package/dist/plus/agents/types.js +48 -48
- package/dist/plus/agents/types.js.map +1 -1
- package/dist/plus/ai/constants.d.ts +3 -1
- package/dist/plus/ai/constants.js +88 -84
- package/dist/plus/ai/constants.js.map +1 -1
- package/dist/plus/ai/errors.d.ts +22 -18
- package/dist/plus/ai/errors.js +158 -138
- package/dist/plus/ai/errors.js.map +1 -1
- package/dist/plus/ai/models/conversation.d.ts +11 -9
- package/dist/plus/ai/models/conversation.js +30 -26
- package/dist/plus/ai/models/conversation.js.map +1 -1
- package/dist/plus/ai/models/model.d.ts +29 -27
- package/dist/plus/ai/models/model.js +663 -471
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +56 -55
- package/dist/plus/ai/models/promptTemplates.js +0 -2
- package/dist/plus/ai/models/provider.d.ts +79 -77
- package/dist/plus/ai/models/provider.js +0 -2
- package/dist/plus/ai/models/results.d.ts +27 -21
- package/dist/plus/ai/models/results.js +0 -2
- package/dist/plus/ai/prompts.d.ts +4 -2
- package/dist/plus/ai/prompts.js +301 -190
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts +33 -32
- package/dist/plus/ai/providers/anthropicProvider.js +484 -381
- package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
- package/dist/plus/ai/providers/azureProvider.d.ts +18 -16
- package/dist/plus/ai/providers/azureProvider.js +53 -53
- package/dist/plus/ai/providers/azureProvider.js.map +1 -1
- package/dist/plus/ai/providers/context.d.ts +23 -20
- package/dist/plus/ai/providers/context.js +0 -2
- package/dist/plus/ai/providers/deepSeekProvider.d.ts +17 -15
- package/dist/plus/ai/providers/deepSeekProvider.js +45 -39
- package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts +16 -14
- package/dist/plus/ai/providers/geminiProvider.js +316 -230
- package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts +22 -20
- package/dist/plus/ai/providers/gitkrakenProvider.js +165 -260
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts +16 -14
- package/dist/plus/ai/providers/huggingFaceProvider.js +45 -46
- package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts +22 -20
- package/dist/plus/ai/providers/mistralProvider.js +263 -195
- package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts +26 -24
- package/dist/plus/ai/providers/ollamaProvider.js +156 -189
- package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts +18 -16
- package/dist/plus/ai/providers/openAICompatibleProvider.js +50 -50
- package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +187 -185
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +356 -475
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts +20 -19
- package/dist/plus/ai/providers/openRouterProvider.js +60 -65
- package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts +17 -15
- package/dist/plus/ai/providers/openaiProvider.js +35 -34
- package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
- package/dist/plus/ai/providers/responseFormatCache.d.ts +4 -2
- package/dist/plus/ai/providers/responseFormatCache.js +21 -17
- package/dist/plus/ai/providers/responseFormatCache.js.map +1 -1
- package/dist/plus/ai/providers/xaiProvider.d.ts +16 -14
- package/dist/plus/ai/providers/xaiProvider.js +61 -46
- package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts +4 -2
- package/dist/plus/ai/utils/ai.utils.js +50 -77
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/ai/utils/results.utils.d.ts +7 -5
- package/dist/plus/ai/utils/results.utils.js +235 -269
- package/dist/plus/ai/utils/results.utils.js.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts +3 -2
- package/dist/plus/ai/utils/truncation.utils.js +242 -205
- package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
- package/dist/plus/git-github/api/config.d.ts +58 -56
- package/dist/plus/git-github/api/config.js +15 -11
- package/dist/plus/git-github/api/config.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +500 -497
- package/dist/plus/git-github/api/github.js +2326 -3121
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/github.utils.d.ts +5 -3
- package/dist/plus/git-github/api/github.utils.js +24 -19
- package/dist/plus/git-github/api/github.utils.js.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts +5 -3
- package/dist/plus/git-github/api/issueSearchQuery.js +204 -221
- package/dist/plus/git-github/api/issueSearchQuery.js.map +1 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +6 -5
- package/dist/plus/git-github/api/pullRequestSearchQuery.js +89 -116
- package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -1
- package/dist/plus/git-github/api/token.d.ts +10 -8
- package/dist/plus/git-github/api/token.js +0 -2
- package/dist/plus/git-github/api/tokenUtils.d.ts +4 -2
- package/dist/plus/git-github/api/tokenUtils.js +14 -10
- package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
- package/dist/plus/git-github/api/types.d.ts +94 -92
- package/dist/plus/git-github/api/types.js +0 -2
- package/dist/plus/git-github/context.d.ts +65 -63
- package/dist/plus/git-github/context.js +13 -9
- package/dist/plus/git-github/context.js.map +1 -1
- package/dist/plus/git-github/models.d.ts +182 -182
- package/dist/plus/git-github/models.js +199 -265
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/blame.d.ts +32 -31
- package/dist/plus/git-github/providers/github/blame.js +137 -150
- package/dist/plus/git-github/providers/github/blame.js.map +1 -1
- package/dist/plus/git-github/providers/github/branches.d.ts +42 -40
- package/dist/plus/git-github/providers/github/branches.js +199 -274
- package/dist/plus/git-github/providers/github/branches.js.map +1 -1
- package/dist/plus/git-github/providers/github/commits.d.ts +35 -33
- package/dist/plus/git-github/providers/github/commits.js +527 -606
- package/dist/plus/git-github/providers/github/commits.js.map +1 -1
- package/dist/plus/git-github/providers/github/config.d.ts +10 -8
- package/dist/plus/git-github/providers/github/config.js +35 -45
- package/dist/plus/git-github/providers/github/config.js.map +1 -1
- package/dist/plus/git-github/providers/github/contributors.d.ts +25 -24
- package/dist/plus/git-github/providers/github/contributors.js +174 -216
- package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
- package/dist/plus/git-github/providers/github/diff.d.ts +34 -32
- package/dist/plus/git-github/providers/github/diff.js +154 -194
- package/dist/plus/git-github/providers/github/diff.js.map +1 -1
- package/dist/plus/git-github/providers/github/graph.d.ts +33 -31
- package/dist/plus/git-github/providers/github/graph.js +400 -452
- package/dist/plus/git-github/providers/github/graph.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.d.ts +33 -31
- package/dist/plus/git-github/providers/github/refs.js +97 -131
- package/dist/plus/git-github/providers/github/refs.js.map +1 -1
- package/dist/plus/git-github/providers/github/remotes.d.ts +8 -6
- package/dist/plus/git-github/providers/github/remotes.js +30 -35
- package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
- package/dist/plus/git-github/providers/github/revision.d.ts +13 -11
- package/dist/plus/git-github/providers/github/revision.js +106 -129
- package/dist/plus/git-github/providers/github/revision.js.map +1 -1
- package/dist/plus/git-github/providers/github/status.d.ts +24 -22
- package/dist/plus/git-github/providers/github/status.js +49 -47
- package/dist/plus/git-github/providers/github/status.js.map +1 -1
- package/dist/plus/git-github/providers/github/tags.d.ts +21 -19
- package/dist/plus/git-github/providers/github/tags.js +78 -103
- package/dist/plus/git-github/providers/github/tags.js.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts +67 -64
- package/dist/plus/git-github/providers/githubGitProvider.js +131 -128
- package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
- package/dist/plus/git-github/providers/githubProvider.d.ts +46 -44
- package/dist/plus/git-github/providers/githubProvider.js +0 -2
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +29 -27
- package/dist/plus/integrations/authentication/cloudIntegrationService.js +173 -208
- package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +126 -107
- package/dist/plus/integrations/authentication/configuredIntegrationService.js +399 -497
- package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +73 -72
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +153 -232
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +61 -59
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js +100 -124
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +14 -12
- package/dist/plus/integrations/authentication/manualTokenProvider.js +26 -51
- package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/models.d.ts +102 -85
- package/dist/plus/integrations/authentication/models.js +55 -54
- package/dist/plus/integrations/authentication/models.js.map +1 -1
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts +19 -17
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js +53 -51
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js.map +1 -1
- package/dist/plus/integrations/collectionMetadata.d.ts +12 -10
- package/dist/plus/integrations/collectionMetadata.js +204 -254
- package/dist/plus/integrations/collectionMetadata.js.map +1 -1
- package/dist/plus/integrations/constants.d.ts +60 -34
- package/dist/plus/integrations/constants.js +157 -132
- package/dist/plus/integrations/constants.js.map +1 -1
- package/dist/plus/integrations/context.d.ts +253 -252
- package/dist/plus/integrations/context.js +0 -2
- package/dist/plus/integrations/errors.d.ts +26 -25
- package/dist/plus/integrations/errors.js +116 -140
- package/dist/plus/integrations/errors.js.map +1 -1
- package/dist/plus/integrations/index.d.ts +36 -40
- package/dist/plus/integrations/index.js +46 -57
- package/dist/plus/integrations/index.js.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +445 -440
- package/dist/plus/integrations/integrationService.js +1054 -1324
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/lite.d.ts +33 -31
- package/dist/plus/integrations/lite.js +84 -122
- package/dist/plus/integrations/lite.js.map +1 -1
- package/dist/plus/integrations/manager.d.ts +592 -580
- package/dist/plus/integrations/manager.js +0 -2
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +420 -415
- package/dist/plus/integrations/models/gitHostIntegration.js +1180 -1293
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +200 -190
- package/dist/plus/integrations/models/integration.js +577 -722
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issueCache.d.ts +15 -13
- package/dist/plus/integrations/models/issueCache.js +9 -7
- package/dist/plus/integrations/models/issueCache.js.map +1 -1
- package/dist/plus/integrations/models/issueReads.d.ts +108 -85
- package/dist/plus/integrations/models/issueReads.js +0 -2
- package/dist/plus/integrations/models/issuesIntegration.d.ts +72 -71
- package/dist/plus/integrations/models/issuesIntegration.js +160 -186
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/models/pullRequestReads.d.ts +9 -7
- package/dist/plus/integrations/models/pullRequestReads.js +0 -2
- package/dist/plus/integrations/providerFilters.d.ts +8 -20
- package/dist/plus/integrations/providerFilters.js +11 -7
- package/dist/plus/integrations/providerFilters.js.map +1 -1
- package/dist/plus/integrations/providers/accounts.d.ts +7 -5
- package/dist/plus/integrations/providers/accounts.js +21 -31
- package/dist/plus/integrations/providers/accounts.js.map +1 -1
- package/dist/plus/integrations/providers/apiClients.d.ts +13 -10
- package/dist/plus/integrations/providers/apiClients.js +51 -36
- package/dist/plus/integrations/providers/apiClients.js.map +1 -1
- package/dist/plus/integrations/providers/apiConfig.d.ts +31 -29
- package/dist/plus/integrations/providers/apiConfig.js +18 -16
- package/dist/plus/integrations/providers/apiConfig.js.map +1 -1
- package/dist/plus/integrations/providers/azure/azure.d.ts +69 -54
- package/dist/plus/integrations/providers/azure/azure.js +453 -515
- package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
- package/dist/plus/integrations/providers/azure/models.d.ts +258 -229
- package/dist/plus/integrations/providers/azure/models.js +241 -203
- package/dist/plus/integrations/providers/azure/models.js.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts +132 -130
- package/dist/plus/integrations/providers/azureDevOps.js +775 -921
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +50 -48
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js +417 -585
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts +179 -179
- package/dist/plus/integrations/providers/bitbucket/models.js +96 -144
- package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +111 -109
- package/dist/plus/integrations/providers/bitbucket-server/models.js +102 -121
- package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts +79 -79
- package/dist/plus/integrations/providers/bitbucket-server.js +205 -241
- package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts +80 -79
- package/dist/plus/integrations/providers/bitbucket.js +390 -477
- package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.d.ts +5 -3
- package/dist/plus/integrations/providers/github/github.js +38 -45
- package/dist/plus/integrations/providers/github/github.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.utils.d.ts +8 -5
- package/dist/plus/integrations/providers/github/github.utils.js +7 -4
- package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
- package/dist/plus/integrations/providers/github/models.d.ts +2 -3
- package/dist/plus/integrations/providers/github/models.js +2 -2
- package/dist/plus/integrations/providers/github.d.ts +174 -172
- package/dist/plus/integrations/providers/github.js +431 -523
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +67 -66
- package/dist/plus/integrations/providers/gitlab/gitlab.js +546 -757
- package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +7 -5
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +45 -46
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/models.d.ts +109 -107
- package/dist/plus/integrations/providers/gitlab/models.js +74 -89
- package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts +115 -114
- package/dist/plus/integrations/providers/gitlab.js +440 -528
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/issueSorts.d.ts +3 -1
- package/dist/plus/integrations/providers/issueSorts.js +66 -62
- package/dist/plus/integrations/providers/issueSorts.js.map +1 -1
- package/dist/plus/integrations/providers/jira-server.d.ts +90 -0
- package/dist/plus/integrations/providers/jira-server.js +322 -0
- package/dist/plus/integrations/providers/jira-server.js.map +1 -0
- package/dist/plus/integrations/providers/jira.d.ts +41 -39
- package/dist/plus/integrations/providers/jira.js +378 -440
- package/dist/plus/integrations/providers/jira.js.map +1 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +3 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.js +85 -89
- package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -1
- package/dist/plus/integrations/providers/linear.d.ts +63 -62
- package/dist/plus/integrations/providers/linear.js +315 -358
- package/dist/plus/integrations/providers/linear.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +514 -503
- package/dist/plus/integrations/providers/models.js +818 -856
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providerErrors.d.ts +35 -2
- package/dist/plus/integrations/providers/providerErrors.js +120 -81
- package/dist/plus/integrations/providers/providerErrors.js.map +1 -1
- package/dist/plus/integrations/providers/providersApi.d.ts +299 -271
- package/dist/plus/integrations/providers/providersApi.js +1048 -1001
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts +21 -21
- package/dist/plus/integrations/providers/pullRequestReviews.js +64 -90
- package/dist/plus/integrations/providers/pullRequestReviews.js.map +1 -1
- package/dist/plus/integrations/providers/trello.d.ts +35 -34
- package/dist/plus/integrations/providers/trello.js +136 -143
- package/dist/plus/integrations/providers/trello.js.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts +4 -2
- package/dist/plus/integrations/providers/utils/providerPaging.js +131 -156
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
- package/dist/plus/integrations/providers/utils.d.ts +51 -50
- package/dist/plus/integrations/providers/utils.js +185 -296
- package/dist/plus/integrations/providers/utils.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts +10 -8
- package/dist/plus/integrations/reads/broaden.js +320 -439
- package/dist/plus/integrations/reads/broaden.js.map +1 -1
- package/dist/plus/integrations/reads/context.d.ts +47 -45
- package/dist/plus/integrations/reads/context.js +0 -2
- package/dist/plus/integrations/reads/counts.d.ts +74 -72
- package/dist/plus/integrations/reads/counts.js +233 -314
- package/dist/plus/integrations/reads/counts.js.map +1 -1
- package/dist/plus/integrations/reads/cursors.d.ts +26 -24
- package/dist/plus/integrations/reads/cursors.js +80 -115
- package/dist/plus/integrations/reads/cursors.js.map +1 -1
- package/dist/plus/integrations/reads/drains.d.ts +24 -23
- package/dist/plus/integrations/reads/drains.js +225 -298
- package/dist/plus/integrations/reads/drains.js.map +1 -1
- package/dist/plus/integrations/reads/filters.d.ts +84 -80
- package/dist/plus/integrations/reads/filters.js +326 -414
- package/dist/plus/integrations/reads/filters.js.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.d.ts +14 -12
- package/dist/plus/integrations/reads/hierarchy.js +248 -332
- package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts +11 -9
- package/dist/plus/integrations/reads/hierarchy.utils.js +109 -108
- package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -1
- package/dist/plus/integrations/reads/issueBatch.d.ts +28 -26
- package/dist/plus/integrations/reads/issueBatch.js +83 -85
- package/dist/plus/integrations/reads/issueBatch.js.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts +42 -33
- package/dist/plus/integrations/reads/issueTracker.js +265 -386
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
- package/dist/plus/integrations/reads/issues.d.ts +50 -47
- package/dist/plus/integrations/reads/issues.js +202 -331
- package/dist/plus/integrations/reads/issues.js.map +1 -1
- package/dist/plus/integrations/reads/ordering.d.ts +32 -30
- package/dist/plus/integrations/reads/ordering.js +47 -43
- package/dist/plus/integrations/reads/ordering.js.map +1 -1
- package/dist/plus/integrations/reads/paging.d.ts +59 -57
- package/dist/plus/integrations/reads/paging.js +244 -261
- package/dist/plus/integrations/reads/paging.js.map +1 -1
- package/dist/plus/integrations/reads/pullRequests.d.ts +37 -35
- package/dist/plus/integrations/reads/pullRequests.js +95 -148
- package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
- package/dist/plus/integrations/reads/resolveRepository.d.ts +15 -13
- package/dist/plus/integrations/reads/resolveRepository.js +147 -229
- package/dist/plus/integrations/reads/resolveRepository.js.map +1 -1
- package/dist/plus/integrations/reads/searchIssues.d.ts +29 -27
- package/dist/plus/integrations/reads/searchIssues.js +104 -153
- package/dist/plus/integrations/reads/searchIssues.js.map +1 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts +20 -18
- package/dist/plus/integrations/reads/searchPullRequests.js +91 -113
- package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
- package/dist/plus/integrations/reads/sweeps.d.ts +6 -4
- package/dist/plus/integrations/reads/sweeps.js +143 -178
- package/dist/plus/integrations/reads/sweeps.js.map +1 -1
- package/dist/plus/integrations/reads/trackerIssue.d.ts +24 -16
- package/dist/plus/integrations/reads/trackerIssue.js +52 -49
- package/dist/plus/integrations/reads/trackerIssue.js.map +1 -1
- package/dist/plus/integrations/reads/warnings.d.ts +10 -7
- package/dist/plus/integrations/reads/warnings.js +264 -291
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/dist/plus/integrations/results.d.ts +201 -199
- package/dist/plus/integrations/results.js +105 -119
- package/dist/plus/integrations/results.js.map +1 -1
- package/dist/plus/integrations/telemetry.d.ts +7 -5
- package/dist/plus/integrations/telemetry.js +9 -9
- package/dist/plus/integrations/telemetry.js.map +1 -1
- package/dist/plus/integrations/utils/domain.utils.d.ts +21 -0
- package/dist/plus/integrations/utils/domain.utils.js +55 -22
- package/dist/plus/integrations/utils/domain.utils.js.map +1 -1
- package/dist/plus/integrations/utils/integration.utils.d.ts +30 -6
- package/dist/plus/integrations/utils/integration.utils.js +154 -161
- package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
- package/dist/utils/array.d.ts +9 -7
- package/dist/utils/array.js +110 -126
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/base64.d.ts +2 -2
- package/dist/utils/base64.js +2 -2
- package/dist/utils/brand.d.ts +4 -3
- package/dist/utils/brand.js +0 -2
- package/dist/utils/cancellation.d.ts +24 -24
- package/dist/utils/cancellation.js +152 -167
- package/dist/utils/cancellation.js.map +1 -1
- package/dist/utils/charCode.d.ts +31 -37
- package/dist/utils/charCode.js +41 -37
- package/dist/utils/charCode.js.map +1 -1
- package/dist/utils/coalescedRun.d.ts +10 -8
- package/dist/utils/coalescedRun.js +39 -41
- package/dist/utils/coalescedRun.js.map +1 -1
- package/dist/utils/color.d.ts +137 -135
- package/dist/utils/color.js +535 -660
- package/dist/utils/color.js.map +1 -1
- package/dist/utils/counter.d.ts +5 -3
- package/dist/utils/counter.js +19 -17
- package/dist/utils/counter.js.map +1 -1
- package/dist/utils/crypto.d.ts +2 -2
- package/dist/utils/crypto.js +2 -2
- package/dist/utils/date.d.ts +10 -9
- package/dist/utils/date.js +312 -350
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.d.ts +45 -43
- package/dist/utils/debounce.js +175 -206
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/decorators/debounce.d.ts +3 -1
- package/dist/utils/decorators/debounce.js +16 -19
- package/dist/utils/decorators/debounce.js.map +1 -1
- package/dist/utils/decorators/gate.d.ts +13 -11
- package/dist/utils/decorators/gate.js +97 -124
- package/dist/utils/decorators/gate.js.map +1 -1
- package/dist/utils/decorators/log.d.ts +25 -24
- package/dist/utils/decorators/log.js +166 -227
- package/dist/utils/decorators/log.js.map +1 -1
- package/dist/utils/decorators/memoize.d.ts +10 -8
- package/dist/utils/decorators/memoize.js +49 -57
- package/dist/utils/decorators/memoize.js.map +1 -1
- package/dist/utils/decorators/resolver.d.ts +2 -0
- package/dist/utils/decorators/resolver.js +64 -75
- package/dist/utils/decorators/resolver.js.map +1 -1
- package/dist/utils/decorators/sequentialize.d.ts +15 -14
- package/dist/utils/decorators/sequentialize.js +61 -80
- package/dist/utils/decorators/sequentialize.js.map +1 -1
- package/dist/utils/decorators/serializable.d.ts +2 -0
- package/dist/utils/decorators/serializable.js +30 -39
- package/dist/utils/decorators/serializable.js.map +1 -1
- package/dist/utils/dedupedAsyncCache.d.ts +23 -21
- package/dist/utils/dedupedAsyncCache.js +63 -66
- package/dist/utils/dedupedAsyncCache.js.map +1 -1
- package/dist/utils/diff.d.ts +2 -0
- package/dist/utils/diff.js +41 -51
- package/dist/utils/diff.js.map +1 -1
- package/dist/utils/disposable.d.ts +15 -13
- package/dist/utils/disposable.js +71 -80
- package/dist/utils/disposable.js.map +1 -1
- package/dist/utils/dom.d.ts +45 -0
- package/dist/utils/dom.js +106 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/encoding.d.ts +2 -0
- package/dist/utils/encoding.js +7 -5
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/env/browser/base64.d.ts +2 -0
- package/dist/utils/env/browser/base64.js +32 -34
- package/dist/utils/env/browser/base64.js.map +1 -1
- package/dist/utils/env/browser/crypto.d.ts +2 -0
- package/dist/utils/env/browser/crypto.js +17 -13
- package/dist/utils/env/browser/crypto.js.map +1 -1
- package/dist/utils/env/browser/fs.d.ts +2 -0
- package/dist/utils/env/browser/fs.js +6 -2
- package/dist/utils/env/browser/fs.js.map +1 -1
- package/dist/utils/env/browser/hex.d.ts +2 -0
- package/dist/utils/env/browser/hex.js +271 -29
- package/dist/utils/env/browser/hex.js.map +1 -1
- package/dist/utils/env/browser/hrtime.d.ts +2 -0
- package/dist/utils/env/browser/hrtime.js +17 -13
- package/dist/utils/env/browser/hrtime.js.map +1 -1
- package/dist/utils/env/browser/logScope.d.ts +3 -1
- package/dist/utils/env/browser/logScope.js +39 -43
- package/dist/utils/env/browser/logScope.js.map +1 -1
- package/dist/utils/env/browser/md5.d.ts +2 -0
- package/dist/utils/env/browser/md5.js +211 -184
- package/dist/utils/env/browser/md5.js.map +1 -1
- package/dist/utils/env/browser/platform.d.ts +3 -0
- package/dist/utils/env/browser/platform.js +11 -4
- package/dist/utils/env/browser/platform.js.map +1 -1
- package/dist/utils/env/node/base64.d.ts +2 -0
- package/dist/utils/env/node/base64.js +13 -11
- package/dist/utils/env/node/base64.js.map +1 -1
- package/dist/utils/env/node/crypto.d.ts +2 -0
- package/dist/utils/env/node/crypto.js +13 -9
- package/dist/utils/env/node/crypto.js.map +1 -1
- package/dist/utils/env/node/exec.d.ts +66 -65
- package/dist/utils/env/node/exec.js +255 -267
- package/dist/utils/env/node/exec.js.map +1 -1
- package/dist/utils/env/node/fs.d.ts +2 -0
- package/dist/utils/env/node/fs.js +7 -3
- package/dist/utils/env/node/fs.js.map +1 -1
- package/dist/utils/env/node/hex.d.ts +2 -0
- package/dist/utils/env/node/hex.js +10 -6
- package/dist/utils/env/node/hex.js.map +1 -1
- package/dist/utils/env/node/hrtime.d.ts +2 -2
- package/dist/utils/env/node/hrtime.js +2 -2
- package/dist/utils/env/node/logScope.d.ts +3 -1
- package/dist/utils/env/node/logScope.js +52 -42
- package/dist/utils/env/node/logScope.js.map +1 -1
- package/dist/utils/env/node/platform.d.ts +3 -0
- package/dist/utils/env/node/platform.js +11 -4
- package/dist/utils/env/node/platform.js.map +1 -1
- package/dist/utils/error.d.ts +8 -6
- package/dist/utils/error.js +16 -14
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/event.d.ts +27 -25
- package/dist/utils/event.js +141 -170
- package/dist/utils/event.js.map +1 -1
- package/dist/utils/formatter.d.ts +15 -14
- package/dist/utils/formatter.js +96 -129
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/fs.d.ts +2 -2
- package/dist/utils/fs.js +2 -2
- package/dist/utils/function.d.ts +5 -6
- package/dist/utils/function.js +73 -90
- package/dist/utils/function.js.map +1 -1
- package/dist/utils/fuzzy.d.ts +18 -16
- package/dist/utils/fuzzy.js +121 -127
- package/dist/utils/fuzzy.js.map +1 -1
- package/dist/utils/gitRefs.d.ts +11 -0
- package/dist/utils/gitRefs.js +21 -0
- package/dist/utils/gitRefs.js.map +1 -0
- package/dist/utils/hash.d.ts +2 -0
- package/dist/utils/hash.js +49 -47
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/hex.d.ts +2 -2
- package/dist/utils/hex.js +2 -2
- package/dist/utils/hostingServiceType.d.ts +8 -0
- package/dist/utils/hostingServiceType.js +0 -0
- package/dist/utils/hrtime.d.ts +4 -2
- package/dist/utils/hrtime.js +8 -5
- package/dist/utils/hrtime.js.map +1 -1
- package/dist/utils/iterable.d.ts +3 -1
- package/dist/utils/iterable.js +591 -616
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/keys/chord.d.ts +27 -25
- package/dist/utils/keys/chord.js +108 -122
- package/dist/utils/keys/chord.js.map +1 -1
- package/dist/utils/keys/keybinding.d.ts +98 -22
- package/dist/utils/keys/keybinding.js +151 -53
- package/dist/utils/keys/keybinding.js.map +1 -1
- package/dist/utils/keys/keymapDispatcher.d.ts +66 -0
- package/dist/utils/keys/keymapDispatcher.js +187 -0
- package/dist/utils/keys/keymapDispatcher.js.map +1 -0
- package/dist/utils/lazy.d.ts +14 -12
- package/dist/utils/lazy.js +35 -36
- package/dist/utils/lazy.js.map +1 -1
- package/dist/utils/loggable.d.ts +3 -1
- package/dist/utils/loggable.js +6 -2
- package/dist/utils/loggable.js.map +1 -1
- package/dist/utils/logger.d.ts +48 -46
- package/dist/utils/logger.js +219 -304
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/logger.scoped.d.ts +30 -28
- package/dist/utils/logger.scoped.js +133 -147
- package/dist/utils/logger.scoped.js.map +1 -1
- package/dist/utils/lruMap.d.ts +34 -32
- package/dist/utils/lruMap.js +97 -101
- package/dist/utils/lruMap.js.map +1 -1
- package/dist/utils/markdown.d.ts +5 -3
- package/dist/utils/markdown.js +52 -88
- package/dist/utils/markdown.js.map +1 -1
- package/dist/utils/mru.d.ts +13 -11
- package/dist/utils/mru.js +57 -62
- package/dist/utils/mru.js.map +1 -1
- package/dist/utils/object.d.ts +9 -34
- package/dist/utils/object.js +132 -191
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/paging.d.ts +36 -34
- package/dist/utils/paging.js +42 -45
- package/dist/utils/paging.js.map +1 -1
- package/dist/utils/path.d.ts +4 -1
- package/dist/utils/path.js +129 -162
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/pausedOperation.d.ts +42 -0
- package/dist/utils/pausedOperation.js +62 -0
- package/dist/utils/pausedOperation.js.map +1 -0
- package/dist/utils/platform.d.ts +2 -2
- package/dist/utils/platform.js +2 -2
- package/dist/utils/plural.d.ts +21 -0
- package/dist/utils/plural.js +136 -0
- package/dist/utils/plural.js.map +1 -0
- package/dist/utils/promise.d.ts +19 -18
- package/dist/utils/promise.js +323 -360
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/promiseCache.d.ts +331 -330
- package/dist/utils/promiseCache.js +602 -717
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/resourceUsage.d.ts +2 -0
- package/dist/utils/resourceUsage.js +0 -2
- package/dist/utils/searchTree.d.ts +51 -49
- package/dist/utils/searchTree.js +306 -396
- package/dist/utils/searchTree.js.map +1 -1
- package/dist/utils/stopwatch.d.ts +33 -32
- package/dist/utils/stopwatch.js +67 -81
- package/dist/utils/stopwatch.js.map +1 -1
- package/dist/utils/string.d.ts +17 -24
- package/dist/utils/string.js +787 -803
- package/dist/utils/string.js.map +1 -1
- package/dist/utils/subscriptionManager.d.ts +15 -14
- package/dist/utils/subscriptionManager.js +36 -33
- package/dist/utils/subscriptionManager.js.map +1 -1
- package/dist/utils/trie.d.ts +64 -62
- package/dist/utils/trie.js +438 -580
- package/dist/utils/trie.js.map +1 -1
- package/dist/utils/types.d.ts +8 -16
- package/dist/utils/types.js +0 -2
- package/dist/utils/uri.d.ts +27 -25
- package/dist/utils/uri.js +42 -42
- package/dist/utils/uri.js.map +1 -1
- package/dist/utils/validation.d.ts +13 -12
- package/dist/utils/validation.js +17 -23
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/version.d.ts +6 -5
- package/dist/utils/version.js +77 -104
- package/dist/utils/version.js.map +1 -1
- package/docs/integrations.md +101 -24
- package/docs/kepler-read-api-parity.md +15 -12
- package/package.json +18 -8
- package/dist/git/cache.d.ts.map +0 -1
- package/dist/git/context.d.ts.map +0 -1
- package/dist/git/errors.d.ts.map +0 -1
- package/dist/git/features.d.ts.map +0 -1
- package/dist/git/gitHealth.d.ts.map +0 -1
- package/dist/git/models/author.d.ts.map +0 -1
- package/dist/git/models/author.js.map +0 -1
- package/dist/git/models/autolink.d.ts.map +0 -1
- package/dist/git/models/autolink.js.map +0 -1
- package/dist/git/models/blame.d.ts.map +0 -1
- package/dist/git/models/blame.js.map +0 -1
- package/dist/git/models/branch.d.ts.map +0 -1
- package/dist/git/models/commit.d.ts.map +0 -1
- package/dist/git/models/contributor.d.ts.map +0 -1
- package/dist/git/models/defaultBranch.d.ts.map +0 -1
- package/dist/git/models/defaultBranch.js.map +0 -1
- package/dist/git/models/diff.d.ts.map +0 -1
- package/dist/git/models/diff.js.map +0 -1
- package/dist/git/models/file.d.ts.map +0 -1
- package/dist/git/models/file.js.map +0 -1
- package/dist/git/models/fileChange.d.ts.map +0 -1
- package/dist/git/models/fileStatus.d.ts.map +0 -1
- package/dist/git/models/graph.d.ts.map +0 -1
- package/dist/git/models/graphSearch.d.ts.map +0 -1
- package/dist/git/models/graphSearch.js.map +0 -1
- package/dist/git/models/graphSession.d.ts.map +0 -1
- package/dist/git/models/issue.d.ts.map +0 -1
- package/dist/git/models/issueOrPullRequest.d.ts.map +0 -1
- package/dist/git/models/issueOrPullRequest.js.map +0 -1
- package/dist/git/models/lineRange.d.ts.map +0 -1
- package/dist/git/models/lineRange.js.map +0 -1
- package/dist/git/models/log.d.ts.map +0 -1
- package/dist/git/models/log.js.map +0 -1
- package/dist/git/models/mergeConflicts.d.ts.map +0 -1
- package/dist/git/models/mergeConflicts.js.map +0 -1
- package/dist/git/models/patch.d.ts.map +0 -1
- package/dist/git/models/patch.js.map +0 -1
- package/dist/git/models/pausedOperationStatus.d.ts.map +0 -1
- package/dist/git/models/pausedOperationStatus.js.map +0 -1
- package/dist/git/models/pullRequest.d.ts.map +0 -1
- package/dist/git/models/rebase.d.ts.map +0 -1
- package/dist/git/models/rebase.js.map +0 -1
- package/dist/git/models/reference.d.ts.map +0 -1
- package/dist/git/models/reference.js.map +0 -1
- package/dist/git/models/reflog.d.ts.map +0 -1
- package/dist/git/models/remote.d.ts.map +0 -1
- package/dist/git/models/remoteProvider.d.ts.map +0 -1
- package/dist/git/models/remoteResource.d.ts.map +0 -1
- package/dist/git/models/repository.d.ts.map +0 -1
- package/dist/git/models/repositoryChangeEvent.d.ts.map +0 -1
- package/dist/git/models/repositoryIdentities.d.ts.map +0 -1
- package/dist/git/models/repositoryMetadata.d.ts.map +0 -1
- package/dist/git/models/repositoryMetadata.js.map +0 -1
- package/dist/git/models/resourceDescriptor.d.ts.map +0 -1
- package/dist/git/models/resourceDescriptor.js.map +0 -1
- package/dist/git/models/revision.d.ts.map +0 -1
- package/dist/git/models/search.d.ts.map +0 -1
- package/dist/git/models/shortlog.d.ts.map +0 -1
- package/dist/git/models/shortlog.js.map +0 -1
- package/dist/git/models/signature.d.ts.map +0 -1
- package/dist/git/models/signature.js.map +0 -1
- package/dist/git/models/staging.d.ts.map +0 -1
- package/dist/git/models/staging.js.map +0 -1
- package/dist/git/models/stash.d.ts.map +0 -1
- package/dist/git/models/stash.js.map +0 -1
- package/dist/git/models/status.d.ts.map +0 -1
- package/dist/git/models/statusFile.d.ts.map +0 -1
- package/dist/git/models/tag.d.ts.map +0 -1
- package/dist/git/models/tree.d.ts.map +0 -1
- package/dist/git/models/tree.js.map +0 -1
- package/dist/git/models/user.d.ts.map +0 -1
- package/dist/git/models/user.js.map +0 -1
- package/dist/git/models/worktree.d.ts.map +0 -1
- package/dist/git/parsers/diffParser.d.ts.map +0 -1
- package/dist/git/parsers/rebaseTodoParser.d.ts.map +0 -1
- package/dist/git/providers/blame.d.ts.map +0 -1
- package/dist/git/providers/blame.js.map +0 -1
- package/dist/git/providers/branches.d.ts.map +0 -1
- package/dist/git/providers/branches.js.map +0 -1
- package/dist/git/providers/commits.d.ts.map +0 -1
- package/dist/git/providers/commits.js.map +0 -1
- package/dist/git/providers/config.d.ts.map +0 -1
- package/dist/git/providers/config.js.map +0 -1
- package/dist/git/providers/contributors.d.ts.map +0 -1
- package/dist/git/providers/contributors.js.map +0 -1
- package/dist/git/providers/diff.d.ts.map +0 -1
- package/dist/git/providers/diff.js.map +0 -1
- package/dist/git/providers/graph.d.ts.map +0 -1
- package/dist/git/providers/graph.js.map +0 -1
- package/dist/git/providers/maintenance.d.ts.map +0 -1
- package/dist/git/providers/maintenance.js.map +0 -1
- package/dist/git/providers/operations.d.ts.map +0 -1
- package/dist/git/providers/operations.js.map +0 -1
- package/dist/git/providers/patch.d.ts.map +0 -1
- package/dist/git/providers/patch.js.map +0 -1
- package/dist/git/providers/pausedOperations.d.ts.map +0 -1
- package/dist/git/providers/pausedOperations.js.map +0 -1
- package/dist/git/providers/provider.d.ts.map +0 -1
- package/dist/git/providers/provider.js.map +0 -1
- package/dist/git/providers/refs.d.ts.map +0 -1
- package/dist/git/providers/refs.js.map +0 -1
- package/dist/git/providers/remotes.d.ts.map +0 -1
- package/dist/git/providers/remotes.js.map +0 -1
- package/dist/git/providers/revision.d.ts.map +0 -1
- package/dist/git/providers/revision.js.map +0 -1
- package/dist/git/providers/shared/remotes.d.ts.map +0 -1
- package/dist/git/providers/staging.d.ts.map +0 -1
- package/dist/git/providers/staging.js.map +0 -1
- package/dist/git/providers/stash.d.ts.map +0 -1
- package/dist/git/providers/stash.js.map +0 -1
- package/dist/git/providers/status.d.ts.map +0 -1
- package/dist/git/providers/status.js.map +0 -1
- package/dist/git/providers/tags.d.ts.map +0 -1
- package/dist/git/providers/tags.js.map +0 -1
- package/dist/git/providers/types.d.ts.map +0 -1
- package/dist/git/providers/types.js.map +0 -1
- package/dist/git/providers/worktrees.d.ts.map +0 -1
- package/dist/git/providers/worktrees.js.map +0 -1
- package/dist/git/remotes/azure-devops.d.ts.map +0 -1
- package/dist/git/remotes/bitbucket-server.d.ts.map +0 -1
- package/dist/git/remotes/bitbucket.d.ts.map +0 -1
- package/dist/git/remotes/custom.d.ts.map +0 -1
- package/dist/git/remotes/gerrit.d.ts.map +0 -1
- package/dist/git/remotes/gitea.d.ts.map +0 -1
- package/dist/git/remotes/github.d.ts.map +0 -1
- package/dist/git/remotes/gitlab.d.ts.map +0 -1
- package/dist/git/remotes/google-source.d.ts.map +0 -1
- package/dist/git/remotes/matcher.d.ts.map +0 -1
- package/dist/git/repositoryService.d.ts.map +0 -1
- package/dist/git/run.types.d.ts.map +0 -1
- package/dist/git/run.types.js.map +0 -1
- package/dist/git/service.d.ts.map +0 -1
- package/dist/git/utils/autolink.utils.d.ts.map +0 -1
- package/dist/git/utils/blame.utils.d.ts.map +0 -1
- package/dist/git/utils/branch.utils.d.ts.map +0 -1
- package/dist/git/utils/commit.utils.d.ts.map +0 -1
- package/dist/git/utils/config.utils.d.ts.map +0 -1
- package/dist/git/utils/conflictResolution.utils.d.ts.map +0 -1
- package/dist/git/utils/contributor.utils.d.ts.map +0 -1
- package/dist/git/utils/fetch.utils.d.ts.map +0 -1
- package/dist/git/utils/fileStatus.utils.d.ts.map +0 -1
- package/dist/git/utils/graph.utils.d.ts.map +0 -1
- package/dist/git/utils/issue.utils.d.ts.map +0 -1
- package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +0 -1
- package/dist/git/utils/mergeConflicts.utils.d.ts.map +0 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +0 -1
- package/dist/git/utils/pullRequest.utils.d.ts.map +0 -1
- package/dist/git/utils/reachability.utils.d.ts.map +0 -1
- package/dist/git/utils/rebase.utils.d.ts.map +0 -1
- package/dist/git/utils/reference.utils.d.ts.map +0 -1
- package/dist/git/utils/remote.utils.d.ts.map +0 -1
- package/dist/git/utils/repository.utils.d.ts.map +0 -1
- package/dist/git/utils/resourceDescriptor.utils.d.ts.map +0 -1
- package/dist/git/utils/revision.utils.d.ts.map +0 -1
- package/dist/git/utils/search.utils.d.ts.map +0 -1
- package/dist/git/utils/sorting.d.ts.map +0 -1
- package/dist/git/utils/sshKey.utils.d.ts.map +0 -1
- package/dist/git/utils/status.utils.d.ts.map +0 -1
- package/dist/git/utils/statusFile.utils.d.ts.map +0 -1
- package/dist/git/utils/tag.utils.d.ts.map +0 -1
- package/dist/git/utils/tooltip.utils.d.ts.map +0 -1
- package/dist/git/utils/uriAuthority.d.ts.map +0 -1
- package/dist/git/utils/user.utils.d.ts.map +0 -1
- package/dist/git/utils/worktree.utils.d.ts.map +0 -1
- package/dist/git/watching/changeEvent.d.ts.map +0 -1
- package/dist/git/watching/classifyChange.d.ts.map +0 -1
- package/dist/git/watching/gitIgnoreFilter.d.ts.map +0 -1
- package/dist/git/watching/initWatcher.d.ts.map +0 -1
- package/dist/git/watching/provider.d.ts.map +0 -1
- package/dist/git/watching/provider.js.map +0 -1
- package/dist/git/watching/watchGroup.d.ts.map +0 -1
- package/dist/git/watching/watchService.d.ts.map +0 -1
- package/dist/git/watching/watchSession.d.ts.map +0 -1
- package/dist/git/watching/watcherPatterns.d.ts.map +0 -1
- package/dist/git-cli/cliGitProvider.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.errors.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.errors.js.map +0 -1
- package/dist/git-cli/exec/exec.js.map +0 -1
- package/dist/git-cli/exec/exec.types.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.types.js.map +0 -1
- package/dist/git-cli/exec/features.d.ts.map +0 -1
- package/dist/git-cli/exec/features.js.map +0 -1
- package/dist/git-cli/exec/git.d.ts.map +0 -1
- package/dist/git-cli/exec/gitQueue.d.ts.map +0 -1
- package/dist/git-cli/exec/locator.d.ts.map +0 -1
- package/dist/git-cli/parsers/blameParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/indexParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/logParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/refParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/reflogParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/remoteParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/shortlogParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/signatureParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/statusParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/treeParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/worktreeParser.d.ts.map +0 -1
- package/dist/git-cli/providers/blame.d.ts.map +0 -1
- package/dist/git-cli/providers/branches.d.ts.map +0 -1
- package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +0 -1
- package/dist/git-cli/providers/commits.d.ts.map +0 -1
- package/dist/git-cli/providers/config.d.ts.map +0 -1
- package/dist/git-cli/providers/contributors.d.ts.map +0 -1
- package/dist/git-cli/providers/diff.d.ts.map +0 -1
- package/dist/git-cli/providers/graph.d.ts.map +0 -1
- package/dist/git-cli/providers/maintenance.d.ts.map +0 -1
- package/dist/git-cli/providers/operations.d.ts.map +0 -1
- package/dist/git-cli/providers/patch.d.ts.map +0 -1
- package/dist/git-cli/providers/pausedOperations.d.ts.map +0 -1
- package/dist/git-cli/providers/refs.d.ts.map +0 -1
- package/dist/git-cli/providers/remotes.d.ts.map +0 -1
- package/dist/git-cli/providers/revision.d.ts.map +0 -1
- package/dist/git-cli/providers/staging.d.ts.map +0 -1
- package/dist/git-cli/providers/stash.d.ts.map +0 -1
- package/dist/git-cli/providers/status.d.ts.map +0 -1
- package/dist/git-cli/providers/tags.d.ts.map +0 -1
- package/dist/git-cli/providers/worktrees.d.ts.map +0 -1
- package/dist/git-cli/service.d.ts.map +0 -1
- package/dist/ipc/discovery.d.ts.map +0 -1
- package/dist/ipc/ipcServer.d.ts.map +0 -1
- package/dist/plus/agents/agentCapabilities.d.ts.map +0 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +0 -1
- package/dist/plus/agents/providers/gkAgentProvider.d.ts.map +0 -1
- package/dist/plus/agents/sanitizePrompt.d.ts.map +0 -1
- package/dist/plus/agents/stateMachine.d.ts.map +0 -1
- package/dist/plus/agents/types.d.ts.map +0 -1
- package/dist/plus/ai/constants.d.ts.map +0 -1
- package/dist/plus/ai/errors.d.ts.map +0 -1
- package/dist/plus/ai/models/conversation.d.ts.map +0 -1
- package/dist/plus/ai/models/model.d.ts.map +0 -1
- package/dist/plus/ai/models/promptTemplates.d.ts.map +0 -1
- package/dist/plus/ai/models/promptTemplates.js.map +0 -1
- package/dist/plus/ai/models/provider.d.ts.map +0 -1
- package/dist/plus/ai/models/provider.js.map +0 -1
- package/dist/plus/ai/models/results.d.ts.map +0 -1
- package/dist/plus/ai/models/results.js.map +0 -1
- package/dist/plus/ai/prompts.d.ts.map +0 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/azureProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/context.d.ts.map +0 -1
- package/dist/plus/ai/providers/context.js.map +0 -1
- package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +0 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/responseFormatCache.d.ts.map +0 -1
- package/dist/plus/ai/providers/xaiProvider.d.ts.map +0 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +0 -1
- package/dist/plus/ai/utils/results.utils.d.ts.map +0 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts.map +0 -1
- package/dist/plus/git-github/api/config.d.ts.map +0 -1
- package/dist/plus/git-github/api/github.d.ts.map +0 -1
- package/dist/plus/git-github/api/github.utils.d.ts.map +0 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts.map +0 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +0 -1
- package/dist/plus/git-github/api/token.d.ts.map +0 -1
- package/dist/plus/git-github/api/token.js.map +0 -1
- package/dist/plus/git-github/api/tokenUtils.d.ts.map +0 -1
- package/dist/plus/git-github/api/types.d.ts.map +0 -1
- package/dist/plus/git-github/api/types.js.map +0 -1
- package/dist/plus/git-github/context.d.ts.map +0 -1
- package/dist/plus/git-github/models.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/blame.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/branches.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/commits.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/config.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/contributors.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/diff.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/graph.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/refs.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/remotes.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/revision.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/status.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/tags.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubProvider.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubProvider.js.map +0 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/models.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts.map +0 -1
- package/dist/plus/integrations/collectionMetadata.d.ts.map +0 -1
- package/dist/plus/integrations/constants.d.ts.map +0 -1
- package/dist/plus/integrations/context.d.ts.map +0 -1
- package/dist/plus/integrations/context.js.map +0 -1
- package/dist/plus/integrations/errors.d.ts.map +0 -1
- package/dist/plus/integrations/index.d.ts.map +0 -1
- package/dist/plus/integrations/integrationService.d.ts.map +0 -1
- package/dist/plus/integrations/lite.d.ts.map +0 -1
- package/dist/plus/integrations/manager.d.ts.map +0 -1
- package/dist/plus/integrations/manager.js.map +0 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +0 -1
- package/dist/plus/integrations/models/integration.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueCache.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueReads.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueReads.js.map +0 -1
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +0 -1
- package/dist/plus/integrations/models/pullRequestReads.d.ts.map +0 -1
- package/dist/plus/integrations/models/pullRequestReads.js.map +0 -1
- package/dist/plus/integrations/providerFilters.d.ts.map +0 -1
- package/dist/plus/integrations/providers/accounts.d.ts.map +0 -1
- package/dist/plus/integrations/providers/apiClients.d.ts.map +0 -1
- package/dist/plus/integrations/providers/apiConfig.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azure/azure.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azure/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/github.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/github.utils.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/models.js.map +0 -1
- package/dist/plus/integrations/providers/github.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab.d.ts.map +0 -1
- package/dist/plus/integrations/providers/issueSorts.d.ts.map +0 -1
- package/dist/plus/integrations/providers/jira.d.ts.map +0 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts.map +0 -1
- package/dist/plus/integrations/providers/linear.d.ts.map +0 -1
- package/dist/plus/integrations/providers/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/providerErrors.d.ts.map +0 -1
- package/dist/plus/integrations/providers/providersApi.d.ts.map +0 -1
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts.map +0 -1
- package/dist/plus/integrations/providers/trello.d.ts.map +0 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +0 -1
- package/dist/plus/integrations/providers/utils.d.ts.map +0 -1
- package/dist/plus/integrations/reads/broaden.d.ts.map +0 -1
- package/dist/plus/integrations/reads/context.d.ts.map +0 -1
- package/dist/plus/integrations/reads/context.js.map +0 -1
- package/dist/plus/integrations/reads/counts.d.ts.map +0 -1
- package/dist/plus/integrations/reads/cursors.d.ts.map +0 -1
- package/dist/plus/integrations/reads/drains.d.ts.map +0 -1
- package/dist/plus/integrations/reads/filters.d.ts.map +0 -1
- package/dist/plus/integrations/reads/hierarchy.d.ts.map +0 -1
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issueBatch.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issues.d.ts.map +0 -1
- package/dist/plus/integrations/reads/ordering.d.ts.map +0 -1
- package/dist/plus/integrations/reads/paging.d.ts.map +0 -1
- package/dist/plus/integrations/reads/pullRequests.d.ts.map +0 -1
- package/dist/plus/integrations/reads/resolveRepository.d.ts.map +0 -1
- package/dist/plus/integrations/reads/searchIssues.d.ts.map +0 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +0 -1
- package/dist/plus/integrations/reads/sweeps.d.ts.map +0 -1
- package/dist/plus/integrations/reads/trackerIssue.d.ts.map +0 -1
- package/dist/plus/integrations/reads/warnings.d.ts.map +0 -1
- package/dist/plus/integrations/results.d.ts.map +0 -1
- package/dist/plus/integrations/telemetry.d.ts.map +0 -1
- package/dist/plus/integrations/utils/domain.utils.d.ts.map +0 -1
- package/dist/plus/integrations/utils/integration.utils.d.ts.map +0 -1
- package/dist/utils/array.d.ts.map +0 -1
- package/dist/utils/base64.d.ts.map +0 -1
- package/dist/utils/base64.js.map +0 -1
- package/dist/utils/brand.d.ts.map +0 -1
- package/dist/utils/brand.js.map +0 -1
- package/dist/utils/cancellation.d.ts.map +0 -1
- package/dist/utils/charCode.d.ts.map +0 -1
- package/dist/utils/coalescedRun.d.ts.map +0 -1
- package/dist/utils/color.d.ts.map +0 -1
- package/dist/utils/counter.d.ts.map +0 -1
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/crypto.js.map +0 -1
- package/dist/utils/date.d.ts.map +0 -1
- package/dist/utils/debounce.d.ts.map +0 -1
- package/dist/utils/decorators/debounce.d.ts.map +0 -1
- package/dist/utils/decorators/gate.d.ts.map +0 -1
- package/dist/utils/decorators/log.d.ts.map +0 -1
- package/dist/utils/decorators/memoize.d.ts.map +0 -1
- package/dist/utils/decorators/resolver.d.ts.map +0 -1
- package/dist/utils/decorators/sequentialize.d.ts.map +0 -1
- package/dist/utils/decorators/serializable.d.ts.map +0 -1
- package/dist/utils/dedupedAsyncCache.d.ts.map +0 -1
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/disposable.d.ts.map +0 -1
- package/dist/utils/encoding.d.ts.map +0 -1
- package/dist/utils/env/browser/base64.d.ts.map +0 -1
- package/dist/utils/env/browser/crypto.d.ts.map +0 -1
- package/dist/utils/env/browser/fs.d.ts.map +0 -1
- package/dist/utils/env/browser/hex.d.ts.map +0 -1
- package/dist/utils/env/browser/hrtime.d.ts.map +0 -1
- package/dist/utils/env/browser/logScope.d.ts.map +0 -1
- package/dist/utils/env/browser/md5.d.ts.map +0 -1
- package/dist/utils/env/browser/platform.d.ts.map +0 -1
- package/dist/utils/env/node/base64.d.ts.map +0 -1
- package/dist/utils/env/node/crypto.d.ts.map +0 -1
- package/dist/utils/env/node/exec.d.ts.map +0 -1
- package/dist/utils/env/node/fs.d.ts.map +0 -1
- package/dist/utils/env/node/hex.d.ts.map +0 -1
- package/dist/utils/env/node/hrtime.d.ts.map +0 -1
- package/dist/utils/env/node/hrtime.js.map +0 -1
- package/dist/utils/env/node/logScope.d.ts.map +0 -1
- package/dist/utils/env/node/platform.d.ts.map +0 -1
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/event.d.ts.map +0 -1
- package/dist/utils/formatter.d.ts.map +0 -1
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/function.d.ts.map +0 -1
- package/dist/utils/fuzzy.d.ts.map +0 -1
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/hrtime.d.ts.map +0 -1
- package/dist/utils/iterable.d.ts.map +0 -1
- package/dist/utils/keys/chord.d.ts.map +0 -1
- package/dist/utils/keys/keybinding.d.ts.map +0 -1
- package/dist/utils/lazy.d.ts.map +0 -1
- package/dist/utils/loggable.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.scoped.d.ts.map +0 -1
- package/dist/utils/lruMap.d.ts.map +0 -1
- package/dist/utils/markdown.d.ts.map +0 -1
- package/dist/utils/mru.d.ts.map +0 -1
- package/dist/utils/object.d.ts.map +0 -1
- package/dist/utils/paging.d.ts.map +0 -1
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/platform.js.map +0 -1
- package/dist/utils/promise.d.ts.map +0 -1
- package/dist/utils/promiseCache.d.ts.map +0 -1
- package/dist/utils/resourceUsage.d.ts.map +0 -1
- package/dist/utils/resourceUsage.js.map +0 -1
- package/dist/utils/searchTree.d.ts.map +0 -1
- package/dist/utils/stopwatch.d.ts.map +0 -1
- package/dist/utils/string.d.ts.map +0 -1
- package/dist/utils/subscriptionManager.d.ts.map +0 -1
- package/dist/utils/trie.d.ts.map +0 -1
- package/dist/utils/types.d.ts.map +0 -1
- package/dist/utils/types.js.map +0 -1
- package/dist/utils/uri.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/version.d.ts.map +0 -1
- package/src/git/cache.ts +0 -1859
- package/src/git/context.ts +0 -301
- package/src/git/errors.ts +0 -1168
- package/src/git/features.ts +0 -98
- package/src/git/gitHealth.ts +0 -522
- package/src/git/models/author.ts +0 -19
- package/src/git/models/autolink.ts +0 -59
- package/src/git/models/blame.ts +0 -46
- package/src/git/models/branch.ts +0 -237
- package/src/git/models/commit.ts +0 -673
- package/src/git/models/contributor.ts +0 -84
- package/src/git/models/defaultBranch.ts +0 -6
- package/src/git/models/diff.ts +0 -74
- package/src/git/models/file.ts +0 -29
- package/src/git/models/fileChange.ts +0 -82
- package/src/git/models/fileStatus.ts +0 -36
- package/src/git/models/graph.ts +0 -444
- package/src/git/models/graphSearch.ts +0 -53
- package/src/git/models/graphSession.ts +0 -102
- package/src/git/models/issue.ts +0 -258
- package/src/git/models/issueOrPullRequest.ts +0 -20
- package/src/git/models/lineRange.ts +0 -7
- package/src/git/models/log.ts +0 -21
- package/src/git/models/mergeConflicts.ts +0 -19
- package/src/git/models/patch.ts +0 -25
- package/src/git/models/pausedOperationStatus.ts +0 -63
- package/src/git/models/pullRequest.ts +0 -353
- package/src/git/models/rebase.ts +0 -60
- package/src/git/models/reference.ts +0 -80
- package/src/git/models/reflog.ts +0 -88
- package/src/git/models/remote.ts +0 -100
- package/src/git/models/remoteProvider.ts +0 -291
- package/src/git/models/remoteResource.ts +0 -87
- package/src/git/models/repository.ts +0 -510
- package/src/git/models/repositoryChangeEvent.ts +0 -30
- package/src/git/models/repositoryIdentities.ts +0 -99
- package/src/git/models/repositoryMetadata.ts +0 -12
- package/src/git/models/resourceDescriptor.ts +0 -28
- package/src/git/models/revision.ts +0 -12
- package/src/git/models/search.ts +0 -138
- package/src/git/models/shortlog.ts +0 -6
- package/src/git/models/signature.ts +0 -45
- package/src/git/models/staging.ts +0 -27
- package/src/git/models/stash.ts +0 -6
- package/src/git/models/status.ts +0 -246
- package/src/git/models/statusFile.ts +0 -131
- package/src/git/models/tag.ts +0 -76
- package/src/git/models/tree.ts +0 -10
- package/src/git/models/user.ts +0 -7
- package/src/git/models/worktree.ts +0 -160
- package/src/git/parsers/diffParser.ts +0 -648
- package/src/git/parsers/rebaseTodoParser.ts +0 -169
- package/src/git/providers/blame.ts +0 -40
- package/src/git/providers/branches.ts +0 -143
- package/src/git/providers/commits.ts +0 -174
- package/src/git/providers/config.ts +0 -167
- package/src/git/providers/contributors.ts +0 -34
- package/src/git/providers/diff.ts +0 -133
- package/src/git/providers/graph.ts +0 -95
- package/src/git/providers/maintenance.ts +0 -224
- package/src/git/providers/operations.ts +0 -164
- package/src/git/providers/patch.ts +0 -31
- package/src/git/providers/pausedOperations.ts +0 -23
- package/src/git/providers/provider.ts +0 -64
- package/src/git/providers/refs.ts +0 -68
- package/src/git/providers/remotes.ts +0 -33
- package/src/git/providers/revision.ts +0 -32
- package/src/git/providers/shared/remotes.ts +0 -95
- package/src/git/providers/staging.ts +0 -36
- package/src/git/providers/stash.ts +0 -51
- package/src/git/providers/status.ts +0 -48
- package/src/git/providers/tags.ts +0 -29
- package/src/git/providers/types.ts +0 -33
- package/src/git/providers/worktrees.ts +0 -37
- package/src/git/remotes/azure-devops.ts +0 -307
- package/src/git/remotes/bitbucket-server.ts +0 -189
- package/src/git/remotes/bitbucket.ts +0 -142
- package/src/git/remotes/custom.ts +0 -162
- package/src/git/remotes/gerrit.ts +0 -186
- package/src/git/remotes/gitea.ts +0 -184
- package/src/git/remotes/github.ts +0 -236
- package/src/git/remotes/gitlab.ts +0 -270
- package/src/git/remotes/google-source.ts +0 -51
- package/src/git/remotes/matcher.ts +0 -215
- package/src/git/repositoryService.ts +0 -180
- package/src/git/run.types.ts +0 -156
- package/src/git/service.ts +0 -369
- package/src/git/utils/autolink.utils.ts +0 -202
- package/src/git/utils/blame.utils.ts +0 -298
- package/src/git/utils/branch.utils.ts +0 -165
- package/src/git/utils/commit.utils.ts +0 -89
- package/src/git/utils/config.utils.ts +0 -8
- package/src/git/utils/conflictResolution.utils.ts +0 -157
- package/src/git/utils/contributor.utils.ts +0 -105
- package/src/git/utils/fetch.utils.ts +0 -48
- package/src/git/utils/fileStatus.utils.ts +0 -62
- package/src/git/utils/graph.utils.ts +0 -46
- package/src/git/utils/issue.utils.ts +0 -177
- package/src/git/utils/issueOrPullRequest.utils.ts +0 -23
- package/src/git/utils/mergeConflicts.utils.ts +0 -21
- package/src/git/utils/pausedOperationStatus.utils.ts +0 -184
- package/src/git/utils/pullRequest.utils.ts +0 -244
- package/src/git/utils/reachability.utils.ts +0 -180
- package/src/git/utils/rebase.utils.ts +0 -128
- package/src/git/utils/reference.utils.ts +0 -267
- package/src/git/utils/remote.utils.ts +0 -146
- package/src/git/utils/repository.utils.ts +0 -18
- package/src/git/utils/resourceDescriptor.utils.ts +0 -26
- package/src/git/utils/revision.utils.ts +0 -149
- package/src/git/utils/search.utils.ts +0 -624
- package/src/git/utils/sorting.ts +0 -329
- package/src/git/utils/sshKey.utils.ts +0 -30
- package/src/git/utils/status.utils.ts +0 -115
- package/src/git/utils/statusFile.utils.ts +0 -182
- package/src/git/utils/tag.utils.ts +0 -17
- package/src/git/utils/tooltip.utils.ts +0 -37
- package/src/git/utils/uriAuthority.ts +0 -34
- package/src/git/utils/user.utils.ts +0 -20
- package/src/git/utils/worktree.utils.ts +0 -21
- package/src/git/watching/changeEvent.ts +0 -95
- package/src/git/watching/classifyChange.ts +0 -104
- package/src/git/watching/gitIgnoreFilter.ts +0 -134
- package/src/git/watching/initWatcher.ts +0 -81
- package/src/git/watching/provider.ts +0 -24
- package/src/git/watching/watchGroup.ts +0 -185
- package/src/git/watching/watchService.ts +0 -430
- package/src/git/watching/watchSession.ts +0 -439
- package/src/git/watching/watcherPatterns.ts +0 -51
- package/src/git-cli/cliGitProvider.ts +0 -461
- package/src/git-cli/exec/exec.errors.ts +0 -1
- package/src/git-cli/exec/exec.ts +0 -11
- package/src/git-cli/exec/exec.types.ts +0 -8
- package/src/git-cli/exec/features.ts +0 -2
- package/src/git-cli/exec/git.ts +0 -1371
- package/src/git-cli/exec/gitQueue.ts +0 -326
- package/src/git-cli/exec/locator.ts +0 -157
- package/src/git-cli/parsers/blameParser.ts +0 -374
- package/src/git-cli/parsers/indexParser.ts +0 -192
- package/src/git-cli/parsers/logParser.ts +0 -1365
- package/src/git-cli/parsers/mergeTreeParser.ts +0 -22
- package/src/git-cli/parsers/refParser.ts +0 -110
- package/src/git-cli/parsers/reflogParser.ts +0 -153
- package/src/git-cli/parsers/remoteParser.ts +0 -95
- package/src/git-cli/parsers/shortlogParser.ts +0 -59
- package/src/git-cli/parsers/signatureParser.ts +0 -162
- package/src/git-cli/parsers/sshSignatureParser.ts +0 -85
- package/src/git-cli/parsers/statusParser.ts +0 -209
- package/src/git-cli/parsers/treeParser.ts +0 -61
- package/src/git-cli/parsers/worktreeParser.ts +0 -111
- package/src/git-cli/providers/blame.ts +0 -598
- package/src/git-cli/providers/branches.ts +0 -1931
- package/src/git-cli/providers/commitFilesetUtils.ts +0 -45
- package/src/git-cli/providers/commits.ts +0 -1856
- package/src/git-cli/providers/config.ts +0 -1025
- package/src/git-cli/providers/contributors.ts +0 -360
- package/src/git-cli/providers/diff.ts +0 -1172
- package/src/git-cli/providers/graph.ts +0 -2237
- package/src/git-cli/providers/maintenance.ts +0 -2599
- package/src/git-cli/providers/operations.ts +0 -1016
- package/src/git-cli/providers/patch.ts +0 -305
- package/src/git-cli/providers/pausedOperations.ts +0 -670
- package/src/git-cli/providers/refs.ts +0 -486
- package/src/git-cli/providers/remotes.ts +0 -115
- package/src/git-cli/providers/revision.ts +0 -383
- package/src/git-cli/providers/staging.ts +0 -210
- package/src/git-cli/providers/stash.ts +0 -577
- package/src/git-cli/providers/status.ts +0 -568
- package/src/git-cli/providers/tags.ts +0 -224
- package/src/git-cli/providers/worktrees.ts +0 -285
- package/src/git-cli/service.ts +0 -82
- package/src/ipc/discovery.ts +0 -186
- package/src/ipc/ipcServer.ts +0 -171
- package/src/plus/agents/agentCapabilities.ts +0 -286
- package/src/plus/agents/providers/claudeCodeTranscript.ts +0 -867
- package/src/plus/agents/providers/gkAgentProvider.ts +0 -4036
- package/src/plus/agents/sanitizePrompt.ts +0 -109
- package/src/plus/agents/stateMachine.ts +0 -197
- package/src/plus/agents/types.ts +0 -500
- package/src/plus/ai/constants.ts +0 -121
- package/src/plus/ai/errors.ts +0 -152
- package/src/plus/ai/models/conversation.ts +0 -35
- package/src/plus/ai/models/model.ts +0 -528
- package/src/plus/ai/models/promptTemplates.ts +0 -171
- package/src/plus/ai/models/provider.ts +0 -125
- package/src/plus/ai/models/results.ts +0 -31
- package/src/plus/ai/prompts.ts +0 -849
- package/src/plus/ai/providers/anthropicProvider.ts +0 -458
- package/src/plus/ai/providers/azureProvider.ts +0 -74
- package/src/plus/ai/providers/context.ts +0 -29
- package/src/plus/ai/providers/deepSeekProvider.ts +0 -46
- package/src/plus/ai/providers/geminiProvider.ts +0 -245
- package/src/plus/ai/providers/gitkrakenProvider.ts +0 -347
- package/src/plus/ai/providers/huggingFaceProvider.ts +0 -64
- package/src/plus/ai/providers/mistralProvider.ts +0 -243
- package/src/plus/ai/providers/ollamaProvider.ts +0 -292
- package/src/plus/ai/providers/openAICompatibleProvider.ts +0 -64
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +0 -654
- package/src/plus/ai/providers/openRouterProvider.ts +0 -101
- package/src/plus/ai/providers/openaiProvider.ts +0 -47
- package/src/plus/ai/providers/responseFormatCache.ts +0 -39
- package/src/plus/ai/providers/xaiProvider.ts +0 -54
- package/src/plus/ai/utils/ai.utils.ts +0 -95
- package/src/plus/ai/utils/results.utils.ts +0 -407
- package/src/plus/ai/utils/truncation.utils.ts +0 -296
- package/src/plus/git-github/api/config.ts +0 -91
- package/src/plus/git-github/api/github.ts +0 -5462
- package/src/plus/git-github/api/github.utils.ts +0 -36
- package/src/plus/git-github/api/issueSearchQuery.ts +0 -273
- package/src/plus/git-github/api/pullRequestSearchQuery.ts +0 -154
- package/src/plus/git-github/api/token.ts +0 -15
- package/src/plus/git-github/api/tokenUtils.ts +0 -15
- package/src/plus/git-github/api/types.ts +0 -197
- package/src/plus/git-github/context.ts +0 -107
- package/src/plus/git-github/models.ts +0 -623
- package/src/plus/git-github/providers/github/blame.ts +0 -225
- package/src/plus/git-github/providers/github/branches.ts +0 -401
- package/src/plus/git-github/providers/github/commits.ts +0 -929
- package/src/plus/git-github/providers/github/config.ts +0 -47
- package/src/plus/git-github/providers/github/contributors.ts +0 -313
- package/src/plus/git-github/providers/github/diff.ts +0 -281
- package/src/plus/git-github/providers/github/graph.ts +0 -635
- package/src/plus/git-github/providers/github/refs.ts +0 -172
- package/src/plus/git-github/providers/github/remotes.ts +0 -44
- package/src/plus/git-github/providers/github/revision.ts +0 -140
- package/src/plus/git-github/providers/github/status.ts +0 -69
- package/src/plus/git-github/providers/github/tags.ts +0 -148
- package/src/plus/git-github/providers/githubGitProvider.ts +0 -168
- package/src/plus/git-github/providers/githubProvider.ts +0 -65
- package/src/plus/integrations/authentication/cloudIntegrationService.ts +0 -292
- package/src/plus/integrations/authentication/configuredIntegrationService.ts +0 -656
- package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +0 -385
- package/src/plus/integrations/authentication/integrationAuthenticationService.ts +0 -148
- package/src/plus/integrations/authentication/manualTokenProvider.ts +0 -79
- package/src/plus/integrations/authentication/models.ts +0 -202
- package/src/plus/integrations/authentication/rejectedTokenTracker.ts +0 -56
- package/src/plus/integrations/collectionMetadata.ts +0 -325
- package/src/plus/integrations/constants.ts +0 -190
- package/src/plus/integrations/context.ts +0 -386
- package/src/plus/integrations/errors.ts +0 -188
- package/src/plus/integrations/index.ts +0 -231
- package/src/plus/integrations/integrationService.ts +0 -2003
- package/src/plus/integrations/lite.ts +0 -233
- package/src/plus/integrations/manager.ts +0 -728
- package/src/plus/integrations/models/gitHostIntegration.ts +0 -1862
- package/src/plus/integrations/models/integration.ts +0 -1005
- package/src/plus/integrations/models/issueCache.ts +0 -29
- package/src/plus/integrations/models/issueReads.ts +0 -152
- package/src/plus/integrations/models/issuesIntegration.ts +0 -248
- package/src/plus/integrations/models/pullRequestReads.ts +0 -18
- package/src/plus/integrations/providerFilters.ts +0 -36
- package/src/plus/integrations/providers/accounts.ts +0 -38
- package/src/plus/integrations/providers/apiClients.ts +0 -69
- package/src/plus/integrations/providers/apiConfig.ts +0 -71
- package/src/plus/integrations/providers/azure/azure.ts +0 -822
- package/src/plus/integrations/providers/azure/models.ts +0 -621
- package/src/plus/integrations/providers/azureDevOps.ts +0 -1346
- package/src/plus/integrations/providers/bitbucket/bitbucket.ts +0 -904
- package/src/plus/integrations/providers/bitbucket/models.ts +0 -446
- package/src/plus/integrations/providers/bitbucket-server/models.ts +0 -283
- package/src/plus/integrations/providers/bitbucket-server.ts +0 -445
- package/src/plus/integrations/providers/bitbucket.ts +0 -793
- package/src/plus/integrations/providers/github/github.ts +0 -64
- package/src/plus/integrations/providers/github/github.utils.ts +0 -23
- package/src/plus/integrations/providers/github/models.ts +0 -29
- package/src/plus/integrations/providers/github.ts +0 -940
- package/src/plus/integrations/providers/gitlab/gitlab.ts +0 -1320
- package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +0 -80
- package/src/plus/integrations/providers/gitlab/models.ts +0 -271
- package/src/plus/integrations/providers/gitlab.ts +0 -841
- package/src/plus/integrations/providers/issueSorts.ts +0 -89
- package/src/plus/integrations/providers/jira.ts +0 -596
- package/src/plus/integrations/providers/jiraIssueByKey.ts +0 -155
- package/src/plus/integrations/providers/linear.ts +0 -484
- package/src/plus/integrations/providers/models.ts +0 -1816
- package/src/plus/integrations/providers/providerErrors.ts +0 -115
- package/src/plus/integrations/providers/providersApi.ts +0 -1881
- package/src/plus/integrations/providers/pullRequestReviews.ts +0 -122
- package/src/plus/integrations/providers/trello.ts +0 -208
- package/src/plus/integrations/providers/utils/providerPaging.ts +0 -212
- package/src/plus/integrations/providers/utils.ts +0 -419
- package/src/plus/integrations/reads/broaden.ts +0 -704
- package/src/plus/integrations/reads/context.ts +0 -99
- package/src/plus/integrations/reads/counts.ts +0 -610
- package/src/plus/integrations/reads/cursors.ts +0 -224
- package/src/plus/integrations/reads/drains.ts +0 -420
- package/src/plus/integrations/reads/filters.ts +0 -614
- package/src/plus/integrations/reads/hierarchy.ts +0 -486
- package/src/plus/integrations/reads/hierarchy.utils.ts +0 -155
- package/src/plus/integrations/reads/issueBatch.ts +0 -197
- package/src/plus/integrations/reads/issueTracker.ts +0 -556
- package/src/plus/integrations/reads/issues.ts +0 -600
- package/src/plus/integrations/reads/ordering.ts +0 -124
- package/src/plus/integrations/reads/paging.ts +0 -379
- package/src/plus/integrations/reads/pullRequests.ts +0 -260
- package/src/plus/integrations/reads/resolveRepository.ts +0 -272
- package/src/plus/integrations/reads/searchIssues.ts +0 -274
- package/src/plus/integrations/reads/searchPullRequests.ts +0 -235
- package/src/plus/integrations/reads/sweeps.ts +0 -266
- package/src/plus/integrations/reads/trackerIssue.ts +0 -105
- package/src/plus/integrations/reads/warnings.ts +0 -535
- package/src/plus/integrations/results.ts +0 -443
- package/src/plus/integrations/telemetry.ts +0 -29
- package/src/plus/integrations/utils/domain.utils.ts +0 -26
- package/src/plus/integrations/utils/integration.utils.ts +0 -215
- package/src/utils/array.ts +0 -194
- package/src/utils/base64.ts +0 -1
- package/src/utils/brand.ts +0 -7
- package/src/utils/cancellation.ts +0 -199
- package/src/utils/charCode.ts +0 -38
- package/src/utils/coalescedRun.ts +0 -45
- package/src/utils/color.ts +0 -817
- package/src/utils/counter.ts +0 -21
- package/src/utils/crypto.ts +0 -1
- package/src/utils/date.ts +0 -474
- package/src/utils/debounce.ts +0 -303
- package/src/utils/decorators/debounce.ts +0 -31
- package/src/utils/decorators/gate.ts +0 -167
- package/src/utils/decorators/log.ts +0 -320
- package/src/utils/decorators/memoize.ts +0 -98
- package/src/utils/decorators/resolver.ts +0 -95
- package/src/utils/decorators/sequentialize.ts +0 -118
- package/src/utils/decorators/serializable.ts +0 -43
- package/src/utils/dedupedAsyncCache.ts +0 -74
- package/src/utils/diff.ts +0 -61
- package/src/utils/disposable.ts +0 -156
- package/src/utils/encoding.ts +0 -8
- package/src/utils/env/browser/base64.ts +0 -50
- package/src/utils/env/browser/crypto.ts +0 -21
- package/src/utils/env/browser/fs.ts +0 -3
- package/src/utils/env/browser/hex.ts +0 -41
- package/src/utils/env/browser/hrtime.ts +0 -14
- package/src/utils/env/browser/logScope.ts +0 -57
- package/src/utils/env/browser/md5.ts +0 -217
- package/src/utils/env/browser/platform.ts +0 -10
- package/src/utils/env/node/base64.ts +0 -19
- package/src/utils/env/node/crypto.ts +0 -17
- package/src/utils/env/node/exec.ts +0 -488
- package/src/utils/env/node/fs.ts +0 -5
- package/src/utils/env/node/hex.ts +0 -11
- package/src/utils/env/node/hrtime.ts +0 -1
- package/src/utils/env/node/logScope.ts +0 -63
- package/src/utils/env/node/platform.ts +0 -5
- package/src/utils/error.ts +0 -18
- package/src/utils/event.ts +0 -230
- package/src/utils/formatter.ts +0 -198
- package/src/utils/fs.ts +0 -1
- package/src/utils/function.ts +0 -141
- package/src/utils/fuzzy.ts +0 -185
- package/src/utils/hash.ts +0 -60
- package/src/utils/hex.ts +0 -1
- package/src/utils/hrtime.ts +0 -8
- package/src/utils/iterable.ts +0 -797
- package/src/utils/keys/chord.ts +0 -184
- package/src/utils/keys/keybinding.ts +0 -116
- package/src/utils/lazy.ts +0 -39
- package/src/utils/loggable.ts +0 -7
- package/src/utils/logger.scoped.ts +0 -237
- package/src/utils/logger.ts +0 -403
- package/src/utils/lruMap.ts +0 -112
- package/src/utils/markdown.ts +0 -115
- package/src/utils/mru.ts +0 -68
- package/src/utils/object.ts +0 -278
- package/src/utils/paging.ts +0 -97
- package/src/utils/path.ts +0 -204
- package/src/utils/platform.ts +0 -1
- package/src/utils/promise.ts +0 -657
- package/src/utils/promiseCache.ts +0 -908
- package/src/utils/resourceUsage.ts +0 -5
- package/src/utils/searchTree.ts +0 -444
- package/src/utils/stopwatch.ts +0 -125
- package/src/utils/string.ts +0 -1003
- package/src/utils/subscriptionManager.ts +0 -40
- package/src/utils/trie.ts +0 -740
- package/src/utils/types.ts +0 -31
- package/src/utils/uri.ts +0 -118
- package/src/utils/validation.ts +0 -38
- package/src/utils/version.ts +0 -128
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/plus/git-github/api/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","names":["Logger"],"sources":["../../../../../plus/git-github/src/api/github.ts"],"sourcesContent":["import { graphql, GraphqlResponseError } from '@octokit/graphql';\nimport { request } from '@octokit/request';\nimport { RequestError } from '@octokit/request-error';\nimport type { Endpoints, RequestParameters } from '@octokit/types';\nimport * as l10n from '@vscode/l10n';\nimport {\n\tAuthenticationError,\n\tAuthenticationErrorReason,\n\tRequestClientError,\n\tRequestNotFoundError,\n\tRequestRateLimitError,\n} from '@gitlens/git/errors.js';\nimport type { Account, UnidentifiedAuthor } from '@gitlens/git/models/author.js';\nimport type { DefaultBranch } from '@gitlens/git/models/defaultBranch.js';\nimport type { Issue, IssueSearchCriteria, IssueShape, IssueSorting } from '@gitlens/git/models/issue.js';\nimport { defaultIssueSort } from '@gitlens/git/models/issue.js';\nimport type { IssueOrPullRequest } from '@gitlens/git/models/issueOrPullRequest.js';\nimport type {\n\tPullRequest,\n\tPullRequestSearchCriteria,\n\tPullRequestShape,\n\tPullRequestState,\n\tPullRequestStateFilter,\n} from '@gitlens/git/models/pullRequest.js';\nimport { defaultPullRequestSort, PullRequestMergeMethod } from '@gitlens/git/models/pullRequest.js';\nimport type { Provider } from '@gitlens/git/models/remoteProvider.js';\nimport type { RepositoryMetadata } from '@gitlens/git/models/repositoryMetadata.js';\nimport type { GitRevisionRange } from '@gitlens/git/models/revision.js';\nimport type { GitUser } from '@gitlens/git/models/user.js';\nimport type { RepositoryVisibility } from '@gitlens/git/providers/types.js';\nimport { getGitHubNoReplyAddressParts } from '@gitlens/git/remotes/github.js';\nimport { effectiveIssueSort, getIssueComparator } from '@gitlens/git/utils/issue.utils.js';\nimport { getPullRequestComparator } from '@gitlens/git/utils/pullRequest.utils.js';\nimport {\n\tcreateRevisionRange,\n\tgetRevisionRangeParts,\n\tisRevisionRange,\n\tisSha,\n\tisUncommitted,\n} from '@gitlens/git/utils/revision.utils.js';\nimport { chunk } from '@gitlens/utils/array.js';\nimport { base64 } from '@gitlens/utils/base64.js';\nimport { CancellationError, isCancellationError } from '@gitlens/utils/cancellation.js';\nimport { trace } from '@gitlens/utils/decorators/log.js';\nimport type { Event } from '@gitlens/utils/event.js';\nimport { Emitter } from '@gitlens/utils/event.js';\nimport { uniqueBy } from '@gitlens/utils/iterable.js';\nimport { Logger } from '@gitlens/utils/logger.js';\nimport type { ScopedLogger } from '@gitlens/utils/logger.scoped.js';\nimport { getScopedLogger } from '@gitlens/utils/logger.scoped.js';\nimport type { PagedResult } from '@gitlens/utils/paging.js';\nimport { maybeStopWatch } from '@gitlens/utils/stopwatch.js';\nimport { parseUri } from '@gitlens/utils/uri.js';\nimport type { Version } from '@gitlens/utils/version.js';\nimport { fromString, satisfies } from '@gitlens/utils/version.js';\nimport type {\n\tGitHubBlame,\n\tGitHubBlameRange,\n\tGitHubBranch,\n\tGitHubCommit,\n\tGitHubCommitRef,\n\tGitHubContributor,\n\tGitHubIssue,\n\tGitHubIssueOrPullRequest,\n\tGitHubPagedResult,\n\tGitHubPageInfo,\n\tGitHubPullRequest,\n\tGitHubPullRequestLite,\n\tGitHubPullRequestState,\n\tGitHubSshSigningKey,\n\tGitHubTag,\n} from '../models.js';\nimport {\n\tfromGitHubIssue,\n\tfromGitHubIssueOrPullRequestState,\n\tfromGitHubPullRequest,\n\tfromGitHubPullRequestLite,\n} from '../models.js';\nimport type { GitHubApiConfig } from './config.js';\nimport { githubSearchResultLimit } from './config.js';\nimport {\n\tgitHubIssueSearchRelationships,\n\ttoGitHubIssueSearchQualifiers,\n\ttoGitHubIssueSearchScopeQualifiers,\n\ttoGitHubIssueSearchSlideQualifier,\n\ttoGitHubIssueSortQualifier,\n} from './issueSearchQuery.js';\nimport { toGitHubPullRequestSearchFacets } from './pullRequestSearchQuery.js';\nimport type { GitHubTokenInfo } from './token.js';\n\nconst emptyPagedResult: PagedResult<any> = Object.freeze({ values: [] });\n/**\n * What an issue-search cursor records when the caller asked for no ordering at all.\n *\n * A sentinel rather than an omitted field, because omitted already means something else and more important: a\n * cursor persisted before ordering existed. Distinguishing the two is what lets an old cursor keep resuming while\n * a genuine change from unordered to ordered is still refused. Not an `IssueSorting`, so it can never collide\n * with one.\n */\nconst unsortedCursorSort = 'unsorted' as const;\nconst emptyBlameResult: GitHubBlame = Object.freeze({ ranges: [] });\n\n// Transient gateway/network failures (e.g. an upstream `502 Bad Gateway`) are worth a few quick\n// retries before surfacing to the caller. octokit provides no built-in retry for the standalone\n// `request`/`graphql` functions we use (its retry/throttle plugins only attach to the `Octokit`\n// class), so we retry here — but only for idempotent reads (REST GET/HEAD, GraphQL queries),\n// never for mutations.\nconst maxRequestRetries = 2;\nconst requestRetryBaseDelay = 300; // ms\nconst requestRetryMaxDelay = 2000; // ms\n\n/** How many email->login user searches to alias into a single GraphQL request (keeps query cost within limits). */\nconst accountResolveBatchSize = 25;\n\n// Pull-request search selects the full PR fragment (reviews, requests, refs, commits, etc.),\n// which makes GitHub reject broad 100-node searches with `Resource limits for this query\n// exceeded` on large repositories. Thirty keeps the default within that GraphQL cost budget;\n// the 100-node maximum the connection accepts is for the lite shape, whose per-node cost is a\n// fraction of it. The budget is per DOCUMENT, and one document holds every relationship × state\n// facet, so the worst case scales with the facet count (five relationships × three states = 15;\n// `all` subsumes the concrete states).\nconst defaultPullRequestSearchPageSize = 30;\nconst maxPullRequestSearchPageSize = 100;\n// Pages `searchMyPullRequests` drains for a caller that wants a whole list rather than a page.\n// Four reduced pages cover more than the single 100-node page this read served before it paged,\n// so the smaller page costs coverage nowhere; it bounds an unbounded drain on a read whose\n// consumers (Launchpad, the Graph pull-request panel) block on it.\nconst maxMyPullRequestSearchPages = 4;\n\nfunction isRetryableTransientError(ex: unknown): ex is RequestError {\n\t// An aborted request is rethrown as the original `AbortError` (not a `RequestError`), so it is\n\t// excluded here. octokit maps a fetch/network failure to a `RequestError` with status 500 and\n\t// no response — those, along with real gateway statuses, are transient and safe to retry.\n\tif (!(ex instanceof RequestError)) return false;\n\n\tswitch (ex.status) {\n\t\tcase 502: // Bad Gateway\n\t\tcase 503: // Service Unavailable\n\t\tcase 504: // Gateway Timeout\n\t\t\treturn true;\n\t\tcase 500: // Internal Server Error — only the network-failure variant (no response)\n\t\t\treturn ex.response == null;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * When a rate-limited request may be retried, as a UTC epoch in seconds, or `undefined` when the response says\n * nothing useful. Header precedence follows GitHub's own guidance\n * (docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api): `retry-after` wins when present —\n * it is the only one a secondary limit reliably sets — and `x-ratelimit-reset` covers the primary limit.\n */\nfunction rateLimitResetAt(ex: RequestError): number | undefined {\n\tconst headers = ex.response?.headers;\n\tif (headers == null) return undefined;\n\n\t// `retry-after` is a delay in seconds, not an epoch, so it has to be added to now to compare with `resetAt`.\n\tconst retryAfter = toPositiveInt(headers['retry-after']);\n\tif (retryAfter != null) return Math.floor(Date.now() / 1000) + retryAfter;\n\n\treturn toPositiveInt(headers['x-ratelimit-reset']);\n}\n\nfunction toPositiveInt(value: string | number | undefined): number | undefined {\n\tif (value == null) return undefined;\n\n\tconst parsed = typeof value === 'number' ? value : parseInt(value, 10);\n\t// Rejects NaN and a nonsensical negative/zero, either of which would present as an already-elapsed reset.\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction getRequestRetryDelay(attempt: number): number {\n\t// Exponential backoff with equal jitter, capped — spreads retries so a brief upstream blip\n\t// isn't hammered by every in-flight request landing on the same schedule.\n\tconst backoff = Math.min(requestRetryMaxDelay, requestRetryBaseDelay * 2 ** (attempt - 1));\n\treturn Math.round(backoff / 2 + Math.random() * (backoff / 2));\n}\n\n/** One aliased `search` field in a multi-search issue request; see {@link GitHubApi.searchIssuesByAlias}. */\ninterface AliasedIssueSearch {\n\t/** GraphQL alias, also the key this search's cursor is stored under. Must not be `page` or `truncated`. */\n\talias: string;\n\t/** The fully-composed GitHub search query, qualifiers included. */\n\tquery: string;\n}\n\n/**\n * The sort value of the last item on a page, which is the boundary a ceiling slide continues from.\n *\n * Reads the DATE off the issue rather than taking a caller-supplied position, so the boundary can only ever be a\n * point this walk actually reached. Returns `undefined` for an empty page or a key carrying no date, which is the\n * signal to report the ceiling instead of sliding.\n */\nfunction lastSortBoundary(issues: readonly IssueShape[], sort: IssueSorting): Date | undefined {\n\tconst last = issues.at(-1);\n\tif (last == null) return undefined;\n\n\tconst value = sort.startsWith('created:')\n\t\t? last.createdDate\n\t\t: sort.startsWith('updated:')\n\t\t\t? last.updatedDate\n\t\t\t: undefined;\n\treturn value instanceof Date && !Number.isNaN(value.getTime()) ? value : undefined;\n}\n\n/**\n * The per-alias ceiling-slide state, read defensively off a composite cursor.\n *\n * Keys are `<field>:<alias>`. The colon is what makes them collision-proof: a GraphQL alias is a name (a letter\n * or underscore followed by letters, digits or underscores) and so can never contain one, which is why these need\n * no entry in the reserved-alias check and that list does not have to grow with every field added here.\n *\n * Everything is validated to the shape this module emits, because a cursor is caller-supplied data on a round\n * trip: an unrecognized value restarts the walk instead of reaching the query, which is the difference between a\n * repeated page and an attacker-chosen qualifier re-scoping someone's search.\n */\nfunction cursorString(cursor: Record<string, unknown> | undefined, key: string): string | undefined {\n\tconst value = cursor?.[key];\n\treturn typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction cursorNumber(cursor: Record<string, unknown> | undefined, key: string): number | undefined {\n\tconst value = cursor?.[key];\n\treturn typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\n/** The urls a prior page already served at this alias's inclusive slide boundary. */\nfunction slideSeenFor(cursor: Record<string, unknown> | undefined, alias: string): Set<string> | undefined {\n\tconst value = cursorString(cursor, `slideSeen:${alias}`);\n\treturn value != null ? new Set(value.split(' ')) : undefined;\n}\n\n/** One page of a multi-search issue request, with its composite cursor across every alias. */\nexport interface AliasedIssueSearchResult {\n\tvalues: IssueShape[];\n\t/** Opaque composite cursor; absent when every alias is exhausted. */\n\tcursor?: string;\n\thasMore: boolean;\n\tpage: number;\n\t/** True when the read cannot return everything — GitHub's search ceiling, or an unusable continuation. */\n\ttruncated: boolean;\n\t/**\n\t * The largest `issueCount` any single alias reported, which is what {@link githubSearchResultLimit} applies\n\t * to (the ceiling is per search, not per request). Absent when no request was made — every alias was already\n\t * exhausted — so `undefined` means \"not reported\", never zero matches.\n\t */\n\ttotalCount?: number;\n}\n\n/** One page of the filtered pull-request search. */\nexport interface PullRequestSearchResult {\n\tvalues: PullRequestShape[];\n\t/** Opaque cursor carrying each active facet continuation plus the positional page. */\n\tcursor?: string;\n\thasMore: boolean;\n\tpage: number;\n\t/** True at GitHub's search ceiling or when GitHub advertises a page without a usable cursor. */\n\ttruncated: boolean;\n\t/**\n\t * The largest pre-ceiling `issueCount` any relationship × state facet reported, which is what\n\t * {@link githubSearchResultLimit} applies to. Never the number of rows reachable after that ceiling.\n\t */\n\ttotalCount?: number;\n}\n\n// Matches a GraphQL document whose operation is definitely a read query — the `query` keyword as\n// the first significant token, after any leading whitespace or `#` comment lines. We retry only\n// when this matches; a mutation (even one prefixed by a comment), a subscription, or anything we\n// can't classify is left non-retryable so a transient failure can never re-run a mutation.\nconst graphqlReadQueryRegex = /^(?:\\s|#[^\\n]*\\n?)*query\\b/;\n\nconst gqlIssueOrPullRequestFragment = `\nclosed\nclosedAt\ncreatedAt\nid\nnumber\nstate\ntitle\nupdatedAt\nurl\n`;\n/**\n * Stacked-pull-request selections, appended to a pull request's selection set rather than baked into\n * the fragments below: GitHub Enterprise Server schemas lag github.com, and selecting `stack` there\n * fails the entire query with \"Field 'stack' doesn't exist on type 'PullRequest'\" — which would take\n * every PR feature down with it, not just stacks. Always add these via `gqlPullRequestStackFragmentFor`.\n */\nconst gqlPullRequestStackFragment = `\nstack {\n\tid\n\tnumber\n\tsize\n\tbaseRefName\n}\nstackEntry {\n\tposition\n}\n`;\n\nfunction gqlPullRequestStackFragmentFor(options?: { baseUrl?: string }): string {\n\treturn isGitHubDotCom(options) ? gqlPullRequestStackFragment : '';\n}\n\n/** One layer of a stack, as returned by the stacks REST API. Ordered bottom to top. */\nexport interface GitHubStackLayer {\n\tnumber: number;\n\tstate: string;\n\tdraft?: boolean;\n\tmerged_at?: string | null;\n\thead: { ref: string; sha: string };\n}\n\nexport interface GitHubStackResource {\n\tid: string;\n\tnumber: number;\n\t/** The stack's trunk — what the bottom member targets. */\n\tbase: { ref: string; sha?: string };\n\t/** False once every member has merged; such a stack can no longer be extended. */\n\topen?: boolean;\n\t/** Members ordered bottom to top. */\n\tpull_requests: GitHubStackLayer[];\n}\n\n/** Result of the asynchronous merge used for stacked pull requests. */\ninterface GitHubAsyncMergeResult {\n\tstatus: 'pending' | 'merged' | 'enqueued' | 'failed';\n\t/** Everything but `status` is nested here — flattening it silently loses the poll ticket. */\n\tdetails?: {\n\t\t/** Always present; on `failed` it is the only explanation of why. */\n\t\tmessage?: string;\n\t\t/** Only while `pending` — the ticket to poll. */\n\t\tuuid?: string;\n\t\t/** Only once `merged`. */\n\t\tsha?: string;\n\t\tmerge_method?: string;\n\t\tmerge_action?: string;\n\t\texpected_head_sha?: string;\n\t};\n}\n\n/**\n * A 409 means a merge request is already in flight and carries its ticket, so it resumes rather than fails.\n *\n * The body has to be dug out of `original`: `requestCore` routes every 4xx through `handleRequestError`,\n * which re-wraps octokit's `RequestError` in a `RequestClientError` carrying only `message` and `original`.\n */\nfunction getAsyncMergeUuidFromConflict(ex: unknown): string | undefined {\n\tconst err = (RequestClientError.is(ex) ? ex.original : ex) as\n\t\t| { status?: number; response?: { data?: GitHubAsyncMergeResult } }\n\t\t| undefined;\n\tif (err?.status !== 409) return undefined;\n\n\treturn err.response?.data?.details?.uuid;\n}\n\nconst asyncMergePollIntervalMs = 2000;\n/** A stack merges one layer at a time and GitHub only promises \"a few minutes\", so the ceiling is\n * generous — giving up early would report a failure for a merge still in progress. */\nconst maxAsyncMergePolls = 300;\n\nconst gqlPullRequestLiteFragment = `\n${gqlIssueOrPullRequestFragment}\nauthor {\n\tlogin\n\tavatarUrl(size: $avatarSize)\n\turl\n}\nbody\nbaseRefName\nbaseRefOid\nheadRefName\nheadRefOid\nheadRepository {\n\tisFork\n\tname\n\towner {\n\t\tlogin\n\t}\n\tsshUrl\n\turl\n}\nisCrossRepository\nisDraft\nmergedAt\npermalink\nrepository {\n\tisFork\n\tname\n\towner {\n\t\tlogin\n\t}\n\tsshUrl\n\turl\n\tviewerPermission\n}\n`;\n/**\n * One review's fields, shared by `latestReviews` and `viewerLatestReview`. The two selections must stay\n * identical: `fromGitHubPullRequest` merges the viewer's review into the capped `latestReviews` window and\n * dedups by `id`, so a field present in only one of them would produce rows that differ by where they came\n * from rather than by what they are.\n */\nconst gqlPullRequestReviewFragment = `\nid\nauthor {\n\tlogin\n\tavatarUrl(size: $avatarSize)\n\turl\n}\nstate\ncommit {\n\toid\n}\n`;\nconst gqlPullRequestFragment = `\n${gqlPullRequestLiteFragment}\nadditions\nassignees(first: 25) {\n\tnodes {\n\t\tlogin\n\t\tavatarUrl(size: $avatarSize)\n\t\turl\n\t}\n}\nchangedFiles\nchecksUrl\ndeletions\nmergeable\nmergedBy {\n\tlogin\n}\nreviewDecision\nlatestReviews(first: 25) {\n\tnodes {\n\t\t${gqlPullRequestReviewFragment}\n\t}\n}\nviewerLatestReview {\n\t${gqlPullRequestReviewFragment}\n}\nreviewRequests(first: 25) {\n\tnodes {\n\t\tasCodeOwner\n\t\tid\n\t\trequestedReviewer {\n\t\t\t... on User {\n\t\t\t\tlogin\n\t\t\t\tavatarUrl(size: $avatarSize)\n\t\t\t\turl\n\t\t\t}\n\t\t}\n\t}\n}\ncommits(last: 1) {\n\ttotalCount\n\tnodes {\n\t\tcommit {\n\t\t\tstatusCheckRollup {\n\t\t\t\tstate\n\t\t\t}\n\t\t}\n\t}\n}\ntotalCommentsCount\nviewerCanUpdate\n`;\n\nconst gqIssueFragment = `\n${gqlIssueOrPullRequestFragment}\nassignees(first: 100) {\n\tnodes {\n\t\tlogin\n\t\turl\n\t\tavatarUrl(size: $avatarSize)\n\t}\n}\nauthor {\n\tlogin\n\tavatarUrl\n\turl\n}\ncomments {\n\ttotalCount\n}\nlabels(first: 50) {\n\tnodes {\n\t\tcolor\n\t\tname\n\t}\n}\nreactions(content: THUMBS_UP) {\n\ttotalCount\n}\nrepository {\n\tname\n\towner {\n\t\tlogin\n\t}\n\tviewerPermission\n\turl\n}\n`;\n\nexport class GitHubApi {\n\tprivate readonly _onDidReauthenticate = new Emitter<void>();\n\tget onDidReauthenticate(): Event<void> {\n\t\treturn this._onDidReauthenticate.event;\n\t}\n\n\tprivate readonly _disposables: { dispose(): void }[] = [];\n\n\tconstructor(readonly config: GitHubApiConfig) {\n\t\tthis._disposables.push(this._onDidReauthenticate);\n\t\tif (config.onConfigChanged != null) {\n\t\t\tthis._disposables.push(\n\t\t\t\tconfig.onConfigChanged(() => {\n\t\t\t\t\tthis.resetCaches();\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\n\tdispose(): void {\n\t\tfor (const d of this._disposables) {\n\t\t\td.dispose();\n\t\t}\n\t\tthis._disposables.length = 0;\n\t}\n\n\tprivate resetCaches(): void {\n\t\tthis._defaults.clear();\n\t\tthis._enterpriseVersions.clear();\n\t}\n\n\tasync getCurrentAccount(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t},\n\t): Promise<Account | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\tviewer: {\n\t\t\t\tdatabaseId: number | null;\n\t\t\t\tname: string | null;\n\t\t\t\temail: string | null;\n\t\t\t\tlogin: string | null;\n\t\t\t\tavatarUrl: string | null;\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCurrentAccount($avatarSize: Int) {\n\tviewer {\n\t\tdatabaseId\n\t\tname\n\t\temail\n\t\tlogin\n\t\tavatarUrl(size: $avatarSize)\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(provider, token, query, { ...options }, scope);\n\t\t\tif (rsp?.viewer?.login == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\t// `id` is the provider's own id, as it is for every other provider, and `username` the handle\n\t\t\t\t// filters and viewer matching key on. Falls back to the login only when GitHub omits the\n\t\t\t\t// database id, which leaves the two equal rather than leaving `id` empty.\n\t\t\t\tid: rsp.viewer.databaseId != null ? String(rsp.viewer.databaseId) : rsp.viewer.login,\n\t\t\t\tname: rsp.viewer.name ?? undefined,\n\t\t\t\temail: rsp.viewer.email ?? undefined,\n\t\t\t\t// If we are GitHub Enterprise, we may need to convert the avatar URL since it might require authentication\n\t\t\t\tavatarUrl:\n\t\t\t\t\t!rsp.viewer.avatarUrl || isGitHubDotCom(options)\n\t\t\t\t\t\t? (rsp.viewer.avatarUrl ?? undefined)\n\t\t\t\t\t\t: rsp.viewer.email && options?.baseUrl != null\n\t\t\t\t\t\t\t? await this.createEnterpriseAvatarUrl(\n\t\t\t\t\t\t\t\t\tprovider,\n\t\t\t\t\t\t\t\t\ttoken,\n\t\t\t\t\t\t\t\t\toptions.baseUrl,\n\t\t\t\t\t\t\t\t\trsp.viewer.email,\n\t\t\t\t\t\t\t\t\toptions.avatarSize,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\tusername: rsp.viewer.login ?? undefined,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, rev) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\trev: rev,\n\t\t}),\n\t})\n\tasync getAccountForCommit(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\trev: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t},\n\t): Promise<Account | UnidentifiedAuthor | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\t// GitHub's `GitObjectID` scalar rejects anything but a full sha, so don't spend a request on one\n\t\tif (!isSha(rev) || isUncommitted(rev)) return undefined;\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\tauthor?: {\n\t\t\t\t\t\t\t\t\t\tname: string | null;\n\t\t\t\t\t\t\t\t\t\temail: string | null;\n\t\t\t\t\t\t\t\t\t\tavatarUrl: string;\n\t\t\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\t\t\tlogin: string | null;\n\t\t\t\t\t\t\t\t\t\t} | null;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getAccountForCommit(\n\t$owner: String!\n\t$repo: String!\n\t$rev: GitObjectID!\n\t$avatarSize: Int\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(oid: $rev) {\n\t\t\t... on Commit {\n\t\t\t\tauthor {\n\t\t\t\t\tname\n\t\t\t\t\temail\n\t\t\t\t\tavatarUrl(size: $avatarSize)\n\t\t\t\t\tuser {\n\t\t\t\t\t\tlogin\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\trev: rev,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst author = rsp?.repository?.object?.author;\n\t\t\tif (author == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\t...(author?.user?.login != null\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tid: author.user.login,\n\t\t\t\t\t\t\tusername: author.user.login,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\tusername: undefined,\n\t\t\t\t\t\t}),\n\t\t\t\tname: author.name ?? undefined,\n\t\t\t\temail: author.email ?? undefined,\n\t\t\t\t// If we are GitHub Enterprise, we may need to convert the avatar URL since it might require authentication\n\t\t\t\tavatarUrl:\n\t\t\t\t\t!author.avatarUrl || isGitHubDotCom(options)\n\t\t\t\t\t\t? (author.avatarUrl ?? undefined)\n\t\t\t\t\t\t: author.email && options?.baseUrl != null\n\t\t\t\t\t\t\t? await this.createEnterpriseAvatarUrl(\n\t\t\t\t\t\t\t\t\tprovider,\n\t\t\t\t\t\t\t\t\ttoken,\n\t\t\t\t\t\t\t\t\toptions.baseUrl,\n\t\t\t\t\t\t\t\t\tauthor.email,\n\t\t\t\t\t\t\t\t\toptions.avatarSize,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, email) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\temail: email,\n\t\t}),\n\t})\n\tasync getAccountForEmail(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\temail: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t},\n\t): Promise<Account | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\tsearch:\n\t\t\t\t| {\n\t\t\t\t\t\tnodes:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\tname: string | null;\n\t\t\t\t\t\t\t\t\temail: string | null;\n\t\t\t\t\t\t\t\t\tavatarUrl: string;\n\t\t\t\t\t\t\t\t\tlogin: string | null;\n\t\t\t\t\t\t\t }[]\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getAccountForEmail(\n\t$emailQuery: String!\n\t$avatarSize: Int\n) {\n\tsearch(type: USER, query: $emailQuery, first: 1) {\n\t\tnodes {\n\t\t\t... on User {\n\t\t\t\tname\n\t\t\t\temail\n\t\t\t\tavatarUrl(size: $avatarSize)\n\t\t\t\tlogin\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\temailQuery: `in:email ${email}`,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst author = rsp?.search?.nodes?.[0];\n\t\t\tif (author?.login == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\tid: author.login,\n\t\t\t\tname: author.name ?? undefined,\n\t\t\t\temail: author.email ?? undefined,\n\t\t\t\t// If we are GitHub Enterprise, we may need to convert the avatar URL since it might require authentication\n\t\t\t\tavatarUrl:\n\t\t\t\t\t!author.avatarUrl || isGitHubDotCom(options)\n\t\t\t\t\t\t? (author.avatarUrl ?? undefined)\n\t\t\t\t\t\t: author.email && options?.baseUrl != null\n\t\t\t\t\t\t\t? await this.createEnterpriseAvatarUrl(\n\t\t\t\t\t\t\t\t\tprovider,\n\t\t\t\t\t\t\t\t\ttoken,\n\t\t\t\t\t\t\t\t\toptions.baseUrl,\n\t\t\t\t\t\t\t\t\tauthor.email,\n\t\t\t\t\t\t\t\t\toptions.avatarSize,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\tusername: author.login ?? undefined,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (provider, token) => ({ provider: provider?.name, token: `<token:${token.microHash}>` }) })\n\tasync getAccountsForEmails(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\temails: string[],\n\t\toptions?: { baseUrl?: string },\n\t): Promise<Map<string, string>> {\n\t\tconst scope = getScopedLogger();\n\n\t\t// Resolves email -> login for many emails in one request via field aliasing, chunked to keep query cost within\n\t\t// GitHub's limits. Each email is passed as a GraphQL variable (never interpolated into the query string) so an\n\t\t// attacker-controllable commit email can't inject query structure. Keyed by lowercased email.\n\t\t//\n\t\t// This is intentionally best-effort: user-by-email search only matches accounts whose email is public, and the\n\t\t// search API is subject to GitHub's separate search/secondary rate limits, so misses and per-batch failures are\n\t\t// expected and tolerated. GitHub noreply addresses (the common case) are decoded locally by the caller without\n\t\t// hitting this at all.\n\t\tconst result = new Map<string, string>();\n\t\tif (emails.length === 0) return result;\n\n\t\tinterface QueryResult {\n\t\t\t[alias: string]: { nodes?: ({ login: string | null } | null)[] | null } | null | undefined;\n\t\t}\n\n\t\tfor (const batch of chunk(emails, accountResolveBatchSize)) {\n\t\t\tconst declarations = batch.map((_, i) => `$q${i}: String!`).join(', ');\n\t\t\tconst fields = batch\n\t\t\t\t.map((_, i) => `e${i}: search(type: USER, query: $q${i}, first: 1) { nodes { ... on User { login } } }`)\n\t\t\t\t.join('\\n\\t');\n\t\t\tconst query = `query getAccountsForEmails(${declarations}) {\\n\\t${fields}\\n}`;\n\n\t\t\tconst variables: RequestParameters = { ...options };\n\t\t\tbatch.forEach((email, i) => {\n\t\t\t\tvariables[`q${i}`] = `in:email ${email}`;\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tconst rsp = await this.graphql<QueryResult>(provider, token, query, variables, scope);\n\t\t\t\tif (rsp == null) continue;\n\n\t\t\t\tbatch.forEach((email, i) => {\n\t\t\t\t\tconst login = rsp[`e${i}`]?.nodes?.[0]?.login;\n\t\t\t\t\tif (login) {\n\t\t\t\t\t\tresult.set(email.toLowerCase(), login);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (ex) {\n\t\t\t\t// Best-effort enrichment — a failed batch (e.g. query cost) shouldn't abort the others.\n\t\t\t\tscope?.error(ex);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t}),\n\t})\n\tasync getDefaultBranch(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t},\n\t): Promise<DefaultBranch | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tdefaultBranchRef: { name: string } | null | undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getDefaultBranch(\n\t$owner: String!\n\t$repo: String!\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tdefaultBranchRef {\n\t\t\tname\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst defaultBranch = rsp?.repository?.defaultBranchRef?.name ?? undefined;\n\t\t\tif (defaultBranch == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\tname: defaultBranch,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, number) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tnumber: number,\n\t\t}),\n\t})\n\tasync getIssueOrPullRequest(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tnumber: number,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t},\n\t): Promise<IssueOrPullRequest | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository?: { issueOrPullRequest?: GitHubIssueOrPullRequest };\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getIssueOrPullRequest(\n\t$owner: String!\n\t$repo: String!\n\t$number: Int!\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tissueOrPullRequest(number: $number) {\n\t\t\t__typename\n\t\t\t... on Issue {\n\t\t\t\t${gqlIssueOrPullRequestFragment}\n\t\t\t}\n\t\t\t... on PullRequest {\n\t\t\t\t${gqlIssueOrPullRequestFragment}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tnumber: number,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst issue = rsp?.repository?.issueOrPullRequest;\n\t\t\tif (issue == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\ttype: issue.__typename === 'PullRequest' ? 'pullrequest' : 'issue',\n\t\t\t\tid: String(issue.number),\n\t\t\t\tnodeId: issue.id,\n\t\t\t\tcreatedDate: new Date(issue.createdAt),\n\t\t\t\tupdatedDate: new Date(issue.updatedAt),\n\t\t\t\ttitle: issue.title,\n\t\t\t\tclosed: issue.closed,\n\t\t\t\tclosedDate: issue.closedAt == null ? undefined : new Date(issue.closedAt),\n\t\t\t\turl: issue.url,\n\t\t\t\tstate: fromGitHubIssueOrPullRequestState(issue.state),\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, number) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tnumber: number,\n\t\t}),\n\t})\n\tasync getIssue(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tnumber: number,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tincludeBody?: boolean;\n\t\t},\n\t): Promise<Issue | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tissue: GitHubIssue | null | undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getIssue(\n\t\t\t$owner: String!\n\t\t\t$repo: String!\n\t\t\t$number: Int!\n\t\t\t$avatarSize: Int\n\t\t) {\n\t\t\trepository(name: $repo, owner: $owner) {\n\t\t\t\tissue(number: $number) {\n\t\t\t\t\t${gqIssueFragment}${\n\t\t\t\t\t\toptions?.includeBody\n\t\t\t\t\t\t\t? `\n\t\t\t\t\t\tbody\n\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tnumber: number,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tif (rsp?.repository?.issue == null) return undefined;\n\n\t\t\treturn fromGitHubIssue(rsp.repository.issue, provider);\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, number) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tnumber: number,\n\t\t}),\n\t})\n\tasync getPullRequest(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tnumber: number,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t},\n\t): Promise<PullRequest | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tpullRequest: GitHubPullRequestLite | null | undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getPullRequest(\n\t$owner: String!\n\t$repo: String!\n\t$number: Int!\n\t$avatarSize: Int\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tpullRequest(number: $number) {\n\t\t\t${gqlPullRequestLiteFragment}\n\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tnumber: number,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tif (rsp?.repository?.pullRequest == null) return undefined;\n\n\t\t\treturn fromGitHubPullRequestLite(rsp.repository.pullRequest, provider);\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, branch) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tbranch: branch,\n\t\t}),\n\t})\n\tasync getPullRequestForBranch(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tbranch: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tinclude?: GitHubPullRequestState[];\n\t\t},\n\t): Promise<PullRequest | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tref:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\tassociatedPullRequests?: {\n\t\t\t\t\t\t\t\t\t\tnodes?: GitHubPullRequestLite[];\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getPullRequestForBranch(\n\t$owner: String!\n\t$repo: String!\n\t$branch: String!\n\t$limit: Int!\n\t$include: [PullRequestState!]\n\t$avatarSize: Int\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tref(qualifiedName: $branch) {\n\t\t\tassociatedPullRequests(first: $limit, orderBy: {field: UPDATED_AT, direction: DESC}, states: $include) {\n\t\t\t\tnodes {\n\t\t\t\t\t${gqlPullRequestLiteFragment}\n\t\t\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tbranch: `refs/heads/${branch}`,\n\t\t\t\t\t// Since GitHub sort doesn't seem to really work, look for a max of 10 PRs and then sort them ourselves\n\t\t\t\t\tlimit: 10,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\t// If the pr is not from a fork, keep it e.g. show root pr's on forks, otherwise, ensure the repo owners match\n\t\t\tconst prs = rsp?.repository?.ref?.associatedPullRequests?.nodes?.filter(\n\t\t\t\tpr => pr != null && (!pr.repository.isFork || pr.repository.owner.login === owner),\n\t\t\t);\n\t\t\tif (prs == null || prs.length === 0) return undefined;\n\n\t\t\tif (prs.length > 1) {\n\t\t\t\tprs.sort(\n\t\t\t\t\t(a, b) =>\n\t\t\t\t\t\t(a.repository.owner.login === owner ? -1 : 1) - (b.repository.owner.login === owner ? -1 : 1) ||\n\t\t\t\t\t\t(a.state === 'OPEN' ? -1 : 1) - (b.state === 'OPEN' ? -1 : 1) ||\n\t\t\t\t\t\tnew Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn fromGitHubPullRequestLite(prs[0], provider);\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo, rev) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\trev: rev,\n\t\t}),\n\t})\n\tasync getPullRequestForCommit(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\trev: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<PullRequest | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tif (!isSha(rev) || isUncommitted(rev)) return undefined;\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject?: {\n\t\t\t\t\t\t\tassociatedPullRequests?: {\n\t\t\t\t\t\t\t\tnodes?: GitHubPullRequestLite[];\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getPullRequestForCommit(\n\t$owner: String!\n\t$repo: String!\n\t$rev: GitObjectID!\n\t$avatarSize: Int\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(oid: $rev) {\n\t\t\t... on Commit {\n\t\t\t\tassociatedPullRequests(first: 2, orderBy: {field: UPDATED_AT, direction: DESC}) {\n\t\t\t\t\tnodes {\n\t\t\t\t\t\t${gqlPullRequestLiteFragment}\n\t\t\t\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\trev: rev,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\n\t\t\t// If the pr is not from a fork, keep it e.g. show root pr's on forks, otherwise, ensure the repo owners match\n\t\t\tconst prs = rsp?.repository?.object?.associatedPullRequests?.nodes?.filter(\n\t\t\t\tpr => pr != null && (!pr.repository.isFork || pr.repository.owner.login === owner),\n\t\t\t);\n\t\t\tif (prs == null || prs.length === 0) return undefined;\n\n\t\t\tif (prs.length > 1) {\n\t\t\t\tprs.sort(\n\t\t\t\t\t(a, b) =>\n\t\t\t\t\t\t(a.repository.owner.login === owner ? -1 : 1) - (b.repository.owner.login === owner ? -1 : 1) ||\n\t\t\t\t\t\t(a.state === 'MERGED' ? -1 : 1) - (b.state === 'MERGED' ? -1 : 1) ||\n\t\t\t\t\t\tnew Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn fromGitHubPullRequestLite(prs[0], provider);\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, owner, repo) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t}),\n\t})\n\tasync getRepositoryMetadata(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\toptions?: {\n\t\t\tbaseUrl?: string;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<RepositoryMetadata | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\towner: {\n\t\t\t\t\t\t\tlogin: string;\n\t\t\t\t\t\t};\n\t\t\t\t\t\tname: string;\n\t\t\t\t\t\tparent:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\towner: {\n\t\t\t\t\t\t\t\t\t\tlogin: string;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getRepositoryMetadata(\n\t$owner: String!\n\t$repo: String!\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\towner {\n\t\t\tlogin\n\t\t}\n\t\tname\n\t\tparent {\n\t\t\towner {\n\t\t\t\tlogin\n\t\t\t}\n\t\t\tname\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\n\t\t\tconst r = rsp?.repository ?? undefined;\n\t\t\tif (r == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tprovider: provider,\n\t\t\t\towner: r.owner.login,\n\t\t\t\tname: r.name,\n\t\t\t\tisFork: r.parent != null,\n\t\t\t\tparent:\n\t\t\t\t\tr.parent != null\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\towner: r.parent.owner.login,\n\t\t\t\t\t\t\t\tname: r.parent.name,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref, path) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t\tpath: path,\n\t\t}),\n\t})\n\tasync getBlame(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\tpath: string,\n\t): Promise<GitHubBlame> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\tviewer: { name: string };\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject: {\n\t\t\t\t\t\t\tblame: {\n\t\t\t\t\t\t\t\tranges: GitHubBlameRange[];\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getBlameRanges(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$path: String!\n) {\n\tviewer { name }\n\trepository(owner: $owner, name: $repo) {\n\t\tobject(expression: $ref) {\n\t\t\t...on Commit {\n\t\t\t\tblame(path: $path) {\n\t\t\t\t\tranges {\n\t\t\t\t\t\tstartingLine\n\t\t\t\t\t\tendingLine\n\t\t\t\t\t\tcommit {\n\t\t\t\t\t\t\toid\n\t\t\t\t\t\t\tparents(first: 8) { nodes { oid } }\n\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\tadditions\n\t\t\t\t\t\t\tchangedFiles\n\t\t\t\t\t\t\tdeletions\n\t\t\t\t\t\t\tauthor {\n\t\t\t\t\t\t\t\tavatarUrl\n\t\t\t\t\t\t\t\tdate\n\t\t\t\t\t\t\t\temail\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcommitter {\n\t\t\t\t\t\t\t\tdate\n\t\t\t\t\t\t\t\temail\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t\tpath: path,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return emptyBlameResult;\n\n\t\t\tconst ranges = rsp.repository?.object?.blame?.ranges;\n\t\t\tif (ranges == null || ranges.length === 0) return { ranges: [], viewer: rsp.viewer?.name };\n\n\t\t\treturn { ranges: ranges, viewer: rsp.viewer?.name };\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyBlameResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getBranches(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\toptions?: { query?: string; cursor?: string; limit?: number },\n\t): Promise<PagedResult<GitHubBranch>> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\trefs: {\n\t\t\t\t\t\t\tpageInfo: {\n\t\t\t\t\t\t\t\tendCursor: string;\n\t\t\t\t\t\t\t\thasNextPage: boolean;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tnodes: GitHubBranch[];\n\t\t\t\t\t\t};\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getBranches(\n\t$owner: String!\n\t$repo: String!\n\t$branchQuery: String\n\t$cursor: String\n\t$limit: Int = 100\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\trefs(query: $branchQuery, refPrefix: \"refs/heads/\", first: $limit, after: $cursor) {\n\t\t\tpageInfo {\n\t\t\t\tendCursor\n\t\t\t\thasNextPage\n\t\t\t}\n\t\t\tnodes {\n\t\t\t\tname\n\t\t\t\ttarget {\n\t\t\t\t\toid\n\t\t\t\t\t...on Commit {\n\t\t\t\t\t\tauthoredDate\n\t\t\t\t\t\tcommittedDate\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tbranchQuery: options?.query,\n\t\t\t\t\tcursor: options?.cursor,\n\t\t\t\t\tlimit: Math.min(100, options?.limit ?? 100),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return emptyPagedResult;\n\n\t\t\tconst refs = rsp.repository?.refs;\n\t\t\tif (refs == null) return emptyPagedResult;\n\n\t\t\treturn {\n\t\t\t\tpaging: {\n\t\t\t\t\tcursor: refs.pageInfo.endCursor,\n\t\t\t\t\tmore: refs.pageInfo.hasNextPage,\n\t\t\t\t},\n\t\t\t\tvalues: refs.nodes,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t}),\n\t})\n\tasync getCommit(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t): Promise<(GitHubCommit & { viewer?: string }) | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\t'GET /repos/{owner}/{repo}/commits/{ref}',\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst result = rsp?.data;\n\t\t\tif (result == null) return undefined;\n\n\t\t\tconst { commit } = result;\n\t\t\treturn {\n\t\t\t\toid: result.sha,\n\t\t\t\tparents: { nodes: result.parents.map(p => ({ oid: p.sha })) },\n\t\t\t\tmessage: commit.message,\n\t\t\t\tadditions: result.stats?.additions,\n\t\t\t\tchangedFiles: result.files?.length,\n\t\t\t\tdeletions: result.stats?.deletions,\n\t\t\t\tauthor: {\n\t\t\t\t\tavatarUrl: result.author?.avatar_url ?? undefined,\n\t\t\t\t\tdate: commit.author?.date ?? new Date().toString(),\n\t\t\t\t\temail: commit.author?.email ?? undefined,\n\t\t\t\t\tname: commit.author?.name ?? '',\n\t\t\t\t},\n\t\t\t\tcommitter: {\n\t\t\t\t\tdate: commit.committer?.date ?? new Date().toString(),\n\t\t\t\t\temail: commit.committer?.email ?? undefined,\n\t\t\t\t\tname: commit.committer?.name ?? '',\n\t\t\t\t},\n\t\t\t\tfiles: result.files,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\n\t\t// const results = await this.getCommits(token, owner, repo, ref, { limit: 1 });\n\t\t// if (results.values.length === 0) return undefined;\n\n\t\t// return { ...results.values[0], viewer: results.viewer };\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref, path) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t\tpath: path,\n\t\t}),\n\t})\n\tasync getCommitForFile(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\tpath: string,\n\t): Promise<(GitHubCommit & { viewer?: string }) | undefined> {\n\t\tif (isSha(ref)) return this.getCommit(token, owner, repo, ref);\n\n\t\t// TODO: optimize this -- only need to get the sha for the ref\n\t\tconst results = await this.getCommits(token, owner, repo, ref, { limit: 1, path: path });\n\t\tif (results.values.length === 0) return undefined;\n\n\t\tconst commit = await this.getCommit(token, owner, repo, results.values[0].oid);\n\t\treturn { ...(commit ?? results.values[0]), viewer: results.viewer };\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, refs, mode, date) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\trefs: refs,\n\t\t\tmode: mode,\n\t\t\tdate: date,\n\t\t}),\n\t})\n\tasync getBranchesWithCommits(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\trefs: string[],\n\t\tmode: 'contains' | 'pointsAt',\n\t\tdate?: Date,\n\t): Promise<string[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository: {\n\t\t\t\trefs: {\n\t\t\t\t\tnodes: {\n\t\t\t\t\t\tname: string;\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\tnodes: { oid: string }[];\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t}[];\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\tconst limit = mode === 'contains' ? 10 : 1;\n\n\t\ttry {\n\t\t\tconst query = `query getBranchesWithCommits(\n\t$owner: String!\n\t$repo: String!\n\t$since: GitTimestamp!\n\t$until: GitTimestamp!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\trefs(first: 100, refPrefix: \"refs/heads/\") {\n\t\t\tnodes {\n\t\t\t\tname\n\t\t\t\ttarget {\n\t\t\t\t\t... on Commit {\n\t\t\t\t\t\thistory(first: ${limit}, since: $since until: $until) {\n\t\t\t\t\t\t\tnodes { oid }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tsince: date?.toISOString(),\n\t\t\t\t\tuntil: date?.toISOString(),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst nodes = rsp?.repository?.refs?.nodes;\n\t\t\tif (nodes == null) return [];\n\n\t\t\tconst branches = [];\n\n\t\t\tfor (const branch of nodes) {\n\t\t\t\tfor (const commit of branch.target.history.nodes) {\n\t\t\t\t\tif (refs.includes(commit.oid)) {\n\t\t\t\t\t\tbranches.push(branch.name);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn branches;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t}),\n\t})\n\tasync getCommitCount(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t): Promise<number | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository: {\n\t\t\t\tref: {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\thistory: { totalCount: number };\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommitCount(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tref(qualifiedName: $ref) {\n\t\t\ttarget {\n\t\t\t\t... on Commit {\n\t\t\t\t\thistory(first: 1) {\n\t\t\t\t\t\ttotalCount\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst count = rsp?.repository?.ref?.target.history.totalCount;\n\t\t\treturn count;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, branch, refs, mode, date) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tbranch: branch,\n\t\t\trefs: refs,\n\t\t\tmode: mode,\n\t\t\tdate: date,\n\t\t}),\n\t})\n\tasync getBranchWithCommit(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tbranch: string,\n\t\trefs: string[],\n\t\tmode: 'contains' | 'pointsAt',\n\t\tdate?: Date,\n\t): Promise<string[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository: {\n\t\t\t\tref: {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\tnodes: { oid: string }[];\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\tconst limit = mode === 'contains' ? 100 : 1;\n\n\t\ttry {\n\t\t\tconst query = `query getBranchWithCommit(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$since: GitTimestamp!\n\t$until: GitTimestamp!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tref(qualifiedName: $ref) {\n\t\t\ttarget {\n\t\t\t\t... on Commit {\n\t\t\t\t\thistory(first: ${limit}, since: $since until: $until) {\n\t\t\t\t\t\tnodes { oid }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: `refs/heads/${branch}`,\n\t\t\t\t\tsince: date?.toISOString(),\n\t\t\t\t\tuntil: date?.toISOString(),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst nodes = rsp?.repository?.ref?.target?.history?.nodes;\n\t\t\tif (nodes == null) return [];\n\n\t\t\tconst branches = [];\n\n\t\t\tfor (const commit of nodes) {\n\t\t\t\tif (refs.includes(commit.oid)) {\n\t\t\t\t\tbranches.push(branch);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn branches;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t}),\n\t})\n\tasync getCommits(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\toptions?: {\n\t\t\tafter?: string;\n\t\t\tall?: boolean;\n\t\t\tauthors?: GitUser[];\n\t\t\tbefore?: string;\n\t\t\tlimit?: number;\n\t\t\tpath?: string;\n\t\t\tsince?: string | Date;\n\t\t\tuntil?: string | Date;\n\t\t},\n\t): Promise<PagedResult<GitHubCommit> & { viewer?: string }> {\n\t\tconst scope = getScopedLogger();\n\n\t\tif (options?.limit === 1 && options?.path == null) {\n\t\t\treturn this.getCommitsCoreSingle(token, owner, repo, ref);\n\t\t}\n\n\t\tif (isRevisionRange(ref)) {\n\t\t\treturn this.getCommitsCoreRange(token, owner, repo, ref);\n\t\t}\n\n\t\tinterface QueryResult {\n\t\t\tviewer: { name: string };\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\t\t\tpageInfo: GitHubPageInfo;\n\t\t\t\t\t\t\t\t\t\tnodes: GitHubCommit[];\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommits(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$path: String\n\t$author: CommitAuthor\n\t$after: String\n\t$before: String\n\t$limit: Int = 100\n\t$since: GitTimestamp\n\t$until: GitTimestamp\n) {\n\tviewer { name }\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(expression: $ref) {\n\t\t\t... on Commit {\n\t\t\t\thistory(first: $limit, author: $author, path: $path, after: $after, before: $before, since: $since, until: $until) {\n\t\t\t\t\tpageInfo {\n\t\t\t\t\t\tstartCursor\n\t\t\t\t\t\tendCursor\n\t\t\t\t\t\thasNextPage\n\t\t\t\t\t\thasPreviousPage\n\t\t\t\t\t}\n\t\t\t\t\tnodes {\n\t\t\t\t\t\t... on Commit {\n\t\t\t\t\t\t\toid\n\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\tparents(first: 8) { nodes { oid } }\n\t\t\t\t\t\t\tadditions\n\t\t\t\t\t\t\tchangedFiles\n\t\t\t\t\t\t\tdeletions\n\t\t\t\t\t\t\tauthor {\n\t\t\t\t\t\t\t\tavatarUrl\n\t\t\t\t\t\t\t\tdate\n\t\t\t\t\t\t\t\temail\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcommitter {\n\t\t\t\t\t\t\t\t date\n\t\t\t\t\t\t\t\t email\n\t\t\t\t\t\t\t\t name\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tlet authors: { id?: string; emails?: string[] } | undefined;\n\t\t\tif (options?.authors != null) {\n\t\t\t\tif (options.authors.length === 1) {\n\t\t\t\t\tconst [author] = options.authors;\n\t\t\t\t\tauthors = {\n\t\t\t\t\t\tid: author.id,\n\t\t\t\t\t\temails: author.email ? [author.email] : undefined,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tconst emails = options.authors.filter(a => a.email).map(a => a.email!);\n\t\t\t\t\tauthors = emails.length ? { emails: emails } : undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t\tafter: options?.after,\n\t\t\t\t\tbefore: options?.before,\n\t\t\t\t\tpath: options?.path,\n\t\t\t\t\tauthor: authors,\n\t\t\t\t\tlimit: Math.min(100, options?.limit ?? 100),\n\t\t\t\t\tsince: typeof options?.since === 'string' ? options?.since : options?.since?.toISOString(),\n\t\t\t\t\tuntil: typeof options?.until === 'string' ? options?.until : options?.until?.toISOString(),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tconst history = rsp?.repository?.object?.history;\n\t\t\tif (history == null) return emptyPagedResult;\n\n\t\t\treturn {\n\t\t\t\tpaging:\n\t\t\t\t\thistory.pageInfo.endCursor != null\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tcursor: history.pageInfo.endCursor ?? undefined,\n\t\t\t\t\t\t\t\tmore: history.pageInfo.hasNextPage,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\tvalues: history.nodes,\n\t\t\t\tviewer: rsp?.viewer.name,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t}),\n\t})\n\tasync getCommitShas(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\toptions?: {\n\t\t\tafter?: string;\n\t\t\tbefore?: string;\n\t\t\tlimit?: number;\n\t\t\tpath?: string;\n\t\t\tsince?: string | Date;\n\t\t\tuntil?: string | Date;\n\t\t},\n\t): Promise<PagedResult<string>> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\t\t\tpageInfo: GitHubPageInfo;\n\t\t\t\t\t\t\t\t\t\tnodes: { oid: string }[];\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommitShas(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$path: String\n\t$after: String\n\t$before: String\n\t$limit: Int = 100\n\t$since: GitTimestamp\n\t$until: GitTimestamp\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(expression: $ref) {\n\t\t\t... on Commit {\n\t\t\t\thistory(first: $limit, path: $path, after: $after, before: $before, since: $since, until: $until) {\n\t\t\t\t\tpageInfo {\n\t\t\t\t\t\tstartCursor\n\t\t\t\t\t\tendCursor\n\t\t\t\t\t\thasNextPage\n\t\t\t\t\t\thasPreviousPage\n\t\t\t\t\t}\n\t\t\t\t\tnodes {\n\t\t\t\t\t\t... on Commit { oid }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t\tafter: options?.after,\n\t\t\t\t\tbefore: options?.before,\n\t\t\t\t\tpath: options?.path,\n\t\t\t\t\tlimit: Math.min(100, options?.limit ?? 100),\n\t\t\t\t\tsince: typeof options?.since === 'string' ? options?.since : options?.since?.toISOString(),\n\t\t\t\t\tuntil: typeof options?.until === 'string' ? options?.until : options?.until?.toISOString(),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tconst history = rsp?.repository?.object?.history;\n\t\t\tif (history == null) return emptyPagedResult;\n\n\t\t\treturn {\n\t\t\t\tpaging:\n\t\t\t\t\thistory.pageInfo.endCursor != null\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tcursor: history.pageInfo.endCursor ?? undefined,\n\t\t\t\t\t\t\t\tmore: history.pageInfo.hasNextPage,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\tvalues: history.nodes.map(n => n.oid),\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\tprivate async getCommitsCoreRange(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\trange: GitRevisionRange,\n\t): Promise<PagedResult<GitHubCommit> & { viewer?: string }> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tconst result = await this.getComparison(token, owner, repo, range);\n\t\t\tif (result == null) return emptyPagedResult;\n\n\t\t\treturn {\n\t\t\t\tvalues: result.commits\n\t\t\t\t\t?.map<GitHubCommit>(r => ({\n\t\t\t\t\t\toid: r.sha,\n\t\t\t\t\t\tparents: { nodes: r.parents.map(p => ({ oid: p.sha })) },\n\t\t\t\t\t\tmessage: r.commit.message,\n\t\t\t\t\t\tauthor: {\n\t\t\t\t\t\t\tavatarUrl: r.author?.avatar_url ?? undefined,\n\t\t\t\t\t\t\tdate: r.commit.author?.date ?? r.commit.committer?.date ?? new Date().toString(),\n\t\t\t\t\t\t\temail: r.author?.email ?? r.commit.author?.email ?? undefined,\n\t\t\t\t\t\t\tname: r.author?.name ?? r.commit.author?.name ?? '',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcommitter: {\n\t\t\t\t\t\t\tdate: r.commit.committer?.date ?? new Date().toString(),\n\t\t\t\t\t\t\temail: r.committer?.email ?? r.commit.committer?.email ?? undefined,\n\t\t\t\t\t\t\tname: r.committer?.name ?? r.commit.committer?.name ?? '',\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t\t.reverse(),\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\tprivate async getCommitsCoreSingle(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t): Promise<PagedResult<GitHubCommit> & { viewer?: string }> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\tviewer: { name: string };\n\t\t\trepository: { object: GitHubCommit } | null | undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommit(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n) {\n\tviewer { name }\n\trepository(name: $repo owner: $owner) {\n\t\tobject(expression: $ref) {\n\t\t\t...on Commit {\n\t\t\t\toid\n\t\t\t\tparents(first: 8) { nodes { oid } }\n\t\t\t\tmessage\n\t\t\t\tadditions\n\t\t\t\tchangedFiles\n\t\t\t\tdeletions\n\t\t\t\tauthor {\n\t\t\t\t\tavatarUrl\n\t\t\t\t\tdate\n\t\t\t\t\temail\n\t\t\t\t\tname\n\t\t\t\t}\n\t\t\t\tcommitter {\n\t\t\t\t\tdate\n\t\t\t\t\temail\n\t\t\t\t\tname\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return emptyPagedResult;\n\n\t\t\tconst commit = rsp.repository?.object;\n\t\t\treturn commit != null ? { values: [commit], viewer: rsp.viewer.name } : emptyPagedResult;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t}),\n\t})\n\tasync getCommitRefs(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\toptions?: {\n\t\t\tafter?: string;\n\t\t\tbefore?: string;\n\t\t\tfirst?: number;\n\t\t\tlast?: number;\n\t\t\tpath?: string;\n\t\t\tsince?: string;\n\t\t\tuntil?: string;\n\t\t},\n\t): Promise<GitHubPagedResult<GitHubCommitRef> | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject:\n\t\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\t\t\tpageInfo: GitHubPageInfo;\n\t\t\t\t\t\t\t\t\t\ttotalCount: number;\n\t\t\t\t\t\t\t\t\t\tnodes: GitHubCommitRef[];\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t| null\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommitRefs(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$after: String\n\t$before: String\n\t$first: Int\n\t$last: Int\n\t$path: String\n\t$since: GitTimestamp\n\t$until: GitTimestamp\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(expression: $ref) {\n\t\t\t... on Commit {\n\t\t\t\thistory(first: $first, last: $last, path: $path, since: $since, until: $until, after: $after, before: $before) {\n\t\t\t\t\tpageInfo { startCursor, endCursor, hasNextPage, hasPreviousPage }\n\t\t\t\t\ttotalCount\n\t\t\t\t\tnodes { oid }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t\tpath: options?.path,\n\t\t\t\t\tfirst: options?.first,\n\t\t\t\t\tlast: options?.last,\n\t\t\t\t\tafter: options?.after,\n\t\t\t\t\tbefore: options?.before,\n\t\t\t\t\tsince: options?.since,\n\t\t\t\t\tuntil: options?.until,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tconst history = rsp?.repository?.object?.history;\n\t\t\tif (history == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tpageInfo: history.pageInfo,\n\t\t\t\ttotalCount: history.totalCount,\n\t\t\t\tvalues: history.nodes,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref, date) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t\tdate: date,\n\t\t}),\n\t})\n\tasync getTagsWithCommit(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\tdate: Date,\n\t): Promise<string[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository: {\n\t\t\t\trefs: {\n\t\t\t\t\tnodes: {\n\t\t\t\t\t\tname: string;\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\tnodes: { oid: string }[];\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t}[];\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getTagsWithCommit(\n\t$owner: String!\n\t$repo: String!\n\t$since: GitTimestamp!\n\t$until: GitTimestamp!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\trefs(first: 100, refPrefix: \"refs/tags/\") {\n\t\t\tnodes {\n\t\t\t\tname\n\t\t\t\ttarget {\n\t\t\t\t\t... on Commit {\n\t\t\t\t\t\thistory(first: 10, since: $since until: $until) {\n\t\t\t\t\t\t\tnodes { oid }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tsince: date.toISOString(),\n\t\t\t\t\tuntil: date.toISOString(),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst nodes = rsp?.repository?.refs?.nodes;\n\t\t\tif (nodes == null) return [];\n\n\t\t\tconst tags = [];\n\n\t\t\tfor (const tag of nodes) {\n\t\t\t\tfor (const commit of tag.target.history.nodes) {\n\t\t\t\t\tif (commit.oid === ref) {\n\t\t\t\t\t\ttags.push(tag.name);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn tags;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref, path, sha) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t\tpath: path,\n\t\t\tsha: sha,\n\t\t}),\n\t})\n\tasync getNextCommitRefs(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\tpath: string,\n\t\tsha: string,\n\t): Promise<string[]> {\n\t\t// Get the commit date of the current commit\n\t\tconst commitDate = await this.getCommitDate(token, owner, repo, sha);\n\t\tif (commitDate == null) return [];\n\n\t\t// Get a resultset (just need the cursor and totals), to get the page info we need to construct a cursor to page backwards\n\t\tlet result = await this.getCommitRefs(token, owner, repo, ref, { path: path, first: 1, since: commitDate });\n\t\tif (result == null) return [];\n\n\t\t// Construct a cursor to allow use to walk backwards in time (starting at the tip going back in time until the commit date)\n\t\tconst cursor = `${result.pageInfo.startCursor!.split(' ', 1)[0]} ${result.totalCount}`;\n\n\t\tlet last;\n\t\t[, last] = cursor.split(' ', 2);\n\t\t// We can't ask for more commits than are left in the cursor (but try to get more to be safe, since the date isn't exact enough)\n\t\tlast = Math.min(parseInt(last, 10), 5);\n\n\t\t// Get the set of refs before the cursor\n\t\tresult = await this.getCommitRefs(token, owner, repo, ref, { path: path, last: last, before: cursor });\n\t\tif (result == null) return [];\n\n\t\tconst nexts: string[] = [];\n\n\t\tfor (const { oid } of result.values) {\n\t\t\tif (oid === sha) break;\n\n\t\t\tnexts.push(oid);\n\t\t}\n\n\t\treturn nexts.reverse();\n\t}\n\n\tprivate async getCommitDate(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tsha: string,\n\t): Promise<string | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tobject: { committer: { date: string } } | null | undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCommitDate(\n\t$owner: String!\n\t$repo: String!\n\t$sha: GitObjectID!\n) {\n\trepository(name: $repo, owner: $owner) {\n\t\tobject(oid: $sha) {\n\t\t\t... on Commit { committer { date } }\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tsha: sha,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tconst date = rsp?.repository?.object?.committer.date;\n\t\t\treturn date;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getContributors(token: GitHubTokenInfo, owner: string, repo: string): Promise<GitHubContributor[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\t// TODO@eamodio implement pagination\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\t'GET /repos/{owner}/{repo}/contributors',\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tper_page: 100,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst result = rsp?.data;\n\t\t\tif (result == null) return [];\n\n\t\t\treturn rsp.data;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, username) => ({\n\t\t\tprovider: provider?.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\tusername: username,\n\t\t}),\n\t})\n\tasync getUserSshSigningKeys(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\tusername: string,\n\t\toptions?: { baseUrl?: string },\n\t): Promise<GitHubSshSigningKey[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\t// SSH signing keys are public, so this works for any user with the current token (no extra scope needed).\n\t\t// TODO@eamodio implement pagination\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\t'GET /users/{username}/ssh_signing_keys',\n\t\t\t\t{ username: username, per_page: 100, ...options },\n\t\t\t\tscope,\n\t\t\t);\n\t\t\treturn rsp?.data ?? [];\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (provider, token) => ({ provider: provider?.name, token: `<token:${token.microHash}>` }) })\n\tasync getCurrentUserSshSigningKeys(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: { baseUrl?: string },\n\t): Promise<GitHubSshSigningKey[]> {\n\t\tconst scope = getScopedLogger();\n\n\t\t// TODO@eamodio implement pagination\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\t'GET /user/ssh_signing_keys',\n\t\t\t\t{ per_page: 100, ...options },\n\t\t\t\tscope,\n\t\t\t);\n\t\t\treturn rsp?.data ?? [];\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return [];\n\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getDefaultBranchName(token: GitHubTokenInfo, owner: string, repo: string): Promise<string | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tdefaultBranchRef: { name: string } | null | undefined;\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getDefaultBranch(\n\t$owner: String!\n\t$repo: String!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tdefaultBranchRef {\n\t\t\tname\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return undefined;\n\n\t\t\treturn rsp.repository?.defaultBranchRef?.name ?? undefined;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getCurrentUser(token: GitHubTokenInfo, owner: string, repo: string): Promise<GitUser | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\tviewer: {\n\t\t\t\tname: string;\n\t\t\t\temail: string;\n\t\t\t\tlogin: string;\n\t\t\t\tid: string;\n\t\t\t};\n\t\t\trepository: { viewerPermission: string } | null | undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getCurrentUser(\n\t$owner: String!\n\t$repo: String!\n) {\n\tviewer { name, email, login, id }\n\trepository(owner: $owner, name: $repo) { viewerPermission }\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return undefined;\n\n\t\t\treturn {\n\t\t\t\tname: rsp.viewer?.name,\n\t\t\t\temail: rsp.viewer?.email,\n\t\t\t\tusername: rsp.viewer?.login,\n\t\t\t\tid: rsp.viewer?.id,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, range) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\trange: range,\n\t\t}),\n\t})\n\tasync getComparison(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\trange: GitRevisionRange,\n\t): Promise<Endpoints['GET /repos/{owner}/{repo}/compare/{basehead}']['response']['data'] | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tif (!isRevisionRange(range, 'qualified-triple-dot')) {\n\t\t\t// GitHub doesn't support the `..` range notation, so convert it to `...` since it will work for many of our usages\n\t\t\tconst parts = getRevisionRangeParts(range);\n\t\t\trange = createRevisionRange(parts?.left || 'HEAD', parts?.right || 'HEAD', '...');\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\t'GET /repos/{owner}/{repo}/compare/{basehead}',\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tbasehead: range,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst result = rsp?.data;\n\t\t\tif (result == null) return undefined;\n\n\t\t\treturn result;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getRepositoryVisibility(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t): Promise<RepositoryVisibility | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\tvisibility: 'PUBLIC' | 'PRIVATE' | 'INTERNAL';\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getRepositoryVisibility(\n\t$owner: String!\n\t$repo: String!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tvisibility\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp?.repository?.visibility == null) return undefined;\n\n\t\t\treturn rsp.repository.visibility === 'PUBLIC' ? 'public' : 'private';\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, owner, repo) => ({ token: `<token:${token.microHash}>`, owner: owner, repo: repo }) })\n\tasync getTags(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\toptions?: { query?: string; cursor?: string; limit?: number },\n\t): Promise<PagedResult<GitHubTag>> {\n\t\tconst scope = getScopedLogger();\n\n\t\tinterface QueryResult {\n\t\t\trepository:\n\t\t\t\t| {\n\t\t\t\t\t\trefs: {\n\t\t\t\t\t\t\tpageInfo: {\n\t\t\t\t\t\t\t\tendCursor: string;\n\t\t\t\t\t\t\t\thasNextPage: boolean;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tnodes: GitHubTag[];\n\t\t\t\t\t\t};\n\t\t\t\t }\n\t\t\t\t| null\n\t\t\t\t| undefined;\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `query getTags(\n\t$owner: String!\n\t$repo: String!\n\t$tagQuery: String\n\t$cursor: String\n\t$limit: Int = 100\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\trefs(query: $tagQuery, refPrefix: \"refs/tags/\", first: $limit, after: $cursor, orderBy: { field: TAG_COMMIT_DATE, direction: DESC }) {\n\t\t\tpageInfo {\n\t\t\t\tendCursor\n\t\t\t\thasNextPage\n\t\t\t}\n\t\t\tnodes {\n\t\t\t\tname\n\t\t\t\ttarget {\n\t\t\t\t\toid\n\t\t\t\t\t...on Tag {\n\t\t\t\t\t\tmessage\n\t\t\t\t\t\ttagger { date }\n\t\t\t\t\t\ttarget {\n\t\t\t\t\t...on Commit {\n\t\t\t\t\t\t\t\toid\n\t\t\t\t\t\tauthoredDate\n\t\t\t\t\t\tcommittedDate\n\t\t\t\t\t\tmessage\n\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\ttagQuery: options?.query,\n\t\t\t\t\tcursor: options?.cursor,\n\t\t\t\t\tlimit: Math.min(100, options?.limit ?? 100),\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\tif (rsp == null) return emptyPagedResult;\n\n\t\t\tconst refs = rsp.repository?.refs;\n\t\t\tif (refs == null) return emptyPagedResult;\n\n\t\t\treturn {\n\t\t\t\tpaging: {\n\t\t\t\t\tcursor: refs.pageInfo.endCursor,\n\t\t\t\t\tmore: refs.pageInfo.hasNextPage,\n\t\t\t\t},\n\t\t\t\tvalues: refs.nodes,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return emptyPagedResult;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (token, owner, repo, ref, path) => ({\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tref: ref,\n\t\t\tpath: path,\n\t\t}),\n\t})\n\tasync resolveReference(\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tref: string,\n\t\tpath?: string,\n\t): Promise<string | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tif (!path) {\n\t\t\t\tinterface QueryResult {\n\t\t\t\t\trepository: { object: GitHubCommitRef } | null | undefined;\n\t\t\t\t}\n\n\t\t\t\tconst query = `query resolveReference(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tobject(expression: $ref) {\n\t\t\toid\n\t\t}\n\t}\n}`;\n\n\t\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\t\tundefined,\n\t\t\t\t\ttoken,\n\t\t\t\t\tquery,\n\t\t\t\t\t{\n\t\t\t\t\t\towner: owner,\n\t\t\t\t\t\trepo: repo,\n\t\t\t\t\t\tref: ref,\n\t\t\t\t\t},\n\t\t\t\t\tscope,\n\t\t\t\t);\n\t\t\t\treturn rsp?.repository?.object?.oid ?? undefined;\n\t\t\t}\n\n\t\t\tinterface QueryResult {\n\t\t\t\trepository:\n\t\t\t\t\t| {\n\t\t\t\t\t\t\tobject: {\n\t\t\t\t\t\t\t\thistory: {\n\t\t\t\t\t\t\t\t\tnodes: GitHubCommitRef[];\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t};\n\t\t\t\t\t }\n\t\t\t\t\t| null\n\t\t\t\t\t| undefined;\n\t\t\t}\n\n\t\t\tconst query = `query resolveReference(\n\t$owner: String!\n\t$repo: String!\n\t$ref: String!\n\t$path: String!\n) {\n\trepository(owner: $owner, name: $repo) {\n\t\tobject(expression: $ref) {\n\t\t\t... on Commit {\n\t\t\t\thistory(first: 1, path: $path) {\n\t\t\t\t\tnodes { oid }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\towner: owner,\n\t\t\t\t\trepo: repo,\n\t\t\t\t\tref: ref,\n\t\t\t\t\tpath: path,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\t\t\treturn rsp?.repository?.object?.history.nodes?.[0]?.oid ?? undefined;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, query) => ({ token: `<token:${token.microHash}>`, query: query }) })\n\tasync searchCommits(\n\t\ttoken: GitHubTokenInfo,\n\t\tquery: string,\n\t\toptions?: {\n\t\t\tcursor?: string;\n\t\t\tlimit?: number;\n\t\t\torder?: 'asc' | 'desc' | undefined;\n\t\t\tsort?: 'author-date' | 'committer-date' | undefined;\n\t\t},\n\t): Promise<GitHubPagedResult<GitHubCommit> | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tconst limit = Math.min(100, options?.limit ?? 100);\n\n\t\tlet page;\n\t\tlet pageSize;\n\t\tlet previousCount;\n\t\tif (options?.cursor != null) {\n\t\t\t[page, pageSize, previousCount] = options.cursor.split(' ', 3);\n\t\t\tpage = parseInt(page, 10);\n\t\t\t// TODO@eamodio need to figure out how allow different page sizes if the limit changes\n\t\t\tpageSize = parseInt(pageSize, 10);\n\t\t\tpreviousCount = parseInt(previousCount, 10);\n\t\t} else {\n\t\t\tpage = 1;\n\t\t\tpageSize = limit;\n\t\t\tpreviousCount = 0;\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\t'GET /search/commits',\n\t\t\t\t{\n\t\t\t\t\tq: query,\n\t\t\t\t\tsort: options?.sort,\n\t\t\t\t\torder: options?.order,\n\t\t\t\t\tper_page: pageSize,\n\t\t\t\t\tpage: page,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst data = rsp?.data;\n\t\t\tif (data == null || data.items.length === 0) return undefined;\n\n\t\t\tconst commits = data.items.map<GitHubCommit>(result => ({\n\t\t\t\toid: result.sha,\n\t\t\t\tparents: { nodes: result.parents.map(p => ({ oid: p.sha! })) },\n\t\t\t\tmessage: result.commit.message,\n\t\t\t\tauthor: {\n\t\t\t\t\tavatarUrl: result.author?.avatar_url ?? undefined,\n\t\t\t\t\tdate: result.commit.author?.date ?? result.commit.committer?.date ?? new Date().toString(),\n\t\t\t\t\temail: result.author?.email ?? result.commit.author?.email ?? undefined,\n\t\t\t\t\tname: result.author?.name ?? result.commit.author?.name ?? '',\n\t\t\t\t},\n\t\t\t\tcommitter: {\n\t\t\t\t\tdate: result.commit.committer?.date ?? result.committer?.date ?? new Date().toString(),\n\t\t\t\t\temail: result.committer?.email ?? result.commit.committer?.email ?? undefined,\n\t\t\t\t\tname: result.committer?.name ?? result.commit.committer?.name ?? '',\n\t\t\t\t},\n\t\t\t}));\n\n\t\t\tconst count = previousCount + data.items.length;\n\t\t\tconst hasMore = data.incomplete_results || data.total_count > count;\n\n\t\t\treturn {\n\t\t\t\tpageInfo: {\n\t\t\t\t\tstartCursor: `${page} ${pageSize} ${previousCount}`,\n\t\t\t\t\tendCursor: hasMore ? `${page + 1} ${pageSize} ${count}` : undefined,\n\t\t\t\t\thasPreviousPage: data.total_count > 0 && page > 1,\n\t\t\t\t\thasNextPage: hasMore,\n\t\t\t\t},\n\t\t\t\ttotalCount: data.total_count,\n\t\t\t\tvalues: commits,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (token, query) => ({ token: `<token:${token.microHash}>`, query: query }) })\n\tasync searchCommitShas(\n\t\ttoken: GitHubTokenInfo,\n\t\tquery: string,\n\t\toptions?: {\n\t\t\tcursor?: string;\n\t\t\tlimit?: number;\n\t\t\torder?: 'asc' | 'desc' | undefined;\n\t\t\tsort?: 'author-date' | 'committer-date' | undefined;\n\t\t},\n\t): Promise<GitHubPagedResult<{ sha: string; authorDate: number; committerDate: number }> | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tconst limit = Math.min(100, options?.limit ?? 100);\n\n\t\tlet page;\n\t\tlet pageSize;\n\t\tlet previousCount;\n\t\tif (options?.cursor != null) {\n\t\t\t[page, pageSize, previousCount] = options.cursor.split(' ', 3);\n\t\t\tpage = parseInt(page, 10);\n\t\t\t// TODO@eamodio need to figure out how allow different page sizes if the limit changes\n\t\t\tpageSize = parseInt(pageSize, 10);\n\t\t\tpreviousCount = parseInt(previousCount, 10);\n\t\t} else {\n\t\t\tpage = 1;\n\t\t\tpageSize = limit;\n\t\t\tpreviousCount = 0;\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(\n\t\t\t\tundefined,\n\t\t\t\ttoken,\n\t\t\t\t'GET /search/commits',\n\t\t\t\t{\n\t\t\t\t\tq: query,\n\t\t\t\t\tsort: options?.sort,\n\t\t\t\t\torder: options?.order,\n\t\t\t\t\tper_page: pageSize,\n\t\t\t\t\tpage: page,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t);\n\n\t\t\tconst data = rsp?.data;\n\t\t\tif (data == null || data.items.length === 0) return undefined;\n\n\t\t\tconst count = previousCount + data.items.length;\n\t\t\tconst hasMore = data.incomplete_results || data.total_count > count;\n\n\t\t\treturn {\n\t\t\t\tpageInfo: {\n\t\t\t\t\tstartCursor: `${page} ${pageSize} ${previousCount}`,\n\t\t\t\t\tendCursor: hasMore ? `${page + 1} ${pageSize} ${count}` : undefined,\n\t\t\t\t\thasPreviousPage: data.total_count > 0 && page > 1,\n\t\t\t\t\thasNextPage: hasMore,\n\t\t\t\t},\n\t\t\t\ttotalCount: data.total_count,\n\t\t\t\tvalues: data.items.map(r => ({\n\t\t\t\t\tsha: r.sha,\n\t\t\t\t\tauthorDate: new Date(r.commit.author.date).getTime(),\n\t\t\t\t\tcommitterDate: new Date(r.commit.committer?.date ?? r.commit.author.date).getTime(),\n\t\t\t\t})),\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestNotFoundError) return undefined;\n\n\t\t\tthrow this.handleException(ex, undefined, scope);\n\t\t}\n\t}\n\n\tprivate _enterpriseVersions = new Map<string, Version | null>();\n\n\t@trace({ args: (provider, token) => ({ provider: provider?.name, token: `<token:${token.microHash}>` }) })\n\tprivate async getEnterpriseVersion(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: { baseUrl?: string },\n\t): Promise<Version | undefined> {\n\t\tconst { accessToken } = token;\n\t\tlet version = this._enterpriseVersions.get(accessToken);\n\t\tif (version != null) return version;\n\t\tif (version === null) return undefined;\n\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tconst rsp = await this.request(provider, token, 'GET /meta', options, scope);\n\t\t\tconst v = (rsp?.data as unknown as { installed_version: string | null | undefined })?.installed_version;\n\t\t\tversion = v ? fromString(v) : null;\n\t\t} catch (_ex) {\n\t\t\tdebugger;\n\t\t\tversion = null;\n\t\t}\n\n\t\tthis._enterpriseVersions.set(accessToken, version);\n\t\treturn version ?? undefined;\n\t}\n\n\t// Runs `execute`, retrying transient gateway/network failures with backoff. `retryable` gates\n\t// retries to idempotent reads; `signal` lets an in-flight cancellation abort the backoff wait.\n\tprivate async requestWithRetries<T>(\n\t\texecute: () => Promise<T>,\n\t\tretryable: boolean,\n\t\tsignal: AbortSignal | undefined,\n\t\tscope: ScopedLogger | undefined,\n\t): Promise<T> {\n\t\tlet attempt = 0;\n\t\twhile (true) {\n\t\t\ttry {\n\t\t\t\treturn await execute();\n\t\t\t} catch (ex) {\n\t\t\t\tif (!retryable || attempt >= maxRequestRetries || signal?.aborted || !isRetryableTransientError(ex)) {\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tattempt++;\n\t\t\t\tconst delay = getRequestRetryDelay(attempt);\n\t\t\t\tscope?.warn(\n\t\t\t\t\t`Transient request failure (status ${ex.status}); retrying ${attempt}/${maxRequestRetries} in ${delay}ms`,\n\t\t\t\t);\n\t\t\t\tawait this.delayWithAbort(delay, signal);\n\t\t\t\t// Bail rather than retry if we were cancelled while waiting\n\t\t\t\tif (signal?.aborted) throw new CancellationError();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate delayWithAbort(ms: number, signal: AbortSignal | undefined): Promise<void> {\n\t\treturn new Promise<void>(resolve => {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet timer: ReturnType<typeof setTimeout>;\n\t\t\tconst onAbort = () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tsignal?.removeEventListener('abort', onAbort);\n\t\t\t\tresolve();\n\t\t\t}, ms);\n\t\t\tsignal?.addEventListener('abort', onAbort, { once: true });\n\t\t});\n\t}\n\n\t// Inflight dedupe: identical concurrent GraphQL requests share a single promise\n\t// to cut redundant traffic during graph/details enrichment bursts.\n\tprivate readonly _pendingGraphQL = new Map<string, Promise<unknown>>();\n\n\tprivate async graphql<T>(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\tquery: string,\n\t\tvariables: RequestParameters,\n\t\tscope: ScopedLogger | undefined,\n\t\tcancellation?: AbortSignal | undefined,\n\t\t/**\n\t\t * Accept a response whose only failures are NOT_FOUND, returning its PARTIAL data instead of throwing.\n\t\t *\n\t\t * For a single-entity query a NOT_FOUND is the whole answer, so throwing is right. For an ALIASED batch it\n\t\t * is one slot's answer: GitHub replies 200 with every resolvable alias populated and a NOT_FOUND per\n\t\t * missing one, so throwing discards the results that did resolve. Since a missing coordinate is the common\n\t\t * case for a batch, that would make the read useless for the very question it answers.\n\t\t *\n\t\t * Narrow on purpose: any error that is NOT a NOT_FOUND still throws, so auth, rate-limit and query-cost\n\t\t * failures keep their existing handling rather than being silently reported as a batch of absences.\n\t\t */\n\t\tallowPartialNotFound?: boolean,\n\t): Promise<T | undefined> {\n\t\tconst { accessToken, ...tokenInfo } = token;\n\t\t// Only dedupe when no cancellation/request option is in play — sharing a promise that\n\t\t// carries one caller's AbortSignal would let one cancellation cancel for everyone.\n\t\tconst dedupable = cancellation == null && variables?.request == null;\n\t\tlet dedupeKey: string | undefined;\n\t\tif (dedupable) {\n\t\t\ttry {\n\t\t\t\tdedupeKey = `${token.microHash}|${provider?.id ?? ''}|${query}|${JSON.stringify(variables ?? null)}`;\n\t\t\t} catch {\n\t\t\t\t// Non-serializable variable (BigInt, function, circular ref) — fall through to direct exec.\n\t\t\t\tdedupeKey = undefined;\n\t\t\t}\n\t\t\tif (dedupeKey != null) {\n\t\t\t\tconst inflight = this._pendingGraphQL.get(dedupeKey);\n\t\t\t\tif (inflight != null) return inflight as Promise<T | undefined>;\n\t\t\t}\n\t\t}\n\n\t\tconst run = async (): Promise<T | undefined> => {\n\t\t\ttry {\n\t\t\t\tif (cancellation != null) {\n\t\t\t\t\tif (cancellation.aborted) throw new CancellationError();\n\n\t\t\t\t\tvariables = {\n\t\t\t\t\t\t...variables,\n\t\t\t\t\t\trequest: { ...variables?.request, signal: cancellation },\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Retry transient gateway/network failures, but only confirmed read queries — never\n\t\t\t\t// mutations (re-running one isn't idempotent)\n\t\t\t\tconst retryable = graphqlReadQueryRegex.test(query);\n\t\t\t\treturn await this.requestWithRetries(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tthis.config.wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () =>\n\t\t\t\t\t\t\tthis.getDefaults(accessToken, graphql)(query, variables),\n\t\t\t\t\t\t),\n\t\t\t\t\tretryable,\n\t\t\t\t\tcancellation,\n\t\t\t\t\tscope,\n\t\t\t\t);\n\t\t\t} catch (ex) {\n\t\t\t\tif (ex instanceof GraphqlResponseError) {\n\t\t\t\t\t// `every`, not `[0]`: a batch can report several, and one non-NOT_FOUND among them is a real\n\t\t\t\t\t// failure that must not be reported as a set of absences.\n\t\t\t\t\tif (\n\t\t\t\t\t\tallowPartialNotFound &&\n\t\t\t\t\t\tex.data != null &&\n\t\t\t\t\t\t(ex.errors?.every(e => e.type === 'NOT_FOUND') ?? false)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ex.data as T;\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (ex.errors?.[0]?.type) {\n\t\t\t\t\t\tcase 'NOT_FOUND':\n\t\t\t\t\t\t\tthrow new RequestNotFoundError(ex);\n\t\t\t\t\t\tcase 'FORBIDDEN':\n\t\t\t\t\t\t\tthrow new AuthenticationError(tokenInfo, AuthenticationErrorReason.Forbidden, ex);\n\t\t\t\t\t\tcase 'RATE_LIMITED': {\n\t\t\t\t\t\t\tlet resetAt: number | undefined;\n\n\t\t\t\t\t\t\tconst reset = ex.headers?.['x-ratelimit-reset'];\n\t\t\t\t\t\t\tif (reset != null) {\n\t\t\t\t\t\t\t\tresetAt = parseInt(reset, 10);\n\t\t\t\t\t\t\t\tif (Number.isNaN(resetAt)) {\n\t\t\t\t\t\t\t\t\tresetAt = undefined;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthrow new RequestRateLimitError(ex, accessToken, resetAt);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Logger.isDebugging) {\n\t\t\t\t\t\tthis.config.onDebugError?.(`GitHub request failed: ${ex.errors?.[0]?.message ?? ex.message}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (ex instanceof RequestError || ex.name === 'AbortError') {\n\t\t\t\t\tthis.handleRequestError(provider, token, ex, scope);\n\t\t\t\t} else if (Logger.isDebugging) {\n\t\t\t\t\tthis.config.onDebugError?.(`GitHub request failed: ${ex.message}`);\n\t\t\t\t}\n\n\t\t\t\tthrow ex;\n\t\t\t}\n\t\t};\n\n\t\tif (dedupeKey == null) return run();\n\n\t\tconst promise = run();\n\t\tthis._pendingGraphQL.set(dedupeKey, promise);\n\t\t// Clear from the inflight map once the promise settles — successes and failures both\n\t\t// clear, so failed requests don't poison subsequent retries. Use `then(cleanup, cleanup)`\n\t\t// rather than `finally` so a rejected request doesn't spawn an orphaned (unhandled) promise;\n\t\t// the real caller still receives the rejection via the returned `promise`.\n\t\tconst cleanup = () => {\n\t\t\tif (this._pendingGraphQL.get(dedupeKey) === promise) {\n\t\t\t\tthis._pendingGraphQL.delete(dedupeKey);\n\t\t\t}\n\t\t};\n\t\tpromise.then(cleanup, cleanup);\n\t\treturn promise;\n\t}\n\n\tprivate async request<R extends keyof Endpoints>(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\troute: R,\n\t\toptions: (Endpoints[R]['parameters'] & RequestParameters) | undefined,\n\t\tscope: ScopedLogger | undefined,\n\t\tcancellation?: AbortSignal | undefined,\n\t): Promise<Endpoints[R]['response']> {\n\t\treturn (await this.requestCore(\n\t\t\tprovider,\n\t\t\ttoken,\n\t\t\troute,\n\t\t\toptions,\n\t\t\tscope,\n\t\t\tcancellation,\n\t\t)) as Endpoints[R]['response'];\n\t}\n\n\t/**\n\t * REST call for routes `@octokit/types` doesn't describe yet — currently the stacked-pull-request\n\t * merge APIs, which are in public preview and absent from the generated endpoint map. Prefer\n\t * `request` for anything typed.\n\t */\n\tprivate async requestPreview<T>(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\troute: string,\n\t\toptions: RequestParameters | undefined,\n\t\tscope: ScopedLogger | undefined,\n\t\tcancellation?: AbortSignal | undefined,\n\t): Promise<T> {\n\t\treturn (await this.requestCore(provider, token, route, options, scope, cancellation)) as T;\n\t}\n\n\tprivate async requestCore(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\troute: string,\n\t\toptions: RequestParameters | undefined,\n\t\tscope: ScopedLogger | undefined,\n\t\tcancellation?: AbortSignal | undefined,\n\t): Promise<unknown> {\n\t\tconst { accessToken } = token;\n\t\ttry {\n\t\t\tlet signal: AbortSignal | undefined;\n\t\t\tif (cancellation != null) {\n\t\t\t\tif (cancellation.aborted) throw new CancellationError();\n\n\t\t\t\tsignal = cancellation;\n\t\t\t\toptions = { ...options, request: { ...options?.request, signal: signal } };\n\t\t\t}\n\n\t\t\t// Retry transient gateway/network failures on idempotent reads only\n\t\t\tconst method = route.split(' ', 1)[0].toUpperCase();\n\t\t\tconst retryable = method === 'GET' || method === 'HEAD';\n\t\t\treturn await this.requestWithRetries(\n\t\t\t\t() =>\n\t\t\t\t\tthis.config.wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () =>\n\t\t\t\t\t\tthis.getDefaults(accessToken, request)(route, options),\n\t\t\t\t\t),\n\t\t\t\tretryable,\n\t\t\t\tsignal,\n\t\t\t\tscope,\n\t\t\t);\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof RequestError || ex.name === 'AbortError') {\n\t\t\t\tthis.handleRequestError(provider, token, ex, scope);\n\t\t\t} else if (Logger.isDebugging) {\n\t\t\t\tthis.config.onDebugError?.(`GitHub request failed: ${ex.message}`);\n\t\t\t}\n\n\t\t\tthrow ex;\n\t\t}\n\t}\n\n\tprivate _defaults = new Map<typeof request | typeof graphql, Map<string, typeof request | typeof graphql>>();\n\tprivate getDefaults(token: string, rqst: typeof request): typeof request;\n\tprivate getDefaults(token: string, gql: typeof graphql): typeof graphql;\n\tprivate getDefaults(\n\t\ttoken: string,\n\t\trequestOrGraphQL: typeof request | typeof graphql,\n\t): typeof request | typeof graphql {\n\t\tlet map = this._defaults.get(requestOrGraphQL);\n\t\tif (map == null) {\n\t\t\tmap = new Map();\n\t\t\tthis._defaults.set(requestOrGraphQL, map);\n\t\t}\n\n\t\tlet defaults = map.get(token);\n\t\tif (defaults == null) {\n\t\t\tconst configFetch = this.config.fetch;\n\t\t\tconst configIsWeb = this.config.isWeb;\n\t\t\tdefaults = requestOrGraphQL.defaults({\n\t\t\t\theaders: {\n\t\t\t\t\tauthorization: `token ${token}`,\n\t\t\t\t},\n\t\t\t\trequest: {\n\t\t\t\t\tfetch: configIsWeb\n\t\t\t\t\t\t? (url: string, options: { headers?: Record<string, string> }) => {\n\t\t\t\t\t\t\t\tif (options.headers != null) {\n\t\t\t\t\t\t\t\t\t// Strip out the user-agent (since it causes warnings in a webworker)\n\t\t\t\t\t\t\t\t\tconst { 'user-agent': userAgent, ...headers } = options.headers;\n\t\t\t\t\t\t\t\t\tif (userAgent) {\n\t\t\t\t\t\t\t\t\t\toptions.headers = headers;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn configFetch(url, options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: configFetch,\n\t\t\t\t\thook:\n\t\t\t\t\t\tLogger.enabled('trace') || Logger.isDebugging\n\t\t\t\t\t\t\t? async (rqst: typeof request, options: any) => {\n\t\t\t\t\t\t\t\t\tconst sw = maybeStopWatch(`[GITHUB] ${options.method} ${options.url}`, {\n\t\t\t\t\t\t\t\t\t\tlog: { onlyExit: true },\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\treturn await rqst(options);\n\t\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\t\tlet message;\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tif (typeof options.query === 'string') {\n\t\t\t\t\t\t\t\t\t\t\t\tconst match = /(^[^({\\n]+)/.exec(options.query);\n\t\t\t\t\t\t\t\t\t\t\t\tmessage = ` ${match?.[1].trim() ?? options.query}`;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t\tsw?.stop({ message: message });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t});\n\t\t\tmap.set(token, defaults);\n\t\t}\n\n\t\treturn defaults;\n\t}\n\n\tprivate handleRequestError(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\tex: RequestError | (Error & { name: 'AbortError' }),\n\t\tscope: ScopedLogger | undefined,\n\t): void {\n\t\tif (ex.name === 'AbortError') throw new CancellationError(ex);\n\n\t\tconst { accessToken, ...tokenInfo } = token;\n\t\tswitch (ex.status) {\n\t\t\tcase 404: // Not found\n\t\t\tcase 410: // Gone\n\t\t\tcase 422: // Unprocessable Entity\n\t\t\t\tthrow new RequestNotFoundError(ex);\n\t\t\tcase 429: // Too Many Requests\n\t\t\t\t// GitHub returns \"a `403` or `429` response\" for BOTH its primary and secondary rate limits\n\t\t\t\t// (docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api). 429 is unambiguous —\n\t\t\t\t// unlike 403, it is never a permission failure — so it needs no message check.\n\t\t\t\tthrow new RequestRateLimitError(ex, accessToken, rateLimitResetAt(ex));\n\t\t\tcase 401: // Unauthorized\n\t\t\t\tthrow new AuthenticationError(tokenInfo, AuthenticationErrorReason.Unauthorized, ex);\n\t\t\tcase 403: // Forbidden\n\t\t\t\t// The other status the rate limits arrive on, but 403 is also a plain permission failure, so here\n\t\t\t\t// the message is the discriminant.\n\t\t\t\tif (ex.message.includes('rate limit')) {\n\t\t\t\t\tthrow new RequestRateLimitError(ex, accessToken, rateLimitResetAt(ex));\n\t\t\t\t}\n\t\t\t\tthrow new AuthenticationError(tokenInfo, AuthenticationErrorReason.Forbidden, ex);\n\t\t\tcase 500: // Internal Server Error\n\t\t\t\tscope?.error(ex);\n\t\t\t\tif (ex.response != null) {\n\t\t\t\t\tprovider?.trackRequestException();\n\t\t\t\t\tthis.config.onRequestError?.(\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\tprovider == null || provider.id === 'github'\n\t\t\t\t\t\t\t? l10n.t(\n\t\t\t\t\t\t\t\t\t'{0} failed to respond and might be experiencing issues. Please visit the [GitHub status page](https://githubstatus.com) for more information.',\n\t\t\t\t\t\t\t\t\tprovider?.name ?? 'GitHub',\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: l10n.t('{0} failed to respond and might be experiencing issues.', provider.name),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase 502: // Bad Gateway\n\t\t\t\tscope?.error(ex);\n\t\t\t\t// GitHub seems to return this status code for timeouts\n\t\t\t\tif (ex.message.includes('timeout')) {\n\t\t\t\t\tprovider?.trackRequestException();\n\t\t\t\t\tthis.config.onRequestError?.(provider, `${provider?.name ?? 'GitHub'} request timed out`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 503: // Service Unavailable\n\t\t\t\tscope?.error(ex);\n\t\t\t\tprovider?.trackRequestException();\n\t\t\t\tthis.config.onRequestError?.(\n\t\t\t\t\tprovider,\n\t\t\t\t\tprovider == null || provider.id === 'github'\n\t\t\t\t\t\t? l10n.t(\n\t\t\t\t\t\t\t\t'{0} failed to respond and might be experiencing issues. Please visit the [GitHub status page](https://githubstatus.com) for more information.',\n\t\t\t\t\t\t\t\tprovider?.name ?? 'GitHub',\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: l10n.t('{0} failed to respond and might be experiencing issues.', provider.name),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tif (ex.status >= 400 && ex.status < 500) throw new RequestClientError(ex);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tscope?.error(ex);\n\t\tif (Logger.isDebugging) {\n\t\t\tthis.config.onDebugError?.(\n\t\t\t\t`GitHub request failed: ${(ex.response as any)?.errors?.[0]?.message ?? ex.message}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate handleException(\n\t\tex: Error,\n\t\tprovider: Provider | undefined,\n\t\tscope: ScopedLogger | undefined,\n\t\tsilent?: boolean,\n\t): Error {\n\t\tscope?.error(ex);\n\t\t// debugger;\n\n\t\tif (ex instanceof AuthenticationError && !silent) {\n\t\t\tvoid this.showAuthenticationErrorMessage(ex, provider);\n\t\t}\n\t\treturn ex;\n\t}\n\n\tprivate async showAuthenticationErrorMessage(ex: AuthenticationError, provider: Provider | undefined) {\n\t\tif (ex.reason === AuthenticationErrorReason.Unauthorized || ex.reason === AuthenticationErrorReason.Forbidden) {\n\t\t\tconst reauthenticated = await this.config.onAuthenticationFailure?.(ex, provider);\n\t\t\tif (reauthenticated) {\n\t\t\t\tthis.resetCaches();\n\t\t\t\tthis._onDidReauthenticate.fire();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async createEnterpriseAvatarUrl(\n\t\tprovider: Provider | undefined,\n\t\ttoken: GitHubTokenInfo,\n\t\tbaseUrl: string,\n\t\temail: string,\n\t\tavatarSize: number | undefined,\n\t): Promise<string | undefined> {\n\t\tavatarSize = avatarSize ?? 16;\n\t\tconst { accessToken } = token;\n\n\t\tconst version = await this.getEnterpriseVersion(provider, token, { baseUrl: baseUrl });\n\t\tif (satisfies(version, '>= 3.0.0')) {\n\t\t\tlet url: string | undefined;\n\n\t\t\tconst parts = getGitHubNoReplyAddressParts(email);\n\t\t\tif (parts != null) {\n\t\t\t\tif (parseUri(baseUrl).authority === parts.authority) {\n\t\t\t\t\tif (parts.userId != null) {\n\t\t\t\t\t\turl = `${baseUrl}/enterprise/avatars/u/${encodeURIComponent(parts.userId)}?s=${avatarSize}`;\n\t\t\t\t\t} else if (parts.login != null) {\n\t\t\t\t\t\turl = `${baseUrl}/enterprise/avatars/${encodeURIComponent(parts.login)}?s=${avatarSize}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\turl ??= `${baseUrl}/enterprise/avatars/u/e?email=${encodeURIComponent(email)}&s=${avatarSize}`;\n\n\t\t\tconst configFetch = this.config.fetch;\n\t\t\tconst rsp = await this.config.wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () =>\n\t\t\t\tconfigFetch(url, { method: 'GET', headers: { Authorization: `Bearer ${accessToken}` } }),\n\t\t\t);\n\n\t\t\tif (rsp.ok) {\n\t\t\t\tconst data = base64(new Uint8Array(await rsp.arrayBuffer()));\n\t\t\t\tconst mimeType = rsp.headers.get('content-type');\n\t\t\t\treturn `data:${mimeType};base64,${data}`;\n\t\t\t}\n\t\t}\n\n\t\t// The /u/e endpoint automatically falls back to gravatar if not found\n\t\treturn `https://avatars.githubusercontent.com/u/e?email=${encodeURIComponent(email)}&s=${avatarSize}`;\n\t}\n\n\t/**\n\t * One page of the current user's pull requests, filtered by state and optionally by an explicit\n\t * relationship qualifier. Backs the PR sweeps, which drain it page by page.\n\t *\n\t * Ordering is part of the contract, not an option: always `sort:updated` (most recently updated first), which is\n\t * {@link searchPullRequestsPage}'s DEFAULT rather than its only order — that read takes a `criteria.sort`, this\n\t * one does not, because a sweep's recency window is what its page budget is defined against. A caller that stops\n\t * before `hasMore` clears — every sweep with a\n\t * page budget — therefore retains a well-defined recency window instead of an arbitrary slice of GitHub's\n\t * relevance ranking.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchMyPullRequestsPage(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\tsearch?: string;\n\t\t\tuser?: string;\n\t\t\trepos?: string[];\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tsilent?: boolean;\n\t\t\tstate?: PullRequestStateFilter;\n\t\t\tcursor?: string;\n\t\t\t/**\n\t\t\t * Uses the lightweight PR fragment while retaining identity, body, author, repository, and branch refs.\n\t\t\t * Intended for aggregate/list surfaces that do not consume review, check, or diff statistics.\n\t\t\t */\n\t\t\tsummary?: boolean;\n\t\t\t/**\n\t\t\t * Adds GitHub's provider-native `involves:@me` relationship. Disable when `search` already carries\n\t\t\t * an explicit relationship qualifier such as `author:@me` or `review-requested:@me`.\n\t\t\t */\n\t\t\tincludeDefaultInvolvement?: boolean;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<{ values: PullRequest[]; cursor?: string; hasMore: boolean; truncated: boolean }> {\n\t\tconst scope = getScopedLogger();\n\t\t// The page follows the projection rather than being a separate decision: the full fragment is what GitHub\n\t\t// rejects at 100 nodes (see `defaultPullRequestSearchPageSize`), so every read that selects it pages at the\n\t\t// reduced size, and only the lite shape asks for the maximum. A caller that wants a whole list pages for it\n\t\t// — see `searchMyPullRequests`.\n\t\tconst configuredLimit = this.config.getLaunchpadQueryLimit?.() ?? maxPullRequestSearchPageSize;\n\t\tconst limit = Math.min(\n\t\t\toptions?.summary === true ? maxPullRequestSearchPageSize : defaultPullRequestSearchPageSize,\n\t\t\tconfiguredLimit,\n\t\t);\n\n\t\ttry {\n\t\t\tinterface SearchResult {\n\t\t\t\tsearch: {\n\t\t\t\t\tissueCount: number;\n\t\t\t\t\tpageInfo: {\n\t\t\t\t\t\tendCursor?: string | null;\n\t\t\t\t\t\thasNextPage: boolean;\n\t\t\t\t\t};\n\t\t\t\t\tnodes: GitHubPullRequest[];\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst query = `query searchMyPullRequests(\n\t\t$search: String!\n\t\t$cursor: String\n\t\t$avatarSize: Int\n\t) {\n\t\tsearch(first: ${limit}, after: $cursor, query: $search, type: ISSUE) {\n\t\t\tissueCount\n\t\t\tpageInfo {\n\t\t\t\tendCursor\n\t\t\t\thasNextPage\n\t\t\t}\n\t\t\tnodes {\n\t\t\t\t...on PullRequest {\n\t\t\t\t\t${options?.summary ? gqlPullRequestLiteFragment : gqlPullRequestFragment}\n\t\t\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}`;\n\n\t\t\tlet search = options?.search?.trim() ?? '';\n\n\t\t\tif (options?.user) {\n\t\t\t\tsearch += ` user:${options.user}`;\n\t\t\t}\n\n\t\t\tif (options?.repos?.length) {\n\t\t\t\tsearch += ` repo:${options.repos.join(' repo:')}`;\n\t\t\t}\n\n\t\t\tconst ignoredRepos = this.config.getLaunchpadIgnoredRepositories?.() ?? [];\n\t\t\tif (ignoredRepos.length) {\n\t\t\t\tsearch += ` -repo:${ignoredRepos.join(' -repo:')}`;\n\t\t\t}\n\n\t\t\tconst enabledOrgs = this.config.getLaunchpadIncludedOrganizations?.() ?? [];\n\t\t\tif (enabledOrgs.length) {\n\t\t\t\tsearch += ` org:${enabledOrgs.join(' org:')}`;\n\t\t\t} else {\n\t\t\t\tconst ignoredOrgs = this.config.getLaunchpadIgnoredOrganizations?.() ?? [];\n\t\t\t\tif (ignoredOrgs.length) {\n\t\t\t\t\tsearch += ` -org:${ignoredOrgs.join(' -org:')}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst stateQualifier =\n\t\t\t\toptions?.state === 'closed'\n\t\t\t\t\t? 'is:closed is:unmerged'\n\t\t\t\t\t: options?.state === 'merged'\n\t\t\t\t\t\t? 'is:merged'\n\t\t\t\t\t\t: options?.state === 'all'\n\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t: 'is:open';\n\n\t\t\tconst relationshipQualifier =\n\t\t\t\toptions?.includeDefaultInvolvement === false\n\t\t\t\t\t? 'is:pr archived:false'\n\t\t\t\t\t: 'is:pr involves:@me archived:false';\n\t\t\t// Ordering is part of the contract, not an option — same as `searchPullRequestsPage`. Without it\n\t\t\t// GitHub answers in `best-match` (relevance) order, so any result set the caller stops short of\n\t\t\t// draining is an arbitrary sample rather than \"the N most recent\": which rows land inside a page\n\t\t\t// budget can then shift with GitHub's ranking even when nothing changed upstream. Consumers that\n\t\t\t// cap the walk depend on this to make their window deterministic and time-bounded.\n\t\t\tconst rsp = await this.graphql<SearchResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\tsearch: [stateQualifier, relationshipQualifier, search, 'sort:updated']\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(' ')\n\t\t\t\t\t\t.trim(),\n\t\t\t\t\tcursor: options?.cursor,\n\t\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\t\tavatarSize: options?.avatarSize,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tif (rsp == null) return { values: [], hasMore: false, truncated: false };\n\n\t\t\tconst results: PullRequest[] = rsp.search.nodes.map(pr =>\n\t\t\t\toptions?.summary ? fromGitHubPullRequestLite(pr, provider) : fromGitHubPullRequest(pr, provider),\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tvalues: results,\n\t\t\t\tcursor: rsp.search.pageInfo.endCursor ?? undefined,\n\t\t\t\thasMore: rsp.search.pageInfo.hasNextPage,\n\t\t\t\ttruncated: rsp.search.issueCount > githubSearchResultLimit,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope, options?.silent);\n\t\t}\n\t}\n\n\t/**\n\t * The whole list rather than a page: this read has no cursor to hand back (its `IntegrationResult<T[]>` return\n\t * has no paging channel at all), so it drains up to {@link maxMyPullRequestSearchPages} pages itself.\n\t *\n\t * Draining instead of taking one page is what lets the full projection page at the reduced size everywhere\n\t * (see the `limit` in {@link searchMyPullRequestsPage}): a single page would otherwise have to ask for 100\n\t * nodes of the selection GitHub rejects at that size, purely because this caller cannot resume. Ordering is\n\t * `sort:updated`, so the pages compose into a defined window rather than a shifting relevance ranking, and the\n\t * drain stops as soon as GitHub reports no next page.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchMyPullRequests(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\tsearch?: string;\n\t\t\tuser?: string;\n\t\t\trepos?: string[];\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tsilent?: boolean;\n\t\t\tstate?: PullRequestStateFilter;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<PullRequest[]> {\n\t\tconst values: PullRequest[] = [];\n\t\t// The searches behind one page can overlap (a PR can be authored by and review-requested from the same\n\t\t// user), and a later page can repeat a row an earlier one already served if the PR was updated mid-drain.\n\t\tconst seen = new Set<string>();\n\t\tlet cursor: string | undefined;\n\n\t\tfor (let page = 0; page < maxMyPullRequestSearchPages; page++) {\n\t\t\tconst result = await this.searchMyPullRequestsPage(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\t{ ...options, cursor: cursor },\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tfor (const pr of result.values) {\n\t\t\t\tif (seen.has(pr.url)) continue;\n\n\t\t\t\tseen.add(pr.url);\n\t\t\t\tvalues.push(pr);\n\t\t\t}\n\n\t\t\t// A missing or repeated cursor with `hasMore` would loop on the same page forever.\n\t\t\tif (!result.hasMore || result.cursor == null || result.cursor === cursor) break;\n\n\t\t\tcursor = result.cursor;\n\t\t}\n\n\t\treturn values;\n\t}\n\n\t/**\n\t * The current user's issues: authored ∪ assigned ∪ mentioned, each its own aliased search behind one composite\n\t * cursor. Bound to `@me` by construction, unlike {@link searchIssuesPage}.\n\t *\n\t * Ordering is OPT-IN here, and that asymmetry with {@link searchIssuesPage} is deliberate: this read has never\n\t * requested a sort, so GitHub has always answered it in relevance order. Emitting a default would change which\n\t * issues its already-shipped consumers see, so an omitted `sort` still emits no `sort:` qualifier at all and\n\t * keeps today's result. Pass one to get a defined order — which is also what makes a page budget meaningful,\n\t * since relevance ranking can shift under an unchanged upstream.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchMyIssues(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\tsearch?: string;\n\t\t\tuser?: string;\n\t\t\trepos?: string[];\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tincludeBody?: boolean;\n\t\t\tincludeAllAssignees?: boolean;\n\t\t\tcursor?: string;\n\t\t\t/** Per aliased search, not per page: a full union page holds up to `3 × pageSize` nodes. Capped at 100. */\n\t\t\tpageSize?: number;\n\t\t\t/** Requested order. Omitted leaves GitHub's relevance order, which is what this read has always served. */\n\t\t\tsort?: IssueSorting;\n\t\t\t/**\n\t\t\t * Which of the three \"my issues\" searches to run. Omitted runs all three (GitHub's own definition of\n\t\t\t * \"mine\": authored ∪ assigned ∪ mentioned). Supplied, only the `true` ones run — so a caller wanting\n\t\t\t * `assignee:@me` parity asks for `{ assigned: true }` instead of filtering the union client-side (which\n\t\t\t * can't work: the dropped items still counted toward this page, so `hasMore`/`cursor` would describe a\n\t\t\t * different result set than `values`).\n\t\t\t *\n\t\t\t * At least one must be `true`; an all-`false` set reads nothing rather than silently widening back to\n\t\t\t * the union. The facade never sends one (an empty filter set means \"unfiltered\" there).\n\t\t\t */\n\t\t\tcategories?: { authored?: boolean; assigned?: boolean; mentioned?: boolean };\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<AliasedIssueSearchResult | undefined> {\n\t\tlet search = options?.search?.trim() ?? '';\n\n\t\tif (options?.user) {\n\t\t\tsearch += ` user:${options.user}`;\n\t\t}\n\n\t\tif (options?.repos != null && options.repos.length > 0) {\n\t\t\tconst repo = ' repo:';\n\t\t\tsearch += `${repo}${options.repos.join(repo)}`;\n\t\t}\n\n\t\t// A requested sort goes through the same table `searchIssuesPage` uses, so the two GitHub issue reads can't\n\t\t// diverge the first time a key is added. Omitted appends nothing — see this method's contract above.\n\t\tconst sortQualifier = toGitHubIssueSortQualifier(options?.sort);\n\t\tconst baseFilters = ['type:issue is:open archived:false', sortQualifier].filter(Boolean).join(' ');\n\t\t// `includeAllAssignees` broadens the assigned category from \"assigned to me\" to \"assigned to anyone\"\n\t\t// (`assignee:*` is GitHub's has-any-assignee qualifier). Authored/mentioned stay bound to `@me` — they're\n\t\t// user-relative by definition, so an all-assignees read still only surfaces the current user's authored\n\t\t// and mentioned issues plus every assigned-to-anyone issue.\n\t\t//\n\t\t// NOTE: `assignee:*` requires a SCOPE to be meaningful, but any scope will do — one repository, several,\n\t\t// or an org (measured: `repo:a repo:b … assignee:*` returns exactly the sum of the two per-repo counts).\n\t\t// It is only the UNSCOPED form that is meaningless, matching millions of issues across all of GitHub, so\n\t\t// callers must supply `repos` (or an org qualifier via `search`); the facade refuses the unscoped case.\n\t\tconst assignedQualifier = options?.includeAllAssignees ? 'assignee:*' : 'assignee:@me';\n\n\t\t// A category is read when the caller asked for it AND it hasn't been exhausted (a `null` cursor slot,\n\t\t// which `searchIssuesByAlias` maintains). An excluded category needs no cursor bookkeeping: a missing\n\t\t// response category reads back as `null`, so it stays excluded across continuations on its own.\n\t\tconst categories = options?.categories;\n\t\tconst requested = {\n\t\t\tauthored: categories?.authored ?? categories == null,\n\t\t\tassigned: categories?.assigned ?? categories == null,\n\t\t\tmentioned: categories?.mentioned ?? categories == null,\n\t\t};\n\n\t\t// Two things are fixed here rather than incidental:\n\t\t// - the alias names are this read's persisted cursor keys, so they can't be renamed;\n\t\t// - the ORDER is assigned → mentioned → authored, which is the order the union is emitted in and, because\n\t\t// the dedupe keeps the first occurrence of a url, also the precedence between the three. An issue that\n\t\t// is both assigned to and authored by the user surfaces as the assigned one.\n\t\t// The per-alias ceiling-slide bound a prior page sealed. Applied HERE because this method owns its query\n\t\t// text: without it the bound would be recorded and never honoured, so the continuation would re-issue the\n\t\t// unbounded query, serve the same first 1.000, and have every one of them filtered out as already-seen —\n\t\t// a page of nothing, repeated until the walk gave up (measured: 20 requests to do 10 requests' work).\n\t\tconst bound = this.parseSlidesFromCursor(options?.cursor);\n\t\tconst searches: AliasedIssueSearch[] = [];\n\t\tif (requested.assigned) {\n\t\t\tsearches.push({\n\t\t\t\talias: 'assigned',\n\t\t\t\tquery: `${search} ${baseFilters} ${assignedQualifier} ${bound('assigned') ?? ''}`.trim(),\n\t\t\t});\n\t\t}\n\t\tif (requested.mentioned) {\n\t\t\tsearches.push({\n\t\t\t\talias: 'mentioned',\n\t\t\t\tquery: `${search} ${baseFilters} mentions:@me ${bound('mentioned') ?? ''}`.trim(),\n\t\t\t});\n\t\t}\n\t\tif (requested.authored) {\n\t\t\tsearches.push({\n\t\t\t\talias: 'authored',\n\t\t\t\tquery: `${search} ${baseFilters} author:@me ${bound('authored') ?? ''}`.trim(),\n\t\t\t});\n\t\t}\n\n\t\t// Field by field, like `searchIssuesPage`: `options` also carries `repos`/`includeAllAssignees`/`categories`,\n\t\t// already folded into `searches[].query` above and undeclared by the callee.\n\t\treturn this.searchIssuesByAlias(\n\t\t\tprovider,\n\t\t\ttoken,\n\t\t\tsearches,\n\t\t\t{\n\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\tavatarSize: options?.avatarSize,\n\t\t\t\tincludeBody: options?.includeBody,\n\t\t\t\tcursor: options?.cursor,\n\t\t\t\tpageSize: options?.pageSize,\n\t\t\t\tsort: options?.sort,\n\t\t\t\t// This read emitted no `sort:` qualifier at all before ordering existed, so a cursor with no\n\t\t\t\t// recorded key came out of a relevance-ordered walk.\n\t\t\t\tlegacySort: unsortedCursorSort,\n\t\t\t},\n\t\t\tcancellation,\n\t\t);\n\t}\n\n\t/**\n\t * The filtered issue search: issues matching structured criteria over a repository/org scope, with no forced\n\t * relationship to the current user. The issue counterpart of {@link searchMyPullRequestsPage}, and distinct\n\t * from {@link searchMyIssues}, which is permanently bound to `@me`.\n\t *\n\t * Ordering is `criteria.sort`, defaulting to most-recently-updated-first — the order this read served before\n\t * ordering was an option, so an omitted `sort` emits the identical query. What is NOT optional is that SOME\n\t * order is always requested: without one GitHub answers in relevance order, and at the result ceiling that\n\t * makes which rows are reachable a function of GitHub's ranking rather than of the request. A key GitHub can't\n\t * express (`closed`, `priority`, …) is refused by the facade before the request, not silently downgraded.\n\t *\n\t * With more than one relationship the page is a UNION of several searches, each ordered by the provider; the\n\t * merged page is re-sorted here so the whole page honors the requested key. Across pages the order is still\n\t * per-alias — see {@link searchIssuesByAlias}. Note a union can also serve the same issue on two pages when\n\t * its relationships OVERLAP (an issue both authored by and assigned to the user sits at different depths in\n\t * the two), which predates the ceiling slide and is a property of unioning independent walks: measured at 50\n\t * repeats over 450 issues with no ceiling involved. Dedupe by url if that matters to the surface.\n\t *\n\t * GitHub's per-query result ceiling is NOT terminal here: an alias that runs out of pages while capped\n\t * continues bounded to the far side of its own last item, which is a fresh query with a fresh budget. Bounded\n\t * per alias, since they exhaust independently. Only a ceiling an alias cannot slide past (a sort key with no\n\t * usable range qualifier) is reported as an omission.\n\t *\n\t * Each requested relationship becomes its own aliased search, unioned and deduped by url; with none, a single\n\t * search runs over the scope alone. `criteria.text` and the other free-form values are sanitized so user input\n\t * cannot inject a qualifier and re-scope the search — see {@link toGitHubIssueSearchQualifiers}.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchIssuesPage(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\trepos?: string[];\n\t\t\torg?: string;\n\t\t\tcriteria?: IssueSearchCriteria;\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tincludeBody?: boolean;\n\t\t\tcursor?: string;\n\t\t\tpageSize?: number;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<AliasedIssueSearchResult | undefined> {\n\t\t// Resolved once: the emitted qualifier, the merged page's comparator and the cursor's fingerprint must all\n\t\t// be the same key, which is what `effectiveIssueSort` exists to guarantee.\n\t\tconst sort = effectiveIssueSort(options?.criteria?.sort);\n\t\tconst base = [\n\t\t\t...toGitHubIssueSearchScopeQualifiers(options?.org, options?.repos),\n\t\t\t...toGitHubIssueSearchQualifiers(options?.criteria, sort),\n\t\t].join(' ');\n\t\t// A cursor from a walk that already slid past the ceiling carries the bound each alias slid to, and the\n\t\t// query has to be rebuilt with it or that alias would restart at the top and re-serve its first 1.000.\n\t\t// PER ALIAS, because they slide independently: one bound shared across them would sit below where an\n\t\t// early-finishing alias stopped and re-serve everything it had already delivered.\n\t\tconst bound = this.parseSlidesFromCursor(options?.cursor);\n\n\t\t// One aliased search per relationship, OR-ed by union. They can't be one query: GitHub AND-s qualifiers,\n\t\t// so `author:@me assignee:@me` would return the intersection — issues the user both opened and is assigned\n\t\t// to — instead of either set. With no relationship the scope + criteria are already the whole query.\n\t\tconst relationships = options?.criteria?.relationships;\n\t\tconst searches: AliasedIssueSearch[] = relationships?.length\n\t\t\t? relationships.map(r => {\n\t\t\t\t\tconst { alias, qualifier } = gitHubIssueSearchRelationships[r];\n\t\t\t\t\treturn { alias: alias, query: `${base} ${qualifier} ${bound(alias) ?? ''}`.trim() };\n\t\t\t\t})\n\t\t\t: [{ alias: 'matched', query: `${base} ${bound('matched') ?? ''}`.trim() }];\n\n\t\t// Forwarded field by field rather than spread: `options` also carries `repos`/`org`/`criteria`, which are\n\t\t// already baked into `searches[].query` above and which the callee declares nothing about. `sort` is the\n\t\t// EFFECTIVE key, since the merged page and the cursor's fingerprint must both use the one the query used.\n\t\treturn this.searchIssuesByAlias(\n\t\t\tprovider,\n\t\t\ttoken,\n\t\t\tsearches,\n\t\t\t{\n\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\tavatarSize: options?.avatarSize,\n\t\t\t\tincludeBody: options?.includeBody,\n\t\t\t\tcursor: options?.cursor,\n\t\t\t\tpageSize: options?.pageSize,\n\t\t\t\tsort: sort,\n\t\t\t\t// This read has always emitted `sort:updated`, which is `defaultIssueSort` — so a cursor with no\n\t\t\t\t// recorded key came out of a walk under exactly that key, and only a caller asking for a\n\t\t\t\t// different one has to restart.\n\t\t\t\tlegacySort: defaultIssueSort,\n\t\t\t},\n\t\t\tcancellation,\n\t\t);\n\t}\n\n\t/**\n\t * Reads back the per-alias ceiling-slide bounds a prior page sealed into its cursor.\n\t *\n\t * Each value is validated against the EXACT shape {@link toGitHubIssueSearchSlideQualifier} emits, not merely\n\t * checked for being a string. A cursor is caller-supplied data on a round trip, so an unvalidated value here\n\t * would be a qualifier of someone else's choosing appended to the search: `org:evil-corp` in a cursor would\n\t * re-scope the read. Anything unrecognized yields no bound, which restarts that alias at the top — a repeated\n\t * page, which is the safe failure.\n\t */\n\tprivate parseSlidesFromCursor(cursor: string | undefined): (alias: string) => string | undefined {\n\t\tlet parsed: Record<string, unknown> | undefined;\n\t\tif (cursor != null) {\n\t\t\ttry {\n\t\t\t\tparsed = JSON.parse(cursor) as Record<string, unknown>;\n\t\t\t} catch {}\n\t\t}\n\n\t\treturn alias => {\n\t\t\tconst slide = parsed?.[`slide:${alias}`];\n\t\t\treturn typeof slide === 'string' &&\n\t\t\t\t/^(?:created|updated):(?:<=|>=)\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$/.test(slide)\n\t\t\t\t? slide\n\t\t\t\t: undefined;\n\t\t};\n\t}\n\n\t/**\n\t * Counts issues for several scopes in ONE request, transferring no issues at all — each scope is an aliased\n\t * `search` selecting only `issueCount`, with `first: 0` so no nodes are fetched.\n\t *\n\t * This is what makes a \"this will fetch ~N issues\" preview affordable: measured against the live API, 30\n\t * aliased counts cost a single rate-limit point. It is still a network request per chunk, so a caller is\n\t * expected to debounce and cache.\n\t *\n\t * Returns counts positionally — one per input scope, same order — because a caller-supplied key must never\n\t * reach the GraphQL document (it would break it); the aliases are generated. `undefined` in a slot means the\n\t * response omitted that alias, which the caller reports as \"not counted\" rather than as zero.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync countIssues(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\tscopes: readonly { repos?: string[]; org?: string; criteria?: IssueSearchCriteria }[],\n\t\toptions?: { baseUrl?: string },\n\t\tcancellation?: AbortSignal,\n\t): Promise<(number | undefined)[]> {\n\t\tconst scope = getScopedLogger();\n\t\tif (scopes.length === 0) return [];\n\n\t\tconst queries = scopes.map(s => {\n\t\t\t// The same resolved key the search would use, so the count previews the query it previews. Ordering\n\t\t\t// cannot change a total, but emitting a DIFFERENT qualifier string than the search does would break the\n\t\t\t// parity this probe is for.\n\t\t\tconst qualifiers = [\n\t\t\t\t...toGitHubIssueSearchScopeQualifiers(s.org, s.repos),\n\t\t\t\t...toGitHubIssueSearchQualifiers(s.criteria, effectiveIssueSort(s.criteria?.sort)),\n\t\t\t];\n\n\t\t\t// A relationship set is OR-ed across searches, which a single count can't express — the facade splits\n\t\t\t// such a scope into one count per relationship before calling, so at most one is present here.\n\t\t\tconst relationship = s.criteria?.relationships?.[0];\n\t\t\tif (relationship != null) {\n\t\t\t\tqualifiers.push(gitHubIssueSearchRelationships[relationship].qualifier);\n\t\t\t}\n\t\t\treturn qualifiers.join(' ');\n\t\t});\n\n\t\t// Aliases are positional and generated (`s0`, `s1`, …): a caller's key is arbitrary text and would break\n\t\t// the document, so the caller maps results back by index.\n\t\tconst params = queries.map((_, i) => `$q${i}: String!`).join('\\n\\t\\t\\t\\t');\n\t\t// `first: 0` is what makes this cheap — `issueCount` alone, no nodes over the wire.\n\t\tconst fields = queries\n\t\t\t.map((_, i) => `s${i}: search(query: $q${i}, type: ISSUE, first: 0) { issueCount }`)\n\t\t\t.join('\\n\\t\\t\\t\\t');\n\t\tconst query = `query countIssues(\n\t\t\t\t${params}\n\t\t\t) {\n\t\t\t\t${fields}\n\t\t\t}`;\n\n\t\tconst variables: Record<string, unknown> = { baseUrl: options?.baseUrl };\n\t\tqueries.forEach((q, i) => {\n\t\t\tvariables[`q${i}`] = q;\n\t\t});\n\n\t\ttry {\n\t\t\tconst rsp = await this.graphql<Record<string, { issueCount?: number } | undefined>>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tif (rsp == null) return queries.map(() => undefined);\n\n\t\t\treturn queries.map((_, i) => rsp[`s${i}`]?.issueCount);\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t/**\n\t * Resolves several issues BY COORDINATE — `(owner, repo, number)` — in one request, via aliased `repository`\n\t * fields rather than aliased searches.\n\t *\n\t * Aliasing the point read rather than {@link searchIssuesByAlias} is the whole design, and each difference\n\t * matters to the caller this exists for (correlating a branch name to the issue it references):\n\t * - it resolves by EXACT NUMBER, where a search answers a relevance question;\n\t * - no result ceiling applies, so there is no partial window to reason about;\n\t * - and a null is a PROVEN ABSENCE rather than \"not found within a page budget\", which is what makes a miss\n\t * cacheable. That last one is the point: a caller that cannot prove absence re-walks its budget forever.\n\t *\n\t * Returns POSITIONALLY — one slot per input coordinate, in order — for the same reason {@link countIssues}\n\t * does: a caller's key is arbitrary text and would break the GraphQL document, so the aliases are generated\n\t * and the caller maps back by index. `undefined` in a slot means the issue does not exist (or is not visible\n\t * to this token), never that the read failed; a failure throws.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync getIssuesBatch(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\tcoordinates: readonly { owner: string; repo: string; number: number }[],\n\t\toptions?: { baseUrl?: string; avatarSize?: number; includeBody?: boolean },\n\t\tcancellation?: AbortSignal,\n\t): Promise<(IssueShape | undefined)[]> {\n\t\tconst scope = getScopedLogger();\n\t\tif (coordinates.length === 0) return [];\n\n\t\tconst params = coordinates\n\t\t\t.map((_, i) => `$o${i}: String!\\n\\t\\t\\t\\t$n${i}: String!\\n\\t\\t\\t\\t$k${i}: Int!`)\n\t\t\t.join('\\n\\t\\t\\t\\t');\n\t\tconst fields = coordinates\n\t\t\t.map(\n\t\t\t\t(_, i) => `i${i}: repository(owner: $o${i}, name: $n${i}) {\n\t\t\t\t\tissue(number: $k${i}) {\n\t\t\t\t\t\t${gqIssueFragment}${options?.includeBody ? '\\n\\t\\t\\t\\t\\t\\tbody' : ''}\n\t\t\t\t\t}\n\t\t\t\t}`,\n\t\t\t)\n\t\t\t.join('\\n\\t\\t\\t\\t');\n\t\tconst query = `query getIssuesBatch(\n\t\t\t\t${params}\n\t\t\t\t$avatarSize: Int\n\t\t\t) {\n\t\t\t\t${fields}\n\t\t\t}`;\n\n\t\tconst variables: Record<string, unknown> = {\n\t\t\tbaseUrl: options?.baseUrl,\n\t\t\tavatarSize: options?.avatarSize,\n\t\t};\n\t\tcoordinates.forEach((c, i) => {\n\t\t\tvariables[`o${i}`] = c.owner;\n\t\t\tvariables[`n${i}`] = c.repo;\n\t\t\tvariables[`k${i}`] = c.number;\n\t\t});\n\n\t\ttry {\n\t\t\t// `allowPartialNotFound`: a coordinate that does not exist is this read's ANSWER for that slot, not a\n\t\t\t// failure of the batch. GitHub replies 200 with the resolvable aliases populated and a NOT_FOUND per\n\t\t\t// missing one, so without this a single bad coordinate would discard every good result — and a miss\n\t\t\t// is the common outcome for the caller this read exists for.\n\t\t\tconst rsp = await this.graphql<Record<string, { issue?: GitHubIssue | null } | null | undefined>>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t\tif (rsp == null) return coordinates.map(() => undefined);\n\n\t\t\t// Mapped slot by slot so one unmappable issue can't discard the whole batch, matching the aliased\n\t\t\t// search's node-by-node mapping. An unmappable issue reads as absent, which is the safe direction\n\t\t\t// here only because the caller is asking \"does this exist\", and a false absent costs a re-read\n\t\t\t// rather than a wrong issue.\n\t\t\treturn coordinates.map((c, i) => {\n\t\t\t\tconst node = rsp[`i${i}`]?.issue;\n\t\t\t\tif (node == null) return undefined;\n\n\t\t\t\ttry {\n\t\t\t\t\treturn fromGitHubIssue(node, provider);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tscope?.warn(`skipped unmappable issue; ${c.owner}/${c.repo}#${c.number}, ex=${ex}`);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t/**\n\t * The PR twin of {@link countIssues}: counts pull requests for several scopes in ONE request via aliased\n\t * `search` fields selecting only `issueCount` with `first: 0`. Same positional/undefined contract as the issue\n\t * count.\n\t *\n\t * The one difference is states. {@link toGitHubPullRequestSearchFacets} fans a scope's states out into one\n\t * `search` each, so this reports the count the SAME way {@link searchPullRequestsPage} reports its total — the\n\t * LARGEST facet's `issueCount`, not their sum: the result ceiling applies per search, so the max is what\n\t * `exceedsProviderLimit` compares against, and summing would claim a total the read never surfaces. Relationships\n\t * are OR-ed and can't be a single count; the facade refuses a multi-relationship scope, so at most one is here.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync countPullRequests(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\tscopes: readonly { repos?: string[]; org?: string; criteria?: PullRequestSearchCriteria }[],\n\t\toptions?: { baseUrl?: string },\n\t\tcancellation?: AbortSignal,\n\t): Promise<(number | undefined)[]> {\n\t\tconst scope = getScopedLogger();\n\t\tif (scopes.length === 0) return [];\n\n\t\t// Each scope expands to one query string per state facet (all sharing its single relationship, which the\n\t\t// facade guarantees). A scope's count is the MAX across its facets — mirroring searchPullRequestsPage's\n\t\t// totalCount — so the aliases stay grouped by scope and are reduced after the response.\n\t\tconst scopeQueries = scopes.map(s => {\n\t\t\tconst scopeQualifiers = toGitHubIssueSearchScopeQualifiers(s.org, s.repos);\n\t\t\treturn toGitHubPullRequestSearchFacets(s.criteria).map(f =>\n\t\t\t\t[...scopeQualifiers, ...f.qualifiers].join(' '),\n\t\t\t);\n\t\t});\n\n\t\t// Aliases are positional and generated (`s${scope}f${facet}`): a caller's key is arbitrary text and would\n\t\t// break the document, so results are reduced back to one count per scope by index.\n\t\tconst aliased = scopeQueries.flatMap((queries, si) =>\n\t\t\tqueries.map((query, fi) => ({ alias: `s${si}f${fi}`, query: query })),\n\t\t);\n\t\tconst params = aliased.map(a => `$${a.alias}: String!`).join('\\n\\t\\t\\t\\t');\n\t\t// `first: 0` is what makes this cheap — `issueCount` alone, no nodes over the wire.\n\t\tconst fields = aliased\n\t\t\t.map(a => `${a.alias}: search(query: $${a.alias}, type: ISSUE, first: 0) { issueCount }`)\n\t\t\t.join('\\n\\t\\t\\t\\t');\n\t\tconst query = `query countPullRequests(\n\t\t\t\t${params}\n\t\t\t) {\n\t\t\t\t${fields}\n\t\t\t}`;\n\n\t\tconst variables: Record<string, unknown> = { baseUrl: options?.baseUrl };\n\t\tfor (const a of aliased) {\n\t\t\tvariables[a.alias] = a.query;\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.graphql<Record<string, { issueCount?: number } | undefined>>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tif (rsp == null) return scopes.map(() => undefined);\n\n\t\t\treturn scopeQueries.map((queries, si) => {\n\t\t\t\tlet max: number | undefined;\n\t\t\t\tfor (let fi = 0; fi < queries.length; fi++) {\n\t\t\t\t\tconst count = rsp[`s${si}f${fi}`]?.issueCount;\n\t\t\t\t\tif (count != null) {\n\t\t\t\t\t\tmax = max == null ? count : Math.max(max, count);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn max;\n\t\t\t});\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t/**\n\t * The aliased-search engine behind every GitHub issue search: one GraphQL request carrying N independently\n\t * cursored `search` fields, `@include`-gated so an exhausted or unrequested one costs nothing.\n\t *\n\t * It exists as one implementation because the properties that make it correct are subtle and must not be\n\t * reproduced per read: each alias advances on its OWN cursor and is dropped from the request once exhausted\n\t * (so a finished search is never re-queried, which would re-emit its first page); results are mapped\n\t * node-by-node so one unmappable issue can't discard the page; the union is deduped by `url` rather than by\n\t * `IssueShape.id`, which for some providers is a per-repository number; and a provider that claims another\n\t * page while withholding its `endCursor` is reported as truncated instead of paged forever.\n\t *\n\t * {@link searchMyIssues} is one configuration of it (its three `@me` categories), and its alias names are\n\t * that read's published cursor keys.\n\t *\n\t * `searches` must have unique aliases, each a valid GraphQL name that is none of `page`, `truncated` or\n\t * `sort` — the composite cursor keys aliases at its top level, alongside those three reserved fields.\n\t *\n\t * `sort` is the order the caller asked for, which this does two things with. Each alias comes back ordered by\n\t * it (the qualifier is already in `searches[].query`), but the UNION of several aliases is not, so the merged\n\t * page is re-sorted here; and the key is recorded in the cursor, so a continuation that changed it THROWS\n\t * rather than serving a sequence with gaps and repeats. Omitted means the caller asked for no order at all\n\t * ({@link searchMyIssues}'s default), which re-sorts nothing and pins nothing.\n\t *\n\t * `legacySort` is the order the calling read produced BEFORE this field existed, and is what a cursor with no\n\t * recorded key is compared against — such a cursor is not of unknown order, it is of that read's old one.\n\t */\n\tprivate async searchIssuesByAlias(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\tsearches: readonly AliasedIssueSearch[],\n\t\toptions: {\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tincludeBody?: boolean;\n\t\t\tcursor?: string;\n\t\t\tpageSize?: number;\n\t\t\tsort?: IssueSorting;\n\t\t\tlegacySort: IssueSorting | typeof unsortedCursorSort;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<AliasedIssueSearchResult | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttype SearchCategory = {\n\t\t\tissueCount: number;\n\t\t\tpageInfo?: { endCursor?: string | null; hasNextPage: boolean };\n\t\t\tnodes: (GitHubIssue | null)[] | null;\n\t\t};\n\t\t/**\n\t\t * Aliases are keyed at the TOP LEVEL, alongside `page` and `truncated` — the format\n\t\t * {@link searchMyIssues} has always published, so it stays flat rather than nesting the aliases: a\n\t\t * consumer's persisted cursor has to keep resuming where it left off.\n\t\t *\n\t\t * A slot of `null` means exhausted and a missing slot means never requested; both keep that alias out of\n\t\t * the next request.\n\t\t */\n\t\tinterface SearchCursor {\n\t\t\tpage?: number;\n\t\t\ttruncated?: boolean;\n\t\t\t/**\n\t\t\t * Per-alias ceiling-slide state lives under `slide:<alias>`, `slideTs:<alias>` and\n\t\t\t * `slideSeen:<alias>`, which the index signature below already covers. Keyed with a colon so they\n\t\t\t * cannot collide with an alias slot, since a GraphQL alias cannot contain one — see the cursor\n\t\t\t * helpers above.\n\t\t\t *\n\t\t\t * `slideSeen:<alias>` is a space-delimited string rather than an array because this object's index\n\t\t\t * signature holds primitives, and a url cannot contain whitespace, so the separator is unambiguous.\n\t\t\t */\n\t\t\t/**\n\t\t\t * The order this cursor's pages were produced under: an `IssueSorting`, or `unsortedCursorSort` when\n\t\t\t * the caller asked for none. Written as a value rather than left absent in the no-order case\n\t\t\t * specifically so that ABSENT keeps meaning \"cursor from before ordering existed\", which is accepted\n\t\t\t * and sealed instead of refused — a consumer's persisted cursor has to keep working across this change.\n\t\t\t *\n\t\t\t * Those three cases are the whole domain, so it is typed as them rather than as `string`: a foreign\n\t\t\t * cursor carrying something else is caught by the mismatch check either way.\n\t\t\t */\n\t\t\tsort?: IssueSorting | typeof unsortedCursorSort;\n\t\t\t[alias: string]: string | number | boolean | null | undefined;\n\t\t}\n\n\t\t// Enforced, not just documented: aliases share the cursor's top level with `page` and `truncated`, so an\n\t\t// alias colliding with either would overwrite it — and the failure would be SILENT, a page number replaced\n\t\t// by a cursor string that reads back as page 1, restarting the walk with no error and no truncation flag.\n\t\t// Cheap to check, and it fails at the one call that introduced the collision rather than in a consumer's\n\t\t// persisted cursor.\n\t\tconst reserved = searches.filter(s => s.alias === 'page' || s.alias === 'truncated' || s.alias === 'sort');\n\t\tif (reserved.length > 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Issue search alias(es) ${reserved.map(s => `'${s.alias}'`).join(', ')} collide with the composite cursor's reserved keys`,\n\t\t\t);\n\t\t}\n\n\t\t// A key GitHub cannot express emits no `sort:` qualifier, so each alias would come back in RELEVANCE order\n\t\t// while the union below is sorted by that key and the cursor sealed under it: an arbitrary subset,\n\t\t// presented as ordered, resumable only into more of the same. Refused here rather than downgraded, which\n\t\t// is the rule the whole feature is built on. Unreachable through the facade — no `supportedIssueSorts`\n\t\t// table declares a key without a qualifier — so this guards the direct callers of the two public reads,\n\t\t// where `title` is expressible enough to have a comparator and not enough to be a GitHub search qualifier.\n\t\tif (options.sort != null && toGitHubIssueSortQualifier(options.sort) == null) {\n\t\t\tthrow new Error(`GitHub cannot order an issue search by '${options.sort}'`);\n\t\t}\n\n\t\tlet cursor: SearchCursor | undefined;\n\t\tif (options?.cursor != null) {\n\t\t\ttry {\n\t\t\t\tcursor = JSON.parse(options.cursor) as SearchCursor;\n\t\t\t} catch {}\n\t\t}\n\t\t// The order this request is being made under, as the cursor records it.\n\t\tconst requestedSort = options.sort ?? unsortedCursorSort;\n\t\t// A cursor produced under a DIFFERENT order can't be resumed: every alias would continue from a position in\n\t\t// a differently-ordered result set, so the continuation re-emits rows already seen and skips rows never\n\t\t// seen. REFUSED rather than silently restarted from page 1, because a restart cannot be reported honestly\n\t\t// from here: this read is cursor-only, so `resolveCurrentPage` has no page of its own to trust and echoes\n\t\t// the `page` the caller supplied alongside the cursor — page 1's rows would be published as page N, which\n\t\t// is the very confusion the fingerprint exists to prevent. Refusing surfaces a warning + `fetchFailed`, and\n\t\t// the remedy (\"drop the cursor\") is the caller's to apply.\n\t\t//\n\t\t// A cursor with NO recorded sort predates this field — which is not the same as being of unknown order.\n\t\t// Each read produced exactly one order before ordering was an option (`sort:updated` for the filtered\n\t\t// search, relevance for `searchMyIssues`), so an absent key reads as THAT one, `legacySort`. Compared\n\t\t// rather than waved through: the facade now resolves an omitted key to `defaultIssueSort`, so the\n\t\t// account-wide read's query gained a `sort:updated` qualifier it did not have, and resuming a\n\t\t// relevance-ordered cursor inside it advances each alias through a re-ordered result set — the gaps and\n\t\t// repeats this check exists to prevent, arriving through the very case meant to keep working. A cursor\n\t\t// whose implied key matches the request still resumes, and is sealed with the current one.\n\t\tconst cursorSort = cursor?.sort ?? options.legacySort;\n\t\tif (cursor != null && cursorSort !== requestedSort) {\n\t\t\tthrow new Error(\n\t\t\t\t`Issue search cursor was produced under sort '${cursorSort}' but '${requestedSort}' was requested; restart the read without a cursor`,\n\t\t\t);\n\t\t}\n\n\t\tconst page = Math.max(1, Math.trunc(cursor?.page ?? 1));\n\t\t// A slot is a continuation string, `null` (exhausted), or absent. Anything else came from a malformed or\n\t\t// foreign cursor, and is read as absent rather than threaded back into the request as a continuation.\n\t\tconst slotFor = (alias: string): string | null | undefined => {\n\t\t\tconst slot = cursor?.[alias];\n\t\t\treturn slot === null || typeof slot === 'string' ? slot : undefined;\n\t\t};\n\t\t// Every requested search is in the document; an exhausted one is switched OFF by its `@include` gate\n\t\t// rather than removed, so a continuation's request keeps the shape of the first one and GitHub's\n\t\t// query-document cache still recognizes it. `active` is what actually runs.\n\t\tconst isActive = (s: AliasedIssueSearch) => slotFor(s.alias) !== null;\n\t\tconst active = searches.filter(isActive);\n\t\t// Reading nothing is the honest answer to \"every requested search is exhausted (or none was requested)\":\n\t\t// widening back to the full set would return items the caller excluded, or re-emit a finished page.\n\t\tif (active.length === 0) {\n\t\t\treturn { values: [], hasMore: false, page: page, truncated: cursor?.truncated === true };\n\t\t}\n\n\t\t// GitHub's search caps a page at 100 regardless of what is asked for.\n\t\tconst pageSize = Math.min(100, Math.max(1, Math.trunc(options?.pageSize ?? 100)));\n\t\t// `includeAssigned` etc. — the same variable names the read published before the aliases were made\n\t\t// data-driven, so a recorded/asserted request shape stays recognizable.\n\t\tconst includeVar = (alias: string) => `include${alias.charAt(0).toUpperCase()}${alias.slice(1)}`;\n\t\tconst params = searches.flatMap(s => [\n\t\t\t`$${s.alias}: String!`,\n\t\t\t`$${s.alias}Cursor: String`,\n\t\t\t`$${includeVar(s.alias)}: Boolean!`,\n\t\t]);\n\t\tconst fields = searches.map(\n\t\t\ts => `${s.alias}: search(first: ${pageSize}, after: $${s.alias}Cursor, query: $${s.alias}, type: ISSUE)\n\t\t\t\t\t@include(if: $${includeVar(s.alias)}) {\n\t\t\t\t\tissueCount\n\t\t\t\t\tpageInfo {\n\t\t\t\t\t\tendCursor\n\t\t\t\t\t\thasNextPage\n\t\t\t\t\t}\n\t\t\t\t\tnodes {\n\t\t\t\t\t\t... on Issue {\n\t\t\t\t\t\t\t${gqIssueFragment}\n\t\t\t\t\t\t\t${options?.includeBody ? 'body' : ''}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`,\n\t\t);\n\t\tconst query = `query searchIssues(\n\t\t\t\t${params.join('\\n\\t\\t\\t\\t')}\n\t\t\t\t$avatarSize: Int\n\t\t\t) {\n\t\t\t\t${fields.join('\\n\\t\\t\\t\\t')}\n\t\t\t}`;\n\n\t\tconst variables: Record<string, unknown> = {\n\t\t\tbaseUrl: options?.baseUrl,\n\t\t\tavatarSize: options?.avatarSize,\n\t\t};\n\t\tfor (const s of searches) {\n\t\t\tvariables[s.alias] = s.query;\n\t\t\tvariables[`${s.alias}Cursor`] = slotFor(s.alias) ?? undefined;\n\t\t\tvariables[includeVar(s.alias)] = isActive(s);\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.graphql<Record<string, SearchCategory | undefined>>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tif (rsp == null) return { values: [], hasMore: false, page: page, truncated: false };\n\n\t\t\t// Map node-by-node so one unmappable issue can't discard the whole result set. Kept PER ALIAS rather\n\t\t\t// than flattened straight away: a ceiling slide bounds each alias at its OWN last item, so the\n\t\t\t// boundary has to be read off that alias's own page and not off the merged one (see below).\n\t\t\tconst issuesByAlias = new Map<string, IssueShape[]>();\n\t\t\tfor (const s of active) {\n\t\t\t\tconst mapped: IssueShape[] = [];\n\t\t\t\t// Drop what a previous page already served at this alias's INCLUSIVE slide boundary. Applied\n\t\t\t\t// before the merge so the dedupe's precedence rules only ever see genuinely new items.\n\t\t\t\tconst seen = slideSeenFor(cursor, s.alias);\n\t\t\t\tfor (const node of rsp[s.alias]?.nodes ?? []) {\n\t\t\t\t\tif (node?.id == null) continue;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst issue = fromGitHubIssue(node, provider);\n\t\t\t\t\t\tif (seen?.has(issue.url) !== true) {\n\t\t\t\t\t\t\tmapped.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tscope?.warn(`skipped unmappable issue; id=${node.id}, url=${node.url}, ex=${ex}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tissuesByAlias.set(s.alias, mapped);\n\t\t\t}\n\t\t\t// Flattened in `active` order, which is `searches` order, so the dedupe's precedence is unchanged.\n\t\t\tconst issues = active.flatMap(s => issuesByAlias.get(s.alias) ?? []);\n\n\t\t\t// Dedupe by `url`, not `IssueShape.id`: for some providers `id` is a per-repository number, so an\n\t\t\t// id-keyed map would collapse distinct issues across repositories.\n\t\t\tconst deduped = [\n\t\t\t\t...uniqueBy(\n\t\t\t\t\tissues,\n\t\t\t\t\tr => r.url,\n\t\t\t\t\t(original, _current) => original,\n\t\t\t\t),\n\t\t\t];\n\n\t\t\t// Each alias arrived ordered by the server; their concatenation is not, so the merged page is ordered\n\t\t\t// here. AFTER the dedupe, not before, and that ordering is load-bearing: the alias order is also the\n\t\t\t// dedupe's precedence (an issue both assigned to and authored by the user surfaces as the assigned one,\n\t\t\t// per `searchMyIssues`), and sorting first would hand `uniqueBy` a different first occurrence and\n\t\t\t// silently change which copy wins. The pull-request path sorts BEFORE its dedupe because its facets\n\t\t\t// carry no such precedence — the difference is deliberate, not an inconsistency to tidy up.\n\t\t\t//\n\t\t\t// A comparator is always available for a key GitHub declares (`created`/`updated`/`comments`/\n\t\t\t// `reactions` are all on `IssueShape`), so `undefined` here means the capability table has outrun this\n\t\t\t// read; leave the provider's per-alias order rather than inventing one.\n\t\t\t//\n\t\t\t// Counted over `active`, not `searches`: continuations exhaust aliases one at a time, so a later page of\n\t\t\t// a three-category walk can come from ONE surviving search — already ordered by the server. Re-sorting\n\t\t\t// it could only reproduce that order, while hiding a provider that ignored the qualifier.\n\t\t\tconst comparator = options?.sort != null ? getIssueComparator(options.sort) : undefined;\n\t\t\tif (comparator != null && active.length > 1) {\n\t\t\t\tdeduped.sort(comparator);\n\t\t\t}\n\n\t\t\t// Every alias gets a slot, so an inactive one keeps its `null` and stays out of the next request. A\n\t\t\t// missing slot would be read as \"never requested\", which for a `searches` set that still lists it\n\t\t\t// would restart it from its first page.\n\t\t\t// The order is pinned on the way out too, so the next round can refuse a changed key (see above).\n\t\t\tconst next: SearchCursor = { page: page + 1, sort: requestedSort };\n\t\t\tlet hasMore = false;\n\t\t\tlet continuationMissing = false;\n\t\t\tlet maxIssueCount = 0;\n\t\t\t// Whether ANY alias slid this round. A slide is forward progress, so it makes the read continuable\n\t\t\t// exactly as an ordinary next-cursor does.\n\t\t\tlet slid = false;\n\t\t\t// Whether any alias ran out of pages against a capped query WITHOUT being able to slide, which is the\n\t\t\t// only remaining way this read leaves results unreachable.\n\t\t\tlet strandedByCeiling = false;\n\t\t\tconst sortKey = options.sort;\n\t\t\tfor (const s of searches) {\n\t\t\t\tconst category = rsp[s.alias];\n\t\t\t\tconst endCursor =\n\t\t\t\t\tcategory?.pageInfo?.hasNextPage && category.pageInfo.endCursor ? category.pageInfo.endCursor : null;\n\t\t\t\tif (category?.pageInfo?.hasNextPage === true && category.pageInfo.endCursor == null) {\n\t\t\t\t\tcontinuationMissing = true;\n\t\t\t\t}\n\t\t\t\tconst issueCount = category?.issueCount ?? 0;\n\t\t\t\tmaxIssueCount = Math.max(maxIssueCount, issueCount);\n\n\t\t\t\t// The urls already served at THIS alias's trailing timestamp, which its inclusive slide re-serves.\n\t\t\t\t// Accumulated across pages while that timestamp holds, and reset when it moves, so it carries one\n\t\t\t\t// second's worth of urls rather than the walk's — a tied block from a bulk edit can span several\n\t\t\t\t// pages, and rebuilding this from the last page alone would re-serve the earlier ones.\n\t\t\t\tconst mapped = issuesByAlias.get(s.alias);\n\t\t\t\tconst trailingTs =\n\t\t\t\t\tmapped != null ? lastSortBoundary(mapped, sortKey ?? defaultIssueSort)?.getTime() : undefined;\n\t\t\t\tconst trailing = new Set<string>(\n\t\t\t\t\ttrailingTs != null && cursorNumber(cursor, `slideTs:${s.alias}`) === trailingTs\n\t\t\t\t\t\t? (slideSeenFor(cursor, s.alias) ?? [])\n\t\t\t\t\t\t: [],\n\t\t\t\t);\n\t\t\t\t// Accumulated only while this alias is CAPPED, since only a capped alias can reach a slide. Without\n\t\t\t\t// that test every page of every search would seal its trailing second's urls for a slide that\n\t\t\t\t// will never happen — a rounding error for an ordinary search, where a second holds one or two\n\t\t\t\t// issues, but this rides in a cursor `broadenIssues` nests once per org.\n\t\t\t\t//\n\t\t\t\t// The carry-forward below is NOT gated the same way: a slid query's remainder is often under the\n\t\t\t\t// cap, and its first page still needs the filter for the boundary second the inclusive bound\n\t\t\t\t// deliberately re-serves. Gating both re-served that block (measured: 100 duplicates).\n\t\t\t\t//\n\t\t\t\t// Bounded by the reachable window: one second's worth of urls drawn from at most\n\t\t\t\t// `githubSearchResultLimit` items, so ~45 KB per alias at the very worst, which takes a bulk edit\n\t\t\t\t// stamping a thousand issues with a single timestamp.\n\t\t\t\tconst carryBoundary = issueCount > githubSearchResultLimit;\n\t\t\t\tif (trailingTs != null && carryBoundary) {\n\t\t\t\t\tfor (const issue of mapped ?? []) {\n\t\t\t\t\t\tif (lastSortBoundary([issue], sortKey ?? defaultIssueSort)?.getTime() === trailingTs) {\n\t\t\t\t\t\t\ttrailing.add(issue.url);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnext[`slideTs:${s.alias}`] = trailingTs;\n\t\t\t\t\tnext[`slideSeen:${s.alias}`] = [...trailing].join(' ');\n\t\t\t\t} else {\n\t\t\t\t\t// A page can come back EMPTY right after a slide: the re-issued query restarts at the top of\n\t\t\t\t\t// the bounded range, so its first page can be entirely items this set already filtered out.\n\t\t\t\t\t// Dropping the set here would un-filter them on the page after, so carry it forward untouched.\n\t\t\t\t\tnext[`slideTs:${s.alias}`] = cursorNumber(cursor, `slideTs:${s.alias}`);\n\t\t\t\t\tnext[`slideSeen:${s.alias}`] = cursorString(cursor, `slideSeen:${s.alias}`);\n\t\t\t\t}\n\n\t\t\t\t// A CEILING SLIDE turns the per-query cap from terminal into continuable: re-issuing THIS alias's\n\t\t\t\t// search bounded to the far side of its own last item gives its remainder a full budget. Bounded\n\t\t\t\t// PER ALIAS and not once for the page, because aliases exhaust independently: one bound taken\n\t\t\t\t// from the merged page would sit below where an early-finishing alias stopped and re-serve\n\t\t\t\t// everything it had already delivered.\n\t\t\t\tlet aliasSlide: string | undefined;\n\t\t\t\t// Capped AND out of pages is where the ceiling actually bites. Evaluated on its own rather than\n\t\t\t\t// inside the slide attempt below: a read that cannot slide at all (no order requested, so no\n\t\t\t\t// boundary to slide from) must still REPORT the ceiling, and folding the two together silently\n\t\t\t\t// dropped that for `searchMyIssues`, whose ordering is opt-in.\n\t\t\t\tconst strandedHere = endCursor == null && issueCount > githubSearchResultLimit;\n\t\t\t\tif (strandedHere && sortKey != null) {\n\t\t\t\t\tconst boundary = mapped != null ? lastSortBoundary(mapped, sortKey) : undefined;\n\t\t\t\t\taliasSlide = boundary != null ? toGitHubIssueSearchSlideQualifier(sortKey, boundary) : undefined;\n\t\t\t\t\t// A bound identical to the one this alias is ALREADY under would re-issue the same query\n\t\t\t\t\t// forever. NOT needed for correctness, and that is measured rather than assumed: against a\n\t\t\t\t\t// provider that honours the bound there is no walk that reaches it. The nearest case, a tied\n\t\t\t\t\t// block larger than the cap, terminates on its own instead — every page inside the block is\n\t\t\t\t\t// filtered away by `slideSeen` until the walk ends on an empty page with no boundary to slide\n\t\t\t\t\t// from, so the second slide is never computed (verified: 1.200 issues sharing one second serve\n\t\t\t\t\t// the reachable 1.000 and report the ceiling, with this guard never firing).\n\t\t\t\t\t//\n\t\t\t\t\t// It is here purely as defence in depth against a bound that silently does nothing, because\n\t\t\t\t\t// that failure mode is an unbounded request loop rather than a wrong answer, and this read\n\t\t\t\t\t// walks until a provider tells it to stop. Cheap insurance against the one bug class that\n\t\t\t\t\t// cannot be shrugged off.\n\t\t\t\t\tif (aliasSlide != null && aliasSlide === cursorString(cursor, `slide:${s.alias}`)) {\n\t\t\t\t\t\taliasSlide = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (strandedHere && aliasSlide == null) {\n\t\t\t\t\tstrandedByCeiling = true;\n\t\t\t\t}\n\n\t\t\t\tif (aliasSlide != null) {\n\t\t\t\t\t// Restart this alias inside its new bound: a position from the old query is meaningless there.\n\t\t\t\t\tnext[s.alias] = undefined;\n\t\t\t\t\tnext[`slide:${s.alias}`] = aliasSlide;\n\t\t\t\t\tslid = true;\n\t\t\t\t} else {\n\t\t\t\t\tnext[s.alias] = endCursor;\n\t\t\t\t\t// Carry the bound this alias is already walking under, or it would restart at the top.\n\t\t\t\t\tnext[`slide:${s.alias}`] = cursorString(cursor, `slide:${s.alias}`);\n\t\t\t\t\tif (endCursor != null) {\n\t\t\t\t\t\thasMore = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Only the ceiling an alias could NOT slide past is incompleteness. A capped alias with pages left has\n\t\t\t// nothing to slide past yet, and one that slid has its remainder reachable through the cursor: marking\n\t\t\t// either would seal `truncated: true` and keep it there for the rest of the read, so a completed walk\n\t\t\t// would report results it went on to fetch as omitted.\n\t\t\tconst truncated = cursor?.truncated === true || strandedByCeiling || continuationMissing;\n\t\t\tnext.truncated = truncated || undefined;\n\t\t\tconst continuable = hasMore || slid;\n\t\t\treturn {\n\t\t\t\tvalues: deduped,\n\t\t\t\tcursor: continuable ? JSON.stringify(next) : undefined,\n\t\t\t\thasMore: continuable,\n\t\t\t\tpage: page,\n\t\t\t\ttruncated: truncated,\n\t\t\t\ttotalCount: maxIssueCount,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t/**\n\t * Searches pull requests over a repository/org or current-user relationship scope. One GraphQL document carries\n\t * every active relationship × state facet, so one HTTP request serves one page even when the logical search is\n\t * a union. The cursor preserves each facet's continuation plus the positional page.\n\t *\n\t * Ordering is `criteria.sort`, defaulting to most-recently-updated-first — the order this read served before it\n\t * was expressible. It is requested of the provider AND re-applied to the merged page, because the page is a\n\t * union of facets and no per-facet server order describes it. The sort is part of the cursor fingerprint, so\n\t * changing it invalidates a threaded cursor exactly as changing the text or the scope does. User text is\n\t * sanitized before it reaches the provider query. See {@link toGitHubPullRequestSearchFacets}.\n\t */\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchPullRequestsPage(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\trepos?: string[];\n\t\t\torg?: string;\n\t\t\tcriteria?: PullRequestSearchCriteria;\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tcursor?: string;\n\t\t\tpageSize?: number;\n\t\t\t/**\n\t\t\t * Uses the lightweight PR fragment, retaining identity, body, author, repository, branch refs, and stack\n\t\t\t * info while omitting review, check, and diff statistics. It also replaces the flat per-facet default with\n\t\t\t * a budget multi-facet searches share across their active facets, so it raises the page with up to three of\n\t\t\t * them and LOWERS it from four on.\n\t\t\t */\n\t\t\tsummary?: boolean;\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<PullRequestSearchResult | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\tconst facets = toGitHubPullRequestSearchFacets(options?.criteria);\n\t\tconst facetAliases = facets.map(f => f.alias).sort();\n\t\tconst scopeQualifiers = toGitHubIssueSearchScopeQualifiers(options?.org, options?.repos);\n\t\tconst facetSearches = new Map(\n\t\t\tfacets.map(f => [f.alias, [...scopeQualifiers, ...f.qualifiers].join(' ')] as const),\n\t\t);\n\t\t// Bind a cursor to every qualifier without publishing the user text/scope inside the opaque cursor. FNV-1a\n\t\t// is a compact drift key, not a security primitive: a mismatch only degrades safely to page 1.\n\t\tlet cursorKeyHash = 0x811c9dc5;\n\t\tfor (const value of [...facetSearches.entries()].sort(([a], [b]) => a.localeCompare(b)).flat()) {\n\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\tcursorKeyHash ^= value.charCodeAt(i);\n\t\t\t\tcursorKeyHash = Math.imul(cursorKeyHash, 0x01000193);\n\t\t\t}\n\t\t\tcursorKeyHash ^= 0;\n\t\t\tcursorKeyHash = Math.imul(cursorKeyHash, 0x01000193);\n\t\t}\n\t\tconst cursorKey = (cursorKeyHash >>> 0).toString(36);\n\n\t\ttype SearchCategory = {\n\t\t\tissueCount: number;\n\t\t\tpageInfo?: { endCursor?: string | null; hasNextPage: boolean };\n\t\t\tnodes: (GitHubPullRequest | null)[] | null;\n\t\t};\n\t\tinterface SearchCursor {\n\t\t\tkey: string;\n\t\t\tpage: number;\n\t\t\tfacets: Record<string, string | null>;\n\t\t\ttruncated?: boolean;\n\t\t\ttotalCount?: number;\n\t\t}\n\n\t\tlet cursor: SearchCursor | undefined;\n\t\tif (options?.cursor != null) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(options.cursor) as Partial<SearchCursor>;\n\t\t\t\tconst parsedFacets = parsed.facets;\n\t\t\t\tif (parsedFacets != null && typeof parsedFacets === 'object' && !Array.isArray(parsedFacets)) {\n\t\t\t\t\tconst parsedAliases = Object.keys(parsedFacets).sort();\n\t\t\t\t\tconst sameFacets =\n\t\t\t\t\t\tparsedAliases.length === facetAliases.length &&\n\t\t\t\t\t\tparsedAliases.every((alias, index) => alias === facetAliases[index]);\n\t\t\t\t\tconst usableSlots = Object.values(parsedFacets).every(\n\t\t\t\t\t\tslot => slot === null || (typeof slot === 'string' && slot.length > 0),\n\t\t\t\t\t);\n\t\t\t\t\tif (parsed.key === cursorKey && sameFacets && usableSlots) {\n\t\t\t\t\t\tcursor = {\n\t\t\t\t\t\t\tkey: cursorKey,\n\t\t\t\t\t\t\tpage:\n\t\t\t\t\t\t\t\ttypeof parsed.page === 'number' && Number.isFinite(parsed.page)\n\t\t\t\t\t\t\t\t\t? Math.max(1, Math.trunc(parsed.page))\n\t\t\t\t\t\t\t\t\t: 1,\n\t\t\t\t\t\t\tfacets: parsedFacets,\n\t\t\t\t\t\t\ttruncated: parsed.truncated === true,\n\t\t\t\t\t\t\ttotalCount:\n\t\t\t\t\t\t\t\ttypeof parsed.totalCount === 'number' && Number.isFinite(parsed.totalCount)\n\t\t\t\t\t\t\t\t\t? Math.max(0, Math.trunc(parsed.totalCount))\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t}\n\t\tconst page = cursor?.page ?? 1;\n\t\tconst isActive = (alias: string): boolean => cursor?.facets[alias] !== null;\n\t\tconst activeFacets = facets.filter(f => isActive(f.alias));\n\t\tif (activeFacets.length === 0) {\n\t\t\treturn {\n\t\t\t\tvalues: [],\n\t\t\t\thasMore: false,\n\t\t\t\tpage: page,\n\t\t\t\ttruncated: cursor?.truncated === true,\n\t\t\t\ttotalCount: cursor?.totalCount,\n\t\t\t};\n\t\t}\n\n\t\t// Each active facet selects its own page in the same GraphQL document. Share the lite projection's\n\t\t// 100-node default across those selections; an explicit page size remains a per-facet request.\n\t\tconst defaultSize =\n\t\t\toptions?.summary === true\n\t\t\t\t? Math.max(1, Math.floor(maxPullRequestSearchPageSize / activeFacets.length))\n\t\t\t\t: defaultPullRequestSearchPageSize;\n\t\tconst pageSize = Math.min(\n\t\t\tmaxPullRequestSearchPageSize,\n\t\t\tMath.max(1, Math.trunc(options?.pageSize ?? defaultSize)),\n\t\t);\n\n\t\tconst includeVar = (alias: string): string => `include${alias.charAt(0).toUpperCase()}${alias.slice(1)}`;\n\t\tconst params = facets.flatMap(f => [\n\t\t\t`$${f.alias}Search: String!`,\n\t\t\t`$${f.alias}Cursor: String`,\n\t\t\t`$${includeVar(f.alias)}: Boolean!`,\n\t\t]);\n\t\tconst fields = facets.map(\n\t\t\tf => `${f.alias}: search(first: ${pageSize}, after: $${f.alias}Cursor, query: $${f.alias}Search, type: ISSUE)\n\t\t\t\t@include(if: $${includeVar(f.alias)}) {\n\t\t\t\tissueCount\n\t\t\t\tpageInfo {\n\t\t\t\t\tendCursor\n\t\t\t\t\thasNextPage\n\t\t\t\t}\n\t\t\t\tnodes {\n\t\t\t\t\t... on PullRequest {\n\t\t\t\t\t\t${options?.summary ? gqlPullRequestLiteFragment : gqlPullRequestFragment}\n\t\t\t\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`,\n\t\t);\n\t\tconst query = `query searchPullRequestsPage(\n\t\t\t${params.join('\\n\\t\\t\\t')}\n\t\t\t$avatarSize: Int\n\t\t) {\n\t\t\t${fields.join('\\n\\t\\t\\t')}\n\t\t}`;\n\n\t\tconst variables: Record<string, unknown> = {\n\t\t\tbaseUrl: options?.baseUrl,\n\t\t\tavatarSize: options?.avatarSize,\n\t\t};\n\t\tfor (const facet of facets) {\n\t\t\tvariables[`${facet.alias}Search`] = facetSearches.get(facet.alias);\n\t\t\tvariables[`${facet.alias}Cursor`] = cursor?.facets[facet.alias] ?? undefined;\n\t\t\tvariables[includeVar(facet.alias)] = isActive(facet.alias);\n\t\t}\n\n\t\ttry {\n\t\t\tconst rsp = await this.graphql<Record<string, SearchCategory | undefined>>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\t\t\tif (rsp == null) return { values: [], hasMore: false, page: page, truncated: false };\n\n\t\t\tconst pullRequests: PullRequestShape[] = [];\n\t\t\tfor (const facet of activeFacets) {\n\t\t\t\tfor (const node of rsp[facet.alias]?.nodes ?? []) {\n\t\t\t\t\tif (node?.id == null) continue;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Must follow the projection: the lite fragment does not select reviews, checks or diff\n\t\t\t\t\t\t// stats, and the full mapper reads them — mapping a lite node with it would silently\n\t\t\t\t\t\t// report \"no reviewers\"/\"no checks\" as FACTS rather than as unselected.\n\t\t\t\t\t\tpullRequests.push(\n\t\t\t\t\t\t\toptions?.summary\n\t\t\t\t\t\t\t\t? fromGitHubPullRequestLite(node, provider)\n\t\t\t\t\t\t\t\t: fromGitHubPullRequest(node, provider),\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tscope?.warn(`skipped unmappable pull request; id=${node.id}, url=${node.url}, ex=${ex}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// The PR path re-sorts the merged page rather than trusting the per-facet server order — GitHub's\n\t\t\t// server-side PR sort has been unreliable (the per-branch path re-sorts for the same reason), and the\n\t\t\t// union of several facets is unordered regardless. The key was validated against\n\t\t\t// `githubPullRequestSearchCapabilities.sorts` upstream, so its comparator is always defined for a PR\n\t\t\t// shape; the guard only guards the unreachable case rather than inventing an order for it.\n\t\t\tconst comparator = getPullRequestComparator(options?.criteria?.sort ?? defaultPullRequestSort);\n\t\t\tif (comparator != null) {\n\t\t\t\tpullRequests.sort(comparator);\n\t\t\t}\n\t\t\tconst values = [\n\t\t\t\t...uniqueBy(\n\t\t\t\t\tpullRequests,\n\t\t\t\t\tpr => pr.url,\n\t\t\t\t\t(original, _current) => original,\n\t\t\t\t),\n\t\t\t];\n\n\t\t\tconst nextFacets: Record<string, string | null> = {};\n\t\t\tlet hasMore = false;\n\t\t\tlet continuationMissing = false;\n\t\t\tlet totalCount = cursor?.totalCount ?? 0;\n\t\t\tlet providerLimitReached = false;\n\t\t\tfor (const facet of facets) {\n\t\t\t\tif (!isActive(facet.alias)) {\n\t\t\t\t\tnextFacets[facet.alias] = null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst category = rsp[facet.alias];\n\t\t\t\tconst endCursor =\n\t\t\t\t\tcategory?.pageInfo?.hasNextPage === true && category.pageInfo.endCursor\n\t\t\t\t\t\t? category.pageInfo.endCursor\n\t\t\t\t\t\t: null;\n\t\t\t\tnextFacets[facet.alias] = endCursor;\n\t\t\t\tif (endCursor != null) {\n\t\t\t\t\thasMore = true;\n\t\t\t\t}\n\t\t\t\tif (category?.pageInfo?.hasNextPage === true && category.pageInfo.endCursor == null) {\n\t\t\t\t\tcontinuationMissing = true;\n\t\t\t\t}\n\t\t\t\ttotalCount = Math.max(totalCount, category?.issueCount ?? 0);\n\t\t\t\tproviderLimitReached ||= (category?.issueCount ?? 0) > githubSearchResultLimit;\n\t\t\t}\n\t\t\tconst truncated = cursor?.truncated === true || providerLimitReached || continuationMissing;\n\t\t\tconst next: SearchCursor = {\n\t\t\t\tkey: cursorKey,\n\t\t\t\tpage: page + 1,\n\t\t\t\tfacets: nextFacets,\n\t\t\t\ttruncated: truncated || undefined,\n\t\t\t\ttotalCount: totalCount,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tvalues: values,\n\t\t\t\tcursor: hasMore ? JSON.stringify(next) : undefined,\n\t\t\t\thasMore: hasMore,\n\t\t\t\tpage: page,\n\t\t\t\ttruncated: truncated,\n\t\t\t\ttotalCount: totalCount,\n\t\t\t};\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({ args: (provider, token) => ({ provider: provider.name, token: `<token:${token.microHash}>` }) })\n\tasync searchPullRequests(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\toptions?: {\n\t\t\tsearch?: string;\n\t\t\tuser?: string;\n\t\t\trepos?: string[];\n\t\t\tbaseUrl?: string;\n\t\t\tavatarSize?: number;\n\t\t\tinclude?: PullRequestState[];\n\t\t},\n\t\tcancellation?: AbortSignal,\n\t): Promise<PullRequest[]> {\n\t\tconst scope = getScopedLogger();\n\t\tconst pageSize = 10;\n\t\tconst include = options?.include?.length ? options.include : undefined;\n\t\tconst stateSearches = requiresGitHubPullRequestStateFacets(include)\n\t\t\t? [\n\t\t\t\t\t{ alias: 'opened', qualifier: 'is:open' },\n\t\t\t\t\t{ alias: 'merged', qualifier: 'is:merged' },\n\t\t\t\t]\n\t\t\t: [{ alias: 'search', qualifier: toGitHubSearchStateQualifier(include) }];\n\n\t\ttype SearchResult = Record<\n\t\t\tstring,\n\t\t\t| {\n\t\t\t\t\tnodes: GitHubPullRequest[];\n\t\t\t }\n\t\t\t| undefined\n\t\t>;\n\n\t\ttry {\n\t\t\tconst params = stateSearches.map(({ alias }) =>\n\t\t\t\talias === 'search' ? '$searchQuery: String!' : `$${alias}SearchQuery: String!`,\n\t\t\t);\n\t\t\tconst fields = stateSearches.map(({ alias }) => {\n\t\t\t\tconst fieldAlias = alias === 'search' ? '' : `${alias}: `;\n\t\t\t\tconst variable = alias === 'search' ? 'searchQuery' : `${alias}SearchQuery`;\n\t\t\t\treturn `${fieldAlias}search(first: ${pageSize}, query: $${variable}, type: ISSUE) {\n\t\tnodes {\n\t\t\t...on PullRequest {\n\t\t\t\t${gqlPullRequestFragment}\n\t\t\t\t${gqlPullRequestStackFragmentFor(options)}\n\t\t\t}\n\t\t}\n\t}`;\n\t\t\t});\n\t\t\tconst query = `query searchPullRequests(\n\t${params.join('\\n\\t')}\n\t$avatarSize: Int\n) {\n\t${fields.join('\\n\\t')}\n}`;\n\n\t\t\tlet search = options?.search?.trim() ?? '';\n\n\t\t\tif (options?.user) {\n\t\t\t\tsearch += ` user:${options.user}`;\n\t\t\t}\n\n\t\t\tif (options?.repos != null && options.repos.length > 0) {\n\t\t\t\tconst repo = ' repo:';\n\t\t\t\tsearch += `${repo}${options.repos.join(repo)}`;\n\t\t\t}\n\n\t\t\tconst variables: Record<string, unknown> = {\n\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\tavatarSize: options?.avatarSize,\n\t\t\t};\n\t\t\tfor (const { alias, qualifier } of stateSearches) {\n\t\t\t\tconst variable = alias === 'search' ? 'searchQuery' : `${alias}SearchQuery`;\n\t\t\t\tvariables[variable] = ['is:pr', qualifier, 'archived:false', search.trim()].filter(Boolean).join(' ');\n\t\t\t}\n\n\t\t\tconst rsp = await this.graphql<SearchResult>(provider, token, query, variables, scope, cancellation);\n\t\t\tif (rsp == null) return [];\n\n\t\t\tconst results: PullRequest[] = [];\n\t\t\tfor (const { alias } of stateSearches) {\n\t\t\t\tfor (const node of rsp[alias]?.nodes ?? []) {\n\t\t\t\t\tresults.push(fromGitHubPullRequest(node, provider));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t...uniqueBy(\n\t\t\t\t\tfilterPullRequestsBySearchState(results, include),\n\t\t\t\t\tpr => pr.url,\n\t\t\t\t\t(original, _current) => original,\n\t\t\t\t),\n\t\t\t].slice(0, pageSize);\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t/**\n\t * Every stack in the repository, each with its members bottom to top.\n\t *\n\t * One request regardless of how many pull requests are involved — which is what makes it the right\n\t * shape for list surfaces, whose pull requests arrive through the shared providers API and so carry no\n\t * stack membership of their own. Callers join the result by pull request number.\n\t *\n\t * A `404` means the repository isn't enrolled in the stacked-pull-requests preview; that's reported as\n\t * `undefined` rather than an error, since \"no stacks\" and \"not available\" both mean nothing to show.\n\t */\n\t@trace({\n\t\targs: (provider, token, owner, repo) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t}),\n\t})\n\tasync getRepositoryStacks(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\toptions?: { baseUrl?: string },\n\t\tcancellation?: AbortSignal,\n\t): Promise<GitHubStackResource[] | undefined> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tconst rsp = await this.requestPreview<{ data: GitHubStackResource[] }>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\t'GET /repos/{owner}/{repo}/stacks',\n\t\t\t\t{ owner: owner, repo: repo, baseUrl: options?.baseUrl },\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\n\t\t\treturn rsp.data;\n\t\t} catch (ex) {\n\t\t\tif (isCancellationError(ex)) throw ex;\n\n\t\t\tLogger.warn(scope, `Unable to list stacks for ${owner}/${repo}: ${ex}`);\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Merges a stacked pull request, and with it every layer below it.\n\t *\n\t * Stacks cannot go through `mergePullRequest` — GitHub rejects stacked pull requests on the legacy\n\t * synchronous merge endpoints and mutations. The replacement is asynchronous: submit, then poll a\n\t * ticket until it reaches a terminal state.\n\t */\n\t@trace({\n\t\targs: (provider, token, owner, repo, pullNumber, expectedSourceSha) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\towner: owner,\n\t\t\trepo: repo,\n\t\t\tpullNumber: pullNumber,\n\t\t\texpectedSourceSha: expectedSourceSha,\n\t\t}),\n\t})\n\tasync mergeStackedPullRequest(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\towner: string,\n\t\trepo: string,\n\t\tpullNumber: number,\n\t\texpectedSourceSha: string,\n\t\toptions?: { mergeMethod?: PullRequestMergeMethod; baseUrl?: string },\n\t\tcancellation?: AbortSignal,\n\t): Promise<boolean> {\n\t\tconst scope = getScopedLogger();\n\n\t\ttry {\n\t\t\tlet uuid: string | undefined;\n\n\t\t\ttry {\n\t\t\t\tconst submitted = await this.requestPreview<{ data: GitHubAsyncMergeResult }>(\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken,\n\t\t\t\t\t'PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge-async',\n\t\t\t\t\t{\n\t\t\t\t\t\towner: owner,\n\t\t\t\t\t\trepo: repo,\n\t\t\t\t\t\tpull_number: pullNumber,\n\t\t\t\t\t\tsha: expectedSourceSha,\n\t\t\t\t\t\tmerge_method: options?.mergeMethod,\n\t\t\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\t\t},\n\t\t\t\t\tscope,\n\t\t\t\t\tcancellation,\n\t\t\t\t);\n\n\t\t\t\t// Already merged or rejected outright — nothing to poll for. `enqueued` lands via the merge\n\t\t\t\t// queue, which can take several merge groups to settle, so it's transitional like `pending`.\n\t\t\t\tif (submitted.data.status !== 'pending' && submitted.data.status !== 'enqueued') {\n\t\t\t\t\tif (submitted.data.status === 'failed') {\n\t\t\t\t\t\tLogger.warn(\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t`Stacked merge refused: ${submitted.data.details?.message ?? 'no reason given'}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn submitted.data.status === 'merged';\n\t\t\t\t}\n\n\t\t\t\tuuid = submitted.data.details?.uuid;\n\t\t\t} catch (ex) {\n\t\t\t\t// A merge request is already in flight (a retry, or a double-click) — adopt its ticket and\n\t\t\t\t// poll that instead of reporting a failure for a merge that is actually running.\n\t\t\t\tuuid = getAsyncMergeUuidFromConflict(ex);\n\t\t\t\tif (uuid == null) throw ex;\n\t\t\t}\n\n\t\t\tif (uuid == null) return false;\n\n\t\t\t// The stack merges server-side one layer at a time, so this can take a while. Poll on a\n\t\t\t// fixed interval and give up rather than hang forever if the ticket never settles.\n\t\t\tfor (let attempt = 0; attempt < maxAsyncMergePolls; attempt++) {\n\t\t\t\tif (cancellation?.aborted) throw new CancellationError();\n\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, asyncMergePollIntervalMs));\n\n\t\t\t\tconst polled = await this.requestPreview<{ data: GitHubAsyncMergeResult }>(\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken,\n\t\t\t\t\t'GET /repos/{owner}/{repo}/pulls/{pull_number}/merge-async/{uuid}',\n\t\t\t\t\t{\n\t\t\t\t\t\towner: owner,\n\t\t\t\t\t\trepo: repo,\n\t\t\t\t\t\tpull_number: pullNumber,\n\t\t\t\t\t\tuuid: uuid,\n\t\t\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\t\t},\n\t\t\t\t\tscope,\n\t\t\t\t\tcancellation,\n\t\t\t\t);\n\n\t\t\t\tif (polled.data.status === 'pending' || polled.data.status === 'enqueued') continue;\n\n\t\t\t\tif (polled.data.status === 'failed') {\n\t\t\t\t\tLogger.warn(scope, `Stacked merge failed: ${polled.data.details?.message ?? 'no reason given'}`);\n\t\t\t\t}\n\t\t\t\treturn polled.data.status === 'merged';\n\t\t\t}\n\n\t\t\tLogger.warn(scope, `Timed out waiting for stacked merge of ${owner}/${repo}#${pullNumber}`);\n\t\t\treturn false;\n\t\t} catch (ex) {\n\t\t\tif (isCancellationError(ex)) throw ex;\n\n\t\t\tLogger.error(ex, scope);\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n\n\t@trace({\n\t\targs: (provider, token, nodeId, expectedSourceSha) => ({\n\t\t\tprovider: provider.name,\n\t\t\ttoken: `<token:${token.microHash}>`,\n\t\t\tnodeId: nodeId,\n\t\t\texpectedSourceSha: expectedSourceSha,\n\t\t}),\n\t})\n\tasync mergePullRequest(\n\t\tprovider: Provider,\n\t\ttoken: GitHubTokenInfo,\n\t\tnodeId: string,\n\t\texpectedSourceSha: string,\n\t\toptions?: { mergeMethod?: PullRequestMergeMethod; baseUrl?: string },\n\t\tcancellation?: AbortSignal,\n\t): Promise<boolean> {\n\t\tconst scope = getScopedLogger();\n\t\tinterface QueryResult {\n\t\t\tmergePullRequest: { pullRequest: { id: string } | null | undefined } | null | undefined;\n\t\t}\n\n\t\tlet githubMergeStrategy;\n\t\tswitch (options?.mergeMethod) {\n\t\t\tcase PullRequestMergeMethod.Merge: {\n\t\t\t\tgithubMergeStrategy = 'MERGE';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase PullRequestMergeMethod.Rebase: {\n\t\t\t\tgithubMergeStrategy = 'REBASE';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase PullRequestMergeMethod.Squash: {\n\t\t\t\tgithubMergeStrategy = 'SQUASH';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst query = `mutation mergePullRequest(\n\t$id: ID!\n\t$expectedSourceSha: GitObjectID!\n\t$mergeMethod: PullRequestMergeMethod\n) {\n\tmergePullRequest(input: { pullRequestId: $id, expectedHeadOid: $expectedSourceSha, mergeMethod: $mergeMethod }) {\n\t\tpullRequest {\n\t\t\tid\n\t\t}\n\t}\n}`;\n\n\t\t\tconst rsp = await this.graphql<QueryResult>(\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tquery,\n\t\t\t\t{\n\t\t\t\t\tid: nodeId,\n\t\t\t\t\texpectedSourceSha: expectedSourceSha,\n\t\t\t\t\tmergeMethod: githubMergeStrategy,\n\t\t\t\t\tbaseUrl: options?.baseUrl,\n\t\t\t\t},\n\t\t\t\tscope,\n\t\t\t\tcancellation,\n\t\t\t);\n\n\t\t\treturn rsp?.mergePullRequest?.pullRequest?.id === nodeId;\n\t\t} catch (ex) {\n\t\t\tthrow this.handleException(ex, provider, scope);\n\t\t}\n\t}\n}\n\nfunction isGitHubDotCom(options?: { baseUrl?: string }) {\n\treturn options?.baseUrl == null || options.baseUrl === 'https://api.github.com';\n}\n\n// Translates the requested PR states into a GitHub search state qualifier. GitHub search treats\n// `is:closed` as closed-or-merged, `is:merged` as its subset, and `is:unmerged` as open + closed\n// (not-merged), so `closed` and `merged` (distinct in our model) map to `is:closed is:unmerged` and\n// `is:merged`. `undefined` preserves the historical open-only default.\nexport function toGitHubSearchStateQualifier(include: PullRequestState[] | undefined): string {\n\tif (include == null) return 'is:open';\n\n\tconst opened = include.includes('opened');\n\tconst closed = include.includes('closed');\n\tconst merged = include.includes('merged');\n\n\tif (opened && closed && merged) return ''; // all states -> no qualifier\n\tif (opened && closed) return 'is:unmerged';\n\tif (closed && merged) return 'is:closed';\n\tif (opened && merged) throw new Error('GitHub cannot express opened and merged as one search state qualifier');\n\tif (opened) return 'is:open';\n\tif (merged) return 'is:merged';\n\tif (closed) return 'is:closed is:unmerged';\n\treturn 'is:open'; // empty include -> default\n}\n\nexport function filterPullRequestsBySearchState<T extends { state: PullRequestState }>(\n\tpullRequests: T[],\n\tinclude: PullRequestState[] | undefined,\n): T[] {\n\tconst states = include?.length ? include : (['opened'] satisfies PullRequestState[]);\n\tconst allowedStates = new Set<PullRequestState>(states);\n\t// There are only 3 possible states, so a full set means every state is allowed; use the deduped set\n\t// size rather than the raw length so duplicates (e.g. `['opened', 'opened', 'closed']`) don't skip filtering.\n\tif (allowedStates.size === 3) return pullRequests;\n\n\treturn pullRequests.filter(pr => allowedStates.has(pr.state));\n}\n\nfunction requiresGitHubPullRequestStateFacets(include: PullRequestState[] | undefined): boolean {\n\tif (include == null || include.length === 0) return false;\n\n\tconst uniqueStates = new Set<PullRequestState>(include);\n\treturn uniqueStates.size === 2 && uniqueStates.has('opened') && uniqueStates.has('merged');\n}\n"],"mappings":"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"}
|