github-issue-tower-defence-management 2.12.1 → 2.14.0

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 (50) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/adapter/entry-points/console/ui-dist/assets/{index-D6QOQvoN.js → index-BTFgj8n5.js} +31 -31
  3. package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
  4. package/bin/domain/usecases/ActionAnnouncementUseCase.js +4 -2
  5. package/bin/domain/usecases/ActionAnnouncementUseCase.js.map +1 -1
  6. package/bin/domain/usecases/AnalyzeStoriesUseCase.js +1 -1
  7. package/bin/domain/usecases/AnalyzeStoriesUseCase.js.map +1 -1
  8. package/bin/domain/usecases/CliErrorReportUseCase.js +1 -1
  9. package/bin/domain/usecases/CliErrorReportUseCase.js.map +1 -1
  10. package/bin/domain/usecases/CreateEstimationIssueUseCase.js +2 -1
  11. package/bin/domain/usecases/CreateEstimationIssueUseCase.js.map +1 -1
  12. package/bin/domain/usecases/DailySecurityScanUseCase.js +3 -3
  13. package/bin/domain/usecases/DailySecurityScanUseCase.js.map +1 -1
  14. package/bin/domain/usecases/HandleScheduledEventUseCase.js +3 -3
  15. package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
  16. package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +4 -0
  17. package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
  18. package/bin/domain/usecases/SubscriptionDisabledIssueUseCase.js +1 -1
  19. package/bin/domain/usecases/SubscriptionDisabledIssueUseCase.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.stories.tsx +115 -0
  22. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.test.tsx +262 -0
  23. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.tsx +123 -0
  24. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleActionQueue.test.ts +283 -0
  25. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleActionQueue.ts +146 -4
  26. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.ts +28 -1
  27. package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +2 -2
  28. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.tsx +103 -1
  29. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +128 -0
  30. package/src/adapter/entry-points/console/ui-dist/assets/{index-D6QOQvoN.js → index-BTFgj8n5.js} +31 -31
  31. package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
  32. package/src/domain/usecases/ActionAnnouncementUseCase.test.ts +91 -0
  33. package/src/domain/usecases/ActionAnnouncementUseCase.ts +4 -2
  34. package/src/domain/usecases/AnalyzeStoriesUseCase.test.ts +2 -0
  35. package/src/domain/usecases/AnalyzeStoriesUseCase.ts +1 -1
  36. package/src/domain/usecases/CliErrorReportUseCase.test.ts +11 -0
  37. package/src/domain/usecases/CliErrorReportUseCase.ts +1 -1
  38. package/src/domain/usecases/CreateEstimationIssueUseCase.test.ts +2 -0
  39. package/src/domain/usecases/CreateEstimationIssueUseCase.ts +2 -1
  40. package/src/domain/usecases/DailySecurityScanUseCase.test.ts +6 -0
  41. package/src/domain/usecases/DailySecurityScanUseCase.ts +3 -3
  42. package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +25 -0
  43. package/src/domain/usecases/HandleScheduledEventUseCase.ts +3 -3
  44. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +20 -0
  45. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +4 -0
  46. package/src/domain/usecases/SubscriptionDisabledIssueUseCase.test.ts +3 -0
  47. package/src/domain/usecases/SubscriptionDisabledIssueUseCase.ts +1 -1
  48. package/types/domain/usecases/ActionAnnouncementUseCase.d.ts.map +1 -1
  49. package/types/domain/usecases/CreateEstimationIssueUseCase.d.ts.map +1 -1
  50. package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
@@ -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-D6QOQvoN.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-BTFgj8n5.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-CLHvrafO.css">
9
9
  </head>
10
10
  <body>
