@gitkraken/core-gitlens 0.4.0 → 0.4.101
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 +74 -1
- package/README.md +9 -2
- package/dist/git/cache.d.ts +29 -2
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +67 -7
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/errors.d.ts +31 -1
- package/dist/git/errors.d.ts.map +1 -1
- package/dist/git/errors.js +29 -0
- package/dist/git/errors.js.map +1 -1
- package/dist/git/models/author.d.ts.map +1 -1
- package/dist/git/models/author.js.map +1 -1
- package/dist/git/models/autolink.d.ts.map +1 -1
- package/dist/git/models/autolink.js.map +1 -1
- package/dist/git/models/blame.d.ts.map +1 -1
- package/dist/git/models/blame.js.map +1 -1
- package/dist/git/models/branch.d.ts.map +1 -1
- package/dist/git/models/branch.js.map +1 -1
- package/dist/git/models/commit.d.ts.map +1 -1
- package/dist/git/models/commit.js +1 -1
- package/dist/git/models/commit.js.map +1 -1
- package/dist/git/models/contributor.d.ts.map +1 -1
- package/dist/git/models/contributor.js.map +1 -1
- package/dist/git/models/defaultBranch.d.ts.map +1 -1
- package/dist/git/models/defaultBranch.js.map +1 -1
- package/dist/git/models/diff.d.ts.map +1 -1
- package/dist/git/models/diff.js.map +1 -1
- package/dist/git/models/file.d.ts.map +1 -1
- package/dist/git/models/file.js.map +1 -1
- package/dist/git/models/fileChange.d.ts.map +1 -1
- package/dist/git/models/fileChange.js.map +1 -1
- package/dist/git/models/fileStatus.d.ts +22 -22
- package/dist/git/models/fileStatus.d.ts.map +1 -1
- package/dist/git/models/fileStatus.js.map +1 -1
- package/dist/git/models/graph.d.ts +122 -1
- package/dist/git/models/graph.d.ts.map +1 -1
- package/dist/git/models/graph.js +4 -0
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/graphSearch.d.ts.map +1 -1
- package/dist/git/models/graphSearch.js.map +1 -1
- package/dist/git/models/graphSession.d.ts +177 -0
- package/dist/git/models/graphSession.d.ts.map +1 -0
- package/dist/git/models/graphSession.js +7 -0
- package/dist/git/models/graphSession.js.map +1 -0
- package/dist/git/models/issue.d.ts +12 -2
- package/dist/git/models/issue.d.ts.map +1 -1
- package/dist/git/models/issue.js +3 -1
- package/dist/git/models/issue.js.map +1 -1
- package/dist/git/models/issueOrPullRequest.d.ts.map +1 -1
- package/dist/git/models/issueOrPullRequest.js.map +1 -1
- package/dist/git/models/lineRange.d.ts.map +1 -1
- package/dist/git/models/lineRange.js.map +1 -1
- package/dist/git/models/log.d.ts.map +1 -1
- package/dist/git/models/log.js.map +1 -1
- package/dist/git/models/mergeConflicts.d.ts.map +1 -1
- package/dist/git/models/mergeConflicts.js.map +1 -1
- package/dist/git/models/patch.d.ts.map +1 -1
- package/dist/git/models/patch.js.map +1 -1
- package/dist/git/models/pausedOperationStatus.d.ts.map +1 -1
- package/dist/git/models/pausedOperationStatus.js.map +1 -1
- package/dist/git/models/pullRequest.d.ts +27 -2
- package/dist/git/models/pullRequest.d.ts.map +1 -1
- package/dist/git/models/pullRequest.js +7 -1
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/git/models/rebase.d.ts.map +1 -1
- package/dist/git/models/rebase.js.map +1 -1
- package/dist/git/models/reference.d.ts.map +1 -1
- package/dist/git/models/reference.js.map +1 -1
- package/dist/git/models/reflog.d.ts.map +1 -1
- package/dist/git/models/reflog.js.map +1 -1
- package/dist/git/models/remote.d.ts.map +1 -1
- package/dist/git/models/remote.js.map +1 -1
- package/dist/git/models/remoteProvider.d.ts.map +1 -1
- package/dist/git/models/remoteProvider.js.map +1 -1
- package/dist/git/models/remoteResource.d.ts.map +1 -1
- package/dist/git/models/remoteResource.js.map +1 -1
- package/dist/git/models/repository.d.ts +20 -2
- package/dist/git/models/repository.d.ts.map +1 -1
- package/dist/git/models/repository.js +19 -0
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/repositoryChangeEvent.d.ts.map +1 -1
- package/dist/git/models/repositoryChangeEvent.js.map +1 -1
- package/dist/git/models/repositoryIdentities.d.ts.map +1 -1
- package/dist/git/models/repositoryIdentities.js.map +1 -1
- package/dist/git/models/repositoryMetadata.d.ts.map +1 -1
- package/dist/git/models/repositoryMetadata.js.map +1 -1
- package/dist/git/models/resourceDescriptor.d.ts +16 -0
- package/dist/git/models/resourceDescriptor.d.ts.map +1 -1
- package/dist/git/models/resourceDescriptor.js.map +1 -1
- package/dist/git/models/revision.d.ts.map +1 -1
- package/dist/git/models/revision.js.map +1 -1
- package/dist/git/models/search.d.ts.map +1 -1
- package/dist/git/models/search.js.map +1 -1
- package/dist/git/models/shortlog.d.ts.map +1 -1
- package/dist/git/models/shortlog.js.map +1 -1
- package/dist/git/models/signature.d.ts +14 -0
- package/dist/git/models/signature.d.ts.map +1 -1
- package/dist/git/models/signature.js.map +1 -1
- package/dist/git/models/staging.d.ts.map +1 -1
- package/dist/git/models/staging.js.map +1 -1
- package/dist/git/models/stash.d.ts.map +1 -1
- package/dist/git/models/stash.js.map +1 -1
- package/dist/git/models/status.d.ts.map +1 -1
- package/dist/git/models/status.js.map +1 -1
- package/dist/git/models/statusFile.d.ts.map +1 -1
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/models/tag.d.ts +11 -1
- package/dist/git/models/tag.d.ts.map +1 -1
- package/dist/git/models/tag.js +9 -2
- package/dist/git/models/tag.js.map +1 -1
- package/dist/git/models/tree.d.ts.map +1 -1
- package/dist/git/models/tree.js.map +1 -1
- package/dist/git/models/user.d.ts.map +1 -1
- package/dist/git/models/user.js.map +1 -1
- package/dist/git/models/worktree.d.ts.map +1 -1
- package/dist/git/models/worktree.js.map +1 -1
- package/dist/git/parsers/diffParser.d.ts.map +1 -1
- package/dist/git/parsers/diffParser.js +1 -1
- package/dist/git/parsers/diffParser.js.map +1 -1
- package/dist/git/parsers/rebaseTodoParser.d.ts.map +1 -1
- package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
- package/dist/git/providers/blame.d.ts.map +1 -1
- package/dist/git/providers/blame.js.map +1 -1
- package/dist/git/providers/branches.d.ts +8 -1
- package/dist/git/providers/branches.d.ts.map +1 -1
- package/dist/git/providers/branches.js.map +1 -1
- package/dist/git/providers/commits.d.ts +6 -1
- package/dist/git/providers/commits.d.ts.map +1 -1
- package/dist/git/providers/commits.js.map +1 -1
- package/dist/git/providers/config.d.ts +6 -2
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/config.js.map +1 -1
- package/dist/git/providers/contributors.d.ts.map +1 -1
- package/dist/git/providers/contributors.js.map +1 -1
- package/dist/git/providers/diff.d.ts.map +1 -1
- package/dist/git/providers/diff.js.map +1 -1
- package/dist/git/providers/graph.d.ts +55 -1
- package/dist/git/providers/graph.d.ts.map +1 -1
- package/dist/git/providers/graph.js.map +1 -1
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/providers/operations.js.map +1 -1
- package/dist/git/providers/patch.d.ts.map +1 -1
- package/dist/git/providers/patch.js.map +1 -1
- package/dist/git/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git/providers/pausedOperations.js.map +1 -1
- package/dist/git/providers/provider.d.ts.map +1 -1
- package/dist/git/providers/provider.js.map +1 -1
- package/dist/git/providers/refs.d.ts.map +1 -1
- package/dist/git/providers/refs.js.map +1 -1
- package/dist/git/providers/remotes.d.ts.map +1 -1
- package/dist/git/providers/remotes.js.map +1 -1
- package/dist/git/providers/revision.d.ts.map +1 -1
- package/dist/git/providers/revision.js.map +1 -1
- package/dist/git/providers/shared/remotes.d.ts.map +1 -1
- package/dist/git/providers/shared/remotes.js.map +1 -1
- package/dist/git/providers/staging.d.ts.map +1 -1
- package/dist/git/providers/staging.js.map +1 -1
- package/dist/git/providers/stash.d.ts.map +1 -1
- package/dist/git/providers/stash.js.map +1 -1
- package/dist/git/providers/status.d.ts +1 -0
- package/dist/git/providers/status.d.ts.map +1 -1
- package/dist/git/providers/status.js.map +1 -1
- package/dist/git/providers/tags.d.ts.map +1 -1
- package/dist/git/providers/tags.js.map +1 -1
- package/dist/git/providers/types.d.ts.map +1 -1
- package/dist/git/providers/types.js.map +1 -1
- package/dist/git/providers/worktrees.d.ts +3 -1
- package/dist/git/providers/worktrees.d.ts.map +1 -1
- package/dist/git/providers/worktrees.js.map +1 -1
- package/dist/git/remotes/azure-devops.d.ts.map +1 -1
- package/dist/git/remotes/azure-devops.js +27 -31
- package/dist/git/remotes/azure-devops.js.map +1 -1
- package/dist/git/remotes/bitbucket-server.d.ts.map +1 -1
- package/dist/git/remotes/bitbucket-server.js +21 -23
- package/dist/git/remotes/bitbucket-server.js.map +1 -1
- package/dist/git/remotes/bitbucket.d.ts.map +1 -1
- package/dist/git/remotes/bitbucket.js +21 -23
- package/dist/git/remotes/bitbucket.js.map +1 -1
- package/dist/git/remotes/custom.d.ts.map +1 -1
- package/dist/git/remotes/custom.js.map +1 -1
- package/dist/git/remotes/gerrit.d.ts.map +1 -1
- package/dist/git/remotes/gerrit.js +11 -13
- package/dist/git/remotes/gerrit.js.map +1 -1
- package/dist/git/remotes/gitea.d.ts.map +1 -1
- package/dist/git/remotes/gitea.js +12 -14
- package/dist/git/remotes/gitea.js.map +1 -1
- package/dist/git/remotes/github.d.ts.map +1 -1
- package/dist/git/remotes/github.js +54 -56
- package/dist/git/remotes/github.js.map +1 -1
- package/dist/git/remotes/gitlab.d.ts.map +1 -1
- package/dist/git/remotes/gitlab.js +93 -95
- package/dist/git/remotes/gitlab.js.map +1 -1
- package/dist/git/remotes/google-source.d.ts.map +1 -1
- package/dist/git/remotes/google-source.js.map +1 -1
- package/dist/git/remotes/matcher.d.ts.map +1 -1
- package/dist/git/remotes/matcher.js.map +1 -1
- package/dist/git/run.types.d.ts +62 -3
- package/dist/git/run.types.d.ts.map +1 -1
- package/dist/git/service.d.ts.map +1 -1
- package/dist/git/utils/autolink.utils.d.ts.map +1 -1
- package/dist/git/utils/autolink.utils.js.map +1 -1
- package/dist/git/utils/blame.utils.d.ts.map +1 -1
- package/dist/git/utils/blame.utils.js.map +1 -1
- package/dist/git/utils/branch.utils.d.ts.map +1 -1
- package/dist/git/utils/branch.utils.js +12 -1
- package/dist/git/utils/branch.utils.js.map +1 -1
- package/dist/git/utils/commit.utils.d.ts.map +1 -1
- package/dist/git/utils/commit.utils.js.map +1 -1
- package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
- package/dist/git/utils/conflictResolution.utils.js.map +1 -1
- package/dist/git/utils/contributor.utils.d.ts +1 -1
- package/dist/git/utils/contributor.utils.d.ts.map +1 -1
- package/dist/git/utils/contributor.utils.js +1 -2
- package/dist/git/utils/contributor.utils.js.map +1 -1
- package/dist/git/utils/fetch.utils.d.ts.map +1 -1
- package/dist/git/utils/fetch.utils.js.map +1 -1
- package/dist/git/utils/fileStatus.utils.d.ts +7 -0
- package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
- package/dist/git/utils/fileStatus.utils.js +6 -0
- package/dist/git/utils/fileStatus.utils.js.map +1 -1
- package/dist/git/utils/graph.utils.d.ts +20 -0
- package/dist/git/utils/graph.utils.d.ts.map +1 -0
- package/dist/git/utils/graph.utils.js +40 -0
- package/dist/git/utils/graph.utils.js.map +1 -0
- package/dist/git/utils/issue.utils.d.ts.map +1 -1
- package/dist/git/utils/issue.utils.js +1 -0
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +1 -1
- package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
- package/dist/git/utils/mergeConflicts.utils.d.ts.map +1 -1
- package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts +13 -13
- package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
- package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
- package/dist/git/utils/pullRequest.utils.js +9 -0
- package/dist/git/utils/pullRequest.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +20 -2
- package/dist/git/utils/reachability.utils.d.ts.map +1 -1
- package/dist/git/utils/reachability.utils.js +68 -7
- package/dist/git/utils/reachability.utils.js.map +1 -1
- package/dist/git/utils/rebase.utils.d.ts.map +1 -1
- package/dist/git/utils/rebase.utils.js.map +1 -1
- package/dist/git/utils/reference.utils.d.ts.map +1 -1
- package/dist/git/utils/reference.utils.js.map +1 -1
- package/dist/git/utils/remote.utils.d.ts.map +1 -1
- package/dist/git/utils/remote.utils.js.map +1 -1
- package/dist/git/utils/repository.utils.d.ts.map +1 -1
- package/dist/git/utils/repository.utils.js.map +1 -1
- package/dist/git/utils/resourceDescriptor.utils.d.ts.map +1 -1
- package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
- package/dist/git/utils/revision.utils.d.ts.map +1 -1
- package/dist/git/utils/revision.utils.js.map +1 -1
- package/dist/git/utils/search.utils.d.ts.map +1 -1
- package/dist/git/utils/search.utils.js.map +1 -1
- package/dist/git/utils/sorting.d.ts.map +1 -1
- package/dist/git/utils/sorting.js.map +1 -1
- package/dist/git/utils/sshKey.utils.d.ts +7 -0
- package/dist/git/utils/sshKey.utils.d.ts.map +1 -0
- package/dist/git/utils/sshKey.utils.js +25 -0
- package/dist/git/utils/sshKey.utils.js.map +1 -0
- package/dist/git/utils/status.utils.d.ts.map +1 -1
- package/dist/git/utils/status.utils.js.map +1 -1
- package/dist/git/utils/statusFile.utils.d.ts.map +1 -1
- package/dist/git/utils/statusFile.utils.js.map +1 -1
- package/dist/git/utils/tag.utils.d.ts.map +1 -1
- package/dist/git/utils/tag.utils.js.map +1 -1
- package/dist/git/utils/tooltip.utils.d.ts.map +1 -1
- package/dist/git/utils/tooltip.utils.js.map +1 -1
- package/dist/git/utils/uriAuthority.d.ts.map +1 -1
- package/dist/git/utils/uriAuthority.js.map +1 -1
- package/dist/git/utils/user.utils.d.ts.map +1 -1
- package/dist/git/utils/user.utils.js.map +1 -1
- package/dist/git/utils/worktree.utils.d.ts.map +1 -1
- package/dist/git/utils/worktree.utils.js.map +1 -1
- package/dist/git/watching/changeEvent.d.ts.map +1 -1
- package/dist/git/watching/changeEvent.js.map +1 -1
- package/dist/git/watching/classifyChange.d.ts.map +1 -1
- package/dist/git/watching/classifyChange.js.map +1 -1
- package/dist/git/watching/gitIgnoreFilter.d.ts.map +1 -1
- package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
- package/dist/git/watching/initWatcher.d.ts.map +1 -1
- package/dist/git/watching/initWatcher.js.map +1 -1
- package/dist/git/watching/provider.d.ts.map +1 -1
- package/dist/git/watching/provider.js.map +1 -1
- package/dist/git/watching/watchGroup.d.ts.map +1 -1
- package/dist/git/watching/watchGroup.js.map +1 -1
- package/dist/git/watching/watchService.d.ts +4 -0
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +15 -1
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +7 -0
- package/dist/git/watching/watchSession.d.ts.map +1 -1
- package/dist/git/watching/watchSession.js +14 -2
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
- package/dist/git/watching/watcherPatterns.js.map +1 -1
- package/dist/git-cli/cliGitProvider.d.ts.map +1 -1
- package/dist/git-cli/exec/exec.d.ts.map +1 -1
- package/dist/git-cli/exec/exec.errors.d.ts.map +1 -1
- package/dist/git-cli/exec/exec.errors.js.map +1 -1
- package/dist/git-cli/exec/exec.js.map +1 -1
- package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
- package/dist/git-cli/exec/exec.types.js.map +1 -1
- package/dist/git-cli/exec/features.d.ts.map +1 -1
- package/dist/git-cli/exec/features.js.map +1 -1
- package/dist/git-cli/exec/git.d.ts +19 -27
- package/dist/git-cli/exec/git.d.ts.map +1 -1
- package/dist/git-cli/exec/git.js +126 -34
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
- package/dist/git-cli/exec/gitQueue.js.map +1 -1
- package/dist/git-cli/exec/locator.d.ts.map +1 -1
- package/dist/git-cli/exec/locator.js.map +1 -1
- package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/blameParser.js.map +1 -1
- package/dist/git-cli/parsers/indexParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/indexParser.js.map +1 -1
- package/dist/git-cli/parsers/logParser.d.ts +9 -1
- package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/logParser.js +141 -60
- package/dist/git-cli/parsers/logParser.js.map +1 -1
- package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
- package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/refParser.js.map +1 -1
- package/dist/git-cli/parsers/reflogParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/reflogParser.js.map +1 -1
- package/dist/git-cli/parsers/remoteParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/remoteParser.js.map +1 -1
- package/dist/git-cli/parsers/shortlogParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
- package/dist/git-cli/parsers/signatureParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/signatureParser.js.map +1 -1
- package/dist/git-cli/parsers/sshSignatureParser.d.ts +21 -0
- package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +1 -0
- package/dist/git-cli/parsers/sshSignatureParser.js +78 -0
- package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -0
- package/dist/git-cli/parsers/statusParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/statusParser.js.map +1 -1
- package/dist/git-cli/parsers/treeParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/treeParser.js.map +1 -1
- package/dist/git-cli/parsers/worktreeParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/worktreeParser.js +5 -7
- package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
- package/dist/git-cli/providers/blame.d.ts.map +1 -1
- package/dist/git-cli/providers/blame.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts +1 -0
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +51 -32
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +1 -1
- package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +12 -1
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +89 -8
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/contributors.d.ts.map +1 -1
- package/dist/git-cli/providers/contributors.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts.map +1 -1
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +35 -1
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +1434 -330
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/patch.d.ts.map +1 -1
- package/dist/git-cli/providers/patch.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git-cli/providers/pausedOperations.js +3 -3
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/refs.d.ts.map +1 -1
- package/dist/git-cli/providers/refs.js.map +1 -1
- package/dist/git-cli/providers/remotes.d.ts.map +1 -1
- package/dist/git-cli/providers/remotes.js.map +1 -1
- package/dist/git-cli/providers/revision.d.ts +1 -0
- package/dist/git-cli/providers/revision.d.ts.map +1 -1
- package/dist/git-cli/providers/revision.js +33 -0
- package/dist/git-cli/providers/revision.js.map +1 -1
- package/dist/git-cli/providers/staging.d.ts.map +1 -1
- package/dist/git-cli/providers/staging.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts.map +1 -1
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts +28 -0
- package/dist/git-cli/providers/status.d.ts.map +1 -1
- package/dist/git-cli/providers/status.js +240 -154
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/tags.d.ts.map +1 -1
- package/dist/git-cli/providers/tags.js +2 -1
- package/dist/git-cli/providers/tags.js.map +1 -1
- package/dist/git-cli/providers/worktrees.d.ts +2 -1
- package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
- package/dist/git-cli/providers/worktrees.js +28 -3
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/git-cli/service.d.ts.map +1 -1
- package/dist/git-cli/service.js +8 -0
- package/dist/git-cli/service.js.map +1 -1
- package/dist/ipc/ipcServer.d.ts.map +1 -1
- package/dist/ipc/ipcServer.js +1 -1
- package/dist/ipc/ipcServer.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts +6 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.js +19 -0
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +68 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.js +262 -8
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
- package/dist/plus/agents/types.d.ts +36 -2
- package/dist/plus/agents/types.d.ts.map +1 -1
- package/dist/plus/ai/constants.d.ts +1 -2
- package/dist/plus/ai/constants.d.ts.map +1 -1
- package/dist/plus/ai/constants.js +1 -8
- package/dist/plus/ai/constants.js.map +1 -1
- package/dist/plus/ai/errors.d.ts.map +1 -1
- package/dist/plus/ai/errors.js.map +1 -1
- package/dist/plus/ai/models/conversation.d.ts.map +1 -1
- package/dist/plus/ai/models/conversation.js.map +1 -1
- package/dist/plus/ai/models/model.d.ts +2 -1
- package/dist/plus/ai/models/model.d.ts.map +1 -1
- package/dist/plus/ai/models/model.js +50 -1
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +5 -2
- package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
- package/dist/plus/ai/models/promptTemplates.js.map +1 -1
- package/dist/plus/ai/models/provider.d.ts.map +1 -1
- package/dist/plus/ai/models/provider.js.map +1 -1
- package/dist/plus/ai/models/results.d.ts.map +1 -1
- package/dist/plus/ai/models/results.js.map +1 -1
- package/dist/plus/ai/prompts.d.ts +1 -1
- package/dist/plus/ai/prompts.d.ts.map +1 -1
- package/dist/plus/ai/prompts.js +15 -47
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts +5 -0
- package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.js +40 -3
- package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
- package/dist/plus/ai/providers/azureProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/azureProvider.js.map +1 -1
- package/dist/plus/ai/providers/context.d.ts.map +1 -1
- package/dist/plus/ai/providers/context.js.map +1 -1
- package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/deepSeekProvider.js +17 -1
- package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.js +25 -6
- package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js +1 -0
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.js +21 -18
- package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +10 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
- package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/xaiProvider.js +14 -1
- package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/ai.utils.js +0 -2
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/ai/utils/results.utils.d.ts +3 -0
- package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/results.utils.js +26 -0
- package/dist/plus/ai/utils/results.utils.js.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
- package/dist/plus/git-github/api/config.d.ts.map +1 -1
- package/dist/plus/git-github/api/config.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +66 -3
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +345 -74
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/github.utils.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.utils.js.map +1 -1
- package/dist/plus/git-github/api/token.d.ts.map +1 -1
- package/dist/plus/git-github/api/token.js.map +1 -1
- package/dist/plus/git-github/api/tokenUtils.d.ts.map +1 -1
- package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
- package/dist/plus/git-github/api/types.d.ts.map +1 -1
- package/dist/plus/git-github/api/types.js.map +1 -1
- package/dist/plus/git-github/context.d.ts.map +1 -1
- package/dist/plus/git-github/models.d.ts +5 -0
- package/dist/plus/git-github/models.d.ts.map +1 -1
- package/dist/plus/git-github/models.js +27 -2
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/blame.js.map +1 -1
- package/dist/plus/git-github/providers/github/branches.d.ts +2 -1
- package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/branches.js +7 -3
- package/dist/plus/git-github/providers/github/branches.js.map +1 -1
- package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/commits.js.map +1 -1
- package/dist/plus/git-github/providers/github/config.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/config.js.map +1 -1
- package/dist/plus/git-github/providers/github/contributors.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
- package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/diff.js +2 -2
- package/dist/plus/git-github/providers/github/diff.js.map +1 -1
- package/dist/plus/git-github/providers/github/graph.d.ts +12 -1
- package/dist/plus/git-github/providers/github/graph.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/graph.js +85 -0
- package/dist/plus/git-github/providers/github/graph.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/refs.js.map +1 -1
- package/dist/plus/git-github/providers/github/remotes.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
- package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/revision.js.map +1 -1
- package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/status.js.map +1 -1
- package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/tags.js +3 -1
- package/dist/plus/git-github/providers/github/tags.js.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
- package/dist/plus/git-github/providers/githubProvider.d.ts.map +1 -1
- package/dist/plus/git-github/providers/githubProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +20 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.js +134 -10
- package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +52 -5
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.js +248 -46
- package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +24 -4
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +58 -26
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js +7 -3
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +1 -0
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.js +9 -5
- package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/models.d.ts +33 -0
- package/dist/plus/integrations/authentication/models.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/models.js.map +1 -1
- package/dist/plus/integrations/collectionMetadata.d.ts +21 -0
- package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -0
- package/dist/plus/integrations/collectionMetadata.js +121 -0
- package/dist/plus/integrations/collectionMetadata.js.map +1 -0
- package/dist/plus/integrations/constants.d.ts +12 -2
- package/dist/plus/integrations/constants.d.ts.map +1 -1
- package/dist/plus/integrations/constants.js +10 -0
- package/dist/plus/integrations/constants.js.map +1 -1
- package/dist/plus/integrations/context.d.ts +10 -6
- package/dist/plus/integrations/context.d.ts.map +1 -1
- package/dist/plus/integrations/errors.d.ts +65 -0
- package/dist/plus/integrations/errors.d.ts.map +1 -1
- package/dist/plus/integrations/errors.js +135 -0
- package/dist/plus/integrations/errors.js.map +1 -1
- package/dist/plus/integrations/index.d.ts +57 -12
- package/dist/plus/integrations/index.d.ts.map +1 -1
- package/dist/plus/integrations/index.js +39 -37
- package/dist/plus/integrations/index.js.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +297 -13
- package/dist/plus/integrations/integrationService.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.js +672 -36
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/lite.d.ts +47 -0
- package/dist/plus/integrations/lite.d.ts.map +1 -0
- package/dist/plus/integrations/lite.js +141 -0
- package/dist/plus/integrations/lite.js.map +1 -0
- package/dist/plus/integrations/manager.d.ts +332 -0
- package/dist/plus/integrations/manager.d.ts.map +1 -0
- package/dist/plus/integrations/manager.js +2 -0
- package/dist/plus/integrations/manager.js.map +1 -0
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +262 -10
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +675 -101
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +88 -3
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js +192 -21
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.d.ts +70 -7
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.js +108 -35
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/providerFilters.d.ts +12 -0
- package/dist/plus/integrations/providerFilters.d.ts.map +1 -0
- package/dist/plus/integrations/providerFilters.js +14 -0
- package/dist/plus/integrations/providerFilters.js.map +1 -0
- package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -1
- package/dist/plus/integrations/providers/apiClients.js +3 -3
- package/dist/plus/integrations/providers/apiClients.js.map +1 -1
- package/dist/plus/integrations/providers/apiConfig.d.ts +52 -0
- package/dist/plus/integrations/providers/apiConfig.d.ts.map +1 -0
- package/dist/plus/integrations/providers/apiConfig.js +19 -0
- package/dist/plus/integrations/providers/apiConfig.js.map +1 -0
- package/dist/plus/integrations/providers/azure/azure.d.ts +14 -2
- package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azure/azure.js +107 -32
- package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
- package/dist/plus/integrations/providers/azure/models.d.ts +16 -0
- package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azure/models.js +6 -6
- package/dist/plus/integrations/providers/azure/models.js.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts +55 -9
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.js +572 -79
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +13 -2
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js +108 -32
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +19 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.js +20 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts +28 -4
- package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.js +110 -6
- package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts +38 -4
- package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.js +330 -34
- package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github/github.js +1 -1
- package/dist/plus/integrations/providers/github/github.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
- package/dist/plus/integrations/providers/github/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github/models.js.map +1 -1
- package/dist/plus/integrations/providers/github.d.ts +49 -6
- package/dist/plus/integrations/providers/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github.js +289 -4
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +11 -3
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.js +121 -47
- package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +6 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +8 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/models.d.ts +10 -0
- package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab/models.js +8 -5
- package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts +50 -5
- package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab.js +274 -8
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/jira.d.ts +13 -2
- package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
- package/dist/plus/integrations/providers/jira.js +200 -30
- package/dist/plus/integrations/providers/jira.js.map +1 -1
- package/dist/plus/integrations/providers/linear.d.ts +16 -5
- package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
- package/dist/plus/integrations/providers/linear.js +127 -21
- package/dist/plus/integrations/providers/linear.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +339 -60
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js +307 -59
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providersApi.d.ts +144 -11
- package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
- package/dist/plus/integrations/providers/providersApi.js +486 -55
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/trello.d.ts +47 -0
- package/dist/plus/integrations/providers/trello.d.ts.map +1 -0
- package/dist/plus/integrations/providers/trello.js +141 -0
- package/dist/plus/integrations/providers/trello.js.map +1 -0
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts +29 -0
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -0
- package/dist/plus/integrations/providers/utils/providerPaging.js +154 -0
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -0
- package/dist/plus/integrations/providers/utils.d.ts +21 -0
- package/dist/plus/integrations/providers/utils.d.ts.map +1 -1
- package/dist/plus/integrations/providers/utils.js +57 -6
- package/dist/plus/integrations/providers/utils.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts +20 -0
- package/dist/plus/integrations/reads/broaden.d.ts.map +1 -0
- package/dist/plus/integrations/reads/broaden.js +326 -0
- package/dist/plus/integrations/reads/broaden.js.map +1 -0
- package/dist/plus/integrations/reads/context.d.ts +74 -0
- package/dist/plus/integrations/reads/context.d.ts.map +1 -0
- package/dist/plus/integrations/reads/context.js +2 -0
- package/dist/plus/integrations/reads/context.js.map +1 -0
- package/dist/plus/integrations/reads/cursors.d.ts +66 -0
- package/dist/plus/integrations/reads/cursors.d.ts.map +1 -0
- package/dist/plus/integrations/reads/cursors.js +133 -0
- package/dist/plus/integrations/reads/cursors.js.map +1 -0
- package/dist/plus/integrations/reads/drains.d.ts +60 -0
- package/dist/plus/integrations/reads/drains.d.ts.map +1 -0
- package/dist/plus/integrations/reads/drains.js +255 -0
- package/dist/plus/integrations/reads/drains.js.map +1 -0
- package/dist/plus/integrations/reads/filters.d.ts +81 -0
- package/dist/plus/integrations/reads/filters.d.ts.map +1 -0
- package/dist/plus/integrations/reads/filters.js +87 -0
- package/dist/plus/integrations/reads/filters.js.map +1 -0
- package/dist/plus/integrations/reads/hierarchy.d.ts +17 -0
- package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -0
- package/dist/plus/integrations/reads/hierarchy.js +320 -0
- package/dist/plus/integrations/reads/hierarchy.js.map +1 -0
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts +77 -0
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +1 -0
- package/dist/plus/integrations/reads/hierarchy.utils.js +128 -0
- package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -0
- package/dist/plus/integrations/reads/issueTracker.d.ts +19 -0
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -0
- package/dist/plus/integrations/reads/issueTracker.js +334 -0
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -0
- package/dist/plus/integrations/reads/issues.d.ts +34 -0
- package/dist/plus/integrations/reads/issues.d.ts.map +1 -0
- package/dist/plus/integrations/reads/issues.js +244 -0
- package/dist/plus/integrations/reads/issues.js.map +1 -0
- package/dist/plus/integrations/reads/paging.d.ts +136 -0
- package/dist/plus/integrations/reads/paging.d.ts.map +1 -0
- package/dist/plus/integrations/reads/paging.js +221 -0
- package/dist/plus/integrations/reads/paging.js.map +1 -0
- package/dist/plus/integrations/reads/pullRequests.d.ts +32 -0
- package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -0
- package/dist/plus/integrations/reads/pullRequests.js +151 -0
- package/dist/plus/integrations/reads/pullRequests.js.map +1 -0
- package/dist/plus/integrations/reads/resolveRepository.d.ts +25 -0
- package/dist/plus/integrations/reads/resolveRepository.d.ts.map +1 -0
- package/dist/plus/integrations/reads/resolveRepository.js +235 -0
- package/dist/plus/integrations/reads/resolveRepository.js.map +1 -0
- package/dist/plus/integrations/reads/sweeps.d.ts +11 -0
- package/dist/plus/integrations/reads/sweeps.d.ts.map +1 -0
- package/dist/plus/integrations/reads/sweeps.js +125 -0
- package/dist/plus/integrations/reads/sweeps.js.map +1 -0
- package/dist/plus/integrations/reads/warnings.d.ts +47 -0
- package/dist/plus/integrations/reads/warnings.d.ts.map +1 -0
- package/dist/plus/integrations/reads/warnings.js +81 -0
- package/dist/plus/integrations/reads/warnings.js.map +1 -0
- package/dist/plus/integrations/results.d.ts +189 -0
- package/dist/plus/integrations/results.d.ts.map +1 -0
- package/dist/plus/integrations/results.js +62 -0
- package/dist/plus/integrations/results.js.map +1 -0
- package/dist/plus/integrations/utils/domain.utils.d.ts +5 -0
- package/dist/plus/integrations/utils/domain.utils.d.ts.map +1 -0
- package/dist/plus/integrations/utils/domain.utils.js +27 -0
- package/dist/plus/integrations/utils/domain.utils.js.map +1 -0
- package/dist/plus/integrations/utils/integration.utils.d.ts +27 -1
- package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -1
- package/dist/plus/integrations/utils/integration.utils.js +86 -15
- package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
- package/dist/utils/array.d.ts.map +1 -1
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/brand.d.ts.map +1 -1
- package/dist/utils/cancellation.d.ts +13 -0
- package/dist/utils/cancellation.d.ts.map +1 -1
- package/dist/utils/cancellation.js +52 -7
- package/dist/utils/cancellation.js.map +1 -1
- package/dist/utils/charCode.d.ts.map +1 -1
- package/dist/utils/coalescedRun.d.ts +16 -0
- package/dist/utils/coalescedRun.d.ts.map +1 -0
- package/dist/utils/coalescedRun.js +43 -0
- package/dist/utils/coalescedRun.js.map +1 -0
- package/dist/utils/color.d.ts.map +1 -1
- package/dist/utils/color.js +3 -3
- package/dist/utils/color.js.map +1 -1
- package/dist/utils/date.d.ts +24 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +62 -0
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.js +1 -1
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/decorators/debounce.d.ts.map +1 -1
- package/dist/utils/decorators/debounce.js.map +1 -1
- package/dist/utils/decorators/gate.d.ts.map +1 -1
- package/dist/utils/decorators/gate.js +2 -2
- package/dist/utils/decorators/gate.js.map +1 -1
- package/dist/utils/decorators/log.d.ts.map +1 -1
- package/dist/utils/decorators/log.js +5 -5
- package/dist/utils/decorators/log.js.map +1 -1
- package/dist/utils/decorators/memoize.d.ts.map +1 -1
- package/dist/utils/decorators/memoize.js +2 -2
- package/dist/utils/decorators/memoize.js.map +1 -1
- package/dist/utils/decorators/resolver.d.ts.map +1 -1
- package/dist/utils/decorators/resolver.js.map +1 -1
- package/dist/utils/decorators/sequentialize.d.ts.map +1 -1
- package/dist/utils/decorators/sequentialize.js +2 -2
- package/dist/utils/decorators/sequentialize.js.map +1 -1
- package/dist/utils/decorators/serializable.d.ts.map +1 -1
- package/dist/utils/decorators/serializable.js +1 -1
- package/dist/utils/decorators/serializable.js.map +1 -1
- package/dist/utils/dedupedAsyncCache.d.ts.map +1 -1
- package/dist/utils/env/browser/base64.d.ts.map +1 -1
- package/dist/utils/env/browser/base64.js.map +1 -1
- package/dist/utils/env/browser/crypto.d.ts.map +1 -1
- package/dist/utils/env/browser/crypto.js.map +1 -1
- package/dist/utils/env/browser/fs.d.ts.map +1 -1
- package/dist/utils/env/browser/fs.js.map +1 -1
- package/dist/utils/env/browser/hex.d.ts.map +1 -1
- package/dist/utils/env/browser/hex.js.map +1 -1
- package/dist/utils/env/browser/hrtime.d.ts.map +1 -1
- package/dist/utils/env/browser/hrtime.js.map +1 -1
- package/dist/utils/env/browser/logScope.d.ts.map +1 -1
- package/dist/utils/env/browser/logScope.js.map +1 -1
- package/dist/utils/env/browser/md5.d.ts.map +1 -1
- package/dist/utils/env/browser/md5.js.map +1 -1
- package/dist/utils/env/browser/platform.d.ts.map +1 -1
- package/dist/utils/env/browser/platform.js.map +1 -1
- package/dist/utils/env/node/base64.d.ts.map +1 -1
- package/dist/utils/env/node/base64.js.map +1 -1
- package/dist/utils/env/node/crypto.d.ts.map +1 -1
- package/dist/utils/env/node/crypto.js.map +1 -1
- package/dist/utils/env/node/exec.d.ts +9 -1
- package/dist/utils/env/node/exec.d.ts.map +1 -1
- package/dist/utils/env/node/exec.js +11 -4
- package/dist/utils/env/node/exec.js.map +1 -1
- package/dist/utils/env/node/fs.d.ts.map +1 -1
- package/dist/utils/env/node/fs.js.map +1 -1
- package/dist/utils/env/node/hex.d.ts.map +1 -1
- package/dist/utils/env/node/hex.js.map +1 -1
- package/dist/utils/env/node/hrtime.d.ts.map +1 -1
- package/dist/utils/env/node/hrtime.js.map +1 -1
- package/dist/utils/env/node/logScope.d.ts.map +1 -1
- package/dist/utils/env/node/logScope.js.map +1 -1
- package/dist/utils/env/node/platform.d.ts.map +1 -1
- package/dist/utils/env/node/platform.js.map +1 -1
- package/dist/utils/event.d.ts.map +1 -1
- package/dist/utils/event.js +18 -22
- package/dist/utils/event.js.map +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/function.d.ts.map +1 -1
- package/dist/utils/function.js +3 -3
- package/dist/utils/function.js.map +1 -1
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/iterable.d.ts.map +1 -1
- package/dist/utils/iterable.js +2 -6
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/lazy.d.ts.map +1 -1
- package/dist/utils/lazy.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/logger.scoped.js +1 -1
- package/dist/utils/logger.scoped.js.map +1 -1
- package/dist/utils/lruMap.d.ts.map +1 -1
- package/dist/utils/lruMap.js.map +1 -1
- package/dist/utils/mru.d.ts.map +1 -1
- package/dist/utils/mru.js.map +1 -1
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/paging.d.ts +29 -0
- package/dist/utils/paging.d.ts.map +1 -1
- package/dist/utils/paging.js +18 -0
- package/dist/utils/paging.js.map +1 -1
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/promise.d.ts +10 -0
- package/dist/utils/promise.d.ts.map +1 -1
- package/dist/utils/promise.js +26 -3
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/promiseCache.d.ts +12 -2
- package/dist/utils/promiseCache.d.ts.map +1 -1
- package/dist/utils/promiseCache.js +80 -50
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/searchTree.d.ts.map +1 -1
- package/dist/utils/searchTree.js +4 -1
- package/dist/utils/searchTree.js.map +1 -1
- package/dist/utils/stopwatch.d.ts.map +1 -1
- package/dist/utils/string.js +1 -1
- package/dist/utils/string.js.map +1 -1
- package/dist/utils/subscriptionManager.d.ts.map +1 -1
- package/dist/utils/subscriptionManager.js.map +1 -1
- package/dist/utils/trie.d.ts.map +1 -1
- package/dist/utils/trie.js +1 -0
- package/dist/utils/trie.js.map +1 -1
- package/docs/integrations.md +372 -0
- package/docs/kepler-read-api-parity.md +112 -0
- package/package.json +238 -213
- package/src/git/cache.ts +75 -8
- package/src/git/errors.ts +36 -1
- package/src/git/models/commit.ts +1 -1
- package/src/git/models/graph.ts +147 -0
- package/src/git/models/graphSession.ts +205 -0
- package/src/git/models/issue.ts +12 -1
- package/src/git/models/pullRequest.ts +27 -1
- package/src/git/models/repository.ts +24 -1
- package/src/git/models/resourceDescriptor.ts +17 -0
- package/src/git/models/signature.ts +16 -0
- package/src/git/models/tag.ts +6 -1
- package/src/git/parsers/diffParser.ts +1 -1
- package/src/git/providers/branches.ts +6 -1
- package/src/git/providers/commits.ts +6 -1
- package/src/git/providers/config.ts +5 -1
- package/src/git/providers/graph.ts +69 -2
- package/src/git/providers/status.ts +1 -1
- package/src/git/providers/worktrees.ts +3 -1
- package/src/git/remotes/azure-devops.ts +29 -33
- package/src/git/remotes/bitbucket-server.ts +23 -25
- package/src/git/remotes/bitbucket.ts +23 -25
- package/src/git/remotes/gerrit.ts +12 -14
- package/src/git/remotes/gitea.ts +13 -15
- package/src/git/remotes/github.ts +56 -58
- package/src/git/remotes/gitlab.ts +102 -104
- package/src/git/run.types.ts +54 -4
- package/src/git/utils/branch.utils.ts +12 -1
- package/src/git/utils/contributor.utils.ts +1 -1
- package/src/git/utils/fileStatus.utils.ts +7 -0
- package/src/git/utils/graph.utils.ts +46 -0
- package/src/git/utils/issue.utils.ts +1 -0
- package/src/git/utils/pullRequest.utils.ts +9 -0
- package/src/git/utils/reachability.utils.ts +79 -8
- package/src/git/utils/sshKey.utils.ts +30 -0
- package/src/git/watching/watchService.ts +16 -1
- package/src/git/watching/watchSession.ts +20 -2
- package/src/git-cli/exec/git.ts +144 -42
- package/src/git-cli/parsers/logParser.ts +83 -1
- package/src/git-cli/parsers/sshSignatureParser.ts +85 -0
- package/src/git-cli/parsers/worktreeParser.ts +5 -7
- package/src/git-cli/providers/branches.ts +60 -38
- package/src/git-cli/providers/commits.ts +102 -9
- package/src/git-cli/providers/graph.ts +1771 -393
- package/src/git-cli/providers/pausedOperations.ts +3 -3
- package/src/git-cli/providers/revision.ts +42 -0
- package/src/git-cli/providers/status.ts +333 -178
- package/src/git-cli/providers/tags.ts +2 -0
- package/src/git-cli/providers/worktrees.ts +40 -4
- package/src/git-cli/service.ts +9 -0
- package/src/ipc/ipcServer.ts +1 -1
- package/src/plus/agents/providers/claudeCodeProvider.ts +25 -0
- package/src/plus/agents/providers/claudeCodeTranscript.ts +320 -8
- package/src/plus/agents/types.ts +34 -0
- package/src/plus/ai/constants.ts +1 -9
- package/src/plus/ai/models/model.ts +53 -2
- package/src/plus/ai/models/promptTemplates.ts +9 -2
- package/src/plus/ai/prompts.ts +16 -48
- package/src/plus/ai/providers/anthropicProvider.ts +45 -3
- package/src/plus/ai/providers/deepSeekProvider.ts +17 -1
- package/src/plus/ai/providers/geminiProvider.ts +25 -6
- package/src/plus/ai/providers/gitkrakenProvider.ts +2 -0
- package/src/plus/ai/providers/huggingFaceProvider.ts +28 -21
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +16 -1
- package/src/plus/ai/providers/xaiProvider.ts +14 -1
- package/src/plus/ai/utils/ai.utils.ts +0 -2
- package/src/plus/ai/utils/results.utils.ts +32 -0
- package/src/plus/ai/utils/truncation.utils.ts +0 -1
- package/src/plus/git-github/api/github.ts +484 -104
- package/src/plus/git-github/models.ts +33 -0
- package/src/plus/git-github/providers/github/branches.ts +6 -3
- package/src/plus/git-github/providers/github/diff.ts +1 -1
- package/src/plus/git-github/providers/github/graph.ts +131 -0
- package/src/plus/git-github/providers/github/tags.ts +2 -0
- package/src/plus/integrations/authentication/cloudIntegrationService.ts +189 -17
- package/src/plus/integrations/authentication/configuredIntegrationService.ts +287 -50
- package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +105 -31
- package/src/plus/integrations/authentication/integrationAuthenticationService.ts +7 -3
- package/src/plus/integrations/authentication/manualTokenProvider.ts +12 -5
- package/src/plus/integrations/authentication/models.ts +35 -1
- package/src/plus/integrations/collectionMetadata.ts +143 -0
- package/src/plus/integrations/constants.ts +21 -0
- package/src/plus/integrations/context.ts +8 -9
- package/src/plus/integrations/errors.ts +153 -0
- package/src/plus/integrations/index.ts +148 -51
- package/src/plus/integrations/integrationService.ts +940 -49
- package/src/plus/integrations/lite.ts +233 -0
- package/src/plus/integrations/manager.ts +359 -0
- package/src/plus/integrations/models/gitHostIntegration.ts +1005 -134
- package/src/plus/integrations/models/integration.ts +293 -24
- package/src/plus/integrations/models/issuesIntegration.ts +132 -39
- package/src/plus/integrations/providerFilters.ts +12 -0
- package/src/plus/integrations/providers/apiClients.ts +8 -11
- package/src/plus/integrations/providers/apiConfig.ts +71 -0
- package/src/plus/integrations/providers/azure/azure.ts +164 -33
- package/src/plus/integrations/providers/azure/models.ts +19 -6
- package/src/plus/integrations/providers/azureDevOps.ts +766 -101
- package/src/plus/integrations/providers/bitbucket/bitbucket.ts +164 -34
- package/src/plus/integrations/providers/bitbucket-server/models.ts +32 -1
- package/src/plus/integrations/providers/bitbucket-server.ts +173 -8
- package/src/plus/integrations/providers/bitbucket.ts +489 -45
- package/src/plus/integrations/providers/github/github.ts +2 -2
- package/src/plus/integrations/providers/github/github.utils.ts +1 -1
- package/src/plus/integrations/providers/github.ts +390 -6
- package/src/plus/integrations/providers/gitlab/gitlab.ts +170 -60
- package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +9 -0
- package/src/plus/integrations/providers/gitlab/models.ts +19 -5
- package/src/plus/integrations/providers/gitlab.ts +369 -10
- package/src/plus/integrations/providers/jira.ts +247 -42
- package/src/plus/integrations/providers/linear.ts +154 -27
- package/src/plus/integrations/providers/models.ts +583 -75
- package/src/plus/integrations/providers/providersApi.ts +849 -86
- package/src/plus/integrations/providers/trello.ts +205 -0
- package/src/plus/integrations/providers/utils/providerPaging.ts +177 -0
- package/src/plus/integrations/providers/utils.ts +68 -8
- package/src/plus/integrations/reads/broaden.ts +452 -0
- package/src/plus/integrations/reads/context.ts +99 -0
- package/src/plus/integrations/reads/cursors.ts +224 -0
- package/src/plus/integrations/reads/drains.ts +343 -0
- package/src/plus/integrations/reads/filters.ts +124 -0
- package/src/plus/integrations/reads/hierarchy.ts +473 -0
- package/src/plus/integrations/reads/hierarchy.utils.ts +155 -0
- package/src/plus/integrations/reads/issueTracker.ts +468 -0
- package/src/plus/integrations/reads/issues.ts +409 -0
- package/src/plus/integrations/reads/paging.ts +277 -0
- package/src/plus/integrations/reads/pullRequests.ts +260 -0
- package/src/plus/integrations/reads/resolveRepository.ts +272 -0
- package/src/plus/integrations/reads/sweeps.ts +185 -0
- package/src/plus/integrations/reads/warnings.ts +170 -0
- package/src/plus/integrations/results.ts +275 -0
- package/src/plus/integrations/utils/domain.utils.ts +26 -0
- package/src/plus/integrations/utils/integration.utils.ts +93 -16
- package/src/utils/brand.ts +0 -2
- package/src/utils/cancellation.ts +56 -7
- package/src/utils/coalescedRun.ts +45 -0
- package/src/utils/color.ts +3 -3
- package/src/utils/date.ts +72 -0
- package/src/utils/debounce.ts +1 -1
- package/src/utils/decorators/gate.ts +2 -2
- package/src/utils/decorators/log.ts +5 -5
- package/src/utils/decorators/memoize.ts +2 -2
- package/src/utils/decorators/sequentialize.ts +2 -2
- package/src/utils/decorators/serializable.ts +1 -1
- package/src/utils/env/node/exec.ts +20 -5
- package/src/utils/event.ts +19 -25
- package/src/utils/function.ts +3 -3
- package/src/utils/iterable.ts +2 -6
- package/src/utils/logger.scoped.ts +1 -1
- package/src/utils/logger.ts +1 -1
- package/src/utils/paging.ts +46 -0
- package/src/utils/promise.ts +33 -3
- package/src/utils/promiseCache.ts +81 -51
- package/src/utils/searchTree.ts +4 -2
- package/src/utils/string.ts +1 -1
- package/src/utils/trie.ts +1 -0
- package/dist/plus/ai/providers/githubModelsProvider.d.ts +0 -19
- package/dist/plus/ai/providers/githubModelsProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/githubModelsProvider.js +0 -51
- package/dist/plus/ai/providers/githubModelsProvider.js.map +0 -1
- package/src/plus/ai/providers/githubModelsProvider.ts +0 -92
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { PullRequestShape } from '../../../git/models/pullRequest.js';
|
|
2
|
+
import { mapBounded } from '../../../utils/promise.js';
|
|
3
|
+
import type { IntegrationIds } from '../constants.js';
|
|
4
|
+
import { providerFanOutConcurrency } from '../constants.js';
|
|
5
|
+
import type { ClosedPullRequestSweepOptions, PullRequestSweepOptions } from '../manager.js';
|
|
6
|
+
import { fromProviderPullRequest } from '../providers/models.js';
|
|
7
|
+
import type { ProviderSweepResult, ProviderWarning } from '../results.js';
|
|
8
|
+
import { appendDedupedWarning } from '../results.js';
|
|
9
|
+
import { isGitHostIntegration, isIssuesHostIntegrationId } from '../utils/integration.utils.js';
|
|
10
|
+
import type { ProviderReadContext } from './context.js';
|
|
11
|
+
import { drainPullRequests, getCurrentAccountId, resolvePullRequestSweepTargets } from './drains.js';
|
|
12
|
+
import { resolveAccountWidePullRequestFilters, resolvePullRequestFilters } from './filters.js';
|
|
13
|
+
import {
|
|
14
|
+
gitHostOnlySurfaceWarning,
|
|
15
|
+
noConnectionWarning,
|
|
16
|
+
unsupportedAccountWidePullRequestFiltersWarning,
|
|
17
|
+
unsupportedFiltersWarning,
|
|
18
|
+
} from './warnings.js';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The all-pages pull request reads: one drain per provider target, aggregated into a single sweep result.
|
|
22
|
+
*
|
|
23
|
+
* A sweep exposes no continuation of its own — it drains everything it can reach — so its whole contract lives in
|
|
24
|
+
* the completeness signals it returns: `page.allPages` asserts every page of every target was read,
|
|
25
|
+
* `page.truncated` says pages remain unread, and `failedProviderIds`/`incompleteProviderIds` separate a provider
|
|
26
|
+
* that produced nothing from one that produced a slice with a gap. That split is why the aggregation below can't
|
|
27
|
+
* be collapsed into the generic fan-out merge the hierarchy reads use.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/** One provider target's drained slice, before the cross-provider aggregation. */
|
|
31
|
+
interface SweepSlice {
|
|
32
|
+
items: PullRequestShape[];
|
|
33
|
+
warnings: ProviderWarning[];
|
|
34
|
+
fetchFailed: boolean;
|
|
35
|
+
truncated: boolean;
|
|
36
|
+
providerId: IntegrationIds;
|
|
37
|
+
failedProvider: boolean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export async function sweepPullRequests(
|
|
41
|
+
ctx: ProviderReadContext,
|
|
42
|
+
options?: PullRequestSweepOptions,
|
|
43
|
+
): Promise<ProviderSweepResult<PullRequestShape>> {
|
|
44
|
+
const { targets, attributeUnavailableProviders } = resolvePullRequestSweepTargets(options);
|
|
45
|
+
const maxPages = options?.maxPages ?? 100;
|
|
46
|
+
const repos = options?.repos ?? [];
|
|
47
|
+
|
|
48
|
+
const results = await mapBounded(targets, providerFanOutConcurrency, async target => {
|
|
49
|
+
const { providerId: id, connectionId, domain: requestedDomain } = target;
|
|
50
|
+
/** A target that never reached a drain: the provider itself failed, so its slice is empty and attributed. */
|
|
51
|
+
const rejectedTarget = (warnings: ProviderWarning[]): SweepSlice => ({
|
|
52
|
+
items: [],
|
|
53
|
+
warnings: warnings,
|
|
54
|
+
fetchFailed: true,
|
|
55
|
+
truncated: false,
|
|
56
|
+
providerId: id,
|
|
57
|
+
failedProvider: true,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
if (isIssuesHostIntegrationId(id)) {
|
|
61
|
+
return rejectedTarget([
|
|
62
|
+
gitHostOnlySurfaceWarning(id, requestedDomain, connectionId, 'pull request sweeps'),
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const integration = await ctx.getIntegrationForRead(id, connectionId, requestedDomain);
|
|
67
|
+
if (integration == null) {
|
|
68
|
+
// A requested connection that can't be resolved is a broken connection — surface it as a
|
|
69
|
+
// warning + fetchFailed rather than dropping the provider's slice silently.
|
|
70
|
+
const early = ctx.earlyReturnConnectionWarnings(id, connectionId, requestedDomain);
|
|
71
|
+
if (early.warnings.length === 0 && !attributeUnavailableProviders) return undefined;
|
|
72
|
+
|
|
73
|
+
return rejectedTarget(
|
|
74
|
+
early.warnings.length !== 0 ? early.warnings : [noConnectionWarning(id, requestedDomain, connectionId)],
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
if (!isGitHostIntegration(integration)) {
|
|
78
|
+
return rejectedTarget([
|
|
79
|
+
gitHostOnlySurfaceWarning(id, requestedDomain, connectionId, 'pull request sweeps'),
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
await ctx.forceRefreshIfRequested(integration, options?.forceSync, connectionId);
|
|
84
|
+
|
|
85
|
+
const domain = ctx.domainForRead(integration, id, connectionId, requestedDomain);
|
|
86
|
+
const accountWide = repos.length === 0;
|
|
87
|
+
const requestedFilters = target.filters ?? options?.filters;
|
|
88
|
+
const resolved = accountWide
|
|
89
|
+
? resolveAccountWidePullRequestFilters(id, requestedFilters)
|
|
90
|
+
: resolvePullRequestFilters(id, requestedFilters);
|
|
91
|
+
if (resolved.unsupported) {
|
|
92
|
+
return rejectedTarget([
|
|
93
|
+
accountWide
|
|
94
|
+
? unsupportedAccountWidePullRequestFiltersWarning(id, domain, connectionId, requestedFilters ?? [])
|
|
95
|
+
: unsupportedFiltersWarning(id, domain, connectionId),
|
|
96
|
+
]);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const drain = await drainPullRequests(
|
|
100
|
+
integration,
|
|
101
|
+
id,
|
|
102
|
+
domain,
|
|
103
|
+
repos,
|
|
104
|
+
options?.states,
|
|
105
|
+
resolved.filters,
|
|
106
|
+
accountWide ? (options?.includeReviewRequested ?? false) : false,
|
|
107
|
+
connectionId,
|
|
108
|
+
maxPages,
|
|
109
|
+
attributeUnavailableProviders,
|
|
110
|
+
);
|
|
111
|
+
const currentAccountId = drain.items.some(pr => pr.author != null)
|
|
112
|
+
? await getCurrentAccountId(integration, connectionId)
|
|
113
|
+
: undefined;
|
|
114
|
+
// Normalize the raw provider-apis PRs to the GitLens-owned shape here, where the per-provider
|
|
115
|
+
// `integration` (the mapper's provider reference) is in scope; the aggregation below only sees drains.
|
|
116
|
+
return {
|
|
117
|
+
...drain,
|
|
118
|
+
items: drain.items.map(pr =>
|
|
119
|
+
fromProviderPullRequest(pr, integration, { currentAccountId: currentAccountId }),
|
|
120
|
+
),
|
|
121
|
+
providerId: id,
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const items: PullRequestShape[] = [];
|
|
126
|
+
const warnings: ProviderWarning[] = [];
|
|
127
|
+
const failedProviderIds = new Set<IntegrationIds>();
|
|
128
|
+
const incompleteProviderIds = new Set<IntegrationIds>();
|
|
129
|
+
let fetchFailed = false;
|
|
130
|
+
let truncated = false;
|
|
131
|
+
for (const drain of results) {
|
|
132
|
+
if (drain == null) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
items.push(...drain.items);
|
|
137
|
+
for (const w of drain.warnings) {
|
|
138
|
+
appendDedupedWarning(warnings, w);
|
|
139
|
+
}
|
|
140
|
+
if (drain.fetchFailed) {
|
|
141
|
+
fetchFailed = true;
|
|
142
|
+
}
|
|
143
|
+
if (drain.failedProvider) {
|
|
144
|
+
failedProviderIds.add(drain.providerId);
|
|
145
|
+
} else if (drain.fetchFailed || drain.truncated) {
|
|
146
|
+
incompleteProviderIds.add(drain.providerId);
|
|
147
|
+
}
|
|
148
|
+
if (drain.truncated) {
|
|
149
|
+
truncated = true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return {
|
|
154
|
+
items: items,
|
|
155
|
+
warnings: warnings,
|
|
156
|
+
// `allPages` asserts completeness — it must be false when any provider truncated (a single-page
|
|
157
|
+
// account-wide read that couldn't confirm it drained everything) OR a drain aborted on a read
|
|
158
|
+
// failure (its slice is incomplete). Either way the sweep did not read every page.
|
|
159
|
+
page: {
|
|
160
|
+
currentPage: 1,
|
|
161
|
+
itemsPerPage: items.length,
|
|
162
|
+
allPages: !truncated && !fetchFailed,
|
|
163
|
+
truncated: truncated || undefined,
|
|
164
|
+
},
|
|
165
|
+
// A sweep drains every page itself and exposes no cursor to resume — so `hasMore` must be false even
|
|
166
|
+
// when the read was incomplete. Terminal incompleteness is expressed through `page.truncated` +
|
|
167
|
+
// `allPages: false` + warnings; setting `hasMore: true` here would make a consumer that drains while
|
|
168
|
+
// `hasMore` re-run the identical sweep forever with no cursor to advance.
|
|
169
|
+
hasMore: false,
|
|
170
|
+
fetchFailed: fetchFailed || undefined,
|
|
171
|
+
failedProviderIds: [...failedProviderIds],
|
|
172
|
+
incompleteProviderIds: [...incompleteProviderIds],
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Closed/merged counterpart of {@link sweepPullRequests}, feeding Kepler's Kanban "done" column. Applies
|
|
178
|
+
* the native cross-provider state filter (`Closed` + `Merged`) so it works beyond GitHub.
|
|
179
|
+
*/
|
|
180
|
+
export function sweepClosedPullRequests(
|
|
181
|
+
ctx: ProviderReadContext,
|
|
182
|
+
options?: ClosedPullRequestSweepOptions,
|
|
183
|
+
): Promise<ProviderSweepResult<PullRequestShape>> {
|
|
184
|
+
return sweepPullRequests(ctx, { ...options, states: ['closed', 'merged'] });
|
|
185
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { IntegrationIds } from '../constants.js';
|
|
2
|
+
import type { IssueFilter, PullRequestFilter } from '../providerFilters.js';
|
|
3
|
+
import { providersMetadata } from '../providers/models.js';
|
|
4
|
+
import type { ProviderWarning } from '../results.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The warnings the provider facade raises on its OWN terms, as opposed to the ones derived from a caught
|
|
8
|
+
* provider error ({@link toProviderWarning}) or from SDK collection metadata (`collectionMetadata.ts`).
|
|
9
|
+
*
|
|
10
|
+
* These are pure message builders, kept together and out of the service so a read method reads as the decision
|
|
11
|
+
* it makes ("this surface doesn't apply, refuse it") rather than as the wording of the refusal, and so the same
|
|
12
|
+
* refusal can't be phrased two ways in two reads.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The single builder for a provider-neutral, non-auth warning: an unsupported capability, a
|
|
17
|
+
* contradictory/inexpressible request, or a read that couldn't confirm completeness. Every `kind: 'other'`
|
|
18
|
+
* warning the facade emits goes through here (directly, or via one of the named builders below that pin a
|
|
19
|
+
* recurring message), so the discriminant is assigned in exactly one place.
|
|
20
|
+
*
|
|
21
|
+
* The kinds that carry a programmatic remedy — `auth`, `rate-limit`, `not-found`, `no-connection` — are derived
|
|
22
|
+
* from the caught error's type instead and never come from here; see `ProviderWarningKind` and
|
|
23
|
+
* {@link noConnectionWarning}.
|
|
24
|
+
*/
|
|
25
|
+
export function otherWarning(
|
|
26
|
+
id: IntegrationIds,
|
|
27
|
+
domain: string | undefined,
|
|
28
|
+
connectionId: string | undefined,
|
|
29
|
+
message: string,
|
|
30
|
+
): ProviderWarning {
|
|
31
|
+
return {
|
|
32
|
+
providerId: id,
|
|
33
|
+
domain: domain,
|
|
34
|
+
connectionId: connectionId,
|
|
35
|
+
message: message,
|
|
36
|
+
kind: 'other',
|
|
37
|
+
isAuth: false,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Builds a `no-connection` warning for a per-connection read that resolved neither a session nor an error: the
|
|
43
|
+
* requested `connectionId` no longer resolves (deleted, or its authentication is invalid). Consumers use this
|
|
44
|
+
* to tell a truly empty account apart from a broken connection.
|
|
45
|
+
*/
|
|
46
|
+
export function noConnectionWarning(
|
|
47
|
+
id: IntegrationIds,
|
|
48
|
+
domain: string | undefined,
|
|
49
|
+
connectionId?: string,
|
|
50
|
+
): ProviderWarning {
|
|
51
|
+
return {
|
|
52
|
+
providerId: id,
|
|
53
|
+
domain: domain,
|
|
54
|
+
connectionId: connectionId,
|
|
55
|
+
message:
|
|
56
|
+
connectionId != null
|
|
57
|
+
? `Connection '${connectionId}' for '${id}' could not be resolved (deleted or invalid authentication).`
|
|
58
|
+
: `No active connection for '${id}' could be resolved.`,
|
|
59
|
+
kind: 'no-connection',
|
|
60
|
+
isAuth: false,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Warning for an issue-tracker provider asked for a surface only a git host serves (repos, PRs, sweeps). */
|
|
65
|
+
export function gitHostOnlySurfaceWarning(
|
|
66
|
+
id: IntegrationIds,
|
|
67
|
+
domain: string | undefined,
|
|
68
|
+
connectionId: string | undefined,
|
|
69
|
+
surface: string,
|
|
70
|
+
): ProviderWarning {
|
|
71
|
+
return otherWarning(
|
|
72
|
+
id,
|
|
73
|
+
domain,
|
|
74
|
+
connectionId,
|
|
75
|
+
`${surface} is not supported by '${id}'; use a git-host integration instead.`,
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Warning for a git host asked for a surface only an issue tracker serves (resource → project issue reads). */
|
|
80
|
+
export function issueTrackerOnlySurfaceWarning(
|
|
81
|
+
id: IntegrationIds,
|
|
82
|
+
connectionId: string | undefined,
|
|
83
|
+
surface: string,
|
|
84
|
+
): ProviderWarning {
|
|
85
|
+
return otherWarning(
|
|
86
|
+
id,
|
|
87
|
+
undefined,
|
|
88
|
+
connectionId,
|
|
89
|
+
`${surface} is not supported by '${id}'; use an issue-tracker integration instead.`,
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Builds a warning for a drain that stopped short of completeness (hit a page backstop, or a single-page read
|
|
95
|
+
* that couldn't confirm it drained everything). `truncated`/`allPages` already carry this on the result, but
|
|
96
|
+
* consumers that only inspect `warnings` would otherwise see no signal the read is partial.
|
|
97
|
+
*/
|
|
98
|
+
export function truncationWarning(
|
|
99
|
+
id: IntegrationIds,
|
|
100
|
+
domain: string | undefined,
|
|
101
|
+
connectionId: string | undefined,
|
|
102
|
+
readKind: 'Pull request' | 'Issue' | 'Repository',
|
|
103
|
+
): ProviderWarning {
|
|
104
|
+
return otherWarning(
|
|
105
|
+
id,
|
|
106
|
+
domain,
|
|
107
|
+
connectionId,
|
|
108
|
+
`${readKind} read for '${id}' was truncated (a page backstop was reached); results may be incomplete.`,
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Warning for an account-wide issue read whose requested filters the provider can't express server-side. */
|
|
113
|
+
export function unsupportedAccountWideIssueFiltersWarning(
|
|
114
|
+
id: IntegrationIds,
|
|
115
|
+
domain: string | undefined,
|
|
116
|
+
connectionId: string | undefined,
|
|
117
|
+
filters: IssueFilter[],
|
|
118
|
+
): ProviderWarning {
|
|
119
|
+
const supported = providersMetadata[id]?.supportedAccountWideIssueFilters ?? [];
|
|
120
|
+
return otherWarning(
|
|
121
|
+
id,
|
|
122
|
+
domain,
|
|
123
|
+
connectionId,
|
|
124
|
+
`The requested account-wide issue filters (${filters.join(', ')}) are not supported by '${id}'${supported.length ? ` (supported: ${supported.join(', ')})` : ''}; skipped to avoid returning a wider result than requested.`,
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/** Warning for an account-wide PR read whose requested relationship union cannot be expressed exactly. */
|
|
129
|
+
export function unsupportedAccountWidePullRequestFiltersWarning(
|
|
130
|
+
id: IntegrationIds,
|
|
131
|
+
domain: string | undefined,
|
|
132
|
+
connectionId: string | undefined,
|
|
133
|
+
filters: PullRequestFilter[],
|
|
134
|
+
): ProviderWarning {
|
|
135
|
+
const supported = providersMetadata[id]?.supportedAccountWidePullRequestFilters ?? [];
|
|
136
|
+
return otherWarning(
|
|
137
|
+
id,
|
|
138
|
+
domain,
|
|
139
|
+
connectionId,
|
|
140
|
+
`The requested account-wide pull request filters (${filters.join(', ')}) are not supported by '${id}'${supported.length ? ` (supported: ${supported.join(', ')})` : ''}; skipped to avoid returning a wider result than requested.`,
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/** Warning for a repo-scoped PR read whose requested filters the provider supports none of. */
|
|
145
|
+
export function unsupportedFiltersWarning(
|
|
146
|
+
id: IntegrationIds,
|
|
147
|
+
domain: string | undefined,
|
|
148
|
+
connectionId: string | undefined,
|
|
149
|
+
): ProviderWarning {
|
|
150
|
+
return otherWarning(
|
|
151
|
+
id,
|
|
152
|
+
domain,
|
|
153
|
+
connectionId,
|
|
154
|
+
`The requested pull request filters are not supported by '${id}'; skipped to avoid returning unfiltered results.`,
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** Warning for a git host that doesn't expose issues on this surface (e.g. Bitbucket, deprecated in favor of Jira). */
|
|
159
|
+
export function issuesUnsupportedWarning(
|
|
160
|
+
id: IntegrationIds,
|
|
161
|
+
domain: string | undefined,
|
|
162
|
+
connectionId: string | undefined,
|
|
163
|
+
): ProviderWarning {
|
|
164
|
+
return otherWarning(
|
|
165
|
+
id,
|
|
166
|
+
domain,
|
|
167
|
+
connectionId,
|
|
168
|
+
`Issues are not supported by '${id}'; use a dedicated issue integration (e.g. Jira) instead.`,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { AuthenticationError, RequestNotFoundError, RequestRateLimitError } from '../../git/errors.js';
|
|
2
|
+
import type { IntegrationIds } from './constants.js';
|
|
3
|
+
|
|
4
|
+
export interface ConnectionStateChangeEvent {
|
|
5
|
+
key: string;
|
|
6
|
+
reason: 'connected' | 'disconnected';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A per-provider, per-connection warning surfaced alongside (partial) read results. Consumers use
|
|
11
|
+
* these to drive auth recovery, retry, or truncation messaging without the read itself throwing.
|
|
12
|
+
*
|
|
13
|
+
* `kind` is the programmatic discriminant (a rate-limit is retryable, a 404 is not, an auth failure
|
|
14
|
+
* needs re-connection); `isAuth` is retained as a convenience mirror of `kind === 'auth'`.
|
|
15
|
+
*/
|
|
16
|
+
export type ProviderWarningKind = 'auth' | 'rate-limit' | 'not-found' | 'no-connection' | 'other';
|
|
17
|
+
|
|
18
|
+
export interface ProviderWarning {
|
|
19
|
+
providerId: IntegrationIds;
|
|
20
|
+
/** Disambiguates connections on self-managed hosts (where one provider id spans multiple domains). */
|
|
21
|
+
domain?: string;
|
|
22
|
+
/** The specific token/connection the read was pinned to, when a `connectionId` was supplied. */
|
|
23
|
+
connectionId?: string;
|
|
24
|
+
message: string;
|
|
25
|
+
kind: ProviderWarningKind;
|
|
26
|
+
/** Convenience mirror of `kind === 'auth'`. */
|
|
27
|
+
isAuth: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface ProviderPageInfo {
|
|
31
|
+
/**
|
|
32
|
+
* The 1-based POSITION of the returned page. One convention across every paged read, page-number and
|
|
33
|
+
* cursor paging alike, so a `getNextPageParam`-style consumer can key off it uniformly:
|
|
34
|
+
* - the page number the provider itself reported, when it reports one (authoritative);
|
|
35
|
+
* - else the position the caller addressed: the page encoded in a threaded page cursor, or the `page`
|
|
36
|
+
* supplied alongside an opaque cursor (1 when the caller supplied no `page`);
|
|
37
|
+
* - else, for a read that can be advanced by page number, the requested `page` — the provider either
|
|
38
|
+
* honored it or the internal drain reached it (see the paging contract on `IntegrationManager`);
|
|
39
|
+
* - else 1: a cursor-only read with no cursor threaded back ignores a requested page number and answers
|
|
40
|
+
* with its first page, so echoing the request would mislabel page 1 as page N.
|
|
41
|
+
*
|
|
42
|
+
* A page past the provider's terminal cursor still reports the requested `page` with empty `items` — an
|
|
43
|
+
* empty page N, never page N-1 relabeled.
|
|
44
|
+
*
|
|
45
|
+
* Continue a cursor-paged read from `cursor`, NOT from `currentPage + 1`: a cursor-only host can't be
|
|
46
|
+
* addressed by number, so this is a position label and not always a resumable request parameter.
|
|
47
|
+
*/
|
|
48
|
+
currentPage: number;
|
|
49
|
+
/**
|
|
50
|
+
* The page size IN EFFECT, which is not always the one requested — it is whichever of these the read can
|
|
51
|
+
* actually vouch for:
|
|
52
|
+
* - the size the provider reported for the page it served (numbered-page hosts), else
|
|
53
|
+
* - the `itemsPerPage` that was applied to the request (repo-scoped reads, which forward it), else
|
|
54
|
+
* - `items.length`, for a read that takes no page size at all: the account-wide PR/issue reads, `listRepos`
|
|
55
|
+
* (cursor-only), and `listIssueTrackerIssuesPage`, whose `itemsPerPage` counts PROJECTS rather than issues.
|
|
56
|
+
*
|
|
57
|
+
* So it is a description of the page, not an echo of the request: don't derive a total from
|
|
58
|
+
* `currentPage * itemsPerPage`, and don't read `items.length < itemsPerPage` as "last page" — `hasMore` /
|
|
59
|
+
* `cursor` are the only continuation signals.
|
|
60
|
+
*/
|
|
61
|
+
itemsPerPage: number;
|
|
62
|
+
/**
|
|
63
|
+
* A COMPLETENESS assertion, not a mode flag: `true` only when a sweep drained every page of every target
|
|
64
|
+
* without truncating or failing (`!truncated && !fetchFailed`). Set exclusively by `sweepPullRequests` /
|
|
65
|
+
* `sweepClosedPullRequests` and absent on every paged read, so `allPages !== true` does NOT by itself mean
|
|
66
|
+
* "this was a single page".
|
|
67
|
+
*
|
|
68
|
+
* This is the signal to gate on before caching a sweep as authoritative: unlike `truncated` it is `false`
|
|
69
|
+
* for BOTH kinds of incompleteness, so it can't be misread as a benign cap.
|
|
70
|
+
*/
|
|
71
|
+
allPages?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* True when the read stopped before it could confirm it had everything. Deliberately does NOT distinguish
|
|
74
|
+
* WHY, and a consumer must not assume it means a provider ceiling — a sweep sets it from three different
|
|
75
|
+
* origins:
|
|
76
|
+
* - a provider-side ceiling or per-scope backstop propagated from below (e.g. GitHub Search's 1000-result
|
|
77
|
+
* cap): the missing items are NOT reachable, so this really is "complete to the provider's limit";
|
|
78
|
+
* - the sweep's OWN `maxPages` cap (default 100) with a usable cursor still in hand: the missing items ARE
|
|
79
|
+
* reachable and were simply not fetched — raise `maxPages` to get them;
|
|
80
|
+
* - the provider reporting another page but handing back no usable cursor: not reachable.
|
|
81
|
+
*
|
|
82
|
+
* Only the second is recoverable, and a sweep exposes no continuation cursor, so treating a truncated sweep
|
|
83
|
+
* as a complete set silently drops reachable data in that case. Prefer `allPages` for the cache decision.
|
|
84
|
+
*/
|
|
85
|
+
truncated?: boolean;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface ProviderResult<T> {
|
|
89
|
+
items: T[];
|
|
90
|
+
warnings: ProviderWarning[];
|
|
91
|
+
/**
|
|
92
|
+
* True when `items` is incomplete — distinguishes a failed or truncated flat read from a genuinely empty
|
|
93
|
+
* result. Paged results additionally use `page.truncated` when a completed page could not confirm it
|
|
94
|
+
* drained everything.
|
|
95
|
+
*/
|
|
96
|
+
fetchFailed?: boolean;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface ProviderPagedResult<T> extends ProviderResult<T> {
|
|
100
|
+
page: ProviderPageInfo;
|
|
101
|
+
hasMore: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Opaque cursor for cursor-based paging (GraphQL, per-repo/per-project cursors, etc.). For hosts that
|
|
104
|
+
* require the previous page's cursor, consumers should pass this value back to the next `cursor` option.
|
|
105
|
+
* A retry-only cursor may remain when `hasMore` is false: `hasMore` means automatic forward progress,
|
|
106
|
+
* while explicitly reusing such a cursor retries failed work without creating an infinite paging loop.
|
|
107
|
+
*/
|
|
108
|
+
cursor?: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface ProviderSweepResult<T> extends ProviderResult<T> {
|
|
112
|
+
page: ProviderPageInfo;
|
|
113
|
+
hasMore: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Providers whose top-level read failed before returning any usable page. Partial per-scope failures stay
|
|
116
|
+
* represented by `warnings` + `fetchFailed` and are intentionally excluded.
|
|
117
|
+
*/
|
|
118
|
+
failedProviderIds: IntegrationIds[];
|
|
119
|
+
/**
|
|
120
|
+
* Providers whose read started successfully but could not produce an authoritative complete slice (for
|
|
121
|
+
* example, a later page failed, collection metadata reported a partial scope, or a paging backstop was hit).
|
|
122
|
+
* Kept separate from
|
|
123
|
+
* `failedProviderIds` so consumers can accept healthy sibling providers while preserving an older snapshot
|
|
124
|
+
* for a provider whose returned slice has a gap.
|
|
125
|
+
*/
|
|
126
|
+
incompleteProviderIds: IntegrationIds[];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface ProviderBroadenResult<T> extends ProviderPagedResult<T> {
|
|
130
|
+
broadenedProviderIds: IntegrationIds[];
|
|
131
|
+
/** Providers for which no requested org produced a usable issue result. */
|
|
132
|
+
failedProviderIds: IntegrationIds[];
|
|
133
|
+
/** Providers with both a usable org result and at least one failed or truncated org slice. */
|
|
134
|
+
incompleteProviderIds: IntegrationIds[];
|
|
135
|
+
fanOutCount: number;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export type RepositoryResolutionStatus =
|
|
139
|
+
| 'resolved'
|
|
140
|
+
| 'not-found'
|
|
141
|
+
| 'unauthorized'
|
|
142
|
+
| 'unsupported-provider'
|
|
143
|
+
| 'invalid-remote-url'
|
|
144
|
+
| 'host-mismatch'
|
|
145
|
+
| 'undetermined';
|
|
146
|
+
|
|
147
|
+
export interface RepositoryIdentity {
|
|
148
|
+
providerId: IntegrationIds;
|
|
149
|
+
domain: string;
|
|
150
|
+
/** The provider's canonical owner/namespace (follows renames), falling back to the parsed remote when omitted. */
|
|
151
|
+
owner: string;
|
|
152
|
+
/** The provider's canonical repo name (follows renames), falling back to the parsed remote when omitted. */
|
|
153
|
+
name: string;
|
|
154
|
+
project?: string;
|
|
155
|
+
/** The original input remote URL, so the caller can key the resolution back to the remote it asked about. */
|
|
156
|
+
remoteUrl: string;
|
|
157
|
+
/**
|
|
158
|
+
* True when the provider's canonical owner/name differ from what the input remote URL carried — i.e. the
|
|
159
|
+
* repo was renamed/moved host-side and the local remote is stale. Case-insensitive, mirroring gkcli's
|
|
160
|
+
* `EqualFold` compare so hosts that echo the input casing (e.g. Bitbucket Server/Azure) aren't flagged.
|
|
161
|
+
*/
|
|
162
|
+
renamed: boolean;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface RepositoryResolution {
|
|
166
|
+
status: RepositoryResolutionStatus;
|
|
167
|
+
identity?: RepositoryIdentity;
|
|
168
|
+
warning?: ProviderWarning;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface ResolveRepositoryResult {
|
|
172
|
+
resolution: RepositoryResolution;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const maxProviderWarningMessageLength = 500;
|
|
176
|
+
|
|
177
|
+
function providerWarningMessage(ex: unknown): string {
|
|
178
|
+
const raw = (ex instanceof Error ? ex.message : String(ex)).trim();
|
|
179
|
+
const carrier = ex as { status?: unknown; response?: { status?: unknown } } | null | undefined;
|
|
180
|
+
const status =
|
|
181
|
+
typeof carrier?.status === 'number'
|
|
182
|
+
? carrier.status
|
|
183
|
+
: typeof carrier?.response?.status === 'number'
|
|
184
|
+
? carrier.response.status
|
|
185
|
+
: undefined;
|
|
186
|
+
|
|
187
|
+
// Gateways commonly answer API requests with a complete HTML error page. That payload is neither actionable
|
|
188
|
+
// nor suitable for a warning DTO consumed by UIs and logs; preserve the status without leaking the document.
|
|
189
|
+
if (/<(?:!doctype\s+html|html|head|body)\b/i.test(raw)) {
|
|
190
|
+
return status != null ? `Provider request failed with status ${status}.` : 'Provider request failed.';
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (!raw) {
|
|
194
|
+
return status != null ? `Provider request failed with status ${status}.` : 'Provider request failed.';
|
|
195
|
+
}
|
|
196
|
+
return raw.length > maxProviderWarningMessageLength
|
|
197
|
+
? `${raw.slice(0, maxProviderWarningMessageLength - 3)}...`
|
|
198
|
+
: raw;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Normalized org/workspace/group shape returned by the provider facade.
|
|
203
|
+
* `name` is the provider identifier to pass to follow-up reads, while `org` is an optional display label.
|
|
204
|
+
*/
|
|
205
|
+
export interface ProviderOrganization {
|
|
206
|
+
id: string;
|
|
207
|
+
providerId: IntegrationIds;
|
|
208
|
+
name: string;
|
|
209
|
+
org?: string;
|
|
210
|
+
url: string;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/** Normalized repository shape returned by the provider facade. */
|
|
214
|
+
export interface ProviderRepositoryShape {
|
|
215
|
+
id: string;
|
|
216
|
+
namespace: string;
|
|
217
|
+
name: string;
|
|
218
|
+
/** Azure DevOps project; `undefined` for hosts without a project layer. */
|
|
219
|
+
project?: string;
|
|
220
|
+
/** Web (browser) URL, when the provider exposes it. */
|
|
221
|
+
url?: string;
|
|
222
|
+
/** HTTPS clone URL, when available. */
|
|
223
|
+
cloneUrlHttps?: string;
|
|
224
|
+
/** SSH clone URL, when available. */
|
|
225
|
+
cloneUrlSsh?: string;
|
|
226
|
+
/** Default branch name, when the provider reports it. */
|
|
227
|
+
defaultBranch?: string;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Classifies a caught provider exception into a neutral {@link ProviderWarning}. Ordering matters:
|
|
232
|
+
* `instanceof` is checked most-specific-first so a rate-limit isn't mislabeled as a generic error and
|
|
233
|
+
* a 404 isn't mislabeled as auth.
|
|
234
|
+
*/
|
|
235
|
+
export function toProviderWarning(
|
|
236
|
+
providerId: IntegrationIds,
|
|
237
|
+
domain: string | undefined,
|
|
238
|
+
connectionId: string | undefined,
|
|
239
|
+
ex: unknown,
|
|
240
|
+
): ProviderWarning {
|
|
241
|
+
let kind: ProviderWarning['kind'];
|
|
242
|
+
if (ex instanceof AuthenticationError) {
|
|
243
|
+
kind = 'auth';
|
|
244
|
+
} else if (ex instanceof RequestRateLimitError) {
|
|
245
|
+
kind = 'rate-limit';
|
|
246
|
+
} else if (ex instanceof RequestNotFoundError) {
|
|
247
|
+
kind = 'not-found';
|
|
248
|
+
} else {
|
|
249
|
+
kind = 'other';
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
return {
|
|
253
|
+
providerId: providerId,
|
|
254
|
+
domain: domain,
|
|
255
|
+
connectionId: connectionId,
|
|
256
|
+
message: providerWarningMessage(ex),
|
|
257
|
+
kind: kind,
|
|
258
|
+
isAuth: kind === 'auth',
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** A stable key for deduplicating warnings accumulated across drained pages / fan-out scopes. */
|
|
263
|
+
function providerWarningKey(warning: ProviderWarning): string {
|
|
264
|
+
return [warning.providerId, warning.connectionId ?? '', warning.domain ?? '', warning.kind, warning.message].join(
|
|
265
|
+
' ',
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/** Appends `warning` to `into` only when an equal warning (by provider/connection/domain/kind/message) is absent. */
|
|
270
|
+
export function appendDedupedWarning(into: ProviderWarning[], warning: ProviderWarning): void {
|
|
271
|
+
const key = providerWarningKey(warning);
|
|
272
|
+
if (into.some(existing => providerWarningKey(existing) === key)) return;
|
|
273
|
+
|
|
274
|
+
into.push(warning);
|
|
275
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Extracts the host from a domain expressed as either a URL or a bare host. */
|
|
2
|
+
export function hostFromDomain(domain: string | undefined): string | undefined {
|
|
3
|
+
const value = domain?.trim();
|
|
4
|
+
if (!value) return undefined;
|
|
5
|
+
|
|
6
|
+
if (/^[a-z][a-z\d+\-.]*:\/\//i.test(value)) {
|
|
7
|
+
try {
|
|
8
|
+
return new URL(value).host || undefined;
|
|
9
|
+
} catch {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
return new URL(`https://${value}`).host || undefined;
|
|
16
|
+
} catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Whether two URL-or-host domain values identify the same normalized host and port. */
|
|
22
|
+
export function areDomainsOnSameHost(first: string | undefined, second: string | undefined): boolean {
|
|
23
|
+
const firstHost = hostFromDomain(first);
|
|
24
|
+
const secondHost = hostFromDomain(second);
|
|
25
|
+
return firstHost != null && secondHost != null && firstHost === secondHost;
|
|
26
|
+
}
|