@gitkraken/core-gitlens 0.5.116 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/README.md +9 -2
- package/dist/_virtual/@oxc-project+runtime/helpers/esm/decorate.js +9 -0
- package/dist/_virtual/@oxc-project+runtime/helpers/esm/usingCtx.js +57 -0
- package/dist/git/cache.d.ts +297 -297
- package/dist/git/cache.js +948 -1276
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +202 -197
- package/dist/git/context.js +12 -8
- package/dist/git/context.js.map +1 -1
- package/dist/git/errors.d.ts +268 -281
- package/dist/git/errors.js +928 -706
- package/dist/git/errors.js.map +1 -1
- package/dist/git/features.d.ts +3 -2
- package/dist/git/features.js +34 -55
- package/dist/git/features.js.map +1 -1
- package/dist/git/gitHealth.d.ts +88 -81
- package/dist/git/gitHealth.js +259 -329
- package/dist/git/gitHealth.js.map +1 -1
- package/dist/git/models/author.d.ts +12 -10
- package/dist/git/models/author.js +0 -2
- package/dist/git/models/autolink.d.ts +36 -37
- package/dist/git/models/autolink.js +0 -2
- package/dist/git/models/blame.d.ts +25 -23
- package/dist/git/models/blame.js +0 -2
- package/dist/git/models/branch.d.ts +74 -72
- package/dist/git/models/branch.js +132 -171
- package/dist/git/models/branch.js.map +1 -1
- package/dist/git/models/commit.d.ts +135 -133
- package/dist/git/models/commit.js +381 -484
- package/dist/git/models/commit.js.map +1 -1
- package/dist/git/models/contributor.d.ts +30 -29
- package/dist/git/models/contributor.js +56 -64
- package/dist/git/models/contributor.js.map +1 -1
- package/dist/git/models/defaultBranch.d.ts +5 -3
- package/dist/git/models/defaultBranch.js +0 -2
- package/dist/git/models/diff.d.ts +49 -47
- package/dist/git/models/diff.js +0 -2
- package/dist/git/models/file.d.ts +20 -18
- package/dist/git/models/file.js +0 -2
- package/dist/git/models/fileChange.d.ts +45 -43
- package/dist/git/models/fileChange.js +60 -66
- package/dist/git/models/fileChange.js.map +1 -1
- package/dist/git/models/fileStatus.d.ts +25 -23
- package/dist/git/models/fileStatus.js +30 -26
- package/dist/git/models/fileStatus.js.map +1 -1
- package/dist/git/models/graph.d.ts +328 -320
- package/dist/git/models/graph.js +31 -27
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/graphSearch.d.ts +37 -35
- package/dist/git/models/graphSearch.js +0 -2
- package/dist/git/models/graphSession.d.ts +158 -66
- package/dist/git/models/graphSession.js +72 -1
- package/dist/git/models/graphSession.js.map +1 -1
- package/dist/git/models/issue.d.ts +174 -140
- package/dist/git/models/issue.js +86 -84
- package/dist/git/models/issue.js.map +1 -1
- package/dist/git/models/issueOrPullRequest.d.ts +16 -14
- package/dist/git/models/issueOrPullRequest.js +0 -2
- package/dist/git/models/lineRange.d.ts +6 -4
- package/dist/git/models/lineRange.js +0 -2
- package/dist/git/models/log.d.ts +18 -16
- package/dist/git/models/log.js +0 -2
- package/dist/git/models/mergeConflicts.d.ts +17 -15
- package/dist/git/models/mergeConflicts.js +0 -2
- package/dist/git/models/patch.d.ts +14 -12
- package/dist/git/models/patch.js +0 -2
- package/dist/git/models/pausedOperationStatus.d.ts +42 -40
- package/dist/git/models/pausedOperationStatus.js +0 -2
- package/dist/git/models/pullRequest.d.ts +238 -230
- package/dist/git/models/pullRequest.js +151 -163
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/git/models/rebase.d.ts +30 -28
- package/dist/git/models/rebase.js +0 -2
- package/dist/git/models/reference.d.ts +57 -55
- package/dist/git/models/reference.js +0 -2
- package/dist/git/models/reflog.d.ts +29 -27
- package/dist/git/models/reflog.js +63 -82
- package/dist/git/models/reflog.js.map +1 -1
- package/dist/git/models/remote.d.ts +34 -32
- package/dist/git/models/remote.js +74 -95
- package/dist/git/models/remote.js.map +1 -1
- package/dist/git/models/remoteProvider.d.ts +86 -84
- package/dist/git/models/remoteProvider.js +145 -150
- package/dist/git/models/remoteProvider.js.map +1 -1
- package/dist/git/models/remoteResource.d.ts +58 -56
- package/dist/git/models/remoteResource.js +15 -12
- package/dist/git/models/remoteResource.js.map +1 -1
- package/dist/git/models/repository.d.ts +144 -142
- package/dist/git/models/repository.js +358 -406
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/repositoryChangeEvent.d.ts +8 -6
- package/dist/git/models/repositoryChangeEvent.js +26 -24
- package/dist/git/models/repositoryChangeEvent.js.map +1 -1
- package/dist/git/models/repositoryIdentities.d.ts +50 -46
- package/dist/git/models/repositoryIdentities.js +7 -5
- package/dist/git/models/repositoryIdentities.js.map +1 -1
- package/dist/git/models/repositoryMetadata.d.ts +9 -7
- package/dist/git/models/repositoryMetadata.js +0 -2
- package/dist/git/models/resourceDescriptor.d.ts +11 -9
- package/dist/git/models/resourceDescriptor.js +0 -2
- package/dist/git/models/revision.d.ts +2 -0
- package/dist/git/models/revision.js +8 -5
- package/dist/git/models/revision.js.map +1 -1
- package/dist/git/models/search.d.ts +48 -47
- package/dist/git/models/search.js +53 -49
- package/dist/git/models/search.js.map +1 -1
- package/dist/git/models/shortlog.d.ts +5 -3
- package/dist/git/models/shortlog.js +0 -2
- package/dist/git/models/signature.d.ts +28 -26
- package/dist/git/models/signature.js +0 -2
- package/dist/git/models/staging.d.ts +18 -16
- package/dist/git/models/staging.js +0 -2
- package/dist/git/models/stash.d.ts +5 -3
- package/dist/git/models/stash.js +0 -2
- package/dist/git/models/status.d.ts +51 -49
- package/dist/git/models/status.js +172 -205
- package/dist/git/models/status.js.map +1 -1
- package/dist/git/models/statusFile.d.ts +35 -34
- package/dist/git/models/statusFile.js +112 -125
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/models/tag.d.ts +34 -32
- package/dist/git/models/tag.js +64 -77
- package/dist/git/models/tag.js.map +1 -1
- package/dist/git/models/tree.d.ts +8 -6
- package/dist/git/models/tree.js +0 -2
- package/dist/git/models/user.d.ts +6 -4
- package/dist/git/models/user.js +0 -2
- package/dist/git/models/worktree.d.ts +50 -48
- package/dist/git/models/worktree.js +102 -133
- package/dist/git/models/worktree.js.map +1 -1
- package/dist/git/parsers/diffParser.d.ts +7 -5
- package/dist/git/parsers/diffParser.js +438 -587
- package/dist/git/parsers/diffParser.js.map +1 -1
- package/dist/git/parsers/rebaseTodoParser.d.ts +3 -1
- package/dist/git/parsers/rebaseTodoParser.js +165 -208
- package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
- package/dist/git/providers/blame.d.ts +12 -10
- package/dist/git/providers/blame.js +0 -2
- package/dist/git/providers/branches.d.ts +96 -94
- package/dist/git/providers/branches.js +0 -2
- package/dist/git/providers/commits.d.ts +105 -104
- package/dist/git/providers/commits.js +0 -2
- package/dist/git/providers/config.d.ts +80 -78
- package/dist/git/providers/config.js +0 -2
- package/dist/git/providers/contributors.d.ts +23 -21
- package/dist/git/providers/contributors.js +0 -2
- package/dist/git/providers/diff.d.ts +68 -66
- package/dist/git/providers/diff.js +0 -2
- package/dist/git/providers/graph.d.ts +73 -62
- package/dist/git/providers/graph.js +0 -2
- package/dist/git/providers/maintenance.d.ts +180 -178
- package/dist/git/providers/maintenance.js +0 -20
- package/dist/git/providers/operations.d.ts +114 -112
- package/dist/git/providers/operations.js +0 -2
- package/dist/git/providers/patch.d.ts +26 -24
- package/dist/git/providers/patch.js +0 -2
- package/dist/git/providers/pausedOperations.d.ts +19 -17
- package/dist/git/providers/pausedOperations.js +0 -2
- package/dist/git/providers/provider.d.ts +52 -50
- package/dist/git/providers/provider.js +0 -2
- package/dist/git/providers/refs.d.ts +42 -40
- package/dist/git/providers/refs.js +0 -2
- package/dist/git/providers/remotes.d.ts +24 -22
- package/dist/git/providers/remotes.js +0 -2
- package/dist/git/providers/revision.d.ts +25 -23
- package/dist/git/providers/revision.js +0 -2
- package/dist/git/providers/shared/remotes.d.ts +24 -22
- package/dist/git/providers/shared/remotes.js +52 -77
- package/dist/git/providers/shared/remotes.js.map +1 -1
- package/dist/git/providers/staging.d.ts +37 -35
- package/dist/git/providers/staging.js +0 -2
- package/dist/git/providers/stash.d.ts +38 -36
- package/dist/git/providers/stash.js +0 -2
- package/dist/git/providers/status.d.ts +32 -30
- package/dist/git/providers/status.js +0 -2
- package/dist/git/providers/tags.d.ts +20 -18
- package/dist/git/providers/tags.js +0 -2
- package/dist/git/providers/types.d.ts +19 -17
- package/dist/git/providers/types.js +0 -2
- package/dist/git/providers/worktrees.d.ts +26 -24
- package/dist/git/providers/worktrees.js +0 -2
- package/dist/git/remotes/azure-devops.d.ts +49 -38
- package/dist/git/remotes/azure-devops.js +254 -224
- package/dist/git/remotes/azure-devops.js.map +1 -1
- package/dist/git/remotes/bitbucket-server.d.ts +30 -29
- package/dist/git/remotes/bitbucket-server.js +141 -142
- package/dist/git/remotes/bitbucket-server.js.map +1 -1
- package/dist/git/remotes/bitbucket.d.ts +27 -26
- package/dist/git/remotes/bitbucket.js +114 -111
- package/dist/git/remotes/bitbucket.js.map +1 -1
- package/dist/git/remotes/custom.d.ts +26 -25
- package/dist/git/remotes/custom.js +130 -130
- package/dist/git/remotes/custom.js.map +1 -1
- package/dist/git/remotes/gerrit.d.ts +29 -28
- package/dist/git/remotes/gerrit.js +140 -143
- package/dist/git/remotes/gerrit.js.map +1 -1
- package/dist/git/remotes/gitea.d.ts +28 -27
- package/dist/git/remotes/gitea.js +141 -145
- package/dist/git/remotes/gitea.js.map +1 -1
- package/dist/git/remotes/github.d.ts +35 -34
- package/dist/git/remotes/github.js +196 -190
- package/dist/git/remotes/github.js.map +1 -1
- package/dist/git/remotes/gitlab.d.ts +31 -30
- package/dist/git/remotes/gitlab.js +245 -227
- package/dist/git/remotes/gitlab.js.map +1 -1
- package/dist/git/remotes/google-source.d.ts +16 -14
- package/dist/git/remotes/google-source.js +33 -31
- package/dist/git/remotes/google-source.js.map +1 -1
- package/dist/git/remotes/matcher.d.ts +16 -14
- package/dist/git/remotes/matcher.js +141 -124
- package/dist/git/remotes/matcher.js.map +1 -1
- package/dist/git/repositoryService.d.ts +47 -47
- package/dist/git/repositoryService.js +47 -44
- package/dist/git/repositoryService.js.map +1 -1
- package/dist/git/run.types.d.ts +91 -76
- package/dist/git/run.types.js +0 -2
- package/dist/git/service.d.ts +73 -71
- package/dist/git/service.js +286 -302
- package/dist/git/service.js.map +1 -1
- package/dist/git/utils/autolink.utils.d.ts +4 -2
- package/dist/git/utils/autolink.utils.js +103 -139
- package/dist/git/utils/autolink.utils.js.map +1 -1
- package/dist/git/utils/blame.utils.d.ts +22 -20
- package/dist/git/utils/blame.utils.js +196 -230
- package/dist/git/utils/blame.utils.js.map +1 -1
- package/dist/git/utils/branch.utils.d.ts +7 -9
- package/dist/git/utils/branch.utils.js +89 -115
- package/dist/git/utils/branch.utils.js.map +1 -1
- package/dist/git/utils/commit.utils.d.ts +10 -16
- package/dist/git/utils/commit.utils.js +28 -47
- package/dist/git/utils/commit.utils.js.map +1 -1
- package/dist/git/utils/config.utils.d.ts +2 -0
- package/dist/git/utils/config.utils.js +14 -5
- package/dist/git/utils/config.utils.js.map +1 -1
- package/dist/git/utils/conflictResolution.utils.d.ts +16 -13
- package/dist/git/utils/conflictResolution.utils.js +116 -113
- package/dist/git/utils/conflictResolution.utils.js.map +1 -1
- package/dist/git/utils/contributor.utils.d.ts +10 -8
- package/dist/git/utils/contributor.utils.js +47 -69
- package/dist/git/utils/contributor.utils.js.map +1 -1
- package/dist/git/utils/fetch.utils.d.ts +2 -0
- package/dist/git/utils/fetch.utils.js +33 -44
- package/dist/git/utils/fetch.utils.js.map +1 -1
- package/dist/git/utils/fileStatus.utils.d.ts +22 -21
- package/dist/git/utils/fileStatus.utils.js +59 -45
- package/dist/git/utils/fileStatus.utils.js.map +1 -1
- package/dist/git/utils/graph.utils.d.ts +19 -1
- package/dist/git/utils/graph.utils.js +60 -35
- package/dist/git/utils/graph.utils.js.map +1 -1
- package/dist/git/utils/issue.utils.d.ts +3 -1
- package/dist/git/utils/issue.utils.js +154 -149
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/issueOrPullRequest.utils.d.ts +3 -1
- package/dist/git/utils/issueOrPullRequest.utils.js +23 -20
- package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
- package/dist/git/utils/mergeConflicts.utils.d.ts +4 -1
- package/dist/git/utils/mergeConflicts.utils.js +28 -15
- package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts +7 -42
- package/dist/git/utils/pausedOperationStatus.utils.js +83 -146
- package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
- package/dist/git/utils/pullRequest.utils.d.ts +7 -5
- package/dist/git/utils/pullRequest.utils.js +180 -187
- package/dist/git/utils/pullRequest.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +6 -6
- package/dist/git/utils/reachability.utils.js +120 -147
- package/dist/git/utils/reachability.utils.js.map +1 -1
- package/dist/git/utils/rebase.utils.d.ts +3 -1
- package/dist/git/utils/rebase.utils.js +87 -71
- package/dist/git/utils/rebase.utils.js.map +1 -1
- package/dist/git/utils/reference.utils.d.ts +33 -32
- package/dist/git/utils/reference.utils.js +152 -179
- package/dist/git/utils/reference.utils.js.map +1 -1
- package/dist/git/utils/remote.utils.d.ts +5 -3
- package/dist/git/utils/remote.utils.js +77 -116
- package/dist/git/utils/remote.utils.js.map +1 -1
- package/dist/git/utils/repository.utils.d.ts +3 -1
- package/dist/git/utils/repository.utils.js +12 -11
- package/dist/git/utils/repository.utils.js.map +1 -1
- package/dist/git/utils/resourceDescriptor.utils.d.ts +3 -1
- package/dist/git/utils/resourceDescriptor.utils.js +8 -14
- package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
- package/dist/git/utils/revision.utils.d.ts +11 -10
- package/dist/git/utils/revision.utils.js +69 -83
- package/dist/git/utils/revision.utils.js.map +1 -1
- package/dist/git/utils/search.utils.d.ts +5 -3
- package/dist/git/utils/search.utils.js +383 -522
- package/dist/git/utils/search.utils.js.map +1 -1
- package/dist/git/utils/sorting.d.ts +22 -20
- package/dist/git/utils/sorting.js +133 -227
- package/dist/git/utils/sorting.js.map +1 -1
- package/dist/git/utils/sshKey.utils.d.ts +2 -0
- package/dist/git/utils/sshKey.utils.js +10 -15
- package/dist/git/utils/sshKey.utils.js.map +1 -1
- package/dist/git/utils/status.utils.d.ts +20 -15
- package/dist/git/utils/status.utils.js +93 -79
- package/dist/git/utils/status.utils.js.map +1 -1
- package/dist/git/utils/statusFile.utils.d.ts +6 -4
- package/dist/git/utils/statusFile.utils.js +71 -72
- package/dist/git/utils/statusFile.utils.js.map +1 -1
- package/dist/git/utils/tag.utils.d.ts +4 -2
- package/dist/git/utils/tag.utils.js +10 -8
- package/dist/git/utils/tag.utils.js.map +1 -1
- package/dist/git/utils/tooltip.utils.d.ts +5 -2
- package/dist/git/utils/tooltip.utils.js +49 -24
- package/dist/git/utils/tooltip.utils.js.map +1 -1
- package/dist/git/utils/uriAuthority.d.ts +9 -7
- package/dist/git/utils/uriAuthority.js +19 -16
- package/dist/git/utils/uriAuthority.js.map +1 -1
- package/dist/git/utils/user.utils.d.ts +3 -1
- package/dist/git/utils/user.utils.js +6 -10
- package/dist/git/utils/user.utils.js.map +1 -1
- package/dist/git/utils/worktree.utils.d.ts +5 -3
- package/dist/git/utils/worktree.utils.js +14 -12
- package/dist/git/utils/worktree.utils.js.map +1 -1
- package/dist/git/watching/changeEvent.d.ts +38 -36
- package/dist/git/watching/changeEvent.js +60 -67
- package/dist/git/watching/changeEvent.js.map +1 -1
- package/dist/git/watching/classifyChange.d.ts +3 -1
- package/dist/git/watching/classifyChange.js +50 -79
- package/dist/git/watching/classifyChange.js.map +1 -1
- package/dist/git/watching/gitIgnoreFilter.d.ts +43 -41
- package/dist/git/watching/gitIgnoreFilter.js +92 -107
- package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
- package/dist/git/watching/initWatcher.d.ts +22 -20
- package/dist/git/watching/initWatcher.js +58 -57
- package/dist/git/watching/initWatcher.js.map +1 -1
- package/dist/git/watching/provider.d.ts +8 -7
- package/dist/git/watching/provider.js +0 -2
- package/dist/git/watching/watchGroup.d.ts +29 -28
- package/dist/git/watching/watchGroup.js +105 -137
- package/dist/git/watching/watchGroup.js.map +1 -1
- package/dist/git/watching/watchService.d.ts +70 -68
- package/dist/git/watching/watchService.js +275 -339
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +112 -111
- package/dist/git/watching/watchSession.js +260 -314
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git/watching/watcherPatterns.d.ts +4 -2
- package/dist/git/watching/watcherPatterns.js +21 -24
- package/dist/git/watching/watcherPatterns.js.map +1 -1
- package/dist/git-cli/cliGitProvider.d.ts +117 -114
- package/dist/git-cli/cliGitProvider.js +261 -283
- package/dist/git-cli/cliGitProvider.js.map +1 -1
- package/dist/git-cli/exec/eventLoopMonitor.d.ts +26 -0
- package/dist/git-cli/exec/eventLoopMonitor.js +61 -0
- package/dist/git-cli/exec/eventLoopMonitor.js.map +1 -0
- package/dist/git-cli/exec/exec.d.ts +3 -4
- package/dist/git-cli/exec/exec.errors.d.ts +2 -2
- package/dist/git-cli/exec/exec.errors.js +2 -2
- package/dist/git-cli/exec/exec.js +3 -3
- package/dist/git-cli/exec/exec.types.d.ts +2 -2
- package/dist/git-cli/exec/exec.types.js +0 -2
- package/dist/git-cli/exec/features.d.ts +2 -3
- package/dist/git-cli/exec/features.js +2 -2
- package/dist/git-cli/exec/git.d.ts +224 -205
- package/dist/git-cli/exec/git.js +834 -1042
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/exec/gitQueue.d.ts +51 -48
- package/dist/git-cli/exec/gitQueue.js +225 -260
- package/dist/git-cli/exec/gitQueue.js.map +1 -1
- package/dist/git-cli/exec/locator.d.ts +8 -6
- package/dist/git-cli/exec/locator.js +95 -121
- package/dist/git-cli/exec/locator.js.map +1 -1
- package/dist/git-cli/parsers/blameParser.d.ts +22 -20
- package/dist/git-cli/parsers/blameParser.js +238 -332
- package/dist/git-cli/parsers/blameParser.js.map +1 -1
- package/dist/git-cli/parsers/indexParser.d.ts +3 -1
- package/dist/git-cli/parsers/indexParser.js +146 -221
- package/dist/git-cli/parsers/indexParser.js.map +1 -1
- package/dist/git-cli/parsers/logParser.d.ts +103 -110
- package/dist/git-cli/parsers/logParser.js +998 -1199
- package/dist/git-cli/parsers/logParser.js.map +1 -1
- package/dist/git-cli/parsers/mergeTreeParser.d.ts +5 -3
- package/dist/git-cli/parsers/mergeTreeParser.js +28 -72
- package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
- package/dist/git-cli/parsers/refParser.d.ts +5 -4
- package/dist/git-cli/parsers/refParser.js +92 -137
- package/dist/git-cli/parsers/refParser.js.map +1 -1
- package/dist/git-cli/parsers/reflogParser.d.ts +7 -6
- package/dist/git-cli/parsers/reflogParser.js +100 -173
- package/dist/git-cli/parsers/reflogParser.js.map +1 -1
- package/dist/git-cli/parsers/remoteParser.d.ts +4 -2
- package/dist/git-cli/parsers/remoteParser.js +74 -126
- package/dist/git-cli/parsers/remoteParser.js.map +1 -1
- package/dist/git-cli/parsers/shortlogParser.d.ts +4 -2
- package/dist/git-cli/parsers/shortlogParser.js +44 -49
- package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
- package/dist/git-cli/parsers/signatureParser.d.ts +3 -1
- package/dist/git-cli/parsers/signatureParser.js +82 -124
- package/dist/git-cli/parsers/signatureParser.js.map +1 -1
- package/dist/git-cli/parsers/sshSignatureParser.d.ts +5 -3
- package/dist/git-cli/parsers/sshSignatureParser.js +55 -64
- package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -1
- package/dist/git-cli/parsers/statusParser.d.ts +4 -2
- package/dist/git-cli/parsers/statusParser.js +148 -205
- package/dist/git-cli/parsers/statusParser.js.map +1 -1
- package/dist/git-cli/parsers/treeParser.d.ts +3 -1
- package/dist/git-cli/parsers/treeParser.js +57 -108
- package/dist/git-cli/parsers/treeParser.js.map +1 -1
- package/dist/git-cli/parsers/worktreeParser.d.ts +4 -3
- package/dist/git-cli/parsers/worktreeParser.js +76 -132
- package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
- package/dist/git-cli/providers/blame.d.ts +25 -23
- package/dist/git-cli/providers/blame.js +404 -413
- package/dist/git-cli/providers/blame.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts +117 -116
- package/dist/git-cli/providers/branches.js +1132 -1468
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commitFilesetUtils.d.ts +4 -2
- package/dist/git-cli/providers/commitFilesetUtils.js +36 -18
- package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +58 -56
- package/dist/git-cli/providers/commits.js +1084 -1423
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +129 -127
- package/dist/git-cli/providers/config.js +612 -831
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/contributors.d.ts +29 -28
- package/dist/git-cli/providers/contributors.js +246 -351
- package/dist/git-cli/providers/contributors.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts +97 -94
- package/dist/git-cli/providers/diff.js +638 -845
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +66 -68
- package/dist/git-cli/providers/graph.js +1400 -1848
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/maintenance.d.ts +305 -303
- package/dist/git-cli/providers/maintenance.js +1526 -2078
- package/dist/git-cli/providers/maintenance.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts +96 -94
- package/dist/git-cli/providers/operations.js +664 -724
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/patch.d.ts +37 -35
- package/dist/git-cli/providers/patch.js +206 -307
- package/dist/git-cli/providers/patch.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +30 -28
- package/dist/git-cli/providers/pausedOperations.js +475 -506
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/refs.d.ts +50 -48
- package/dist/git-cli/providers/refs.js +335 -479
- package/dist/git-cli/providers/refs.js.map +1 -1
- package/dist/git-cli/providers/remotes.d.ts +23 -21
- package/dist/git-cli/providers/remotes.js +71 -92
- package/dist/git-cli/providers/remotes.js.map +1 -1
- package/dist/git-cli/providers/revision.d.ts +27 -25
- package/dist/git-cli/providers/revision.js +288 -304
- package/dist/git-cli/providers/revision.js.map +1 -1
- package/dist/git-cli/providers/staging.d.ts +31 -29
- package/dist/git-cli/providers/staging.js +140 -189
- package/dist/git-cli/providers/staging.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts +44 -42
- package/dist/git-cli/providers/stash.js +288 -387
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts +61 -59
- package/dist/git-cli/providers/status.js +332 -453
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/tags.d.ts +31 -29
- package/dist/git-cli/providers/tags.js +158 -215
- package/dist/git-cli/providers/tags.js.map +1 -1
- package/dist/git-cli/providers/worktrees.d.ts +35 -33
- package/dist/git-cli/providers/worktrees.js +178 -203
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/git-cli/service.d.ts +28 -26
- package/dist/git-cli/service.js +38 -40
- package/dist/git-cli/service.js.map +1 -1
- package/dist/ipc/discovery.d.ts +19 -17
- package/dist/ipc/discovery.js +104 -128
- package/dist/ipc/discovery.js.map +1 -1
- package/dist/ipc/ipcServer.d.ts +16 -14
- package/dist/ipc/ipcServer.js +139 -160
- package/dist/ipc/ipcServer.js.map +1 -1
- package/dist/plus/agents/agentCapabilities.d.ts +50 -37
- package/dist/plus/agents/agentCapabilities.js +138 -173
- package/dist/plus/agents/agentCapabilities.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +153 -151
- package/dist/plus/agents/providers/claudeCodeTranscript.js +605 -679
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
- package/dist/plus/agents/providers/gkAgentProvider.d.ts +237 -240
- package/dist/plus/agents/providers/gkAgentProvider.js +2162 -3334
- package/dist/plus/agents/providers/gkAgentProvider.js.map +1 -1
- package/dist/plus/agents/sanitizePrompt.d.ts +2 -0
- package/dist/plus/agents/sanitizePrompt.js +58 -91
- package/dist/plus/agents/sanitizePrompt.js.map +1 -1
- package/dist/plus/agents/stateMachine.d.ts +7 -5
- package/dist/plus/agents/stateMachine.js +135 -163
- package/dist/plus/agents/stateMachine.js.map +1 -1
- package/dist/plus/agents/types.d.ts +333 -336
- package/dist/plus/agents/types.js +48 -48
- package/dist/plus/agents/types.js.map +1 -1
- package/dist/plus/ai/constants.d.ts +3 -1
- package/dist/plus/ai/constants.js +88 -84
- package/dist/plus/ai/constants.js.map +1 -1
- package/dist/plus/ai/errors.d.ts +22 -18
- package/dist/plus/ai/errors.js +158 -138
- package/dist/plus/ai/errors.js.map +1 -1
- package/dist/plus/ai/models/conversation.d.ts +11 -9
- package/dist/plus/ai/models/conversation.js +30 -26
- package/dist/plus/ai/models/conversation.js.map +1 -1
- package/dist/plus/ai/models/model.d.ts +29 -27
- package/dist/plus/ai/models/model.js +663 -471
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +56 -55
- package/dist/plus/ai/models/promptTemplates.js +0 -2
- package/dist/plus/ai/models/provider.d.ts +79 -77
- package/dist/plus/ai/models/provider.js +0 -2
- package/dist/plus/ai/models/results.d.ts +27 -21
- package/dist/plus/ai/models/results.js +0 -2
- package/dist/plus/ai/prompts.d.ts +4 -2
- package/dist/plus/ai/prompts.js +301 -190
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts +33 -32
- package/dist/plus/ai/providers/anthropicProvider.js +484 -381
- package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
- package/dist/plus/ai/providers/azureProvider.d.ts +18 -16
- package/dist/plus/ai/providers/azureProvider.js +53 -53
- package/dist/plus/ai/providers/azureProvider.js.map +1 -1
- package/dist/plus/ai/providers/context.d.ts +23 -20
- package/dist/plus/ai/providers/context.js +0 -2
- package/dist/plus/ai/providers/deepSeekProvider.d.ts +17 -15
- package/dist/plus/ai/providers/deepSeekProvider.js +45 -39
- package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts +16 -14
- package/dist/plus/ai/providers/geminiProvider.js +316 -230
- package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts +22 -20
- package/dist/plus/ai/providers/gitkrakenProvider.js +165 -260
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts +16 -14
- package/dist/plus/ai/providers/huggingFaceProvider.js +45 -46
- package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts +22 -20
- package/dist/plus/ai/providers/mistralProvider.js +263 -195
- package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts +26 -24
- package/dist/plus/ai/providers/ollamaProvider.js +156 -189
- package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts +18 -16
- package/dist/plus/ai/providers/openAICompatibleProvider.js +50 -50
- package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +187 -185
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +356 -475
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts +20 -19
- package/dist/plus/ai/providers/openRouterProvider.js +60 -65
- package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts +17 -15
- package/dist/plus/ai/providers/openaiProvider.js +35 -34
- package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
- package/dist/plus/ai/providers/responseFormatCache.d.ts +4 -2
- package/dist/plus/ai/providers/responseFormatCache.js +21 -17
- package/dist/plus/ai/providers/responseFormatCache.js.map +1 -1
- package/dist/plus/ai/providers/xaiProvider.d.ts +16 -14
- package/dist/plus/ai/providers/xaiProvider.js +61 -46
- package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts +4 -2
- package/dist/plus/ai/utils/ai.utils.js +50 -77
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/ai/utils/results.utils.d.ts +7 -5
- package/dist/plus/ai/utils/results.utils.js +235 -269
- package/dist/plus/ai/utils/results.utils.js.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts +3 -2
- package/dist/plus/ai/utils/truncation.utils.js +242 -205
- package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
- package/dist/plus/git-github/api/config.d.ts +58 -56
- package/dist/plus/git-github/api/config.js +15 -11
- package/dist/plus/git-github/api/config.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +500 -497
- package/dist/plus/git-github/api/github.js +2326 -3121
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/github.utils.d.ts +5 -3
- package/dist/plus/git-github/api/github.utils.js +24 -19
- package/dist/plus/git-github/api/github.utils.js.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts +5 -3
- package/dist/plus/git-github/api/issueSearchQuery.js +204 -221
- package/dist/plus/git-github/api/issueSearchQuery.js.map +1 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +6 -5
- package/dist/plus/git-github/api/pullRequestSearchQuery.js +89 -116
- package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -1
- package/dist/plus/git-github/api/token.d.ts +10 -8
- package/dist/plus/git-github/api/token.js +0 -2
- package/dist/plus/git-github/api/tokenUtils.d.ts +4 -2
- package/dist/plus/git-github/api/tokenUtils.js +14 -10
- package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
- package/dist/plus/git-github/api/types.d.ts +94 -92
- package/dist/plus/git-github/api/types.js +0 -2
- package/dist/plus/git-github/context.d.ts +65 -63
- package/dist/plus/git-github/context.js +13 -9
- package/dist/plus/git-github/context.js.map +1 -1
- package/dist/plus/git-github/models.d.ts +182 -182
- package/dist/plus/git-github/models.js +199 -265
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/blame.d.ts +32 -31
- package/dist/plus/git-github/providers/github/blame.js +137 -150
- package/dist/plus/git-github/providers/github/blame.js.map +1 -1
- package/dist/plus/git-github/providers/github/branches.d.ts +42 -40
- package/dist/plus/git-github/providers/github/branches.js +199 -274
- package/dist/plus/git-github/providers/github/branches.js.map +1 -1
- package/dist/plus/git-github/providers/github/commits.d.ts +35 -33
- package/dist/plus/git-github/providers/github/commits.js +527 -606
- package/dist/plus/git-github/providers/github/commits.js.map +1 -1
- package/dist/plus/git-github/providers/github/config.d.ts +10 -8
- package/dist/plus/git-github/providers/github/config.js +35 -45
- package/dist/plus/git-github/providers/github/config.js.map +1 -1
- package/dist/plus/git-github/providers/github/contributors.d.ts +25 -24
- package/dist/plus/git-github/providers/github/contributors.js +174 -216
- package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
- package/dist/plus/git-github/providers/github/diff.d.ts +34 -32
- package/dist/plus/git-github/providers/github/diff.js +154 -194
- package/dist/plus/git-github/providers/github/diff.js.map +1 -1
- package/dist/plus/git-github/providers/github/graph.d.ts +33 -31
- package/dist/plus/git-github/providers/github/graph.js +400 -452
- package/dist/plus/git-github/providers/github/graph.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.d.ts +33 -31
- package/dist/plus/git-github/providers/github/refs.js +97 -131
- package/dist/plus/git-github/providers/github/refs.js.map +1 -1
- package/dist/plus/git-github/providers/github/remotes.d.ts +8 -6
- package/dist/plus/git-github/providers/github/remotes.js +30 -35
- package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
- package/dist/plus/git-github/providers/github/revision.d.ts +13 -11
- package/dist/plus/git-github/providers/github/revision.js +106 -129
- package/dist/plus/git-github/providers/github/revision.js.map +1 -1
- package/dist/plus/git-github/providers/github/status.d.ts +24 -22
- package/dist/plus/git-github/providers/github/status.js +49 -47
- package/dist/plus/git-github/providers/github/status.js.map +1 -1
- package/dist/plus/git-github/providers/github/tags.d.ts +21 -19
- package/dist/plus/git-github/providers/github/tags.js +78 -103
- package/dist/plus/git-github/providers/github/tags.js.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts +67 -64
- package/dist/plus/git-github/providers/githubGitProvider.js +131 -128
- package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
- package/dist/plus/git-github/providers/githubProvider.d.ts +46 -44
- package/dist/plus/git-github/providers/githubProvider.js +0 -2
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +29 -27
- package/dist/plus/integrations/authentication/cloudIntegrationService.js +173 -208
- package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +126 -107
- package/dist/plus/integrations/authentication/configuredIntegrationService.js +399 -497
- package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +73 -72
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +153 -232
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +61 -59
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js +100 -124
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +14 -12
- package/dist/plus/integrations/authentication/manualTokenProvider.js +26 -51
- package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/models.d.ts +102 -85
- package/dist/plus/integrations/authentication/models.js +55 -54
- package/dist/plus/integrations/authentication/models.js.map +1 -1
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts +19 -17
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js +53 -51
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js.map +1 -1
- package/dist/plus/integrations/collectionMetadata.d.ts +12 -10
- package/dist/plus/integrations/collectionMetadata.js +204 -254
- package/dist/plus/integrations/collectionMetadata.js.map +1 -1
- package/dist/plus/integrations/constants.d.ts +60 -34
- package/dist/plus/integrations/constants.js +157 -132
- package/dist/plus/integrations/constants.js.map +1 -1
- package/dist/plus/integrations/context.d.ts +253 -252
- package/dist/plus/integrations/context.js +0 -2
- package/dist/plus/integrations/errors.d.ts +26 -25
- package/dist/plus/integrations/errors.js +116 -140
- package/dist/plus/integrations/errors.js.map +1 -1
- package/dist/plus/integrations/index.d.ts +36 -40
- package/dist/plus/integrations/index.js +46 -57
- package/dist/plus/integrations/index.js.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +445 -440
- package/dist/plus/integrations/integrationService.js +1054 -1324
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/lite.d.ts +33 -31
- package/dist/plus/integrations/lite.js +84 -122
- package/dist/plus/integrations/lite.js.map +1 -1
- package/dist/plus/integrations/manager.d.ts +592 -580
- package/dist/plus/integrations/manager.js +0 -2
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +420 -415
- package/dist/plus/integrations/models/gitHostIntegration.js +1180 -1293
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +200 -190
- package/dist/plus/integrations/models/integration.js +577 -722
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issueCache.d.ts +15 -13
- package/dist/plus/integrations/models/issueCache.js +9 -7
- package/dist/plus/integrations/models/issueCache.js.map +1 -1
- package/dist/plus/integrations/models/issueReads.d.ts +108 -85
- package/dist/plus/integrations/models/issueReads.js +0 -2
- package/dist/plus/integrations/models/issuesIntegration.d.ts +72 -71
- package/dist/plus/integrations/models/issuesIntegration.js +160 -186
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/models/pullRequestReads.d.ts +9 -7
- package/dist/plus/integrations/models/pullRequestReads.js +0 -2
- package/dist/plus/integrations/providerFilters.d.ts +8 -20
- package/dist/plus/integrations/providerFilters.js +11 -7
- package/dist/plus/integrations/providerFilters.js.map +1 -1
- package/dist/plus/integrations/providers/accounts.d.ts +7 -5
- package/dist/plus/integrations/providers/accounts.js +21 -31
- package/dist/plus/integrations/providers/accounts.js.map +1 -1
- package/dist/plus/integrations/providers/apiClients.d.ts +13 -10
- package/dist/plus/integrations/providers/apiClients.js +51 -36
- package/dist/plus/integrations/providers/apiClients.js.map +1 -1
- package/dist/plus/integrations/providers/apiConfig.d.ts +31 -29
- package/dist/plus/integrations/providers/apiConfig.js +18 -16
- package/dist/plus/integrations/providers/apiConfig.js.map +1 -1
- package/dist/plus/integrations/providers/azure/azure.d.ts +69 -54
- package/dist/plus/integrations/providers/azure/azure.js +453 -515
- package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
- package/dist/plus/integrations/providers/azure/models.d.ts +258 -229
- package/dist/plus/integrations/providers/azure/models.js +241 -203
- package/dist/plus/integrations/providers/azure/models.js.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts +132 -130
- package/dist/plus/integrations/providers/azureDevOps.js +775 -921
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +50 -48
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js +417 -585
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts +179 -179
- package/dist/plus/integrations/providers/bitbucket/models.js +96 -144
- package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +111 -109
- package/dist/plus/integrations/providers/bitbucket-server/models.js +102 -121
- package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts +79 -79
- package/dist/plus/integrations/providers/bitbucket-server.js +205 -241
- package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts +80 -79
- package/dist/plus/integrations/providers/bitbucket.js +390 -477
- package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.d.ts +5 -3
- package/dist/plus/integrations/providers/github/github.js +38 -45
- package/dist/plus/integrations/providers/github/github.js.map +1 -1
- package/dist/plus/integrations/providers/github/github.utils.d.ts +8 -5
- package/dist/plus/integrations/providers/github/github.utils.js +7 -4
- package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
- package/dist/plus/integrations/providers/github/models.d.ts +2 -3
- package/dist/plus/integrations/providers/github/models.js +2 -2
- package/dist/plus/integrations/providers/github.d.ts +174 -172
- package/dist/plus/integrations/providers/github.js +431 -523
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +67 -66
- package/dist/plus/integrations/providers/gitlab/gitlab.js +546 -757
- package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +7 -5
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +45 -46
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab/models.d.ts +109 -107
- package/dist/plus/integrations/providers/gitlab/models.js +74 -89
- package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts +115 -114
- package/dist/plus/integrations/providers/gitlab.js +440 -528
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/issueSorts.d.ts +3 -1
- package/dist/plus/integrations/providers/issueSorts.js +66 -62
- package/dist/plus/integrations/providers/issueSorts.js.map +1 -1
- package/dist/plus/integrations/providers/jira-server.d.ts +90 -0
- package/dist/plus/integrations/providers/jira-server.js +322 -0
- package/dist/plus/integrations/providers/jira-server.js.map +1 -0
- package/dist/plus/integrations/providers/jira.d.ts +41 -39
- package/dist/plus/integrations/providers/jira.js +378 -440
- package/dist/plus/integrations/providers/jira.js.map +1 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +3 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.js +85 -89
- package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -1
- package/dist/plus/integrations/providers/linear.d.ts +63 -62
- package/dist/plus/integrations/providers/linear.js +315 -358
- package/dist/plus/integrations/providers/linear.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +514 -503
- package/dist/plus/integrations/providers/models.js +818 -856
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providerErrors.d.ts +35 -2
- package/dist/plus/integrations/providers/providerErrors.js +120 -81
- package/dist/plus/integrations/providers/providerErrors.js.map +1 -1
- package/dist/plus/integrations/providers/providersApi.d.ts +299 -271
- package/dist/plus/integrations/providers/providersApi.js +1048 -1001
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts +21 -21
- package/dist/plus/integrations/providers/pullRequestReviews.js +64 -90
- package/dist/plus/integrations/providers/pullRequestReviews.js.map +1 -1
- package/dist/plus/integrations/providers/trello.d.ts +35 -34
- package/dist/plus/integrations/providers/trello.js +136 -143
- package/dist/plus/integrations/providers/trello.js.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts +4 -2
- package/dist/plus/integrations/providers/utils/providerPaging.js +131 -156
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
- package/dist/plus/integrations/providers/utils.d.ts +51 -50
- package/dist/plus/integrations/providers/utils.js +185 -296
- package/dist/plus/integrations/providers/utils.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts +10 -8
- package/dist/plus/integrations/reads/broaden.js +320 -439
- package/dist/plus/integrations/reads/broaden.js.map +1 -1
- package/dist/plus/integrations/reads/context.d.ts +47 -45
- package/dist/plus/integrations/reads/context.js +0 -2
- package/dist/plus/integrations/reads/counts.d.ts +74 -72
- package/dist/plus/integrations/reads/counts.js +233 -314
- package/dist/plus/integrations/reads/counts.js.map +1 -1
- package/dist/plus/integrations/reads/cursors.d.ts +26 -24
- package/dist/plus/integrations/reads/cursors.js +80 -115
- package/dist/plus/integrations/reads/cursors.js.map +1 -1
- package/dist/plus/integrations/reads/drains.d.ts +24 -23
- package/dist/plus/integrations/reads/drains.js +225 -298
- package/dist/plus/integrations/reads/drains.js.map +1 -1
- package/dist/plus/integrations/reads/filters.d.ts +84 -80
- package/dist/plus/integrations/reads/filters.js +326 -414
- package/dist/plus/integrations/reads/filters.js.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.d.ts +14 -12
- package/dist/plus/integrations/reads/hierarchy.js +248 -332
- package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts +11 -9
- package/dist/plus/integrations/reads/hierarchy.utils.js +109 -108
- package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -1
- package/dist/plus/integrations/reads/issueBatch.d.ts +28 -26
- package/dist/plus/integrations/reads/issueBatch.js +83 -85
- package/dist/plus/integrations/reads/issueBatch.js.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts +42 -33
- package/dist/plus/integrations/reads/issueTracker.js +265 -386
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
- package/dist/plus/integrations/reads/issues.d.ts +50 -47
- package/dist/plus/integrations/reads/issues.js +202 -331
- package/dist/plus/integrations/reads/issues.js.map +1 -1
- package/dist/plus/integrations/reads/ordering.d.ts +32 -30
- package/dist/plus/integrations/reads/ordering.js +47 -43
- package/dist/plus/integrations/reads/ordering.js.map +1 -1
- package/dist/plus/integrations/reads/paging.d.ts +59 -57
- package/dist/plus/integrations/reads/paging.js +244 -261
- package/dist/plus/integrations/reads/paging.js.map +1 -1
- package/dist/plus/integrations/reads/pullRequests.d.ts +37 -35
- package/dist/plus/integrations/reads/pullRequests.js +95 -148
- package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
- package/dist/plus/integrations/reads/resolveRepository.d.ts +15 -13
- package/dist/plus/integrations/reads/resolveRepository.js +147 -229
- package/dist/plus/integrations/reads/resolveRepository.js.map +1 -1
- package/dist/plus/integrations/reads/searchIssues.d.ts +29 -27
- package/dist/plus/integrations/reads/searchIssues.js +104 -153
- package/dist/plus/integrations/reads/searchIssues.js.map +1 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts +20 -18
- package/dist/plus/integrations/reads/searchPullRequests.js +91 -113
- package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
- package/dist/plus/integrations/reads/sweeps.d.ts +6 -4
- package/dist/plus/integrations/reads/sweeps.js +143 -178
- package/dist/plus/integrations/reads/sweeps.js.map +1 -1
- package/dist/plus/integrations/reads/trackerIssue.d.ts +24 -16
- package/dist/plus/integrations/reads/trackerIssue.js +52 -49
- package/dist/plus/integrations/reads/trackerIssue.js.map +1 -1
- package/dist/plus/integrations/reads/warnings.d.ts +10 -7
- package/dist/plus/integrations/reads/warnings.js +264 -291
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/dist/plus/integrations/results.d.ts +201 -199
- package/dist/plus/integrations/results.js +105 -119
- package/dist/plus/integrations/results.js.map +1 -1
- package/dist/plus/integrations/telemetry.d.ts +7 -5
- package/dist/plus/integrations/telemetry.js +9 -9
- package/dist/plus/integrations/telemetry.js.map +1 -1
- package/dist/plus/integrations/utils/domain.utils.d.ts +21 -0
- package/dist/plus/integrations/utils/domain.utils.js +55 -22
- package/dist/plus/integrations/utils/domain.utils.js.map +1 -1
- package/dist/plus/integrations/utils/integration.utils.d.ts +30 -6
- package/dist/plus/integrations/utils/integration.utils.js +154 -161
- package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
- package/dist/utils/array.d.ts +9 -7
- package/dist/utils/array.js +110 -126
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/base64.d.ts +2 -2
- package/dist/utils/base64.js +2 -2
- package/dist/utils/brand.d.ts +4 -3
- package/dist/utils/brand.js +0 -2
- package/dist/utils/cancellation.d.ts +24 -24
- package/dist/utils/cancellation.js +152 -167
- package/dist/utils/cancellation.js.map +1 -1
- package/dist/utils/charCode.d.ts +31 -37
- package/dist/utils/charCode.js +41 -37
- package/dist/utils/charCode.js.map +1 -1
- package/dist/utils/coalescedRun.d.ts +10 -8
- package/dist/utils/coalescedRun.js +39 -41
- package/dist/utils/coalescedRun.js.map +1 -1
- package/dist/utils/color.d.ts +137 -135
- package/dist/utils/color.js +535 -660
- package/dist/utils/color.js.map +1 -1
- package/dist/utils/counter.d.ts +5 -3
- package/dist/utils/counter.js +19 -17
- package/dist/utils/counter.js.map +1 -1
- package/dist/utils/crypto.d.ts +2 -2
- package/dist/utils/crypto.js +2 -2
- package/dist/utils/date.d.ts +10 -9
- package/dist/utils/date.js +312 -350
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.d.ts +45 -43
- package/dist/utils/debounce.js +175 -206
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/decorators/debounce.d.ts +3 -1
- package/dist/utils/decorators/debounce.js +16 -19
- package/dist/utils/decorators/debounce.js.map +1 -1
- package/dist/utils/decorators/gate.d.ts +13 -11
- package/dist/utils/decorators/gate.js +97 -124
- package/dist/utils/decorators/gate.js.map +1 -1
- package/dist/utils/decorators/log.d.ts +25 -24
- package/dist/utils/decorators/log.js +166 -227
- package/dist/utils/decorators/log.js.map +1 -1
- package/dist/utils/decorators/memoize.d.ts +10 -8
- package/dist/utils/decorators/memoize.js +49 -57
- package/dist/utils/decorators/memoize.js.map +1 -1
- package/dist/utils/decorators/resolver.d.ts +2 -0
- package/dist/utils/decorators/resolver.js +64 -75
- package/dist/utils/decorators/resolver.js.map +1 -1
- package/dist/utils/decorators/sequentialize.d.ts +15 -14
- package/dist/utils/decorators/sequentialize.js +61 -80
- package/dist/utils/decorators/sequentialize.js.map +1 -1
- package/dist/utils/decorators/serializable.d.ts +2 -0
- package/dist/utils/decorators/serializable.js +30 -39
- package/dist/utils/decorators/serializable.js.map +1 -1
- package/dist/utils/dedupedAsyncCache.d.ts +23 -21
- package/dist/utils/dedupedAsyncCache.js +63 -66
- package/dist/utils/dedupedAsyncCache.js.map +1 -1
- package/dist/utils/diff.d.ts +2 -0
- package/dist/utils/diff.js +41 -51
- package/dist/utils/diff.js.map +1 -1
- package/dist/utils/disposable.d.ts +15 -13
- package/dist/utils/disposable.js +71 -80
- package/dist/utils/disposable.js.map +1 -1
- package/dist/utils/dom.d.ts +45 -0
- package/dist/utils/dom.js +106 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/encoding.d.ts +2 -0
- package/dist/utils/encoding.js +7 -5
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/env/browser/base64.d.ts +2 -0
- package/dist/utils/env/browser/base64.js +32 -34
- package/dist/utils/env/browser/base64.js.map +1 -1
- package/dist/utils/env/browser/crypto.d.ts +2 -0
- package/dist/utils/env/browser/crypto.js +17 -13
- package/dist/utils/env/browser/crypto.js.map +1 -1
- package/dist/utils/env/browser/fs.d.ts +2 -0
- package/dist/utils/env/browser/fs.js +6 -2
- package/dist/utils/env/browser/fs.js.map +1 -1
- package/dist/utils/env/browser/hex.d.ts +2 -0
- package/dist/utils/env/browser/hex.js +271 -29
- package/dist/utils/env/browser/hex.js.map +1 -1
- package/dist/utils/env/browser/hrtime.d.ts +2 -0
- package/dist/utils/env/browser/hrtime.js +17 -13
- package/dist/utils/env/browser/hrtime.js.map +1 -1
- package/dist/utils/env/browser/logScope.d.ts +3 -1
- package/dist/utils/env/browser/logScope.js +39 -43
- package/dist/utils/env/browser/logScope.js.map +1 -1
- package/dist/utils/env/browser/md5.d.ts +2 -0
- package/dist/utils/env/browser/md5.js +211 -184
- package/dist/utils/env/browser/md5.js.map +1 -1
- package/dist/utils/env/browser/platform.d.ts +3 -0
- package/dist/utils/env/browser/platform.js +11 -4
- package/dist/utils/env/browser/platform.js.map +1 -1
- package/dist/utils/env/node/base64.d.ts +2 -0
- package/dist/utils/env/node/base64.js +13 -11
- package/dist/utils/env/node/base64.js.map +1 -1
- package/dist/utils/env/node/crypto.d.ts +2 -0
- package/dist/utils/env/node/crypto.js +13 -9
- package/dist/utils/env/node/crypto.js.map +1 -1
- package/dist/utils/env/node/exec.d.ts +66 -65
- package/dist/utils/env/node/exec.js +255 -267
- package/dist/utils/env/node/exec.js.map +1 -1
- package/dist/utils/env/node/fs.d.ts +2 -0
- package/dist/utils/env/node/fs.js +7 -3
- package/dist/utils/env/node/fs.js.map +1 -1
- package/dist/utils/env/node/hex.d.ts +2 -0
- package/dist/utils/env/node/hex.js +10 -6
- package/dist/utils/env/node/hex.js.map +1 -1
- package/dist/utils/env/node/hrtime.d.ts +2 -2
- package/dist/utils/env/node/hrtime.js +2 -2
- package/dist/utils/env/node/logScope.d.ts +3 -1
- package/dist/utils/env/node/logScope.js +52 -42
- package/dist/utils/env/node/logScope.js.map +1 -1
- package/dist/utils/env/node/platform.d.ts +3 -0
- package/dist/utils/env/node/platform.js +11 -4
- package/dist/utils/env/node/platform.js.map +1 -1
- package/dist/utils/error.d.ts +8 -6
- package/dist/utils/error.js +16 -14
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/event.d.ts +27 -25
- package/dist/utils/event.js +141 -170
- package/dist/utils/event.js.map +1 -1
- package/dist/utils/formatter.d.ts +15 -14
- package/dist/utils/formatter.js +96 -129
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/fs.d.ts +2 -2
- package/dist/utils/fs.js +2 -2
- package/dist/utils/function.d.ts +5 -6
- package/dist/utils/function.js +73 -90
- package/dist/utils/function.js.map +1 -1
- package/dist/utils/fuzzy.d.ts +18 -16
- package/dist/utils/fuzzy.js +121 -127
- package/dist/utils/fuzzy.js.map +1 -1
- package/dist/utils/gitRefs.d.ts +11 -0
- package/dist/utils/gitRefs.js +21 -0
- package/dist/utils/gitRefs.js.map +1 -0
- package/dist/utils/hash.d.ts +2 -0
- package/dist/utils/hash.js +49 -47
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/hex.d.ts +2 -2
- package/dist/utils/hex.js +2 -2
- package/dist/utils/hostingServiceType.d.ts +8 -0
- package/dist/utils/hostingServiceType.js +0 -0
- package/dist/utils/hrtime.d.ts +4 -2
- package/dist/utils/hrtime.js +8 -5
- package/dist/utils/hrtime.js.map +1 -1
- package/dist/utils/iterable.d.ts +3 -1
- package/dist/utils/iterable.js +591 -616
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/keys/chord.d.ts +27 -25
- package/dist/utils/keys/chord.js +108 -122
- package/dist/utils/keys/chord.js.map +1 -1
- package/dist/utils/keys/keybinding.d.ts +98 -22
- package/dist/utils/keys/keybinding.js +151 -53
- package/dist/utils/keys/keybinding.js.map +1 -1
- package/dist/utils/keys/keymapDispatcher.d.ts +66 -0
- package/dist/utils/keys/keymapDispatcher.js +187 -0
- package/dist/utils/keys/keymapDispatcher.js.map +1 -0
- package/dist/utils/lazy.d.ts +14 -12
- package/dist/utils/lazy.js +35 -36
- package/dist/utils/lazy.js.map +1 -1
- package/dist/utils/loggable.d.ts +3 -1
- package/dist/utils/loggable.js +6 -2
- package/dist/utils/loggable.js.map +1 -1
- package/dist/utils/logger.d.ts +48 -46
- package/dist/utils/logger.js +219 -304
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/logger.scoped.d.ts +30 -28
- package/dist/utils/logger.scoped.js +133 -147
- package/dist/utils/logger.scoped.js.map +1 -1
- package/dist/utils/lruMap.d.ts +34 -32
- package/dist/utils/lruMap.js +97 -101
- package/dist/utils/lruMap.js.map +1 -1
- package/dist/utils/markdown.d.ts +5 -3
- package/dist/utils/markdown.js +52 -88
- package/dist/utils/markdown.js.map +1 -1
- package/dist/utils/mru.d.ts +13 -11
- package/dist/utils/mru.js +57 -62
- package/dist/utils/mru.js.map +1 -1
- package/dist/utils/object.d.ts +9 -34
- package/dist/utils/object.js +132 -191
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/paging.d.ts +36 -34
- package/dist/utils/paging.js +42 -45
- package/dist/utils/paging.js.map +1 -1
- package/dist/utils/path.d.ts +4 -1
- package/dist/utils/path.js +129 -162
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/pausedOperation.d.ts +42 -0
- package/dist/utils/pausedOperation.js +62 -0
- package/dist/utils/pausedOperation.js.map +1 -0
- package/dist/utils/platform.d.ts +2 -2
- package/dist/utils/platform.js +2 -2
- package/dist/utils/plural.d.ts +21 -0
- package/dist/utils/plural.js +136 -0
- package/dist/utils/plural.js.map +1 -0
- package/dist/utils/promise.d.ts +19 -18
- package/dist/utils/promise.js +323 -360
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/promiseCache.d.ts +331 -330
- package/dist/utils/promiseCache.js +602 -717
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/resourceUsage.d.ts +2 -0
- package/dist/utils/resourceUsage.js +0 -2
- package/dist/utils/searchTree.d.ts +51 -49
- package/dist/utils/searchTree.js +306 -396
- package/dist/utils/searchTree.js.map +1 -1
- package/dist/utils/stopwatch.d.ts +33 -32
- package/dist/utils/stopwatch.js +67 -81
- package/dist/utils/stopwatch.js.map +1 -1
- package/dist/utils/string.d.ts +17 -24
- package/dist/utils/string.js +787 -803
- package/dist/utils/string.js.map +1 -1
- package/dist/utils/subscriptionManager.d.ts +15 -14
- package/dist/utils/subscriptionManager.js +36 -33
- package/dist/utils/subscriptionManager.js.map +1 -1
- package/dist/utils/trie.d.ts +64 -62
- package/dist/utils/trie.js +438 -580
- package/dist/utils/trie.js.map +1 -1
- package/dist/utils/types.d.ts +8 -16
- package/dist/utils/types.js +0 -2
- package/dist/utils/uri.d.ts +27 -25
- package/dist/utils/uri.js +42 -42
- package/dist/utils/uri.js.map +1 -1
- package/dist/utils/validation.d.ts +13 -12
- package/dist/utils/validation.js +17 -23
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/version.d.ts +6 -5
- package/dist/utils/version.js +77 -104
- package/dist/utils/version.js.map +1 -1
- package/docs/integrations.md +101 -24
- package/docs/kepler-read-api-parity.md +15 -12
- package/package.json +18 -8
- package/dist/git/cache.d.ts.map +0 -1
- package/dist/git/context.d.ts.map +0 -1
- package/dist/git/errors.d.ts.map +0 -1
- package/dist/git/features.d.ts.map +0 -1
- package/dist/git/gitHealth.d.ts.map +0 -1
- package/dist/git/models/author.d.ts.map +0 -1
- package/dist/git/models/author.js.map +0 -1
- package/dist/git/models/autolink.d.ts.map +0 -1
- package/dist/git/models/autolink.js.map +0 -1
- package/dist/git/models/blame.d.ts.map +0 -1
- package/dist/git/models/blame.js.map +0 -1
- package/dist/git/models/branch.d.ts.map +0 -1
- package/dist/git/models/commit.d.ts.map +0 -1
- package/dist/git/models/contributor.d.ts.map +0 -1
- package/dist/git/models/defaultBranch.d.ts.map +0 -1
- package/dist/git/models/defaultBranch.js.map +0 -1
- package/dist/git/models/diff.d.ts.map +0 -1
- package/dist/git/models/diff.js.map +0 -1
- package/dist/git/models/file.d.ts.map +0 -1
- package/dist/git/models/file.js.map +0 -1
- package/dist/git/models/fileChange.d.ts.map +0 -1
- package/dist/git/models/fileStatus.d.ts.map +0 -1
- package/dist/git/models/graph.d.ts.map +0 -1
- package/dist/git/models/graphSearch.d.ts.map +0 -1
- package/dist/git/models/graphSearch.js.map +0 -1
- package/dist/git/models/graphSession.d.ts.map +0 -1
- package/dist/git/models/issue.d.ts.map +0 -1
- package/dist/git/models/issueOrPullRequest.d.ts.map +0 -1
- package/dist/git/models/issueOrPullRequest.js.map +0 -1
- package/dist/git/models/lineRange.d.ts.map +0 -1
- package/dist/git/models/lineRange.js.map +0 -1
- package/dist/git/models/log.d.ts.map +0 -1
- package/dist/git/models/log.js.map +0 -1
- package/dist/git/models/mergeConflicts.d.ts.map +0 -1
- package/dist/git/models/mergeConflicts.js.map +0 -1
- package/dist/git/models/patch.d.ts.map +0 -1
- package/dist/git/models/patch.js.map +0 -1
- package/dist/git/models/pausedOperationStatus.d.ts.map +0 -1
- package/dist/git/models/pausedOperationStatus.js.map +0 -1
- package/dist/git/models/pullRequest.d.ts.map +0 -1
- package/dist/git/models/rebase.d.ts.map +0 -1
- package/dist/git/models/rebase.js.map +0 -1
- package/dist/git/models/reference.d.ts.map +0 -1
- package/dist/git/models/reference.js.map +0 -1
- package/dist/git/models/reflog.d.ts.map +0 -1
- package/dist/git/models/remote.d.ts.map +0 -1
- package/dist/git/models/remoteProvider.d.ts.map +0 -1
- package/dist/git/models/remoteResource.d.ts.map +0 -1
- package/dist/git/models/repository.d.ts.map +0 -1
- package/dist/git/models/repositoryChangeEvent.d.ts.map +0 -1
- package/dist/git/models/repositoryIdentities.d.ts.map +0 -1
- package/dist/git/models/repositoryMetadata.d.ts.map +0 -1
- package/dist/git/models/repositoryMetadata.js.map +0 -1
- package/dist/git/models/resourceDescriptor.d.ts.map +0 -1
- package/dist/git/models/resourceDescriptor.js.map +0 -1
- package/dist/git/models/revision.d.ts.map +0 -1
- package/dist/git/models/search.d.ts.map +0 -1
- package/dist/git/models/shortlog.d.ts.map +0 -1
- package/dist/git/models/shortlog.js.map +0 -1
- package/dist/git/models/signature.d.ts.map +0 -1
- package/dist/git/models/signature.js.map +0 -1
- package/dist/git/models/staging.d.ts.map +0 -1
- package/dist/git/models/staging.js.map +0 -1
- package/dist/git/models/stash.d.ts.map +0 -1
- package/dist/git/models/stash.js.map +0 -1
- package/dist/git/models/status.d.ts.map +0 -1
- package/dist/git/models/statusFile.d.ts.map +0 -1
- package/dist/git/models/tag.d.ts.map +0 -1
- package/dist/git/models/tree.d.ts.map +0 -1
- package/dist/git/models/tree.js.map +0 -1
- package/dist/git/models/user.d.ts.map +0 -1
- package/dist/git/models/user.js.map +0 -1
- package/dist/git/models/worktree.d.ts.map +0 -1
- package/dist/git/parsers/diffParser.d.ts.map +0 -1
- package/dist/git/parsers/rebaseTodoParser.d.ts.map +0 -1
- package/dist/git/providers/blame.d.ts.map +0 -1
- package/dist/git/providers/blame.js.map +0 -1
- package/dist/git/providers/branches.d.ts.map +0 -1
- package/dist/git/providers/branches.js.map +0 -1
- package/dist/git/providers/commits.d.ts.map +0 -1
- package/dist/git/providers/commits.js.map +0 -1
- package/dist/git/providers/config.d.ts.map +0 -1
- package/dist/git/providers/config.js.map +0 -1
- package/dist/git/providers/contributors.d.ts.map +0 -1
- package/dist/git/providers/contributors.js.map +0 -1
- package/dist/git/providers/diff.d.ts.map +0 -1
- package/dist/git/providers/diff.js.map +0 -1
- package/dist/git/providers/graph.d.ts.map +0 -1
- package/dist/git/providers/graph.js.map +0 -1
- package/dist/git/providers/maintenance.d.ts.map +0 -1
- package/dist/git/providers/maintenance.js.map +0 -1
- package/dist/git/providers/operations.d.ts.map +0 -1
- package/dist/git/providers/operations.js.map +0 -1
- package/dist/git/providers/patch.d.ts.map +0 -1
- package/dist/git/providers/patch.js.map +0 -1
- package/dist/git/providers/pausedOperations.d.ts.map +0 -1
- package/dist/git/providers/pausedOperations.js.map +0 -1
- package/dist/git/providers/provider.d.ts.map +0 -1
- package/dist/git/providers/provider.js.map +0 -1
- package/dist/git/providers/refs.d.ts.map +0 -1
- package/dist/git/providers/refs.js.map +0 -1
- package/dist/git/providers/remotes.d.ts.map +0 -1
- package/dist/git/providers/remotes.js.map +0 -1
- package/dist/git/providers/revision.d.ts.map +0 -1
- package/dist/git/providers/revision.js.map +0 -1
- package/dist/git/providers/shared/remotes.d.ts.map +0 -1
- package/dist/git/providers/staging.d.ts.map +0 -1
- package/dist/git/providers/staging.js.map +0 -1
- package/dist/git/providers/stash.d.ts.map +0 -1
- package/dist/git/providers/stash.js.map +0 -1
- package/dist/git/providers/status.d.ts.map +0 -1
- package/dist/git/providers/status.js.map +0 -1
- package/dist/git/providers/tags.d.ts.map +0 -1
- package/dist/git/providers/tags.js.map +0 -1
- package/dist/git/providers/types.d.ts.map +0 -1
- package/dist/git/providers/types.js.map +0 -1
- package/dist/git/providers/worktrees.d.ts.map +0 -1
- package/dist/git/providers/worktrees.js.map +0 -1
- package/dist/git/remotes/azure-devops.d.ts.map +0 -1
- package/dist/git/remotes/bitbucket-server.d.ts.map +0 -1
- package/dist/git/remotes/bitbucket.d.ts.map +0 -1
- package/dist/git/remotes/custom.d.ts.map +0 -1
- package/dist/git/remotes/gerrit.d.ts.map +0 -1
- package/dist/git/remotes/gitea.d.ts.map +0 -1
- package/dist/git/remotes/github.d.ts.map +0 -1
- package/dist/git/remotes/gitlab.d.ts.map +0 -1
- package/dist/git/remotes/google-source.d.ts.map +0 -1
- package/dist/git/remotes/matcher.d.ts.map +0 -1
- package/dist/git/repositoryService.d.ts.map +0 -1
- package/dist/git/run.types.d.ts.map +0 -1
- package/dist/git/run.types.js.map +0 -1
- package/dist/git/service.d.ts.map +0 -1
- package/dist/git/utils/autolink.utils.d.ts.map +0 -1
- package/dist/git/utils/blame.utils.d.ts.map +0 -1
- package/dist/git/utils/branch.utils.d.ts.map +0 -1
- package/dist/git/utils/commit.utils.d.ts.map +0 -1
- package/dist/git/utils/config.utils.d.ts.map +0 -1
- package/dist/git/utils/conflictResolution.utils.d.ts.map +0 -1
- package/dist/git/utils/contributor.utils.d.ts.map +0 -1
- package/dist/git/utils/fetch.utils.d.ts.map +0 -1
- package/dist/git/utils/fileStatus.utils.d.ts.map +0 -1
- package/dist/git/utils/graph.utils.d.ts.map +0 -1
- package/dist/git/utils/issue.utils.d.ts.map +0 -1
- package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +0 -1
- package/dist/git/utils/mergeConflicts.utils.d.ts.map +0 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +0 -1
- package/dist/git/utils/pullRequest.utils.d.ts.map +0 -1
- package/dist/git/utils/reachability.utils.d.ts.map +0 -1
- package/dist/git/utils/rebase.utils.d.ts.map +0 -1
- package/dist/git/utils/reference.utils.d.ts.map +0 -1
- package/dist/git/utils/remote.utils.d.ts.map +0 -1
- package/dist/git/utils/repository.utils.d.ts.map +0 -1
- package/dist/git/utils/resourceDescriptor.utils.d.ts.map +0 -1
- package/dist/git/utils/revision.utils.d.ts.map +0 -1
- package/dist/git/utils/search.utils.d.ts.map +0 -1
- package/dist/git/utils/sorting.d.ts.map +0 -1
- package/dist/git/utils/sshKey.utils.d.ts.map +0 -1
- package/dist/git/utils/status.utils.d.ts.map +0 -1
- package/dist/git/utils/statusFile.utils.d.ts.map +0 -1
- package/dist/git/utils/tag.utils.d.ts.map +0 -1
- package/dist/git/utils/tooltip.utils.d.ts.map +0 -1
- package/dist/git/utils/uriAuthority.d.ts.map +0 -1
- package/dist/git/utils/user.utils.d.ts.map +0 -1
- package/dist/git/utils/worktree.utils.d.ts.map +0 -1
- package/dist/git/watching/changeEvent.d.ts.map +0 -1
- package/dist/git/watching/classifyChange.d.ts.map +0 -1
- package/dist/git/watching/gitIgnoreFilter.d.ts.map +0 -1
- package/dist/git/watching/initWatcher.d.ts.map +0 -1
- package/dist/git/watching/provider.d.ts.map +0 -1
- package/dist/git/watching/provider.js.map +0 -1
- package/dist/git/watching/watchGroup.d.ts.map +0 -1
- package/dist/git/watching/watchService.d.ts.map +0 -1
- package/dist/git/watching/watchSession.d.ts.map +0 -1
- package/dist/git/watching/watcherPatterns.d.ts.map +0 -1
- package/dist/git-cli/cliGitProvider.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.errors.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.errors.js.map +0 -1
- package/dist/git-cli/exec/exec.js.map +0 -1
- package/dist/git-cli/exec/exec.types.d.ts.map +0 -1
- package/dist/git-cli/exec/exec.types.js.map +0 -1
- package/dist/git-cli/exec/features.d.ts.map +0 -1
- package/dist/git-cli/exec/features.js.map +0 -1
- package/dist/git-cli/exec/git.d.ts.map +0 -1
- package/dist/git-cli/exec/gitQueue.d.ts.map +0 -1
- package/dist/git-cli/exec/locator.d.ts.map +0 -1
- package/dist/git-cli/parsers/blameParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/indexParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/logParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/refParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/reflogParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/remoteParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/shortlogParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/signatureParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/statusParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/treeParser.d.ts.map +0 -1
- package/dist/git-cli/parsers/worktreeParser.d.ts.map +0 -1
- package/dist/git-cli/providers/blame.d.ts.map +0 -1
- package/dist/git-cli/providers/branches.d.ts.map +0 -1
- package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +0 -1
- package/dist/git-cli/providers/commits.d.ts.map +0 -1
- package/dist/git-cli/providers/config.d.ts.map +0 -1
- package/dist/git-cli/providers/contributors.d.ts.map +0 -1
- package/dist/git-cli/providers/diff.d.ts.map +0 -1
- package/dist/git-cli/providers/graph.d.ts.map +0 -1
- package/dist/git-cli/providers/maintenance.d.ts.map +0 -1
- package/dist/git-cli/providers/operations.d.ts.map +0 -1
- package/dist/git-cli/providers/patch.d.ts.map +0 -1
- package/dist/git-cli/providers/pausedOperations.d.ts.map +0 -1
- package/dist/git-cli/providers/refs.d.ts.map +0 -1
- package/dist/git-cli/providers/remotes.d.ts.map +0 -1
- package/dist/git-cli/providers/revision.d.ts.map +0 -1
- package/dist/git-cli/providers/staging.d.ts.map +0 -1
- package/dist/git-cli/providers/stash.d.ts.map +0 -1
- package/dist/git-cli/providers/status.d.ts.map +0 -1
- package/dist/git-cli/providers/tags.d.ts.map +0 -1
- package/dist/git-cli/providers/worktrees.d.ts.map +0 -1
- package/dist/git-cli/service.d.ts.map +0 -1
- package/dist/ipc/discovery.d.ts.map +0 -1
- package/dist/ipc/ipcServer.d.ts.map +0 -1
- package/dist/plus/agents/agentCapabilities.d.ts.map +0 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +0 -1
- package/dist/plus/agents/providers/gkAgentProvider.d.ts.map +0 -1
- package/dist/plus/agents/sanitizePrompt.d.ts.map +0 -1
- package/dist/plus/agents/stateMachine.d.ts.map +0 -1
- package/dist/plus/agents/types.d.ts.map +0 -1
- package/dist/plus/ai/constants.d.ts.map +0 -1
- package/dist/plus/ai/errors.d.ts.map +0 -1
- package/dist/plus/ai/models/conversation.d.ts.map +0 -1
- package/dist/plus/ai/models/model.d.ts.map +0 -1
- package/dist/plus/ai/models/promptTemplates.d.ts.map +0 -1
- package/dist/plus/ai/models/promptTemplates.js.map +0 -1
- package/dist/plus/ai/models/provider.d.ts.map +0 -1
- package/dist/plus/ai/models/provider.js.map +0 -1
- package/dist/plus/ai/models/results.d.ts.map +0 -1
- package/dist/plus/ai/models/results.js.map +0 -1
- package/dist/plus/ai/prompts.d.ts.map +0 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/azureProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/context.d.ts.map +0 -1
- package/dist/plus/ai/providers/context.js.map +0 -1
- package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +0 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts.map +0 -1
- package/dist/plus/ai/providers/responseFormatCache.d.ts.map +0 -1
- package/dist/plus/ai/providers/xaiProvider.d.ts.map +0 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +0 -1
- package/dist/plus/ai/utils/results.utils.d.ts.map +0 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts.map +0 -1
- package/dist/plus/git-github/api/config.d.ts.map +0 -1
- package/dist/plus/git-github/api/github.d.ts.map +0 -1
- package/dist/plus/git-github/api/github.utils.d.ts.map +0 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts.map +0 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +0 -1
- package/dist/plus/git-github/api/token.d.ts.map +0 -1
- package/dist/plus/git-github/api/token.js.map +0 -1
- package/dist/plus/git-github/api/tokenUtils.d.ts.map +0 -1
- package/dist/plus/git-github/api/types.d.ts.map +0 -1
- package/dist/plus/git-github/api/types.js.map +0 -1
- package/dist/plus/git-github/context.d.ts.map +0 -1
- package/dist/plus/git-github/models.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/blame.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/branches.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/commits.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/config.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/contributors.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/diff.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/graph.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/refs.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/remotes.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/revision.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/status.d.ts.map +0 -1
- package/dist/plus/git-github/providers/github/tags.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubProvider.d.ts.map +0 -1
- package/dist/plus/git-github/providers/githubProvider.js.map +0 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/models.d.ts.map +0 -1
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts.map +0 -1
- package/dist/plus/integrations/collectionMetadata.d.ts.map +0 -1
- package/dist/plus/integrations/constants.d.ts.map +0 -1
- package/dist/plus/integrations/context.d.ts.map +0 -1
- package/dist/plus/integrations/context.js.map +0 -1
- package/dist/plus/integrations/errors.d.ts.map +0 -1
- package/dist/plus/integrations/index.d.ts.map +0 -1
- package/dist/plus/integrations/integrationService.d.ts.map +0 -1
- package/dist/plus/integrations/lite.d.ts.map +0 -1
- package/dist/plus/integrations/manager.d.ts.map +0 -1
- package/dist/plus/integrations/manager.js.map +0 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +0 -1
- package/dist/plus/integrations/models/integration.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueCache.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueReads.d.ts.map +0 -1
- package/dist/plus/integrations/models/issueReads.js.map +0 -1
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +0 -1
- package/dist/plus/integrations/models/pullRequestReads.d.ts.map +0 -1
- package/dist/plus/integrations/models/pullRequestReads.js.map +0 -1
- package/dist/plus/integrations/providerFilters.d.ts.map +0 -1
- package/dist/plus/integrations/providers/accounts.d.ts.map +0 -1
- package/dist/plus/integrations/providers/apiClients.d.ts.map +0 -1
- package/dist/plus/integrations/providers/apiConfig.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azure/azure.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azure/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +0 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/github.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/github.utils.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/github/models.js.map +0 -1
- package/dist/plus/integrations/providers/github.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/gitlab.d.ts.map +0 -1
- package/dist/plus/integrations/providers/issueSorts.d.ts.map +0 -1
- package/dist/plus/integrations/providers/jira.d.ts.map +0 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts.map +0 -1
- package/dist/plus/integrations/providers/linear.d.ts.map +0 -1
- package/dist/plus/integrations/providers/models.d.ts.map +0 -1
- package/dist/plus/integrations/providers/providerErrors.d.ts.map +0 -1
- package/dist/plus/integrations/providers/providersApi.d.ts.map +0 -1
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts.map +0 -1
- package/dist/plus/integrations/providers/trello.d.ts.map +0 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +0 -1
- package/dist/plus/integrations/providers/utils.d.ts.map +0 -1
- package/dist/plus/integrations/reads/broaden.d.ts.map +0 -1
- package/dist/plus/integrations/reads/context.d.ts.map +0 -1
- package/dist/plus/integrations/reads/context.js.map +0 -1
- package/dist/plus/integrations/reads/counts.d.ts.map +0 -1
- package/dist/plus/integrations/reads/cursors.d.ts.map +0 -1
- package/dist/plus/integrations/reads/drains.d.ts.map +0 -1
- package/dist/plus/integrations/reads/filters.d.ts.map +0 -1
- package/dist/plus/integrations/reads/hierarchy.d.ts.map +0 -1
- package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issueBatch.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +0 -1
- package/dist/plus/integrations/reads/issues.d.ts.map +0 -1
- package/dist/plus/integrations/reads/ordering.d.ts.map +0 -1
- package/dist/plus/integrations/reads/paging.d.ts.map +0 -1
- package/dist/plus/integrations/reads/pullRequests.d.ts.map +0 -1
- package/dist/plus/integrations/reads/resolveRepository.d.ts.map +0 -1
- package/dist/plus/integrations/reads/searchIssues.d.ts.map +0 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +0 -1
- package/dist/plus/integrations/reads/sweeps.d.ts.map +0 -1
- package/dist/plus/integrations/reads/trackerIssue.d.ts.map +0 -1
- package/dist/plus/integrations/reads/warnings.d.ts.map +0 -1
- package/dist/plus/integrations/results.d.ts.map +0 -1
- package/dist/plus/integrations/telemetry.d.ts.map +0 -1
- package/dist/plus/integrations/utils/domain.utils.d.ts.map +0 -1
- package/dist/plus/integrations/utils/integration.utils.d.ts.map +0 -1
- package/dist/utils/array.d.ts.map +0 -1
- package/dist/utils/base64.d.ts.map +0 -1
- package/dist/utils/base64.js.map +0 -1
- package/dist/utils/brand.d.ts.map +0 -1
- package/dist/utils/brand.js.map +0 -1
- package/dist/utils/cancellation.d.ts.map +0 -1
- package/dist/utils/charCode.d.ts.map +0 -1
- package/dist/utils/coalescedRun.d.ts.map +0 -1
- package/dist/utils/color.d.ts.map +0 -1
- package/dist/utils/counter.d.ts.map +0 -1
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/crypto.js.map +0 -1
- package/dist/utils/date.d.ts.map +0 -1
- package/dist/utils/debounce.d.ts.map +0 -1
- package/dist/utils/decorators/debounce.d.ts.map +0 -1
- package/dist/utils/decorators/gate.d.ts.map +0 -1
- package/dist/utils/decorators/log.d.ts.map +0 -1
- package/dist/utils/decorators/memoize.d.ts.map +0 -1
- package/dist/utils/decorators/resolver.d.ts.map +0 -1
- package/dist/utils/decorators/sequentialize.d.ts.map +0 -1
- package/dist/utils/decorators/serializable.d.ts.map +0 -1
- package/dist/utils/dedupedAsyncCache.d.ts.map +0 -1
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/disposable.d.ts.map +0 -1
- package/dist/utils/encoding.d.ts.map +0 -1
- package/dist/utils/env/browser/base64.d.ts.map +0 -1
- package/dist/utils/env/browser/crypto.d.ts.map +0 -1
- package/dist/utils/env/browser/fs.d.ts.map +0 -1
- package/dist/utils/env/browser/hex.d.ts.map +0 -1
- package/dist/utils/env/browser/hrtime.d.ts.map +0 -1
- package/dist/utils/env/browser/logScope.d.ts.map +0 -1
- package/dist/utils/env/browser/md5.d.ts.map +0 -1
- package/dist/utils/env/browser/platform.d.ts.map +0 -1
- package/dist/utils/env/node/base64.d.ts.map +0 -1
- package/dist/utils/env/node/crypto.d.ts.map +0 -1
- package/dist/utils/env/node/exec.d.ts.map +0 -1
- package/dist/utils/env/node/fs.d.ts.map +0 -1
- package/dist/utils/env/node/hex.d.ts.map +0 -1
- package/dist/utils/env/node/hrtime.d.ts.map +0 -1
- package/dist/utils/env/node/hrtime.js.map +0 -1
- package/dist/utils/env/node/logScope.d.ts.map +0 -1
- package/dist/utils/env/node/platform.d.ts.map +0 -1
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/event.d.ts.map +0 -1
- package/dist/utils/formatter.d.ts.map +0 -1
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/function.d.ts.map +0 -1
- package/dist/utils/fuzzy.d.ts.map +0 -1
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/hrtime.d.ts.map +0 -1
- package/dist/utils/iterable.d.ts.map +0 -1
- package/dist/utils/keys/chord.d.ts.map +0 -1
- package/dist/utils/keys/keybinding.d.ts.map +0 -1
- package/dist/utils/lazy.d.ts.map +0 -1
- package/dist/utils/loggable.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.scoped.d.ts.map +0 -1
- package/dist/utils/lruMap.d.ts.map +0 -1
- package/dist/utils/markdown.d.ts.map +0 -1
- package/dist/utils/mru.d.ts.map +0 -1
- package/dist/utils/object.d.ts.map +0 -1
- package/dist/utils/paging.d.ts.map +0 -1
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/platform.js.map +0 -1
- package/dist/utils/promise.d.ts.map +0 -1
- package/dist/utils/promiseCache.d.ts.map +0 -1
- package/dist/utils/resourceUsage.d.ts.map +0 -1
- package/dist/utils/resourceUsage.js.map +0 -1
- package/dist/utils/searchTree.d.ts.map +0 -1
- package/dist/utils/stopwatch.d.ts.map +0 -1
- package/dist/utils/string.d.ts.map +0 -1
- package/dist/utils/subscriptionManager.d.ts.map +0 -1
- package/dist/utils/trie.d.ts.map +0 -1
- package/dist/utils/types.d.ts.map +0 -1
- package/dist/utils/types.js.map +0 -1
- package/dist/utils/uri.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/version.d.ts.map +0 -1
- package/src/git/cache.ts +0 -1859
- package/src/git/context.ts +0 -301
- package/src/git/errors.ts +0 -1168
- package/src/git/features.ts +0 -98
- package/src/git/gitHealth.ts +0 -522
- package/src/git/models/author.ts +0 -19
- package/src/git/models/autolink.ts +0 -59
- package/src/git/models/blame.ts +0 -46
- package/src/git/models/branch.ts +0 -237
- package/src/git/models/commit.ts +0 -673
- package/src/git/models/contributor.ts +0 -84
- package/src/git/models/defaultBranch.ts +0 -6
- package/src/git/models/diff.ts +0 -74
- package/src/git/models/file.ts +0 -29
- package/src/git/models/fileChange.ts +0 -82
- package/src/git/models/fileStatus.ts +0 -36
- package/src/git/models/graph.ts +0 -444
- package/src/git/models/graphSearch.ts +0 -53
- package/src/git/models/graphSession.ts +0 -102
- package/src/git/models/issue.ts +0 -258
- package/src/git/models/issueOrPullRequest.ts +0 -20
- package/src/git/models/lineRange.ts +0 -7
- package/src/git/models/log.ts +0 -21
- package/src/git/models/mergeConflicts.ts +0 -19
- package/src/git/models/patch.ts +0 -25
- package/src/git/models/pausedOperationStatus.ts +0 -63
- package/src/git/models/pullRequest.ts +0 -353
- package/src/git/models/rebase.ts +0 -60
- package/src/git/models/reference.ts +0 -80
- package/src/git/models/reflog.ts +0 -88
- package/src/git/models/remote.ts +0 -100
- package/src/git/models/remoteProvider.ts +0 -291
- package/src/git/models/remoteResource.ts +0 -87
- package/src/git/models/repository.ts +0 -510
- package/src/git/models/repositoryChangeEvent.ts +0 -30
- package/src/git/models/repositoryIdentities.ts +0 -99
- package/src/git/models/repositoryMetadata.ts +0 -12
- package/src/git/models/resourceDescriptor.ts +0 -28
- package/src/git/models/revision.ts +0 -12
- package/src/git/models/search.ts +0 -138
- package/src/git/models/shortlog.ts +0 -6
- package/src/git/models/signature.ts +0 -45
- package/src/git/models/staging.ts +0 -27
- package/src/git/models/stash.ts +0 -6
- package/src/git/models/status.ts +0 -246
- package/src/git/models/statusFile.ts +0 -131
- package/src/git/models/tag.ts +0 -76
- package/src/git/models/tree.ts +0 -10
- package/src/git/models/user.ts +0 -7
- package/src/git/models/worktree.ts +0 -160
- package/src/git/parsers/diffParser.ts +0 -648
- package/src/git/parsers/rebaseTodoParser.ts +0 -169
- package/src/git/providers/blame.ts +0 -40
- package/src/git/providers/branches.ts +0 -143
- package/src/git/providers/commits.ts +0 -174
- package/src/git/providers/config.ts +0 -167
- package/src/git/providers/contributors.ts +0 -34
- package/src/git/providers/diff.ts +0 -133
- package/src/git/providers/graph.ts +0 -95
- package/src/git/providers/maintenance.ts +0 -224
- package/src/git/providers/operations.ts +0 -164
- package/src/git/providers/patch.ts +0 -31
- package/src/git/providers/pausedOperations.ts +0 -23
- package/src/git/providers/provider.ts +0 -64
- package/src/git/providers/refs.ts +0 -68
- package/src/git/providers/remotes.ts +0 -33
- package/src/git/providers/revision.ts +0 -32
- package/src/git/providers/shared/remotes.ts +0 -95
- package/src/git/providers/staging.ts +0 -36
- package/src/git/providers/stash.ts +0 -51
- package/src/git/providers/status.ts +0 -48
- package/src/git/providers/tags.ts +0 -29
- package/src/git/providers/types.ts +0 -33
- package/src/git/providers/worktrees.ts +0 -37
- package/src/git/remotes/azure-devops.ts +0 -307
- package/src/git/remotes/bitbucket-server.ts +0 -189
- package/src/git/remotes/bitbucket.ts +0 -142
- package/src/git/remotes/custom.ts +0 -162
- package/src/git/remotes/gerrit.ts +0 -186
- package/src/git/remotes/gitea.ts +0 -184
- package/src/git/remotes/github.ts +0 -236
- package/src/git/remotes/gitlab.ts +0 -270
- package/src/git/remotes/google-source.ts +0 -51
- package/src/git/remotes/matcher.ts +0 -215
- package/src/git/repositoryService.ts +0 -180
- package/src/git/run.types.ts +0 -156
- package/src/git/service.ts +0 -369
- package/src/git/utils/autolink.utils.ts +0 -202
- package/src/git/utils/blame.utils.ts +0 -298
- package/src/git/utils/branch.utils.ts +0 -165
- package/src/git/utils/commit.utils.ts +0 -89
- package/src/git/utils/config.utils.ts +0 -8
- package/src/git/utils/conflictResolution.utils.ts +0 -157
- package/src/git/utils/contributor.utils.ts +0 -105
- package/src/git/utils/fetch.utils.ts +0 -48
- package/src/git/utils/fileStatus.utils.ts +0 -62
- package/src/git/utils/graph.utils.ts +0 -46
- package/src/git/utils/issue.utils.ts +0 -177
- package/src/git/utils/issueOrPullRequest.utils.ts +0 -23
- package/src/git/utils/mergeConflicts.utils.ts +0 -21
- package/src/git/utils/pausedOperationStatus.utils.ts +0 -184
- package/src/git/utils/pullRequest.utils.ts +0 -244
- package/src/git/utils/reachability.utils.ts +0 -180
- package/src/git/utils/rebase.utils.ts +0 -128
- package/src/git/utils/reference.utils.ts +0 -267
- package/src/git/utils/remote.utils.ts +0 -146
- package/src/git/utils/repository.utils.ts +0 -18
- package/src/git/utils/resourceDescriptor.utils.ts +0 -26
- package/src/git/utils/revision.utils.ts +0 -149
- package/src/git/utils/search.utils.ts +0 -624
- package/src/git/utils/sorting.ts +0 -329
- package/src/git/utils/sshKey.utils.ts +0 -30
- package/src/git/utils/status.utils.ts +0 -115
- package/src/git/utils/statusFile.utils.ts +0 -182
- package/src/git/utils/tag.utils.ts +0 -17
- package/src/git/utils/tooltip.utils.ts +0 -37
- package/src/git/utils/uriAuthority.ts +0 -34
- package/src/git/utils/user.utils.ts +0 -20
- package/src/git/utils/worktree.utils.ts +0 -21
- package/src/git/watching/changeEvent.ts +0 -95
- package/src/git/watching/classifyChange.ts +0 -104
- package/src/git/watching/gitIgnoreFilter.ts +0 -134
- package/src/git/watching/initWatcher.ts +0 -81
- package/src/git/watching/provider.ts +0 -24
- package/src/git/watching/watchGroup.ts +0 -185
- package/src/git/watching/watchService.ts +0 -430
- package/src/git/watching/watchSession.ts +0 -439
- package/src/git/watching/watcherPatterns.ts +0 -51
- package/src/git-cli/cliGitProvider.ts +0 -461
- package/src/git-cli/exec/exec.errors.ts +0 -1
- package/src/git-cli/exec/exec.ts +0 -11
- package/src/git-cli/exec/exec.types.ts +0 -8
- package/src/git-cli/exec/features.ts +0 -2
- package/src/git-cli/exec/git.ts +0 -1371
- package/src/git-cli/exec/gitQueue.ts +0 -326
- package/src/git-cli/exec/locator.ts +0 -157
- package/src/git-cli/parsers/blameParser.ts +0 -374
- package/src/git-cli/parsers/indexParser.ts +0 -192
- package/src/git-cli/parsers/logParser.ts +0 -1365
- package/src/git-cli/parsers/mergeTreeParser.ts +0 -22
- package/src/git-cli/parsers/refParser.ts +0 -110
- package/src/git-cli/parsers/reflogParser.ts +0 -153
- package/src/git-cli/parsers/remoteParser.ts +0 -95
- package/src/git-cli/parsers/shortlogParser.ts +0 -59
- package/src/git-cli/parsers/signatureParser.ts +0 -162
- package/src/git-cli/parsers/sshSignatureParser.ts +0 -85
- package/src/git-cli/parsers/statusParser.ts +0 -209
- package/src/git-cli/parsers/treeParser.ts +0 -61
- package/src/git-cli/parsers/worktreeParser.ts +0 -111
- package/src/git-cli/providers/blame.ts +0 -598
- package/src/git-cli/providers/branches.ts +0 -1931
- package/src/git-cli/providers/commitFilesetUtils.ts +0 -45
- package/src/git-cli/providers/commits.ts +0 -1856
- package/src/git-cli/providers/config.ts +0 -1025
- package/src/git-cli/providers/contributors.ts +0 -360
- package/src/git-cli/providers/diff.ts +0 -1172
- package/src/git-cli/providers/graph.ts +0 -2237
- package/src/git-cli/providers/maintenance.ts +0 -2599
- package/src/git-cli/providers/operations.ts +0 -1016
- package/src/git-cli/providers/patch.ts +0 -305
- package/src/git-cli/providers/pausedOperations.ts +0 -670
- package/src/git-cli/providers/refs.ts +0 -486
- package/src/git-cli/providers/remotes.ts +0 -115
- package/src/git-cli/providers/revision.ts +0 -383
- package/src/git-cli/providers/staging.ts +0 -210
- package/src/git-cli/providers/stash.ts +0 -577
- package/src/git-cli/providers/status.ts +0 -568
- package/src/git-cli/providers/tags.ts +0 -224
- package/src/git-cli/providers/worktrees.ts +0 -285
- package/src/git-cli/service.ts +0 -82
- package/src/ipc/discovery.ts +0 -186
- package/src/ipc/ipcServer.ts +0 -171
- package/src/plus/agents/agentCapabilities.ts +0 -286
- package/src/plus/agents/providers/claudeCodeTranscript.ts +0 -867
- package/src/plus/agents/providers/gkAgentProvider.ts +0 -4036
- package/src/plus/agents/sanitizePrompt.ts +0 -109
- package/src/plus/agents/stateMachine.ts +0 -197
- package/src/plus/agents/types.ts +0 -500
- package/src/plus/ai/constants.ts +0 -121
- package/src/plus/ai/errors.ts +0 -152
- package/src/plus/ai/models/conversation.ts +0 -35
- package/src/plus/ai/models/model.ts +0 -528
- package/src/plus/ai/models/promptTemplates.ts +0 -171
- package/src/plus/ai/models/provider.ts +0 -125
- package/src/plus/ai/models/results.ts +0 -31
- package/src/plus/ai/prompts.ts +0 -849
- package/src/plus/ai/providers/anthropicProvider.ts +0 -458
- package/src/plus/ai/providers/azureProvider.ts +0 -74
- package/src/plus/ai/providers/context.ts +0 -29
- package/src/plus/ai/providers/deepSeekProvider.ts +0 -46
- package/src/plus/ai/providers/geminiProvider.ts +0 -245
- package/src/plus/ai/providers/gitkrakenProvider.ts +0 -347
- package/src/plus/ai/providers/huggingFaceProvider.ts +0 -64
- package/src/plus/ai/providers/mistralProvider.ts +0 -243
- package/src/plus/ai/providers/ollamaProvider.ts +0 -292
- package/src/plus/ai/providers/openAICompatibleProvider.ts +0 -64
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +0 -654
- package/src/plus/ai/providers/openRouterProvider.ts +0 -101
- package/src/plus/ai/providers/openaiProvider.ts +0 -47
- package/src/plus/ai/providers/responseFormatCache.ts +0 -39
- package/src/plus/ai/providers/xaiProvider.ts +0 -54
- package/src/plus/ai/utils/ai.utils.ts +0 -95
- package/src/plus/ai/utils/results.utils.ts +0 -407
- package/src/plus/ai/utils/truncation.utils.ts +0 -296
- package/src/plus/git-github/api/config.ts +0 -91
- package/src/plus/git-github/api/github.ts +0 -5462
- package/src/plus/git-github/api/github.utils.ts +0 -36
- package/src/plus/git-github/api/issueSearchQuery.ts +0 -273
- package/src/plus/git-github/api/pullRequestSearchQuery.ts +0 -154
- package/src/plus/git-github/api/token.ts +0 -15
- package/src/plus/git-github/api/tokenUtils.ts +0 -15
- package/src/plus/git-github/api/types.ts +0 -197
- package/src/plus/git-github/context.ts +0 -107
- package/src/plus/git-github/models.ts +0 -623
- package/src/plus/git-github/providers/github/blame.ts +0 -225
- package/src/plus/git-github/providers/github/branches.ts +0 -401
- package/src/plus/git-github/providers/github/commits.ts +0 -929
- package/src/plus/git-github/providers/github/config.ts +0 -47
- package/src/plus/git-github/providers/github/contributors.ts +0 -313
- package/src/plus/git-github/providers/github/diff.ts +0 -281
- package/src/plus/git-github/providers/github/graph.ts +0 -635
- package/src/plus/git-github/providers/github/refs.ts +0 -172
- package/src/plus/git-github/providers/github/remotes.ts +0 -44
- package/src/plus/git-github/providers/github/revision.ts +0 -140
- package/src/plus/git-github/providers/github/status.ts +0 -69
- package/src/plus/git-github/providers/github/tags.ts +0 -148
- package/src/plus/git-github/providers/githubGitProvider.ts +0 -168
- package/src/plus/git-github/providers/githubProvider.ts +0 -65
- package/src/plus/integrations/authentication/cloudIntegrationService.ts +0 -292
- package/src/plus/integrations/authentication/configuredIntegrationService.ts +0 -656
- package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +0 -385
- package/src/plus/integrations/authentication/integrationAuthenticationService.ts +0 -148
- package/src/plus/integrations/authentication/manualTokenProvider.ts +0 -79
- package/src/plus/integrations/authentication/models.ts +0 -202
- package/src/plus/integrations/authentication/rejectedTokenTracker.ts +0 -56
- package/src/plus/integrations/collectionMetadata.ts +0 -325
- package/src/plus/integrations/constants.ts +0 -190
- package/src/plus/integrations/context.ts +0 -386
- package/src/plus/integrations/errors.ts +0 -188
- package/src/plus/integrations/index.ts +0 -231
- package/src/plus/integrations/integrationService.ts +0 -2003
- package/src/plus/integrations/lite.ts +0 -233
- package/src/plus/integrations/manager.ts +0 -728
- package/src/plus/integrations/models/gitHostIntegration.ts +0 -1862
- package/src/plus/integrations/models/integration.ts +0 -1005
- package/src/plus/integrations/models/issueCache.ts +0 -29
- package/src/plus/integrations/models/issueReads.ts +0 -152
- package/src/plus/integrations/models/issuesIntegration.ts +0 -248
- package/src/plus/integrations/models/pullRequestReads.ts +0 -18
- package/src/plus/integrations/providerFilters.ts +0 -36
- package/src/plus/integrations/providers/accounts.ts +0 -38
- package/src/plus/integrations/providers/apiClients.ts +0 -69
- package/src/plus/integrations/providers/apiConfig.ts +0 -71
- package/src/plus/integrations/providers/azure/azure.ts +0 -822
- package/src/plus/integrations/providers/azure/models.ts +0 -621
- package/src/plus/integrations/providers/azureDevOps.ts +0 -1346
- package/src/plus/integrations/providers/bitbucket/bitbucket.ts +0 -904
- package/src/plus/integrations/providers/bitbucket/models.ts +0 -446
- package/src/plus/integrations/providers/bitbucket-server/models.ts +0 -283
- package/src/plus/integrations/providers/bitbucket-server.ts +0 -445
- package/src/plus/integrations/providers/bitbucket.ts +0 -793
- package/src/plus/integrations/providers/github/github.ts +0 -64
- package/src/plus/integrations/providers/github/github.utils.ts +0 -23
- package/src/plus/integrations/providers/github/models.ts +0 -29
- package/src/plus/integrations/providers/github.ts +0 -940
- package/src/plus/integrations/providers/gitlab/gitlab.ts +0 -1320
- package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +0 -80
- package/src/plus/integrations/providers/gitlab/models.ts +0 -271
- package/src/plus/integrations/providers/gitlab.ts +0 -841
- package/src/plus/integrations/providers/issueSorts.ts +0 -89
- package/src/plus/integrations/providers/jira.ts +0 -596
- package/src/plus/integrations/providers/jiraIssueByKey.ts +0 -155
- package/src/plus/integrations/providers/linear.ts +0 -484
- package/src/plus/integrations/providers/models.ts +0 -1816
- package/src/plus/integrations/providers/providerErrors.ts +0 -115
- package/src/plus/integrations/providers/providersApi.ts +0 -1881
- package/src/plus/integrations/providers/pullRequestReviews.ts +0 -122
- package/src/plus/integrations/providers/trello.ts +0 -208
- package/src/plus/integrations/providers/utils/providerPaging.ts +0 -212
- package/src/plus/integrations/providers/utils.ts +0 -419
- package/src/plus/integrations/reads/broaden.ts +0 -704
- package/src/plus/integrations/reads/context.ts +0 -99
- package/src/plus/integrations/reads/counts.ts +0 -610
- package/src/plus/integrations/reads/cursors.ts +0 -224
- package/src/plus/integrations/reads/drains.ts +0 -420
- package/src/plus/integrations/reads/filters.ts +0 -614
- package/src/plus/integrations/reads/hierarchy.ts +0 -486
- package/src/plus/integrations/reads/hierarchy.utils.ts +0 -155
- package/src/plus/integrations/reads/issueBatch.ts +0 -197
- package/src/plus/integrations/reads/issueTracker.ts +0 -556
- package/src/plus/integrations/reads/issues.ts +0 -600
- package/src/plus/integrations/reads/ordering.ts +0 -124
- package/src/plus/integrations/reads/paging.ts +0 -379
- package/src/plus/integrations/reads/pullRequests.ts +0 -260
- package/src/plus/integrations/reads/resolveRepository.ts +0 -272
- package/src/plus/integrations/reads/searchIssues.ts +0 -274
- package/src/plus/integrations/reads/searchPullRequests.ts +0 -235
- package/src/plus/integrations/reads/sweeps.ts +0 -266
- package/src/plus/integrations/reads/trackerIssue.ts +0 -105
- package/src/plus/integrations/reads/warnings.ts +0 -535
- package/src/plus/integrations/results.ts +0 -443
- package/src/plus/integrations/telemetry.ts +0 -29
- package/src/plus/integrations/utils/domain.utils.ts +0 -26
- package/src/plus/integrations/utils/integration.utils.ts +0 -215
- package/src/utils/array.ts +0 -194
- package/src/utils/base64.ts +0 -1
- package/src/utils/brand.ts +0 -7
- package/src/utils/cancellation.ts +0 -199
- package/src/utils/charCode.ts +0 -38
- package/src/utils/coalescedRun.ts +0 -45
- package/src/utils/color.ts +0 -817
- package/src/utils/counter.ts +0 -21
- package/src/utils/crypto.ts +0 -1
- package/src/utils/date.ts +0 -474
- package/src/utils/debounce.ts +0 -303
- package/src/utils/decorators/debounce.ts +0 -31
- package/src/utils/decorators/gate.ts +0 -167
- package/src/utils/decorators/log.ts +0 -320
- package/src/utils/decorators/memoize.ts +0 -98
- package/src/utils/decorators/resolver.ts +0 -95
- package/src/utils/decorators/sequentialize.ts +0 -118
- package/src/utils/decorators/serializable.ts +0 -43
- package/src/utils/dedupedAsyncCache.ts +0 -74
- package/src/utils/diff.ts +0 -61
- package/src/utils/disposable.ts +0 -156
- package/src/utils/encoding.ts +0 -8
- package/src/utils/env/browser/base64.ts +0 -50
- package/src/utils/env/browser/crypto.ts +0 -21
- package/src/utils/env/browser/fs.ts +0 -3
- package/src/utils/env/browser/hex.ts +0 -41
- package/src/utils/env/browser/hrtime.ts +0 -14
- package/src/utils/env/browser/logScope.ts +0 -57
- package/src/utils/env/browser/md5.ts +0 -217
- package/src/utils/env/browser/platform.ts +0 -10
- package/src/utils/env/node/base64.ts +0 -19
- package/src/utils/env/node/crypto.ts +0 -17
- package/src/utils/env/node/exec.ts +0 -488
- package/src/utils/env/node/fs.ts +0 -5
- package/src/utils/env/node/hex.ts +0 -11
- package/src/utils/env/node/hrtime.ts +0 -1
- package/src/utils/env/node/logScope.ts +0 -63
- package/src/utils/env/node/platform.ts +0 -5
- package/src/utils/error.ts +0 -18
- package/src/utils/event.ts +0 -230
- package/src/utils/formatter.ts +0 -198
- package/src/utils/fs.ts +0 -1
- package/src/utils/function.ts +0 -141
- package/src/utils/fuzzy.ts +0 -185
- package/src/utils/hash.ts +0 -60
- package/src/utils/hex.ts +0 -1
- package/src/utils/hrtime.ts +0 -8
- package/src/utils/iterable.ts +0 -797
- package/src/utils/keys/chord.ts +0 -184
- package/src/utils/keys/keybinding.ts +0 -116
- package/src/utils/lazy.ts +0 -39
- package/src/utils/loggable.ts +0 -7
- package/src/utils/logger.scoped.ts +0 -237
- package/src/utils/logger.ts +0 -403
- package/src/utils/lruMap.ts +0 -112
- package/src/utils/markdown.ts +0 -115
- package/src/utils/mru.ts +0 -68
- package/src/utils/object.ts +0 -278
- package/src/utils/paging.ts +0 -97
- package/src/utils/path.ts +0 -204
- package/src/utils/platform.ts +0 -1
- package/src/utils/promise.ts +0 -657
- package/src/utils/promiseCache.ts +0 -908
- package/src/utils/resourceUsage.ts +0 -5
- package/src/utils/searchTree.ts +0 -444
- package/src/utils/stopwatch.ts +0 -125
- package/src/utils/string.ts +0 -1003
- package/src/utils/subscriptionManager.ts +0 -40
- package/src/utils/trie.ts +0 -740
- package/src/utils/types.ts +0 -31
- package/src/utils/uri.ts +0 -118
- package/src/utils/validation.ts +0 -38
- package/src/utils/version.ts +0 -128
|
@@ -1,842 +1,623 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
import { getScopedLogger } from '../../utils/logger.scoped.js';
|
|
16
|
-
import { dirname, getBestPath, isAbsolute, joinPaths, normalizePath } from '../../utils/path.js';
|
|
17
|
-
import { fileUri } from '../../utils/uri.js';
|
|
18
|
-
import { fsExists } from '../exec/exec.js';
|
|
1
|
+
import { first, some } from "../../utils/iterable.js";
|
|
2
|
+
import { Logger as _logger } from "../../utils/logger.js";
|
|
3
|
+
import { getScopedLogger } from "../../utils/logger.scoped.js";
|
|
4
|
+
import { debug, trace } from "../../utils/decorators/log.js";
|
|
5
|
+
import { fileUri } from "../../utils/uri.js";
|
|
6
|
+
import { dirname, getBestPath, isAbsolute, joinPaths, normalizePath } from "../../utils/path.js";
|
|
7
|
+
import __decorate from "../../_virtual/@oxc-project+runtime/helpers/esm/decorate.js";
|
|
8
|
+
import { WorkspaceUntrustedError } from "../../git/errors.js";
|
|
9
|
+
import { fsExists } from "../../utils/env/node/exec.js";
|
|
10
|
+
import { gate } from "../../utils/decorators/gate.js";
|
|
11
|
+
import { promises } from "fs";
|
|
12
|
+
import { env } from "process";
|
|
13
|
+
import { hostname, userInfo } from "os";
|
|
14
|
+
//#region ../git-cli/src/providers/config.ts
|
|
19
15
|
const mappedAuthorRegex = /(.+)\s<(.+)>/;
|
|
20
16
|
const emptyArray = Object.freeze([]);
|
|
21
17
|
/** Catch-all pattern matching every key in `.git/gk/config` for the one-shot bulk read. */
|
|
22
|
-
const gkConfigAllPattern =
|
|
18
|
+
const gkConfigAllPattern = ".";
|
|
23
19
|
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// section + name, preserve the case-sensitive subsection in the middle.
|
|
35
|
-
if (first === last)
|
|
36
|
-
return key.toLowerCase();
|
|
37
|
-
return `${key.slice(0, first).toLowerCase()}${key.slice(first, last)}${key.slice(last).toLowerCase()}`;
|
|
20
|
+
* Canonicalizes a git config key for lookup against `--get-regexp` output, which git emits with the
|
|
21
|
+
* section and variable-name lowercased and only the subsection case-preserved. Without this a
|
|
22
|
+
* subsection-less key like `gk.defaultRemote` would miss the lowercased `gk.defaultremote` in the map.
|
|
23
|
+
*/
|
|
24
|
+
function canonicalizeGitConfigKey(key) {
|
|
25
|
+
const first = key.indexOf(".");
|
|
26
|
+
if (first === -1) return key.toLowerCase();
|
|
27
|
+
const last = key.lastIndexOf(".");
|
|
28
|
+
if (first === last) return key.toLowerCase();
|
|
29
|
+
return `${key.slice(0, first).toLowerCase()}${key.slice(first, last)}${key.slice(last).toLowerCase()}`;
|
|
38
30
|
}
|
|
39
31
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
configMap.set(line.substring(0, spaceIndex), line.substring(spaceIndex + 1));
|
|
69
|
-
}
|
|
70
|
-
return configMap;
|
|
32
|
+
* Parses git config --get-regex output into a Map.
|
|
33
|
+
* The output format is "key value" per line, where key and value are space-separated.
|
|
34
|
+
*
|
|
35
|
+
* A line with NO space at all is git's rendering of a bareword/valueless entry (`key`, no `=`) — git's
|
|
36
|
+
* OWN config parser reads that as boolean TRUE (git-config(1): "a variable defined without `= <value>`
|
|
37
|
+
* is taken as true"), confirmed against git's `format_config` (builtin/config.c): the key-delimiter is
|
|
38
|
+
* appended unconditionally, then backed out ONLY when the stored value is NULL (the bareword case) —
|
|
39
|
+
* an explicit empty value (`key =`) is a real, non-NULL empty string, so its line KEEPS the trailing
|
|
40
|
+
* space and is already handled by the branch below, byte-distinct from a bareword line.
|
|
41
|
+
*
|
|
42
|
+
* By default a bareword line is skipped (the historical behavior, which reads as "unset" — wrong, but
|
|
43
|
+
* safe); pass `includeValueless` to map it to the literal string `'true'` instead, so `parseGitBoolean`
|
|
44
|
+
* and callers checking `.has()` for "configured" both read it correctly.
|
|
45
|
+
*/
|
|
46
|
+
function parseConfigRegexOutput(data, options) {
|
|
47
|
+
const configMap = /* @__PURE__ */ new Map();
|
|
48
|
+
if (!data) return configMap;
|
|
49
|
+
for (const line of data.split("\n")) {
|
|
50
|
+
if (!line) continue;
|
|
51
|
+
const spaceIndex = line.indexOf(" ");
|
|
52
|
+
if (spaceIndex === -1) {
|
|
53
|
+
if (options?.includeValueless) configMap.set(line, "true");
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
configMap.set(line.substring(0, spaceIndex), line.substring(spaceIndex + 1));
|
|
57
|
+
}
|
|
58
|
+
return configMap;
|
|
71
59
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return normalized === 'true' || normalized === 'yes' || normalized === 'on' || normalized === '1';
|
|
60
|
+
function parseGitBoolean(value) {
|
|
61
|
+
if (value == null) return false;
|
|
62
|
+
const normalized = value.toLowerCase().trim();
|
|
63
|
+
return normalized === "true" || normalized === "yes" || normalized === "on" || normalized === "1";
|
|
77
64
|
}
|
|
78
65
|
/** Whether a git config value spells boolean-false (`false`/`no`/`off`/`0`/empty), per git's maybe-bool parsing. */
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
export class ConfigGitSubProvider {
|
|
84
|
-
context;
|
|
85
|
-
git;
|
|
86
|
-
cache;
|
|
87
|
-
provider;
|
|
88
|
-
constructor(context, git, cache, provider) {
|
|
89
|
-
this.context = context;
|
|
90
|
-
this.git = git;
|
|
91
|
-
this.cache = cache;
|
|
92
|
-
this.provider = provider;
|
|
93
|
-
this.cache.setGkConfigReconciler((repoPath, priorSnapshot) => this.reconcileGkConfig(repoPath, priorSnapshot));
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* In-flight gk-config reconciles keyed by commonPath. `pending` records that another `'gkConfig'`
|
|
97
|
-
* event landed mid-pass, so one trailing pass runs after the current one settles. `paths` holds every
|
|
98
|
-
* worktree path that reported the change, mapped to its close generation at that moment — the pass
|
|
99
|
-
* reads through one that's still open and notifies all of them.
|
|
100
|
-
*/
|
|
101
|
-
_gkConfigReconciles = new Map();
|
|
102
|
-
/**
|
|
103
|
-
* Pending `setGkConfig` writes keyed by `(commonPath, key, value, skip-option)`. Concurrent
|
|
104
|
-
* callers writing the same `(key, value)` pair share the in-flight Promise so only one
|
|
105
|
-
* `git config --set` subprocess actually runs. Cleared on settle.
|
|
106
|
-
*/
|
|
107
|
-
_pendingGkConfigWrites = new Map();
|
|
108
|
-
getConfig(repoPath, key, options) {
|
|
109
|
-
const global = options?.global || repoPath == null;
|
|
110
|
-
return this.cache.getConfig(global ? undefined : repoPath, key, () => this.getConfigCore(repoPath, key, options));
|
|
111
|
-
}
|
|
112
|
-
async getConfigCore(repoPath, key, options) {
|
|
113
|
-
const args = ['config', '--get'];
|
|
114
|
-
if (options?.file) {
|
|
115
|
-
args.push('-f', options.file);
|
|
116
|
-
}
|
|
117
|
-
else if (options?.global || repoPath == null) {
|
|
118
|
-
args.push('--global');
|
|
119
|
-
}
|
|
120
|
-
if (options?.type) {
|
|
121
|
-
args.push(`--type=${options.type}`);
|
|
122
|
-
}
|
|
123
|
-
args.push(key);
|
|
124
|
-
const result = await this.git.run({ cwd: repoPath ?? '', errors: 'ignore', runLocally: options?.runGitLocally }, ...args);
|
|
125
|
-
return result.stdout.trim() || undefined;
|
|
126
|
-
}
|
|
127
|
-
getConfigRegex(repoPath, pattern, options) {
|
|
128
|
-
const global = options?.global || repoPath == null;
|
|
129
|
-
return this.cache.getConfigRegex(global ? undefined : repoPath, pattern, () => this.getConfigRegexCore(repoPath, pattern, options));
|
|
130
|
-
}
|
|
131
|
-
async getConfigRegexCore(repoPath, pattern, options) {
|
|
132
|
-
const args = ['config', '--get-regex'];
|
|
133
|
-
if (options?.file) {
|
|
134
|
-
args.push('-f', options.file);
|
|
135
|
-
}
|
|
136
|
-
else if (options?.global || repoPath == null) {
|
|
137
|
-
args.push('--global');
|
|
138
|
-
}
|
|
139
|
-
args.push(pattern);
|
|
140
|
-
const result = await this.git.run({ cwd: repoPath ?? '', errors: 'ignore', runLocally: options?.runGitLocally }, ...args);
|
|
141
|
-
// Deliberately NOT `.trim()`-ed: an explicit-empty value's LAST line ends in a meaningful trailing
|
|
142
|
-
// space, and `.trim()`-ing the whole (possibly multi-line) buffer strips it — `parseConfigRegexOutput`
|
|
143
|
-
// already skips the blank line a trailing newline produces, so no trim is needed.
|
|
144
|
-
return parseConfigRegexOutput(result.stdout);
|
|
145
|
-
}
|
|
146
|
-
async setConfig(repoPath, key, value, options) {
|
|
147
|
-
return this.setConfigCore(repoPath, key, value, options);
|
|
148
|
-
}
|
|
149
|
-
async setConfigCore(repoPath, key, value, options) {
|
|
150
|
-
const args = ['config'];
|
|
151
|
-
if (options?.file) {
|
|
152
|
-
args.push('-f', options.file);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
const global = options?.global || repoPath == null;
|
|
156
|
-
args.push(global ? '--global' : '--local');
|
|
157
|
-
}
|
|
158
|
-
if (value == null) {
|
|
159
|
-
args.push('--unset', key);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
args.push(key, value);
|
|
163
|
-
}
|
|
164
|
-
await this.git.run({ cwd: repoPath ?? '', runLocally: true }, ...args);
|
|
165
|
-
// Only invalidate cache when not using a custom file (custom files aren't cached)
|
|
166
|
-
if (!options?.file) {
|
|
167
|
-
const global = options?.global || repoPath == null;
|
|
168
|
-
// Invalidate the cached value for this key and clear all regex patterns for this scope
|
|
169
|
-
this.cache.deleteConfig(global ? undefined : repoPath, key);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
async getCurrentUser(repoPath) {
|
|
173
|
-
if (!repoPath)
|
|
174
|
-
return undefined;
|
|
175
|
-
const scope = getScopedLogger();
|
|
176
|
-
const cached = this.cache.currentUser.get(repoPath);
|
|
177
|
-
if (cached != null)
|
|
178
|
-
return cached;
|
|
179
|
-
// If we found null, user data was not found - don't bother trying again
|
|
180
|
-
if (cached === null)
|
|
181
|
-
return undefined;
|
|
182
|
-
const user = { name: undefined, email: undefined };
|
|
183
|
-
try {
|
|
184
|
-
const configMap = await this.getConfigRegex(repoPath, '^user\\.(name|email)$', {
|
|
185
|
-
runGitLocally: true,
|
|
186
|
-
});
|
|
187
|
-
if (configMap.size) {
|
|
188
|
-
user.name = configMap.get('user.name');
|
|
189
|
-
user.email = configMap.get('user.email');
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
user.name =
|
|
193
|
-
process_env.GIT_AUTHOR_NAME || process_env.GIT_COMMITTER_NAME || userInfo()?.username || undefined;
|
|
194
|
-
if (!user.name) {
|
|
195
|
-
// If we found no user data, mark it so we won't bother trying again
|
|
196
|
-
this.cache.currentUser.set(repoPath, null);
|
|
197
|
-
return undefined;
|
|
198
|
-
}
|
|
199
|
-
user.email =
|
|
200
|
-
process_env.GIT_AUTHOR_EMAIL ||
|
|
201
|
-
process_env.GIT_COMMITTER_EMAIL ||
|
|
202
|
-
process_env.EMAIL ||
|
|
203
|
-
`${user.name}@${hostname()}`;
|
|
204
|
-
}
|
|
205
|
-
const author = `${user.name} <${user.email}>`;
|
|
206
|
-
// Check if there is a mailmap for the current user
|
|
207
|
-
const result = await this.git.run({ cwd: repoPath, errors: 'ignore' }, 'check-mailmap', author);
|
|
208
|
-
if (result.stdout && result.stdout !== author) {
|
|
209
|
-
const match = mappedAuthorRegex.exec(result.stdout);
|
|
210
|
-
if (match != null) {
|
|
211
|
-
[, user.name, user.email] = match;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
this.cache.currentUser.set(repoPath, user);
|
|
215
|
-
return user;
|
|
216
|
-
}
|
|
217
|
-
catch (ex) {
|
|
218
|
-
scope?.error(ex);
|
|
219
|
-
// Mark it so we won't bother trying again
|
|
220
|
-
this.cache.currentUser.set(repoPath, null);
|
|
221
|
-
return undefined;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
async getDefaultWorktreePath(repoPath) {
|
|
225
|
-
const gitDir = await this.getGitDir(repoPath);
|
|
226
|
-
if (gitDir == null)
|
|
227
|
-
return undefined;
|
|
228
|
-
const basePath = (gitDir.commonUri ?? gitDir.uri).fsPath;
|
|
229
|
-
return getBestPath(normalizePath(joinPaths(basePath, '..')));
|
|
230
|
-
}
|
|
231
|
-
async getGitDir(repoPath) {
|
|
232
|
-
const cached = this.cache.gitDir.get(repoPath);
|
|
233
|
-
if (cached != null)
|
|
234
|
-
return cached;
|
|
235
|
-
const scope = getScopedLogger();
|
|
236
|
-
const repoInfo = await this.getRepositoryInfo(repoPath);
|
|
237
|
-
let gitDir;
|
|
238
|
-
if (!Array.isArray(repoInfo) && repoInfo != null) {
|
|
239
|
-
gitDir = {
|
|
240
|
-
uri: fileUri(repoInfo.gitDir),
|
|
241
|
-
commonUri: repoInfo.commonGitDir ? fileUri(repoInfo.commonGitDir) : undefined,
|
|
242
|
-
parentUri: repoInfo.superprojectPath ? fileUri(repoInfo.superprojectPath) : undefined,
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
gitDir = {
|
|
247
|
-
uri: this.provider.getAbsoluteUri(joinPaths(repoPath, '.git'), repoPath),
|
|
248
|
-
};
|
|
249
|
-
const gitDirPath = gitDir.uri.toString(true);
|
|
250
|
-
scope?.warn(`rev-parse failed for '${repoPath}'; falling back to '${gitDirPath}'`);
|
|
251
|
-
this.context.hooks?.operations?.onGitDirResolveFailed?.(repoPath, gitDirPath, `rev_parse returned ${JSON.stringify(repoInfo)}`);
|
|
252
|
-
}
|
|
253
|
-
this.cache.gitDir.set(repoPath, gitDir);
|
|
254
|
-
return gitDir;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Gets the path to the .git/gk/config file for storing GitKraken-specific metadata.
|
|
258
|
-
* Uses commonPath for worktrees so all worktrees share the same data.
|
|
259
|
-
*/
|
|
260
|
-
async getGkConfigPath(repoPath) {
|
|
261
|
-
const gitDir = await this.getGitDir(repoPath);
|
|
262
|
-
if (gitDir == null)
|
|
263
|
-
return undefined;
|
|
264
|
-
// Use commonUri (main .git dir) for worktrees, otherwise use uri
|
|
265
|
-
const basePath = (gitDir.commonUri ?? gitDir.uri).fsPath;
|
|
266
|
-
return joinPaths(basePath, 'gk', 'config');
|
|
267
|
-
}
|
|
268
|
-
async getGkConfig(repoPath, key) {
|
|
269
|
-
// Served in-memory from a single bulk read of the whole `.git/gk/config` (no gk read needs `--type`).
|
|
270
|
-
// Canonicalize the key the way git does for `--get-regexp` output so subsection-less keys
|
|
271
|
-
// (e.g. `gk.defaultRemote`) match, and coerce an empty value to undefined to match the old
|
|
272
|
-
// `git config --get` (`.trim() || undefined`) contract.
|
|
273
|
-
return (await this.getGkConfigMap(repoPath)).get(canonicalizeGitConfigKey(key)) || undefined;
|
|
274
|
-
}
|
|
275
|
-
async getGkConfigRegex(repoPath, pattern) {
|
|
276
|
-
const all = await this.getGkConfigMap(repoPath);
|
|
277
|
-
// Filter the bulk map in-memory. The old path passed `pattern` to `git config --get-regex`
|
|
278
|
-
// (errors ignored → empty result on a bad pattern); preserve that no-throw contract here
|
|
279
|
-
// rather than letting an invalid-JS pattern reject the read.
|
|
280
|
-
let re;
|
|
281
|
-
try {
|
|
282
|
-
re = new RegExp(pattern);
|
|
283
|
-
}
|
|
284
|
-
catch {
|
|
285
|
-
return new Map();
|
|
286
|
-
}
|
|
287
|
-
const result = new Map();
|
|
288
|
-
for (const [k, v] of all) {
|
|
289
|
-
if (re.test(k)) {
|
|
290
|
-
result.set(k, v);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
return result;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Reads the entire `.git/gk/config` in one `git config --get-regexp` and caches the parsed map
|
|
297
|
-
* per commonPath. Per-key (getGkConfig) and per-namespace (getGkConfigRegex) lookups are served
|
|
298
|
-
* from this single cached read — so a branch-overview render that fans out across several gk
|
|
299
|
-
* namespaces costs one `git config` call instead of one per namespace.
|
|
300
|
-
*/
|
|
301
|
-
async getGkConfigMap(repoPath) {
|
|
302
|
-
// Migrate BEFORE populating the cache, not inside the factory: a first-time migration calls
|
|
303
|
-
// clearCaches('gkConfig'), which would otherwise evict the in-flight gkConfigMap entry the
|
|
304
|
-
// cache wrapper synchronously stored and force a redundant bulk re-read.
|
|
305
|
-
await this.migrateGkConfigFromGitConfig(this.cache.getCommonPath(repoPath));
|
|
306
|
-
return this.cache.getGkConfigMap(repoPath, async (cacheable) => {
|
|
307
|
-
const { map, failed } = await this.getGkConfigRegexCore(repoPath, gkConfigAllPattern);
|
|
308
|
-
// This map has no TTL and everything gk-related reads through it, so a failed read cached as an
|
|
309
|
-
// empty map would report every branch as having no stored base or merge target for the session —
|
|
310
|
-
// and would make the section-cleanup pre-checks skip real work. Only cache a read that happened.
|
|
311
|
-
if (failed) {
|
|
312
|
-
cacheable.invalidate();
|
|
313
|
-
}
|
|
314
|
-
return map;
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
async getGkConfigRegexCore(repoPath, pattern) {
|
|
318
|
-
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
319
|
-
// No `.git/gk/config` yet is a real answer, not a failure — a repo GitLens has never written to.
|
|
320
|
-
if (!gkConfigPath)
|
|
321
|
-
return { map: new Map(), failed: false };
|
|
322
|
-
const result = await this.git.run({ cwd: repoPath, errors: 'ignore', runLocally: true }, 'config', '--get-regex', '-f', gkConfigPath, pattern);
|
|
323
|
-
// `--get-regex` exits 1 when nothing matches, which IS an answer (an empty gk config).
|
|
324
|
-
const exited = result.completion.status === 'exited';
|
|
325
|
-
return {
|
|
326
|
-
// Deliberately NOT `.trim()`-ed — see `getConfigRegexCore`'s comment: it strips the trailing
|
|
327
|
-
// space that marks an explicit-empty value's LAST line, silently dropping it from the map.
|
|
328
|
-
map: parseConfigRegexOutput(result.stdout),
|
|
329
|
-
failed: !exited || (result.exitCode !== 0 && result.exitCode !== 1),
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
async setGkConfig(repoPath, key, value, options) {
|
|
333
|
-
// Encode the skip-invalidation option in the dedup key: a self-write (with skip targets)
|
|
334
|
-
// and a user-driven write of the same `(key, value)` (no skip targets) have different
|
|
335
|
-
// cache-invalidation semantics, so sharing their Promise would silently let the user-driven
|
|
336
|
-
// write skip invalidation. Sort the array so callers passing the same targets in different
|
|
337
|
-
// orders share a single in-flight write.
|
|
338
|
-
const commonPath = this.cache.getCommonPath(repoPath);
|
|
339
|
-
const skipKey = options?.skipInvalidation?.length ? options.skipInvalidation.toSorted().join(',') : '';
|
|
340
|
-
const dedupKey = `${commonPath}\0${key}\0${value ?? ''}\0${skipKey}`;
|
|
341
|
-
const pending = this._pendingGkConfigWrites.get(dedupKey);
|
|
342
|
-
if (pending != null)
|
|
343
|
-
return pending;
|
|
344
|
-
const promise = this.setGkConfigCore(repoPath, key, value, options);
|
|
345
|
-
this._pendingGkConfigWrites.set(dedupKey, promise);
|
|
346
|
-
// Swallow the cleanup chain's rejection so a failed write doesn't surface as an unhandled
|
|
347
|
-
// rejection separate from the caller's own handling of the returned promise.
|
|
348
|
-
void promise.finally(() => this._pendingGkConfigWrites.delete(dedupKey)).catch(() => { });
|
|
349
|
-
return promise;
|
|
350
|
-
}
|
|
351
|
-
async setGkConfigCore(repoPath, key, value, options) {
|
|
352
|
-
const scope = getScopedLogger();
|
|
353
|
-
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
354
|
-
if (!gkConfigPath)
|
|
355
|
-
return;
|
|
356
|
-
const gkConfigFolder = joinPaths(gkConfigPath, '..');
|
|
357
|
-
if (!(await this.ensureGkConfigFolder(gkConfigFolder, scope)))
|
|
358
|
-
return;
|
|
359
|
-
await this.setConfigCore(repoPath, key, value, { file: gkConfigPath });
|
|
360
|
-
// Invalidate the bulk map (so the next read re-fetches) and the derived caches for this key's
|
|
361
|
-
// ref. The `.git/gk/config` file-watcher also fires `'gkConfig'` shortly after, which reconciles
|
|
362
|
-
// the same change (see `reconcileGkConfig`) — recording our own write here keeps that later
|
|
363
|
-
// reconcile from re-diffing this key as an external change.
|
|
364
|
-
this.cache.deleteGkConfig(repoPath, key, options);
|
|
365
|
-
this.cache.recordGkConfigWrite(repoPath, key, value);
|
|
366
|
-
}
|
|
367
|
-
async removeGkConfigBranchSection(repoPath, ref) {
|
|
368
|
-
await this.runGkConfigSectionCommand(repoPath, ref, '--remove-section', `branch.${ref}`);
|
|
369
|
-
}
|
|
370
|
-
async renameGkConfigBranchSection(repoPath, oldRef, newRef) {
|
|
371
|
-
// Clear the destination first, unconditionally. `--rename-section` onto a section that already
|
|
372
|
-
// exists APPENDS rather than replaces, leaving duplicate keys — and git resolves a duplicated key
|
|
373
|
-
// to its LAST value, so the orphan left by an earlier branch of this name would win over the
|
|
374
|
-
// metadata being moved. Doing this outside `runGkConfigSectionCommand` also covers the case where
|
|
375
|
-
// the source has no gk keys at all, where its pre-check would otherwise skip the whole call and
|
|
376
|
-
// leave the orphan in place for the renamed branch to inherit.
|
|
377
|
-
await this.removeGkConfigBranchSection(repoPath, newRef);
|
|
378
|
-
await this.runGkConfigSectionCommand(repoPath, oldRef, '--rename-section', `branch.${oldRef}`, `branch.${newRef}`);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Runs a section-level `git config` against `.git/gk/config` for `ref`'s section, skipping the
|
|
382
|
-
* subprocess entirely when the bulk map (already cached on any warm path) shows that ref has no gk
|
|
383
|
-
* keys — the overwhelmingly common case, since most branches never get gk metadata written at all.
|
|
384
|
-
*
|
|
385
|
-
* Never throws: callers invoke this as bookkeeping after a branch op has already succeeded, so a
|
|
386
|
-
* failure here must not be reported as (or roll back) the branch/checkout/worktree operation itself.
|
|
387
|
-
* The worst case is metadata that stays behind until the next op on that name.
|
|
388
|
-
*/
|
|
389
|
-
async runGkConfigSectionCommand(repoPath, ref, ...args) {
|
|
390
|
-
const scope = getScopedLogger();
|
|
391
|
-
try {
|
|
392
|
-
const prefix = `branch.${ref}.`;
|
|
393
|
-
const map = await this.getGkConfigMap(repoPath);
|
|
394
|
-
// The shortcut needs a map with CONTENT to be trustworthy. A failed bulk read resolves empty
|
|
395
|
-
// (see `getGkConfigMap`) — the cache refuses it, but this caller still holds it — and an empty map
|
|
396
|
-
// read as authoritative would skip the removal entirely, leaving a deleted branch's base,
|
|
397
|
-
// disposition and issue links behind for the next branch reusing that name. When it's empty, run
|
|
398
|
-
// the command: worst case is a no-op on a section that isn't there.
|
|
399
|
-
if (map.size && !some(map.keys(), k => k.startsWith(prefix)))
|
|
400
|
-
return;
|
|
401
|
-
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
402
|
-
if (!gkConfigPath)
|
|
403
|
-
return;
|
|
404
|
-
// `getGkConfigPath` only joins a path, so check the file: with no `.git/gk/config` there is
|
|
405
|
-
// genuinely nothing to remove, and running the command would fail with a fatal we'd then warn
|
|
406
|
-
// about on every branch delete in a repo that has never had gk metadata.
|
|
407
|
-
if (!(await fsExists(gkConfigPath)))
|
|
408
|
-
return;
|
|
409
|
-
const result = await this.git.run({ cwd: repoPath, runLocally: true, errors: 'ignore' }, 'config', '-f', gkConfigPath, ...args);
|
|
410
|
-
// `errors: 'ignore'` is deliberate — see the note above on why this must never throw — but that
|
|
411
|
-
// also means the `catch` below never sees a failed write, so without this the metadata silently
|
|
412
|
-
// stays behind (or, on a rename, stays under the old name) with nothing recorded anywhere.
|
|
413
|
-
// Reported, not thrown: the branch op it follows has already succeeded.
|
|
414
|
-
if (result.completion.status !== 'exited' || result.exitCode !== 0) {
|
|
415
|
-
scope?.warn(`Failed to update gk config section for '${ref}' in '${repoPath}': ${result.completion.status === 'exited'
|
|
416
|
-
? `git config exited ${result.exitCode}`
|
|
417
|
-
: `${result.completion.status} · ${result.completion.error.message}`}`);
|
|
418
|
-
}
|
|
419
|
-
// A whole section moved or vanished, which the per-key `deleteGkConfig` cascade can't express.
|
|
420
|
-
// Drop the bulk map so the next read hits disk; the derived caches for the affected ref are
|
|
421
|
-
// evicted by the caller's own `deleteBaseBranchName` plus the `'branches'` cascade it fires.
|
|
422
|
-
this.cache.deleteGkConfigMap(repoPath);
|
|
423
|
-
}
|
|
424
|
-
catch (ex) {
|
|
425
|
-
scope?.error(ex, `Failed to update gk config section for '${ref}' in '${repoPath}'`);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Reconciles a watcher-observed `'gkConfig'` change — registered with the shared `Cache` as its
|
|
430
|
-
* gk-config reconciler (see the constructor). Re-reads the bulk map (hard-evicted by
|
|
431
|
-
* `Cache.handleGkConfigChanged`, so this hits disk) and diffs it against `priorSnapshot` to cascade
|
|
432
|
-
* `baseBranchName`/`branchOverviews` only for refs whose merge-relevant keys actually changed.
|
|
433
|
-
*
|
|
434
|
-
* Serialized per commonPath: a reconcile is a read-then-diff against a single shared baseline, so
|
|
435
|
-
* two overlapping passes would both diff against the same snapshot and the later change could fall
|
|
436
|
-
* out entirely. An event arriving mid-pass instead queues one trailing pass, which re-reads and
|
|
437
|
-
* diffs against the baseline the previous pass just established.
|
|
438
|
-
*
|
|
439
|
-
* `.git/gk/config` lives in the common dir, so the watcher delivers one event per worktree sharing it
|
|
440
|
-
* (see `WatchGroup.onCommonEvent`). Siblings never run concurrently — the later ones fold into the
|
|
441
|
-
* in-flight pass — but folding in arms the trailing pass, so a fan-out costs one extra read that
|
|
442
|
-
* re-reads and diffs an unchanged file. However many siblings land while a pass is running, they
|
|
443
|
-
* coalesce into that single trailing pass; the cost is the price of never dropping a real change.
|
|
444
|
-
* Every reporting path is retained because `Repository` matches the follow-up change event on exact
|
|
445
|
-
* path, and a sibling worktree that never receives one would sit on stale derived values.
|
|
446
|
-
*/
|
|
447
|
-
reconcileGkConfig(repoPath, priorSnapshot) {
|
|
448
|
-
const commonPath = this.cache.getCommonPath(repoPath);
|
|
449
|
-
const inflight = this._gkConfigReconciles.get(commonPath);
|
|
450
|
-
if (inflight != null) {
|
|
451
|
-
inflight.paths.set(repoPath, this.cache.getCloseGeneration(repoPath));
|
|
452
|
-
inflight.pending = true;
|
|
453
|
-
// Handed to the in-flight pass's trailing loop, so it IS being reconciled — just not by this
|
|
454
|
-
// call. Reporting a failure here would coarse-clear on every write in a burst.
|
|
455
|
-
return 'deferred';
|
|
456
|
-
}
|
|
457
|
-
const entry = { pending: false, paths: new Map([[repoPath, this.cache.getCloseGeneration(repoPath)]]) };
|
|
458
|
-
this._gkConfigReconciles.set(commonPath, entry);
|
|
459
|
-
return this.runGkConfigReconcile(commonPath, priorSnapshot, entry);
|
|
460
|
-
}
|
|
461
|
-
/** Drops paths that closed since they reported the change; returns whichever remain. */
|
|
462
|
-
pruneClosedReconcilePaths(paths) {
|
|
463
|
-
for (const [path, generation] of paths) {
|
|
464
|
-
if (this.cache.getCloseGeneration(path) !== generation) {
|
|
465
|
-
paths.delete(path);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
return paths;
|
|
469
|
-
}
|
|
470
|
-
async runGkConfigReconcile(commonPath, priorSnapshot, entry) {
|
|
471
|
-
const scope = getScopedLogger();
|
|
472
|
-
let snapshot = priorSnapshot;
|
|
473
|
-
try {
|
|
474
|
-
do {
|
|
475
|
-
entry.pending = false;
|
|
476
|
-
// Read through a path that's still open — one worktree closing must not drop the event for
|
|
477
|
-
// its still-open siblings, which is why this reads from the surviving set rather than from
|
|
478
|
-
// whichever path happened to report first.
|
|
479
|
-
const readPath = first(this.pruneClosedReconcilePaths(entry.paths).keys());
|
|
480
|
-
// Every path that reported the change has since closed — nothing left to reconcile, and
|
|
481
|
-
// nothing left holding a stale derived value either.
|
|
482
|
-
if (readPath == null)
|
|
483
|
-
return 'reconciled';
|
|
484
|
-
// A trailing pass must not reuse the entry the pass before it installed.
|
|
485
|
-
this.cache.deleteGkConfigMap(readPath);
|
|
486
|
-
const freshMap = await this.getGkConfigMap(readPath);
|
|
487
|
-
// Paths may have closed while the re-read was in flight; if every one did, there's nothing
|
|
488
|
-
// left to reconcile against.
|
|
489
|
-
if (!this.pruneClosedReconcilePaths(entry.paths).size)
|
|
490
|
-
return 'reconciled';
|
|
491
|
-
if (this.cache.reconcileGkConfigMap(readPath, snapshot, freshMap)) {
|
|
492
|
-
// Fire a follow-up change: a consumer that re-read on the original event may have done so
|
|
493
|
-
// before this async cascade landed, so it would otherwise hold a stale derived value with
|
|
494
|
-
// nothing left to prompt another re-read.
|
|
495
|
-
for (const path of entry.paths.keys()) {
|
|
496
|
-
this.context.hooks?.repository?.onChanged?.(path, ['gkConfig']);
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
// `reconcileGkConfigMap` advanced the stored baseline to what we just read; a trailing pass
|
|
500
|
-
// diffs its own read against that.
|
|
501
|
-
snapshot = this.cache.getGkConfigMergeSnapshot(readPath);
|
|
502
|
-
} while (entry.pending);
|
|
503
|
-
return 'reconciled';
|
|
504
|
-
}
|
|
505
|
-
catch (ex) {
|
|
506
|
-
scope?.error(ex, `Failed to reconcile gk config for '${commonPath}'`);
|
|
507
|
-
// The caller falls back to the coarse clear — derived caches are otherwise left holding
|
|
508
|
-
// pre-change values with nothing to correct them.
|
|
509
|
-
return 'failed';
|
|
510
|
-
}
|
|
511
|
-
finally {
|
|
512
|
-
this._gkConfigReconciles.delete(commonPath);
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
async getSigningConfig(repoPath) {
|
|
516
|
-
// Fetch all signing-related config in one call
|
|
517
|
-
const configMap = await this.getConfigRegex(repoPath, '^(commit\\.gpgsign|gpg\\.format|user\\.signingkey|gpg\\.program|gpg\\.ssh\\.program|gpg\\.ssh\\.allowedsignersfile)$');
|
|
518
|
-
// Extract values (keys are lowercase in git output)
|
|
519
|
-
const enabledRaw = configMap.get('commit.gpgsign');
|
|
520
|
-
const format = configMap.get('gpg.format');
|
|
521
|
-
const signingKey = configMap.get('user.signingkey');
|
|
522
|
-
const gpgProgram = configMap.get('gpg.program');
|
|
523
|
-
const sshProgram = configMap.get('gpg.ssh.program');
|
|
524
|
-
const allowedSignersFile = configMap.get('gpg.ssh.allowedsignersfile');
|
|
525
|
-
// Check if git config has commit signing enabled, falling back to the host-level override
|
|
526
|
-
// (e.g. VS Code's `git.enableCommitSigning`) when `commit.gpgsign` is unset/false. The host
|
|
527
|
-
// override can only enable signing, never force it off.
|
|
528
|
-
const isEnabled = parseGitBoolean(enabledRaw) || this.context.config?.signing?.enabled === true;
|
|
529
|
-
return {
|
|
530
|
-
enabled: isEnabled,
|
|
531
|
-
format: format ?? 'gpg',
|
|
532
|
-
signingKey: signingKey,
|
|
533
|
-
gpgProgram: gpgProgram,
|
|
534
|
-
sshProgram: sshProgram,
|
|
535
|
-
allowedSignersFile: allowedSignersFile,
|
|
536
|
-
};
|
|
537
|
-
}
|
|
538
|
-
async validateSigningSetup(repoPath) {
|
|
539
|
-
const config = await this.getSigningConfig(repoPath);
|
|
540
|
-
if (!config.signingKey) {
|
|
541
|
-
return { valid: false, error: 'No signing key configured' };
|
|
542
|
-
}
|
|
543
|
-
// Basic validation: just check that a signing key is configured
|
|
544
|
-
// Git will handle the actual validation when signing commits
|
|
545
|
-
return { valid: true };
|
|
546
|
-
}
|
|
547
|
-
async setSigningConfig(repoPath, config, options) {
|
|
548
|
-
const scope = getScopedLogger();
|
|
549
|
-
try {
|
|
550
|
-
if (config.enabled != null) {
|
|
551
|
-
await this.setConfig(repoPath, 'commit.gpgsign', config.enabled ? 'true' : 'false', options);
|
|
552
|
-
}
|
|
553
|
-
if (config.format != null) {
|
|
554
|
-
await this.setConfig(repoPath, 'gpg.format', config.format, options);
|
|
555
|
-
}
|
|
556
|
-
if (config.signingKey != null) {
|
|
557
|
-
await this.setConfig(repoPath, 'user.signingkey', config.signingKey, options);
|
|
558
|
-
}
|
|
559
|
-
if (config.gpgProgram != null) {
|
|
560
|
-
await this.setConfig(repoPath, 'gpg.program', config.gpgProgram, options);
|
|
561
|
-
}
|
|
562
|
-
if (config.sshProgram != null) {
|
|
563
|
-
await this.setConfig(repoPath, 'gpg.ssh.program', config.sshProgram, options);
|
|
564
|
-
}
|
|
565
|
-
if (config.allowedSignersFile != null) {
|
|
566
|
-
await this.setConfig(repoPath, 'gpg.ssh.allowedSignersFile', config.allowedSignersFile, options);
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
catch (ex) {
|
|
570
|
-
scope?.error(ex);
|
|
571
|
-
throw ex;
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
getSigningConfigFlags(config) {
|
|
575
|
-
const flags = [];
|
|
576
|
-
if (config.gpgProgram) {
|
|
577
|
-
flags.push('-c', `gpg.program=${config.gpgProgram}`);
|
|
578
|
-
}
|
|
579
|
-
if (config.format && config.format !== 'gpg') {
|
|
580
|
-
flags.push('-c', `gpg.format=${config.format}`);
|
|
581
|
-
}
|
|
582
|
-
if (config.sshProgram) {
|
|
583
|
-
flags.push('-c', `gpg.ssh.program=${config.sshProgram}`);
|
|
584
|
-
}
|
|
585
|
-
if (config.allowedSignersFile) {
|
|
586
|
-
flags.push('-c', `gpg.ssh.allowedSignersFile=${config.allowedSignersFile}`);
|
|
587
|
-
}
|
|
588
|
-
return flags;
|
|
589
|
-
}
|
|
590
|
-
async getRepositoryInfo(cwd) {
|
|
591
|
-
let result;
|
|
592
|
-
if (this.context.workspace?.isTrusted === false) {
|
|
593
|
-
try {
|
|
594
|
-
await fs.stat(joinPaths(cwd, 'HEAD'));
|
|
595
|
-
result = await this.git.run({ cwd: cwd, errors: 'throw', configs: ['-C', cwd] }, 'rev-parse', '--show-cdup');
|
|
596
|
-
if (!result.stdout.trim()) {
|
|
597
|
-
Logger.warn(`Skipping (untrusted); bare clone repository detected in '${cwd}'`);
|
|
598
|
-
return emptyArray;
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
catch {
|
|
602
|
-
// If this throws, we should be good to open the repo
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
try {
|
|
606
|
-
result = await this.git.run({ cwd: cwd, errors: 'throw' }, 'rev-parse', '--show-toplevel', '--git-dir', '--git-common-dir', '--show-superproject-working-tree');
|
|
607
|
-
if (!result.stdout)
|
|
608
|
-
return emptyArray;
|
|
609
|
-
// Output is 3-4 lines: show-toplevel, git-dir, git-common-dir, [show-superproject-working-tree]
|
|
610
|
-
// The 4th line is only present for submodules
|
|
611
|
-
const lines = result.stdout.split('\n').map(r => r.trimStart());
|
|
612
|
-
const [repoPath, dotGitPath, commonDotGitPath, superprojectPath] = lines;
|
|
613
|
-
if (!repoPath)
|
|
614
|
-
return emptyArray;
|
|
615
|
-
const normalizedRepoPath = normalizePath(repoPath.replace(/[\r|\n]+$/, ''));
|
|
616
|
-
let gitDir = dotGitPath;
|
|
617
|
-
if (gitDir && !isAbsolute(gitDir)) {
|
|
618
|
-
gitDir = joinPaths(cwd, gitDir);
|
|
619
|
-
}
|
|
620
|
-
gitDir = normalizePath(gitDir);
|
|
621
|
-
let commonGitDir;
|
|
622
|
-
if (commonDotGitPath) {
|
|
623
|
-
commonGitDir = commonDotGitPath;
|
|
624
|
-
if (!isAbsolute(commonGitDir)) {
|
|
625
|
-
commonGitDir = joinPaths(cwd, commonGitDir);
|
|
626
|
-
}
|
|
627
|
-
commonGitDir = normalizePath(commonGitDir);
|
|
628
|
-
if (commonGitDir === gitDir) {
|
|
629
|
-
commonGitDir = undefined;
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
return {
|
|
633
|
-
repoPath: normalizedRepoPath,
|
|
634
|
-
gitDir: gitDir,
|
|
635
|
-
commonGitDir: commonGitDir,
|
|
636
|
-
superprojectPath: superprojectPath?.trim() || undefined,
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
catch (ex) {
|
|
640
|
-
if (ex instanceof WorkspaceUntrustedError)
|
|
641
|
-
return emptyArray;
|
|
642
|
-
const unsafeMatch = /(?:^fatal:\s*detected dubious ownership in repository at '([^']+)'|unsafe repository \('([^']+)' is owned by someone else\))[\s\S]*(git config --global --add safe\.directory [^\n\u2022]+)/m.exec(ex.stderr);
|
|
643
|
-
if (unsafeMatch != null) {
|
|
644
|
-
Logger.warn(`Skipping; unsafe repository detected in '${unsafeMatch[1] || unsafeMatch[2]}'; run '${unsafeMatch[3]}' to allow it`);
|
|
645
|
-
return [false];
|
|
646
|
-
}
|
|
647
|
-
const inDotGit = /this operation must be run in a work tree/.test(ex.stderr);
|
|
648
|
-
if (inDotGit && this.context.workspace?.isTrusted !== false) {
|
|
649
|
-
result = await this.git.run({ cwd: cwd, errors: 'ignore' }, 'rev-parse', '--is-bare-repository');
|
|
650
|
-
if (result.stdout.trim() === 'true') {
|
|
651
|
-
const result = await this.revParseGitDir(cwd);
|
|
652
|
-
const repoPath = result?.commonPath ?? result?.path;
|
|
653
|
-
if (repoPath?.length)
|
|
654
|
-
return [true, repoPath];
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
if (inDotGit || ex.code === 'ENOENT') {
|
|
658
|
-
let exists = inDotGit ? false : await fsExists(cwd);
|
|
659
|
-
if (!exists) {
|
|
660
|
-
do {
|
|
661
|
-
const parent = dirname(cwd);
|
|
662
|
-
if (parent === cwd || parent.length === 0)
|
|
663
|
-
return emptyArray;
|
|
664
|
-
cwd = parent;
|
|
665
|
-
exists = await fsExists(cwd);
|
|
666
|
-
} while (!exists);
|
|
667
|
-
return this.getRepositoryInfo(cwd);
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
return emptyArray;
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
async revParseGitDir(cwd) {
|
|
674
|
-
const result = await this.git.run({ cwd: cwd, errors: 'ignore' }, 'rev-parse', '--git-dir', '--git-common-dir');
|
|
675
|
-
if (!result.stdout)
|
|
676
|
-
return undefined;
|
|
677
|
-
let [dotGitPath, commonDotGitPath] = result.stdout.split('\n').map(r => r.trimStart());
|
|
678
|
-
if (!isAbsolute(dotGitPath)) {
|
|
679
|
-
dotGitPath = joinPaths(cwd, dotGitPath);
|
|
680
|
-
}
|
|
681
|
-
dotGitPath = normalizePath(dotGitPath);
|
|
682
|
-
if (commonDotGitPath) {
|
|
683
|
-
if (!isAbsolute(commonDotGitPath)) {
|
|
684
|
-
commonDotGitPath = joinPaths(cwd, commonDotGitPath);
|
|
685
|
-
}
|
|
686
|
-
commonDotGitPath = normalizePath(commonDotGitPath);
|
|
687
|
-
return { path: dotGitPath, commonPath: commonDotGitPath !== dotGitPath ? commonDotGitPath : undefined };
|
|
688
|
-
}
|
|
689
|
-
return { path: dotGitPath };
|
|
690
|
-
}
|
|
691
|
-
/**
|
|
692
|
-
* Ensures the `.git/gk/` folder exists, but only if the parent `.git` directory already exists.
|
|
693
|
-
* This prevents creating stray `.git` directories if the computed path is wrong.
|
|
694
|
-
* Returns `true` if the folder was ensured, `false` if the parent `.git` does not exist.
|
|
695
|
-
*/
|
|
696
|
-
async ensureGkConfigFolder(gkConfigFolder, scope) {
|
|
697
|
-
// Verify the .git directory already exists — never create it from scratch
|
|
698
|
-
const dotGitDir = joinPaths(gkConfigFolder, '..');
|
|
699
|
-
try {
|
|
700
|
-
await fs.stat(dotGitDir);
|
|
701
|
-
}
|
|
702
|
-
catch {
|
|
703
|
-
scope?.warn(`Skipping GK config write — expected git directory '${dotGitDir}' does not exist`);
|
|
704
|
-
return false;
|
|
705
|
-
}
|
|
706
|
-
try {
|
|
707
|
-
await fs.mkdir(gkConfigFolder, { recursive: true });
|
|
708
|
-
}
|
|
709
|
-
catch (ex) {
|
|
710
|
-
scope?.error(ex, `Failed to create '${gkConfigFolder}' directory`);
|
|
711
|
-
return false;
|
|
712
|
-
}
|
|
713
|
-
return true;
|
|
714
|
-
}
|
|
715
|
-
_migratedRepos = new Set();
|
|
716
|
-
/**
|
|
717
|
-
* One-time migration of GK config entries from regular git config to `.git/gk/config`.
|
|
718
|
-
* If `.git/gk/config` already exists, assumes migration is complete (or data is already there).
|
|
719
|
-
* Preserves existing `.git/gk/config` values as source of truth (won't overwrite).
|
|
720
|
-
* Removes migrated keys from regular git config to stop cluttering it.
|
|
721
|
-
*/
|
|
722
|
-
async migrateGkConfigFromGitConfig(repoPath) {
|
|
723
|
-
if (this._migratedRepos.has(repoPath))
|
|
724
|
-
return;
|
|
725
|
-
const scope = getScopedLogger();
|
|
726
|
-
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
727
|
-
if (!gkConfigPath) {
|
|
728
|
-
this._migratedRepos.add(repoPath);
|
|
729
|
-
return;
|
|
730
|
-
}
|
|
731
|
-
const gkConfigFolder = joinPaths(gkConfigPath, '..');
|
|
732
|
-
// If .git/gk/config already exists, consider migration done — it was either
|
|
733
|
-
// already migrated or values were written there directly via setGkConfig
|
|
734
|
-
try {
|
|
735
|
-
await fs.stat(gkConfigPath);
|
|
736
|
-
this._migratedRepos.add(repoPath);
|
|
737
|
-
return;
|
|
738
|
-
}
|
|
739
|
-
catch {
|
|
740
|
-
// file doesn't exist, proceed with migration
|
|
741
|
-
}
|
|
742
|
-
// If .git/gk/config doesn't exist, create an empty file to prevent multiple migration attempts in future sessions
|
|
743
|
-
if (!(await this.ensureGkConfigFolder(gkConfigFolder, scope)))
|
|
744
|
-
return;
|
|
745
|
-
try {
|
|
746
|
-
await fs.writeFile(gkConfigPath, new Uint8Array());
|
|
747
|
-
}
|
|
748
|
-
catch (ex) {
|
|
749
|
-
scope?.error(ex, `Failed to create '${gkConfigPath}' file`);
|
|
750
|
-
}
|
|
751
|
-
// Read legacy gk-* keys from regular git config
|
|
752
|
-
let migrateConfig;
|
|
753
|
-
try {
|
|
754
|
-
migrateConfig = await this.getConfigRegexCore(repoPath, '^branch\\..*\\.gk-', { runGitLocally: true });
|
|
755
|
-
}
|
|
756
|
-
catch (ex) {
|
|
757
|
-
scope?.error(ex, 'Failed to read legacy GK config entries');
|
|
758
|
-
this._migratedRepos.add(repoPath);
|
|
759
|
-
return;
|
|
760
|
-
}
|
|
761
|
-
if (!migrateConfig.size) {
|
|
762
|
-
this._migratedRepos.add(repoPath);
|
|
763
|
-
return;
|
|
764
|
-
}
|
|
765
|
-
scope?.info(`Migrating ${String(migrateConfig.size)} GK config entries from git config to .git/gk/config`);
|
|
766
|
-
// Copy legacy entries to .git/gk/config
|
|
767
|
-
for (const [key, value] of [...migrateConfig]) {
|
|
768
|
-
try {
|
|
769
|
-
await this.setConfigCore(repoPath, key, value, { file: gkConfigPath });
|
|
770
|
-
}
|
|
771
|
-
catch (ex) {
|
|
772
|
-
scope?.error(ex, `Failed to migrate key '${key}' to GK config`);
|
|
773
|
-
// If we failed to migrate, delete it from the list so we won't try to remove it from git config later
|
|
774
|
-
migrateConfig.delete(key);
|
|
775
|
-
}
|
|
776
|
-
}
|
|
777
|
-
// Remove legacy keys from regular git config (use --unset-all defensively)
|
|
778
|
-
for (const [key] of migrateConfig) {
|
|
779
|
-
try {
|
|
780
|
-
await this.git.run({ cwd: repoPath, errors: 'ignore', runLocally: true }, 'config', '--local', '--unset-all', key);
|
|
781
|
-
}
|
|
782
|
-
catch (ex) {
|
|
783
|
-
scope?.error(ex, `Failed to remove migrated key '${key}' from git config`);
|
|
784
|
-
}
|
|
785
|
-
}
|
|
786
|
-
// Clear caches since we modified both config files
|
|
787
|
-
this.cache.clearCaches(repoPath, 'config', 'gkConfig');
|
|
788
|
-
this._migratedRepos.add(repoPath);
|
|
789
|
-
}
|
|
66
|
+
function isGitBooleanFalse(value) {
|
|
67
|
+
const normalized = value.toLowerCase().trim();
|
|
68
|
+
return normalized === "" || normalized === "false" || normalized === "no" || normalized === "off" || normalized === "0";
|
|
790
69
|
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
70
|
+
var ConfigGitSubProvider = class {
|
|
71
|
+
context;
|
|
72
|
+
git;
|
|
73
|
+
cache;
|
|
74
|
+
provider;
|
|
75
|
+
constructor(context, git, cache, provider) {
|
|
76
|
+
this.context = context;
|
|
77
|
+
this.git = git;
|
|
78
|
+
this.cache = cache;
|
|
79
|
+
this.provider = provider;
|
|
80
|
+
this.cache.setGkConfigReconciler((repoPath, priorSnapshot) => this.reconcileGkConfig(repoPath, priorSnapshot));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* In-flight gk-config reconciles keyed by commonPath. `pending` records that another `'gkConfig'`
|
|
84
|
+
* event landed mid-pass, so one trailing pass runs after the current one settles. `paths` holds every
|
|
85
|
+
* worktree path that reported the change, mapped to its close generation at that moment — the pass
|
|
86
|
+
* reads through one that's still open and notifies all of them.
|
|
87
|
+
*/
|
|
88
|
+
_gkConfigReconciles = /* @__PURE__ */ new Map();
|
|
89
|
+
/**
|
|
90
|
+
* Pending `setGkConfig` writes keyed by `(commonPath, key, value, skip-option)`. Concurrent
|
|
91
|
+
* callers writing the same `(key, value)` pair share the in-flight Promise so only one
|
|
92
|
+
* `git config --set` subprocess actually runs. Cleared on settle.
|
|
93
|
+
*/
|
|
94
|
+
_pendingGkConfigWrites = /* @__PURE__ */ new Map();
|
|
95
|
+
getConfig(repoPath, key, options) {
|
|
96
|
+
const global = options?.global || repoPath == null;
|
|
97
|
+
return this.cache.getConfig(global ? void 0 : repoPath, key, () => this.getConfigCore(repoPath, key, options));
|
|
98
|
+
}
|
|
99
|
+
async getConfigCore(repoPath, key, options) {
|
|
100
|
+
const args = ["config", "--get"];
|
|
101
|
+
if (options?.file) args.push("-f", options.file);
|
|
102
|
+
else if (options?.global || repoPath == null) args.push("--global");
|
|
103
|
+
if (options?.type) args.push(`--type=${options.type}`);
|
|
104
|
+
args.push(key);
|
|
105
|
+
return (await this.git.run({
|
|
106
|
+
cwd: repoPath ?? "",
|
|
107
|
+
errors: "ignore",
|
|
108
|
+
runLocally: options?.runGitLocally
|
|
109
|
+
}, ...args)).stdout.trim() || void 0;
|
|
110
|
+
}
|
|
111
|
+
getConfigRegex(repoPath, pattern, options) {
|
|
112
|
+
const global = options?.global || repoPath == null;
|
|
113
|
+
return this.cache.getConfigRegex(global ? void 0 : repoPath, pattern, () => this.getConfigRegexCore(repoPath, pattern, options));
|
|
114
|
+
}
|
|
115
|
+
async getConfigRegexCore(repoPath, pattern, options) {
|
|
116
|
+
const args = ["config", "--get-regex"];
|
|
117
|
+
if (options?.file) args.push("-f", options.file);
|
|
118
|
+
else if (options?.global || repoPath == null) args.push("--global");
|
|
119
|
+
args.push(pattern);
|
|
120
|
+
return parseConfigRegexOutput((await this.git.run({
|
|
121
|
+
cwd: repoPath ?? "",
|
|
122
|
+
errors: "ignore",
|
|
123
|
+
runLocally: options?.runGitLocally
|
|
124
|
+
}, ...args)).stdout);
|
|
125
|
+
}
|
|
126
|
+
async setConfig(repoPath, key, value, options) {
|
|
127
|
+
return this.setConfigCore(repoPath, key, value, options);
|
|
128
|
+
}
|
|
129
|
+
async setConfigCore(repoPath, key, value, options) {
|
|
130
|
+
const args = ["config"];
|
|
131
|
+
if (options?.file) args.push("-f", options.file);
|
|
132
|
+
else {
|
|
133
|
+
const global = options?.global || repoPath == null;
|
|
134
|
+
args.push(global ? "--global" : "--local");
|
|
135
|
+
}
|
|
136
|
+
if (value == null) args.push("--unset", key);
|
|
137
|
+
else args.push(key, value);
|
|
138
|
+
await this.git.run({
|
|
139
|
+
cwd: repoPath ?? "",
|
|
140
|
+
runLocally: true
|
|
141
|
+
}, ...args);
|
|
142
|
+
if (!options?.file) {
|
|
143
|
+
const global = options?.global || repoPath == null;
|
|
144
|
+
this.cache.deleteConfig(global ? void 0 : repoPath, key);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async getCurrentUser(repoPath) {
|
|
148
|
+
if (!repoPath) return void 0;
|
|
149
|
+
const scope = getScopedLogger();
|
|
150
|
+
const cached = this.cache.currentUser.get(repoPath);
|
|
151
|
+
if (cached != null) return cached;
|
|
152
|
+
if (cached === null) return void 0;
|
|
153
|
+
const user = {
|
|
154
|
+
name: void 0,
|
|
155
|
+
email: void 0
|
|
156
|
+
};
|
|
157
|
+
try {
|
|
158
|
+
const configMap = await this.getConfigRegex(repoPath, "^user\\.(name|email)$", { runGitLocally: true });
|
|
159
|
+
if (configMap.size) {
|
|
160
|
+
user.name = configMap.get("user.name");
|
|
161
|
+
user.email = configMap.get("user.email");
|
|
162
|
+
} else {
|
|
163
|
+
user.name = env.GIT_AUTHOR_NAME || env.GIT_COMMITTER_NAME || userInfo()?.username || void 0;
|
|
164
|
+
if (!user.name) {
|
|
165
|
+
this.cache.currentUser.set(repoPath, null);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
user.email = env.GIT_AUTHOR_EMAIL || env.GIT_COMMITTER_EMAIL || env.EMAIL || `${user.name}@${hostname()}`;
|
|
169
|
+
}
|
|
170
|
+
const author = `${user.name} <${user.email}>`;
|
|
171
|
+
const result = await this.git.run({
|
|
172
|
+
cwd: repoPath,
|
|
173
|
+
errors: "ignore"
|
|
174
|
+
}, "check-mailmap", author);
|
|
175
|
+
if (result.stdout && result.stdout !== author) {
|
|
176
|
+
const match = mappedAuthorRegex.exec(result.stdout);
|
|
177
|
+
if (match != null) [, user.name, user.email] = match;
|
|
178
|
+
}
|
|
179
|
+
this.cache.currentUser.set(repoPath, user);
|
|
180
|
+
return user;
|
|
181
|
+
} catch (ex) {
|
|
182
|
+
scope?.error(ex);
|
|
183
|
+
this.cache.currentUser.set(repoPath, null);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
async getDefaultWorktreePath(repoPath) {
|
|
188
|
+
const gitDir = await this.getGitDir(repoPath);
|
|
189
|
+
if (gitDir == null) return void 0;
|
|
190
|
+
const basePath = (gitDir.commonUri ?? gitDir.uri).fsPath;
|
|
191
|
+
return getBestPath(normalizePath(joinPaths(basePath, "..")));
|
|
192
|
+
}
|
|
193
|
+
async getGitDir(repoPath) {
|
|
194
|
+
const cached = this.cache.gitDir.get(repoPath);
|
|
195
|
+
if (cached != null) return cached;
|
|
196
|
+
const scope = getScopedLogger();
|
|
197
|
+
const repoInfo = await this.getRepositoryInfo(repoPath);
|
|
198
|
+
let gitDir;
|
|
199
|
+
if (!Array.isArray(repoInfo) && repoInfo != null) gitDir = {
|
|
200
|
+
uri: fileUri(repoInfo.gitDir),
|
|
201
|
+
commonUri: repoInfo.commonGitDir ? fileUri(repoInfo.commonGitDir) : void 0,
|
|
202
|
+
parentUri: repoInfo.superprojectPath ? fileUri(repoInfo.superprojectPath) : void 0
|
|
203
|
+
};
|
|
204
|
+
else {
|
|
205
|
+
gitDir = { uri: this.provider.getAbsoluteUri(joinPaths(repoPath, ".git"), repoPath) };
|
|
206
|
+
const gitDirPath = gitDir.uri.toString(true);
|
|
207
|
+
scope?.warn(`rev-parse failed for '${repoPath}'; falling back to '${gitDirPath}'`);
|
|
208
|
+
this.context.hooks?.operations?.onGitDirResolveFailed?.(repoPath, gitDirPath, `rev_parse returned ${JSON.stringify(repoInfo)}`);
|
|
209
|
+
}
|
|
210
|
+
this.cache.gitDir.set(repoPath, gitDir);
|
|
211
|
+
return gitDir;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Gets the path to the .git/gk/config file for storing GitKraken-specific metadata.
|
|
215
|
+
* Uses commonPath for worktrees so all worktrees share the same data.
|
|
216
|
+
*/
|
|
217
|
+
async getGkConfigPath(repoPath) {
|
|
218
|
+
const gitDir = await this.getGitDir(repoPath);
|
|
219
|
+
if (gitDir == null) return void 0;
|
|
220
|
+
const basePath = (gitDir.commonUri ?? gitDir.uri).fsPath;
|
|
221
|
+
return joinPaths(basePath, "gk", "config");
|
|
222
|
+
}
|
|
223
|
+
async getGkConfig(repoPath, key) {
|
|
224
|
+
return (await this.getGkConfigMap(repoPath)).get(canonicalizeGitConfigKey(key)) || void 0;
|
|
225
|
+
}
|
|
226
|
+
async getGkConfigRegex(repoPath, pattern) {
|
|
227
|
+
const all = await this.getGkConfigMap(repoPath);
|
|
228
|
+
let re;
|
|
229
|
+
try {
|
|
230
|
+
re = new RegExp(pattern);
|
|
231
|
+
} catch {
|
|
232
|
+
return /* @__PURE__ */ new Map();
|
|
233
|
+
}
|
|
234
|
+
const result = /* @__PURE__ */ new Map();
|
|
235
|
+
for (const [k, v] of all) if (re.test(k)) result.set(k, v);
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Reads the entire `.git/gk/config` in one `git config --get-regexp` and caches the parsed map
|
|
240
|
+
* per commonPath. Per-key (getGkConfig) and per-namespace (getGkConfigRegex) lookups are served
|
|
241
|
+
* from this single cached read — so a branch-overview render that fans out across several gk
|
|
242
|
+
* namespaces costs one `git config` call instead of one per namespace.
|
|
243
|
+
*/
|
|
244
|
+
async getGkConfigMap(repoPath) {
|
|
245
|
+
await this.migrateGkConfigFromGitConfig(this.cache.getCommonPath(repoPath));
|
|
246
|
+
return this.cache.getGkConfigMap(repoPath, async (cacheable) => {
|
|
247
|
+
const { map, failed } = await this.getGkConfigRegexCore(repoPath, gkConfigAllPattern);
|
|
248
|
+
if (failed) cacheable.invalidate();
|
|
249
|
+
return map;
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
async getGkConfigRegexCore(repoPath, pattern) {
|
|
253
|
+
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
254
|
+
if (!gkConfigPath) return {
|
|
255
|
+
map: /* @__PURE__ */ new Map(),
|
|
256
|
+
failed: false
|
|
257
|
+
};
|
|
258
|
+
const result = await this.git.run({
|
|
259
|
+
cwd: repoPath,
|
|
260
|
+
errors: "ignore",
|
|
261
|
+
runLocally: true
|
|
262
|
+
}, "config", "--get-regex", "-f", gkConfigPath, pattern);
|
|
263
|
+
const exited = result.completion.status === "exited";
|
|
264
|
+
return {
|
|
265
|
+
map: parseConfigRegexOutput(result.stdout),
|
|
266
|
+
failed: !exited || result.exitCode !== 0 && result.exitCode !== 1
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
async setGkConfig(repoPath, key, value, options) {
|
|
270
|
+
const commonPath = this.cache.getCommonPath(repoPath);
|
|
271
|
+
const skipKey = options?.skipInvalidation?.length ? options.skipInvalidation.toSorted().join(",") : "";
|
|
272
|
+
const dedupKey = `${commonPath}\0${key}\0${value ?? ""}\0${skipKey}`;
|
|
273
|
+
const pending = this._pendingGkConfigWrites.get(dedupKey);
|
|
274
|
+
if (pending != null) return pending;
|
|
275
|
+
const promise = this.setGkConfigCore(repoPath, key, value, options);
|
|
276
|
+
this._pendingGkConfigWrites.set(dedupKey, promise);
|
|
277
|
+
promise.finally(() => this._pendingGkConfigWrites.delete(dedupKey)).catch(() => {});
|
|
278
|
+
return promise;
|
|
279
|
+
}
|
|
280
|
+
async setGkConfigCore(repoPath, key, value, options) {
|
|
281
|
+
const scope = getScopedLogger();
|
|
282
|
+
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
283
|
+
if (!gkConfigPath) return;
|
|
284
|
+
const gkConfigFolder = joinPaths(gkConfigPath, "..");
|
|
285
|
+
if (!await this.ensureGkConfigFolder(gkConfigFolder, scope)) return;
|
|
286
|
+
await this.setConfigCore(repoPath, key, value, { file: gkConfigPath });
|
|
287
|
+
this.cache.deleteGkConfig(repoPath, key, options);
|
|
288
|
+
this.cache.recordGkConfigWrite(repoPath, key, value);
|
|
289
|
+
}
|
|
290
|
+
async removeGkConfigBranchSection(repoPath, ref) {
|
|
291
|
+
await this.runGkConfigSectionCommand(repoPath, ref, "--remove-section", `branch.${ref}`);
|
|
292
|
+
}
|
|
293
|
+
async renameGkConfigBranchSection(repoPath, oldRef, newRef) {
|
|
294
|
+
await this.removeGkConfigBranchSection(repoPath, newRef);
|
|
295
|
+
await this.runGkConfigSectionCommand(repoPath, oldRef, "--rename-section", `branch.${oldRef}`, `branch.${newRef}`);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Runs a section-level `git config` against `.git/gk/config` for `ref`'s section, skipping the
|
|
299
|
+
* subprocess entirely when the bulk map (already cached on any warm path) shows that ref has no gk
|
|
300
|
+
* keys — the overwhelmingly common case, since most branches never get gk metadata written at all.
|
|
301
|
+
*
|
|
302
|
+
* Never throws: callers invoke this as bookkeeping after a branch op has already succeeded, so a
|
|
303
|
+
* failure here must not be reported as (or roll back) the branch/checkout/worktree operation itself.
|
|
304
|
+
* The worst case is metadata that stays behind until the next op on that name.
|
|
305
|
+
*/
|
|
306
|
+
async runGkConfigSectionCommand(repoPath, ref, ...args) {
|
|
307
|
+
const scope = getScopedLogger();
|
|
308
|
+
try {
|
|
309
|
+
const prefix = `branch.${ref}.`;
|
|
310
|
+
const map = await this.getGkConfigMap(repoPath);
|
|
311
|
+
if (map.size && !some(map.keys(), (k) => k.startsWith(prefix))) return;
|
|
312
|
+
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
313
|
+
if (!gkConfigPath) return;
|
|
314
|
+
if (!await fsExists(gkConfigPath)) return;
|
|
315
|
+
const result = await this.git.run({
|
|
316
|
+
cwd: repoPath,
|
|
317
|
+
runLocally: true,
|
|
318
|
+
errors: "ignore"
|
|
319
|
+
}, "config", "-f", gkConfigPath, ...args);
|
|
320
|
+
if (result.completion.status !== "exited" || result.exitCode !== 0) scope?.warn(`Failed to update gk config section for '${ref}' in '${repoPath}': ${result.completion.status === "exited" ? `git config exited ${result.exitCode}` : `${result.completion.status} · ${result.completion.error.message}`}`);
|
|
321
|
+
this.cache.deleteGkConfigMap(repoPath);
|
|
322
|
+
} catch (ex) {
|
|
323
|
+
scope?.error(ex, `Failed to update gk config section for '${ref}' in '${repoPath}'`);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Reconciles a watcher-observed `'gkConfig'` change — registered with the shared `Cache` as its
|
|
328
|
+
* gk-config reconciler (see the constructor). Re-reads the bulk map (hard-evicted by
|
|
329
|
+
* `Cache.handleGkConfigChanged`, so this hits disk) and diffs it against `priorSnapshot` to cascade
|
|
330
|
+
* `baseBranchName`/`branchOverviews` only for refs whose merge-relevant keys actually changed.
|
|
331
|
+
*
|
|
332
|
+
* Serialized per commonPath: a reconcile is a read-then-diff against a single shared baseline, so
|
|
333
|
+
* two overlapping passes would both diff against the same snapshot and the later change could fall
|
|
334
|
+
* out entirely. An event arriving mid-pass instead queues one trailing pass, which re-reads and
|
|
335
|
+
* diffs against the baseline the previous pass just established.
|
|
336
|
+
*
|
|
337
|
+
* `.git/gk/config` lives in the common dir, so the watcher delivers one event per worktree sharing it
|
|
338
|
+
* (see `WatchGroup.onCommonEvent`). Siblings never run concurrently — the later ones fold into the
|
|
339
|
+
* in-flight pass — but folding in arms the trailing pass, so a fan-out costs one extra read that
|
|
340
|
+
* re-reads and diffs an unchanged file. However many siblings land while a pass is running, they
|
|
341
|
+
* coalesce into that single trailing pass; the cost is the price of never dropping a real change.
|
|
342
|
+
* Every reporting path is retained because `Repository` matches the follow-up change event on exact
|
|
343
|
+
* path, and a sibling worktree that never receives one would sit on stale derived values.
|
|
344
|
+
*/
|
|
345
|
+
reconcileGkConfig(repoPath, priorSnapshot) {
|
|
346
|
+
const commonPath = this.cache.getCommonPath(repoPath);
|
|
347
|
+
const inflight = this._gkConfigReconciles.get(commonPath);
|
|
348
|
+
if (inflight != null) {
|
|
349
|
+
inflight.paths.set(repoPath, this.cache.getCloseGeneration(repoPath));
|
|
350
|
+
inflight.pending = true;
|
|
351
|
+
return "deferred";
|
|
352
|
+
}
|
|
353
|
+
const entry = {
|
|
354
|
+
pending: false,
|
|
355
|
+
paths: /* @__PURE__ */ new Map([[repoPath, this.cache.getCloseGeneration(repoPath)]])
|
|
356
|
+
};
|
|
357
|
+
this._gkConfigReconciles.set(commonPath, entry);
|
|
358
|
+
return this.runGkConfigReconcile(commonPath, priorSnapshot, entry);
|
|
359
|
+
}
|
|
360
|
+
/** Drops paths that closed since they reported the change; returns whichever remain. */
|
|
361
|
+
pruneClosedReconcilePaths(paths) {
|
|
362
|
+
for (const [path, generation] of paths) if (this.cache.getCloseGeneration(path) !== generation) paths.delete(path);
|
|
363
|
+
return paths;
|
|
364
|
+
}
|
|
365
|
+
async runGkConfigReconcile(commonPath, priorSnapshot, entry) {
|
|
366
|
+
const scope = getScopedLogger();
|
|
367
|
+
let snapshot = priorSnapshot;
|
|
368
|
+
try {
|
|
369
|
+
do {
|
|
370
|
+
entry.pending = false;
|
|
371
|
+
const readPath = first(this.pruneClosedReconcilePaths(entry.paths).keys());
|
|
372
|
+
if (readPath == null) return "reconciled";
|
|
373
|
+
this.cache.deleteGkConfigMap(readPath);
|
|
374
|
+
const freshMap = await this.getGkConfigMap(readPath);
|
|
375
|
+
if (!this.pruneClosedReconcilePaths(entry.paths).size) return "reconciled";
|
|
376
|
+
if (this.cache.reconcileGkConfigMap(readPath, snapshot, freshMap)) for (const path of entry.paths.keys()) this.context.hooks?.repository?.onChanged?.(path, ["gkConfig"]);
|
|
377
|
+
snapshot = this.cache.getGkConfigMergeSnapshot(readPath);
|
|
378
|
+
} while (entry.pending);
|
|
379
|
+
return "reconciled";
|
|
380
|
+
} catch (ex) {
|
|
381
|
+
scope?.error(ex, `Failed to reconcile gk config for '${commonPath}'`);
|
|
382
|
+
return "failed";
|
|
383
|
+
} finally {
|
|
384
|
+
this._gkConfigReconciles.delete(commonPath);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
async getSigningConfig(repoPath) {
|
|
388
|
+
const configMap = await this.getConfigRegex(repoPath, "^(commit\\.gpgsign|gpg\\.format|user\\.signingkey|gpg\\.program|gpg\\.ssh\\.program|gpg\\.ssh\\.allowedsignersfile)$");
|
|
389
|
+
const enabledRaw = configMap.get("commit.gpgsign");
|
|
390
|
+
const format = configMap.get("gpg.format");
|
|
391
|
+
const signingKey = configMap.get("user.signingkey");
|
|
392
|
+
const gpgProgram = configMap.get("gpg.program");
|
|
393
|
+
const sshProgram = configMap.get("gpg.ssh.program");
|
|
394
|
+
const allowedSignersFile = configMap.get("gpg.ssh.allowedsignersfile");
|
|
395
|
+
return {
|
|
396
|
+
enabled: parseGitBoolean(enabledRaw) || this.context.config?.signing?.enabled === true,
|
|
397
|
+
format: format ?? "gpg",
|
|
398
|
+
signingKey,
|
|
399
|
+
gpgProgram,
|
|
400
|
+
sshProgram,
|
|
401
|
+
allowedSignersFile
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
async validateSigningSetup(repoPath) {
|
|
405
|
+
if (!(await this.getSigningConfig(repoPath)).signingKey) return {
|
|
406
|
+
valid: false,
|
|
407
|
+
error: "No signing key configured"
|
|
408
|
+
};
|
|
409
|
+
return { valid: true };
|
|
410
|
+
}
|
|
411
|
+
async setSigningConfig(repoPath, config, options) {
|
|
412
|
+
const scope = getScopedLogger();
|
|
413
|
+
try {
|
|
414
|
+
if (config.enabled != null) await this.setConfig(repoPath, "commit.gpgsign", config.enabled ? "true" : "false", options);
|
|
415
|
+
if (config.format != null) await this.setConfig(repoPath, "gpg.format", config.format, options);
|
|
416
|
+
if (config.signingKey != null) await this.setConfig(repoPath, "user.signingkey", config.signingKey, options);
|
|
417
|
+
if (config.gpgProgram != null) await this.setConfig(repoPath, "gpg.program", config.gpgProgram, options);
|
|
418
|
+
if (config.sshProgram != null) await this.setConfig(repoPath, "gpg.ssh.program", config.sshProgram, options);
|
|
419
|
+
if (config.allowedSignersFile != null) await this.setConfig(repoPath, "gpg.ssh.allowedSignersFile", config.allowedSignersFile, options);
|
|
420
|
+
} catch (ex) {
|
|
421
|
+
scope?.error(ex);
|
|
422
|
+
throw ex;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
getSigningConfigFlags(config) {
|
|
426
|
+
const flags = [];
|
|
427
|
+
if (config.gpgProgram) flags.push("-c", `gpg.program=${config.gpgProgram}`);
|
|
428
|
+
if (config.format && config.format !== "gpg") flags.push("-c", `gpg.format=${config.format}`);
|
|
429
|
+
if (config.sshProgram) flags.push("-c", `gpg.ssh.program=${config.sshProgram}`);
|
|
430
|
+
if (config.allowedSignersFile) flags.push("-c", `gpg.ssh.allowedSignersFile=${config.allowedSignersFile}`);
|
|
431
|
+
return flags;
|
|
432
|
+
}
|
|
433
|
+
async getRepositoryInfo(cwd) {
|
|
434
|
+
let result;
|
|
435
|
+
if (this.context.workspace?.isTrusted === false) try {
|
|
436
|
+
await promises.stat(joinPaths(cwd, "HEAD"));
|
|
437
|
+
result = await this.git.run({
|
|
438
|
+
cwd,
|
|
439
|
+
errors: "throw",
|
|
440
|
+
configs: ["-C", cwd]
|
|
441
|
+
}, "rev-parse", "--show-cdup");
|
|
442
|
+
if (!result.stdout.trim()) {
|
|
443
|
+
_logger.warn(`Skipping (untrusted); bare clone repository detected in '${cwd}'`);
|
|
444
|
+
return emptyArray;
|
|
445
|
+
}
|
|
446
|
+
} catch {}
|
|
447
|
+
try {
|
|
448
|
+
result = await this.git.run({
|
|
449
|
+
cwd,
|
|
450
|
+
errors: "throw"
|
|
451
|
+
}, "rev-parse", "--show-toplevel", "--git-dir", "--git-common-dir", "--show-superproject-working-tree");
|
|
452
|
+
if (!result.stdout) return emptyArray;
|
|
453
|
+
const [repoPath, dotGitPath, commonDotGitPath, superprojectPath] = result.stdout.split("\n").map((r) => r.trimStart());
|
|
454
|
+
if (!repoPath) return emptyArray;
|
|
455
|
+
const normalizedRepoPath = normalizePath(repoPath.replace(/[\r|\n]+$/, ""));
|
|
456
|
+
let gitDir = dotGitPath;
|
|
457
|
+
if (gitDir && !isAbsolute(gitDir)) gitDir = joinPaths(cwd, gitDir);
|
|
458
|
+
gitDir = normalizePath(gitDir);
|
|
459
|
+
let commonGitDir;
|
|
460
|
+
if (commonDotGitPath) {
|
|
461
|
+
commonGitDir = commonDotGitPath;
|
|
462
|
+
if (!isAbsolute(commonGitDir)) commonGitDir = joinPaths(cwd, commonGitDir);
|
|
463
|
+
commonGitDir = normalizePath(commonGitDir);
|
|
464
|
+
if (commonGitDir === gitDir) commonGitDir = void 0;
|
|
465
|
+
}
|
|
466
|
+
return {
|
|
467
|
+
repoPath: normalizedRepoPath,
|
|
468
|
+
gitDir,
|
|
469
|
+
commonGitDir,
|
|
470
|
+
superprojectPath: superprojectPath?.trim() || void 0
|
|
471
|
+
};
|
|
472
|
+
} catch (ex) {
|
|
473
|
+
if (ex instanceof WorkspaceUntrustedError) return emptyArray;
|
|
474
|
+
const unsafeMatch = /(?:^fatal:\s*detected dubious ownership in repository at '([^']+)'|unsafe repository \('([^']+)' is owned by someone else\))[\s\S]*(git config --global --add safe\.directory [^\n\u2022]+)/m.exec(ex.stderr);
|
|
475
|
+
if (unsafeMatch != null) {
|
|
476
|
+
_logger.warn(`Skipping; unsafe repository detected in '${unsafeMatch[1] || unsafeMatch[2]}'; run '${unsafeMatch[3]}' to allow it`);
|
|
477
|
+
return [false];
|
|
478
|
+
}
|
|
479
|
+
const inDotGit = /this operation must be run in a work tree/.test(ex.stderr);
|
|
480
|
+
if (inDotGit && this.context.workspace?.isTrusted !== false) {
|
|
481
|
+
result = await this.git.run({
|
|
482
|
+
cwd,
|
|
483
|
+
errors: "ignore"
|
|
484
|
+
}, "rev-parse", "--is-bare-repository");
|
|
485
|
+
if (result.stdout.trim() === "true") {
|
|
486
|
+
const result = await this.revParseGitDir(cwd);
|
|
487
|
+
const repoPath = result?.commonPath ?? result?.path;
|
|
488
|
+
if (repoPath?.length) return [true, repoPath];
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
if (inDotGit || ex.code === "ENOENT") {
|
|
492
|
+
let exists = inDotGit ? false : await fsExists(cwd);
|
|
493
|
+
if (!exists) {
|
|
494
|
+
do {
|
|
495
|
+
const parent = dirname(cwd);
|
|
496
|
+
if (parent === cwd || parent.length === 0) return emptyArray;
|
|
497
|
+
cwd = parent;
|
|
498
|
+
exists = await fsExists(cwd);
|
|
499
|
+
} while (!exists);
|
|
500
|
+
return this.getRepositoryInfo(cwd);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
return emptyArray;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
async revParseGitDir(cwd) {
|
|
507
|
+
const result = await this.git.run({
|
|
508
|
+
cwd,
|
|
509
|
+
errors: "ignore"
|
|
510
|
+
}, "rev-parse", "--git-dir", "--git-common-dir");
|
|
511
|
+
if (!result.stdout) return void 0;
|
|
512
|
+
let [dotGitPath, commonDotGitPath] = result.stdout.split("\n").map((r) => r.trimStart());
|
|
513
|
+
if (!isAbsolute(dotGitPath)) dotGitPath = joinPaths(cwd, dotGitPath);
|
|
514
|
+
dotGitPath = normalizePath(dotGitPath);
|
|
515
|
+
if (commonDotGitPath) {
|
|
516
|
+
if (!isAbsolute(commonDotGitPath)) commonDotGitPath = joinPaths(cwd, commonDotGitPath);
|
|
517
|
+
commonDotGitPath = normalizePath(commonDotGitPath);
|
|
518
|
+
return {
|
|
519
|
+
path: dotGitPath,
|
|
520
|
+
commonPath: commonDotGitPath !== dotGitPath ? commonDotGitPath : void 0
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
return { path: dotGitPath };
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Ensures the `.git/gk/` folder exists, but only if the parent `.git` directory already exists.
|
|
527
|
+
* This prevents creating stray `.git` directories if the computed path is wrong.
|
|
528
|
+
* Returns `true` if the folder was ensured, `false` if the parent `.git` does not exist.
|
|
529
|
+
*/
|
|
530
|
+
async ensureGkConfigFolder(gkConfigFolder, scope) {
|
|
531
|
+
const dotGitDir = joinPaths(gkConfigFolder, "..");
|
|
532
|
+
try {
|
|
533
|
+
await promises.stat(dotGitDir);
|
|
534
|
+
} catch {
|
|
535
|
+
scope?.warn(`Skipping GK config write — expected git directory '${dotGitDir}' does not exist`);
|
|
536
|
+
return false;
|
|
537
|
+
}
|
|
538
|
+
try {
|
|
539
|
+
await promises.mkdir(gkConfigFolder, { recursive: true });
|
|
540
|
+
} catch (ex) {
|
|
541
|
+
scope?.error(ex, `Failed to create '${gkConfigFolder}' directory`);
|
|
542
|
+
return false;
|
|
543
|
+
}
|
|
544
|
+
return true;
|
|
545
|
+
}
|
|
546
|
+
_migratedRepos = /* @__PURE__ */ new Set();
|
|
547
|
+
/**
|
|
548
|
+
* One-time migration of GK config entries from regular git config to `.git/gk/config`.
|
|
549
|
+
* If `.git/gk/config` already exists, assumes migration is complete (or data is already there).
|
|
550
|
+
* Preserves existing `.git/gk/config` values as source of truth (won't overwrite).
|
|
551
|
+
* Removes migrated keys from regular git config to stop cluttering it.
|
|
552
|
+
*/
|
|
553
|
+
async migrateGkConfigFromGitConfig(repoPath) {
|
|
554
|
+
if (this._migratedRepos.has(repoPath)) return;
|
|
555
|
+
const scope = getScopedLogger();
|
|
556
|
+
const gkConfigPath = await this.getGkConfigPath(repoPath);
|
|
557
|
+
if (!gkConfigPath) {
|
|
558
|
+
this._migratedRepos.add(repoPath);
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
const gkConfigFolder = joinPaths(gkConfigPath, "..");
|
|
562
|
+
try {
|
|
563
|
+
await promises.stat(gkConfigPath);
|
|
564
|
+
this._migratedRepos.add(repoPath);
|
|
565
|
+
return;
|
|
566
|
+
} catch {}
|
|
567
|
+
if (!await this.ensureGkConfigFolder(gkConfigFolder, scope)) return;
|
|
568
|
+
try {
|
|
569
|
+
await promises.writeFile(gkConfigPath, /* @__PURE__ */ new Uint8Array());
|
|
570
|
+
} catch (ex) {
|
|
571
|
+
scope?.error(ex, `Failed to create '${gkConfigPath}' file`);
|
|
572
|
+
}
|
|
573
|
+
let migrateConfig;
|
|
574
|
+
try {
|
|
575
|
+
migrateConfig = await this.getConfigRegexCore(repoPath, "^branch\\..*\\.gk-", { runGitLocally: true });
|
|
576
|
+
} catch (ex) {
|
|
577
|
+
scope?.error(ex, "Failed to read legacy GK config entries");
|
|
578
|
+
this._migratedRepos.add(repoPath);
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
if (!migrateConfig.size) {
|
|
582
|
+
this._migratedRepos.add(repoPath);
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
scope?.info(`Migrating ${String(migrateConfig.size)} GK config entries from git config to .git/gk/config`);
|
|
586
|
+
for (const [key, value] of [...migrateConfig]) try {
|
|
587
|
+
await this.setConfigCore(repoPath, key, value, { file: gkConfigPath });
|
|
588
|
+
} catch (ex) {
|
|
589
|
+
scope?.error(ex, `Failed to migrate key '${key}' to GK config`);
|
|
590
|
+
migrateConfig.delete(key);
|
|
591
|
+
}
|
|
592
|
+
for (const [key] of migrateConfig) try {
|
|
593
|
+
await this.git.run({
|
|
594
|
+
cwd: repoPath,
|
|
595
|
+
errors: "ignore",
|
|
596
|
+
runLocally: true
|
|
597
|
+
}, "config", "--local", "--unset-all", key);
|
|
598
|
+
} catch (ex) {
|
|
599
|
+
scope?.error(ex, `Failed to remove migrated key '${key}' from git config`);
|
|
600
|
+
}
|
|
601
|
+
this.cache.clearCaches(repoPath, "config", "gkConfig");
|
|
602
|
+
this._migratedRepos.add(repoPath);
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
__decorate([trace()], ConfigGitSubProvider.prototype, "getConfig", null);
|
|
606
|
+
__decorate([trace()], ConfigGitSubProvider.prototype, "getConfigRegex", null);
|
|
607
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "setConfig", null);
|
|
608
|
+
__decorate([gate(), debug()], ConfigGitSubProvider.prototype, "getCurrentUser", null);
|
|
609
|
+
__decorate([gate(), trace({ exit: (r) => `returned ${r}` })], ConfigGitSubProvider.prototype, "getDefaultWorktreePath", null);
|
|
610
|
+
__decorate([gate(), trace({ exit: (r) => `returned ${r.uri.toString(true)}, commonUri=${r.commonUri?.toString(true)}, parentUri=${r.parentUri?.toString(true)}` })], ConfigGitSubProvider.prototype, "getGitDir", null);
|
|
611
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "getGkConfig", null);
|
|
612
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "getGkConfigRegex", null);
|
|
613
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "setGkConfig", null);
|
|
614
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "removeGkConfigBranchSection", null);
|
|
615
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "renameGkConfigBranchSection", null);
|
|
616
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "getSigningConfig", null);
|
|
617
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "validateSigningSetup", null);
|
|
618
|
+
__decorate([debug()], ConfigGitSubProvider.prototype, "setSigningConfig", null);
|
|
619
|
+
__decorate([gate(), debug()], ConfigGitSubProvider.prototype, "migrateGkConfigFromGitConfig", null);
|
|
620
|
+
//#endregion
|
|
621
|
+
export { ConfigGitSubProvider, canonicalizeGitConfigKey, isGitBooleanFalse, parseConfigRegexOutput, parseGitBoolean };
|
|
622
|
+
|
|
842
623
|
//# sourceMappingURL=config.js.map
|