@gitkraken/core-gitlens 0.4.100 → 0.4.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/dist/plus/integrations/errors.d.ts.map +1 -1
  3. package/dist/plus/integrations/errors.js +6 -2
  4. package/dist/plus/integrations/errors.js.map +1 -1
  5. package/dist/plus/integrations/integrationService.d.ts +8 -5
  6. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  7. package/dist/plus/integrations/integrationService.js +20 -652
  8. package/dist/plus/integrations/integrationService.js.map +1 -1
  9. package/dist/plus/integrations/models/gitHostIntegration.d.ts +10 -17
  10. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  11. package/dist/plus/integrations/models/gitHostIntegration.js +38 -88
  12. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  13. package/dist/plus/integrations/models/issuesIntegration.d.ts +4 -21
  14. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
  15. package/dist/plus/integrations/models/issuesIntegration.js +5 -47
  16. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
  17. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  18. package/dist/plus/integrations/reads/broaden.d.ts +20 -0
  19. package/dist/plus/integrations/reads/broaden.d.ts.map +1 -0
  20. package/dist/plus/integrations/reads/broaden.js +326 -0
  21. package/dist/plus/integrations/reads/broaden.js.map +1 -0
  22. package/dist/plus/integrations/reads/context.d.ts +22 -0
  23. package/dist/plus/integrations/reads/context.d.ts.map +1 -1
  24. package/dist/plus/integrations/reads/hierarchy.d.ts +1 -1
  25. package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -1
  26. package/dist/plus/integrations/reads/hierarchy.js +109 -137
  27. package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
  28. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +25 -1
  29. package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +1 -1
  30. package/dist/plus/integrations/reads/hierarchy.utils.js +43 -0
  31. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -1
  32. package/dist/plus/integrations/reads/issueTracker.d.ts +1 -1
  33. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
  34. package/dist/plus/integrations/reads/issueTracker.js +13 -25
  35. package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
  36. package/dist/plus/integrations/reads/issues.d.ts +2 -2
  37. package/dist/plus/integrations/reads/issues.d.ts.map +1 -1
  38. package/dist/plus/integrations/reads/issues.js.map +1 -1
  39. package/dist/plus/integrations/reads/pullRequests.d.ts +1 -1
  40. package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -1
  41. package/dist/plus/integrations/reads/pullRequests.js +1 -1
  42. package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
  43. package/dist/plus/integrations/reads/resolveRepository.d.ts +25 -0
  44. package/dist/plus/integrations/reads/resolveRepository.d.ts.map +1 -0
  45. package/dist/plus/integrations/reads/resolveRepository.js +235 -0
  46. package/dist/plus/integrations/reads/resolveRepository.js.map +1 -0
  47. package/dist/plus/integrations/reads/sweeps.d.ts +11 -0
  48. package/dist/plus/integrations/reads/sweeps.d.ts.map +1 -0
  49. package/dist/plus/integrations/reads/sweeps.js +125 -0
  50. package/dist/plus/integrations/reads/sweeps.js.map +1 -0
  51. package/package.json +1 -1
  52. package/src/plus/integrations/errors.ts +6 -2
  53. package/src/plus/integrations/integrationService.ts +27 -801
  54. package/src/plus/integrations/models/gitHostIntegration.ts +71 -93
  55. package/src/plus/integrations/models/issuesIntegration.ts +5 -52
  56. package/src/plus/integrations/providers/azureDevOps.ts +1 -1
  57. package/src/plus/integrations/reads/broaden.ts +452 -0
  58. package/src/plus/integrations/reads/context.ts +24 -0
  59. package/src/plus/integrations/reads/hierarchy.ts +133 -153
  60. package/src/plus/integrations/reads/hierarchy.utils.ts +50 -1
  61. package/src/plus/integrations/reads/issueTracker.ts +15 -27
  62. package/src/plus/integrations/reads/issues.ts +4 -2
  63. package/src/plus/integrations/reads/pullRequests.ts +2 -9
  64. package/src/plus/integrations/reads/resolveRepository.ts +272 -0
  65. package/src/plus/integrations/reads/sweeps.ts +185 -0