@@ -0,0 +1,91 @@
1
+ import { mock } from 'jest-mock-extended';
2
+ import { IssueRepository } from './adapter-interfaces/IssueRepository';
3
+ import { ActionAnnouncementUseCase } from './ActionAnnouncementUseCase';
4
+ import { Issue } from '../entities/Issue';
5
+ import { Project } from '../entities/Project';
6
+
7
+ describe('ActionAnnouncementUseCase', () => {
8
+ const mockIssueRepository = mock<IssueRepository>();
9
+ const useCase = new ActionAnnouncementUseCase(mockIssueRepository);
10
+
11
+ beforeEach(() => {
12
+ jest.clearAllMocks();
13
+ });
14
+
15
+ const mockProject = mock<Project>();
16
+
17
+ const announcementIssue: Issue = {
18
+ ...mock<Issue>(),
19
+ org: 'test-org',
20
+ repo: 'test-repo',
21
+ number: 10,
22
+ title: 'Q2 Policy Update',
23
+ labels: ['action:announcement'],
24
+ state: 'OPEN',
25
+ nextActionDate: null,
26
+ url: 'https://github.com/test-org/test-repo/issues/10',
27
+ };
28
+
29
+ describe('run', () => {
30
+ beforeEach(() => {
31
+ jest.useFakeTimers();
32
+ });
33
+
34
+ afterEach(() => {
35
+ jest.useRealTimers();
36
+ });
37
+
38
+ it('includes From: :robot: prefix in the announcement issue body', async () => {
39
+ mockIssueRepository.createNewIssue.mockResolvedValue(11);
40
+
41
+ const runPromise = useCase.run({
42
+ targetDates: [new Date('2024-01-02T10:00:00Z')],
43
+ project: mockProject,
44
+ issues: [announcementIssue],
45
+ cacheUsed: false,
46
+ members: ['dev-alice'],
47
+ manager: 'manager-bob',
48
+ });
49
+ await jest.runAllTimersAsync();
50
+ await runPromise;
51
+
52
+ expect(mockIssueRepository.createNewIssue).toHaveBeenCalledTimes(1);
53
+ const body = mockIssueRepository.createNewIssue.mock.calls[0][3];
54
+ expect(body).toContain('From: :robot: ActionAnnouncementUseCase');
55
+ });
56
+
57
+ it('includes From: :robot: prefix in the error recovery issue body', async () => {
58
+ mockIssueRepository.createNewIssue
59
+ .mockRejectedValueOnce(new Error('network error'))
60
+ .mockResolvedValueOnce(12);
61
+
62
+ const runPromise = useCase.run({
63
+ targetDates: [new Date('2024-01-02T10:00:00Z')],
64
+ project: mockProject,
65
+ issues: [announcementIssue],
66
+ cacheUsed: false,
67
+ members: ['dev-alice'],
68
+ manager: 'manager-bob',
69
+ });
70
+ await jest.runAllTimersAsync();
71
+ await runPromise;
72
+
73
+ expect(mockIssueRepository.createNewIssue).toHaveBeenCalledTimes(2);
74
+ const errorBody = mockIssueRepository.createNewIssue.mock.calls[1][3];
75
+ expect(errorBody).toContain('From: :robot: ActionAnnouncementUseCase');
76
+ });
77
+
78
+ it('returns early when cacheUsed is true', async () => {
79
+ await useCase.run({
80
+ targetDates: [new Date('2024-01-02T10:00:00Z')],
81
+ project: mockProject,
82
+ issues: [announcementIssue],
83
+ cacheUsed: true,
84
+ members: ['dev-alice'],
85
+ manager: 'manager-bob',
86
+ });
87
+
88
+ expect(mockIssueRepository.createNewIssue).not.toHaveBeenCalled();
89
+ });
90
+ });
91
+ });
@@ -41,7 +41,9 @@ export class ActionAnnouncementUseCase {
41
41
  issue.org,
42
42
  issue.repo,
43
43
  `Announcement #${issue.number}: ${issue.title} / ${member}`,
44
- `Hi @${member},
44
+ `From: :robot: ActionAnnouncementUseCase
45
+
46
+ Hi @${member},
45
47
 
46
48
  Please take a look at the announcement in the issue ${issue.url} and take necessary actions :pray:
47
49
  `,
@@ -58,7 +60,7 @@ Please take a look at the announcement in the issue ${issue.url} and take necess
58
60
  issue.org,
59
61
  issue.repo,
60
62
  `Error occured while creating working report for ${member}`,
61
- `${JSON.stringify(e)}`,
63
+ `From: :robot: ActionAnnouncementUseCase\n\n${JSON.stringify(e)}`,
62
64
  [input.manager],
63
65
  ['bug'],
64
66
  );
@@ -57,6 +57,8 @@ describe('AnalyzeStoriesUseCase', () => {
57
57
  await useCase.run({ ...commonInput, targetDates: [matchingDate] });
58
58
 
59
59
  expect(mockIssueRepository.createNewIssue).toHaveBeenCalledTimes(1);
60
+ const body = mockIssueRepository.createNewIssue.mock.calls[0][3];
61
+ expect(body).toContain('From: :robot: AnalyzeStoriesUseCase');
60
62
  });
61
63
 
62
64
  it('returns early when project has no story field', async () => {
@@ -139,7 +139,7 @@ export class AnalyzeStoriesUseCase {
139
139
  urlOfStoryView: string,
140
140
  members: Member['name'][],
141
141
  ) => {
142
- return `${this.createSummaryIssueBodyPhase(summaryStoryIssue, urlOfStoryView, storyObjectMap)}
142
+ return `From: :robot: AnalyzeStoriesUseCase\n\n${this.createSummaryIssueBodyPhase(summaryStoryIssue, urlOfStoryView, storyObjectMap)}
143
143
  ${this.createSummaryIssueBodyAssignedIssueCount(project, issues, storyObjectMap, urlOfStoryView, members)}
144
144
  `;
145
145
  };
