@gitkraken/core-gitlens 0.5.114 → 0.5.116

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 (162) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/dist/plus/git-github/api/github.d.ts +3 -2
  3. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  4. package/dist/plus/git-github/api/github.js +37 -37
  5. package/dist/plus/git-github/api/github.js.map +1 -1
  6. package/dist/plus/integrations/collectionMetadata.d.ts +2 -0
  7. package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -1
  8. package/dist/plus/integrations/collectionMetadata.js +17 -1
  9. package/dist/plus/integrations/collectionMetadata.js.map +1 -1
  10. package/dist/plus/integrations/context.d.ts +4 -1
  11. package/dist/plus/integrations/context.d.ts.map +1 -1
  12. package/dist/plus/integrations/index.d.ts +1 -0
  13. package/dist/plus/integrations/index.d.ts.map +1 -1
  14. package/dist/plus/integrations/integrationService.d.ts +9 -1
  15. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  16. package/dist/plus/integrations/integrationService.js +8 -4
  17. package/dist/plus/integrations/integrationService.js.map +1 -1
  18. package/dist/plus/integrations/manager.d.ts +65 -6
  19. package/dist/plus/integrations/manager.d.ts.map +1 -1
  20. package/dist/plus/integrations/models/gitHostIntegration.d.ts +22 -26
  21. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  22. package/dist/plus/integrations/models/gitHostIntegration.js +92 -47
  23. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  24. package/dist/plus/integrations/models/integration.d.ts +9 -0
  25. package/dist/plus/integrations/models/integration.d.ts.map +1 -1
  26. package/dist/plus/integrations/models/integration.js +52 -19
  27. package/dist/plus/integrations/models/integration.js.map +1 -1
  28. package/dist/plus/integrations/models/issueCache.d.ts +16 -0
  29. package/dist/plus/integrations/models/issueCache.d.ts.map +1 -0
  30. package/dist/plus/integrations/models/issueCache.js +9 -0
  31. package/dist/plus/integrations/models/issueCache.js.map +1 -0
  32. package/dist/plus/integrations/models/issueReads.d.ts +13 -0
  33. package/dist/plus/integrations/models/issueReads.d.ts.map +1 -1
  34. package/dist/plus/integrations/models/issuesIntegration.d.ts +11 -13
  35. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
  36. package/dist/plus/integrations/models/issuesIntegration.js +15 -1
  37. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
  38. package/dist/plus/integrations/providers/azureDevOps.d.ts +3 -5
  39. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
  40. package/dist/plus/integrations/providers/azureDevOps.js +9 -8
  41. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  42. package/dist/plus/integrations/providers/bitbucket-server.d.ts +3 -5
  43. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -1
  44. package/dist/plus/integrations/providers/bitbucket-server.js +2 -2
  45. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
  46. package/dist/plus/integrations/providers/bitbucket.d.ts +3 -5
  47. package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -1
  48. package/dist/plus/integrations/providers/bitbucket.js +2 -1
  49. package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
  50. package/dist/plus/integrations/providers/github.d.ts +3 -5
  51. package/dist/plus/integrations/providers/github.d.ts.map +1 -1
  52. package/dist/plus/integrations/providers/github.js +3 -3
  53. package/dist/plus/integrations/providers/github.js.map +1 -1
  54. package/dist/plus/integrations/providers/gitlab.d.ts +3 -5
  55. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
  56. package/dist/plus/integrations/providers/gitlab.js +2 -2
  57. package/dist/plus/integrations/providers/gitlab.js.map +1 -1
  58. package/dist/plus/integrations/providers/jira.d.ts +3 -7
  59. package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
  60. package/dist/plus/integrations/providers/jira.js +35 -22
  61. package/dist/plus/integrations/providers/jira.js.map +1 -1
  62. package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +7 -0
  63. package/dist/plus/integrations/providers/jiraIssueByKey.d.ts.map +1 -0
  64. package/dist/plus/integrations/providers/jiraIssueByKey.js +102 -0
  65. package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -0
  66. package/dist/plus/integrations/providers/linear.d.ts +3 -7
  67. package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
  68. package/dist/plus/integrations/providers/linear.js +23 -22
  69. package/dist/plus/integrations/providers/linear.js.map +1 -1
  70. package/dist/plus/integrations/providers/models.d.ts +3 -1
  71. package/dist/plus/integrations/providers/models.d.ts.map +1 -1
  72. package/dist/plus/integrations/providers/models.js +10 -4
  73. package/dist/plus/integrations/providers/models.js.map +1 -1
  74. package/dist/plus/integrations/providers/providerErrors.d.ts +7 -0
  75. package/dist/plus/integrations/providers/providerErrors.d.ts.map +1 -0
  76. package/dist/plus/integrations/providers/providerErrors.js +91 -0
  77. package/dist/plus/integrations/providers/providerErrors.js.map +1 -0
  78. package/dist/plus/integrations/providers/providersApi.d.ts +3 -2
  79. package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
  80. package/dist/plus/integrations/providers/providersApi.js +18 -52
  81. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  82. package/dist/plus/integrations/providers/trello.d.ts +2 -7
  83. package/dist/plus/integrations/providers/trello.d.ts.map +1 -1
  84. package/dist/plus/integrations/providers/trello.js +3 -1
  85. package/dist/plus/integrations/providers/trello.js.map +1 -1
  86. package/dist/plus/integrations/providers/utils/providerPaging.d.ts +2 -0
  87. package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -1
  88. package/dist/plus/integrations/providers/utils/providerPaging.js +12 -7
  89. package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
  90. package/dist/plus/integrations/reads/broaden.d.ts.map +1 -1
  91. package/dist/plus/integrations/reads/broaden.js +26 -14
  92. package/dist/plus/integrations/reads/broaden.js.map +1 -1
  93. package/dist/plus/integrations/reads/counts.d.ts.map +1 -1
  94. package/dist/plus/integrations/reads/counts.js +39 -15
  95. package/dist/plus/integrations/reads/counts.js.map +1 -1
  96. package/dist/plus/integrations/reads/filters.d.ts +33 -11
  97. package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
  98. package/dist/plus/integrations/reads/filters.js +114 -25
  99. package/dist/plus/integrations/reads/filters.js.map +1 -1
  100. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
  101. package/dist/plus/integrations/reads/issueTracker.js +23 -17
  102. package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
  103. package/dist/plus/integrations/reads/searchIssues.d.ts +1 -5
  104. package/dist/plus/integrations/reads/searchIssues.d.ts.map +1 -1
  105. package/dist/plus/integrations/reads/searchIssues.js +12 -6
  106. package/dist/plus/integrations/reads/searchIssues.js.map +1 -1
  107. package/dist/plus/integrations/reads/searchPullRequests.d.ts +1 -0
  108. package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +1 -1
  109. package/dist/plus/integrations/reads/searchPullRequests.js +8 -3
  110. package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
  111. package/dist/plus/integrations/reads/trackerIssue.d.ts +21 -0
  112. package/dist/plus/integrations/reads/trackerIssue.d.ts.map +1 -0
  113. package/dist/plus/integrations/reads/trackerIssue.js +51 -0
  114. package/dist/plus/integrations/reads/trackerIssue.js.map +1 -0
  115. package/dist/plus/integrations/reads/warnings.d.ts +18 -15
  116. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
  117. package/dist/plus/integrations/reads/warnings.js +37 -1
  118. package/dist/plus/integrations/reads/warnings.js.map +1 -1
  119. package/dist/plus/integrations/results.d.ts +4 -20
  120. package/dist/plus/integrations/results.d.ts.map +1 -1
  121. package/dist/plus/integrations/results.js.map +1 -1
  122. package/dist/utils/promise.d.ts +2 -0
  123. package/dist/utils/promise.d.ts.map +1 -1
  124. package/dist/utils/promise.js +11 -0
  125. package/dist/utils/promise.js.map +1 -1
  126. package/docs/integrations.md +63 -28
  127. package/docs/kepler-read-api-parity.md +13 -0
  128. package/package.json +2 -2
  129. package/src/plus/git-github/api/github.ts +54 -60
  130. package/src/plus/integrations/collectionMetadata.ts +23 -1
  131. package/src/plus/integrations/context.ts +1 -1
  132. package/src/plus/integrations/index.ts +1 -0
  133. package/src/plus/integrations/integrationService.ts +14 -4
  134. package/src/plus/integrations/manager.ts +65 -6
  135. package/src/plus/integrations/models/gitHostIntegration.ts +117 -129
  136. package/src/plus/integrations/models/integration.ts +56 -22
  137. package/src/plus/integrations/models/issueCache.ts +29 -0
  138. package/src/plus/integrations/models/issueReads.ts +15 -0
  139. package/src/plus/integrations/models/issuesIntegration.ts +38 -8
  140. package/src/plus/integrations/providers/azureDevOps.ts +16 -13
  141. package/src/plus/integrations/providers/bitbucket-server.ts +4 -6
  142. package/src/plus/integrations/providers/bitbucket.ts +3 -4
  143. package/src/plus/integrations/providers/github.ts +5 -7
  144. package/src/plus/integrations/providers/gitlab.ts +4 -6
  145. package/src/plus/integrations/providers/jira.ts +52 -26
  146. package/src/plus/integrations/providers/jiraIssueByKey.ts +155 -0
  147. package/src/plus/integrations/providers/linear.ts +38 -25
  148. package/src/plus/integrations/providers/models.ts +17 -5
  149. package/src/plus/integrations/providers/providerErrors.ts +115 -0
  150. package/src/plus/integrations/providers/providersApi.ts +26 -68
  151. package/src/plus/integrations/providers/trello.ts +5 -4
  152. package/src/plus/integrations/providers/utils/providerPaging.ts +14 -7
  153. package/src/plus/integrations/reads/broaden.ts +35 -16
  154. package/src/plus/integrations/reads/counts.ts +62 -15
  155. package/src/plus/integrations/reads/filters.ts +131 -29
  156. package/src/plus/integrations/reads/issueTracker.ts +26 -24
  157. package/src/plus/integrations/reads/searchIssues.ts +23 -13
  158. package/src/plus/integrations/reads/searchPullRequests.ts +16 -2
  159. package/src/plus/integrations/reads/trackerIssue.ts +105 -0
  160. package/src/plus/integrations/reads/warnings.ts +42 -17
  161. package/src/plus/integrations/results.ts +4 -20
  162. package/src/utils/promise.ts +15 -0
