@gitkraken/core-gitlens 0.4.101 → 0.5.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -6
- package/dist/git/models/graph.d.ts +63 -33
- package/dist/git/models/graph.d.ts.map +1 -1
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/graphSession.d.ts +3 -84
- package/dist/git/models/graphSession.d.ts.map +1 -1
- package/dist/git/models/graphSession.js +1 -6
- package/dist/git/models/graphSession.js.map +1 -1
- package/dist/git/models/issue.d.ts +4 -3
- package/dist/git/models/issue.d.ts.map +1 -1
- package/dist/git/models/issue.js.map +1 -1
- package/dist/git/providers/graph.d.ts +1 -15
- package/dist/git/providers/graph.d.ts.map +1 -1
- package/dist/git/providers/pausedOperations.d.ts +2 -0
- package/dist/git/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git/utils/issue.utils.d.ts.map +1 -1
- package/dist/git/utils/issue.utils.js +8 -6
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +1 -1
- package/dist/git/utils/reachability.utils.js +1 -1
- package/dist/git/utils/remote.utils.d.ts +3 -0
- package/dist/git/utils/remote.utils.d.ts.map +1 -1
- package/dist/git/utils/remote.utils.js +5 -0
- package/dist/git/utils/remote.utils.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +1 -3
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +37 -214
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +1 -0
- package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git-cli/providers/pausedOperations.js +21 -1
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/staging.d.ts.map +1 -1
- package/dist/git-cli/providers/staging.js +10 -1
- package/dist/git-cli/providers/staging.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +18 -5
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/models.d.ts +6 -4
- package/dist/plus/git-github/models.d.ts.map +1 -1
- package/dist/plus/git-github/models.js +19 -26
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/graph.d.ts +1 -3
- package/dist/plus/git-github/providers/github/graph.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/graph.js +8 -10
- package/dist/plus/git-github/providers/github/graph.js.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +38 -48
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -1
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +22 -5
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts +39 -0
- package/dist/plus/integrations/authentication/rejectedTokenTracker.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js +53 -0
- package/dist/plus/integrations/authentication/rejectedTokenTracker.js.map +1 -0
- package/dist/plus/integrations/collectionMetadata.d.ts +21 -1
- package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -1
- package/dist/plus/integrations/collectionMetadata.js +82 -6
- package/dist/plus/integrations/collectionMetadata.js.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +3 -3
- package/dist/plus/integrations/integrationService.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.js +19 -3
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +19 -6
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +20 -0
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js +64 -6
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.js +5 -5
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +1 -0
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
- package/dist/plus/integrations/providers/providersApi.js +4 -2
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/trello.d.ts +2 -0
- package/dist/plus/integrations/providers/trello.d.ts.map +1 -1
- package/dist/plus/integrations/providers/trello.js +1 -1
- 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.d.ts.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.js +34 -22
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
- package/dist/plus/integrations/reads/warnings.d.ts +4 -2
- package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
- package/dist/plus/integrations/reads/warnings.js +4 -2
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/dist/utils/date.d.ts +1 -1
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +5 -3
- package/dist/utils/date.js.map +1 -1
- package/package.json +2 -2
- package/src/git/models/graph.ts +59 -41
- package/src/git/models/graphSession.ts +3 -106
- package/src/git/models/issue.ts +3 -2
- package/src/git/providers/graph.ts +1 -15
- package/src/git/providers/pausedOperations.ts +8 -1
- package/src/git/utils/issue.utils.ts +9 -6
- package/src/git/utils/reachability.utils.ts +1 -1
- package/src/git/utils/remote.utils.ts +6 -0
- package/src/git-cli/providers/graph.ts +37 -250
- package/src/git-cli/providers/pausedOperations.ts +29 -2
- package/src/git-cli/providers/staging.ts +8 -1
- package/src/plus/git-github/api/github.ts +19 -9
- package/src/plus/git-github/models.ts +27 -31
- package/src/plus/git-github/providers/github/graph.ts +8 -15
- package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +62 -40
- package/src/plus/integrations/authentication/rejectedTokenTracker.ts +56 -0
- package/src/plus/integrations/collectionMetadata.ts +97 -7
- package/src/plus/integrations/integrationService.ts +37 -9
- package/src/plus/integrations/models/gitHostIntegration.ts +19 -6
- package/src/plus/integrations/models/integration.ts +71 -7
- package/src/plus/integrations/models/issuesIntegration.ts +5 -5
- package/src/plus/integrations/providers/models.ts +4 -1
- package/src/plus/integrations/providers/providersApi.ts +6 -10
- package/src/plus/integrations/providers/trello.ts +3 -2
- package/src/plus/integrations/providers/utils/providerPaging.ts +46 -24
- package/src/plus/integrations/reads/warnings.ts +4 -2
- package/src/utils/date.ts +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,13 +6,36 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
-
## [0.
|
|
9
|
+
## [0.5.101] - 2026-08-02
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Adds structured detail to the warnings raised from provider collection metadata — requires `@gitkraken/provider-apis` 0.55.0. A GitHub search that hits the 1,000-result cap now warns with the figures it was given (`Search (repository acme/web) matched 1393 results, but the provider exposes at most 1000`) instead of the fixed `Some results were omitted; the read is incomplete`, and the SDK's other two omission kinds (`recovery-budget`, `pagination-incomplete`) each get their own message, scoped to the repository/project the SDK attributes them to. An omission never sets `fetchFailed`: the request succeeded, so retrying returns the same truncated set — only a structured failure means the read broke. Note 0.55.0 also RECOVERS past the cap (it partitions an over-limit multi-repo search by repository, then bisects `updated:` windows), so the common over-cap read now returns complete and raises no warning at all (plus/integrations)
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Collapses repeated collection omissions per kind and scope, keeping the highest reported total, mirroring the SDK's own dedupe. GitHub recomputes its match total on every request, so a repository drained over several pages reports the same cap with a drifting count; without this the consumer got a near-identical warning per page that message-level dedupe could not collapse (plus/integrations)
|
|
18
|
+
- Truncation is now derived from one predicate, `isIncompleteCollection`, shared by the facade assessment and `getPagedResult`. Both computed it independently before, so a single metadata object could be reported as truncated by one and complete by the other (plus/integrations)
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Fixes a GitHub pull-request search dropping the pages it had already collected when a later page came back empty — the drain returned `[]` instead of the accumulated results (plus/git-github)
|
|
23
|
+
- Fixes `GitHubPullRequestLite.body` being typed as non-nullable when GitHub's schema returns `null` for it; the mapped `PullRequest.body` now degrades to `undefined` rather than carrying a `null` typed as `string` (plus/git-github)
|
|
24
|
+
- Fixes Trello's project-scoped issue read dropping the SDK collection metadata it had already computed, so a partial Trello search reached the facade with its truncation signal but no structured detail (plus/integrations)
|
|
25
|
+
|
|
26
|
+
## [0.5.100] - 2026-07-31
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- **Breaking (git)** — `GitGraphRowHead.worktreeId` is removed; `worktree` now carries `isDefault` instead. Consumers asking "is this branch checked out somewhere other than here?" must test `worktree != null && !worktree.isDefault` rather than reading `worktreeId`. `GitGraphRowType` is renamed to `GitGraphRowKind`, and the row field carrying it from `type` to `kind`, adopting the commit-graph engine's own vocabulary — `'commit' | 'merge' | 'stash' | 'workdir'`, replacing `'commit-node' | 'merge-node' | 'stash-node' | 'work-dir-changes'` — and drops the never-produced `merge-conflict-node` and `unsupported-rebase-warning-node` members; `GitGraphRowContexts` drops eight slots no producer wrote (`ref`, `graph`, `avatar`, `message`, `author`, `date`, `sha`, `stats`) (git)
|
|
31
|
+
- **Breaking (git)** — `graphSessionSnapshotVersion` is now `7`; snapshots written by earlier versions are discarded on restore, because the persisted row shape changed with `worktree.isDefault`, again with the row-kind rename, and again when the per-ref `context` slots were removed (git)
|
|
32
|
+
- **Breaking (git)** — `GitGraphRowHead`, `GitGraphRowRemoteHead` and `GitGraphRowTag` drop their `context?: string | object` slot. The graph no longer ships a serialized webview-item context per ref per row; consumers that read those strings must build their own from the structured fields. An `id` marks a ref as identifiable and actionable — it does NOT promise complete enrichment, since the CLI settles branch/remote/worktree lookups independently and still stamps ids (git)
|
|
33
|
+
- **Breaking (git)** — graph rows now OMIT `heads`/`remotes`/`tags` when empty instead of shipping empty arrays; consumers must treat all three as optional (git)
|
|
12
34
|
|
|
13
35
|
### Added
|
|
14
36
|
|
|
15
|
-
- Adds
|
|
37
|
+
- Adds structured branch and stash state to graph rows — `GitGraphRowHead.starred` and `GitGraphRowRemoteHead.starred`, `upstream.missing` and `upstream.state { ahead, behind }` on a head's upstream, and `GitGraphRow.stashNumber` (the `{n}` of `stash@{n}`). All optional and populated only by the CLI provider; absent means the producer did not compute it, not a negative value (git)
|
|
38
|
+
- Adds an account-wide issue read for GitLab and exposes `includeAllAssignees` on the account-wide seam — `GitHostIntegration.searchMyIssuesWithTruncationResult`/`IntegrationService.listIssuesPage` now serve GitLab (previously reported as unsupported, since GitLab's issue reads were repo-scoped only) via a new `getIssuesForCurrentUser` REST read (`GET /issues`, open issues only), and honor an `includeAllAssignees` toggle across GitHub (`assignee:@me` → `assignee:*`), GitLab (`scope=all`, no assignee), and Azure DevOps (a single unfiltered per-project drain); requires `@gitkraken/provider-apis` 0.53.0 ([#5535](https://github.com/gitkraken/vscode-gitlens/issues/5535)) (plus/integrations)
|
|
16
39
|
- Adds multiple simultaneous connections (multi-account) per provider integration — `ConfiguredIntegrationDescriptor` now carries a stable per-connection `id` (backend `tokenId`) plus `primary`, `type`, and `accountName`; `IntegrationService` gains `setPrimaryConnection`, `deleteConnection`, and `refreshConnections`; cloud sync fans out over every backend connection (primary + secondaries) and resolves account names with a backend → cache → provider-API precedence. Existing single-connection sessions keep working with zero secret migration ([#5430](https://github.com/gitkraken/vscode-gitlens/issues/5430)) (plus/integrations)
|
|
17
40
|
- Adds per-connection reads for multi-account integrations — issue/PR search and issue-tracker resource reads (`searchMyIssues`, `searchMyPullRequests`, `searchPullRequests`, `getIssuesForProject`, `getAccountForResource`, `getResourcesForUser`, `getProjectsForResources`) accept an optional `connectionId` that reads with that specific connection's token instead of the provider's primary (mirrors the `gk` CLI's `--connection`); omitting it preserves the existing primary behavior ([#5430](https://github.com/gitkraken/vscode-gitlens/issues/5430)) (plus/integrations)
|
|
18
41
|
- Adds a lightweight, token-scoped entry point `createTokenScopedGitHostIntegration` at `plus/integrations/lite.js` — fetches `RepositoryMetadata` and `DefaultBranch` for GitHub, GitLab, Bitbucket, and Azure DevOps from just an access token + a `fetch`, without constructing an `IntegrationServiceContext` or running any session/OAuth lifecycle (plus/integrations)
|
|
@@ -122,9 +145,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
|
|
|
122
145
|
|
|
123
146
|
- Initial release. Bundles `@gitlens/utils`, `@gitlens/git`, `@gitlens/git-cli`, `@gitlens/ai`, and `@gitlens/git-github` into a single core npm package with subpath exports.
|
|
124
147
|
|
|
125
|
-
[unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.
|
|
126
|
-
[0.
|
|
127
|
-
[0.
|
|
148
|
+
[unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.5.101...HEAD
|
|
149
|
+
[0.5.101]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.5.100...gitkraken:releases/core/v0.5.101
|
|
150
|
+
[0.5.100]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.5.0...gitkraken:releases/core/v0.5.100
|
|
128
151
|
[0.4.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.3.1...gitkraken:releases/core/v0.4.0
|
|
129
152
|
[0.3.1]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.3.0...gitkraken:releases/core/v0.3.1
|
|
130
153
|
[0.3.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.2.0...gitkraken:releases/core/v0.3.0
|
|
@@ -4,49 +4,81 @@ import type { GitStashCommit } from './commit.js';
|
|
|
4
4
|
import type { GitRemote } from './remote.js';
|
|
5
5
|
import type { GkProviderId } from './repositoryIdentities.js';
|
|
6
6
|
import type { GitWorktree } from './worktree.js';
|
|
7
|
-
export type
|
|
7
|
+
export type GitGraphRowKind = 'commit' | 'merge' | 'stash' | 'workdir';
|
|
8
8
|
export interface GitGraphRowHead {
|
|
9
|
+
/**
|
|
10
|
+
* Stable ref id. **Its presence is the provider-tier marker** — the one signal separating a ref that
|
|
11
|
+
* can be acted on from a lean, name-only one, now that neither carries a serialized context.
|
|
12
|
+
*
|
|
13
|
+
* The CLI provider stamps an id on every ref it emits (`git-cli/providers/graph.ts:781`, `:805`,
|
|
14
|
+
* `:836`); the GitHub provider never does, because it has no branch metadata to key
|
|
15
|
+
* (`git-github/providers/github/graph.ts:231`, `:239`). So `id == null` means "this ref came from a
|
|
16
|
+
* provider that computes nothing beyond a name", and every id-keyed feature — ref metadata, exclusions,
|
|
17
|
+
* pinning, PR/issue lookup — must degrade rather than guess. Consumers already do this; it is written
|
|
18
|
+
* down here because until now it was an accident of two providers rather than a stated contract.
|
|
19
|
+
*
|
|
20
|
+
* ⚠ An id means the ref is **identifiable and actionable** — it does NOT mean its enrichment is
|
|
21
|
+
* complete. The CLI resolves branches, remotes and worktrees with `Promise.allSettled`
|
|
22
|
+
* (`git-cli/providers/graph.ts:546`) and still synthesizes ids when any of those settle rejected, so an
|
|
23
|
+
* id-bearing ref can carry a missing `starred`/`upstream` that means "not computed" rather than "no".
|
|
24
|
+
* Treat every optional field as enrichment that may be absent, and never report a capability from its
|
|
25
|
+
* absence. If a consumer ever needs to tell "unavailable" from "false", that wants one graph-level
|
|
26
|
+
* completeness flag, not a per-ref field on every row.
|
|
27
|
+
*/
|
|
9
28
|
id?: string;
|
|
10
29
|
name: string;
|
|
11
30
|
isCurrentHead: boolean;
|
|
12
|
-
|
|
31
|
+
/**
|
|
32
|
+
* The tracked upstream. `missing`/`state` are optional here while {@link GitTrackingUpstream} makes
|
|
33
|
+
* them required, and the difference is meaningful: absent means the producer did NOT compute them
|
|
34
|
+
* (the GitHub provider has no branch metadata at all), NOT "present and false/zero". Consumers must
|
|
35
|
+
* treat `undefined` as unknown rather than folding it into the negative case.
|
|
36
|
+
*/
|
|
13
37
|
upstream?: {
|
|
14
38
|
name: string;
|
|
15
39
|
id: string;
|
|
40
|
+
missing?: boolean;
|
|
41
|
+
state?: {
|
|
42
|
+
ahead: number;
|
|
43
|
+
behind: number;
|
|
44
|
+
};
|
|
16
45
|
};
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
46
|
+
/** Starred (a GitKraken branch disposition). Structured so `+starred` stops being baked into the
|
|
47
|
+
* serialized context at row-build time, where starring a branch left the label stale. */
|
|
48
|
+
starred?: boolean;
|
|
49
|
+
/** Set when this branch is checked out in ANY worktree, including the default one. Grouped so
|
|
50
|
+
* producers can't half-populate id-without-path or vice versa. Consumers that mean "checked out
|
|
51
|
+
* somewhere other than here" — the ref-ordering tier and the worktree glyph — must test
|
|
52
|
+
* `isDefault` too; the default worktree's checkout is the ordinary case, not a worktree badge.
|
|
53
|
+
* Note `isDefault` here describes the WORKTREE; the sibling `isDefault` below describes the BRANCH. */
|
|
19
54
|
worktree?: {
|
|
20
55
|
id: string;
|
|
21
56
|
path: string;
|
|
57
|
+
isDefault: boolean;
|
|
22
58
|
};
|
|
23
|
-
/** Upstream-component-compatibility mirror of `worktree?.id`. The bundled
|
|
24
|
-
* `@gitkraken/gitkraken-components` library still reads `worktreeId` to switch between
|
|
25
|
-
* WORKTREE and HEAD ref-badge styling — keeping it populated preserves the visual cue.
|
|
26
|
-
* Producers MUST set this whenever they set `worktree`; do not read it from GitLens code,
|
|
27
|
-
* read `worktree.id` instead. */
|
|
28
|
-
worktreeId?: string;
|
|
29
59
|
/** True when this head is the repository's default branch. */
|
|
30
60
|
isDefault?: boolean;
|
|
31
61
|
}
|
|
32
62
|
export interface GitGraphRowRemoteHead {
|
|
63
|
+
/** Stable ref id; see {@link GitGraphRowHead.id} — its presence is the provider-tier marker. */
|
|
33
64
|
id?: string;
|
|
34
65
|
name: string;
|
|
35
66
|
url?: string;
|
|
36
67
|
owner: string;
|
|
37
68
|
avatarUrl?: string;
|
|
38
|
-
context?: string | object;
|
|
39
69
|
current?: boolean;
|
|
40
70
|
/** True when this remote ref IS the repository's default branch and no local branch tracks it (no
|
|
41
71
|
* local checkout) — so the default-branch tier still applies for remote-only defaults. */
|
|
42
72
|
isDefault?: boolean;
|
|
43
73
|
hostingServiceType?: GkProviderId;
|
|
74
|
+
/** See {@link GitGraphRowHead.starred}. */
|
|
75
|
+
starred?: boolean;
|
|
44
76
|
}
|
|
45
77
|
export interface GitGraphRowTag {
|
|
78
|
+
/** Stable ref id; see {@link GitGraphRowHead.id} — its presence is the provider-tier marker. */
|
|
46
79
|
id?: string;
|
|
47
80
|
name: string;
|
|
48
81
|
annotated: boolean;
|
|
49
|
-
context?: string | object;
|
|
50
82
|
}
|
|
51
83
|
/**
|
|
52
84
|
* Compact, host-computed flags for a commit/stash row, shipped instead of the bulky serialized
|
|
@@ -75,10 +107,7 @@ export declare const enum GitGraphRowContextFlags {
|
|
|
75
107
|
RewriteableFromHead = 16,
|
|
76
108
|
Unpulled = 32
|
|
77
109
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Context data attached to graph row regions for command/menu handling.
|
|
80
|
-
* Structurally compatible with @gitkraken/gitkraken-components RowContexts.
|
|
81
|
-
*/
|
|
110
|
+
/** Context data attached to graph rows for command/menu handling. */
|
|
82
111
|
export interface GitGraphRowContexts {
|
|
83
112
|
/** Compact replacement for the serialized commit `row`/`avatar` contexts; see {@link GitGraphRowContextFlags}. */
|
|
84
113
|
flags?: GitGraphRowContextFlags;
|
|
@@ -88,16 +117,11 @@ export interface GitGraphRowContexts {
|
|
|
88
117
|
* webview rebuilds `row.reachability` from the shared table. Absent ⇒ no reachability for this row.
|
|
89
118
|
*/
|
|
90
119
|
reachabilityIndex?: number;
|
|
120
|
+
/** Serialized right-click context. Built here only for stash rows; commit rows ship {@link flags}
|
|
121
|
+
* instead and have theirs rebuilt on demand (see `rowContext.utils`). */
|
|
91
122
|
row?: string | object;
|
|
92
|
-
ref
|
|
123
|
+
/** Serialized context per grouped-ref name, for the group's own menu. */
|
|
93
124
|
refGroups?: Record<string, string | object>;
|
|
94
|
-
graph?: string | object;
|
|
95
|
-
avatar?: string | object;
|
|
96
|
-
message?: string | object;
|
|
97
|
-
author?: string | object;
|
|
98
|
-
date?: string | object;
|
|
99
|
-
sha?: string | object;
|
|
100
|
-
stats?: string | object;
|
|
101
125
|
}
|
|
102
126
|
export interface GitGraphRowStats {
|
|
103
127
|
files: number;
|
|
@@ -125,7 +149,7 @@ export interface GraphReachabilityTable {
|
|
|
125
149
|
/** Distinct ref-membership bitmaps, base64-encoded `Uint8Array` of `ceil(dictionary.length/8)` bytes. */
|
|
126
150
|
readonly sets: string[];
|
|
127
151
|
}
|
|
128
|
-
/** Library-owned graph row type.
|
|
152
|
+
/** Library-owned graph row type. */
|
|
129
153
|
export interface GitGraphRow {
|
|
130
154
|
sha: string;
|
|
131
155
|
parents: string[];
|
|
@@ -134,12 +158,14 @@ export interface GitGraphRow {
|
|
|
134
158
|
date: number;
|
|
135
159
|
commitDate?: number;
|
|
136
160
|
message: string;
|
|
137
|
-
|
|
161
|
+
kind: GitGraphRowKind;
|
|
138
162
|
heads?: GitGraphRowHead[];
|
|
139
163
|
remotes?: GitGraphRowRemoteHead[];
|
|
140
164
|
tags?: GitGraphRowTag[];
|
|
141
165
|
contexts?: GitGraphRowContexts;
|
|
142
166
|
stats?: GitGraphRowStats;
|
|
167
|
+
/** Stash rows only: the `{n}` of `stash@{n}`, so consumers stop parsing it back out of the message. */
|
|
168
|
+
stashNumber?: string;
|
|
143
169
|
/**
|
|
144
170
|
* Transient, set only for the duration of {@link GraphRowProcessor.processRow} (the row processor's
|
|
145
171
|
* `+unique` decision reads it). The provider strips it before pushing the row and records the
|
|
@@ -265,10 +291,9 @@ export type GitGraphRowsStats = Map<string, GitGraphRowStats>;
|
|
|
265
291
|
* repo-change rebuild can walk ONLY the changed head region, stitch the cached tail, and re-derive
|
|
266
292
|
* flags/reachability in memory — instead of re-walking every loaded row.
|
|
267
293
|
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
* The GitHub provider ignores it structurally (it never lists the option).
|
|
294
|
+
* The CLI provider consumes this on its incremental fast path, degrading to the full ordered walk
|
|
295
|
+
* whenever any gate below rejects the seed. The GitHub provider ignores it structurally (it never
|
|
296
|
+
* lists the option).
|
|
272
297
|
*/
|
|
273
298
|
export interface GraphIncrementalSeed {
|
|
274
299
|
/**
|
|
@@ -328,7 +353,8 @@ export interface GraphIncrementalSeed {
|
|
|
328
353
|
* {@link GitGraph.decorationFingerprint} of the prior walk. R6b falls back to a full walk on ANY change:
|
|
329
354
|
* reused rows keep their embedded decorations (upstream/worktree/default/remote/user metadata), so a
|
|
330
355
|
* metadata-only change — one that moves no ref tip — would otherwise ship stale pills indefinitely.
|
|
331
|
-
*
|
|
356
|
+
* Optional because providers without the incremental machinery (e.g. GitHub) never populate it; absent ⇒
|
|
357
|
+
* never matches ⇒ safe full fallback.
|
|
332
358
|
*/
|
|
333
359
|
readonly decorationFingerprint?: string;
|
|
334
360
|
}
|
|
@@ -348,10 +374,14 @@ export type IncrementalGraphFallbackReason = 'no-row-processor' | 'ordering-not-
|
|
|
348
374
|
/**
|
|
349
375
|
* Processes a single graph row — mutates the row in place.
|
|
350
376
|
*
|
|
351
|
-
* Sets `row.contexts
|
|
352
|
-
* `head.context`, `remoteHead.context`, `remoteHead.avatarUrl`.
|
|
377
|
+
* Sets `row.contexts` and `row.message` (e.g., emojified), and resolves `remoteHead.avatarUrl`.
|
|
353
378
|
* Also populates `context.avatars` with email → URL mappings.
|
|
354
379
|
*
|
|
380
|
+
* Per-ref contexts are NOT serialized here. The webview builds them from the structured ref fields
|
|
381
|
+
* (`webviews/apps/plus/graph/utils/refContext.utils.ts`), where live state the host would have baked in
|
|
382
|
+
* stale — whether a branch is starred, which ref is pinned — is actually visible. What remains here needs
|
|
383
|
+
* something the webview cannot reach: the extension's asset URIs, or the whole-row grouping.
|
|
384
|
+
*
|
|
355
385
|
* Called inline during graph row iteration in the library's row-building
|
|
356
386
|
* loop, once per row. Because it runs inside the loop, `more()` pagination
|
|
357
387
|
* automatically gets processing for free — no wrapping needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/git/models/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/git/models/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/git/models/graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/git/models/graph.ts"],"names":[],"mappings":"AA2EA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAN,IAAkB,uBAQjB;AARD,WAAkB,uBAAuB;IACxC,qEAAQ,CAAA;IACR,+FAA0B,CAAA;IAC1B,yFAAuB,CAAA;IACvB,mFAAoB,CAAA;IACpB,mFAAoB,CAAA;IACpB,oGAA4B,CAAA;IAC5B,8EAAiB,CAAA;AAClB,CAAC,EARiB,uBAAuB,KAAvB,uBAAuB,QAQxC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GitGraph, GitGraphRow,
|
|
1
|
+
import type { GitGraph, GitGraphRow, IncrementalGraphFallbackReason } from './graph.js';
|
|
2
2
|
/**
|
|
3
3
|
* A provider-owned, stateful graph window for a single repo. It is the canonical accumulated window and
|
|
4
4
|
* the single builder of the incremental rebuild seed — the host no longer mirrors loaded rows, stamps
|
|
@@ -9,8 +9,8 @@ import type { GitGraph, GitGraphRow, GitGraphRowStats, GraphReachabilityTable, I
|
|
|
9
9
|
* `getGraph` incremental machinery (it internally builds the seed from the accumulated window, tips, and
|
|
10
10
|
* prior artifacts, with the same shape gating), {@link more} delegates to the prior result's `more()`,
|
|
11
11
|
* and {@link current} mirrors today's `GitGraph` result shape so the publisher/wire semantics stay
|
|
12
|
-
* byte-identical. R7b (refresh-result-driven channel marking)
|
|
13
|
-
*
|
|
12
|
+
* byte-identical. R7b (refresh-result-driven channel marking) extends this without breaking —
|
|
13
|
+
* {@link refresh} returns a result object, never a bare `GitGraph`.
|
|
14
14
|
*/
|
|
15
15
|
export interface GitGraphSession {
|
|
16
16
|
readonly repoPath: string;
|
|
@@ -35,89 +35,8 @@ export interface GitGraphSession {
|
|
|
35
35
|
* there was nothing to add or a concurrent {@link refresh} superseded the page.
|
|
36
36
|
*/
|
|
37
37
|
more(limit?: number, targetId?: string, cancellation?: AbortSignal): Promise<boolean>;
|
|
38
|
-
/**
|
|
39
|
-
* Snapshot the canonical window for restart persistence, or `undefined` when there's nothing worth
|
|
40
|
-
* persisting — an empty window, or a provider without an incremental restore path (e.g. GitHub, which
|
|
41
|
-
* stamps no ref tips for the restore's tip-diff gate). The host writes this into the repo's own git dir
|
|
42
|
-
* (`<commonGitDir>/gitlens/graph/` — a repo-derived cache, like git's commit-graph file) on an idle
|
|
43
|
-
* debounce / dispose; a later {@link GitGraphSubProvider.openGraphSession} `restore` reconstructs +
|
|
44
|
-
* refreshes it. Never trusted over git — restore always re-refreshes (see {@link GitGraphSessionSnapshot}).
|
|
45
|
-
*/
|
|
46
|
-
serialize(): GitGraphSessionSnapshot | undefined;
|
|
47
38
|
dispose(): void;
|
|
48
39
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Schema version for {@link GitGraphSessionSnapshot}. Bump on ANY shape change (field add/remove/rename or a
|
|
51
|
-
* semantics change): a restore whose snapshot version doesn't match this EXACTLY is discarded (a normal
|
|
52
|
-
* initial walk), so an old-shaped cache written by a prior extension version can never be misread.
|
|
53
|
-
*/
|
|
54
|
-
export declare const graphSessionSnapshotVersion = 3;
|
|
55
|
-
/**
|
|
56
|
-
* Restart-persistence snapshot of a {@link GitGraphSession}'s canonical window — everything a restore needs
|
|
57
|
-
* to reconstruct the session's prior generation as an R6 incremental SEED, so a cold open on an unchanged
|
|
58
|
-
* repo is ≈ deserialize + one enumeration instead of a full walk.
|
|
59
|
-
*
|
|
60
|
-
* NEVER trusted over git: on restore the session reconstructs this as its window/tips/builders WITHOUT any
|
|
61
|
-
* git, then IMMEDIATELY {@link GitGraphSession.refresh | refreshes} — the same enumeration + tip-diff + FF +
|
|
62
|
-
* stash gates reconcile a stale snapshot (fast when unchanged, a full walk on any structural change), and any
|
|
63
|
-
* parse/validation failure discards it entirely for a normal initial walk.
|
|
64
|
-
*
|
|
65
|
-
* Rows are persisted as-is: they're already the JSON-safe wire shapes (strings/numbers/plain objects — the
|
|
66
|
-
* graph's Maps live at the graph level, not on rows, and the transient per-row `reachability` is stripped
|
|
67
|
-
* before a row is emitted). Maps are persisted as entry arrays.
|
|
68
|
-
*/
|
|
69
|
-
export interface GitGraphSessionSnapshot {
|
|
70
|
-
/** Must equal {@link graphSessionSnapshotVersion}; any mismatch discards the snapshot. */
|
|
71
|
-
readonly v: number;
|
|
72
|
-
readonly repoPath: string;
|
|
73
|
-
/** Walk shape the window was produced under (`${ordering}|${onlyFollowFirstParent}`). A restore is
|
|
74
|
-
* discarded when this disagrees with the current config's shape — the cached rows can't be reused. */
|
|
75
|
-
readonly buildShape: string;
|
|
76
|
-
readonly ordering: 'date' | 'author-date' | 'topo';
|
|
77
|
-
readonly onlyFollowFirstParent: boolean;
|
|
78
|
-
/** The persisted window rows, in walk order — a TOP slice capped at a bounded row count (see the host
|
|
79
|
-
* store); a longer window persists its top slice with {@link hasMore} forced true so the bottom re-pages. */
|
|
80
|
-
readonly rows: GitGraphRow[];
|
|
81
|
-
/** Ref tips as of the persisted walk: `[canonical refname, peeled tip sha]` entries — the map the restore
|
|
82
|
-
* refresh diffs against current git to find the structural changes that force a full fallback. */
|
|
83
|
-
readonly refTips: [string, string][];
|
|
84
|
-
/** {@link GitGraph.decorationFingerprint} as of the persisted walk — the restore refresh diffs it against
|
|
85
|
-
* current git so a metadata-only change while closed (upstream/default/worktree/remote/user) still forces
|
|
86
|
-
* the full fallback that rebuilds row decorations. Absent ⇒ never matches ⇒ safe full fallback. */
|
|
87
|
-
readonly decorationFingerprint?: string;
|
|
88
|
-
/** Shared reachability table for the window (the primary reachability representation — rows carry only a
|
|
89
|
-
* `contexts.reachabilityIndex` into its `sets`). The restore refresh CONTINUES it (stable indices). */
|
|
90
|
-
readonly reachability?: GraphReachabilityTable;
|
|
91
|
-
/** Per-sha immutable stats `[sha, stats]` entries for the persisted rows (present only when stats were
|
|
92
|
-
* included in the walk). */
|
|
93
|
-
readonly rowsStats?: [string, GitGraphRowStats][];
|
|
94
|
-
/** Downstreams `[upstream name, tracking branch names]` entries (for the refresh's change diffing). */
|
|
95
|
-
readonly downstreams: [string, string[]][];
|
|
96
|
-
/** Whether the persisted window had more rows below it — genuinely paged OR truncated by the cap. */
|
|
97
|
-
readonly hasMore: boolean;
|
|
98
|
-
/** Whether the persisted walk included per-row stats. */
|
|
99
|
-
readonly includesStats: boolean;
|
|
100
|
-
/** Whether the repo was a shallow clone when the window was walked. The restore refresh diffs this
|
|
101
|
-
* against current git — an un-shallow (or re-shallow) while closed forces a full fallback. */
|
|
102
|
-
readonly shallow: boolean;
|
|
103
|
-
}
|
|
104
|
-
/** Why a restore discarded its snapshot (reported via {@link GraphSessionRestoreResult.reason}). */
|
|
105
|
-
export type GraphSessionRestoreDiscardReason = 'schema' | 'repo-path' | 'shape' | 'empty' | 'tips' | 'rows' | 'reachability' | 'downstreams' | 'rowsStats' | 'corrupt';
|
|
106
|
-
/**
|
|
107
|
-
* Outcome of a restore attempt, reported via the {@link GitGraphSubProvider.openGraphSession} `onRestore`
|
|
108
|
-
* callback so the host can emit its single, assertable INFO line. `restored` is true only when the snapshot
|
|
109
|
-
* validated and seeded the (always-run) refresh — `refresh` then carries that refresh's path so the host can
|
|
110
|
-
* distinguish `→ refresh fast (+M)` from `→ refresh full (<reason>)`.
|
|
111
|
-
*/
|
|
112
|
-
export interface GraphSessionRestoreResult {
|
|
113
|
-
readonly restored: boolean;
|
|
114
|
-
/** Present when `!restored`: why the snapshot was discarded; the host logs `miss (<reason>)`. */
|
|
115
|
-
readonly reason?: GraphSessionRestoreDiscardReason;
|
|
116
|
-
/** Present when `restored`: how many window rows the snapshot carried. */
|
|
117
|
-
readonly rows?: number;
|
|
118
|
-
/** Present when `restored`: the post-restore refresh outcome (a restore ALWAYS refreshes to current truth). */
|
|
119
|
-
readonly refresh?: GitGraphSessionRefreshResult;
|
|
120
|
-
}
|
|
121
40
|
export interface GitGraphSessionRefreshOptions {
|
|
122
41
|
/** Rebuild anchor / find target — the loaded window's bottom sha (pins the walk's bottom boundary),
|
|
123
42
|
* or a selection/centering hint. Mirrors the `rev` the host passed to `getGraph` today. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphSession.d.ts","sourceRoot":"","sources":["../../../src/git/models/graphSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"graphSession.d.ts","sourceRoot":"","sources":["../../../src/git/models/graphSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAExF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,6BAA6B,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEpH;;;OAGG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtF,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC7C;gGAC4F;IAC5F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,2GAA2G;IAC3G,QAAQ,CAAC,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACjD,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;CACjD;AAED,6HAA6H;AAC7H,MAAM,WAAW,8BAA8B;IAC9C;kGAC8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,4GAA4G;IAC5G,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;8FAC0F;IAC1F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Schema version for {@link GitGraphSessionSnapshot}. Bump on ANY shape change (field add/remove/rename or a
|
|
3
|
-
* semantics change): a restore whose snapshot version doesn't match this EXACTLY is discarded (a normal
|
|
4
|
-
* initial walk), so an old-shaped cache written by a prior extension version can never be misread.
|
|
5
|
-
*/
|
|
6
|
-
export const graphSessionSnapshotVersion = 3;
|
|
1
|
+
export {};
|
|
7
2
|
//# sourceMappingURL=graphSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphSession.js","sourceRoot":"","sources":["../../../src/git/models/graphSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphSession.js","sourceRoot":"","sources":["../../../src/git/models/graphSession.ts"],"names":[],"mappings":""}
|
|
@@ -5,7 +5,8 @@ import type { RepositoryIdentityDescriptor } from './repositoryIdentities.js';
|
|
|
5
5
|
/** Selects which issue states a read should include. `all` covers open + closed. */
|
|
6
6
|
export type IssueStateFilter = 'open' | 'closed' | 'all';
|
|
7
7
|
export interface IssueShape extends IssueOrPullRequest {
|
|
8
|
-
author
|
|
8
|
+
/** `undefined` when the provider can't resolve the author, e.g. a deleted GitHub account */
|
|
9
|
+
author: IssueMember | undefined;
|
|
9
10
|
assignees: IssueMember[];
|
|
10
11
|
repository?: IssueRepository;
|
|
11
12
|
labels?: IssueLabel[];
|
|
@@ -23,7 +24,7 @@ export declare class Issue implements IssueShape {
|
|
|
23
24
|
readonly updatedDate: Date;
|
|
24
25
|
readonly closed: boolean;
|
|
25
26
|
readonly state: IssueOrPullRequestState;
|
|
26
|
-
readonly author: IssueMember;
|
|
27
|
+
readonly author: IssueMember | undefined;
|
|
27
28
|
readonly assignees: IssueMember[];
|
|
28
29
|
readonly repository?: IssueRepository | undefined;
|
|
29
30
|
readonly closedDate?: Date | undefined;
|
|
@@ -35,7 +36,7 @@ export declare class Issue implements IssueShape {
|
|
|
35
36
|
readonly number?: string | undefined;
|
|
36
37
|
readonly issueType?: string | undefined;
|
|
37
38
|
readonly type = "issue";
|
|
38
|
-
constructor(provider: ProviderReference, id: string, nodeId: string | undefined, title: string, url: string, createdDate: Date, updatedDate: Date, closed: boolean, state: IssueOrPullRequestState, author: IssueMember, assignees: IssueMember[], repository?: IssueRepository | undefined, closedDate?: Date | undefined, labels?: IssueLabel[] | undefined, commentsCount?: number | undefined, thumbsUpCount?: number | undefined, body?: string | undefined, project?: IssueProject | undefined, number?: string | undefined, issueType?: string | undefined);
|
|
39
|
+
constructor(provider: ProviderReference, id: string, nodeId: string | undefined, title: string, url: string, createdDate: Date, updatedDate: Date, closed: boolean, state: IssueOrPullRequestState, author: IssueMember | undefined, assignees: IssueMember[], repository?: IssueRepository | undefined, closedDate?: Date | undefined, labels?: IssueLabel[] | undefined, commentsCount?: number | undefined, thumbsUpCount?: number | undefined, body?: string | undefined, project?: IssueProject | undefined, number?: string | undefined, issueType?: string | undefined);
|
|
39
40
|
static is(issue: unknown): issue is Issue;
|
|
40
41
|
}
|
|
41
42
|
export declare const enum RepositoryAccessLevel {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/git/models/issue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAE9E,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACrD,MAAM,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/git/models/issue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAE9E,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACrD,4FAA4F;IAC5F,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,KAAM,YAAW,UAAU;aAItB,QAAQ,EAAE,iBAAiB;aAC3B,EAAE,EAAE,MAAM;aACV,MAAM,EAAE,MAAM,GAAG,SAAS;aAC1B,KAAK,EAAE,MAAM;aACb,GAAG,EAAE,MAAM;aACX,WAAW,EAAE,IAAI;aACjB,WAAW,EAAE,IAAI;aACjB,MAAM,EAAE,OAAO;aACf,KAAK,EAAE,uBAAuB;aAC9B,MAAM,EAAE,WAAW,GAAG,SAAS;aAC/B,SAAS,EAAE,WAAW,EAAE;aACxB,UAAU,CAAC,EAAE,eAAe;aAC5B,UAAU,CAAC,EAAE,IAAI;aACjB,MAAM,CAAC,EAAE,UAAU,EAAE;aACrB,aAAa,CAAC,EAAE,MAAM;aACtB,aAAa,CAAC,EAAE,MAAM;aACtB,IAAI,CAAC,EAAE,MAAM;aACb,OAAO,CAAC,EAAE,YAAY;aACtB,MAAM,CAAC,EAAE,MAAM;aACf,SAAS,CAAC,EAAE,MAAM;IAtBnC,QAAQ,CAAC,IAAI,WAAW;IAExB,YACiB,QAAQ,EAAE,iBAAiB,EAC3B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,uBAAuB,EAC9B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,SAAS,EAAE,WAAW,EAAE,EACxB,UAAU,CAAC,EAAE,eAAe,YAAA,EAC5B,UAAU,CAAC,EAAE,IAAI,YAAA,EACjB,MAAM,CAAC,EAAE,UAAU,EAAE,YAAA,EACrB,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,YAAY,YAAA,EACtB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,SAAS,CAAC,EAAE,MAAM,YAAA,EAC/B;IAEJ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAExC;CACD;AAED,0BAAkB,qBAAqB;IACtC,KAAK,MAAM;IACX,QAAQ,KAAK;IACb,KAAK,KAAK;IACV,MAAM,KAAK;IACX,IAAI,KAAK;IACT,IAAI,IAAI;CACR;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,iCAAiC,GAAG,oBAAoB,CACnE,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EAC7D,UAAU,EACV,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAC3C,GACA,oBAAoB,CAAC,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/git/models/issue.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/git/models/issue.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAqBrD,IAAM,KAAK,aAAX,MAAM,KAAK;IAIA,QAAQ;IACR,EAAE;IACF,MAAM;IACN,KAAK;IACL,GAAG;IACH,WAAW;IACX,WAAW;IACX,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,MAAM;IACN,aAAa;IACb,aAAa;IACb,IAAI;IACJ,OAAO;IACP,MAAM;IACN,SAAS;IAtBjB,IAAI,GAAG,OAAO,CAAC;IAExB,YACiB,QAA2B,EAC3B,EAAU,EACV,MAA0B,EAC1B,KAAa,EACb,GAAW,EACX,WAAiB,EACjB,WAAiB,EACjB,MAAe,EACf,KAA8B,EAC9B,MAA+B,EAC/B,SAAwB,EACxB,UAA4B,EAC5B,UAAiB,EACjB,MAAqB,EACrB,aAAsB,EACtB,aAAsB,EACtB,IAAa,EACb,OAAsB,EACtB,MAAe,EACf,SAAkB;wBAnBlB,QAAQ;kBACR,EAAE;sBACF,MAAM;qBACN,KAAK;mBACL,GAAG;2BACH,WAAW;2BACX,WAAW;sBACX,MAAM;qBACN,KAAK;sBACL,MAAM;yBACN,SAAS;0BACT,UAAU;0BACV,UAAU;sBACV,MAAM;6BACN,aAAa;6BACb,aAAa;oBACb,IAAI;uBACJ,OAAO;sBACP,MAAM;yBACN,SAAS;IACvB,CAAC;IAEG,AAAP,MAAM,CAAC,EAAE,CAAC,KAAc;QACvB,OAAO,KAAK,mBAAiB,CAAC;IAC/B,CAAC;CACD,CAAA;AA7BY,KAAK;IADjB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;GACP,KAAK,CA6BjB;;AAED,MAAM,CAAN,IAAkB,qBAOjB;AAPD,WAAkB,qBAAqB;IACtC,qEAAW,CAAA;IACX,0EAAa,CAAA;IACb,oEAAU,CAAA;IACV,sEAAW,CAAA;IACX,kEAAS,CAAA;IACT,iEAAQ,CAAA;AACT,CAAC,EAPiB,qBAAqB,KAArB,qBAAqB,QAOtC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GitGraph, GitGraphRowsStats, GraphIncrementalSeed, GraphReachabilityTable, GraphRowProcessor, IncrementalGraphOutcome } from '../models/graph.js';
|
|
2
2
|
import type { GitGraphSearch, GitGraphSearchCursor, GitGraphSearchProgress, GitGraphSearchResults } from '../models/graphSearch.js';
|
|
3
|
-
import type { GitGraphSession
|
|
3
|
+
import type { GitGraphSession } from '../models/graphSession.js';
|
|
4
4
|
import type { SearchQuery } from '../models/search.js';
|
|
5
5
|
export interface GitGraphSubProvider {
|
|
6
6
|
/**
|
|
@@ -17,20 +17,6 @@ export interface GitGraphSubProvider {
|
|
|
17
17
|
include?: {
|
|
18
18
|
stats?: boolean;
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
21
|
-
* Restart-persistence snapshot to seed the session from (see {@link GitGraphSessionSnapshot}). When
|
|
22
|
-
* present and structurally valid, the session reconstructs it as its prior generation WITHOUT any git,
|
|
23
|
-
* then immediately refreshes to current truth — so a cold open on an unchanged repo is ≈ deserialize +
|
|
24
|
-
* one enumeration. Any validation/parse failure is ignored (a normal initial walk). Never trusted over
|
|
25
|
-
* git. Providers without an incremental restore path (e.g. GitHub) ignore it.
|
|
26
|
-
*/
|
|
27
|
-
restore?: GitGraphSessionSnapshot;
|
|
28
|
-
/**
|
|
29
|
-
* Reports the restore outcome (validated + refreshed, or discarded with a reason) so the host can log
|
|
30
|
-
* a single assertable line. Called at most once, only when `restore` was provided. See
|
|
31
|
-
* {@link GraphSessionRestoreResult}.
|
|
32
|
-
*/
|
|
33
|
-
onRestore?: (result: GraphSessionRestoreResult) => void;
|
|
34
20
|
}, cancellation?: AbortSignal): Promise<GitGraphSession>;
|
|
35
21
|
getGraph(repoPath: string, rev: string | undefined, options?: {
|
|
36
22
|
include?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/git/providers/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACX,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/git/providers/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACX,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IACnC;;;;;;OAMG;IACH,gBAAgB,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9B,EACD,YAAY,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,QAAQ,CACP,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;QAC1C;;;WAGG;QACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;QAClC;;;;;WAKG;QACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;QACvC;;;;WAIG;QACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACjE,EACD,YAAY,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,WAAW,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAA;KAAE,EACxE,YAAY,CAAC,EAAE,WAAW,GACxB,cAAc,CAAC,sBAAsB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAChE,mBAAmB,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,EAC5B,eAAe,EAAE,qBAAqB,EACtC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5B,YAAY,CAAC,EAAE,WAAW,GACxB,cAAc,CAAC,sBAAsB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;CAChE"}
|
|
@@ -8,6 +8,8 @@ export interface GitPausedOperationsSubProvider {
|
|
|
8
8
|
}): Promise<void>;
|
|
9
9
|
continuePausedOperation(repoPath: string, options?: {
|
|
10
10
|
skip?: boolean;
|
|
11
|
+
/** Editor command used if the operation needs to edit a commit message (e.g. `true` to keep the original message without opening an editor) */
|
|
12
|
+
messageEditor?: string;
|
|
11
13
|
}): Promise<void>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=pausedOperations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pausedOperations.d.ts","sourceRoot":"","sources":["../../../src/git/providers/pausedOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,MAAM,WAAW,8BAA8B;IAC9C,wBAAwB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7B,YAAY,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;IACjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,uBAAuB,
|
|
1
|
+
{"version":3,"file":"pausedOperations.d.ts","sourceRoot":"","sources":["../../../src/git/providers/pausedOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,MAAM,WAAW,8BAA8B;IAC9C,wBAAwB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7B,YAAY,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;IACjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,uBAAuB,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,+IAA+I;QAC/I,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,GACC,OAAO,CAAC,IAAI,CAAC,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.utils.d.ts","sourceRoot":"","sources":["../../../src/git/utils/issue.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/F,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,GAAG,iCAAiC,CAiB1G;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"issue.utils.d.ts","sourceRoot":"","sources":["../../../src/git/utils/issue.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/F,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,GAAG,iCAAiC,CAiB1G;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CA+D5D"}
|
|
@@ -35,12 +35,14 @@ export function serializeIssue(value) {
|
|
|
35
35
|
closedDate: value.closedDate,
|
|
36
36
|
closed: value.closed,
|
|
37
37
|
state: value.state,
|
|
38
|
-
author:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
author: value.author == null
|
|
39
|
+
? undefined
|
|
40
|
+
: {
|
|
41
|
+
id: value.author.id,
|
|
42
|
+
name: value.author.name,
|
|
43
|
+
avatarUrl: value.author.avatarUrl,
|
|
44
|
+
url: value.author.url,
|
|
45
|
+
},
|
|
44
46
|
repository: value.repository == null
|
|
45
47
|
? undefined
|
|
46
48
|
: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.utils.js","sourceRoot":"","sources":["../../../src/git/utils/issue.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,KAAyB;IACtE,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEpE,OAAO;QACN,MAAM,EAAE;YACP,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;YACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;SAC7B;QACD,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;QAC1D,QAAQ,EAAE;YACT,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;YACrB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;YAClC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;YAC/B,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;SACvC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAiB;IAC/C,MAAM,UAAU,GAAe;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE;YACT,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;YACrB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;YACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;YAC7B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;SACzB;QACD,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"issue.utils.js","sourceRoot":"","sources":["../../../src/git/utils/issue.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ type ReachableRef = GitCommitReachability['refs'][number];
|
|
|
7
7
|
* set and the walk's HEAD-derived sets. Single-sourced so the host row processor
|
|
8
8
|
* (`GlGraphRowProcessor`), the R6b incremental fast path, and the equivalence harness all compute
|
|
9
9
|
* byte-identical flags (no manual mirrors that can drift). Stash rows carry no flags — callers skip this
|
|
10
|
-
* for `stash
|
|
10
|
+
* for `stash` rows. See {@link GitGraphRowContextFlags} for the per-bit semantics.
|
|
11
11
|
*/
|
|
12
12
|
export declare function computeGraphRowContextFlags(sha: string, reachableRefs: Iterable<ReachableRef> | undefined, ctx: Pick<GraphContext, 'reachableFromHEAD' | 'rewriteableFromHEAD' | 'tipShasWithChildren' | 'reachableFromHeadUpstream'>): GitGraphRowContextFlags;
|
|
13
13
|
/**
|
|
@@ -5,7 +5,7 @@ import { GitGraphRowContextFlags } from '../models/graph.js';
|
|
|
5
5
|
* set and the walk's HEAD-derived sets. Single-sourced so the host row processor
|
|
6
6
|
* (`GlGraphRowProcessor`), the R6b incremental fast path, and the equivalence harness all compute
|
|
7
7
|
* byte-identical flags (no manual mirrors that can drift). Stash rows carry no flags — callers skip this
|
|
8
|
-
* for `stash
|
|
8
|
+
* for `stash` rows. See {@link GitGraphRowContextFlags} for the per-bit semantics.
|
|
9
9
|
*/
|
|
10
10
|
export function computeGraphRowContextFlags(sha, reachableRefs, ctx) {
|
|
11
11
|
// Allocation-free "exactly one local branch reachable" check → `+unique`.
|