@@ -131,6 +131,17 @@ describe('CliErrorReportUseCase', () => {
131
131
  expect(bodyArg).toContain(commandLine);
132
132
  });
133
133
 
134
+ it('should include the From: :robot: prefix in the new issue body', async () => {
135
+ const error = new Error('prefix check');
136
+ mockIssueRepository.searchIssue.mockResolvedValue([]);
137
+ mockIssueRepository.createNewIssue.mockResolvedValue(5);
138
+
139
+ await useCase.run({ error, owner, repo, commandLine });
140
+
141
+ const bodyArg = mockIssueRepository.createNewIssue.mock.calls[0][3];
142
+ expect(bodyArg).toContain('From: :robot: CliErrorReportUseCase');
143
+ });
144
+
134
145
  it('should handle non-Error values', async () => {
135
146
  const error = 'plain string error';
136
147
  mockIssueRepository.searchIssue.mockResolvedValue([]);
@@ -57,7 +57,7 @@ export class CliErrorReportUseCase {
57
57
  owner,
58
58
  repo,
59
59
  title,
60
- buildBody('CLI error report'),
60
+ buildBody('From: :robot: CliErrorReportUseCase'),
61
61
  [],
62
62
  [],
63
63
  );
@@ -220,6 +220,8 @@ describe('CreateEstimationIssueUseCase', () => {
220
220
  'completion-field',
221
221
  issueInStory,
222
222
  );
223
+ const body = mockIssueRepository.createNewIssue.mock.calls[0]?.[3];
224
+ expect(body).toContain('From: :robot: CreateEstimationIssueUseCase');
223
225
  });
224
226
  });
225
227
  });
