github-issue-tower-defence-management 2.153.8 → 2.154.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 (70) hide show
  1. package/bin/adapter/entry-points/cli/index.js +54 -0
  2. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  3. package/bin/adapter/entry-points/cli/storyGateCommands.js +101 -0
  4. package/bin/adapter/entry-points/cli/storyGateCommands.js.map +1 -0
  5. package/bin/adapter/repositories/GithubStoryGateIssueRepository.js +256 -0
  6. package/bin/adapter/repositories/GithubStoryGateIssueRepository.js.map +1 -0
  7. package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js +107 -0
  8. package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js.map +1 -0
  9. package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js +41 -0
  10. package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js.map +1 -0
  11. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +12 -3
  12. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  13. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js +2 -1
  14. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js.map +1 -1
  15. package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js +3 -0
  16. package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js.map +1 -0
  17. package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js +11 -0
  18. package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js.map +1 -0
  19. package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js +3 -0
  20. package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js.map +1 -0
  21. package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js +76 -0
  22. package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js.map +1 -0
  23. package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js +84 -0
  24. package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js.map +1 -0
  25. package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js +446 -0
  26. package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js.map +1 -0
  27. package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js +23 -0
  28. package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js.map +1 -0
  29. package/bin/domain/usecases/storyGate/issueCommentSplit.js +37 -0
  30. package/bin/domain/usecases/storyGate/issueCommentSplit.js.map +1 -0
  31. package/bin/domain/usecases/storyGate/specificationRoutingDetect.js +27 -0
  32. package/bin/domain/usecases/storyGate/specificationRoutingDetect.js.map +1 -0
  33. package/bin/domain/usecases/storyGate/specificationSectionDetect.js +50 -0
  34. package/bin/domain/usecases/storyGate/specificationSectionDetect.js.map +1 -0
  35. package/bin/domain/usecases/storyGate/storyValueClassify.js +20 -0
  36. package/bin/domain/usecases/storyGate/storyValueClassify.js.map +1 -0
  37. package/package.json +1 -1
  38. package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
  39. package/types/adapter/entry-points/cli/storyGateCommands.d.ts +32 -0
  40. package/types/adapter/entry-points/cli/storyGateCommands.d.ts.map +1 -0
  41. package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts +24 -0
  42. package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts.map +1 -0
  43. package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts +11 -0
  44. package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts.map +1 -0
  45. package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts +7 -0
  46. package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts.map +1 -0
  47. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  48. package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts.map +1 -1
  49. package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts +25 -0
  50. package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts.map +1 -0
  51. package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts +63 -0
  52. package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts.map +1 -0
  53. package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts +9 -0
  54. package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts.map +1 -0
  55. package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts +22 -0
  56. package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts.map +1 -0
  57. package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts +24 -0
  58. package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts.map +1 -0
  59. package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts +123 -0
  60. package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts.map +1 -0
  61. package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts +4 -0
  62. package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts.map +1 -0
  63. package/types/domain/usecases/storyGate/issueCommentSplit.d.ts +18 -0
  64. package/types/domain/usecases/storyGate/issueCommentSplit.d.ts.map +1 -0
  65. package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts +4 -0
  66. package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts.map +1 -0
  67. package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts +8 -0
  68. package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts.map +1 -0
  69. package/types/domain/usecases/storyGate/storyValueClassify.d.ts +10 -0
  70. package/types/domain/usecases/storyGate/storyValueClassify.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubStoryGateIssueRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GithubStoryGateIssueRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LocalStorageStoryGateBoardCacheRepository = exports.BOARD_CACHE_FILE_NAME = exports.BOARD_CACHE_DIRECTORY_PREFIX = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const isRecord_1 = require("../../domain/usecases/isRecord");
