@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,473 @@
|
|
|
1
|
+
import { mapBounded } from '../../../utils/promise.js';
|
|
2
|
+
import { mergeAssessmentInto } from '../collectionMetadata.js';
|
|
3
|
+
import type { IntegrationIds } from '../constants.js';
|
|
4
|
+
import {
|
|
5
|
+
GitCloudHostIntegrationId,
|
|
6
|
+
GitSelfManagedHostIntegrationId,
|
|
7
|
+
providerFanOutConcurrency,
|
|
8
|
+
supportedOrderedCloudIntegrationIds,
|
|
9
|
+
supportedOrderedCloudIssuesIntegrationIds,
|
|
10
|
+
} from '../constants.js';
|
|
11
|
+
import type { ListOrgsOptions, ListProjectsOptions } from '../manager.js';
|
|
12
|
+
import { isIssuesIntegration } from '../models/issuesIntegration.js';
|
|
13
|
+
import { toProviderRepositoryShape } from '../providers/models.js';
|
|
14
|
+
import type {
|
|
15
|
+
ProviderOrganization,
|
|
16
|
+
ProviderPagedResult,
|
|
17
|
+
ProviderRepositoryShape,
|
|
18
|
+
ProviderResult,
|
|
19
|
+
ProviderWarning,
|
|
20
|
+
} from '../results.js';
|
|
21
|
+
import { appendDedupedWarning } from '../results.js';
|
|
22
|
+
import {
|
|
23
|
+
isGitHostIntegration,
|
|
24
|
+
isIssuesHostIntegrationId,
|
|
25
|
+
warnOnMissingSessionForDomain,
|
|
26
|
+
} from '../utils/integration.utils.js';
|
|
27
|
+
import type { ProviderReadContext } from './context.js';
|
|
28
|
+
import { runCaptured } from './drains.js';
|
|
29
|
+
import {
|
|
30
|
+
assertHierarchyReadTarget,
|
|
31
|
+
mergeHierarchyResults,
|
|
32
|
+
orgForProject,
|
|
33
|
+
resourceMatchesOrg,
|
|
34
|
+
resourceToOrg,
|
|
35
|
+
withProviderContext,
|
|
36
|
+
} from './hierarchy.utils.js';
|
|
37
|
+
import { pageToCursor, refusedPage, resolveContinuation, resolveCurrentPage, toProviderPageInfo } from './paging.js';
|
|
38
|
+
import { gitHostOnlySurfaceWarning, otherWarning } from './warnings.js';
|
|
39
|
+
|
|
40
|
+
export async function listOrgs(
|
|
41
|
+
ctx: ProviderReadContext,
|
|
42
|
+
options?: ListOrgsOptions,
|
|
43
|
+
): Promise<ProviderResult<ProviderOrganization>> {
|
|
44
|
+
assertHierarchyReadTarget('listOrgs', options);
|
|
45
|
+
const ids = options?.providerId != null ? [options.providerId] : supportedOrderedCloudIntegrationIds;
|
|
46
|
+
const singleProvider = ids.length === 1;
|
|
47
|
+
const connectionId = singleProvider ? options?.connectionId : undefined;
|
|
48
|
+
const requestedDomain = singleProvider ? options?.domain : undefined;
|
|
49
|
+
|
|
50
|
+
const results = await mapBounded(ids, providerFanOutConcurrency, async id => {
|
|
51
|
+
const integration = await ctx.getIntegrationForRead(id, connectionId, requestedDomain);
|
|
52
|
+
if (integration == null) {
|
|
53
|
+
// A specifically requested connection that can't be resolved is a broken connection, not a
|
|
54
|
+
// provider with no orgs — surface it (warning + fetchFailed) instead of dropping the id
|
|
55
|
+
// silently, so a caller can tell it apart from an account that genuinely has no orgs.
|
|
56
|
+
const early = ctx.earlyReturnConnectionWarnings(id, connectionId, requestedDomain);
|
|
57
|
+
return {
|
|
58
|
+
items: [] as ProviderOrganization[],
|
|
59
|
+
warnings: early.warnings,
|
|
60
|
+
fetchFailed: early.fetchFailed,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const items: ProviderOrganization[] = [];
|
|
65
|
+
const warnings: ProviderWarning[] = [];
|
|
66
|
+
let fetchFailed = false;
|
|
67
|
+
const domain = ctx.domainForRead(integration, id, connectionId, requestedDomain);
|
|
68
|
+
const warnOnMissingSession = warnOnMissingSessionForDomain(id, requestedDomain);
|
|
69
|
+
if (isIssuesIntegration(integration)) {
|
|
70
|
+
// Issue trackers expose "resources" (Jira sites, Linear orgs, …) as their org analogue.
|
|
71
|
+
const { value: resources, warning } = await runCaptured(
|
|
72
|
+
id,
|
|
73
|
+
domain,
|
|
74
|
+
connectionId,
|
|
75
|
+
() => integration.getResourcesForUserResult(connectionId),
|
|
76
|
+
{ warnOnMissingSession: warnOnMissingSession },
|
|
77
|
+
);
|
|
78
|
+
if (resources != null) {
|
|
79
|
+
items.push(...resources.map(r => resourceToOrg(id, r)));
|
|
80
|
+
}
|
|
81
|
+
if (warning != null) {
|
|
82
|
+
warnings.push(warning);
|
|
83
|
+
// A warning with no value is a hard read failure, not an empty account.
|
|
84
|
+
if (resources == null) {
|
|
85
|
+
fetchFailed = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} else if (!integration.supportsOrganizationDiscovery) {
|
|
89
|
+
// The provider registers no org-discovery hook (e.g. Bitbucket Data Center). Report it as
|
|
90
|
+
// explicitly unsupported rather than contributing a silent empty list that a caller can't
|
|
91
|
+
// tell apart from "this account has no orgs".
|
|
92
|
+
fetchFailed = true;
|
|
93
|
+
warnings.push(
|
|
94
|
+
otherWarning(id, domain, connectionId, `Organization discovery is not supported by '${id}'.`),
|
|
95
|
+
);
|
|
96
|
+
} else {
|
|
97
|
+
const { value, warning } = await runCaptured(
|
|
98
|
+
id,
|
|
99
|
+
domain,
|
|
100
|
+
connectionId,
|
|
101
|
+
() => integration.getOrganizationsForUserResult(connectionId),
|
|
102
|
+
{ warnOnMissingSession: warnOnMissingSession },
|
|
103
|
+
);
|
|
104
|
+
if (value != null) {
|
|
105
|
+
items.push(...value.values.map(org => withProviderContext(id, org)));
|
|
106
|
+
if (value.truncated) {
|
|
107
|
+
warnings.push(
|
|
108
|
+
otherWarning(
|
|
109
|
+
id,
|
|
110
|
+
domain,
|
|
111
|
+
connectionId,
|
|
112
|
+
'Organization listing was truncated before the upstream results were exhausted.',
|
|
113
|
+
),
|
|
114
|
+
);
|
|
115
|
+
// `ProviderResult` has no page object on which to carry truncation. Mark the flat
|
|
116
|
+
// hierarchy result incomplete so consumers don't treat omitted orgs as authoritative.
|
|
117
|
+
fetchFailed = true;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const assessment = mergeAssessmentInto(warnings, id, domain, connectionId, value.metadata);
|
|
121
|
+
if (assessment.fetchFailed || assessment.truncated) {
|
|
122
|
+
fetchFailed = true;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (warning != null) {
|
|
126
|
+
warnings.push(warning);
|
|
127
|
+
if (value == null) {
|
|
128
|
+
fetchFailed = true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return { items: items, warnings: warnings, fetchFailed: fetchFailed };
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
return mergeHierarchyResults(results);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export async function listProjects(
|
|
140
|
+
ctx: ProviderReadContext,
|
|
141
|
+
options?: ListProjectsOptions,
|
|
142
|
+
): Promise<ProviderResult<ProviderOrganization>> {
|
|
143
|
+
assertHierarchyReadTarget('listProjects', options);
|
|
144
|
+
const ids =
|
|
145
|
+
options?.providerId != null
|
|
146
|
+
? [options.providerId]
|
|
147
|
+
: [
|
|
148
|
+
...supportedOrderedCloudIssuesIntegrationIds,
|
|
149
|
+
GitCloudHostIntegrationId.AzureDevOps,
|
|
150
|
+
GitSelfManagedHostIntegrationId.AzureDevOpsServer,
|
|
151
|
+
];
|
|
152
|
+
const singleProvider = ids.length === 1;
|
|
153
|
+
const connectionId = singleProvider ? options?.connectionId : undefined;
|
|
154
|
+
const requestedDomain = singleProvider ? options?.domain : undefined;
|
|
155
|
+
|
|
156
|
+
const results = await mapBounded(ids, providerFanOutConcurrency, async id => {
|
|
157
|
+
const integration = await ctx.getIntegrationForRead(id, connectionId, requestedDomain);
|
|
158
|
+
if (integration == null) {
|
|
159
|
+
// A requested connection that can't be resolved is a broken connection, not a provider with
|
|
160
|
+
// no projects — surface it (warning + fetchFailed) instead of dropping the id silently.
|
|
161
|
+
const early = ctx.earlyReturnConnectionWarnings(id, connectionId, requestedDomain);
|
|
162
|
+
return {
|
|
163
|
+
items: [] as ProviderOrganization[],
|
|
164
|
+
warnings: early.warnings,
|
|
165
|
+
fetchFailed: early.fetchFailed,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const items: ProviderOrganization[] = [];
|
|
170
|
+
const warnings: ProviderWarning[] = [];
|
|
171
|
+
let fetchFailed = false;
|
|
172
|
+
const domain = ctx.domainForRead(integration, id, connectionId, requestedDomain);
|
|
173
|
+
const org = options?.org;
|
|
174
|
+
const warnOnMissingSession = warnOnMissingSessionForDomain(id, requestedDomain);
|
|
175
|
+
|
|
176
|
+
// Git hosts with a project tier (Azure DevOps) read projects through their own hierarchy hook,
|
|
177
|
+
// scoped to `org` when given. Non-Azure git hosts have no project tier and return undefined.
|
|
178
|
+
if (!isIssuesIntegration(integration)) {
|
|
179
|
+
// Check the capability first, like listOrgs/listRepos/listIssuesPage do. Without it, a host
|
|
180
|
+
// with no project tier returns `undefined` from a successful read, which `runCaptured` can't
|
|
181
|
+
// tell apart from an unresolvable session — turning a healthy provider into a `no-connection`
|
|
182
|
+
// warning + `fetchFailed` (and, in Kepler, a spurious reconnect prompt).
|
|
183
|
+
if (!integration.supportsProjectDiscovery) {
|
|
184
|
+
return { items: items, warnings: warnings, fetchFailed: false };
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const { value: projects, warning } = await runCaptured(
|
|
188
|
+
id,
|
|
189
|
+
domain,
|
|
190
|
+
connectionId,
|
|
191
|
+
() => integration.getProjectsForOrgResult(org, connectionId),
|
|
192
|
+
{ warnOnMissingSession: warnOnMissingSession },
|
|
193
|
+
);
|
|
194
|
+
if (warning != null) {
|
|
195
|
+
warnings.push(warning);
|
|
196
|
+
if (projects == null) {
|
|
197
|
+
fetchFailed = true;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (projects != null) {
|
|
201
|
+
items.push(...projects.values.map(project => withProviderContext(id, project)));
|
|
202
|
+
|
|
203
|
+
if (projects.truncated) {
|
|
204
|
+
warnings.push(
|
|
205
|
+
otherWarning(
|
|
206
|
+
id,
|
|
207
|
+
domain,
|
|
208
|
+
connectionId,
|
|
209
|
+
'Project listing was truncated before the upstream results were exhausted.',
|
|
210
|
+
),
|
|
211
|
+
);
|
|
212
|
+
// Unlike paged repository reads, this flattened hierarchy result has no continuation
|
|
213
|
+
// or page metadata. `fetchFailed` is its structural non-authoritative signal.
|
|
214
|
+
fetchFailed = true;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const assessment = mergeAssessmentInto(warnings, id, domain, connectionId, projects.metadata);
|
|
218
|
+
if (assessment.fetchFailed || assessment.truncated) {
|
|
219
|
+
fetchFailed = true;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return { items: items, warnings: warnings, fetchFailed: fetchFailed };
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const { value: resources, warning: resourcesWarning } = await runCaptured(
|
|
226
|
+
id,
|
|
227
|
+
domain,
|
|
228
|
+
connectionId,
|
|
229
|
+
() => integration.getResourcesForUserResult(connectionId),
|
|
230
|
+
{ warnOnMissingSession: warnOnMissingSession },
|
|
231
|
+
);
|
|
232
|
+
if (resourcesWarning != null) {
|
|
233
|
+
warnings.push(resourcesWarning);
|
|
234
|
+
if (resources == null) {
|
|
235
|
+
fetchFailed = true;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const scopedResources =
|
|
240
|
+
org != null ? resources?.filter(resource => resourceMatchesOrg(resource, org)) : resources;
|
|
241
|
+
if (scopedResources != null && scopedResources.length !== 0) {
|
|
242
|
+
const { value: projects, warning: projectsWarning } = await runCaptured(id, domain, connectionId, () =>
|
|
243
|
+
integration.getProjectsForResourcesWithMetadataResult(scopedResources, connectionId),
|
|
244
|
+
);
|
|
245
|
+
if (projectsWarning != null) {
|
|
246
|
+
warnings.push(projectsWarning);
|
|
247
|
+
if (projects == null) {
|
|
248
|
+
fetchFailed = true;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (projects != null) {
|
|
252
|
+
items.push(
|
|
253
|
+
...projects.values.map(project =>
|
|
254
|
+
resourceToOrg(id, project, orgForProject(id, project, scopedResources)),
|
|
255
|
+
),
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
const assessment = mergeAssessmentInto(warnings, id, domain, connectionId, projects?.metadata);
|
|
259
|
+
if (assessment.fetchFailed || assessment.truncated) {
|
|
260
|
+
fetchFailed = true;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return { items: items, warnings: warnings, fetchFailed: fetchFailed };
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
return mergeHierarchyResults(results);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export async function listRepos(
|
|
271
|
+
ctx: ProviderReadContext,
|
|
272
|
+
options: {
|
|
273
|
+
providerId: IntegrationIds;
|
|
274
|
+
org?: string;
|
|
275
|
+
project?: string;
|
|
276
|
+
page?: number;
|
|
277
|
+
cursor?: string;
|
|
278
|
+
itemsPerPage?: number;
|
|
279
|
+
connectionId?: string;
|
|
280
|
+
domain?: string;
|
|
281
|
+
},
|
|
282
|
+
): Promise<ProviderPagedResult<ProviderRepositoryShape>> {
|
|
283
|
+
const page = Math.max(1, options.page ?? 1);
|
|
284
|
+
if (isIssuesHostIntegrationId(options.providerId)) {
|
|
285
|
+
return refusedPage(
|
|
286
|
+
page,
|
|
287
|
+
[gitHostOnlySurfaceWarning(options.providerId, undefined, options.connectionId, 'repository discovery')],
|
|
288
|
+
true,
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
const integration = await ctx.getIntegrationForRead(options.providerId, options.connectionId, options.domain);
|
|
293
|
+
if (integration == null) {
|
|
294
|
+
// A supplied connection or domain that no longer resolves is a broken target, not an empty account —
|
|
295
|
+
// surface a no-connection warning + fetchFailed rather than a silent empty page.
|
|
296
|
+
const early = ctx.earlyReturnConnectionWarnings(options.providerId, options.connectionId, options.domain);
|
|
297
|
+
return refusedPage(page, early.warnings, early.fetchFailed);
|
|
298
|
+
}
|
|
299
|
+
if (!isGitHostIntegration(integration)) {
|
|
300
|
+
return refusedPage(
|
|
301
|
+
page,
|
|
302
|
+
[gitHostOnlySurfaceWarning(options.providerId, undefined, options.connectionId, 'repository discovery')],
|
|
303
|
+
true,
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const domain = ctx.domainForRead(integration, options.providerId, options.connectionId, options.domain);
|
|
308
|
+
|
|
309
|
+
const accountWide = options.org == null;
|
|
310
|
+
const supported = accountWide
|
|
311
|
+
? integration.supportsUserRepositoryDiscovery
|
|
312
|
+
: integration.supportsRepositoryDiscovery;
|
|
313
|
+
if (!supported) {
|
|
314
|
+
// No matching repo-discovery hook — org-scoped (e.g. Bitbucket Data Center) or account-wide (e.g.
|
|
315
|
+
// Bitbucket/Azure, whose repos can only be walked per workspace/org). Report unsupported rather than
|
|
316
|
+
// a silent empty page indistinguishable from "no repos"; for the account-wide case the caller should
|
|
317
|
+
// fan out per org from listOrgs instead.
|
|
318
|
+
return refusedPage(
|
|
319
|
+
page,
|
|
320
|
+
[
|
|
321
|
+
otherWarning(
|
|
322
|
+
options.providerId,
|
|
323
|
+
domain,
|
|
324
|
+
options.connectionId,
|
|
325
|
+
accountWide
|
|
326
|
+
? `Account-wide repository discovery is not supported by '${options.providerId}'; list repositories per org instead.`
|
|
327
|
+
: `Repository discovery is not supported by '${options.providerId}'.`,
|
|
328
|
+
),
|
|
329
|
+
],
|
|
330
|
+
true,
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
const org = options.org;
|
|
335
|
+
const warnOnMissingSession = warnOnMissingSessionForDomain(options.providerId, options.domain);
|
|
336
|
+
const readPage = (cursor: string | undefined) =>
|
|
337
|
+
runCaptured(
|
|
338
|
+
options.providerId,
|
|
339
|
+
domain,
|
|
340
|
+
options.connectionId,
|
|
341
|
+
() =>
|
|
342
|
+
org == null
|
|
343
|
+
? integration.getRepositoriesForUserResult({ cursor: cursor, connectionId: options.connectionId })
|
|
344
|
+
: integration.getRepositoriesForOrgResult(org, {
|
|
345
|
+
project: options.project,
|
|
346
|
+
cursor: cursor,
|
|
347
|
+
connectionId: options.connectionId,
|
|
348
|
+
}),
|
|
349
|
+
{ warnOnMissingSession: warnOnMissingSession },
|
|
350
|
+
);
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Builds one page's result from what the provider returned. Shared by the initial read and by every round of
|
|
354
|
+
* the cursor walk below, so a walked page N is described by exactly the same rules as a directly-requested one
|
|
355
|
+
* (position, continuation, truncation) rather than by a second copy of them.
|
|
356
|
+
*/
|
|
357
|
+
const toResult = (
|
|
358
|
+
{ value, warning }: Awaited<ReturnType<typeof readPage>>,
|
|
359
|
+
requestedPage: number,
|
|
360
|
+
suppliedCursor: string | undefined,
|
|
361
|
+
): ProviderPagedResult<ProviderRepositoryShape> => {
|
|
362
|
+
const items = value?.values ?? [];
|
|
363
|
+
const warnings = warning != null ? [warning] : [];
|
|
364
|
+
// The repos read core is cursor-only and can't accept a page size, so don't echo the requested
|
|
365
|
+
// `itemsPerPage` as if it were applied — report what the provider returned (its own pageSize when
|
|
366
|
+
// available, else the actual item count).
|
|
367
|
+
const paged = toProviderPageInfo(items.length, value?.paging);
|
|
368
|
+
// Convert the SDK collection metadata into scope-aware warnings + failure/truncation flags, appending
|
|
369
|
+
// them to any captured thrown-error warning without discarding the partial result's items.
|
|
370
|
+
const assessment = mergeAssessmentInto(
|
|
371
|
+
warnings,
|
|
372
|
+
options.providerId,
|
|
373
|
+
domain,
|
|
374
|
+
options.connectionId,
|
|
375
|
+
value?.metadata,
|
|
376
|
+
);
|
|
377
|
+
// Whether this read honors a page NUMBER, decided from what the provider actually reported rather than
|
|
378
|
+
// guessed from the absence of a cursor. A numbered-page repos host reports its position (`paging.page`)
|
|
379
|
+
// and/or its successor (`paging.nextPage`) — Bitbucket's workspace walk consumes `page` as a real 1-based
|
|
380
|
+
// page and reports `nextPage` without echoing `currentPage`, so both signals have to count. Every wired
|
|
381
|
+
// cursor-based repos read (GitHub's org/user walks, GitLab's user walk, Bitbucket's cursor read) reports
|
|
382
|
+
// neither. Keying off `paged.cursor == null` instead read the paging layer's "reported another page,
|
|
383
|
+
// handed back no continuation" sentinel as evidence of a numbered host, which is exactly backwards.
|
|
384
|
+
const pageAdvanceable = value?.paging?.page != null || value?.paging?.nextPage != null;
|
|
385
|
+
// Numbered-page hosts that don't echo `currentPage` may still be advanced by the requested `page` (initial
|
|
386
|
+
// read) or by the cursor the caller threaded back. A cursor-only host ignores an UNTHREADED `page`
|
|
387
|
+
// request, so its page-less first page is page 1.
|
|
388
|
+
const currentPage = resolveCurrentPage({
|
|
389
|
+
providerPage: paged.page.currentPage,
|
|
390
|
+
requestedPage: requestedPage,
|
|
391
|
+
suppliedCursor: suppliedCursor,
|
|
392
|
+
pageAdvanceable: pageAdvanceable,
|
|
393
|
+
});
|
|
394
|
+
// Never advertise `hasMore` without a continuation the caller can act on — the same contract
|
|
395
|
+
// `listPullRequestsPage`, `listIssuesPage` and `broadenIssues` hold, via the same helper. A provider that
|
|
396
|
+
// reports another page but hands back neither `endCursor` nor `nextPage` (surfaced as the `'{}'` sentinel,
|
|
397
|
+
// which `toProviderPageInfo` drops) is terminal-but-incomplete: `hasMore: false` + `page.truncated`.
|
|
398
|
+
// Synthesizing a page-number cursor for a cursor-only host instead — which is what this read used to do
|
|
399
|
+
// unconditionally — handed back a continuation the provider ignores, so it answered with its FIRST page
|
|
400
|
+
// again while still reporting `hasMore: true`. A consumer draining until `hasMore` clears (Kepler's repo
|
|
401
|
+
// drain does exactly that) then looped to its own page cap, accumulating a duplicate copy of every repo
|
|
402
|
+
// per round, and never saw a truncation signal.
|
|
403
|
+
const continuation = resolveContinuation(paged, pageAdvanceable ? currentPage + 1 : undefined);
|
|
404
|
+
// The org-hierarchy read can also stop at a defensive backstop with more repos unlisted and no cursor to
|
|
405
|
+
// resume (top-level `truncated`, or `paging.truncated` on a single-page read). Metadata incompleteness and
|
|
406
|
+
// a demoted continuation are two further, independent sources of the same signal.
|
|
407
|
+
const truncated =
|
|
408
|
+
(value?.truncated ?? false) ||
|
|
409
|
+
(value?.paging?.truncated ?? false) ||
|
|
410
|
+
assessment.truncated ||
|
|
411
|
+
continuation.truncated;
|
|
412
|
+
return {
|
|
413
|
+
// Normalize the raw provider-apis repos to the GitLens-owned shape at the surface boundary.
|
|
414
|
+
items: items.map(toProviderRepositoryShape),
|
|
415
|
+
warnings: warnings,
|
|
416
|
+
page: { ...paged.page, currentPage: currentPage, truncated: truncated || undefined },
|
|
417
|
+
hasMore: continuation.hasMore,
|
|
418
|
+
cursor: continuation.cursor,
|
|
419
|
+
fetchFailed: assessment.fetchFailed || (warning != null && value == null) || undefined,
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
const first = await readPage(options.cursor ?? pageToCursor(page));
|
|
424
|
+
const result = toResult(first, page, options.cursor);
|
|
425
|
+
// A numbered-page host honored the synthesized cursor, so this IS page N; a cursor-only host ignored it and
|
|
426
|
+
// answered with page 1, which the walk below advances. Decided from the provider's own paging metadata rather
|
|
427
|
+
// than assumed, hence after the read.
|
|
428
|
+
const pageAdvanceable = first.value?.paging?.page != null || first.value?.paging?.nextPage != null;
|
|
429
|
+
if (options.cursor != null || page === 1 || pageAdvanceable) return result;
|
|
430
|
+
|
|
431
|
+
// Walk the provider's real continuations to the requested page. Only the last page's items are kept — pages
|
|
432
|
+
// 1..N returned as "page N" would duplicate items for a normal paged consumer — while warnings, truncation,
|
|
433
|
+
// and failure accumulate across the whole walked prefix, since an earlier round's problem still means this
|
|
434
|
+
// result isn't authoritative. The provider read is re-issued per round, but the integration is resolved once:
|
|
435
|
+
// re-entering this function per page would repeat its auth resolution N times for page N.
|
|
436
|
+
const walkedWarnings = [...result.warnings];
|
|
437
|
+
let walkedFetchFailed = result.fetchFailed === true;
|
|
438
|
+
let walkedTruncated = result.page.truncated === true;
|
|
439
|
+
let previous = result;
|
|
440
|
+
for (let currentPage = 2; currentPage <= page; currentPage++) {
|
|
441
|
+
if (!previous.hasMore || previous.cursor == null) {
|
|
442
|
+
// The requested page lies past the provider's terminal cursor: an EMPTY page N, never the last
|
|
443
|
+
// available page relabeled (see ProviderPageInfo.currentPage).
|
|
444
|
+
return {
|
|
445
|
+
items: [],
|
|
446
|
+
warnings: walkedWarnings,
|
|
447
|
+
page: { currentPage: page, itemsPerPage: 0, truncated: walkedTruncated || undefined },
|
|
448
|
+
hasMore: false,
|
|
449
|
+
fetchFailed: walkedFetchFailed || undefined,
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
const suppliedCursor = previous.cursor;
|
|
454
|
+
const requested = toResult(await readPage(suppliedCursor), currentPage, suppliedCursor);
|
|
455
|
+
for (const warning of requested.warnings) {
|
|
456
|
+
appendDedupedWarning(walkedWarnings, warning);
|
|
457
|
+
}
|
|
458
|
+
walkedFetchFailed ||= requested.fetchFailed === true;
|
|
459
|
+
walkedTruncated ||= requested.page.truncated === true;
|
|
460
|
+
if (currentPage === page) {
|
|
461
|
+
return {
|
|
462
|
+
...requested,
|
|
463
|
+
warnings: walkedWarnings,
|
|
464
|
+
page: { ...requested.page, truncated: walkedTruncated || undefined },
|
|
465
|
+
fetchFailed: walkedFetchFailed || undefined,
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
previous = requested;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
return result;
|
|
473
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { IssueResourceDescriptor, ResourceDescriptor } from '../../../git/models/resourceDescriptor.js';
|
|
2
|
+
import { IssuesCloudHostIntegrationId } from '../constants.js';
|
|
3
|
+
import type { IntegrationIds } from '../constants.js';
|
|
4
|
+
import type { ProviderOrganization, ProviderResult, ProviderWarning } from '../results.js';
|
|
5
|
+
import { appendDedupedWarning } from '../results.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Mapping of a provider's own hierarchy vocabulary onto the single {@link ProviderOrganization} shape the facade
|
|
9
|
+
* publishes.
|
|
10
|
+
*
|
|
11
|
+
* Providers disagree about what sits above a repo or an issue: git hosts have orgs (and Azure DevOps a project
|
|
12
|
+
* tier below that), while issue trackers have "resources" (Jira sites, Linear orgs, Trello workspaces) with
|
|
13
|
+
* projects beneath them. `listOrgs`/`listProjects` unify all of it, so these helpers exist to keep the
|
|
14
|
+
* per-provider shape-guessing — which field is the id, which is the display label, which resource is a
|
|
15
|
+
* project's parent — in one place instead of inline in those reads.
|
|
16
|
+
*
|
|
17
|
+
* Everything here reads through the base {@link ResourceDescriptor} (which only guarantees `key`) and casts to
|
|
18
|
+
* the concrete {@link IssueResourceDescriptor} for the optional `id`/`name`. That cast is why the fallbacks are
|
|
19
|
+
* spelled out rather than assumed.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/** The label to show for a resource: its name, else its id, else the key that is always present. */
|
|
23
|
+
export function resourceLabel(resource: ResourceDescriptor): string {
|
|
24
|
+
const typed = resource as IssueResourceDescriptor;
|
|
25
|
+
return typed.name ?? typed.id ?? resource.key;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Whether `org` addresses this resource by any of the identifiers a caller could reasonably have. */
|
|
29
|
+
export function resourceMatchesOrg(resource: ResourceDescriptor, org: string): boolean {
|
|
30
|
+
const typed = resource as IssueResourceDescriptor;
|
|
31
|
+
return resource.key === org || typed.id === org || typed.name === org;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The id of the RESOURCE a project belongs to, used to look up which account (and therefore which user) that
|
|
36
|
+
* project's issues should be scoped to. Falls back through the project's own identifiers because some providers
|
|
37
|
+
* (and test doubles) return project descriptors without naming their parent.
|
|
38
|
+
*/
|
|
39
|
+
export function resourceIdForProject(project: ResourceDescriptor): string | undefined {
|
|
40
|
+
const typed = project as IssueResourceDescriptor & { resourceId?: string };
|
|
41
|
+
return typed.resourceId ?? typed.id ?? project.key;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* A stable identity for one project across facade pages, for the retry/completed bookkeeping an issue-tracker
|
|
46
|
+
* cursor carries. All three identifiers are included rather than one preferred value: two trackers can reuse the
|
|
47
|
+
* same project id, so keying on a single field would collapse them into one entry.
|
|
48
|
+
*/
|
|
49
|
+
export function projectKey(project: ResourceDescriptor): string {
|
|
50
|
+
const typed = project as IssueResourceDescriptor & { resourceId?: string };
|
|
51
|
+
return JSON.stringify([typed.resourceId ?? '', typed.id ?? '', project.key]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Maps an issue-tracker resource descriptor to the unified {@link ProviderOrganization} org shape. `url` is
|
|
56
|
+
* synthesized when the descriptor carries none, rather than widening the shared `ProviderOrganization.url` to
|
|
57
|
+
* optional for the one provider family that may omit it.
|
|
58
|
+
*/
|
|
59
|
+
export function resourceToOrg(
|
|
60
|
+
providerId: IntegrationIds,
|
|
61
|
+
resource: ResourceDescriptor,
|
|
62
|
+
org?: string,
|
|
63
|
+
): ProviderOrganization {
|
|
64
|
+
const typed = resource as IssueResourceDescriptor & { url?: string };
|
|
65
|
+
return {
|
|
66
|
+
id: typed.id ?? resource.key,
|
|
67
|
+
providerId: providerId,
|
|
68
|
+
name: resourceLabel(resource),
|
|
69
|
+
...(org != null ? { org: org } : {}),
|
|
70
|
+
url: typed.url ?? '',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The resource a project belongs under, as a display label — the `org` of the project's unified org shape.
|
|
76
|
+
*
|
|
77
|
+
* A project doesn't reliably name its parent, so try each identifier it does carry against the resources that
|
|
78
|
+
* were read alongside it. When none matches but only ONE resource was in scope, that resource is the parent by
|
|
79
|
+
* construction. Trello is excluded: its boards have no enclosing resource to name.
|
|
80
|
+
*/
|
|
81
|
+
export function orgForProject(
|
|
82
|
+
providerId: IntegrationIds,
|
|
83
|
+
project: ResourceDescriptor,
|
|
84
|
+
resources: ResourceDescriptor[],
|
|
85
|
+
): string | undefined {
|
|
86
|
+
if (providerId === IssuesCloudHostIntegrationId.Trello) return undefined;
|
|
87
|
+
|
|
88
|
+
const typedProject = project as IssueResourceDescriptor & { resourceId?: string };
|
|
89
|
+
const parentMatch = [typedProject.resourceId, typedProject.id, project.key]
|
|
90
|
+
.filter((value): value is string => value != null)
|
|
91
|
+
.map(candidate => resources.find(resource => resourceMatchesOrg(resource, candidate)))
|
|
92
|
+
.find((resource): resource is ResourceDescriptor => resource != null);
|
|
93
|
+
|
|
94
|
+
return parentMatch != null
|
|
95
|
+
? resourceLabel(parentMatch)
|
|
96
|
+
: resources.length === 1
|
|
97
|
+
? resourceLabel(resources[0])
|
|
98
|
+
: undefined;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Stamps the provider onto an org the provider's own client produced. A git host's client fills the rest of the
|
|
103
|
+
* shape but doesn't know which integration id it was reached through — and on a self-managed host the same
|
|
104
|
+
* client serves several — so the fan-out attributes it here.
|
|
105
|
+
*/
|
|
106
|
+
export function withProviderContext(providerId: IntegrationIds, item: ProviderOrganization): ProviderOrganization {
|
|
107
|
+
return {
|
|
108
|
+
...item,
|
|
109
|
+
providerId: providerId,
|
|
110
|
+
...(item.org != null ? { org: item.org } : {}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Merges the per-provider slices of a hierarchy fan-out into one flat result.
|
|
116
|
+
*
|
|
117
|
+
* `ProviderResult` has no page object, so `fetchFailed` is its only non-authoritative signal — any slice that
|
|
118
|
+
* failed or came back incomplete has to set it, or a caller would treat a short list as the whole account.
|
|
119
|
+
* Warnings are deduped because the same account can surface under two ids in one fan-out.
|
|
120
|
+
*/
|
|
121
|
+
export function mergeHierarchyResults<T>(
|
|
122
|
+
results: readonly ({ items: T[]; warnings: ProviderWarning[]; fetchFailed: boolean } | undefined)[],
|
|
123
|
+
): ProviderResult<T> {
|
|
124
|
+
const items: T[] = [];
|
|
125
|
+
const warnings: ProviderWarning[] = [];
|
|
126
|
+
let fetchFailed = false;
|
|
127
|
+
for (const result of results) {
|
|
128
|
+
if (result == null) continue;
|
|
129
|
+
|
|
130
|
+
items.push(...result.items);
|
|
131
|
+
for (const warning of result.warnings) {
|
|
132
|
+
appendDedupedWarning(warnings, warning);
|
|
133
|
+
}
|
|
134
|
+
if (result.fetchFailed) {
|
|
135
|
+
fetchFailed = true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return { items: items, warnings: warnings, fetchFailed: fetchFailed || undefined };
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Rejects a hierarchy read whose scoped selectors have no provider to apply to. `connectionId` and `domain`
|
|
144
|
+
* both select among the connections OF a provider, so either one without `providerId` is ambiguous rather than
|
|
145
|
+
* merely redundant — the fan-out would have to guess which provider the caller meant, and silently picking one
|
|
146
|
+
* would read that connection's data under another provider's name.
|
|
147
|
+
*/
|
|
148
|
+
export function assertHierarchyReadTarget(
|
|
149
|
+
method: 'listOrgs' | 'listProjects',
|
|
150
|
+
options: { providerId?: IntegrationIds; connectionId?: string; domain?: string } | undefined,
|
|
151
|
+
): void {
|
|
152
|
+
if (options?.providerId == null && (options?.connectionId != null || options?.domain != null)) {
|
|
153
|
+
throw new TypeError(`'${method}' requires 'providerId' when 'connectionId' or 'domain' is supplied`);
|
|
154
|
+
}
|
|
155
|
+
}
|