@@ -133,7 +133,8 @@ export class CreateEstimationIssueUseCase {
133
133
  urlObStoryView: string,
134
134
  project: Project,
135
135
  ): string => {
136
- return `
136
+ return `From: :robot: CreateEstimationIssueUseCase
137
+
137
138
  This issue is experimental workflow :pray:
138
139
  - Target story: ${storyObject.storyIssue.url}
139
140
 
@@ -127,6 +127,9 @@ describe('DailySecurityScanUseCase', () => {
127
127
  expect(mockIssueRepository.createNewIssue.mock.calls[0][4]).toEqual([
128
128
  'manager-name',
129
129
  ]);
130
+ expect(mockIssueRepository.createNewIssue.mock.calls[0][3]).toContain(
131
+ 'From: :robot: DailySecurityScanUseCase',
132
+ );
130
133
  });
131
134
 
132
135
  const buildDefaultBranchScanRunner = () => {
@@ -667,6 +670,9 @@ describe('DailySecurityScanUseCase', () => {
667
670
  );
668
671
  expect(kevIssueCalls[0][3]).toContain('CVE-2024-0001');
669
672
  expect(kevIssueCalls[0][3]).not.toContain('CVE-2023-9999');
673
+ expect(kevIssueCalls[0][3]).toContain(
674
+ 'From: :robot: DailySecurityScanUseCase',
675
+ );
670
676
  });
671
677
 
672
678
  it('does not create a KEV report issue when there are no new additions', async () => {
@@ -324,7 +324,7 @@ export class DailySecurityScanUseCase {
324
324
  repositoryOrg,
325
325
  repositoryName,
326
326
  'Daily security scan findings',
327
- findingsBody,
327
+ `From: :robot: DailySecurityScanUseCase\n\n${findingsBody}`,
328
328
  [manager],
329
329
  [],
330
330
  );
@@ -456,7 +456,7 @@ export class DailySecurityScanUseCase {
456
456
  org,
457
457
  config.kevReportRepo,
458
458
  `CISA KEV new additions since ${reportBoundaryDateAdded}`,
459
- affectingKevEntries
459
+ `From: :robot: DailySecurityScanUseCase\n\n${affectingKevEntries
460
460
  .map((entry) =>
461
461
  [
462
462
  `- ${entry.vulnerability.dateAdded} ${entry.vulnerability.cveID} ${entry.vulnerability.vulnerabilityName}`,
@@ -466,7 +466,7 @@ export class DailySecurityScanUseCase {
466
466
  ),
467
467
  ].join('\n'),
468
468
  )
469
- .join('\n'),
469
+ .join('\n')}`,
470
470
  [manager],
471
471
  [],
472
472
  );
@@ -752,6 +752,21 @@ describe('HandleScheduledEventUseCase', () => {
752
752
  expect(capturedLogs[0]).toContain('feature / StoryOne');
753
753
  });
754
754
 
755
+ it('should include From: :robot: prefix in story issue body', async () => {
756
+ const runPromise = useCase.run(storyInput);
757
+ await jest.runAllTimersAsync();
758
+ await runPromise;
759
+
760
+ const storyIssueCalls =
761
+ mockIssueRepository.createNewIssue.mock.calls.filter(
762
+ (call) => Array.isArray(call[5]) && call[5].includes('story'),
763
+ );
764
+ expect(storyIssueCalls).toHaveLength(1);
765
+ expect(storyIssueCalls[0][3]).toContain(
766
+ 'From: :robot: HandleScheduledEventUseCase',
767
+ );
768
+ });
769
+
755
770
  it('should emit Polling for issue log before each 30s sleep', async () => {
756
771
  const runPromise = useCase.run(storyInput);
757
772
  await jest.runAllTimersAsync();
@@ -1110,6 +1125,14 @@ describe('HandleScheduledEventUseCase', () => {
1110
1125
  ['test-manager'],
1111
1126
  ['error'],
1112
1127
  );
1128
+ expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
1129
+ 'test-org',
1130
+ 'test-repo',
1131
+ 'Error in HandleScheduledEvent / workflow incident',
1132
+ expect.stringContaining('From: :robot: HandleScheduledEventUseCase'),
1133
+ ['test-manager'],
1134
+ ['error'],
1135
+ );
1113
1136
  expect(mockIssueRepository.createCommentByUrl).not.toHaveBeenCalled();
1114
1137
  });
1115
1138
 
@@ -1317,6 +1340,7 @@ describe('HandleScheduledEventUseCase', () => {
1317
1340
  expect(body).toContain('Operation: read');
1318
1341
  expect(body).toContain('boom on getSheet');
1319
1342
  expect(body).toContain(readError.stack ?? '');
1343
+ expect(body).toContain('From: :robot: HandleScheduledEventUseCase');
1320
1344
  });
1321
1345
 
1322
1346
  it('should create an error issue and rethrow when spreadsheet write fails in findTargetDateAndUpdateLastExecutionDateTime', async () => {
@@ -1343,6 +1367,7 @@ describe('HandleScheduledEventUseCase', () => {
1343
1367
  expect(body).toContain('Operation: write');
1344
1368
  expect(body).toContain('boom on updateCell');
1345
1369
  expect(body).toContain(writeError.stack ?? '');
1370
+ expect(body).toContain('From: :robot: HandleScheduledEventUseCase');
1346
1371
  });
1347
1372
  });
1348
1373
 
@@ -253,7 +253,7 @@ export class HandleScheduledEventUseCase {
253
253
  input.org,
254
254
  input.workingReport.repo,
255
255
  storyObject.story.name,
256
- storyObject.story.description,
256
+ `From: :robot: HandleScheduledEventUseCase\n\n${storyObject.story.description}`,
257
257
  [input.manager],
258
258
  ['story'],
259
259
  );
@@ -379,7 +379,7 @@ ${JSON.stringify(e)}
379
379
  input.org,
380
380
  input.workingReport.repo,
381
381
  WORKFLOW_INCIDENT_ISSUE_TITLE,
382
- errorBody,
382
+ `From: :robot: HandleScheduledEventUseCase\n\n${errorBody}`,
383
383
  [input.manager],
384
384
  ['error'],
385
385
  );
@@ -673,7 +673,7 @@ ${JSON.stringify(e)}
673
673
  org,
674
674
  repo,
675
675
  `Error in HandleScheduledEvent / spreadsheet ${operation} failure`,
676
- `Spreadsheet URL: ${spreadsheetUrl}
676
+ `From: :robot: HandleScheduledEventUseCase\n\nSpreadsheet URL: ${spreadsheetUrl}
677
677
  Operation: ${operation}
678
678
 
679
679
  ${e.message}
@@ -4197,6 +4197,16 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
4197
4197
  ['alice'],
4198
4198
  [],
4199
4199
  );
4200
+ expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
4201
+ 'user',
4202
+ 'repo',
4203
+ taskIssueTitle,
4204
+ expect.stringContaining(
4205
+ 'From: :robot: NotifyFinishedIssuePreparationUseCase',
4206
+ ),
4207
+ ['alice'],
4208
+ [],
4209
+ );
4200
4210
  expect(mockIssueRepository.setDependedIssueUrl).toHaveBeenCalledWith(
4201
4211
  issueUrl,
4202
4212
  mockProject,
@@ -4516,6 +4526,16 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
4516
4526
  [],
4517
4527
  [],
4518
4528
  );