@@ -0,0 +1,326 @@
1
+ import { mapBounded } from '../../../utils/promise.js';
2
+ import { mergeAssessmentInto } from '../collectionMetadata.js';
3
+ import { providerFanOutConcurrency } from '../constants.js';
4
+ import { appendDedupedWarning } from '../results.js';
5
+ import { hostFromDomain } from '../utils/domain.utils.js';
6
+ import { isGitHostIntegration, isIssuesHostIntegrationId } from '../utils/integration.utils.js';
7
+ import { getBroadenIssuesCursor, isBroadenIssuesOrgExhausted, toBroadenIssuesCursor } from './cursors.js';
8
+ import { drainRepositories, runCaptured } from './drains.js';
9
+ import { resolveContinuation, toProviderPageInfo } from './paging.js';
10
+ import { gitHostOnlySurfaceWarning, issuesUnsupportedWarning, noConnectionWarning, otherWarning } from './warnings.js';
11
+ /**
12
+ * Accumulates provider attribution across the rounds of a page-number traversal.
13
+ *
14
+ * The three sets are mutually exclusive per provider and the ordering rules are what keep them so: a provider
15
+ * that failed in one round but broadened in another is INCOMPLETE, not failed, whichever round reported first.
16
+ */
17
+ class ProviderAttribution {
18
+ broadened = new Set();
19
+ failed = new Set();
20
+ incomplete = new Set();
21
+ merge(result) {
22
+ for (const providerId of result.failedProviderIds) {
23
+ if (this.broadened.has(providerId) || result.broadenedProviderIds.includes(providerId)) {
24
+ this.incomplete.add(providerId);
25
+ }
26
+ else {
27
+ this.failed.add(providerId);
28
+ }
29
+ }
30
+ for (const providerId of result.incompleteProviderIds) {
31
+ this.failed.delete(providerId);
32
+ this.incomplete.add(providerId);
33
+ }
34
+ for (const providerId of result.broadenedProviderIds) {
35
+ this.broadened.add(providerId);
36
+ if (this.failed.delete(providerId)) {
37
+ this.incomplete.add(providerId);
38
+ }
39
+ }
40
+ }
41
+ toResultFields() {
42
+ return {
43
+ broadenedProviderIds: [...this.broadened],
44
+ failedProviderIds: [...this.failed],
45
+ incompleteProviderIds: [...this.incomplete],
46
+ };
47
+ }
48
+ }
49
+ export async function broadenIssues(ctx, options) {
50
+ const page = Math.max(1, Math.trunc(options.page ?? 1));
51
+ // Kepler's existing contract persists only a page number. When no opaque continuation was supplied,
52
+ // advance through prior pages internally so cursor-only providers still return the requested page.
53
+ // Each recursive call below carries a cursor, so it bypasses this block and performs exactly one round.
54
+ if (options.cursor == null && page > 1) {
55
+ return traverseToRequestedPage(ctx, options, page);
56
+ }
57
+ const results = await mapBounded(options.orgs, providerFanOutConcurrency, org => readOrgSlice(ctx, options, org, page));
58
+ const items = [];
59
+ const warnings = [];
60
+ const broadenedProviderIds = new Set();
61
+ const problemProviderIds = new Set();
62
+ const cursors = [];
63
+ const exhausted = [];
64
+ let hasMore = false;
65
+ let fetchFailed = false;
66
+ let truncated = false;
67
+ for (const result of results) {
68
+ if (result == null) {
69
+ continue;
70
+ }
71
+ items.push(...result.items);
72
+ warnings.push(...result.warnings);
73
+ for (const id of result.broadenedProviderIds) {
74
+ broadenedProviderIds.add(id);
75
+ }
76
+ if (result.nextCursor != null || result.retryPage != null) {
77
+ cursors.push({
78
+ providerId: result.providerId,
79
+ org: result.org,
80
+ connectionId: result.connectionId,
81
+ domain: result.domain,
82
+ cursor: result.nextCursor,
83
+ retryPage: result.retryPage,
84
+ });
85
+ }
86
+ if (result.exhausted) {
87
+ exhausted.push({
88
+ providerId: result.providerId,
89
+ org: result.org,
90
+ connectionId: result.connectionId,
91
+ domain: result.domain,
92
+ });
93
+ }
94
+ if (result.hasMore) {
95
+ hasMore = true;
96
+ }
97
+ if (result.fetchFailed) {
98
+ fetchFailed = true;
99
+ }
100
+ if (result.truncated) {
101
+ truncated = true;
102
+ }
103
+ if (result.fetchFailed || result.truncated) {
104
+ problemProviderIds.add(result.providerId);
105
+ }
106
+ }
107
+ const cursor = toBroadenIssuesCursor(cursors, exhausted, options.orgs.length);
108
+ const failedProviderIds = [];
109
+ const incompleteProviderIds = [];
110
+ for (const providerId of problemProviderIds) {
111
+ if (broadenedProviderIds.has(providerId)) {
112
+ incompleteProviderIds.push(providerId);
113
+ }
114
+ else {
115
+ failedProviderIds.push(providerId);
116
+ }
117
+ }
118
+ return {
119
+ items: items,
120
+ warnings: warnings,
121
+ // `currentPage` is positional, per ProviderPageInfo.currentPage: this fan-out has no provider-reported
122
+ // page of its own (its cursor is a per-org bundle, not a page), so the position is the one the caller
123
+ // addressed — the `page` it supplied, or the page the internal traversal advanced to.
124
+ page: { currentPage: page, itemsPerPage: items.length, truncated: truncated || undefined },
125
+ // `hasMore` promises a resumable continuation, so it must be true ONLY when a real cursor was
126
+ // produced. Repo-drain truncation (a backstop hit with no persisted repo cursor) can't be resumed —
127
+ // re-invoking would re-drain the same repos and repeat issues — so it is surfaced as the terminal
128
+ // `page.truncated` incompleteness signal instead of `hasMore`, matching listRepos. Guard `hasMore`
129
+ // against a missing cursor so we never advertise a continuation the caller can't make.
130
+ hasMore: hasMore && cursor != null,
131
+ cursor: cursor,
132
+ fetchFailed: fetchFailed || undefined,
133
+ broadenedProviderIds: [...broadenedProviderIds],
134
+ failedProviderIds: failedProviderIds,
135
+ incompleteProviderIds: incompleteProviderIds,
136
+ fanOutCount: options.orgs.length,
137
+ };
138
+ }
139
+ /**
140
+ * Advances to page N by re-running the fan-out for each prior page, threading each round's cursor bundle into the
141
+ * next. Only the requested page's items are returned; warnings and provider attribution accumulate across the
142
+ * whole walked prefix, since a failure in an earlier round still means this result is not authoritative.
143
+ */
144
+ async function traverseToRequestedPage(ctx, options, page) {
145
+ let cursor;
146
+ const traversalWarnings = [];
147
+ const attribution = new ProviderAttribution();
148
+ let traversalFetchFailed = false;
149
+ let traversalTruncated = false;
150
+ for (let currentPage = 1; currentPage < page; currentPage++) {
151
+ const previous = await broadenIssues(ctx, {
152
+ ...options,
153
+ page: currentPage,
154
+ cursor: cursor,
155
+ // A forced refresh belongs to the logical read, not every cursor-advancement round.
156
+ forceSync: currentPage === 1 ? options.forceSync : false,
157
+ });
158
+ for (const warning of previous.warnings) {
159
+ appendDedupedWarning(traversalWarnings, warning);
160
+ }
161
+ attribution.merge(previous);
162
+ traversalFetchFailed ||= previous.fetchFailed === true;
163
+ traversalTruncated ||= previous.page.truncated === true;
164
+ if (!previous.hasMore || previous.cursor == null) {
165
+ // The requested page lies past the last continuation: an empty page N, never the last page relabeled.
166
+ return {
167
+ items: [],
168
+ warnings: traversalWarnings,
169
+ page: { currentPage: page, itemsPerPage: 0, truncated: traversalTruncated || undefined },
170
+ hasMore: false,
171
+ fetchFailed: traversalFetchFailed || undefined,
172
+ ...attribution.toResultFields(),
173
+ fanOutCount: options.orgs.length,
174
+ };
175
+ }
176
+ cursor = previous.cursor;
177
+ }
178
+ const requested = await broadenIssues(ctx, { ...options, page: page, cursor: cursor, forceSync: false });
179
+ for (const warning of requested.warnings) {
180
+ appendDedupedWarning(traversalWarnings, warning);
181
+ }
182
+ attribution.merge(requested);
183
+ return {
184
+ ...requested,
185
+ warnings: traversalWarnings,
186
+ page: {
187
+ ...requested.page,
188
+ truncated: traversalTruncated || requested.page.truncated === true || undefined,
189
+ },
190
+ fetchFailed: traversalFetchFailed || requested.fetchFailed === true || undefined,
191
+ ...attribution.toResultFields(),
192
+ };
193
+ }
194
+ /** Reads one org's visible issues: drain the org's repos, then read the issues across them. */
195
+ async function readOrgSlice(ctx, options, org, page) {
196
+ const connectionId = org.connectionId;
197
+ const requestedDomain = org.domain;
198
+ const cursorDomain = hostFromDomain(requestedDomain) ?? requestedDomain;
199
+ // An org slice that yielded no issues and has nothing to continue: the org's identity (which the
200
+ // aggregation above keys the per-org cursor bundle by) plus why it produced nothing. `exhausted` marks
201
+ // an org a prior round already drained, so it stays skipped rather than being re-read from page 1.
202
+ const barrenSlice = (warnings, flags) => ({
203
+ items: [],
204
+ warnings: warnings,
205
+ broadenedProviderIds: [],
206
+ providerId: org.providerId,
207
+ org: org.name,
208
+ connectionId: connectionId,
209
+ domain: cursorDomain,
210
+ nextCursor: undefined,
211
+ hasMore: false,
212
+ exhausted: flags?.exhausted ?? false,
213
+ fetchFailed: flags?.fetchFailed ?? false,
214
+ truncated: flags?.truncated ?? false,
215
+ });
216
+ if (isIssuesHostIntegrationId(org.providerId)) {
217
+ return barrenSlice([gitHostOnlySurfaceWarning(org.providerId, requestedDomain, connectionId, 'issue broadening')], {
218
+ fetchFailed: true,
219
+ });
220
+ }
221
+ const integration = await ctx.getIntegrationForRead(org.providerId, connectionId, requestedDomain);
222
+ if (integration == null) {
223
+ // A requested connection or domain that can't be resolved is a broken target — surface it as a
224
+ // warning + fetchFailed rather than dropping the org silently.
225
+ const early = ctx.earlyReturnConnectionWarnings(org.providerId, connectionId, requestedDomain);
226
+ return barrenSlice(early.warnings.length > 0
227
+ ? early.warnings
228
+ : [noConnectionWarning(org.providerId, requestedDomain, connectionId)], { fetchFailed: true });
229
+ }
230
+ if (!isGitHostIntegration(integration)) {
231
+ return barrenSlice([gitHostOnlySurfaceWarning(org.providerId, requestedDomain, connectionId, 'issue broadening')], {
232
+ fetchFailed: true,
233
+ });
234
+ }
235
+ // A git host whose issue tracker is deprecated (Bitbucket) exposes no issues here — surface a
236
+ // warning + fetchFailed and skip it (no repo drain), so broadening never serves a legacy source.
237
+ if (!integration.supportsIssues) {
238
+ return barrenSlice([
239
+ issuesUnsupportedWarning(org.providerId, ctx.domainForRead(integration, org.providerId, connectionId, requestedDomain), connectionId),
240
+ ], { fetchFailed: true });
241
+ }
242
+ // An org a prior round already drained must not be re-read: cursor-only providers would answer a
243
+ // fresh page-1 request with their first page again, duplicating issues across rounds. Skip it
244
+ // before any work (including the repo drain) and keep it marked exhausted so it stays skipped
245
+ // for the rest of the fan-out.
246
+ if (isBroadenIssuesOrgExhausted(options.cursor, org, options.orgs.length)) {
247
+ return barrenSlice([], { exhausted: true });
248
+ }
249
+ await ctx.forceRefreshIfRequested(integration, options.forceSync, connectionId);
250
+ const domain = ctx.domainForRead(integration, org.providerId, connectionId, requestedDomain);
251
+ const reposDrain = await drainRepositories(integration, org.providerId, domain, org.name, undefined, connectionId, 100);
252
+ const warnings = [...reposDrain.warnings];
253
+ const fetchFailed = reposDrain.fetchFailed;
254
+ const truncated = reposDrain.truncated;
255
+ const repos = reposDrain.repos.map(r => ({ ...r }));
256
+ if (repos.length === 0) {
257
+ return barrenSlice(warnings, { fetchFailed: fetchFailed, truncated: truncated });
258
+ }
259
+ // Broaden = "all visible": drop the assigned-to-me filter so unassigned issues are included.
260
+ const cursor = getBroadenIssuesCursor(options.cursor, org, page, options.orgs.length);
261
+ const issuesCaptured = await runCaptured(org.providerId, domain, connectionId, () =>
262
+ // Normalized shapes seam, uniform with listIssuesPage.
263
+ integration.getMyIssuesForReposAsShapesResult(repos, { includeAllAssignees: true, cursor: cursor }, connectionId), { warnOnMissingSession: true });
264
+ if (issuesCaptured.warning != null) {
265
+ warnings.push(issuesCaptured.warning);
266
+ }
267
+ const issuesAssessment = mergeAssessmentInto(warnings, org.providerId, domain, connectionId, issuesCaptured.value?.metadata);
268
+ let issuesFetchFailed = issuesAssessment.fetchFailed || (issuesCaptured.warning != null && issuesCaptured.value == null);
269
+ const items = [];
270
+ let hasMore = false;
271
+ let nextCursor;
272
+ let retryPage;
273
+ // Carry a truncation signal from the issue read too: a provider that couldn't confirm it drained
274
+ // a repo (`paging.truncated`) means this org's issues may be incomplete, on top of any repo-drain
275
+ // truncation already captured above.
276
+ let issuesTruncated = false;
277
+ if (issuesCaptured.value != null) {
278
+ items.push(...issuesCaptured.value.values);
279
+ const paged = toProviderPageInfo(issuesCaptured.value.values.length, issuesCaptured.value.paging);
280
+ // An org that reports another page but no usable cursor can't be resumed: it would neither be
281
+ // recorded in the composite cursor nor marked exhausted, so the next round would re-read its
282
+ // page 1 and repeat every issue. Treat it as terminal-but-incomplete (which also marks the org
283
+ // exhausted below, since `exhausted` keys off `!hasMore`).
284
+ const continuation = resolveContinuation(paged, undefined);
285
+ hasMore = continuation.hasMore;
286
+ nextCursor = continuation.cursor;
287
+ issuesTruncated = continuation.truncated || issuesAssessment.truncated;
288
+ }
289
+ else if (issuesCaptured.warning != null || cursor != null) {
290
+ // Keep the exact position that failed. Without this retry cursor a multi-org continuation would
291
+ // omit this org from the bundle, then synthesize the next numbered page and silently skip the
292
+ // failed page. The synthesized page cursor is also actionable for a first-page cursor-only read:
293
+ // that provider ignores the page marker and retries its first page. A retry slot alone is NOT
294
+ // forward progress, though: advertising `hasMore` for a persistent failure would make an infinite
295
+ // query request it forever. Healthy sibling continuations set `hasMore` independently.
296
+ if (cursor != null) {
297
+ nextCursor = cursor;
298
+ if (issuesCaptured.warning == null) {
299
+ appendDedupedWarning(warnings, otherWarning(org.providerId, domain, connectionId, 'Issue continuation returned no result and must be retried'));
300
+ issuesFetchFailed = true;
301
+ issuesTruncated = true;
302
+ }
303
+ }
304
+ else {
305
+ retryPage = page;
306
+ }
307
+ }
308
+ return {
309
+ items: items,
310
+ warnings: warnings,
311
+ broadenedProviderIds: issuesCaptured.value != null ? [org.providerId] : [],
312
+ providerId: org.providerId,
313
+ org: org.name,
314
+ connectionId: connectionId,
315
+ domain: cursorDomain,
316
+ nextCursor: nextCursor,
317
+ retryPage: retryPage,
318
+ hasMore: hasMore,
319
+ // Exhausted once a successful read reports no more pages — recorded in the cursor so later
320
+ // rounds skip it while other orgs keep paging.
321
+ exhausted: issuesCaptured.value != null && !hasMore,
322
+ fetchFailed: fetchFailed || issuesFetchFailed,
323
+ truncated: truncated || issuesTruncated,
324
+ };
325
+ }
326
+ //# sourceMappingURL=broaden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broaden.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/broaden.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ConfiguredIntegrationDescriptor } from '../authentication/models.js';
2
2
  import type { IntegrationIds } from '../constants.js';