@@ -6,7 +6,7 @@ import { appendDedupedWarning } from '../results.js';
6
6
  import { isGitHostIntegration, isIssuesHostIntegrationId, warnOnMissingSessionForDomain, } from '../utils/integration.utils.js';
7
7
  import { runCaptured } from './drains.js';
8
8
  import { resolveIssueSearchCriteria, resolveIssueSearchScope, resolvePullRequestSearchCriteria, resolvePullRequestSearchScope, } from './filters.js';
9
- import { gitHostOnlySurfaceWarning, issuesUnsupportedWarning, otherWarning, unsupportedIssueSearchCriteriaWarning, unsupportedPullRequestSearchCriteriaWarning, } from './warnings.js';
9
+ import { gitHostOnlySurfaceWarning, issuesUnsupportedWarning, otherWarning, unsupportedIssueSearchCriteriaWarning, unsupportedPullRequestSearchCriteriaWarning, unusableSearchScopeMessage, } from './warnings.js';
10
10
  /**
11
11
  * How many scopes go into one upstream request.
12
12
  *
@@ -73,6 +73,15 @@ export async function countIssues(ctx, options) {
73
73
  if (!integration.supportsIssues) {
74
74
  return refused(issuesUnsupportedWarning(options.providerId, domain, options.connectionId));
75
75
  }
76
+ // A provider with no filtered issue search has no count either: refuse ONCE for the provider rather than
77
+ // letting every scope repeat the same rejection. `undefined` criteria probes only the search's existence.
78
+ // Matches `countPullRequests`. Refusing it here rather than per scope also keeps the loop's warnings from
79
+ // being dominated by N copies of one provider-level fact — see the dedupe below, which handles the
80
+ // keyless refusals that remain.
81
+ const searchSupport = resolveIssueSearchCriteria(options.providerId, undefined);
82
+ if (searchSupport.rejection != null) {
83
+ return refused(unsupportedIssueSearchCriteriaWarning(options.providerId, domain, options.connectionId, searchSupport.rejection));
84
+ }
76
85
  const providerLimit = providersMetadata[options.providerId]?.issueSearchResultLimit;
77
86
  const warnings = [];
78
87
  let fetchFailed = false;
@@ -82,10 +91,12 @@ export async function countIssues(ctx, options) {
82
91
  for (const scope of options.scopes) {
83
92
  const warning = rejectScope(options.providerId, domain, options.connectionId, scope);
84
93
  if (warning != null) {
85
- // `push`, not `appendDedupedWarning`: every rejection message embeds the scope's own key, and duplicate
86
- // keys were already refused above, so no two of these can ever collapse deduping them would only pay
87
- // the O(n²) key comparison to prove it.
88
- warnings.push(warning);
94
+ // Deduped rather than pushed. The rejections that name the offending SCOPE embed its own key, and
95
+ // duplicate keys were already refused above, so those can never collapse. But the ones that report a
96
+ // PROVIDER-level fact a criterion it cannot express, a contradictory relationship pair — name no
97
+ // scope, so several scopes failing the same way produce byte-identical warnings, and one refusal
98
+ // reported N times reads as N different problems.
99
+ appendDedupedWarning(warnings, warning);
89
100
  fetchFailed = true;
90
101
  continue;
91
102
  }
@@ -149,16 +160,22 @@ function findDuplicateKey(scopes) {
149
160
  * one, which is worse. Only the wording is local, because these name the offending scope's key.
150
161
  */
