github-issue-tower-defence-management 1.75.0 → 1.77.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 (56) hide show
  1. package/.github/workflows/umino-project.yml +5 -3
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +1 -1
  4. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +66 -0
  5. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
  6. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +32 -1
  7. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  8. package/bin/domain/usecases/ChangeTargetPullRequestApprover.js +4 -3
  9. package/bin/domain/usecases/ChangeTargetPullRequestApprover.js.map +1 -1
  10. package/bin/domain/usecases/CheckIssueReviewReadinessUseCase.js.map +1 -1
  11. package/bin/domain/usecases/IssueRejectionEvaluator.js +35 -1
  12. package/bin/domain/usecases/IssueRejectionEvaluator.js.map +1 -1
  13. package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
  14. package/bin/domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase.js.map +1 -1
  15. package/bin/domain/usecases/StartPreparationUseCase.js +27 -5
  16. package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
  17. package/package.json +1 -1
  18. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +126 -0
  19. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +31 -0
  20. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +43 -1
  21. package/src/domain/usecases/ChangeTargetPullRequestApprover.test.ts +39 -0
  22. package/src/domain/usecases/ChangeTargetPullRequestApprover.ts +4 -3
  23. package/src/domain/usecases/CheckIssueReviewReadinessUseCase.test.ts +4 -0
  24. package/src/domain/usecases/CheckIssueReviewReadinessUseCase.ts +5 -1
  25. package/src/domain/usecases/IssueRejectionEvaluator.test.ts +141 -0
  26. package/src/domain/usecases/IssueRejectionEvaluator.ts +56 -3
  27. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +2 -0
  28. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +1 -0
  29. package/src/domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase.test.ts +2 -0
  30. package/src/domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase.ts +1 -0
  31. package/src/domain/usecases/StartPreparationUseCase.test.ts +180 -0
  32. package/src/domain/usecases/StartPreparationUseCase.ts +46 -13
  33. package/src/domain/usecases/adapter-interfaces/ClaudeTokenUsageRepository.ts +1 -0
  34. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +5 -0
  35. package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts +1 -0
  36. package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
  37. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +1 -0
  38. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  39. package/types/domain/usecases/ChangeTargetPullRequestApprover.d.ts.map +1 -1
  40. package/types/domain/usecases/CheckIssueReviewReadinessUseCase.d.ts +1 -1
  41. package/types/domain/usecases/CheckIssueReviewReadinessUseCase.d.ts.map +1 -1
  42. package/types/domain/usecases/IssueRejectionEvaluator.d.ts +4 -2
  43. package/types/domain/usecases/IssueRejectionEvaluator.d.ts.map +1 -1
  44. package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +1 -1
  45. package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
  46. package/types/domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase.d.ts +1 -1
  47. package/types/domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase.d.ts.map +1 -1
  48. package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
  49. package/types/domain/usecases/adapter-interfaces/ClaudeTokenUsageRepository.d.ts +1 -0
  50. package/types/domain/usecases/adapter-interfaces/ClaudeTokenUsageRepository.d.ts.map +1 -1
  51. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +1 -0
  52. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
  53. package/bin/domain/usecases/ClearNextActionHourUseCase.js +0 -44
  54. package/bin/domain/usecases/ClearNextActionHourUseCase.js.map +0 -1
  55. package/types/domain/usecases/ClearNextActionHourUseCase.d.ts +0 -14
  56. package/types/domain/usecases/ClearNextActionHourUseCase.d.ts.map +0 -1
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClearNextActionHourUseCase = void 0;
4
- class ClearNextActionHourUseCase {
5
- constructor(issueRepository) {
6
- this.issueRepository = issueRepository;
7
- this.run = async (input) => {
8
- const nextActionHour = input.project.nextActionHour;
9
- if (!nextActionHour) {
10
- return;
11
- }
12
- const nextActionDate = input.project.nextActionDate;
13
- const targetDates = input.targetDates
14
- .filter((targetDate) => targetDate.getMinutes() === 45)
15
- .reverse();
16
- if (targetDates.length === 0) {
17
- return;
18
- }
19
- const targetDate = new Date(targetDates[targetDates.length - 1].getTime() + 5 * 60 * 1000);
20
- const targetHour = targetDate.getHours() + 1;
21
- const isTargetIssue = (issue) => {
22
- return (issue.nextActionHour !== null &&
23
- issue.nextActionHour <= targetHour &&
24
- (issue.nextActionDate === null ||
25
- issue.nextActionDate.getTime() <= targetDate.getTime()) &&
26
- issue.state === 'OPEN');
27
- };
28
- for (const issue of input.issues) {
29
- if (!isTargetIssue(issue)) {
30
- continue;
31
- }
32
- await this.issueRepository.clearProjectField(input.project, nextActionHour.fieldId, issue);
33
- await new Promise((resolve) => setTimeout(resolve, 5000));
34
- if (!nextActionDate) {
35
- continue;
36
- }
37
- await this.issueRepository.clearProjectField(input.project, nextActionDate.fieldId, issue);
38
- await new Promise((resolve) => setTimeout(resolve, 5000));
39
- }
40
- };
41
- }
42
- }
43
- exports.ClearNextActionHourUseCase = ClearNextActionHourUseCase;
44
- //# sourceMappingURL=ClearNextActionHourUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClearNextActionHourUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/ClearNextActionHourUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,0BAA0B;IACrC,YACW,eAA2D;QAA3D,oBAAe,GAAf,eAAe,CAA4C;QAGtE,QAAG,GAAG,KAAK,EAAE,KAKZ,EAAiB,EAAE;YAClB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YACpD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YACpD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW;iBAClC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;iBACtD,OAAO,EAAE,CAAC;YACb,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,IAAI,CACzB,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAC9D,CAAC;YACF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,CAAC,KAAY,EAAW,EAAE;gBAC9C,OAAO,CACL,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,KAAK,CAAC,cAAc,IAAI,UAAU;oBAClC,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;wBAC5B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACzD,KAAK,CAAC,KAAK,KAAK,MAAM,CACvB,CAAC;YACJ,CAAC,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAC1C,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,OAAO,EACtB,KAAK,CACN,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAC1C,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,OAAO,EACtB,KAAK,CACN,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;IApDC,CAAC;CAqDL;AAxDD,gEAwDC"}
@@ -1,14 +0,0 @@
1
- import { Issue } from '../entities/Issue';
2
- import { IssueRepository } from './adapter-interfaces/IssueRepository';
3
- import { Project } from '../entities/Project';
4
- export declare class ClearNextActionHourUseCase {
5
- readonly issueRepository: Pick<IssueRepository, 'clearProjectField'>;
6
- constructor(issueRepository: Pick<IssueRepository, 'clearProjectField'>);
7
- run: (input: {
8
- targetDates: Date[];
9
- project: Project;
10
- issues: Issue[];
11
- cacheUsed: boolean;
12
- }) => Promise<void>;
13
- }
14
- //# sourceMappingURL=ClearNextActionHourUseCase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClearNextActionHourUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ClearNextActionHourUseCase.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;AAE9C,qBAAa,0BAA0B;IAEnC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC;gBAA3D,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAGtE,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;KACpB,KAAG,OAAO,CAAC,IAAI,CAAC,CA6Cf;CACH"}