4529
+ expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
4530
+ 'user',
4531
+ 'repo',
4532
+ expect.stringContaining('unknown-agent'),
4533
+ expect.stringContaining(
4534
+ 'From: :robot: NotifyFinishedIssuePreparationUseCase',
4535
+ ),
4536
+ [],
4537
+ [],
4538
+ );
4519
4539
  expect(mockIssueRepository.setDependedIssueUrl).toHaveBeenCalledWith(
4520
4540
  issueUrl,
4521
4541
  mockProject,
@@ -529,6 +529,8 @@ export class NotifyFinishedIssuePreparationUseCase {
529
529
  taskIssueUrl = exactMatch.url;
530
530
  } else {
531
531
  const body = [
532
+ `From: :robot: NotifyFinishedIssuePreparationUseCase`,
533
+ '',
532
534
  `The preparation worker for ${issue.url} failed because the agent definition \`${missingAgentName}\` was not found.`,
533
535
  '',
534
536
  `- Missing agent name: \`${missingAgentName}\``,
@@ -599,6 +601,8 @@ export class NotifyFinishedIssuePreparationUseCase {
599
601
  blockerIssueUrl = exactMatch.url;
600
602
  } else {
601
603
  const body = [
604
+ `From: :robot: NotifyFinishedIssuePreparationUseCase`,
605
+ '',
602
606
  `The last agent report on ${issue.url} designated \`nextStepAgent\` as \`${nextStepAgent}\`, which is absent from the configured agents list.`,
603
607
  '',
604
608
  `- Missing agent name: \`${nextStepAgent}\``,
@@ -60,6 +60,9 @@ describe('SubscriptionDisabledIssueUseCase', () => {
60
60
  expect(mockIssueRepository.createNewIssue.mock.calls[0][3]).toContain(
61
61
  'dev3',
62
62
  );
63
+ expect(mockIssueRepository.createNewIssue.mock.calls[0][3]).toContain(
64
+ 'From: :robot: SubscriptionDisabledIssueUseCase',
65
+ );
63
66
  expect(mockIssueRepository.createCommentByUrl.mock.calls).toHaveLength(0);
64
67
  });
65
68
 
@@ -62,7 +62,7 @@ export class SubscriptionDisabledIssueUseCase {
62
62
  org,
63
63
  repo,
64
64
  issueTitle,
65
- `The Claude subscription access for the token displayed as \`${tokenName}\` has been disabled.\n\nPlease restore the account's Claude Code subscription access to resume operations.`,
65
+ `From: :robot: SubscriptionDisabledIssueUseCase\n\nThe Claude subscription access for the token displayed as \`${tokenName}\` has been disabled.\n\nPlease restore the account's Claude Code subscription access to resume operations.`,
66
66
  [],
67
67
  [],
68
68
  );
@@ -1 +1 @@
1
- {"version":3,"file":"ActionAnnouncementUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ActionAnnouncementUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,yBAAyB;IAElC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,aAAa,CACjC;gBAHQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,aAAa,CACjC;IAGH,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;KACzB,KAAG,OAAO,CAAC,IAAI,CAAC,CAsDf;CACH"}
1
+ {"version":3,"file":"ActionAnnouncementUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ActionAnnouncementUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,yBAAyB;IAElC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,aAAa,CACjC;gBAHQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,aAAa,CACjC;IAGH,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;KACzB,KAAG,OAAO,CAAC,IAAI,CAAC,CAwDf;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEstimationIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/CreateEstimationIssueUseCase.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,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D,qBAAa,4BAA4B;IAErC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,CACzD;IACD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC;gBAJ/D,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,CACzD,EACQ,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC;IAG1E,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAG,OAAO,CAAC,IAAI,CAAC,CAkGf;IACF,yBAAyB,GACvB,aAAa;QACX,UAAU,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,CAAC;KACjB,EACD,gBAAgB,MAAM,EACtB,SAAS,OAAO,KACf,MAAM,CAsBP;IACF,sBAAsB,GACpB,mBAAmB,GAAG,CACpB,MAAM,EACN,CAAC,KAAK,GAAG;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,EAAE,CACL,EACD,gBAAgB,MAAM,KACrB,MAAM,CAmCP;CACH"}
1
+ {"version":3,"file":"CreateEstimationIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/CreateEstimationIssueUseCase.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,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D,qBAAa,4BAA4B;IAErC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,CACzD;IACD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC;gBAJ/D,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,CACzD,EACQ,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC;IAG1E,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAG,OAAO,CAAC,IAAI,CAAC,CAkGf;IACF,yBAAyB,GACvB,aAAa;QACX,UAAU,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,CAAC;KACjB,EACD,gBAAgB,MAAM,EACtB,SAAS,OAAO,KACf,MAAM,CAuBP;IACF,sBAAsB,GACpB,mBAAmB,GAAG,CACpB,MAAM,EACN,CAAC,KAAK,GAAG;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,EAAE,CACL,EACD,gBAAgB,MAAM,KACrB,MAAM,CAmCP;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;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAmCnF,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;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAsBhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAtCzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAC/C,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,KAAK,GACL,QAAQ,GACR,cAAc,GACd,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,GACjC,qBAAqB,GACrB,oBAAoB,GACpB,aAAa,GACb,gBAAgB,GAChB,sBAAsB,GACtB,aAAa,GACb,mBAAmB,GACnB,eAAe,CAClB,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACgB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,gBAAgB,CACjB,EACgB,qBAAqB,CAAC,GAAE,qBAAqB,GAAG,IAAI,aAAA;IAQvE,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,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;QACxD,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACtC,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KACnC,KAAG,OAAO,CAAC,IAAI,CAAC,CAoWf;IAEF,OAAO,CAAC,8BAA8B,CAwBpC;IAEF,OAAO,CAAC,4BAA4B,CAsElC;IAEF,OAAO,CAAC,+BAA+B,CAgFrC;IAEF,OAAO,CAAC,iBAAiB,CAkDvB;IAEF,OAAO,CAAC,qBAAqB,CAyB3B;IAEF,OAAO,CAAC,gCAAgC,CAoBtC;IAEF,OAAO,CAAC,4BAA4B,CA0BlC;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,+BAA+B,CAgCrC;IAEF,OAAO,CAAC,uBAAuB,CAO7B;IAEF,OAAO,CAAC,yBAAyB,CAIuC;IAExE,OAAO,CAAC,eAAe,CAoCrB;CACH"}
1
+ {"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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"}