3
+ import type { IntegrationsRemoteConfig } from '../context.js';
3
4
  import type { Integration } from '../models/integration.js';
4
5
  import type { ProviderWarning } from '../results.js';
5
6
  /**
@@ -49,4 +50,25 @@ export interface ProviderReadContext {
49
50
  domain?: string;
50
51
  }): ConfiguredIntegrationDescriptor[];
51
52
  }
53
+ /**
54
+ * What {@link resolveRepository} needs on top of {@link ProviderReadContext}.
55
+ *
56
+ * It is the one read whose input is a remote URL rather than a resolved target, so it needs two things the others
57
+ * don't: the user's remote configs (to map a custom domain onto a provider for path parsing) and instance lookup
58
+ * by DOMAIN for a cloud host — `getIntegrationForRead` selects by configured connection, which a cloud provider
59
+ * reached through its canonical host has no need of.
60
+ *
61
+ * Kept as an extension rather than folded into the base contract so the other reads still can't reach either one.
62
+ */
63
+ export interface RepositoryResolutionContext extends ProviderReadContext {
64
+ /** Per-remote-host configurations from `remotes`, as {@link ConfigProvider.getRemoteConfigs} exposes them. */
65
+ getRemoteConfigs(): readonly IntegrationsRemoteConfig[];
66
+ /**
67
+ * The integration instance for a provider on a given host, bypassing connection selection. Only for the
68
+ * cloud-host branch of the resolution, whose host is canonical by construction (the guards above rejected
69
+ * anything else); every self-managed lookup still goes through {@link ProviderReadContext.getIntegrationForRead}
70
+ * so repository data can never select a host.
71
+ */
72
+ getIntegrationForDomain(id: IntegrationIds, domain: string | undefined): Promise<Integration | undefined>;
73
+ }
52
74
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;OAGG;IACH,qBAAqB,CACpB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAAC;IAEtB;;;OAGG;IACH,oBAAoB,CACnB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAAC;IAEtB;;;OAGG;IACH,6BAA6B,CAC5B,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAEzD,uGAAuG;IACvG,uBAAuB,CACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,aAAa,CACZ,EAAE,CAAC,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,+BAA+B,EAAE,CAAC;CACrC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;OAGG;IACH,qBAAqB,CACpB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAAC;IAEtB;;;OAGG;IACH,oBAAoB,CACnB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAAC;IAEtB;;;OAGG;IACH,6BAA6B,CAC5B,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACb;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAEzD,uGAAuG;IACvG,uBAAuB,CACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,aAAa,CACZ,EAAE,CAAC,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,+BAA+B,EAAE,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACvE,8GAA8G;IAC9G,gBAAgB,IAAI,SAAS,wBAAwB,EAAE,CAAC;IAExD;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CAC1G"}
@@ -1,4 +1,4 @@
1
- import { type IntegrationIds } from '../constants.js';
1
+ import type { IntegrationIds } from '../constants.js';
2
2
  import type { ListOrgsOptions, ListProjectsOptions } from '../manager.js';
3
3
  import type { ProviderOrganization, ProviderPagedResult, ProviderRepositoryShape, ProviderResult } from '../results.js';
4
4
  import type { ProviderReadContext } from './context.js';
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/hierarchy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,cAAc,EAInB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EAEd,MAAM,eAAe,CAAC;AAOvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAYxD,wBAAsB,QAAQ,CAC7B,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAgH/C;AAED,wBAAsB,YAAY,CACjC,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CA8I/C;AAED,wBAAsB,SAAS,CAC9B,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,OAAO,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAkLvD"}
1
+ {"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/hierarchy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQtD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EAEd,MAAM,eAAe,CAAC;AAOvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAaxD,wBAAsB,QAAQ,CAC7B,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CA8F/C;AAED,wBAAsB,YAAY,CACjC,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CA8H/C;AAED,wBAAsB,SAAS,CAC9B,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,OAAO,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CA+LvD"}