151
162
  function rejectScope(providerId, domain, connectionId, scope) {
163
+ const resolved = resolveIssueSearchCriteria(providerId, scope.criteria);
164
+ if (resolved.rejection != null) {
165
+ return unsupportedIssueSearchCriteriaWarning(providerId, domain, connectionId, resolved.rejection);
166
+ }
167
+ // AFTER the criteria check, mirroring `searchIssuesPage`: a provider with no filtered issue search is the more
168
+ // fundamental refusal, and a count must preview the refusal its read would give.
152
169
  const scoping = resolveIssueSearchScope(scope.repos, scope.org, scope.criteria);
153
- switch (scoping.rejection) {
170
+ switch (scoping.rejection?.reason) {
154
171
  case 'repo-ids':
155
172
  return otherWarning(providerId, domain, connectionId, `Issue count scope '${scope.key}' cannot be scoped by repository id; pass repository descriptors (namespace + name) instead.`);
156
173
  case 'unscoped':
157
174
  return otherWarning(providerId, domain, connectionId, `Issue count scope '${scope.key}' is unscoped; pass \`repos\`, \`org\`, or a relationship to the current user. \`any-assignee\` and \`unassigned\` are not scopes.`);
158
- }
159
- const resolved = resolveIssueSearchCriteria(providerId, scope.criteria);
160
- if (resolved.rejection != null) {
161
- return unsupportedIssueSearchCriteriaWarning(providerId, domain, connectionId, resolved.rejection);
175
+ // A count applies exactly the qualifiers its search would, so an unusable scope would make it agree with
176
+ // the wrong search rather than expose it — see `isUsableSearchScopeName`.
177
+ case 'unusable-scope':
178
+ return otherWarning(providerId, domain, connectionId, unusableSearchScopeMessage('scopes', scoping.rejection.scopes, `Issue count scope '${scope.key}'`));
162
179
  }
163
180
  // Count-only, with no counterpart in the read: a relationship set is an OR across several searches, which one
164
181
  // count can't express — summing them would double-count anything matching two, and taking the max would
@@ -224,9 +241,11 @@ export async function countPullRequests(ctx, options) {
224
241
  for (const scope of options.scopes) {
225
242
  const warning = rejectPullRequestScope(options.providerId, domain, options.connectionId, scope);
226
243
  if (warning != null) {
227
- // `push`, not `appendDedupedWarning`: every rejection message embeds the scope's own key, and duplicate
228
- // keys were already refused above, so no two of these can ever collapse.
229
- warnings.push(warning);
244
+ // Deduped rather than pushed: see the issue twin. Here the keyless set is wider — besides the criteria
245
+ // rejections, `unsupported-repository-scope` and `unsupported-organization-scope` are scope rejections
246
+ // that route through the criteria warning and name no key, and both are provider-level facts every
247
+ // scope would repeat.
248
+ appendDedupedWarning(warnings, warning);
230
249
  fetchFailed = true;
231
250
  continue;
232
251
  }
@@ -278,7 +297,7 @@ export async function countPullRequests(ctx, options) {
278
297
  */
279
298
  function rejectPullRequestScope(providerId, domain, connectionId, scope) {
280
299
  const scoping = resolvePullRequestSearchScope(providerId, scope.repos, scope.org, scope.criteria);
281
- switch (scoping.rejection) {
300
+ switch (scoping.rejection?.reason) {
282
301
  case 'repo-ids':
283
302
  return otherWarning(providerId, domain, connectionId, `Pull request count scope '${scope.key}' cannot be scoped by repository id; pass repository descriptors (namespace + name) instead.`);
284
303
  case 'unscoped':
@@ -288,9 +307,14 @@ function rejectPullRequestScope(providerId, domain, connectionId, scope) {
288
307
  return unsupportedPullRequestSearchCriteriaWarning(providerId, domain, connectionId, {
289
308
  reason: 'unsupported-criteria',
290
309
  criteria: [
291
- scoping.rejection === 'unsupported-repository-scope' ? 'repositoryScope' : 'organizationScope',
310
+ scoping.rejection.reason === 'unsupported-repository-scope'
311
+ ? 'repositoryScope'
312
+ : 'organizationScope',
292
313
  ],
293
314
  });
315
+ // See the issue twin, and `isUsableSearchScopeName` for the rule.
316
+ case 'unusable-scope':
317
+ return otherWarning(providerId, domain, connectionId, unusableSearchScopeMessage('scopes', scoping.rejection.scopes, `Pull request count scope '${scope.key}'`));
294
318
  }
295
319
  const resolved = resolvePullRequestSearchCriteria(providerId, scope.criteria);
296
320
  if (resolved.rejection != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"counts.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/counts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"counts.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/counts.ts"],"names":[],"mappings":"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"}
@@ -54,10 +54,26 @@ export declare function resolvePullRequestSearchCriteria(id: IntegrationIds, cri
54
54
  rejection?: PullRequestSearchCriteriaRejection;
55
55
  };
56
56
  /** Why a filtered pull-request search's repository/organization boundary was refused. */
57
- export type PullRequestSearchScopeRejection = 'unscoped' | 'repo-ids' | 'unsupported-repository-scope' | 'unsupported-organization-scope';
57
+ export type PullRequestSearchScopeRejection = {
58
+ reason: 'unscoped';
59
+ } | {
60
+ reason: 'repo-ids';
61
+ } | {
62
+ reason: 'unsupported-repository-scope';
63
+ } | {
64
+ reason: 'unsupported-organization-scope';
65
+ }
66
+ /** Scope names a query cannot carry AS GIVEN; see {@link unusableSearchScopeNames}. */
67
+ | {
68
+ reason: 'unusable-scope';
69
+ scopes: string[];
70
+ };
58
71
  /**
59
72
  * Validates the search boundary independently from its criteria. A current-user relationship is itself a safe
60
73
  * account-wide boundary; without one, a repository or organization scope is mandatory.
74
+ *
75
+ * Scope names go through the same {@link unusableSearchScopeNames} rule the issue search uses — shared rather
76
+ * than re-derived, because the defect is identical on both reads.
61
77
  */
62
78
  export declare function resolvePullRequestSearchScope(id: IntegrationIds, repos: ProviderReposInput | undefined, org: string | undefined, criteria: PullRequestSearchCriteria | undefined): {
63
79
  rejection?: PullRequestSearchScopeRejection;
@@ -120,9 +136,18 @@ export declare function resolveIssueSearchCriteria(id: IntegrationIds, criteria:
120
136
  /** Why a filtered issue search's scope was refused, or `undefined` when it is usable. */
121
137
  export type IssueSearchScopeRejection =
122
138
  /** No repositories, no org, and no user-relative relationship: a search of the whole host. */
123
- 'unscoped'
139
+ {
140
+ reason: 'unscoped';
141
+ }
124
142
  /** Repositories given as ids. A search names repositories by PATH, so ids can't express a scope. */
125
- | 'repo-ids';
143
+ | {
144
+ reason: 'repo-ids';
145
+ }
146
+ /** Scope names a query cannot carry AS GIVEN; see {@link unusableSearchScopeNames}. */
147
+ | {
148
+ reason: 'unusable-scope';
149
+ scopes: string[];
150
+ };
126
151
  /**
127
152
  * Validates that a filtered issue search is scoped at all, and narrows `repos` to the descriptor form the
128
153
  * provider query needs.
@@ -132,15 +157,12 @@ export type IssueSearchScopeRejection =
132
157
  * warning: the two callers word it differently (whole-read vs naming the offending scope's key), and wording is
133
158
  * the warning layer's business.
134
159
  *
135
- * The two rejections are mutually exclusive — `repo-ids` requires repositories and `unscoped` requires none — so
136
- * the order they're checked in cannot change the outcome.
160
+ * `repo-ids` and `unscoped` are mutually exclusive — one requires repositories and the other requires none — so
161
+ * their relative order is free. `unusable-scope` is NOT: it must precede `unscoped`, so a value that was supplied
162
+ * but cannot be used is never reported as a missing one.
137
163
  *
138
- * An org is checked for what SURVIVES SANITIZING, not merely for being non-empty, and that distinction is a
139
- * SECURITY one rather than a nicety: the provider query drops a value that sanitizes away rather than rejecting
140
- * it (`toGitHubIssueSearchScopeQualifiers` emits no bare `org:`, which GitHub would reject), so an org of `' '`
141
- * or `'"'` would pass a length check, emit NO scope qualifier at all, and leave a search of the entire host —
142
- * measured at 52 million issues across unrelated accounts. Whitespace and quotes are exactly what a name pasted
143
- * from a config or a URL degrades to, so this is reachable without anything adversarial.
164
+ * Every scope name is checked for naming the same scope after the provider sanitizes it, not merely for being
165
+ * non-empty, and that distinction is a SECURITY one rather than a nicety see {@link isUsableSearchScopeName}.
144
166
  */
145
167
  export declare function resolveIssueSearchScope(repos: ProviderReposInput | undefined, org: string | undefined, criteria: IssueSearchCriteria | undefined): {
146
168
  rejection?: IssueSearchScopeRejection;
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
@@ -79,25 +79,37 @@ export function resolvePullRequestSearchCriteria(id, criteria) {
79
79
  /**
80
80
  * Validates the search boundary independently from its criteria. A current-user relationship is itself a safe
81
81
  * account-wide boundary; without one, a repository or organization scope is mandatory.
82
+ *
83
+ * Scope names go through the same {@link unusableSearchScopeNames} rule the issue search uses — shared rather
84
+ * than re-derived, because the defect is identical on both reads.
82
85
  */
83
86
  export function resolvePullRequestSearchScope(id, repos, org, criteria) {
84
87
  const supported = providersMetadata[id]?.supportedPullRequestSearch;
85
88
  let resolvedRepos;
86
89
  if (repos?.length) {
87
- if (repos.some(r => typeof r === 'string' || typeof r === 'number'))
88
- return { rejection: 'repo-ids' };
90
+ if (repos.some(r => typeof r === 'string' || typeof r === 'number')) {
91
+ return { rejection: { reason: 'repo-ids' } };
92
+ }
89
93
  if (supported?.repositoryScope !== true)
90
- return { rejection: 'unsupported-repository-scope' };
94
+ return { rejection: { reason: 'unsupported-repository-scope' } };
91
95
  resolvedRepos = repos;
92
96
  }
93
97
  const hasOrganizationScope = org != null && org.length > 0;
94
98
  if (hasOrganizationScope && supported?.organizationScope !== true) {
95
- return { rejection: 'unsupported-organization-scope' };
99
+ return { rejection: { reason: 'unsupported-organization-scope' } };
96
100
  }
101
+ // After the capability checks and before the "is it scoped at all" rule: a scope the provider cannot express
102
+ // at all is the more fundamental refusal, and an unusable value that WAS supplied must not be reported as a
103
+ // missing one. `org` is passed bare, matching the issue twin — the helper applies its own empty-means-
104
+ // unsupplied guard, so re-testing `hasOrganizationScope` here would only make the two resolvers look like
105
+ // they differ.
106
+ const unusable = unusableSearchScopeNames(org, resolvedRepos);
107
+ if (unusable.length > 0)
108
+ return { rejection: { reason: 'unusable-scope', scopes: unusable } };
97
109
  if (resolvedRepos != null || hasOrganizationScope || (criteria?.relationships?.length ?? 0) > 0) {
98
110
  return { repos: resolvedRepos };
99
111
  }
100
- return { rejection: 'unscoped' };
112
+ return { rejection: { reason: 'unscoped' } };
101
113
  }
102
114
  /**
103
115
  * Validates a caller-provided issue filter set against what the provider's ACCOUNT-WIDE issue read can express
@@ -230,20 +242,91 @@ const unsupportedPullRequestSearchCapabilities = {
230
242
  sorts: [],
231
243
  };
232
244
  /**
233
- * Whether a scope name survives the provider's sanitizing, i.e. whether it will actually constrain the query.
245
+ * Whether a scope name reaches the provider NAMING THE SAME SCOPE the one rule behind every `unusable-scope`
246
+ * refusal, and the canonical home for its reasoning: the call sites point here rather than restating it.
247
+ *
248
+ * The defect it exists to prevent: the boundary is checked against the value AS SUPPLIED while the request is
249
+ * built from the value AFTER the provider sanitizes it, so a name a query cannot spell produces a read that is no
250
+ * longer the read that was authorized. Three outcomes, all of which LOOK LIKE SUCCESS, so there is nothing for a
251
+ * consumer to branch on:
252
+ * - **emptied** — a value of only quotes/whitespace/control characters emits no scope qualifier at all. A scope is
253
+ * also what makes a relationship-less read legal, so the request carries neither and every item on the host
254
+ * matches: measured at 52 million issues across unrelated accounts.
255
+ * - **altered** — a quote inside a real name sanitizes to a real but DIFFERENT scope (`git"kraken` -> `gitkraken`),
256
+ * whose answer looks entirely normal.
257
+ * - **split** — whitespace delimits qualifiers, so `my org` emits `org:my org`: a search of `my` additionally
258
+ * filtered by the free text `org`. Measured against the live API this is a wrong NARROWING rather than a
259
+ * widening — `org:gitkraken bar` returns 12 where `org:gitkraken` returns 379.
260
+ *
261
+ * Refusing beats sanitizing, and the count probes are why it matters most: they deliberately apply exactly the
262
+ * qualifiers their search would, so a sanitized scope makes the count AGREE with the wrong search rather than
263
+ * disagree with it, and a consumer cross-checking "N matched" cannot detect it by construction. Nor can it
264
+ * pre-empt the rule — the free-text sanitizing rules are published precisely so a caller can mirror them, the
265
+ * scope rules are not — so only the caller knows which scope it meant, and the refusal goes back to it NAMING the
266
+ * offending value.
234
267
  *
235
268
  * Provider-NEUTRAL by design, and deliberately not an import of GitHub's `sanitizeGitHubQualifierValue`: this
236
269
  * module validates for every provider, and a GitHub-specific rule reaching in here would be wrong for the next
237
- * one that declares a search. What is common to any query language is the part that matters: a value made only of
238
- * whitespace, quotes and control characters carries no name, and every sanitizer strips exactly those (quotes
239
- * because they would close their own qualifier, control characters because they cannot appear in a query at all).
270
+ * one that declares a search. Only GitHub and GHE declare one today, so the character class below is GitHub's in
271
+ * practice; it is stated as the common part of any query language because each class breaks a query on its own
272
+ * terms a quote closes its own qualifier, a control character cannot appear at all, whitespace delimits the
273
+ * next qualifier — but a provider whose names legitimately carry one (Azure DevOps project names can contain
274
+ * spaces) needs its own rule alongside its `supported*Search` capability rather than an exception here.
275
+ *
276
+ * EDGES ARE STRIPPED before the test, which is what keeps the predicate no stricter than the provider's own
277
+ * sanitizing — the invariant that makes refusing safe to add, since it means this can only reject a name the
278
+ * provider would have altered, never one it would have resolved correctly. Leading and trailing whitespace AND
279
+ * control characters both qualify: a sanitizer maps a control character to a space, then collapses and trims, so
280
+ * `'gitkraken\n'` and `'gitkraken\u0000'` alike emit `org:gitkraken` — the scope that was asked for. Note this
281
+ * is wider than `String.trim()`, which leaves control characters in place.
240
282
  *
241
- * Strictly weaker than any provider's own sanitizing, which is the safe direction: this can only pass a name the
242
- * provider would then narrow further, never reject one the provider would have accepted.
283
+ * None of the three outcomes above survives the stripping, so the rule loses nothing: an all-edge value still
284
+ * empties, an INNER space or control character still splits (`'git\u0000kraken'` emits `git kraken`, two
285
+ * tokens), and a quote still alters wherever it sits.
243
286
  */
244
287
  function isUsableSearchScopeName(name) {
288
+ const stripped = stripSearchScopeEdges(name);
245
289
  // eslint-disable-next-line no-control-regex
246
- return name.replace(/["\u0000-\u001f\u007f\s]/g, '').length > 0;
290
+ return stripped.length > 0 && !/["\u0000-\u001f\u007f\s]/.test(stripped);
291
+ }
292
+ /** The leading/trailing run a provider's sanitizing removes — see {@link isUsableSearchScopeName}. */
293
+ function stripSearchScopeEdges(value) {
294
+ // eslint-disable-next-line no-control-regex
295
+ return value.replace(/^[\s\u0000-\u001f\u007f]+|[\s\u0000-\u001f\u007f]+$/g, '');
296
+ }
297
+ /**
298
+ * The scope names a search cannot carry as given, as the strings to name in the refusal — empty when every one is
299
+ * usable. See {@link isUsableSearchScopeName} for the rule and why it refuses rather than sanitizes.
300
+ */
301
+ function unusableSearchScopeNames(org, repos) {
302
+ const unusable = [];
303
+ // An EMPTY org is "no org supplied" and falls through to the remaining scopes; any other unusable value WAS
304
+ // supplied, so it is refused rather than dropped.
305
+ if (org != null && org.length > 0 && !isUsableSearchScopeName(org)) {
306
+ unusable.push(org);
307
+ }
308
+ // A `repo:` qualifier names a repository by its JOINED `namespace/name` path, which is the value the rule
309
+ // below is applied to. Both halves are read defensively, through the SAME locals the label is built from: the
310
+ // descriptor form is only narrowed from a union by an element-type check, so a half-built descriptor reaches
311
+ // here as `undefined` and must refuse rather than throw out of a facade that reports refusals as warnings —
312
+ // and reporting it as `undefined/a` would name a value the caller never passed.
313
+ for (const repo of repos ?? []) {
314
+ const namespace = repo.namespace ?? '';
315
+ const name = repo.name ?? '';
316
+ const path = `${namespace}/${name}`;
317
+ // BOTH the composite and each half, because neither sees what the other does:
318
+ // - the composite catches an offender the halves cannot, since an edge of a half is an INTERIOR character
319
+ // of the path — `{ 'git ', 'kraken' }` has two usable-looking halves and emits `repo:git /kraken`.
320
+ // - the halves catch a BLANK one the composite cannot, since that offender sits at a composite EDGE where
321
+ // stripping removes it — `' /a'` strips to `'/a'`, a perfectly spellable qualifier naming no repository.
322
+ // Each half is measured after the same stripping, so `' '` and `''` are one case rather than two.
323
+ if (!isUsableSearchScopeName(path) ||
324
+ stripSearchScopeEdges(namespace).length === 0 ||
325
+ stripSearchScopeEdges(name).length === 0) {
326
+ unusable.push(path);
327
+ }
328
+ }
329
+ return unusable;
247
330
  }
248
331
  /**
249
332
  * Validates that a filtered issue search is scoped at all, and narrows `repos` to the descriptor form the
@@ -254,28 +337,34 @@ function isUsableSearchScopeName(name) {
254
337
  * warning: the two callers word it differently (whole-read vs naming the offending scope's key), and wording is
255
338
  * the warning layer's business.
256
339
  *
257
- * The two rejections are mutually exclusive — `repo-ids` requires repositories and `unscoped` requires none — so
258
- * the order they're checked in cannot change the outcome.
340
+ * `repo-ids` and `unscoped` are mutually exclusive — one requires repositories and the other requires none — so
341
+ * their relative order is free. `unusable-scope` is NOT: it must precede `unscoped`, so a value that was supplied
342
+ * but cannot be used is never reported as a missing one.
259
343
  *
260
- * An org is checked for what SURVIVES SANITIZING, not merely for being non-empty, and that distinction is a
261
- * SECURITY one rather than a nicety: the provider query drops a value that sanitizes away rather than rejecting
262
- * it (`toGitHubIssueSearchScopeQualifiers` emits no bare `org:`, which GitHub would reject), so an org of `' '`
263
- * or `'"'` would pass a length check, emit NO scope qualifier at all, and leave a search of the entire host —
264
- * measured at 52 million issues across unrelated accounts. Whitespace and quotes are exactly what a name pasted
265
- * from a config or a URL degrades to, so this is reachable without anything adversarial.
344
+ * Every scope name is checked for naming the same scope after the provider sanitizes it, not merely for being
345
+ * non-empty, and that distinction is a SECURITY one rather than a nicety see {@link isUsableSearchScopeName}.
266
346
  */
267
347
  export function resolveIssueSearchScope(repos, org, criteria) {
348
+ let resolvedRepos;
268
349
  if (repos?.length) {
269
350
  // `ProviderReposInput` is a union of descriptor and id arrays; only the descriptor form is usable here.
270
- if (repos.some(r => typeof r === 'string' || typeof r === 'number'))
271
- return { rejection: 'repo-ids' };
272
- return { repos: repos };
351
+ if (repos.some(r => typeof r === 'string' || typeof r === 'number')) {
352
+ return { rejection: { reason: 'repo-ids' } };
353
+ }
354
+ resolvedRepos = repos;
273
355
  }
274
- if (org != null && isUsableSearchScopeName(org))
356
+ // Checked BEFORE the "is it scoped at all" rule below, so an unusable value is never reported as a missing
357
+ // one: it was supplied, and telling the caller to pass a scope it already passed names the wrong defect.
358
+ const unusable = unusableSearchScopeNames(org, resolvedRepos);
359
+ if (unusable.length > 0)
360
+ return { rejection: { reason: 'unusable-scope', scopes: unusable } };
361
+ if (resolvedRepos != null)
362
+ return { repos: resolvedRepos };
363
+ if (org != null && org.length > 0)
275
364
  return {};
276
365
  if (criteria?.relationships?.some(r => userScopingIssueSearchRelationships.includes(r)) === true)
277
366
  return {};
278
- return { rejection: 'unscoped' };
367
+ return { rejection: { reason: 'unscoped' } };
279
368
  }
280
369
  /**
281
370
  * The filters `listPullRequestsPage`/`listIssuesPage` (and the sweeps) accept for a provider, so a caller can
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAoB3D;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACxC,EAAkB,EAClB,OAAwC;IAExC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE3E,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,2BAA2B,CAAC;IACrE,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEjG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oCAAoC,CACnD,EAAkB,EAClB,OAAwC;IAExC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE3E,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,sCAAsC,CAAC;IAChF,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEjG,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAC/C,EAAkB,EAClB,QAA+C;IAE/C,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,0BAA0B,CAAC;IACpE,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,WAAW,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QACrE,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,uGAAuG;IACvG,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,+GAA+G;IAC/G,yGAAyG;IACzG,4EAA4E;IAC5E,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,WAAW,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/G,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC5C,EAAkB,EAClB,KAAqC,EACrC,GAAuB,EACvB,QAA+C;IAE/C,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,0BAA0B,CAAC;IACpE,IAAI,aAA8C,CAAC;IAEnD,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,SAAS,EAAE,eAAe,KAAK,IAAI;YAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,CAAC;QAE1G,aAAa,GAAG,KAA4B,CAAC;IAC9C,CAAC;IAED,MAAM,oBAAoB,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,IAAI,oBAAoB,IAAI,SAAS,EAAE,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,CAAC;IACpE,CAAC;IAED,6GAA6G;IAC7G,4GAA4G;IAC5G,uGAAuG;IACvG,0GAA0G;IAC1G,eAAe;IACf,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IAE9F,IAAI,aAAa,IAAI,IAAI,IAAI,oBAAoB,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACjG,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC7C,EAAkB,EAClB,OAAkC;IAElC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE3E,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,gCAAgC,CAAC;IAC1E,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEjG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC;AAWD;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAkB;IAC7D,OAAO,iBAAiB,CAAC,EAAE,CAAC,EAAE,oBAAoB,IAAI,IAAI,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACzC,EAAkB,EAClB,QAAyC;IAEzC,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC;IAC9D,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;IAC9E,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC7C,IAAI,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,YAAY,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IACD,2GAA2G;IAC3G,6FAA6F;IAC7F,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACxD,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,wBAAwB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC;QACvF,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,wFAAwF;IACxF,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9E,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,6GAA6G;IAC7G,+GAA+G;IAC/G,4GAA4G;IAC5G,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,WAAW,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;IAE5G,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,mCAAmC,GAAuC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAEtH,kHAAkH;AAClH,MAAM,kCAAkC,GAA4B;IACnE,aAAa,EAAE,EAAE;IACjB,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,wBAAwB,EAAE,KAAK;IAC/B,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,EAAE;CACT,CAAC;AAEF,oEAAoE;AACpE,MAAM,wCAAwC,GAAkC;IAC/E,aAAa,EAAE,EAAE;IACjB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,KAAK,EAAE,EAAE;CACT,CAAC;AAWF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,SAAS,uBAAuB,CAAC,IAAY;IAC5C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7C,4CAA4C;IAC5C,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAED,sGAAsG;AACtG,SAAS,qBAAqB,CAAC,KAAa;IAC3C,4CAA4C;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,GAAuB,EAAE,KAA+C;IACzG,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,4GAA4G;IAC5G,kDAAkD;IAClD,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,0GAA0G;IAC1G,8GAA8G;IAC9G,6GAA6G;IAC7G,4GAA4G;IAC5G,gFAAgF;IAChF,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;QACpC,8EAA8E;QAC9E,0GAA0G;QAC1G,qGAAqG;QACrG,0GAA0G;QAC1G,2GAA2G;QAC3G,kGAAkG;QAClG,IACC,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAC9B,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;YAC7C,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EACvC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACtC,KAAqC,EACrC,GAAuB,EACvB,QAAyC;IAEzC,IAAI,aAA8C,CAAC;IAEnD,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,wGAAwG;QACxG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QAC9C,CAAC;QAED,aAAa,GAAG,KAA4B,CAAC;IAC9C,CAAC;IAED,2GAA2G;IAC3G,yGAAyG;IACzG,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IAE9F,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC3D,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,mCAAmC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAE5G,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;AAC9C,CAAC;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA0B;IAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,QAAQ,EAAE,oBAAoB,CAAC;IACnD,MAAM,iBAAiB,GAAG,QAAQ,EAAE,0BAA0B,CAAC;IAC/D,OAAO;QACN,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,2BAA2B,IAAI,EAAE,CAAC,CAAC;QAChE,uBAAuB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtF,iBAAiB,EAAE;YAClB,GAAG,wCAAwC;YAC3C,GAAG,iBAAiB;YACpB,aAAa,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YAC9C,mEAAmE;YACnE,KAAK,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;SAC5C;QACD,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACpD,iBAAiB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,gCAAgC,IAAI,EAAE,CAAC,CAAC;QAC1E,oGAAoG;QACpG,wGAAwG;QACxG,8FAA8F;QAC9F,EAAE;QACF,4FAA4F;QAC5F,uGAAuG;QACvG,iGAAiG;QACjG,2GAA2G;QAC3G,WAAW,EAAE;YACZ,GAAG,kCAAkC;YACrC,GAAG,WAAW;YACd,mEAAmE;YACnE,aAAa,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;SACtC;QACD,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACtD,qBAAqB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,8BAA8B,IAAI,EAAE,CAAC,CAAC;KAC5E,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issueTracker.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/issueTracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAaxD,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GACC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CA+e1C"}
1
+ {"version":3,"file":"issueTracker.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/issueTracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAaxD,wBAAsB,0BAA0B,CAC/C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GACC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAif1C"}
@@ -1,5 +1,5 @@
1
1
  import { mapBounded } from '../../../utils/promise.js';
2
- import { mergeAssessmentInto } from '../collectionMetadata.js';
2
+ import { assessCollectionMetadata, mergeAssessmentInto } from '../collectionMetadata.js';
3
3
  import { providerFanOutConcurrency } from '../constants.js';
4
4
  import { isIssuesIntegration } from '../models/issuesIntegration.js';
5
5
  import { IssueFilter, providersMetadata } from '../providers/models.js';
@@ -296,10 +296,7 @@ export async function listIssueTrackerIssuesPage(ctx, options) {
296
296
  // Partial project discovery means some projects' issues are missing from this page; propagate it so the
297
297
  // page reports fetchFailed even when every discovered project's own read succeeded.
298
298
  let fetchFailed = projectDiscoveryFailed || accountLookupFailed;
299
- // A project whose internal page-drain hit its backstop (Jira/Linear cap at maxPagesPerRequest) reports
300
- // `truncated`; surface it as `page.truncated` so a windowed read isn't published as having drained each
301
- // project completely.
302
- let projectTruncated = projectDiscoveryTruncated;
299
+ let truncationRecovery = projectDiscoveryTruncated ? 'none' : undefined;
303
300
  let drainMetadata;
304
301
  for (const { project, value: result, warning } of perProject) {
305
302
  const key = projectKey(project);
@@ -309,7 +306,7 @@ export async function listIssueTrackerIssuesPage(ctx, options) {
309
306
  // single failing token repeats verbatim once per project in the window.
310
307
  appendDedupedWarning(warnings, warning);
311
308
  fetchFailed = true;
312
- projectTruncated = true;
309
+ truncationRecovery = 'none';
313
310
  }
314
311
  // A thrown/unsupported read (e.g. Linear not-implemented) surfaces as a warning with no value;
315
312
  // mark the aggregate as fetchFailed so an empty result isn't mistaken for "no issues".
@@ -319,7 +316,8 @@ export async function listIssueTrackerIssuesPage(ctx, options) {
319
316
  if (result != null) {
320
317
  items.push(...result.values);
321
318
  if (result.truncated) {
322
- projectTruncated = true;
319
+ const recovery = result.recovery;
320
+ truncationRecovery = truncationRecovery == null || truncationRecovery === recovery ? recovery : 'none';
323
321
  }
324
322
  if (result.metadata != null) {
325
323
  drainMetadata = mergeCollectionMetadata(drainMetadata, result.metadata);
@@ -340,17 +338,25 @@ export async function listIssueTrackerIssuesPage(ctx, options) {
340
338
  // per-relationship queries a multi-filter read fans out into — is not, and the union is what this read
341
339
  // publishes. A no-op when nothing merged, since the tracker already ordered that single run.
342
340
  const orderedItems = ordering.order(items);
343
- const drainAssessment = mergeAssessmentInto(warnings, options.providerId, domain, options.connectionId, drainMetadata);
341
+ const projectReadReportedTruncation = truncationRecovery != null;
342
+ const drainAssessment = assessCollectionMetadata(options.providerId, domain, options.connectionId, drainMetadata);
343
+ for (const warning of drainAssessment.warnings) {
344
+ // A project result already supplies the recovery semantics. Replace metadata's unstructured fallback with
345
+ // the structured warning below, while retaining specific failures and omissions.
346
+ if (projectReadReportedTruncation && !drainAssessment.fetchFailed && warning.omission == null)
347
+ continue;
348
+ appendDedupedWarning(warnings, warning);
349
+ }
344
350
  fetchFailed = fetchFailed || drainAssessment.fetchFailed;
345
- projectTruncated = projectTruncated || drainAssessment.truncated;
346
- // A per-project read that returned data but couldn't confirm completeness (e.g. Trello's provider-native
347
- // cap) sets `truncated` without a structured failure. Add one provider-neutral incompleteness warning so
348
- // the caller sees the truncation, but only when no warning already explains it (avoid duplicate noise).
349
- if (projectTruncated && warnings.length === 0) {
350
- warnings.push(incompleteReadWarning(options.providerId, domain, options.connectionId, 'Some issues were omitted; the provider returned an incomplete result.',
351
- // `exhausted`, not `page-budget`: the per-project drain's backstop is an internal constant
352
- // (`maxPagesPerRequest`), not an option this read exposes, so no caller can raise it.
353
- fetchFailed ? 'interrupted' : 'exhausted'));
351
+ if (drainAssessment.truncated) {
352
+ truncationRecovery = 'none';
353
+ }
354
+ const projectTruncated = truncationRecovery != null;
355
+ const scopeTooLarge = !fetchFailed && truncationRecovery === 'narrow-scope';
356
+ if (scopeTooLarge || (!fetchFailed && projectTruncated && !warnings.some(warning => warning.omission != null))) {
357
+ appendDedupedWarning(warnings, incompleteReadWarning(options.providerId, domain, options.connectionId, scopeTooLarge
358
+ ? 'Some projects hold more issues than one read can return; narrow the scope to read the rest.'
359
+ : 'Some issues were omitted; the provider returned an incomplete result.', scopeTooLarge ? 'scope-too-large' : 'exhausted'));
354
360
  }
355
361
  // A metadata omission from an earlier project asserts the read succeeded; a later one may since have failed.
356
362
  reconcileOmissionsWithFailure(warnings, fetchFailed);