github-issue-tower-defence-management 1.153.4 → 1.153.6

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 (28) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +161 -0
  3. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  4. package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js +3 -2
  5. package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js.map +1 -1
  6. package/bin/domain/usecases/IssueRejectionEvaluator.js +28 -11
  7. package/bin/domain/usecases/IssueRejectionEvaluator.js.map +1 -1
  8. package/bin/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.js +15 -3
  9. package/bin/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +11 -0
  12. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +194 -0
  13. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +252 -0
  14. package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.test.ts +55 -0
  15. package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.ts +5 -4
  16. package/src/domain/usecases/IssueRejectionEvaluator.ts +49 -15
  17. package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.test.ts +154 -0
  18. package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts +33 -5
  19. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +3 -0
  20. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +3 -0
  21. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  22. package/types/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.d.ts.map +1 -1
  23. package/types/domain/usecases/IssueRejectionEvaluator.d.ts +6 -1
  24. package/types/domain/usecases/IssueRejectionEvaluator.d.ts.map +1 -1
  25. package/types/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.d.ts +1 -1
  26. package/types/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.d.ts.map +1 -1
  27. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +1 -0
  28. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
@@ -1478,6 +1478,61 @@ ${otherStoryViewLink}`);
1478
1478
  expect(mockIssueRepository.updateIssue).not.toHaveBeenCalled();
1479
1479
  });
1480
1480
  });
1481
+
1482
+ describe('story issue refetch', () => {
1483
+ const storyViewLink = 'https://example.com?sliceBy%5Bvalue%5D=Story%201';
1484
+ const storyIssueWithLinkOnFirstLine: Issue = {
1485
+ ...basicStoryIssue1,
1486
+ body: `${storyViewLink}
1487
+
1488
+ - [ ] Task 1`,
1489
+ };
1490
+
1491
+ const runWithBoardIssue = async (
1492
+ boardIssue: Issue,
1493
+ createTaskFromStoryBodyCheckboxEnabled: boolean,
1494
+ ): Promise<void> => {
1495
+ jest.clearAllMocks();
1496
+ mockIssueRepository.getIssueByUrl.mockResolvedValue(
1497
+ storyIssueWithLinkOnFirstLine,
1498
+ );
1499
+ const useCase = new ConvertCheckboxToIssueInStoryIssueUseCase(
1500
+ mockIssueRepository,
1501
+ );
1502
+ await useCase.run({
1503
+ project: singleStoryProject,
1504
+ issues: [boardIssue],
1505
+ cacheUsed: false,
1506
+ urlOfStoryView: 'https://example.com',
1507
+ storyObjectMap: singleStoryObjectMap,
1508
+ manager: 'ManagerName',
1509
+ createTaskFromStoryBodyCheckboxEnabled,
1510
+ });
1511
+ };
1512
+
1513
+ it('does not fetch the story issue again when task creation from story body checkboxes is disabled and the story view link is already the first line', async () => {
1514
+ await runWithBoardIssue(storyIssueWithLinkOnFirstLine, false);
1515
+
1516
+ expect(mockIssueRepository.getIssueByUrl).not.toHaveBeenCalled();
1517
+ expect(mockIssueRepository.updateIssue).not.toHaveBeenCalled();
1518
+ });
1519
+
1520
+ it('fetches the story issue when task creation from story body checkboxes is enabled', async () => {
1521
+ await runWithBoardIssue(storyIssueWithLinkOnFirstLine, true);
1522
+
1523
+ expect(mockIssueRepository.getIssueByUrl.mock.calls[0]).toEqual([
1524
+ storyIssueWithLinkOnFirstLine.url,
1525
+ ]);
1526
+ });
1527
+
1528
+ it('fetches the story issue when the story view link is missing from the body', async () => {
1529
+ await runWithBoardIssue(basicStoryIssue1, false);
1530
+
1531
+ expect(mockIssueRepository.getIssueByUrl.mock.calls).toEqual([
1532
+ [basicStoryIssue1.url],
1533
+ ]);
1534
+ });
1535
+ });
1481
1536
  });
1482
1537
 
1483
1538
  describe('buildStoryViewLink', () => {
@@ -51,14 +51,15 @@ export class ConvertCheckboxToIssueInStoryIssueUseCase {
51
51
  continue;
52
52
  }
53
53
  const iced = storyIssue.status === ICEBOX_STATUS_NAME;
54
- if (
55
- iced &&
54
+ const noCheckboxWorkFollows =
55
+ iced || !input.createTaskFromStoryBodyCheckboxEnabled;
56
+ const storyViewLinkAlreadyOnFirstLine =
56
57
  this.bodyWithStoryViewLinkOnFirstLine(
57
58
  storyIssue.body,
58
59
  input.urlOfStoryView,
59
60
  storyOption.name,
60
- ) === storyIssue.body
61
- ) {
61
+ ) === storyIssue.body;
62
+ if (noCheckboxWorkFollows && storyViewLinkAlreadyOnFirstLine) {
62
63
  continue;
63
64
  }
64
65
  const freshStoryIssue = await this.issueRepository.getIssueByUrl(
@@ -27,6 +27,12 @@ export type EvaluateOptions = {
27
27
  // closingIssueReferenceUrls, eliminating the per-issue timeline fan-out.
28
28
  // When null or undefined, behaviour is unchanged: findRelatedOpenPRs runs.
29
29
  relatedOpenPrUrls?: string[] | null;
30
+ // Pull request states the caller already resolved in one batched query for
31
+ // the whole cycle. A URL present as a key is taken from here and costs no
32
+ // further request; a URL absent from the map falls back to the per-URL
33
+ // getOpenPullRequest call, which keeps the transient-failure handling that
34
+ // distinguishes an unknown state from an absent pull request.
35
+ resolvedOpenPrByUrl?: ReadonlyMap<string, RelatedPullRequest | null> | null;
30
36
  };
31
37
 
32
38
  export class IssueRejectionEvaluator {
@@ -53,26 +59,16 @@ export class IssueRejectionEvaluator {
53
59
  const rejections: { type: PrRejectedReasonType; detail: string }[] = [];
54
60
  let approvedPrUrl: string | null = null;
55
61
 
56
- const categoryLabels = issue.labels.filter((label) =>
57
- label.startsWith('category:'),
58
- );
59
- const hasLlmAgentLabel = issue.labels.some(
60
- (l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
61
- );
62
- const hasLabelNotRequiringPullRequest = issue.labels.some((label) =>
63
- labelsNotRequiringPullRequest.includes(label),
64
- );
65
-
66
62
  if (
67
- !hasLlmAgentLabel &&
68
- !hasLabelNotRequiringPullRequest &&
69
- this.isPullRequestRequiredByBody(issue.body) &&
70
- (categoryLabels.length <= 0 || categoryLabels.includes('category:e2e'))
63
+ this.requiresPullRequestEvaluation(issue, labelsNotRequiringPullRequest)
71
64
  ) {
72
65
  let prsToCheck: RelatedPullRequest[];
73
66
  let anyPrResolutionFailed = false;
74
67
  if (issue.isPr) {
75
- const resolved = await this.resolveOpenPrsForPrItem(issue.url);
68
+ const resolved = await this.resolveOpenPrsForPrItem(
69
+ issue.url,
70
+ options.resolvedOpenPrByUrl ?? null,
71
+ );
76
72
  if (resolved === null) {
77
73
  // getOpenPullRequest failed transiently: the PR's state is unknown
78
74
  // for this cycle, so skip it without emitting any rejection.
@@ -82,6 +78,7 @@ export class IssueRejectionEvaluator {
82
78
  } else if (options.relatedOpenPrUrls != null) {
83
79
  const resolved = await this.resolveOpenPrsFromUrls(
84
80
  options.relatedOpenPrUrls,
81
+ options.resolvedOpenPrByUrl ?? null,
85
82
  );
86
83
  prsToCheck = resolved.prs;
87
84
  anyPrResolutionFailed = resolved.anyResolutionFailed;
@@ -185,12 +182,41 @@ export class IssueRejectionEvaluator {
185
182
  return { rejections, approvedPrUrl };
186
183
  };
187
184
 
185
+ // Whether this item's pull requests are looked at at all. A caller that
186
+ // resolves pull request state in one batch for a whole cycle asks this first,
187
+ // so the batch covers exactly the items evaluate would have resolved.
188
+ requiresPullRequestEvaluation = (
189
+ issue: { labels: string[]; body?: string | null },
190
+ labelsNotRequiringPullRequest: string[] = [],
191
+ ): boolean => {
192
+ const categoryLabels = issue.labels.filter((label) =>
193
+ label.startsWith('category:'),
194
+ );
195
+ const hasLlmAgentLabel = issue.labels.some(
196
+ (l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
197
+ );
198
+ const hasLabelNotRequiringPullRequest = issue.labels.some((label) =>
199
+ labelsNotRequiringPullRequest.includes(label),
200
+ );
201
+ return (
202
+ !hasLlmAgentLabel &&
203
+ !hasLabelNotRequiringPullRequest &&
204
+ this.isPullRequestRequiredByBody(issue.body) &&
205
+ (categoryLabels.length <= 0 || categoryLabels.includes('category:e2e'))
206
+ );
207
+ };
208
+
188
209
  // Returns null when getOpenPullRequest throws (e.g. a transient GitHub
189
210
  // GraphQL server error): the PR's state is unknown for this cycle and the
190
211
  // caller skips it instead of letting the error abort the schedule cycle.
191
212
  private resolveOpenPrsForPrItem = async (
192
213
  prUrl: string,
214
+ resolvedOpenPrByUrl: ReadonlyMap<string, RelatedPullRequest | null> | null,
193
215
  ): Promise<RelatedPullRequest[] | null> => {
216
+ if (resolvedOpenPrByUrl?.has(prUrl)) {
217
+ const alreadyResolved = resolvedOpenPrByUrl.get(prUrl) ?? null;
218
+ return alreadyResolved === null ? [] : [alreadyResolved];
219
+ }
194
220
  let pr: RelatedPullRequest | null;
195
221
  try {
196
222
  pr = await this.issueRepository.getOpenPullRequest(prUrl);
@@ -220,11 +246,19 @@ export class IssueRejectionEvaluator {
220
246
  // PULL_REQUEST_NOT_FOUND.
221
247
  private resolveOpenPrsFromUrls = async (
222
248
  prUrls: string[],
249
+ resolvedOpenPrByUrl: ReadonlyMap<string, RelatedPullRequest | null> | null,
223
250
  ): Promise<{ prs: RelatedPullRequest[]; anyResolutionFailed: boolean }> => {
224
251
  const uniquePrUrls = Array.from(new Set(prUrls));
225
252
  const resolvedPrs: RelatedPullRequest[] = [];
226
253
  let anyResolutionFailed = false;
227
254
  for (const prUrl of uniquePrUrls) {
255
+ if (resolvedOpenPrByUrl?.has(prUrl)) {
256
+ const alreadyResolved = resolvedOpenPrByUrl.get(prUrl) ?? null;
257
+ if (alreadyResolved !== null) {
258
+ resolvedPrs.push(alreadyResolved);
259
+ }
260
+ continue;
261
+ }
228
262
  let pr: RelatedPullRequest | null;
229
263
  try {
230
264
  pr = await this.issueRepository.getOpenPullRequest(prUrl);
@@ -160,6 +160,7 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
160
160
  updateStory: jest.Mock;
161
161
  findRelatedOpenPRs: jest.Mock;
162
162
  getOpenPullRequest: jest.Mock;
163
+ getOpenPullRequests: jest.Mock;
163
164
  getPullRequestChangedFilePaths: jest.Mock;
164
165
  approvePullRequest: jest.Mock;
165
166
  requestChangesWithInlineComment: jest.Mock;
@@ -191,6 +192,7 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
191
192
  updateStory: jest.fn().mockResolvedValue(undefined),
192
193
  findRelatedOpenPRs: jest.fn().mockResolvedValue([]),
193
194
  getOpenPullRequest: jest.fn().mockResolvedValue(null),
195
+ getOpenPullRequests: jest.fn().mockResolvedValue(new Map()),
194
196
  getPullRequestChangedFilePaths: jest.fn().mockResolvedValue([]),
195
197
  approvePullRequest: jest.fn().mockResolvedValue(undefined),
196
198
  requestChangesWithInlineComment: jest.fn().mockResolvedValue(undefined),
@@ -2200,4 +2202,156 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
2200
2202
  );
2201
2203
  });
2202
2204
  });
2205
+
2206
+ describe('batched pull request state resolution', () => {
2207
+ const projectUrl = 'https://github.com/users/user/projects/1';
2208
+
2209
+ const buildAwaitingQualityCheckBoard = (
2210
+ issueCount: number,
2211
+ ): { boardIssues: Issue[]; relatedPrs: RelatedPrLike[] } => {
2212
+ const boardIssues: Issue[] = [];
2213
+ const relatedPrs: RelatedPrLike[] = [];
2214
+ for (let index = 0; index < issueCount; index += 1) {
2215
+ const issueUrl = `https://github.com/user/repo/issues/${200 + index}`;
2216
+ const prUrl = `https://github.com/user/repo/pull/${300 + index}`;
2217
+ boardIssues.push(
2218
+ createMockIssue({
2219
+ url: issueUrl,
2220
+ number: 200 + index,
2221
+ itemId: `item-issue-${index}`,
2222
+ }),
2223
+ );
2224
+ boardIssues.push(
2225
+ createMockPullRequest({
2226
+ url: prUrl,
2227
+ number: 300 + index,
2228
+ itemId: `item-pr-${index}`,
2229
+ status: 'In Progress',
2230
+ closingIssueReferenceUrls: [issueUrl],
2231
+ }),
2232
+ );
2233
+ relatedPrs.push(createReadyPr(prUrl));
2234
+ }
2235
+ return { boardIssues, relatedPrs };
2236
+ };
2237
+
2238
+ const resolveBatchFrom = (relatedPrs: RelatedPrLike[]): void => {
2239
+ const prByUrl = new Map(relatedPrs.map((pr) => [pr.url, pr]));
2240
+ mockIssueRepository.getOpenPullRequests.mockImplementation(
2241
+ (prUrls: string[]) =>
2242
+ Promise.resolve(
2243
+ new Map(prUrls.map((prUrl) => [prUrl, prByUrl.get(prUrl) ?? null])),
2244
+ ),
2245
+ );
2246
+ };
2247
+
2248
+ it('resolves every related pull request in one batched call and makes no per-pull-request call', async () => {
2249
+ const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(3);
2250
+ mockIssueRepository.getAllIssues.mockResolvedValue({
2251
+ project: mockProject,
2252
+ issues: boardIssues,
2253
+ cacheUsed: false,
2254
+ });
2255
+ resolveBatchFrom(relatedPrs);
2256
+
2257
+ await useCase.run({
2258
+ projectUrl,
2259
+ manager: 'manager-user',
2260
+ allowedIssueAuthors: ['owner'],
2261
+ });
2262
+
2263
+ expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledTimes(1);
2264
+ expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledWith(
2265
+ relatedPrs.map((pr) => pr.url),
2266
+ );
2267
+ expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
2268
+ expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
2269
+ });
2270
+
2271
+ it('includes the unread pull requests in the same batched call', async () => {
2272
+ const unreadPrUrl = 'https://github.com/user/repo/pull/400';
2273
+ const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(1);
2274
+ mockIssueRepository.getAllIssues.mockResolvedValue({
2275
+ project: mockProject,
2276
+ issues: [
2277
+ ...boardIssues,
2278
+ createMockPullRequest({
2279
+ url: unreadPrUrl,
2280
+ number: 400,
2281
+ itemId: 'item-pr-unread',
2282
+ }),
2283
+ ],
2284
+ cacheUsed: false,
2285
+ });
2286
+ resolveBatchFrom([...relatedPrs, createReadyPr(unreadPrUrl)]);
2287
+
2288
+ await useCase.run({
2289
+ projectUrl,
2290
+ manager: 'manager-user',
2291
+ allowedIssueAuthors: ['owner'],
2292
+ });
2293
+
2294
+ expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledTimes(1);
2295
+ expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledWith([
2296
+ relatedPrs[0].url,
2297
+ unreadPrUrl,
2298
+ ]);
2299
+ expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
2300
+ });
2301
+
2302
+ it('falls back to the single pull request query only for a url the batch left unresolved', async () => {
2303
+ const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(2);
2304
+ const resolvedPr = relatedPrs[0];
2305
+ const omittedPr = relatedPrs[1];
2306
+ mockIssueRepository.getAllIssues.mockResolvedValue({
2307
+ project: mockProject,
2308
+ issues: boardIssues,
2309
+ cacheUsed: false,
2310
+ });
2311
+ mockIssueRepository.getOpenPullRequests.mockResolvedValue(
2312
+ new Map([[resolvedPr.url, resolvedPr]]),
2313
+ );
2314
+ mockIssueRepository.getOpenPullRequest.mockImplementation(
2315
+ (prUrl: string) =>
2316
+ Promise.resolve(prUrl === omittedPr.url ? omittedPr : null),
2317
+ );
2318
+
2319
+ await useCase.run({
2320
+ projectUrl,
2321
+ manager: 'manager-user',
2322
+ allowedIssueAuthors: ['owner'],
2323
+ });
2324
+
2325
+ expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledTimes(1);
2326
+ expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
2327
+ omittedPr.url,
2328
+ );
2329
+ expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
2330
+ });
2331
+
2332
+ it('reverts the issue whose pull request the batch resolved as absent', async () => {
2333
+ const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(1);
2334
+ mockIssueRepository.getAllIssues.mockResolvedValue({
2335
+ project: mockProject,
2336
+ issues: boardIssues,
2337
+ cacheUsed: false,
2338
+ });
2339
+ mockIssueRepository.getOpenPullRequests.mockResolvedValue(
2340
+ new Map([[relatedPrs[0].url, null]]),
2341
+ );
2342
+
2343
+ await useCase.run({
2344
+ projectUrl,
2345
+ manager: 'manager-user',
2346
+ allowedIssueAuthors: ['owner'],
2347
+ });
2348
+
2349
+ expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
2350
+ expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
2351
+ mockProject,
2352
+ expect.objectContaining({ url: boardIssues[0].url }),
2353
+ 'awaiting-workspace-id',
2354
+ );
2355
+ });
2356
+ });
2203
2357
  });
