@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
|
@@ -22,8 +22,8 @@ export class GraphGitSubProvider {
|
|
|
22
22
|
}
|
|
23
23
|
async openGraphSession(repoPath, options, cancellation) {
|
|
24
24
|
// GitHub-backed graphs have no incremental machinery (and `getGraph` takes no row processor); the
|
|
25
|
-
// session is a thin window accumulator over full fetches. `rowProcessor`
|
|
26
|
-
//
|
|
25
|
+
// session is a thin window accumulator over full fetches. `rowProcessor` is accepted for interface
|
|
26
|
+
// parity and ignored — always a full walk.
|
|
27
27
|
const session = new GraphSession(this, repoPath);
|
|
28
28
|
await session.initialize(options, cancellation);
|
|
29
29
|
return session;
|
|
@@ -196,10 +196,12 @@ export class GraphGitSubProvider {
|
|
|
196
196
|
date: commit.committer.date.getTime(),
|
|
197
197
|
commitDate: commit.committer.date.getTime(),
|
|
198
198
|
message: commit.message?.length ? commit.message : commit.summary,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
kind: commit.parents.length > 1 ? 'merge' : 'commit',
|
|
200
|
+
// Omitted rather than empty: an empty array still counts as "present" to the splice
|
|
201
|
+
// fingerprint, which defeats its bare-row skip and makes every ref-less row look changeable.
|
|
202
|
+
heads: refHeads.length ? refHeads : undefined,
|
|
203
|
+
remotes: refRemoteHeads.length ? refRemoteHeads : undefined,
|
|
204
|
+
tags: refTags.length ? refTags : undefined,
|
|
203
205
|
});
|
|
204
206
|
if (commit.stats != null) {
|
|
205
207
|
rowStats.set(commit.sha, {
|
|
@@ -439,10 +441,6 @@ class GraphSession {
|
|
|
439
441
|
this.apply(updated);
|
|
440
442
|
return true;
|
|
441
443
|
}
|
|
442
|
-
serialize() {
|
|
443
|
-
// No incremental restore path (no ref-tip gate / reachability table), so nothing worth persisting.
|
|
444
|
-
return undefined;
|
|
445
|
-
}
|
|
446
444
|
dispose() {
|
|
447
445
|
// No-op — the window lives entirely in memory.
|
|
448
446
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../src/plus/git-github/providers/github/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../src/plus/git-github/providers/github/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,36 @@ export interface IntegrationAuthenticationSessionDescriptor {
|
|
|
22
22
|
connectionId?: string;
|
|
23
23
|
[key: string]: unknown;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Options for {@link IntegrationAuthenticationProvider.getSession}. The two variants keep `sync` exclusive
|
|
27
|
+
* with the interactive flags: a sync resolves whatever the cloud already has, so it must never open a connect
|
|
28
|
+
* window.
|
|
29
|
+
*
|
|
30
|
+
* `refreshRejectedToken` marks the stored token as known-refused by the provider (an `AuthenticationError` on
|
|
31
|
+
* a previous read), which forces a cloud `/refresh` even when the token's expiry still claims it is valid —
|
|
32
|
+
* the case a purely time-based refresh cannot see. The refresh token itself never reaches the client: the GK
|
|
33
|
+
* cloud performs the exchange server-side.
|
|
34
|
+
*/
|
|
35
|
+
export type GetSessionOptions = {
|
|
36
|
+
createIfNeeded?: boolean;
|
|
37
|
+
forceNewSession?: boolean;
|
|
38
|
+
sync?: never;
|
|
39
|
+
refreshRejectedToken?: boolean;
|
|
40
|
+
source?: Sources;
|
|
41
|
+
} | {
|
|
42
|
+
createIfNeeded?: never;
|
|
43
|
+
forceNewSession?: never;
|
|
44
|
+
sync: boolean;
|
|
45
|
+
refreshRejectedToken?: boolean;
|
|
46
|
+
source?: Sources;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* What {@link IntegrationAuthenticationProviderBase.getSession} passes down once it has decided the stored
|
|
50
|
+
* session can't be served as-is. `refreshIfExpired` is its own conclusion, not a caller's option.
|
|
51
|
+
*/
|
|
52
|
+
type GetNewSessionOptions = GetSessionOptions & {
|
|
53
|
+
refreshIfExpired?: boolean;
|
|
54
|
+
};
|
|
25
55
|
export interface IntegrationAuthenticationProvider extends Disposable {
|
|
26
56
|
/**
|
|
27
57
|
* Clears the stored secret for one connection only (never the whole provider). Unlike
|
|
@@ -35,17 +65,11 @@ export interface IntegrationAuthenticationProvider extends Disposable {
|
|
|
35
65
|
preserveConfigured?: boolean;
|
|
36
66
|
}): Promise<void>;
|
|
37
67
|
deleteAllSessions(descriptor?: IntegrationAuthenticationSessionDescriptor): Promise<void>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
} | {
|
|
44
|
-
createIfNeeded?: never;
|
|
45
|
-
forceNewSession?: never;
|
|
46
|
-
sync: boolean;
|
|
47
|
-
source?: Sources;
|
|
48
|
-
}): Promise<ProviderAuthenticationSession | undefined>;
|
|
68
|
+
/**
|
|
69
|
+
* Resolves the session for `descriptor`, from storage when it is still usable and from the cloud
|
|
70
|
+
* otherwise. See {@link GetSessionOptions}.
|
|
71
|
+
*/
|
|
72
|
+
getSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: GetSessionOptions): Promise<ProviderAuthenticationSession | undefined>;
|
|
49
73
|
get onDidChange(): Event<void>;
|
|
50
74
|
}
|
|
51
75
|
declare abstract class IntegrationAuthenticationProviderBase<ID extends IntegrationIds = IntegrationIds> implements IntegrationAuthenticationProvider {
|
|
@@ -61,49 +85,15 @@ declare abstract class IntegrationAuthenticationProviderBase<ID extends Integrat
|
|
|
61
85
|
preserveConfigured?: boolean;
|
|
62
86
|
}): Promise<void>;
|
|
63
87
|
deleteAllSessions(descriptor?: IntegrationAuthenticationSessionDescriptor): Promise<void>;
|
|
64
|
-
getSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?:
|
|
65
|
-
|
|
66
|
-
forceNewSession?: boolean;
|
|
67
|
-
sync?: never;
|
|
68
|
-
source?: Sources;
|
|
69
|
-
} | {
|
|
70
|
-
createIfNeeded?: never;
|
|
71
|
-
forceNewSession?: never;
|
|
72
|
-
sync: boolean;
|
|
73
|
-
source?: Sources;
|
|
74
|
-
}): Promise<ProviderAuthenticationSession | undefined>;
|
|
75
|
-
protected abstract getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
|
|
76
|
-
createIfNeeded?: boolean;
|
|
77
|
-
forceNewSession?: boolean;
|
|
78
|
-
sync?: never;
|
|
79
|
-
refreshIfExpired?: boolean;
|
|
80
|
-
source?: Sources;
|
|
81
|
-
} | {
|
|
82
|
-
createIfNeeded?: never;
|
|
83
|
-
forceNewSession?: never;
|
|
84
|
-
sync: boolean;
|
|
85
|
-
refreshIfExpired?: boolean;
|
|
86
|
-
source?: Sources;
|
|
87
|
-
}): Promise<ProviderAuthenticationSession | undefined>;
|
|
88
|
+
getSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: GetSessionOptions): Promise<ProviderAuthenticationSession | undefined>;
|
|
89
|
+
protected abstract getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: GetNewSessionOptions): Promise<ProviderAuthenticationSession | undefined>;
|
|
88
90
|
protected fireChange(): void;
|
|
89
91
|
}
|
|
90
92
|
export declare class CloudIntegrationAuthenticationProvider<ID extends IntegrationIds = IntegrationIds> extends IntegrationAuthenticationProviderBase<ID> {
|
|
91
93
|
private readonly _authProviderId;
|
|
92
94
|
constructor(authenticationService: IntegrationAuthenticationService, configuredIntegrationService: ConfiguredIntegrationService, _authProviderId: ID);
|
|
93
95
|
protected get authProviderId(): ID;
|
|
94
|
-
protected getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?:
|
|
95
|
-
createIfNeeded?: boolean;
|
|
96
|
-
forceNewSession?: boolean;
|
|
97
|
-
sync?: never;
|
|
98
|
-
refreshIfExpired?: boolean;
|
|
99
|
-
source?: Sources;
|
|
100
|
-
} | {
|
|
101
|
-
createIfNeeded?: never;
|
|
102
|
-
forceNewSession?: never;
|
|
103
|
-
sync: boolean;
|
|
104
|
-
refreshIfExpired?: boolean;
|
|
105
|
-
source?: Sources;
|
|
106
|
-
}): Promise<ProviderAuthenticationSession | undefined>;
|
|
96
|
+
protected getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: GetNewSessionOptions): Promise<ProviderAuthenticationSession | undefined>;
|
|
107
97
|
private connectCloudSession;
|
|
108
98
|
private getCloudSession;
|
|
109
99
|
private disconnectCloudSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrationAuthenticationProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAC9F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAKjE,MAAM,WAAW,2CAA2C;IAC3D,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,0CAA0C;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"integrationAuthenticationProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,10 +63,15 @@ class IntegrationAuthenticationProviderBase {
|
|
|
63
63
|
previousToken = session?.accessToken;
|
|
64
64
|
}
|
|
65
65
|
const isExpiredSession = session?.expiresAt != null && new Date(session.expiresAt).getTime() < Date.now();
|
|
66
|
-
|
|
66
|
+
// A rejected token has to re-resolve even when the stored session looks perfectly healthy: that is
|
|
67
|
+
// the whole point — the provider refused it while its expiry still says valid. Without this the
|
|
68
|
+
// stored session short-circuits here and the refresh below is never reached.
|
|
69
|
+
const refreshRejectedToken = options?.refreshRejectedToken === true && session != null;
|
|
70
|
+
if (session == null || isExpiredSession || refreshRejectedToken) {
|
|
67
71
|
session = await this.getNewSession(descriptor, {
|
|
68
72
|
...options,
|
|
69
73
|
refreshIfExpired: isExpiredSession,
|
|
74
|
+
refreshRejectedToken: refreshRejectedToken,
|
|
70
75
|
});
|
|
71
76
|
if (session != null) {
|
|
72
77
|
await this.configuredIntegrationService.storeSession(this.authProviderId, session);
|
|
@@ -110,8 +115,14 @@ export class CloudIntegrationAuthenticationProvider extends IntegrationAuthentic
|
|
|
110
115
|
// TODO: This is a stopgap to make sure we're not hammering the api on automatic calls to get the session.
|
|
111
116
|
// Ultimately we want to timestamp calls to syncCloudIntegrations and use that to determine whether we should
|
|
112
117
|
// make the call or not.
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
// `refreshRejectedToken` joins the list for the same reason `refreshIfExpired` is on it: both mean the
|
|
119
|
+
// session in hand is known-unusable, so skipping the cloud round trip would just re-serve it.
|
|
120
|
+
let session = options?.refreshIfExpired ||
|
|
121
|
+
options?.refreshRejectedToken ||
|
|
122
|
+
options?.createIfNeeded ||
|
|
123
|
+
options?.forceNewSession ||
|
|
124
|
+
options?.sync
|
|
125
|
+
? await this.getCloudSession(descriptor, { refreshRejectedToken: options?.refreshRejectedToken })
|
|
115
126
|
: undefined;
|
|
116
127
|
const shouldCreateSession = options?.createIfNeeded && session == null;
|
|
117
128
|
if (shouldCreateSession) {
|
|
@@ -139,7 +150,7 @@ export class CloudIntegrationAuthenticationProvider extends IntegrationAuthentic
|
|
|
139
150
|
}
|
|
140
151
|
return Promise.resolve(false);
|
|
141
152
|
}
|
|
142
|
-
async getCloudSession(descriptor) {
|
|
153
|
+
async getCloudSession(descriptor, options) {
|
|
143
154
|
const loggedIn = (await this.authenticationService.ctx.account.getAccount()) != null;
|
|
144
155
|
if (!loggedIn)
|
|
145
156
|
return undefined;
|
|
@@ -165,7 +176,13 @@ export class CloudIntegrationAuthenticationProvider extends IntegrationAuthentic
|
|
|
165
176
|
if (session?.expiresIn === 0 && isNonExpiringZeroTokenIntegrationId(this.authProviderId)) {
|
|
166
177
|
session.expiresIn = maxSmallIntegerV8; // maximum expiration length
|
|
167
178
|
}
|
|
168
|
-
|
|
179
|
+
// `expiresIn < 60` is a PREDICTION that the token is about to lapse, and it is the only trigger the
|
|
180
|
+
// refresh used to have. It cannot see a token the provider has already refused while the backend
|
|
181
|
+
// still believes it is valid — a revoked grant, retired scopes, an app removed from the org — where
|
|
182
|
+
// `expiresIn` stays high and the doomed token is re-sent on every read. `refreshRejectedToken` is
|
|
183
|
+
// the observed counterpart: the caller saw the provider reject this exact token, so refresh it
|
|
184
|
+
// regardless of what its expiry claims.
|
|
185
|
+
if (session != null && (session.expiresIn < 60 || options?.refreshRejectedToken)) {
|
|
169
186
|
session = await cloudIntegrations.getConnectionSession(this.authProviderId, session.accessToken, connectionId);
|
|
170
187
|
if (session != null &&
|
|
171
188
|
isGitSelfManagedHostIntegrationId(this.authProviderId) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrationAuthenticationProvider.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAIvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,8DAA8D;
|
|
1
|
+
{"version":3,"file":"integrationAuthenticationProvider.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection recovery state for a cloud token the provider REFUSED — a revoked grant, retired scopes, an
|
|
3
|
+
* app removed from the org. A purely predictive refresh (`expiresIn < 60`) cannot see that case, because the
|
|
4
|
+
* backend still believes the token is valid, so without this the refused token is re-sent on every read and
|
|
5
|
+
* the failure only clears when the user reconnects by hand.
|
|
6
|
+
*
|
|
7
|
+
* One recovery refresh per connection, then the connection is the failure budget's problem:
|
|
8
|
+
* - {@link recordRejection} on an `AuthenticationError` — arms the refresh, or reports that the rejection is
|
|
9
|
+
* not recoverable so the caller counts it as a real failure instead.
|
|
10
|
+
* - {@link claimRefresh} before the next read resolves its session — spends the rejection, so the refresh
|
|
11
|
+
* fires once and no further read of that connection asks the cloud again.
|
|
12
|
+
*
|
|
13
|
+
* Deliberately NOT re-armed when the refresh hands back a different token. The GK cloud mints a new access
|
|
14
|
+
* token on every `/refresh`, so a credential the provider refuses for a reason a refresh cannot fix (retired
|
|
15
|
+
* scopes being the plain case) would look "rotated" on each attempt: re-arming on that would refresh on every
|
|
16
|
+
* read forever and the failure budget — the thing that disconnects and prompts a reconnect — would never
|
|
17
|
+
* advance. What resets this instead is {@link clear}, called by every path that replaces or removes the stored
|
|
18
|
+
* tokens; a connection that is simply working never reaches here at all.
|
|
19
|
+
*/
|
|
20
|
+
export declare class RejectedTokenTracker {
|
|
21
|
+
private readonly _rejections;
|
|
22
|
+
/**
|
|
23
|
+
* Whether a read of `connectionId` must force the cloud refresh of a token known to be refused, spending
|
|
24
|
+
* the rejection so the refresh runs at most once. Spent here rather than after the read because a resolve
|
|
25
|
+
* that throws must not leave the refresh armed and ask the cloud again on the next read.
|
|
26
|
+
*/
|
|
27
|
+
claimRefresh(connectionId: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Arms the recovery refresh for `connectionId`. Returns `false` once this connection has had its refresh
|
|
30
|
+
* (or already has one pending), so the caller falls back to its own failure handling: a token still
|
|
31
|
+
* refused after the refresh is not self-healing, and only the failure budget ends in a reconnect prompt.
|
|
32
|
+
*/
|
|
33
|
+
recordRejection(connectionId: string): boolean;
|
|
34
|
+
/** Drops all state, for when the stored tokens a rejection could name are replaced or gone. */
|
|
35
|
+
clear(): void;
|
|
36
|
+
/** Whether any connection is holding a rejection. For assertions; the read path uses {@link claimRefresh}. */
|
|
37
|
+
get empty(): boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=rejectedTokenTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejectedTokenTracker.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/rejectedTokenTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IAEpE;;;;OAIG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAK1C;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAK7C;IAED,+FAA+F;IAC/F,KAAK,IAAI,IAAI,CAEZ;IAED,8GAA8G;IAC9G,IAAI,KAAK,IAAI,OAAO,CAEnB;CACD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection recovery state for a cloud token the provider REFUSED — a revoked grant, retired scopes, an
|
|
3
|
+
* app removed from the org. A purely predictive refresh (`expiresIn < 60`) cannot see that case, because the
|
|
4
|
+
* backend still believes the token is valid, so without this the refused token is re-sent on every read and
|
|
5
|
+
* the failure only clears when the user reconnects by hand.
|
|
6
|
+
*
|
|
7
|
+
* One recovery refresh per connection, then the connection is the failure budget's problem:
|
|
8
|
+
* - {@link recordRejection} on an `AuthenticationError` — arms the refresh, or reports that the rejection is
|
|
9
|
+
* not recoverable so the caller counts it as a real failure instead.
|
|
10
|
+
* - {@link claimRefresh} before the next read resolves its session — spends the rejection, so the refresh
|
|
11
|
+
* fires once and no further read of that connection asks the cloud again.
|
|
12
|
+
*
|
|
13
|
+
* Deliberately NOT re-armed when the refresh hands back a different token. The GK cloud mints a new access
|
|
14
|
+
* token on every `/refresh`, so a credential the provider refuses for a reason a refresh cannot fix (retired
|
|
15
|
+
* scopes being the plain case) would look "rotated" on each attempt: re-arming on that would refresh on every
|
|
16
|
+
* read forever and the failure budget — the thing that disconnects and prompts a reconnect — would never
|
|
17
|
+
* advance. What resets this instead is {@link clear}, called by every path that replaces or removes the stored
|
|
18
|
+
* tokens; a connection that is simply working never reaches here at all.
|
|
19
|
+
*/
|
|
20
|
+
export class RejectedTokenTracker {
|
|
21
|
+
_rejections = new Map();
|
|
22
|
+
/**
|
|
23
|
+
* Whether a read of `connectionId` must force the cloud refresh of a token known to be refused, spending
|
|
24
|
+
* the rejection so the refresh runs at most once. Spent here rather than after the read because a resolve
|
|
25
|
+
* that throws must not leave the refresh armed and ask the cloud again on the next read.
|
|
26
|
+
*/
|
|
27
|
+
claimRefresh(connectionId) {
|
|
28
|
+
if (this._rejections.get(connectionId) !== 'armed')
|
|
29
|
+
return false;
|
|
30
|
+
this._rejections.set(connectionId, 'spent');
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Arms the recovery refresh for `connectionId`. Returns `false` once this connection has had its refresh
|
|
35
|
+
* (or already has one pending), so the caller falls back to its own failure handling: a token still
|
|
36
|
+
* refused after the refresh is not self-healing, and only the failure budget ends in a reconnect prompt.
|
|
37
|
+
*/
|
|
38
|
+
recordRejection(connectionId) {
|
|
39
|
+
if (this._rejections.has(connectionId))
|
|
40
|
+
return false;
|
|
41
|
+
this._rejections.set(connectionId, 'armed');
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
/** Drops all state, for when the stored tokens a rejection could name are replaced or gone. */
|
|
45
|
+
clear() {
|
|
46
|
+
this._rejections.clear();
|
|
47
|
+
}
|
|
48
|
+
/** Whether any connection is holding a rejection. For assertions; the read path uses {@link claimRefresh}. */
|
|
49
|
+
get empty() {
|
|
50
|
+
return this._rejections.size === 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=rejectedTokenTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejectedTokenTracker.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/rejectedTokenTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,oBAAoB;IACf,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEpE;;;;OAIG;IACH,YAAY,CAAC,YAAoB;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAEjE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAoB;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAErD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+FAA+F;IAC/F,KAAK;QACJ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,8GAA8G;IAC9G,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IACpC,CAAC;CACD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollectionMetadata, CollectionScopeFailure } from '@gitkraken/provider-apis';
|
|
1
|
+
import type { CollectionMetadata, CollectionScope, CollectionScopeFailure } from '@gitkraken/provider-apis';
|
|
2
2
|
import type { IntegrationIds } from './constants.js';
|
|
3
3
|
import type { ProviderWarning } from './results.js';
|
|
4
4
|
/**
|
|
@@ -7,6 +7,26 @@ import type { ProviderWarning } from './results.js';
|
|
|
7
7
|
export declare function toCollectionFailureKind(ex: unknown): CollectionScopeFailure['kind'];
|
|
8
8
|
/** Builds a structured SDK scope failure from a caught GitLens request error. */
|
|
9
9
|
export declare function toCollectionScopeFailure(scope: CollectionScopeFailure['scope'], ex: unknown): CollectionScopeFailure;
|
|
10
|
+
/**
|
|
11
|
+
* A scope's identity, as the stable string that keys it.
|
|
12
|
+
*
|
|
13
|
+
* The dedup keys in `providerPaging.ts` build on this, so failures and omissions can never disagree about
|
|
14
|
+
* what "the same scope" means. `providerId` is included: the same repository ID under two providers is two
|
|
15
|
+
* scopes.
|
|
16
|
+
*/
|
|
17
|
+
export declare function collectionScopeKey(scope: CollectionScope | undefined): string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether SDK metadata describes a read that may be missing results.
|
|
20
|
+
*
|
|
21
|
+
* A reported omission counts on its own rather than deferring to `completeness`. The SDK does couple the
|
|
22
|
+
* two — every site that emits an omission degrades completeness in the same call — so today the omission
|
|
23
|
+
* clause changes no outcome. It is defensive: the two facts arrive as independent fields, and a read that
|
|
24
|
+
* names what it left out must not be publishable as whole if a future producer sets only one of them.
|
|
25
|
+
*
|
|
26
|
+
* This is the single definition of "may be missing results", shared with `getPagedResult`, so one metadata
|
|
27
|
+
* object cannot be truncated at one layer and complete at another.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isIncompleteCollection(metadata: CollectionMetadata | undefined): boolean;
|
|
10
30
|
/** Converts internal SDK collection metadata into neutral provider facade signals. */
|
|
11
31
|
export declare function assessCollectionMetadata(providerId: IntegrationIds, domain: string | undefined, connectionId: string | undefined, metadata: CollectionMetadata | undefined): {
|
|
12
32
|
warnings: ProviderWarning[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionMetadata.d.ts","sourceRoot":"","sources":["../../../src/plus/integrations/collectionMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"collectionMetadata.d.ts","sourceRoot":"","sources":["../../../src/plus/integrations/collectionMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,kBAAkB,EAElB,eAAe,EACf,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAKnF;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,sBAAsB,CAMpH;AA8CD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAI7E;AA0DD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED,sFAAsF;AACtF,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACtC;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAkD3E;AAED,wGAAwG;AACxG,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACtC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAM9C"}
|
|
@@ -62,8 +62,18 @@ function toCollectionFailureWarningKind(failure) {
|
|
|
62
62
|
return mapped;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
/**
|
|
66
|
+
* A scope's identity, as the stable string that keys it.
|
|
67
|
+
*
|
|
68
|
+
* The dedup keys in `providerPaging.ts` build on this, so failures and omissions can never disagree about
|
|
69
|
+
* what "the same scope" means. `providerId` is included: the same repository ID under two providers is two
|
|
70
|
+
* scopes.
|
|
71
|
+
*/
|
|
72
|
+
export function collectionScopeKey(scope) {
|
|
73
|
+
return [scope?.providerId ?? '', scope?.resourceId ?? '', scope?.projectId ?? '', scope?.repositoryId ?? ''].join(' ');
|
|
74
|
+
}
|
|
75
|
+
/** ` (resource r, project p, repository o/n)` for the scope IDs present; empty when the scope names none. */
|
|
76
|
+
function collectionScopeText(scope) {
|
|
67
77
|
const parts = [];
|
|
68
78
|
if (scope?.resourceId != null) {
|
|
69
79
|
parts.push(`resource ${scope.resourceId}`);
|
|
@@ -74,9 +84,59 @@ function collectionFailureMessage(failure) {
|
|
|
74
84
|
if (scope?.repositoryId != null) {
|
|
75
85
|
parts.push(`repository ${scope.repositoryId}`);
|
|
76
86
|
}
|
|
77
|
-
|
|
87
|
+
return parts.length ? ` (${parts.join(', ')})` : '';
|
|
88
|
+
}
|
|
89
|
+
function collectionFailureMessage(failure) {
|
|
78
90
|
const detail = failure.message != null ? `: ${failure.message}` : '';
|
|
79
|
-
return `Failed to read ${failure.kind} scope${
|
|
91
|
+
return `Failed to read ${failure.kind} scope${collectionScopeText(failure.scope)}${detail}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Explains one omission in the consumer's terms — what was left out and, where the SDK reports it, how much.
|
|
95
|
+
*
|
|
96
|
+
* An omission is a completeness fact, never a failure: the read succeeded and the provider (or the SDK's own
|
|
97
|
+
* recovery budget) is what withheld results, so retrying the same request cannot recover them. That is why
|
|
98
|
+
* these never contribute to `fetchFailed`.
|
|
99
|
+
*/
|
|
100
|
+
function collectionOmissionMessage(omission) {
|
|
101
|
+
const scopeText = collectionScopeText(omission.scope);
|
|
102
|
+
switch (omission.kind) {
|
|
103
|
+
case 'provider-limit':
|
|
104
|
+
// `totalCount` is the only figure saying how much was withheld; both fields are optional, so degrade
|
|
105
|
+
// through the shapes the SDK can actually emit rather than printing `undefined`.
|
|
106
|
+
if (omission.totalCount != null && omission.limit != null) {
|
|
107
|
+
return `Search${scopeText} matched ${omission.totalCount} results, but the provider exposes at most ${omission.limit}`;
|
|
108
|
+
}
|
|
109
|
+
if (omission.limit != null) {
|
|
110
|
+
return `Search${scopeText} exceeded the provider limit of ${omission.limit} results`;
|
|
111
|
+
}
|
|
112
|
+
return `Search${scopeText} exceeded the provider's result limit`;
|
|
113
|
+
case 'recovery-budget':
|
|
114
|
+
return `Stopped recovering omitted results${scopeText} after reaching the request budget${omission.limit != null ? ` of ${omission.limit} requests` : ''}`;
|
|
115
|
+
case 'pagination-incomplete':
|
|
116
|
+
return `More results are available${scopeText} than this read returned`;
|
|
117
|
+
default:
|
|
118
|
+
// `CollectionOmissionKind` is a closed union, so this is unreachable today. Kept as a compile-time
|
|
119
|
+
// guard rather than a silent fallback: an SDK bump that adds a kind breaks the build here instead
|
|
120
|
+
// of quietly degrading it to a vague message.
|
|
121
|
+
omission.kind;
|
|
122
|
+
return `Some results were omitted${scopeText}; the read is incomplete`;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Whether SDK metadata describes a read that may be missing results.
|
|
127
|
+
*
|
|
128
|
+
* A reported omission counts on its own rather than deferring to `completeness`. The SDK does couple the
|
|
129
|
+
* two — every site that emits an omission degrades completeness in the same call — so today the omission
|
|
130
|
+
* clause changes no outcome. It is defensive: the two facts arrive as independent fields, and a read that
|
|
131
|
+
* names what it left out must not be publishable as whole if a future producer sets only one of them.
|
|
132
|
+
*
|
|
133
|
+
* This is the single definition of "may be missing results", shared with `getPagedResult`, so one metadata
|
|
134
|
+
* object cannot be truncated at one layer and complete at another.
|
|
135
|
+
*/
|
|
136
|
+
export function isIncompleteCollection(metadata) {
|
|
137
|
+
if (metadata == null)
|
|
138
|
+
return false;
|
|
139
|
+
return metadata.completeness !== 'complete' || (metadata.omissions?.length ?? 0) > 0;
|
|
80
140
|
}
|
|
81
141
|
/** Converts internal SDK collection metadata into neutral provider facade signals. */
|
|
82
142
|
export function assessCollectionMetadata(providerId, domain, connectionId, metadata) {
|
|
@@ -95,8 +155,24 @@ export function assessCollectionMetadata(providerId, domain, connectionId, metad
|
|
|
95
155
|
isAuth: kind === 'auth',
|
|
96
156
|
});
|
|
97
157
|
}
|
|
98
|
-
|
|
99
|
-
|
|
158
|
+
// Omissions explain WHY a read is incomplete when nothing failed — a provider cap, an exhausted recovery
|
|
159
|
+
// budget, an undrained scope. They classify as `other`, never `auth`, and are deliberately excluded from
|
|
160
|
+
// `fetchFailed` below: the request succeeded, so a retry would return the same truncated set.
|
|
161
|
+
const omissions = metadata.omissions ?? [];
|
|
162
|
+
for (const omission of omissions) {
|
|
163
|
+
appendDedupedWarning(warnings, {
|
|
164
|
+
providerId: providerId,
|
|
165
|
+
domain: domain,
|
|
166
|
+
connectionId: connectionId,
|
|
167
|
+
message: collectionOmissionMessage(omission),
|
|
168
|
+
kind: 'other',
|
|
169
|
+
isAuth: false,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
const incomplete = isIncompleteCollection(metadata);
|
|
173
|
+
// Only fall back to the generic message when nothing more specific was reported; an omission already
|
|
174
|
+
// explains the incompleteness in the consumer's terms, so adding this on top would be noise.
|
|
175
|
+
if (incomplete && failures.length === 0 && omissions.length === 0) {
|
|
100
176
|
appendDedupedWarning(warnings, {
|
|
101
177
|
providerId: providerId,
|
|
102
178
|
domain: domain,
|