10
+ exports.BOARD_CACHE_DIRECTORY_PREFIX = 'allIssues-';
11
+ exports.BOARD_CACHE_FILE_NAME = 'latest.json';
12
+ const fieldOf = (value, key) => (0, isRecord_1.isRecord)(value) ? value[key] : undefined;
13
+ const stringFieldOf = (value, key) => {
14
+ const field = fieldOf(value, key);
15
+ return typeof field === 'string' ? field : null;
16
+ };
17
+ const arrayFieldOf = (value, key) => {
18
+ const field = fieldOf(value, key);
19
+ return Array.isArray(field) ? field : [];
20
+ };
21
+ const storyOptionsParse = (story) => arrayFieldOf(story, 'stories').flatMap((option) => {
22
+ const id = stringFieldOf(option, 'id');
23
+ const name = stringFieldOf(option, 'name');
24
+ return id !== null && name !== null
25
+ ? [{ id, name, color: stringFieldOf(option, 'color') ?? '' }]
26
+ : [];
27
+ });
28
+ const issuesParse = (json) => arrayFieldOf(json, 'issues').flatMap((issue) => {
29
+ const url = stringFieldOf(issue, 'url');
30
+ if (url === null) {
31
+ return [];
32
+ }
33
+ return [
34
+ {
35
+ url,
36
+ story: stringFieldOf(issue, 'story'),
37
+ labels: arrayFieldOf(issue, 'labels').filter((label) => typeof label === 'string'),
38
+ body: stringFieldOf(issue, 'body') ?? '',
39
+ itemId: stringFieldOf(issue, 'itemId') ?? '',
40
+ },
41
+ ];
42
+ });
43
+ const storyIssueUrlByOptionNameParse = (json) => {
44
+ const map = fieldOf(json, 'storyIssueUrlByOptionName');
45
+ if (!(0, isRecord_1.isRecord)(map)) {
46
+ return {};
47
+ }
48
+ return Object.fromEntries(Object.entries(map).flatMap(([name, url]) => typeof url === 'string' ? [[name, url]] : []));
49
+ };
50
+ class LocalStorageStoryGateBoardCacheRepository {
51
+ constructor(cacheBaseDirectory) {
52
+ this.cacheBaseDirectory = cacheBaseDirectory;
53
+ this.listBoardCachesNewestFirst = async () => {
54
+ const caches = [];
55
+ for (const filePath of this.boardCacheFilePathsList()) {
56
+ const cache = await this.boardCacheRead(filePath);
57
+ if (cache !== null) {
58
+ caches.push(cache);
59
+ }
60
+ }
61
+ return caches.sort((left, right) => right.modifiedAt.getTime() - left.modifiedAt.getTime());
62
+ };
63
+ this.boardCacheFilePathsList = () => {
64
+ if (!node_fs_1.default.existsSync(this.cacheBaseDirectory)) {
65
+ return [];
66
+ }
67
+ return node_fs_1.default
68
+ .readdirSync(this.cacheBaseDirectory, { withFileTypes: true })
69
+ .filter((projectEntry) => projectEntry.isDirectory())
70
+ .flatMap((projectEntry) => {
71
+ const projectDirectory = node_path_1.default.join(this.cacheBaseDirectory, projectEntry.name);
72
+ return node_fs_1.default
73
+ .readdirSync(projectDirectory, { withFileTypes: true })
74
+ .filter((boardEntry) => boardEntry.isDirectory() &&
75
+ boardEntry.name.startsWith(exports.BOARD_CACHE_DIRECTORY_PREFIX))
76
+ .map((boardEntry) => node_path_1.default.join(projectDirectory, boardEntry.name, exports.BOARD_CACHE_FILE_NAME))
77
+ .filter((filePath) => node_fs_1.default.existsSync(filePath));
78
+ });
79
+ };
80
+ this.boardCacheRead = async (filePath) => {
81
+ try {
82
+ const [stat, content] = await Promise.all([
83
+ node_fs_1.default.promises.stat(filePath),
84
+ node_fs_1.default.promises.readFile(filePath, 'utf8'),
85
+ ]);
86
+ const json = JSON.parse(content);
87
+ const project = fieldOf(json, 'project');
88
+ const story = fieldOf(project, 'story');
89
+ return {
90
+ filePath,
91
+ modifiedAt: stat.mtime,
92
+ projectId: stringFieldOf(project, 'id') ?? '',
93
+ storyFieldId: stringFieldOf(story, 'fieldId'),
94
+ storyOptions: storyOptionsParse(story),
95
+ storyIssueUrlByOptionName: storyIssueUrlByOptionNameParse(json),
96
+ issues: issuesParse(json),
97
+ };
98
+ }
99
+ catch (error) {
100
+ console.warn(`Skipping unreadable board cache ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
101
+ return null;
102
+ }
103
+ };
104
+ }
105
+ }
106
+ exports.LocalStorageStoryGateBoardCacheRepository = LocalStorageStoryGateBoardCacheRepository;
107
+ //# sourceMappingURL=LocalStorageStoryGateBoardCacheRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorageStoryGateBoardCacheRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.YamlStoryGateProjectConfigRepository = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const isRecord_1 = require("../../domain/usecases/isRecord");
11
+ const PROJECT_CONFIG_FILE_PATTERN = /\.config\.ya?ml$/;
12
+ class YamlStoryGateProjectConfigRepository {
13
+ constructor(configDirectory) {
14
+ this.configDirectory = configDirectory;
15
+ this.listProjectConfigs = async () => {
16
+ const fileNames = (await node_fs_1.default.promises.readdir(this.configDirectory))
17
+ .filter((fileName) => PROJECT_CONFIG_FILE_PATTERN.test(fileName))
18
+ .sort();
19
+ const configs = [];
20
+ for (const fileName of fileNames) {
21
+ const filePath = node_path_1.default.join(this.configDirectory, fileName);
22
+ const parsed = yaml_1.default.parse(await node_fs_1.default.promises.readFile(filePath, 'utf8'));
23
+ const org = (0, isRecord_1.isRecord)(parsed) ? parsed.org : undefined;
24
+ const agents = (0, isRecord_1.isRecord)(parsed) ? parsed.agents : undefined;
25
+ if (typeof org !== 'string' || org === '') {
26
+ continue;
27
+ }
28
+ configs.push({
29
+ filePath,
30
+ org,
31
+ agents: Array.isArray(agents)
32
+ ? agents.filter((agent) => typeof agent === 'string')
33
+ : [],
34
+ });
35
+ }
36
+ return configs;
37
+ };
38
+ }
39
+ }
40
+ exports.YamlStoryGateProjectConfigRepository = YamlStoryGateProjectConfigRepository;
41
+ //# sourceMappingURL=YamlStoryGateProjectConfigRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YamlStoryGateProjectConfigRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/YamlStoryGateProjectConfigRepository.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,gDAAwB;AACxB,6DAA0D;AAM1D,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAEvD,MAAa,oCAAoC;IAC/C,YAA6B,eAAuB;QAAvB,oBAAe,GAAf,eAAe,CAAQ;QAEpD,uBAAkB,GAAG,KAAK,IAAuC,EAAE;YACjE,MAAM,SAAS,GAAG,CAAC,MAAM,iBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAChE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAChE,IAAI,EAAE,CAAC;YACV,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAY,cAAI,CAAC,KAAK,CAChC,MAAM,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC7C,CAAC;gBACF,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ;oBACR,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;wBACtE,CAAC,CAAC,EAAE;iBACP,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IA1BqD,CAAC;CA2BzD;AA5BD,oFA4BC"}
@@ -563,9 +563,18 @@ class ApiV3CheerioRestIssueRepository extends BaseGitHubRepository_1.BaseGitHubR
563
563
  const itemIdsPresentInFetchResult = new Set(items.map((item) => item.id));
564
564
  const issuesAbsentFromFetchResult = cachedIssuesKnownBeforeFetch.filter((issue) => !itemIdsPresentInFetchResult.has(issue.itemId));
565
565
  const liveProjectItemsByItemIdAbsentFromFetchResult = new Map();
566
- for (const issue of issuesAbsentFromFetchResult) {
567
- const liveProjectItem = await this.graphqlProjectItemRepository.fetchProjectItemByUrl(issue.url, projectId);
568
- liveProjectItemsByItemIdAbsentFromFetchResult.set(issue.itemId, liveProjectItem);
566
+ if (issuesAbsentFromFetchResult.length > 0) {
567
+ const fetchedLiveProjectItems = await this.graphqlProjectItemRepository.fetchProjectItemsByIds(issuesAbsentFromFetchResult.map((issue) => issue.itemId));
568
+ const liveProjectItemsAbsentFromFetchResultById = new Map(fetchedLiveProjectItems.map((liveProjectItem) => [
569
+ liveProjectItem.id,
570
+ liveProjectItem,
571
+ ]));
572
+ for (const issue of issuesAbsentFromFetchResult) {
573
+ const liveProjectItem = liveProjectItemsAbsentFromFetchResultById.get(issue.itemId) ?? null;
574
+ liveProjectItemsByItemIdAbsentFromFetchResult.set(issue.itemId, liveProjectItem && !liveProjectItem.isArchivedFromProject
575
+ ? liveProjectItem
576
+ : null);
577
+ }
569
578
  }
570
579
  const nowIso = now.toISOString();
571
580
  const { mergedIssues: issues, mergedProject } = await this.projectIssuesCacheRepository.withLock(projectId, async () => {