github-issue-tower-defence-management 1.148.13 → 1.148.15
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 +14 -0
- package/bin/adapter/entry-points/console/ui-dist/assets/index-DY-3a7sI.js +82 -0
- package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js +2 -1
- package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js.map +1 -1
- package/bin/domain/usecases/IssueRejectionEvaluator.js +20 -0
- package/bin/domain/usecases/IssueRejectionEvaluator.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/package.json +2 -2
- package/src/adapter/entry-points/console/ui-dist/assets/index-DY-3a7sI.js +82 -0
- package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +72 -0
- package/src/adapter/repositories/issue/GraphqlProjectItemRepository.ts +6 -1
- package/src/domain/usecases/IssueRejectionEvaluator.test.ts +119 -0
- package/src/domain/usecases/IssueRejectionEvaluator.ts +19 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +6 -1
- package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts.map +1 -1
- package/types/domain/usecases/IssueRejectionEvaluator.d.ts +2 -0
- package/types/domain/usecases/IssueRejectionEvaluator.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/index-J8xXGaD4.js +0 -82
- package/src/adapter/entry-points/console/ui-dist/assets/index-J8xXGaD4.js +0 -82
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>TDPM Console</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DY-3a7sI.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-Dihcph6j.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -186,6 +186,78 @@ describe('GraphqlProjectItemRepository', () => {
|
|
|
186
186
|
expect(sentQuery).not.toContain('assignees(first: 20)');
|
|
187
187
|
});
|
|
188
188
|
|
|
189
|
+
it('requests body field in the Issue content fragment of the GraphQL query', async () => {
|
|
190
|
+
const repository = new GraphqlProjectItemRepository(
|
|
191
|
+
new LocalStorageRepository(),
|
|
192
|
+
'dummy-token',
|
|
193
|
+
);
|
|
194
|
+
mockPost.mockReturnValueOnce(makePageResponse(false, 'cursor-1', 1));
|
|
195
|
+
|
|
196
|
+
await repository.fetchProjectItems('test-project-id');
|
|
197
|
+
|
|
198
|
+
const sentQuery = extractRequestedQueryFromMockCall(
|
|
199
|
+
mockPost.mock.calls[0],
|
|
200
|
+
);
|
|
201
|
+
expect(sentQuery).toContain('body');
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
it('maps body from Issue content node to ProjectItem.body', async () => {
|
|
205
|
+
const repository = new GraphqlProjectItemRepository(
|
|
206
|
+
new LocalStorageRepository(),
|
|
207
|
+
'dummy-token',
|
|
208
|
+
);
|
|
209
|
+
mockPost.mockReturnValueOnce(makePageResponse(false, 'cursor-1', 1));
|
|
210
|
+
|
|
211
|
+
const result = await repository.fetchProjectItems('test-project-id');
|
|
212
|
+
|
|
213
|
+
expect(result).toHaveLength(1);
|
|
214
|
+
expect(result[0].body).toBe('body');
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
it('sets ProjectItem.body to null when content node has no body', async () => {
|
|
218
|
+
const repository = new GraphqlProjectItemRepository(
|
|
219
|
+
new LocalStorageRepository(),
|
|
220
|
+
'dummy-token',
|
|
221
|
+
);
|
|
222
|
+
mockPost.mockReturnValueOnce(
|
|
223
|
+
mockJsonResponse({
|
|
224
|
+
data: {
|
|
225
|
+
node: {
|
|
226
|
+
items: {
|
|
227
|
+
totalCount: 1,
|
|
228
|
+
pageInfo: {
|
|
229
|
+
endCursor: 'cursor-1',
|
|
230
|
+
startCursor: 'cursor-start',
|
|
231
|
+
hasNextPage: false,
|
|
232
|
+
},
|
|
233
|
+
nodes: [
|
|
234
|
+
{
|
|
235
|
+
id: 'item-1',
|
|
236
|
+
fieldValues: { nodes: [] },
|
|
237
|
+
content: {
|
|
238
|
+
repository: { nameWithOwner: 'owner/repo' },
|
|
239
|
+
number: 1,
|
|
240
|
+
title: 'No Body Issue',
|
|
241
|
+
state: 'OPEN',
|
|
242
|
+
url: 'https://github.com/owner/repo/issues/1',
|
|
243
|
+
createdAt: '2024-01-01T00:00:00Z',
|
|
244
|
+
labels: { nodes: [] },
|
|
245
|
+
assignees: { nodes: [] },
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
}),
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
const result = await repository.fetchProjectItems('test-project-id');
|
|
256
|
+
|
|
257
|
+
expect(result).toHaveLength(1);
|
|
258
|
+
expect(result[0].body).toBeNull();
|
|
259
|
+
});
|
|
260
|
+
|
|
189
261
|
it('logs the rateLimit cost of the request in one line', async () => {
|
|
190
262
|
const repository = new GraphqlProjectItemRepository(
|
|
191
263
|
new LocalStorageRepository(),
|
|
@@ -43,6 +43,7 @@ type ProjectV2ItemContentNode = {
|
|
|
43
43
|
title: string;
|
|
44
44
|
state: string;
|
|
45
45
|
url: string;
|
|
46
|
+
body?: string | null;
|
|
46
47
|
createdAt: string;
|
|
47
48
|
updatedAt: string;
|
|
48
49
|
author: { login: string } | null;
|
|
@@ -120,6 +121,7 @@ const PROJECT_V2_ITEM_FIELD_VALUES_AND_CONTENT_SELECTION = `
|
|
|
120
121
|
title
|
|
121
122
|
state
|
|
122
123
|
url
|
|
124
|
+
body
|
|
123
125
|
createdAt
|
|
124
126
|
updatedAt
|
|
125
127
|
author {
|
|
@@ -396,6 +398,7 @@ query GetProjectItems($projectId: ID!, $after: String, $first: Int!, $query: Str
|
|
|
396
398
|
title: string;
|
|
397
399
|
state: string;
|
|
398
400
|
url: string;
|
|
401
|
+
body?: string | null;
|
|
399
402
|
createdAt: string;
|
|
400
403
|
updatedAt: string;
|
|
401
404
|
author: { login: string } | null;
|
|
@@ -445,6 +448,7 @@ query GetProjectItems($projectId: ID!, $after: String, $first: Int!, $query: Str
|
|
|
445
448
|
title: string;
|
|
446
449
|
state: string;
|
|
447
450
|
url: string;
|
|
451
|
+
body?: string | null;
|
|
448
452
|
createdAt: string;
|
|
449
453
|
updatedAt: string;
|
|
450
454
|
author: { login: string } | null;
|
|
@@ -507,6 +511,7 @@ query GetProjectItems($projectId: ID!, $after: String, $first: Int!, $query: Str
|
|
|
507
511
|
title: string;
|
|
508
512
|
state: string;
|
|
509
513
|
url: string;
|
|
514
|
+
body?: string | null;
|
|
510
515
|
createdAt: string;
|
|
511
516
|
updatedAt: string;
|
|
512
517
|
author: { login: string } | null;
|
|
@@ -612,7 +617,7 @@ query GetProjectItems($projectId: ID!, $after: String, $first: Int!, $query: Str
|
|
|
612
617
|
title: item.content.title,
|
|
613
618
|
state: this.convertStrToState(item.content.state),
|
|
614
619
|
url: item.content.url,
|
|
615
|
-
body: null,
|
|
620
|
+
body: item.content.body ?? null,
|
|
616
621
|
labels: item.content.labels?.nodes?.map((l) => l.name) || [],
|
|
617
622
|
assignees: item.content.assignees?.nodes?.map((a) => a.login) || [],
|
|
618
623
|
createdAt: item.content.createdAt || new Date().toISOString(),
|
|
@@ -542,6 +542,125 @@ describe('IssueRejectionEvaluator', () => {
|
|
|
542
542
|
});
|
|
543
543
|
});
|
|
544
544
|
|
|
545
|
+
describe('pullRequestRequired: false in issue body', () => {
|
|
546
|
+
it('should not reject and not call findRelatedOpenPRs when body ends with JSON block containing pullRequestRequired: false', async () => {
|
|
547
|
+
const body = '```json\n{"pullRequestRequired": false}\n```';
|
|
548
|
+
|
|
549
|
+
const result = await evaluator.evaluate({
|
|
550
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
551
|
+
labels: [],
|
|
552
|
+
isPr: false,
|
|
553
|
+
body,
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
|
|
557
|
+
expect(result.rejections).toHaveLength(0);
|
|
558
|
+
expect(result.approvedPrUrl).toBeNull();
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
it('should not reject even with trailing whitespace after the closing JSON block', async () => {
|
|
562
|
+
const body = '```json\n{"pullRequestRequired": false}\n```\n ';
|
|
563
|
+
|
|
564
|
+
const result = await evaluator.evaluate({
|
|
565
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
566
|
+
labels: [],
|
|
567
|
+
isPr: false,
|
|
568
|
+
body,
|
|
569
|
+
});
|
|
570
|
+
|
|
571
|
+
expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
|
|
572
|
+
expect(result.rejections).toHaveLength(0);
|
|
573
|
+
});
|
|
574
|
+
|
|
575
|
+
it('should still require PR when body has pullRequestRequired: true', async () => {
|
|
576
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
577
|
+
const body = '```json\n{"pullRequestRequired": true}\n```';
|
|
578
|
+
|
|
579
|
+
const result = await evaluator.evaluate({
|
|
580
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
581
|
+
labels: [],
|
|
582
|
+
isPr: false,
|
|
583
|
+
body,
|
|
584
|
+
});
|
|
585
|
+
|
|
586
|
+
expect(result.rejections).toHaveLength(1);
|
|
587
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
588
|
+
});
|
|
589
|
+
|
|
590
|
+
it('should still require PR when body is null', async () => {
|
|
591
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
592
|
+
|
|
593
|
+
const result = await evaluator.evaluate({
|
|
594
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
595
|
+
labels: [],
|
|
596
|
+
isPr: false,
|
|
597
|
+
body: null,
|
|
598
|
+
});
|
|
599
|
+
|
|
600
|
+
expect(result.rejections).toHaveLength(1);
|
|
601
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
602
|
+
});
|
|
603
|
+
|
|
604
|
+
it('should still require PR when body is undefined', async () => {
|
|
605
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
606
|
+
|
|
607
|
+
const result = await evaluator.evaluate({
|
|
608
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
609
|
+
labels: [],
|
|
610
|
+
isPr: false,
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
expect(result.rejections).toHaveLength(1);
|
|
614
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
615
|
+
});
|
|
616
|
+
|
|
617
|
+
it('should still require PR when JSON block with pullRequestRequired: false is not at end of body', async () => {
|
|
618
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
619
|
+
const body =
|
|
620
|
+
'```json\n{"pullRequestRequired": false}\n```\n\nsome text after';
|
|
621
|
+
|
|
622
|
+
const result = await evaluator.evaluate({
|
|
623
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
624
|
+
labels: [],
|
|
625
|
+
isPr: false,
|
|
626
|
+
body,
|
|
627
|
+
});
|
|
628
|
+
|
|
629
|
+
expect(result.rejections).toHaveLength(1);
|
|
630
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
it('should still require PR when body has invalid JSON in code block', async () => {
|
|
634
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
635
|
+
const body = '```json\n{invalid json}\n```';
|
|
636
|
+
|
|
637
|
+
const result = await evaluator.evaluate({
|
|
638
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
639
|
+
labels: [],
|
|
640
|
+
isPr: false,
|
|
641
|
+
body,
|
|
642
|
+
});
|
|
643
|
+
|
|
644
|
+
expect(result.rejections).toHaveLength(1);
|
|
645
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
646
|
+
});
|
|
647
|
+
|
|
648
|
+
it('should still require PR when body has pullRequestRequired not set to false', async () => {
|
|
649
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
650
|
+
const body = '```json\n{"someOtherField": true}\n```';
|
|
651
|
+
|
|
652
|
+
const result = await evaluator.evaluate({
|
|
653
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
654
|
+
labels: [],
|
|
655
|
+
isPr: false,
|
|
656
|
+
body,
|
|
657
|
+
});
|
|
658
|
+
|
|
659
|
+
expect(result.rejections).toHaveLength(1);
|
|
660
|
+
expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
|
|
661
|
+
});
|
|
662
|
+
});
|
|
663
|
+
|
|
545
664
|
describe('change-target-must: label behavior', () => {
|
|
546
665
|
const prUrl = 'https://github.com/user/repo/pull/1';
|
|
547
666
|
|
|
@@ -45,6 +45,7 @@ export class IssueRejectionEvaluator {
|
|
|
45
45
|
url: string;
|
|
46
46
|
labels: string[];
|
|
47
47
|
isPr: boolean;
|
|
48
|
+
body?: string | null;
|
|
48
49
|
},
|
|
49
50
|
labelsNotRequiringPullRequest: string[] = [],
|
|
50
51
|
options: EvaluateOptions = {},
|
|
@@ -65,6 +66,7 @@ export class IssueRejectionEvaluator {
|
|
|
65
66
|
if (
|
|
66
67
|
!hasLlmAgentLabel &&
|
|
67
68
|
!hasLabelNotRequiringPullRequest &&
|
|
69
|
+
this.isPullRequestRequiredByBody(issue.body) &&
|
|
68
70
|
(categoryLabels.length <= 0 || categoryLabels.includes('category:e2e'))
|
|
69
71
|
) {
|
|
70
72
|
let prsToCheck: RelatedPullRequest[];
|
|
@@ -259,4 +261,21 @@ export class IssueRejectionEvaluator {
|
|
|
259
261
|
targetPath: string,
|
|
260
262
|
): boolean =>
|
|
261
263
|
filePath === targetPath || filePath.startsWith(`${targetPath}/`);
|
|
264
|
+
|
|
265
|
+
private isPullRequestRequiredByBody = (
|
|
266
|
+
body: string | null | undefined,
|
|
267
|
+
): boolean => {
|
|
268
|
+
if (!body) return true;
|
|
269
|
+
const match = body.trimEnd().match(/```json\n([\s\S]*?)\n```\s*$/);
|
|
270
|
+
if (!match || !match[1]) return true;
|
|
271
|
+
let config: unknown;
|
|
272
|
+
try {
|
|
273
|
+
config = JSON.parse(match[1]);
|
|
274
|
+
} catch {
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
if (typeof config !== 'object' || config === null) return true;
|
|
278
|
+
if (!('pullRequestRequired' in config)) return true;
|
|
279
|
+
return Reflect.get(config, 'pullRequestRequired') !== false;
|
|
280
|
+
};
|
|
262
281
|
}
|
|
@@ -287,7 +287,12 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
287
287
|
allowedIssueAuthors === null || allowedIssueAuthors.includes(author);
|
|
288
288
|
|
|
289
289
|
private collectRejections = async (
|
|
290
|
-
issue: {
|
|
290
|
+
issue: {
|
|
291
|
+
url: string;
|
|
292
|
+
labels: string[];
|
|
293
|
+
isPr: boolean;
|
|
294
|
+
body?: string | null;
|
|
295
|
+
},
|
|
291
296
|
comments: { author: string; content: string }[],
|
|
292
297
|
isTrustedAuthor: (author: string) => boolean,
|
|
293
298
|
labelsNotRequiringPullRequest: string[],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphqlProjectItemRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/GraphqlProjectItemRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EAAE,CAAC;CACL,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphqlProjectItemRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/GraphqlProjectItemRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,12 @@ export declare class IssueRejectionEvaluator {
|
|
|
17
17
|
url: string;
|
|
18
18
|
labels: string[];
|
|
19
19
|
isPr: boolean;
|
|
20
|
+
body?: string | null;
|
|
20
21
|
}, labelsNotRequiringPullRequest?: string[], options?: EvaluateOptions) => Promise<PrRejectionResult>;
|
|
21
22
|
private resolveOpenPrsForPrItem;
|
|
22
23
|
private resolveOpenPrsFromUrls;
|
|
23
24
|
private extractChangeTargetMustPaths;
|
|
24
25
|
private isFilePathUnderPath;
|
|
26
|
+
private isPullRequestRequiredByBody;
|
|
25
27
|
}
|
|
26
28
|
//# sourceMappingURL=IssueRejectionEvaluator.d.ts.map
|
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAe3E,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AAID,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAahC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAtBpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,KAAK,GACL,QAAQ,GACR,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,GACjC,qBAAqB,CACxB,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACgB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,gBAAgB,CACjB;IAQH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACtC,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;KACzD,KAAG,OAAO,CAAC,IAAI,CAAC,CAsMf;IAEF,OAAO,CAAC,eAAe,CAIgD;IAEvE,OAAO,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAe3E,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AAID,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAahC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAtBpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,KAAK,GACL,QAAQ,GACR,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,GACjC,qBAAqB,CACxB,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACgB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,gBAAgB,CACjB;IAQH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACtC,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;KACzD,KAAG,OAAO,CAAC,IAAI,CAAC,CAsMf;IAEF,OAAO,CAAC,eAAe,CAIgD;IAEvE,OAAO,CAAC,iBAAiB,CAkDvB;IAEF,OAAO,CAAC,qBAAqB,CAuB3B;IAEF,OAAO,CAAC,gCAAgC,CAoBtC;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,+BAA+B,CAgCrC;CACH"}
|