@@ -42,6 +42,7 @@ export class RevertNotReadyReviewQueueIssueUseCase {
42
42
  | 'updateStory'
43
43
  | 'findRelatedOpenPRs'
44
44
  | 'getOpenPullRequest'
45
+ | 'getOpenPullRequests'
45
46
  | 'getPullRequestChangedFilePaths'
46
47
  | 'approvePullRequest'
47
48
  | 'requestChangesWithInlineComment'
@@ -95,6 +96,34 @@ export class RevertNotReadyReviewQueueIssueUseCase {
95
96
  const relatedOpenPrUrlsByIssueUrl =
96
97
  this.buildRelatedOpenPrUrlsByIssueUrl(issues);
97
98
 
99
+ const unreadPullRequests = issues.filter(
100
+ (issue) => issue.status === DEFAULT_STATUS_NAME && issue.isPr,
101
+ );
102
+
103
+ const labelsNotRequiringPullRequest =
104
+ resolveLabelsNotRequiringPullRequest(params);
105
+ const willBeEvaluated = (item: Issue): boolean =>
106
+ isAuthorAuthorizedForAutoStatusCheck(item.author, allowedIssueAuthors) &&
107
+ this.issueRejectionEvaluator.requiresPullRequestEvaluation(
108
+ item,
109
+ labelsNotRequiringPullRequest,
110
+ );
111
+
112
+ const resolvedOpenPrByUrl = await this.issueRepository.getOpenPullRequests(
113
+ Array.from(
114
+ new Set([
115
+ ...awaitingQualityCheckIssues
116
+ .filter(willBeEvaluated)
117
+ .flatMap(
118
+ (issue) => relatedOpenPrUrlsByIssueUrl.get(issue.url) ?? [],
119
+ ),
120
+ ...unreadPullRequests
121
+ .filter(willBeEvaluated)
122
+ .map((pullRequest) => pullRequest.url),
123
+ ]),
124
+ ),
125
+ );
126
+
98
127
  for (const issue of awaitingQualityCheckIssues) {
99
128
  const hasLlmAgentLabel = issue.labels.some(
100
129
  (l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
@@ -113,10 +142,11 @@ export class RevertNotReadyReviewQueueIssueUseCase {
113
142
  const { rejections, approvedPrUrl } =
114
143
  await this.issueRejectionEvaluator.evaluate(
115
144
  issue,
116
- resolveLabelsNotRequiringPullRequest(params),
145
+ labelsNotRequiringPullRequest,
117
146
  {
118
147
  relatedOpenPrUrls:
119
148
  relatedOpenPrUrlsByIssueUrl.get(issue.url) ?? null,
149
+ resolvedOpenPrByUrl,
120
150
  },
121
151
  );
122
152
  if (
@@ -173,9 +203,6 @@ export class RevertNotReadyReviewQueueIssueUseCase {
173
203
  }
174
204
 
175
205
  const projectStory = project.story;
176
- const unreadPullRequests = issues.filter(
177
- (issue) => issue.status === DEFAULT_STATUS_NAME && issue.isPr,
178
- );
179
206
 
180
207
  for (const pullRequest of unreadPullRequests) {
181
208
  const hasLlmAgentLabel = pullRequest.labels.some(
@@ -197,7 +224,8 @@ export class RevertNotReadyReviewQueueIssueUseCase {
197
224
  try {
198
225
  const { rejections } = await this.issueRejectionEvaluator.evaluate(
199
226
  pullRequest,
200
- resolveLabelsNotRequiringPullRequest(params),
227
+ labelsNotRequiringPullRequest,
228
+ { resolvedOpenPrByUrl },
201
229
  );
202
230
  if (rejections.length > 0) {
203
231
  if (!pullRequest.assignees.includes(params.manager)) {
@@ -136,6 +136,9 @@ export interface IssueRepository {
136
136
  update: (issue: Issue, project: Project) => Promise<void>;
137
137
  findRelatedOpenPRs: (issueUrl: string) => Promise<RelatedPullRequest[]>;
138
138
  getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
139
+ getOpenPullRequests: (
140
+ prUrls: string[],
141
+ ) => Promise<Map<string, RelatedPullRequest | null>>;
139
142
  getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
140
143
  approvePullRequest: (prUrl: string) => Promise<void>;
141
144
  requestChangesWithInlineComment: (
@@ -91,6 +91,9 @@ export declare class ApiV3CheerioRestIssueRepository extends BaseGitHubRepositor
91
91
  getAllOpened: (project: Project) => Promise<Issue[]>;
92
92
  getStoryObjectMap: (project: Project) => Promise<StoryObjectMap>;
93
93
  getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
94
+ getOpenPullRequests: (prUrls: string[]) => Promise<Map<string, RelatedPullRequest | null>>;
95
+ private requireParsedPullRequest;
96
+ private fetchSlimPullRequestsInOneQuery;
94
97
  closePullRequest: (prUrl: string) => Promise<void>;
95
98
  closeIssueByUrl: (issueUrl: string, stateReason: "completed" | "not_planned") => Promise<void>;
96
99
  getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,4BAA4B,EAC5B,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAO7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EACL,KAAK,EAKN,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAC3D,eAAO,MAAM,gCAAgC,QAAgB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAkX3D,qBAAa,+BACX,SAAQ,oBACR,YAAW,eAAe;IAGxB,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACxE,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAChC,mBAAmB,EACjB,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,UAAU,GACV,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,cAAc,CACjB;IACD,QAAQ,CAAC,4BAA4B,EAAE,IAAI,CACzC,4BAA4B,EAC1B,mBAAmB,GACnB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,wBAAwB,GACxB,mBAAmB,CACtB;IACD,QAAQ,CAAC,2BAA2B,EAAE,IAAI,CACxC,2BAA2B,EAC3B,WAAW,GAAG,WAAW,CAC1B;IACD,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC;IACjE,QAAQ,CAAC,cAAc,EAAE,cAAc;IACvC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK;gBA/BZ,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,EAC/D,mBAAmB,EAAE,IAAI,CAChC,mBAAmB,EACjB,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,UAAU,GACV,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,cAAc,CACjB,EACQ,4BAA4B,EAAE,IAAI,CACzC,4BAA4B,EAC1B,mBAAmB,GACnB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,wBAAwB,GACxB,mBAAmB,CACtB,EACQ,2BAA2B,EAAE,IAAI,CACxC,2BAA2B,EAC3B,WAAW,GAAG,WAAW,CAC1B,EACQ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,EACxD,cAAc,EAAE,cAAc,EAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,GAAE,MAAwC,EACjD,KAAK,GAAE,KAAiB;IAQnC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+B;IAE5E,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAGpC;IAEJ,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAG3C;IAEJ,sBAAsB,GAAI,WAAW,OAAO,CAAC,IAAI,CAAC,KAAG,MAAM,GAAG,IAAI,CACL;IAE7D,OAAO,CAAC,uBAAuB,CAE4C;IAE3E,YAAY,EAAE,CACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAOhB;IAEF,yBAAyB,GAAI,MAAM,WAAW,KAAG,KAAK,CAyDpD;IACF,OAAO,CAAC,sBAAsB,CA+C5B;IAEF,OAAO,CAAC,uBAAuB,CA8B7B;IAMF,gBAAgB,GACd,WAAW,OAAO,CAAC,IAAI,CAAC,KACvB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CACiC;IAE3D,OAAO,CAAC,YAAY,CAC0G;IAE9H,YAAY,GACV,WAAW,OAAO,CAAC,IAAI,CAAC,KACvB,OAAO,CAAC;QACT,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAQA;IAEF,OAAO,CAAC,gBAAgB,CAiEtB;IACF,cAAc,GACZ,KAAK,MAAM,EACX,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,WAAW,MAAM,EAAE,EACnB,QAAQ,MAAM,EAAE,KACf,OAAO,CAAC,MAAM,CAAC,CAShB;IACF,WAAW,GAAU,OAAO;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CACT;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CACJ,CAEC;IACF,WAAW,GAAU,OAAO,KAAK,KAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IACF,aAAa,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAOxD;IACF,iBAAiB,GACf,SAAS,OAAO,EAChB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAKd;IACF,mBAAmB,GACjB,OAAO,MAAM,EACb,SAAS,OAAO,EAChB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CA4Bd;IAEF,oBAAoB,GAClB,UAAU,MAAM,EAChB,SAAS,OAAO,EAChB,MAAM,IAAI,EACV,gBAAgB,MAAM,KACrB,OAAO,CAAC,IAAI,CAAC,CAyBd;IACF,oBAAoB,GAClB,SAAS,OAAO,GAAG;QACjB,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;KACxD,EACD,OAAO,KAAK,EACZ,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAOd;IACF,WAAW,GACT,SAAS,OAAO,GAAG;QAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE,EAC3D,OAAO,KAAK,EACZ,eAAe,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAOd;IACF,iBAAiB,GACf,SAAS,OAAO,EAChB,SAAS,MAAM,EACf,OAAO,KAAK,KACX,OAAO,CAAC,IAAI,CAAC,CAOd;IACF,aAAa,GAAU,OAAO,KAAK,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAElE;IACF,sBAAsB,GACpB,SAAS,OAAO,EAChB,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAOd;IAEF,YAAY,GAAI,OAAO,KAAK,EAAE,QAAQ,KAAK,CAAC,QAAQ,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IACF,WAAW,GAAI,OAAO,KAAK,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IACF,kBAAkB,GAChB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC,EAC7C,cAAc,MAAM,CAAC,MAAM,CAAC,EAAE,KAC7B,OAAO,CAAC,IAAI,CAAC,CAEd;IACF,YAAY,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAEtD;IACF,GAAG,GAAU,UAAU,MAAM,EAAE,SAAS,OAAO,KAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAUrE;IACF,MAAM,GAAU,OAAO,KAAK,EAAE,UAAU,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;IACF,OAAO,CAAC,aAAa,CAoBnB;IAEF,OAAO,CAAC,eAAe,CA6FrB;IAEF,OAAO,CAAC,qCAAqC,CAkB3C;IAEF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAGpC;IAEJ,OAAO,CAAC,qBAAqB,CA+F3B;IAEF,OAAO,CAAC,mBAAmB,CA8FzB;IAEF,OAAO,CAAC,oBAAoB,CAsF1B;IAEF,OAAO,CAAC,+BAA+B,CA0BrC;IAEF,OAAO,CAAC,4BAA4B,CA0ElC;IAEF,kBAAkB,GAChB,UAAU,MAAM,KACf,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4L9B;IAEF,YAAY,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAGvD;IAEF,iBAAiB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,cAAc,CAAC,CAmBnE;IAEF,kBAAkB,GAChB,OAAO,MAAM,KACZ,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAiBnC;IAEF,gBAAgB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAmBrD;IAEF,eAAe,GACb,UAAU,MAAM,EAChB,aAAa,WAAW,GAAG,aAAa,KACvC,OAAO,CAAC,IAAI,CAAC,CAqBd;IAEF,8BAA8B,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyCvE;IAEF,kBAAkB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD;IAEF,+BAA+B,GAC7B,OAAO,MAAM,EACb,iBAAiB,MAAM,GAAG,IAAI,EAC9B,aAAa,MAAM,EACnB,wBAAuB,+BAA+B,GAAG,IAAW,KACnE,OAAO,CAAC,IAAI,CAAC,CAkDd;IAEF,OAAO,CAAC,mCAAmC,CAiBzC;IAEF,OAAO,CAAC,uBAAuB,CAmC7B;IAEF,8BAA8B,GAC5B,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,4BAA4B,EAClC,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAoCd;IAEF,OAAO,CAAC,qBAAqB,CA8B3B;IAEF,OAAO,CAAC,2BAA2B,CAmBjC;IAEF,uBAAuB,GACrB,OAAO,MAAM,EACb,YAAY,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAmBd;IAEF,kBAAkB,GAChB,cAAc,MAAM,EACpB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAEd;IAEF,yBAAyB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAyB9D;IAEF,6BAA6B,GAC3B,KAAK,MAAM,KACV,OAAO,CAAC,YAAY,EAAE,CAAC,CA2CxB;IAEF,oBAAoB,GAClB,OAAO,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmDlC;IAEF,OAAO,CAAC,qBAAqB,CAqD3B;IAEF,qBAAqB,GACnB,OAAO,MAAM,KACZ,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoD7B;IAEF,0BAA0B,GACxB,KAAK,MAAM,KACV,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CA4DA;IAEF,qBAAqB,GACnB,OAAO,MAAM,KACZ,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC,CAuCP;CACH"}
1
+ {"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvertCheckboxToIssueInStoryIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,yCAAyC;IAElD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;gBAPQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;IAGH,GAAG,GAAU,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,sCAAsC,EAAE,OAAO,CAAC;KACjD,KAAG,OAAO,CAAC,IAAI,CAAC,CAqGf;IACF,gCAAgC,GAC9B,MAAM,MAAM,EACZ,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CA8BP;IACF,kBAAkB,GAAI,gBAAgB,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,CAEtE;IACF,yBAAyB,GACvB,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CAQP;IACF,gCAAgC,GAAI,gBAAgB,MAAM,KAAG,MAAM,EAAE,CAcnE;CACH"}
1
+ {"version":3,"file":"ConvertCheckboxToIssueInStoryIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,yCAAyC;IAElD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;gBAPQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;IAGH,GAAG,GAAU,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,sCAAsC,EAAE,OAAO,CAAC;KACjD,KAAG,OAAO,CAAC,IAAI,CAAC,CAsGf;IACF,gCAAgC,GAC9B,MAAM,MAAM,EACZ,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CA8BP;IACF,kBAAkB,GAAI,gBAAgB,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,CAEtE;IACF,yBAAyB,GACvB,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CAQP;IACF,gCAAgC,GAAI,gBAAgB,MAAM,KAAG,MAAM,EAAE,CAcnE;CACH"}
@@ -1,4 +1,4 @@
1
- import { IssueRepository } from './adapter-interfaces/IssueRepository';
1
+ import { IssueRepository, RelatedPullRequest } from './adapter-interfaces/IssueRepository';
2
2
  export type PrRejectedReasonType = 'PULL_REQUEST_NOT_FOUND' | 'MULTIPLE_PULL_REQUESTS_FOUND' | 'PULL_REQUEST_IS_DRAFT' | 'PULL_REQUEST_CONFLICTED' | 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS' | 'REQUIRED_CI_JOB_NEVER_STARTED' | 'ANY_REVIEW_COMMENT_NOT_RESOLVED' | 'CHANGE_TARGET_MUST_PATH_NOT_CHANGED';
3
3
  export type PrRejectionResult = {
4
4
  rejections: {
@@ -9,6 +9,7 @@ export type PrRejectionResult = {
9
9
  };
10
10
  export type EvaluateOptions = {
11
11
  relatedOpenPrUrls?: string[] | null;
12
+ resolvedOpenPrByUrl?: ReadonlyMap<string, RelatedPullRequest | null> | null;
12
13
  };
13
14
  export declare class IssueRejectionEvaluator {
14
15
  private readonly issueRepository;
@@ -19,6 +20,10 @@ export declare class IssueRejectionEvaluator {
19
20
  isPr: boolean;
20
21
  body?: string | null;
21
22
  }, labelsNotRequiringPullRequest?: string[], options?: EvaluateOptions) => Promise<PrRejectionResult>;
23
+ requiresPullRequestEvaluation: (issue: {
24
+ labels: string[];
25
+ body?: string | null;
26
+ }, labelsNotRequiringPullRequest?: string[]) => boolean;
22
27
  private resolveOpenPrsForPrItem;
23
28
  private resolveOpenPrsFromUrls;
24
29
  private extractChangeTargetMustPaths;
@@ -1 +1 @@
1
- {"version":3,"file":"IssueRejectionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/IssueRejectionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAC5B,wBAAwB,GACxB,8BAA8B,GAC9B,uBAAuB,GACvB,yBAAyB,GACzB,kCAAkC,GAClC,+BAA+B,GAC/B,iCAAiC,GACjC,qCAAqC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE;QAAE,IAAI,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAQ5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,oBAAoB,GACpB,oBAAoB,GACpB,gCAAgC,GAChC,iCAAiC,CACpC;IAGH,QAAQ,GACN,OAAO;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EACD,gCAA+B,MAAM,EAAO,EAC5C,UAAS,eAAoB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CAsI3B;IAKF,OAAO,CAAC,uBAAuB,CAgB7B;IAcF,OAAO,CAAC,sBAAsB,CAsB5B;IAEF,OAAO,CAAC,4BAA4B,CAYlC;IAEF,OAAO,CAAC,mBAAmB,CAIwC;IAEnE,OAAO,CAAC,2BAA2B,CAejC;CACH"}
1
+ {"version":3,"file":"IssueRejectionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/IssueRejectionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAC5B,wBAAwB,GACxB,8BAA8B,GAC9B,uBAAuB,GACvB,yBAAyB,GACzB,kCAAkC,GAClC,+BAA+B,GAC/B,iCAAiC,GACjC,qCAAqC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE;QAAE,IAAI,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAQ5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAMpC,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7E,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,oBAAoB,GACpB,oBAAoB,GACpB,gCAAgC,GAChC,iCAAiC,CACpC;IAGH,QAAQ,GACN,OAAO;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EACD,gCAA+B,MAAM,EAAO,EAC5C,UAAS,eAAoB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CA6H3B;IAKF,6BAA6B,GAC3B,OAAO;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACjD,gCAA+B,MAAM,EAAO,KAC3C,OAAO,CAgBR;IAKF,OAAO,CAAC,uBAAuB,CAqB7B;IAcF,OAAO,CAAC,sBAAsB,CA8B5B;IAEF,OAAO,CAAC,4BAA4B,CAYlC;IAEF,OAAO,CAAC,mBAAmB,CAIwC;IAEnE,OAAO,CAAC,2BAA2B,CAejC;CACH"}
@@ -7,7 +7,7 @@ export declare class RevertNotReadyReviewQueueIssueUseCase {
7
7
  private readonly issueCommentRepository;
8
8
  private readonly issueRejectionEvaluator;
9
9
  private readonly changeTargetPullRequestApprover;
10
- constructor(projectRepository: Pick<ProjectRepository, 'findProjectIdByUrl' | 'getProject'>, issueRepository: Pick<IssueRepository, 'getAllIssues' | 'updateStatus' | 'updateStory' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment'>, issueCommentRepository: Pick<IssueCommentRepository, 'createComment' | 'getCommentsFromIssue'>);
10
+ constructor(projectRepository: Pick<ProjectRepository, 'findProjectIdByUrl' | 'getProject'>, issueRepository: Pick<IssueRepository, 'getAllIssues' | 'updateStatus' | 'updateStory' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'getOpenPullRequests' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment'>, issueCommentRepository: Pick<IssueCommentRepository, 'createComment' | 'getCommentsFromIssue'>);
11
11
  run: (params: {
12
12
  projectUrl: string;
13
13
  manager: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RevertNotReadyReviewQueueIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAyBrF,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAWhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAnBzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,cAAc,GACd,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,CACpC,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,eAAe,GAAG,sBAAsB,CACzC;IAQH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACxD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACvC,KAAG,OAAO,CAAC,IAAI,CAAC,CAgLf;IAQF,OAAO,CAAC,gCAAgC,CAsBtC;CACH"}
1
+ {"version":3,"file":"RevertNotReadyReviewQueueIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAyBrF,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAYhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IApBzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,cAAc,GACd,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,GACrB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,CACpC,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,eAAe,GAAG,sBAAsB,CACzC;IAQH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACxD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACvC,KAAG,OAAO,CAAC,IAAI,CAAC,CA2Mf;IAQF,OAAO,CAAC,gCAAgC,CAsBtC;CACH"}
@@ -94,6 +94,7 @@ export interface IssueRepository {
94
94
  update: (issue: Issue, project: Project) => Promise<void>;
95
95
  findRelatedOpenPRs: (issueUrl: string) => Promise<RelatedPullRequest[]>;
96
96
  getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
97
+ getOpenPullRequests: (prUrls: string[]) => Promise<Map<string, RelatedPullRequest | null>>;
97
98
  getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
98
99
  approvePullRequest: (prUrl: string) => Promise<void>;
99
100
  requestChangesWithInlineComment: (prUrl: string, changedFilePath: string | null, commentBody: string, inlineCommentLocation?: PullRequestReviewInlineLocation | null) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2BAA2B,EAAE,OAAO,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5D,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,4BAA4B,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CACZ,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KACrB,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACxE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACtD,cAAc,EAAE,CACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAC3B,MAAM,EAAE,KAAK,EAAE,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,KAAK,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CACX;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CACJ,CAAC;IACF,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,oBAAoB,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,oBAAoB,EAAE,CACpB,OAAO,EAAE,OAAO,GAAG;QACjB,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;KACxD,EACD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,sBAAsB,EAAE,CACtB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CACX,OAAO,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE,EAC3D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,CACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,iBAAiB,EAAE,CACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,KACT,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,kBAAkB,EAAE,CAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC,EAC7C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1D,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC1E,mBAAmB,EAAE,CACnB,MAAM,EAAE,MAAM,EAAE,KACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,+BAA+B,EAAE,CAC/B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,WAAW,EAAE,MAAM,EACnB,qBAAqB,CAAC,EAAE,+BAA+B,GAAG,IAAI,KAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,8BAA8B,EAAE,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,4BAA4B,EAClC,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,eAAe,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,aAAa,KACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,kBAAkB,EAAE,CAClB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,mBAAmB,EAAE,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,yBAAyB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,6BAA6B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC3E,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACvE,0BAA0B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QACnD,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAChD,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC,CAAC;CACX"}