@gitkraken/core-gitlens 0.5.108 → 0.5.110
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 +49 -1
- package/dist/git/models/issue.d.ts +70 -0
- package/dist/git/models/issue.d.ts.map +1 -1
- package/dist/git/models/issue.js +17 -0
- package/dist/git/models/issue.js.map +1 -1
- package/dist/git/models/pullRequest.d.ts +81 -0
- package/dist/git/models/pullRequest.d.ts.map +1 -1
- package/dist/git/models/pullRequest.js +15 -0
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/git/utils/issue.utils.d.ts +41 -1
- package/dist/git/utils/issue.utils.d.ts.map +1 -1
- package/dist/git/utils/issue.utils.js +80 -0
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/pullRequest.utils.d.ts +11 -1
- package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
- package/dist/git/utils/pullRequest.utils.js +40 -0
- package/dist/git/utils/pullRequest.utils.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +70 -10
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +284 -31
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts +49 -5
- package/dist/plus/git-github/api/issueSearchQuery.d.ts.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.js +64 -6
- package/dist/plus/git-github/api/issueSearchQuery.js.map +1 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +27 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +1 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.js +73 -6
- package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -1
- package/dist/plus/git-github/models.d.ts +17 -5
- package/dist/plus/git-github/models.d.ts.map +1 -1
- package/dist/plus/git-github/models.js +14 -1
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/integrations/collectionMetadata.d.ts +18 -0
- package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -1
- package/dist/plus/integrations/collectionMetadata.js +24 -0
- package/dist/plus/integrations/collectionMetadata.js.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +31 -10
- package/dist/plus/integrations/integrationService.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.js +9 -1
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/manager.d.ts +85 -31
- package/dist/plus/integrations/manager.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +18 -31
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +29 -1
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +1 -1
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issueReads.d.ts +63 -1
- package/dist/plus/integrations/models/issueReads.d.ts.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.d.ts +7 -21
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/providerFilters.d.ts +2 -2
- package/dist/plus/integrations/providerFilters.d.ts.map +1 -1
- package/dist/plus/integrations/providers/accounts.d.ts +6 -0
- package/dist/plus/integrations/providers/accounts.d.ts.map +1 -0
- package/dist/plus/integrations/providers/accounts.js +30 -0
- package/dist/plus/integrations/providers/accounts.js.map +1 -0
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.js +1 -0
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
- package/dist/plus/integrations/providers/github.d.ts +9 -0
- package/dist/plus/integrations/providers/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github.js +115 -135
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts +9 -0
- package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab.js +24 -4
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/issueSorts.d.ts +36 -0
- package/dist/plus/integrations/providers/issueSorts.d.ts.map +1 -0
- package/dist/plus/integrations/providers/issueSorts.js +76 -0
- package/dist/plus/integrations/providers/issueSorts.js.map +1 -0
- package/dist/plus/integrations/providers/jira.d.ts +3 -9
- package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
- package/dist/plus/integrations/providers/jira.js +5 -1
- package/dist/plus/integrations/providers/jira.js.map +1 -1
- package/dist/plus/integrations/providers/linear.d.ts +24 -9
- package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
- package/dist/plus/integrations/providers/linear.js +63 -5
- package/dist/plus/integrations/providers/linear.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +76 -38
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js +91 -105
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providersApi.d.ts +18 -3
- package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
- package/dist/plus/integrations/providers/providersApi.js +24 -7
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts +50 -0
- package/dist/plus/integrations/providers/pullRequestReviews.d.ts.map +1 -0
- package/dist/plus/integrations/providers/pullRequestReviews.js +99 -0
- package/dist/plus/integrations/providers/pullRequestReviews.js.map +1 -0
- package/dist/plus/integrations/providers/trello.d.ts +3 -9
- package/dist/plus/integrations/providers/trello.d.ts.map +1 -1
- package/dist/plus/integrations/providers/trello.js +1 -0
- package/dist/plus/integrations/providers/trello.js.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.js +5 -1
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts +6 -0
- package/dist/plus/integrations/reads/broaden.d.ts.map +1 -1
- package/dist/plus/integrations/reads/broaden.js.map +1 -1
- package/dist/plus/integrations/reads/counts.d.ts +63 -1
- package/dist/plus/integrations/reads/counts.d.ts.map +1 -1
- package/dist/plus/integrations/reads/counts.js +146 -2
- package/dist/plus/integrations/reads/counts.js.map +1 -1
- package/dist/plus/integrations/reads/drains.d.ts +7 -1
- package/dist/plus/integrations/reads/drains.d.ts.map +1 -1
- package/dist/plus/integrations/reads/drains.js +13 -2
- package/dist/plus/integrations/reads/drains.js.map +1 -1
- package/dist/plus/integrations/reads/filters.d.ts +59 -9
- package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
- package/dist/plus/integrations/reads/filters.js +39 -0
- package/dist/plus/integrations/reads/filters.js.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts +18 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.js +40 -3
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
- package/dist/plus/integrations/reads/issues.d.ts +27 -3
- package/dist/plus/integrations/reads/issues.d.ts.map +1 -1
- package/dist/plus/integrations/reads/issues.js +223 -123
- package/dist/plus/integrations/reads/issues.js.map +1 -1
- package/dist/plus/integrations/reads/ordering.d.ts +101 -0
- package/dist/plus/integrations/reads/ordering.d.ts.map +1 -0
- package/dist/plus/integrations/reads/ordering.js +48 -0
- package/dist/plus/integrations/reads/ordering.js.map +1 -0
- package/dist/plus/integrations/reads/searchIssues.d.ts +7 -2
- package/dist/plus/integrations/reads/searchIssues.d.ts.map +1 -1
- package/dist/plus/integrations/reads/searchIssues.js +9 -3
- package/dist/plus/integrations/reads/searchIssues.js.map +1 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts +4 -3
- package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +1 -1
- package/dist/plus/integrations/reads/searchPullRequests.js +6 -4
- package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
- package/dist/plus/integrations/reads/sweeps.js +1 -1
- package/dist/plus/integrations/reads/sweeps.js.map +1 -1
- package/dist/plus/integrations/reads/warnings.d.ts +35 -3
- package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
- package/dist/plus/integrations/reads/warnings.js +58 -4
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/dist/plus/integrations/results.d.ts +15 -0
- package/dist/plus/integrations/results.d.ts.map +1 -1
- package/dist/plus/integrations/results.js.map +1 -1
- package/docs/integrations.md +76 -10
- package/docs/kepler-read-api-parity.md +9 -0
- package/package.json +2 -2
- package/src/git/models/issue.ts +73 -0
- package/src/git/models/pullRequest.ts +84 -0
- package/src/git/utils/issue.utils.ts +91 -1
- package/src/git/utils/pullRequest.utils.ts +50 -0
- package/src/plus/git-github/api/github.ts +356 -36
- package/src/plus/git-github/api/issueSearchQuery.ts +67 -7
- package/src/plus/git-github/api/pullRequestSearchQuery.ts +81 -7
- package/src/plus/git-github/models.ts +29 -5
- package/src/plus/integrations/collectionMetadata.ts +24 -0
- package/src/plus/integrations/integrationService.ts +40 -12
- package/src/plus/integrations/manager.ts +89 -35
- package/src/plus/integrations/models/gitHostIntegration.ts +47 -31
- package/src/plus/integrations/models/integration.ts +1 -0
- package/src/plus/integrations/models/issueReads.ts +65 -1
- package/src/plus/integrations/models/issuesIntegration.ts +7 -6
- package/src/plus/integrations/providerFilters.ts +8 -1
- package/src/plus/integrations/providers/accounts.ts +34 -0
- package/src/plus/integrations/providers/azureDevOps.ts +1 -0
- package/src/plus/integrations/providers/github.ts +134 -144
- package/src/plus/integrations/providers/gitlab.ts +29 -10
- package/src/plus/integrations/providers/issueSorts.ts +89 -0
- package/src/plus/integrations/providers/jira.ts +9 -3
- package/src/plus/integrations/providers/linear.ts +77 -8
- package/src/plus/integrations/providers/models.ts +185 -128
- package/src/plus/integrations/providers/providersApi.ts +51 -13
- package/src/plus/integrations/providers/pullRequestReviews.ts +122 -0
- package/src/plus/integrations/providers/trello.ts +4 -3
- package/src/plus/integrations/providers/utils/providerPaging.ts +6 -1
- package/src/plus/integrations/reads/broaden.ts +6 -0
- package/src/plus/integrations/reads/counts.ts +281 -3
- package/src/plus/integrations/reads/drains.ts +12 -2
- package/src/plus/integrations/reads/filters.ts +92 -8
- package/src/plus/integrations/reads/issueTracker.ts +78 -4
- package/src/plus/integrations/reads/issues.ts +386 -194
- package/src/plus/integrations/reads/ordering.ts +124 -0
- package/src/plus/integrations/reads/searchIssues.ts +15 -3
- package/src/plus/integrations/reads/searchPullRequests.ts +12 -4
- package/src/plus/integrations/reads/sweeps.ts +1 -1
- package/src/plus/integrations/reads/warnings.ts +84 -2
- package/src/plus/integrations/results.ts +15 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { IssueShape, IssueSorting } from '../../../git/models/issue.js';
|
|
2
|
+
/**
|
|
3
|
+
* How an issue read decides what order to request, and how to order a page it assembled itself.
|
|
4
|
+
*
|
|
5
|
+
* Its own module rather than more of `filters.ts` because it answers a different question. That file validates what
|
|
6
|
+
* a caller asked to NARROW to; this one resolves what a caller asked to ORDER by — and unlike a filter, an order
|
|
7
|
+
* doesn't only have to be expressible by the provider, it also has to survive the read's own merging. Every issue
|
|
8
|
+
* read makes both decisions in the same shape, so they are resolved here once rather than at each read.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Why {@link resolveIssueSort} refused a key, carrying what the refusal has to say — the same shape
|
|
12
|
+
* `IssueSearchCriteriaRejection` uses for the filtered search, and for the same reason.
|
|
13
|
+
*
|
|
14
|
+
* The payload travels WITH the rejection rather than being re-read at the warning: the check already held both
|
|
15
|
+
* values, so handing them back is what lets a caller word the refusal without re-deriving anything TypeScript
|
|
16
|
+
* can no longer narrow (which is how this grew five non-null assertions), and it makes it impossible for the
|
|
17
|
+
* message to name a supported list the check didn't use.
|
|
18
|
+
*/
|
|
19
|
+
export type UnsupportedIssueSortRejection = {
|
|
20
|
+
reason: 'unsupported-sort';
|
|
21
|
+
/** The key the caller asked for. Non-optional, unlike the `sort` a successful resolve returns. */
|
|
22
|
+
requested: IssueSorting;
|
|
23
|
+
/** Every key this surface CAN express, for the message. `undefined` when the read can't be ordered at all. */
|
|
24
|
+
supported: IssueSorting[] | undefined;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Resolves the order an issue read should request: validates a caller-supplied key against what one provider
|
|
28
|
+
* surface can express server-side, and supplies this facade's default when the caller asked for none.
|
|
29
|
+
*
|
|
30
|
+
* Three outcomes, and each is a decision rather than a convenience:
|
|
31
|
+
* - A key the surface can't express is REJECTED and the read refused whole, never resolved to the nearest
|
|
32
|
+
* supported key. Same reason a dropped filter isn't dropped: the provider serves at most a bounded window of
|
|
33
|
+
* matches, so a list ordered by something else is a DIFFERENT subset than the one asked for, and the cursor that
|
|
34
|
+
* comes with it describes that other subset — indistinguishable, from the result, from the order requested.
|
|
35
|
+
* - An omitted key becomes {@link defaultIssueSort}, because leaving it to the provider is what makes the same
|
|
36
|
+
* read return different things on different hosts (Azure by creation, Jira by nothing at all). The default is
|
|
37
|
+
* this facade's promise; the SDK deliberately has no opinion.
|
|
38
|
+
* - An omitted key on a surface that can't express even the default returns `undefined`, leaving that provider's
|
|
39
|
+
* own order. A default the caller never asked for must not refuse a read that works today.
|
|
40
|
+
*
|
|
41
|
+
* Takes the supported list rather than an `IntegrationIds`, unlike the filter validators, because which list
|
|
42
|
+
* applies is the CALLER's decision — `supportedIssueSorts` for a repo-scoped or tracker read,
|
|
43
|
+
* `supportedAccountWideIssueSorts` for an account-wide one — and that branch already exists at the call site
|
|
44
|
+
* (`repos` present or not). Resolving it in here would duplicate it.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveIssueSort(supported: IssueSorting[] | undefined, sort: IssueSorting | undefined): {
|
|
47
|
+
rejection?: UnsupportedIssueSortRejection;
|
|
48
|
+
sort?: IssueSorting;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Why a merged page can't honor the key it was given: the read fans out over several provider queries and no
|
|
52
|
+
* normalized issue carries the field to merge on.
|
|
53
|
+
*
|
|
54
|
+
* Named for the same reason {@link UnsupportedIssueSortRejection} is, and kept separate from it because the two
|
|
55
|
+
* refusals are different claims: that one says the PROVIDER can't express the key, this one says the provider
|
|
56
|
+
* can but this READ's shape can't — the same key against the same provider succeeds on a single scope.
|
|
57
|
+
*/
|
|
58
|
+
export type UnmergeableIssueSort = {
|
|
59
|
+
/** The key the caller asked for, which a single-scope read of this provider would have honored. */
|
|
60
|
+
requested: IssueSorting;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* What a read does with the order it resolved, once it also knows whether the page it is about to build MERGES
|
|
64
|
+
* several provider queries.
|
|
65
|
+
*
|
|
66
|
+
* Both facts are bound here, at the one point a read knows them, rather than consulted separately at the refusal
|
|
67
|
+
* and again at the sort. That is the difference this type buys: `merged` and the comparator were each tested twice
|
|
68
|
+
* per read, and the two tests are the same decision — whether the requested order survives this page's shape.
|
|
69
|
+
*/
|
|
70
|
+
export type IssueOrdering = {
|
|
71
|
+
/** The key to send to the provider, or `undefined` to leave the provider's own order. */
|
|
72
|
+
readonly sort: IssueSorting | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Set when the requested key cannot be honored: this page merges several queries, and no normalized issue
|
|
75
|
+
* carries the field to merge on. The read refuses rather than serving concatenated per-scope runs, which would
|
|
76
|
+
* look ordered without being so. `undefined` for a single-query page, where the provider did the ordering.
|
|
77
|
+
*
|
|
78
|
+
* Carries the key rather than being a bare flag, for the same reason {@link UnsupportedIssueSortRejection}
|
|
79
|
+
* does: the refusal needs it, and re-reading `sort` at the call site needs an assertion for an invariant this
|
|
80
|
+
* type would otherwise not express.
|
|
81
|
+
*/
|
|
82
|
+
readonly unmergeable: UnmergeableIssueSort | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Orders a merged page. A no-op for a single-query page (the provider already ordered it, and re-sorting could
|
|
85
|
+
* only reproduce that order while hiding a provider that ignored the key) and for a read with no key at all.
|
|
86
|
+
*
|
|
87
|
+
* Returns a new array rather than sorting in place: the input is often the provider's own `values`, and a read
|
|
88
|
+
* that mutates what it was handed is a surprise waiting for the next caller to share that reference.
|
|
89
|
+
*/
|
|
90
|
+
order(items: IssueShape[]): IssueShape[];
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Binds a resolved sort key to the shape of the page about to be built.
|
|
94
|
+
*
|
|
95
|
+
* `merged` is the caller's own count of provider queries reduced to the only thing that matters: GitHub sends one
|
|
96
|
+
* search however many repositories are named, GitLab one per repository, Azure and the trackers one per project,
|
|
97
|
+
* and every account-wide read is a union of several. Above one, the union is what gets published, and only a field
|
|
98
|
+
* an {@link IssueShape} carries can order it.
|
|
99
|
+
*/
|
|
100
|
+
export declare function toIssueOrdering(sort: IssueSorting | undefined, merged: boolean): IssueOrdering;
|
|
101
|
+
//# sourceMappingURL=ordering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordering.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/ordering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI7E;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kGAAkG;IAClG,SAAS,EAAE,YAAY,CAAC;IACxB,8GAA8G;IAC9G,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EACrC,IAAI,EAAE,YAAY,GAAG,SAAS,GAC5B;IAAE,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CASpE;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,mGAAmG;IACnG,SAAS,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;CACzC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,aAAa,CAO9F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { defaultIssueSort } from '../../../git/models/issue.js';
|
|
2
|
+
import { getIssueComparator } from '../../../git/utils/issue.utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the order an issue read should request: validates a caller-supplied key against what one provider
|
|
5
|
+
* surface can express server-side, and supplies this facade's default when the caller asked for none.
|
|
6
|
+
*
|
|
7
|
+
* Three outcomes, and each is a decision rather than a convenience:
|
|
8
|
+
* - A key the surface can't express is REJECTED and the read refused whole, never resolved to the nearest
|
|
9
|
+
* supported key. Same reason a dropped filter isn't dropped: the provider serves at most a bounded window of
|
|
10
|
+
* matches, so a list ordered by something else is a DIFFERENT subset than the one asked for, and the cursor that
|
|
11
|
+
* comes with it describes that other subset — indistinguishable, from the result, from the order requested.
|
|
12
|
+
* - An omitted key becomes {@link defaultIssueSort}, because leaving it to the provider is what makes the same
|
|
13
|
+
* read return different things on different hosts (Azure by creation, Jira by nothing at all). The default is
|
|
14
|
+
* this facade's promise; the SDK deliberately has no opinion.
|
|
15
|
+
* - An omitted key on a surface that can't express even the default returns `undefined`, leaving that provider's
|
|
16
|
+
* own order. A default the caller never asked for must not refuse a read that works today.
|
|
17
|
+
*
|
|
18
|
+
* Takes the supported list rather than an `IntegrationIds`, unlike the filter validators, because which list
|
|
19
|
+
* applies is the CALLER's decision — `supportedIssueSorts` for a repo-scoped or tracker read,
|
|
20
|
+
* `supportedAccountWideIssueSorts` for an account-wide one — and that branch already exists at the call site
|
|
21
|
+
* (`repos` present or not). Resolving it in here would duplicate it.
|
|
22
|
+
*/
|
|
23
|
+
export function resolveIssueSort(supported, sort) {
|
|
24
|
+
if (sort == null) {
|
|
25
|
+
return supported?.includes(defaultIssueSort) ? { sort: defaultIssueSort } : {};
|
|
26
|
+
}
|
|
27
|
+
if (!supported?.includes(sort)) {
|
|
28
|
+
return { rejection: { reason: 'unsupported-sort', requested: sort, supported: supported } };
|
|
29
|
+
}
|
|
30
|
+
return { sort: sort };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Binds a resolved sort key to the shape of the page about to be built.
|
|
34
|
+
*
|
|
35
|
+
* `merged` is the caller's own count of provider queries reduced to the only thing that matters: GitHub sends one
|
|
36
|
+
* search however many repositories are named, GitLab one per repository, Azure and the trackers one per project,
|
|
37
|
+
* and every account-wide read is a union of several. Above one, the union is what gets published, and only a field
|
|
38
|
+
* an {@link IssueShape} carries can order it.
|
|
39
|
+
*/
|
|
40
|
+
export function toIssueOrdering(sort, merged) {
|
|
41
|
+
const comparator = sort != null ? getIssueComparator(sort) : undefined;
|
|
42
|
+
return {
|
|
43
|
+
sort: sort,
|
|
44
|
+
unmergeable: merged && sort != null && comparator == null ? { requested: sort } : undefined,
|
|
45
|
+
order: (items) => (merged && comparator != null ? [...items].sort(comparator) : items),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ordering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/ordering.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AA4BvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC/B,SAAqC,EACrC,IAA8B;IAE9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;IAC7F,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AA8CD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAA8B,EAAE,MAAe;IAC9E,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,OAAO;QACN,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3F,KAAK,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KACpG,CAAC;AACH,CAAC"}
|
|
@@ -17,8 +17,13 @@ import type { ProviderReadContext } from './context.js';
|
|
|
17
17
|
* for the same reason `broaden.ts`, `sweeps.ts` and `issueTracker.ts` are separate files.
|
|
18
18
|
*
|
|
19
19
|
* Contract details worth knowing before calling:
|
|
20
|
-
* - Ordering is
|
|
21
|
-
*
|
|
20
|
+
* - Ordering is `criteria.sort`, most-recently-updated-first by default, and validated like every other criterion
|
|
21
|
+
* against `getSupportedFilters().issueSearch.sorts`. SOME order is always requested — a "show the N most recent"
|
|
22
|
+
* policy at the provider's result ceiling is only correct under a guaranteed one, and the ceiling warning names
|
|
23
|
+
* the key it selected the window under. A key the provider can't express refuses the read rather than serving a
|
|
24
|
+
* differently-ordered result; do not change it mid-pagination (a cursor is bound to the order it was made under,
|
|
25
|
+
* and threading it under a different key is refused with a warning + `fetchFailed` — drop the cursor and read
|
|
26
|
+
* from the first page instead).
|
|
22
27
|
* - Paging is cursor-only. `page` alone walks 1..N internally (O(N) requests); a page past the last one is an
|
|
23
28
|
* empty page N, never page N−1 relabeled.
|
|
24
29
|
* - At the provider's result ceiling the read SUCCEEDS and reports an omission carrying the total match count,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchIssues.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchIssues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"searchIssues.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchIssues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAM1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAmBxD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,oGAAoG;IACpG,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAkL1C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { effectiveIssueSort } from '../../../git/utils/issue.utils.js';
|
|
1
2
|
import { isGitHostIntegration, isIssuesHostIntegrationId, warnOnMissingSessionForDomain, } from '../utils/integration.utils.js';
|
|
2
3
|
import { runCaptured } from './drains.js';
|
|
3
4
|
import { resolveIssueSearchCriteria, resolveIssueSearchScope } from './filters.js';
|
|
@@ -17,8 +18,13 @@ import { gitHostOnlySurfaceWarning, issueSearchCapResultWarning, issuesUnsupport
|
|
|
17
18
|
* for the same reason `broaden.ts`, `sweeps.ts` and `issueTracker.ts` are separate files.
|
|
18
19
|
*
|
|
19
20
|
* Contract details worth knowing before calling:
|
|
20
|
-
* - Ordering is
|
|
21
|
-
*
|
|
21
|
+
* - Ordering is `criteria.sort`, most-recently-updated-first by default, and validated like every other criterion
|
|
22
|
+
* against `getSupportedFilters().issueSearch.sorts`. SOME order is always requested — a "show the N most recent"
|
|
23
|
+
* policy at the provider's result ceiling is only correct under a guaranteed one, and the ceiling warning names
|
|
24
|
+
* the key it selected the window under. A key the provider can't express refuses the read rather than serving a
|
|
25
|
+
* differently-ordered result; do not change it mid-pagination (a cursor is bound to the order it was made under,
|
|
26
|
+
* and threading it under a different key is refused with a warning + `fetchFailed` — drop the cursor and read
|
|
27
|
+
* from the first page instead).
|
|
22
28
|
* - Paging is cursor-only. `page` alone walks 1..N internally (O(N) requests); a page past the last one is an
|
|
23
29
|
* empty page N, never page N−1 relabeled.
|
|
24
30
|
* - At the provider's result ceiling the read SUCCEEDS and reports an omission carrying the total match count,
|
|
@@ -112,7 +118,7 @@ export async function searchIssuesPage(ctx, options) {
|
|
|
112
118
|
// The result ceiling is the one truncation cause this read can EXPLAIN with a number, so it gets its own
|
|
113
119
|
// warning carrying the total. Anything else truncated (an unusable continuation, a provider that stopped
|
|
114
120
|
// advancing) falls back to the generic wording.
|
|
115
|
-
warnings.push(issueSearchCapResultWarning(options.providerId, domain, options.connectionId, totalCount) ??
|
|
121
|
+
warnings.push(issueSearchCapResultWarning(options.providerId, domain, options.connectionId, totalCount, effectiveIssueSort(options.criteria?.sort)) ??
|
|
116
122
|
truncationWarning(options.providerId, domain, options.connectionId, 'Issue search',
|
|
117
123
|
// `exhausted`: this read exposes no budget the caller could raise, so nothing it could call
|
|
118
124
|
// would return the withheld items.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchIssues.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchIssues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"searchIssues.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchIssues.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,10 @@ import type { ProviderReadContext } from './context.js';
|
|
|
7
7
|
* Pull requests matching structured criteria over a repository/organization or current-user relationship scope.
|
|
8
8
|
*
|
|
9
9
|
* The read is deliberately separate from `listPullRequestsPage`: the list has provider-specific "my PRs"
|
|
10
|
-
* semantics and no text channel, while this method promises a sanitized query,
|
|
11
|
-
*
|
|
12
|
-
* ceiling
|
|
10
|
+
* semantics and no text channel, while this method promises a sanitized query, an ordering the caller chooses
|
|
11
|
+
* (`criteria.sort`, defaulting to most-recently-updated-first) and that is applied to the merged page as a whole,
|
|
12
|
+
* one upstream request per cursor-threaded page, and a quantified omission at the provider's result ceiling that
|
|
13
|
+
* names the order the reachable window was selected under.
|
|
13
14
|
*/
|
|
14
15
|
export declare function searchPullRequestsPage(ctx: ProviderReadContext, options: {
|
|
15
16
|
providerId: IntegrationIds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchPullRequests.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"searchPullRequests.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAM1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAkBxD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC3C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAsKhD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { defaultPullRequestSort } from '../../../git/models/pullRequest.js';
|
|
1
2
|
import { isGitHostIntegration, isIssuesHostIntegrationId, warnOnMissingSessionForDomain, } from '../utils/integration.utils.js';
|
|
2
3
|
import { runCaptured } from './drains.js';
|
|
3
4
|
import { resolvePullRequestSearchCriteria, resolvePullRequestSearchScope } from './filters.js';
|
|
@@ -7,9 +8,10 @@ import { gitHostOnlySurfaceWarning, otherWarning, pullRequestSearchCapResultWarn
|
|
|
7
8
|
* Pull requests matching structured criteria over a repository/organization or current-user relationship scope.
|
|
8
9
|
*
|
|
9
10
|
* The read is deliberately separate from `listPullRequestsPage`: the list has provider-specific "my PRs"
|
|
10
|
-
* semantics and no text channel, while this method promises a sanitized query,
|
|
11
|
-
*
|
|
12
|
-
* ceiling
|
|
11
|
+
* semantics and no text channel, while this method promises a sanitized query, an ordering the caller chooses
|
|
12
|
+
* (`criteria.sort`, defaulting to most-recently-updated-first) and that is applied to the merged page as a whole,
|
|
13
|
+
* one upstream request per cursor-threaded page, and a quantified omission at the provider's result ceiling that
|
|
14
|
+
* names the order the reachable window was selected under.
|
|
13
15
|
*/
|
|
14
16
|
export async function searchPullRequestsPage(ctx, options) {
|
|
15
17
|
const page = Math.max(1, Math.trunc(options.page ?? 1));
|
|
@@ -82,7 +84,7 @@ export async function searchPullRequestsPage(ctx, options) {
|
|
|
82
84
|
}, undefined);
|
|
83
85
|
const truncated = continuation.truncated;
|
|
84
86
|
if (truncated && warnings.length === 0) {
|
|
85
|
-
warnings.push(pullRequestSearchCapResultWarning(options.providerId, domain, options.connectionId, totalCount) ??
|
|
87
|
+
warnings.push(pullRequestSearchCapResultWarning(options.providerId, domain, options.connectionId, totalCount, options.criteria?.sort ?? defaultPullRequestSort) ??
|
|
86
88
|
truncationWarning(options.providerId, domain, options.connectionId, 'Pull request search', 'exhausted'));
|
|
87
89
|
}
|
|
88
90
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchPullRequests.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"searchPullRequests.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,7 +56,7 @@ async function sweepTarget(ctx, options, target, attributeUnavailableProviders)
|
|
|
56
56
|
: unsupportedFiltersWarning(id, domain, connectionId),
|
|
57
57
|
]);
|
|
58
58
|
}
|
|
59
|
-
const drain = await drainPullRequests(integration, id, domain, repos, options?.states, resolved.filters,
|
|
59
|
+
const drain = await drainPullRequests(integration, id, domain, repos, options?.states, resolved.filters, options, connectionId, maxPages, attributeUnavailableProviders);
|
|
60
60
|
const currentAccountId = drain.items.some(pr => pr.author != null)
|
|
61
61
|
? await getCurrentAccountId(integration, connectionId)
|
|
62
62
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweeps.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/sweeps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sweeps.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/sweeps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { IntegrationIds } from '../constants.js';
|
|
2
|
-
import type { IssueFilter, PullRequestFilter } from '../providerFilters.js';
|
|
2
|
+
import type { IssueFilter, IssueSorting, PullRequestFilter, PullRequestSorting } from '../providerFilters.js';
|
|
3
3
|
import type { ProviderWarning } from '../results.js';
|
|
4
4
|
import type { IssueSearchCriteriaRejection, PullRequestSearchCriteriaRejection } from './filters.js';
|
|
5
|
+
import type { UnmergeableIssueSort, UnsupportedIssueSortRejection } from './ordering.js';
|
|
5
6
|
/**
|
|
6
7
|
* The warnings the provider facade raises on its OWN terms, as opposed to the ones derived from a caught
|
|
7
8
|
* provider error ({@link toProviderWarning}) or from SDK collection metadata (`collectionMetadata.ts`).
|
|
@@ -94,6 +95,33 @@ export declare function unsupportedPullRequestSearchCriteriaWarning(id: Integrat
|
|
|
94
95
|
* the wording can't drift from the check that produced it (see {@link resolveIssueSearchCriteria}).
|
|
95
96
|
*/
|
|
96
97
|
export declare function unsupportedIssueSearchCriteriaWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, rejection: IssueSearchCriteriaRejection): ProviderWarning;
|
|
98
|
+
/**
|
|
99
|
+
* Warning for an issue read asked to order by a key its provider can't express server-side.
|
|
100
|
+
*
|
|
101
|
+
* Separate from {@link unsupportedIssueSearchCriteriaWarning} because it serves the reads that take `sort` as an
|
|
102
|
+
* OPTION rather than as a criterion — repo-scoped, account-wide, and issue-tracker — where there is no criteria
|
|
103
|
+
* set to fold it into. The filtered search keeps reporting it as one more `unsupported-criteria` entry, so a
|
|
104
|
+
* caller there still gets a single refusal listing everything at once.
|
|
105
|
+
*
|
|
106
|
+
* Takes the rejection the check produced rather than a re-read supported list: which of the two tables applies is
|
|
107
|
+
* the caller's own branch (`repos` present or not), so reading it back here — or threading it by hand — would be
|
|
108
|
+
* free to disagree with the check that refused.
|
|
109
|
+
*/
|
|
110
|
+
export declare function unsupportedIssueSortWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, rejection: UnsupportedIssueSortRejection): ProviderWarning;
|
|
111
|
+
/**
|
|
112
|
+
* Warning for a merged issue read asked to order by a key that no normalized issue carries.
|
|
113
|
+
*
|
|
114
|
+
* The distinction this exists to make is not about the provider: the provider orders by `priority` perfectly well
|
|
115
|
+
* within ONE project. It is about the read, which fans out over several and merges the results here, where the
|
|
116
|
+
* only fields available are the ones {@link IssueShape} models. Serving the concatenated per-scope runs would look
|
|
117
|
+
* ordered without being so, which is why this refuses instead — and why the message says WHY, since the same key
|
|
118
|
+
* against the same provider succeeds on a single-scope read.
|
|
119
|
+
*
|
|
120
|
+
* What a read fans out OVER differs by read, hence the `scope`: repositories, projects, or — where one query is
|
|
121
|
+
* issued per requested relationship and the runs are unioned within a single project (Jira) — the filters
|
|
122
|
+
* themselves. Naming the wrong one would tell a caller to narrow something that isn't what merged.
|
|
123
|
+
*/
|
|
124
|
+
export declare function unmergeableIssueSortWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, unmergeable: UnmergeableIssueSort, scope: 'repositories' | 'projects' | 'filters'): ProviderWarning;
|
|
97
125
|
/**
|
|
98
126
|
* The omission for a filtered issue search that hit the provider's RESULT CEILING: more issues matched than the
|
|
99
127
|
* provider will ever serve for one query, however it is paged.
|
|
@@ -104,12 +132,16 @@ export declare function unsupportedIssueSearchCriteriaWarning(id: IntegrationIds
|
|
|
104
132
|
* 'none'` because the items past the ceiling are UNREACHABLE, not merely unfetched: no budget, no retry, and no
|
|
105
133
|
* cursor would return them. Narrowing the criteria is the only way through, which is a decision for the caller.
|
|
106
134
|
*
|
|
135
|
+
* The message names the ORDER, and has to now that ordering is an option: the reachable window is the top `limit`
|
|
136
|
+
* under that key, so "the 1.000 most recent" is a true sentence only while the key is the default one. The same
|
|
137
|
+
* value goes on the omission, so a consumer wording its own sentence doesn't have to remember what it asked for.
|
|
138
|
+
*
|
|
107
139
|
* Returns `undefined` when the provider declares no ceiling, so the caller falls back to the generic wording
|
|
108
140
|
* rather than reporting a limit it invented.
|
|
109
141
|
*/
|
|
110
|
-
export declare function issueSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined): ProviderWarning | undefined;
|
|
142
|
+
export declare function issueSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined, sort: IssueSorting): ProviderWarning | undefined;
|
|
111
143
|
/** Quantified omission for a pull-request search that exceeded the provider's reachable result window. */
|
|
112
|
-
export declare function pullRequestSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined): ProviderWarning | undefined;
|
|
144
|
+
export declare function pullRequestSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined, sort: PullRequestSorting): ProviderWarning | undefined;
|
|
113
145
|
/** Warning for a git host that doesn't expose issues on this surface (e.g. Bitbucket, deprecated in favor of Jira). */
|
|
114
146
|
export declare function issuesUnsupportedWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined): ProviderWarning;
|
|
115
147
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,WAAW,EAEX,iBAAiB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,9 +148,13 @@ function describePullRequestSearchCapabilities(capabilities) {
|
|
|
148
148
|
...(capabilities.relationships.length ? [`relationships:${capabilities.relationships.join('|')}`] : []),
|
|
149
149
|
...(capabilities.states.length ? [`states:${capabilities.states.join('|')}`] : []),
|
|
150
150
|
...(capabilities.text ? ['text'] : []),
|
|
151
|
+
...(capabilities.updatedAfter ? ['updatedAfter'] : []),
|
|
152
|
+
...(capabilities.createdAfter ? ['createdAfter'] : []),
|
|
151
153
|
...(capabilities.includeArchived ? ['includeArchived'] : []),
|
|
154
|
+
...(capabilities.draft ? ['draft'] : []),
|
|
152
155
|
...(capabilities.repositoryScope ? ['repository scope'] : []),
|
|
153
156
|
...(capabilities.organizationScope ? ['organization scope'] : []),
|
|
157
|
+
...(capabilities.sorts.length ? [`sorts:${capabilities.sorts.join('|')}`] : []),
|
|
154
158
|
].join(', ');
|
|
155
159
|
}
|
|
156
160
|
/**
|
|
@@ -194,8 +198,47 @@ function describeIssueSearchCapabilities(capabilities) {
|
|
|
194
198
|
return [
|
|
195
199
|
...capabilities.relationships.map(r => `relationships:${r}`),
|
|
196
200
|
...flags.filter(([, supported]) => supported).map(([name]) => name),
|
|
201
|
+
...capabilities.sorts.map(s => `sort:${s}`),
|
|
197
202
|
].join(', ');
|
|
198
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Warning for an issue read asked to order by a key its provider can't express server-side.
|
|
206
|
+
*
|
|
207
|
+
* Separate from {@link unsupportedIssueSearchCriteriaWarning} because it serves the reads that take `sort` as an
|
|
208
|
+
* OPTION rather than as a criterion — repo-scoped, account-wide, and issue-tracker — where there is no criteria
|
|
209
|
+
* set to fold it into. The filtered search keeps reporting it as one more `unsupported-criteria` entry, so a
|
|
210
|
+
* caller there still gets a single refusal listing everything at once.
|
|
211
|
+
*
|
|
212
|
+
* Takes the rejection the check produced rather than a re-read supported list: which of the two tables applies is
|
|
213
|
+
* the caller's own branch (`repos` present or not), so reading it back here — or threading it by hand — would be
|
|
214
|
+
* free to disagree with the check that refused.
|
|
215
|
+
*/
|
|
216
|
+
export function unsupportedIssueSortWarning(id, domain, connectionId, rejection) {
|
|
217
|
+
return otherWarning(id, domain, connectionId, unsupportedNarrowingMessage(id, 'issue sort', rejection.requested, (rejection.supported ?? []).join(', ')));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Warning for a merged issue read asked to order by a key that no normalized issue carries.
|
|
221
|
+
*
|
|
222
|
+
* The distinction this exists to make is not about the provider: the provider orders by `priority` perfectly well
|
|
223
|
+
* within ONE project. It is about the read, which fans out over several and merges the results here, where the
|
|
224
|
+
* only fields available are the ones {@link IssueShape} models. Serving the concatenated per-scope runs would look
|
|
225
|
+
* ordered without being so, which is why this refuses instead — and why the message says WHY, since the same key
|
|
226
|
+
* against the same provider succeeds on a single-scope read.
|
|
227
|
+
*
|
|
228
|
+
* What a read fans out OVER differs by read, hence the `scope`: repositories, projects, or — where one query is
|
|
229
|
+
* issued per requested relationship and the runs are unioned within a single project (Jira) — the filters
|
|
230
|
+
* themselves. Naming the wrong one would tell a caller to narrow something that isn't what merged.
|
|
231
|
+
*/
|
|
232
|
+
export function unmergeableIssueSortWarning(id, domain, connectionId, unmergeable, scope) {
|
|
233
|
+
// Both forms are spelled out rather than depluralized at runtime: the message needs each, and
|
|
234
|
+
// `'repositories'.replace(/s$/, '')` is `'repositorie'`.
|
|
235
|
+
const nouns = {
|
|
236
|
+
repositories: { many: 'repositories', one: 'repository' },
|
|
237
|
+
projects: { many: 'projects', one: 'project' },
|
|
238
|
+
filters: { many: 'issue relationships', one: 'relationship' },
|
|
239
|
+
}[scope];
|
|
240
|
+
return otherWarning(id, domain, connectionId, `Cannot order by '${unmergeable.requested}' across several ${nouns.many}: this read merges their results, and a normalized issue carries no such field to merge on. Read one ${nouns.one} at a time, or order by a date, title, comment or reaction count.`);
|
|
241
|
+
}
|
|
199
242
|
/**
|
|
200
243
|
* The omission for a filtered issue search that hit the provider's RESULT CEILING: more issues matched than the
|
|
201
244
|
* provider will ever serve for one query, however it is paged.
|
|
@@ -206,39 +249,50 @@ function describeIssueSearchCapabilities(capabilities) {
|
|
|
206
249
|
* 'none'` because the items past the ceiling are UNREACHABLE, not merely unfetched: no budget, no retry, and no
|
|
207
250
|
* cursor would return them. Narrowing the criteria is the only way through, which is a decision for the caller.
|
|
208
251
|
*
|
|
252
|
+
* The message names the ORDER, and has to now that ordering is an option: the reachable window is the top `limit`
|
|
253
|
+
* under that key, so "the 1.000 most recent" is a true sentence only while the key is the default one. The same
|
|
254
|
+
* value goes on the omission, so a consumer wording its own sentence doesn't have to remember what it asked for.
|
|
255
|
+
*
|
|
209
256
|
* Returns `undefined` when the provider declares no ceiling, so the caller falls back to the generic wording
|
|
210
257
|
* rather than reporting a limit it invented.
|
|
211
258
|
*/
|
|
212
|
-
export function issueSearchCapResultWarning(id, domain, connectionId, totalCount) {
|
|
259
|
+
export function issueSearchCapResultWarning(id, domain, connectionId, totalCount, sort) {
|
|
213
260
|
const limit = providersMetadata[id]?.issueSearchResultLimit;
|
|
214
261
|
if (limit == null)
|
|
215
262
|
return undefined;
|
|
216
263
|
// Below the ceiling this warning would be a false claim; the caller's truncation had another cause.
|
|
217
264
|
if (totalCount == null || totalCount <= limit)
|
|
218
265
|
return undefined;
|
|
266
|
+
const [field, direction] = sort.split(':');
|
|
219
267
|
return {
|
|
220
|
-
...otherWarning(id, domain, connectionId, `Issue search matched ${totalCount} results, but '${id}' serves at most ${limit}; narrow the search to read the rest.`),
|
|
268
|
+
...otherWarning(id, domain, connectionId, `Issue search matched ${totalCount} results, but '${id}' serves at most ${limit}, ordered by ${field} ${direction}ending; narrow the search to read the rest.`),
|
|
221
269
|
omission: {
|
|
222
270
|
kind: 'provider-limit',
|
|
223
271
|
// The items past the ceiling can't be fetched by anything, so never offer a "load more".
|
|
224
272
|
recovery: 'none',
|
|
225
273
|
limit: limit,
|
|
226
274
|
totalCount: totalCount,
|
|
275
|
+
sort: sort,
|
|
227
276
|
},
|
|
228
277
|
};
|
|
229
278
|
}
|
|
230
279
|
/** Quantified omission for a pull-request search that exceeded the provider's reachable result window. */
|
|
231
|
-
export function pullRequestSearchCapResultWarning(id, domain, connectionId, totalCount) {
|
|
280
|
+
export function pullRequestSearchCapResultWarning(id, domain, connectionId, totalCount, sort) {
|
|
232
281
|
const limit = providersMetadata[id]?.pullRequestSearchResultLimit;
|
|
233
282
|
if (limit == null || totalCount == null || totalCount <= limit)
|
|
234
283
|
return undefined;
|
|
284
|
+
// Name the order: the reachable window is the first `limit` under THIS sort, and a different key reaches a
|
|
285
|
+
// different subset, so a ceiling message that omits it can't say which slice was served. Same reasoning as
|
|
286
|
+
// `issueSearchCapResultWarning`.
|
|
287
|
+
const [field, direction] = sort.split(':');
|
|
235
288
|
return {
|
|
236
|
-
...otherWarning(id, domain, connectionId, `Pull request search matched ${totalCount} results, but '${id}' serves at most ${limit}; narrow the search to read the rest.`),
|
|
289
|
+
...otherWarning(id, domain, connectionId, `Pull request search matched ${totalCount} results, but '${id}' serves at most ${limit}, ordered by ${field} ${direction}ending; narrow the search to read the rest.`),
|
|
237
290
|
omission: {
|
|
238
291
|
kind: 'provider-limit',
|
|
239
292
|
recovery: 'none',
|
|
240
293
|
limit: limit,
|
|
241
294
|
totalCount: totalCount,
|
|
295
|
+
sort: sort,
|
|
242
296
|
},
|
|
243
297
|
};
|
|
244
298
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
|