github-issue-tower-defence-management 1.86.0 → 1.88.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 (64) hide show
  1. package/.eslintrc.cjs +5 -1
  2. package/.github/workflows/console-ui.yml +47 -0
  3. package/.prettierignore +3 -0
  4. package/CHANGELOG.md +15 -0
  5. package/README.md +42 -0
  6. package/bin/adapter/entry-points/console/ui-dist/assets/index-DFxrSRH4.css +1 -0
  7. package/bin/adapter/entry-points/console/ui-dist/assets/index-DcOZ02ON.js +49 -0
  8. package/bin/adapter/entry-points/console/ui-dist/index.html +13 -0
  9. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +54 -12
  10. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  11. package/bin/adapter/entry-points/handlers/inTmuxByHumanDataWriter.js +67 -0
  12. package/bin/adapter/entry-points/handlers/inTmuxByHumanDataWriter.js.map +1 -0
  13. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +306 -0
  14. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  15. package/bin/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.js +91 -0
  16. package/bin/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.js.map +1 -0
  17. package/package.json +22 -2
  18. package/scripts/copyConsoleUiDist.mjs +35 -0
  19. package/src/adapter/entry-points/console/ui/.storybook/main.ts +12 -0
  20. package/src/adapter/entry-points/console/ui/.storybook/preview.ts +15 -0
  21. package/src/adapter/entry-points/console/ui/biome.json +47 -0
  22. package/src/adapter/entry-points/console/ui/components.json +20 -0
  23. package/src/adapter/entry-points/console/ui/index.html +12 -0
  24. package/src/adapter/entry-points/console/ui/src/components/ui/badge.stories.tsx +35 -0
  25. package/src/adapter/entry-points/console/ui/src/components/ui/badge.tsx +28 -0
  26. package/src/adapter/entry-points/console/ui/src/components/ui/button.stories.tsx +34 -0
  27. package/src/adapter/entry-points/console/ui/src/components/ui/button.tsx +50 -0
  28. package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleListView.stories.tsx +44 -0
  29. package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleListView.tsx +58 -0
  30. package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleTabBar.stories.tsx +34 -0
  31. package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleTabBar.tsx +32 -0
  32. package/src/adapter/entry-points/console/ui/src/features/console/fixtures.ts +47 -0
  33. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleList.ts +65 -0
  34. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleToken.ts +64 -0
  35. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +19 -0
  36. package/src/adapter/entry-points/console/ui/src/features/console/types.ts +69 -0
  37. package/src/adapter/entry-points/console/ui/src/index.css +31 -0
  38. package/src/adapter/entry-points/console/ui/src/lib/utils.ts +4 -0
  39. package/src/adapter/entry-points/console/ui/src/main.tsx +15 -0
  40. package/src/adapter/entry-points/console/ui/src/vite-env.d.ts +1 -0
  41. package/src/adapter/entry-points/console/ui/tsconfig.json +24 -0
  42. package/src/adapter/entry-points/console/ui/vite.config.ts +19 -0
  43. package/src/adapter/entry-points/console/ui-dist/assets/index-DFxrSRH4.css +1 -0
  44. package/src/adapter/entry-points/console/ui-dist/assets/index-DcOZ02ON.js +49 -0
  45. package/src/adapter/entry-points/console/ui-dist/index.html +13 -0
  46. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +26 -0
  47. package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.test.ts +266 -0
  48. package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.ts +103 -0
  49. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +630 -0
  50. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +492 -0
  51. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +51 -0
  52. package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.test.ts +285 -0
  53. package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.ts +182 -0
  54. package/tsconfig.build.json +7 -1
  55. package/tsconfig.json +6 -1
  56. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  57. package/types/adapter/entry-points/handlers/inTmuxByHumanDataWriter.d.ts +16 -0
  58. package/types/adapter/entry-points/handlers/inTmuxByHumanDataWriter.d.ts.map +1 -0
  59. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +18 -1
  60. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  61. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +47 -0
  62. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
  63. package/types/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.d.ts +57 -0
  64. package/types/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.d.ts.map +1 -0
@@ -0,0 +1,285 @@
1
+ import { Issue } from '../../entities/Issue';
2
+ import { FieldOption, Project } from '../../entities/Project';
3
+ import { GenerateInTmuxByHumanDataUseCase } from './GenerateInTmuxByHumanDataUseCase';
4
+
5
+ const ASSIGNEE = 'owner-login';
6
+ const CONSOLE_BASE_URL = 'https://console.example.test';
7
+ const CONSOLE_TOKEN = 'test-token-value';
8
+
9
+ const storyOption = (
10
+ id: string,
11
+ name: string,
12
+ color: FieldOption['color'],
13
+ ): FieldOption => ({ id, name, color, description: '' });
14
+
15
+ const STORY_OPTIONS: FieldOption[] = [
16
+ storyOption('s1', 'Story Alpha', 'BLUE'),
17
+ storyOption('s2', 'Story Beta', 'GREEN'),
18
+ ];
19
+
20
+ const STATUS_OPTIONS: FieldOption[] = [
21
+ storyOption('st-unread', 'Unread', 'ORANGE'),
22
+ storyOption('st-tmux', 'In Tmux by human', 'RED'),
23
+ storyOption('st-done', 'Done', 'PURPLE'),
24
+ ];
25
+
26
+ const baseProject = (story: Project['story']): Project => ({
27
+ id: 'project-node-id',
28
+ url: 'https://github.com/orgs/demo/projects/1',
29
+ databaseId: 1,
30
+ name: 'demo',
31
+ status: {
32
+ name: 'Status',
33
+ fieldId: 'status-field',
34
+ statuses: STATUS_OPTIONS,
35
+ },
36
+ nextActionDate: null,
37
+ nextActionHour: null,
38
+ story,
39
+ remainingEstimationMinutes: null,
40
+ dependedIssueUrlSeparatedByComma: null,
41
+ completionDate50PercentConfidence: null,
42
+ });
43
+
44
+ const projectWithStory: Project = baseProject({
45
+ name: 'story',
46
+ fieldId: 'story-field',
47
+ databaseId: 2,
48
+ stories: STORY_OPTIONS,
49
+ workflowManagementStory: { id: 'wm', name: 'workflow management' },
50
+ });
51
+
52
+ const projectWithoutStory: Project = baseProject(null);
53
+
54
+ let issueCounter = 0;
55
+ const makeIssue = (overrides: Partial<Issue>): Issue => {
56
+ issueCounter += 1;
57
+ return {
58
+ nameWithOwner: 'demo/repo',
59
+ number: issueCounter,
60
+ title: `Issue ${issueCounter}`,
61
+ state: 'OPEN',
62
+ status: 'In Tmux by human',
63
+ story: null,
64
+ nextActionDate: null,
65
+ nextActionHour: null,
66
+ estimationMinutes: null,
67
+ dependedIssueUrls: [],
68
+ completionDate50PercentConfidence: null,
69
+ url: `https://github.com/demo/repo/issues/${issueCounter}`,
70
+ assignees: [ASSIGNEE],
71
+ labels: [],
72
+ org: 'demo',
73
+ repo: 'repo',
74
+ body: 'should never be projected',
75
+ itemId: `item-${issueCounter}`,
76
+ isPr: false,
77
+ isInProgress: false,
78
+ isClosed: false,
79
+ createdAt: new Date('2026-06-13T08:18:45.000Z'),
80
+ author: 'someone',
81
+ ...overrides,
82
+ };
83
+ };
84
+
85
+ describe('GenerateInTmuxByHumanDataUseCase', () => {
86
+ const usecase = new GenerateInTmuxByHumanDataUseCase();
87
+
88
+ beforeEach(() => {
89
+ issueCounter = 0;
90
+ });
91
+
92
+ const run = (
93
+ issues: Issue[],
94
+ overrides: {
95
+ project?: Project;
96
+ consoleBaseUrl?: string | null;
97
+ consoleToken?: string | null;
98
+ } = {},
99
+ ) =>
100
+ usecase.run({
101
+ project: overrides.project ?? projectWithStory,
102
+ issues,
103
+ pjcode: 'demo',
104
+ assigneeLogin: ASSIGNEE,
105
+ org: 'demo-org',
106
+ repo: 'demo-repo',
107
+ consoleBaseUrl:
108
+ overrides.consoleBaseUrl === undefined
109
+ ? CONSOLE_BASE_URL
110
+ : overrides.consoleBaseUrl,
111
+ consoleToken:
112
+ overrides.consoleToken === undefined
113
+ ? CONSOLE_TOKEN
114
+ : overrides.consoleToken,
115
+ });
116
+
117
+ describe('item filter', () => {
118
+ it('keeps In Tmux by human open issues assigned to the assignee login', () => {
119
+ const result = run([makeIssue({ story: 'Story Alpha' })]);
120
+ expect(result.v1).toEqual([
121
+ {
122
+ story: 'Story Alpha',
123
+ urls: ['https://github.com/demo/repo/issues/1'],
124
+ },
125
+ ]);
126
+ });
127
+
128
+ it('rejects issues whose status is not In Tmux by human', () => {
129
+ const result = run([makeIssue({ status: 'Unread' })]);
130
+ expect(result.v1).toEqual([]);
131
+ });
132
+
133
+ it('rejects closed issues', () => {
134
+ const result = run([makeIssue({ isClosed: true })]);
135
+ expect(result.v1).toEqual([]);
136
+ });
137
+
138
+ it('rejects issues not assigned to the assignee login', () => {
139
+ const result = run([makeIssue({ assignees: ['other-person'] })]);
140
+ expect(result.v1).toEqual([]);
141
+ });
142
+ });
143
+
144
+ describe('story grouping and ordering', () => {
145
+ it('orders groups by the project story option display order', () => {
146
+ const result = run([
147
+ makeIssue({ story: 'Story Beta' }),
148
+ makeIssue({ story: 'Story Alpha' }),
149
+ ]);
150
+ expect(result.v2.map((group) => group.story)).toEqual([
151
+ 'Story Alpha',
152
+ 'Story Beta',
153
+ ]);
154
+ });
155
+
156
+ it('places stories not present in the story options at the tail ordered by story string', () => {
157
+ const result = run([
158
+ makeIssue({ story: 'zzz unknown' }),
159
+ makeIssue({ story: 'Story Alpha' }),
160
+ makeIssue({ story: 'aaa unknown' }),
161
+ ]);
162
+ expect(result.v2.map((group) => group.story)).toEqual([
163
+ 'Story Alpha',
164
+ 'aaa unknown',
165
+ 'zzz unknown',
166
+ ]);
167
+ });
168
+
169
+ it('maps a null story to the empty string group', () => {
170
+ const result = run([makeIssue({ story: null })]);
171
+ expect(result.v1.map((group) => group.story)).toEqual(['']);
172
+ });
173
+
174
+ it('keeps input order of issues within a group', () => {
175
+ const result = run([
176
+ makeIssue({ story: 'Story Alpha' }),
177
+ makeIssue({ story: 'Story Alpha' }),
178
+ ]);
179
+ expect(result.v2[0].urls).toEqual([
180
+ {
181
+ url: 'https://github.com/demo/repo/issues/1',
182
+ title: 'Issue 1',
183
+ },
184
+ {
185
+ url: 'https://github.com/demo/repo/issues/2',
186
+ title: 'Issue 2',
187
+ },
188
+ ]);
189
+ });
190
+
191
+ it('uses an empty story order when the project has no story field', () => {
192
+ const result = run([makeIssue({ story: 'whatever' })], {
193
+ project: projectWithoutStory,
194
+ });
195
+ expect(result.v2.map((group) => group.story)).toEqual(['whatever']);
196
+ });
197
+ });
198
+
199
+ describe('v3 document', () => {
200
+ it('builds version 3 with overviewUrl from the project and a token-free console url', () => {
201
+ const result = run([makeIssue({ story: 'Story Alpha' })]);
202
+ expect(result.v3).toEqual({
203
+ version: 3,
204
+ overviewUrl: 'https://github.com/orgs/demo/projects/1',
205
+ tdpmConsoleUrl: 'https://console.example.test/projects/demo/prs',
206
+ groups: result.v2,
207
+ });
208
+ });
209
+
210
+ it('is null when the console base url is unset', () => {
211
+ const result = run([makeIssue({ story: 'Story Alpha' })], {
212
+ consoleBaseUrl: null,
213
+ });
214
+ expect(result.v3).toBeNull();
215
+ expect(result.v4).toBeNull();
216
+ });
217
+ });
218
+
219
+ describe('v4 document', () => {
220
+ it('builds version 4 with key order version, overviewUrl, tdpmConsoleUrl, newIssueUrl, groups', () => {
221
+ const result = run([makeIssue({ story: 'Story Alpha' })]);
222
+ expect(result.v4).not.toBeNull();
223
+ expect(Object.keys(result.v4 ?? {})).toEqual([
224
+ 'version',
225
+ 'overviewUrl',
226
+ 'tdpmConsoleUrl',
227
+ 'newIssueUrl',
228
+ 'groups',
229
+ ]);
230
+ });
231
+
232
+ it('embeds the token in the console url and derives the new issue url from org and repo', () => {
233
+ const result = run([makeIssue({ story: 'Story Alpha' })]);
234
+ expect(result.v4).toEqual({
235
+ version: 4,
236
+ overviewUrl: 'https://github.com/orgs/demo/projects/1',
237
+ tdpmConsoleUrl:
238
+ 'https://console.example.test/projects/demo/prs?k=test-token-value',
239
+ newIssueUrl:
240
+ 'https://github.com/demo-org/demo-repo/issues/new?assignees=owner-login',
241
+ groups: [
242
+ {
243
+ story: 'Story Alpha',
244
+ sessions: [
245
+ {
246
+ name: 'https://github.com/demo/repo/issues/1',
247
+ description: 'Issue 1',
248
+ },
249
+ ],
250
+ },
251
+ ],
252
+ });
253
+ });
254
+
255
+ it('maps each session to the issue url as name and the issue title as description', () => {
256
+ const result = run([
257
+ makeIssue({ story: 'Story Alpha' }),
258
+ makeIssue({ story: 'Story Alpha' }),
259
+ ]);
260
+ expect(result.v4?.groups).toEqual([
261
+ {
262
+ story: 'Story Alpha',
263
+ sessions: [
264
+ {
265
+ name: 'https://github.com/demo/repo/issues/1',
266
+ description: 'Issue 1',
267
+ },
268
+ {
269
+ name: 'https://github.com/demo/repo/issues/2',
270
+ description: 'Issue 2',
271
+ },
272
+ ],
273
+ },
274
+ ]);
275
+ });
276
+
277
+ it('is null when the console token is unset while v3 is still produced', () => {
278
+ const result = run([makeIssue({ story: 'Story Alpha' })], {
279
+ consoleToken: null,
280
+ });
281
+ expect(result.v4).toBeNull();
282
+ expect(result.v3).not.toBeNull();
283
+ });
284
+ });
285
+ });
@@ -0,0 +1,182 @@
1
+ import { Issue } from '../../entities/Issue';
2
+ import { FieldOption, Project } from '../../entities/Project';
3
+
4
+ export type InTmuxByHumanUrlEntry = {
5
+ url: string;
6
+ title: string;
7
+ };
8
+
9
+ export type InTmuxByHumanGroupV1 = {
10
+ story: string;
11
+ urls: string[];
12
+ };
13
+
14
+ export type InTmuxByHumanGroupV2 = {
15
+ story: string;
16
+ urls: InTmuxByHumanUrlEntry[];
17
+ };
18
+
19
+ export type InTmuxByHumanSession = {
20
+ name: string;
21
+ description: string;
22
+ };
23
+
24
+ export type InTmuxByHumanGroupV4 = {
25
+ story: string;
26
+ sessions: InTmuxByHumanSession[];
27
+ };
28
+
29
+ export type InTmuxByHumanV3 = {
30
+ version: 3;
31
+ overviewUrl: string;
32
+ tdpmConsoleUrl: string;
33
+ groups: InTmuxByHumanGroupV2[];
34
+ };
35
+
36
+ export type InTmuxByHumanV4 = {
37
+ version: 4;
38
+ overviewUrl: string;
39
+ tdpmConsoleUrl: string;
40
+ newIssueUrl: string;
41
+ groups: InTmuxByHumanGroupV4[];
42
+ };
43
+
44
+ export type InTmuxByHumanData = {
45
+ v1: InTmuxByHumanGroupV1[];
46
+ v2: InTmuxByHumanGroupV2[];
47
+ v3: InTmuxByHumanV3 | null;
48
+ v4: InTmuxByHumanV4 | null;
49
+ };
50
+
51
+ export type GenerateInTmuxByHumanDataInput = {
52
+ project: Project;
53
+ issues: Issue[];
54
+ pjcode: string;
55
+ assigneeLogin: string;
56
+ org: string;
57
+ repo: string;
58
+ consoleBaseUrl: string | null;
59
+ consoleToken: string | null;
60
+ };
61
+
62
+ type InTmuxByHumanStoryGroup = {
63
+ story: string;
64
+ issues: Issue[];
65
+ };
66
+
67
+ const IN_TMUX_BY_HUMAN_STATUS_NAME = 'In Tmux by human';
68
+ const UNKNOWN_STORY_SORT_INDEX = 999999;
69
+
70
+ export class GenerateInTmuxByHumanDataUseCase {
71
+ run = (input: GenerateInTmuxByHumanDataInput): InTmuxByHumanData => {
72
+ const {
73
+ project,
74
+ issues,
75
+ pjcode,
76
+ assigneeLogin,
77
+ org,
78
+ repo,
79
+ consoleBaseUrl,
80
+ consoleToken,
81
+ } = input;
82
+
83
+ const storyOrder = project.story
84
+ ? project.story.stories.map((option: FieldOption) => option.name)
85
+ : [];
86
+
87
+ const selectedIssues = issues.filter((issue) =>
88
+ this.isInTmuxByHuman(issue, assigneeLogin),
89
+ );
90
+
91
+ const groups = this.groupByStoryOrder(selectedIssues, storyOrder);
92
+
93
+ const v2: InTmuxByHumanGroupV2[] = groups.map((group) => ({
94
+ story: group.story,
95
+ urls: group.issues.map((issue) => ({
96
+ url: issue.url,
97
+ title: issue.title,
98
+ })),
99
+ }));
100
+
101
+ const v1: InTmuxByHumanGroupV1[] = groups.map((group) => ({
102
+ story: group.story,
103
+ urls: group.issues.map((issue) => issue.url),
104
+ }));
105
+
106
+ const v4Groups: InTmuxByHumanGroupV4[] = groups.map((group) => ({
107
+ story: group.story,
108
+ sessions: group.issues.map((issue) => ({
109
+ name: issue.url,
110
+ description: issue.title,
111
+ })),
112
+ }));
113
+
114
+ const overviewUrl = project.url;
115
+ const tdpmConsoleUrl = consoleBaseUrl
116
+ ? `${consoleBaseUrl}/projects/${pjcode}/prs`
117
+ : null;
118
+
119
+ const v3: InTmuxByHumanV3 | null = tdpmConsoleUrl
120
+ ? {
121
+ version: 3,
122
+ overviewUrl,
123
+ tdpmConsoleUrl,
124
+ groups: v2,
125
+ }
126
+ : null;
127
+
128
+ const v4: InTmuxByHumanV4 | null =
129
+ tdpmConsoleUrl && consoleToken
130
+ ? {
131
+ version: 4,
132
+ overviewUrl,
133
+ tdpmConsoleUrl: `${tdpmConsoleUrl}?k=${consoleToken}`,
134
+ newIssueUrl: `https://github.com/${org}/${repo}/issues/new?assignees=${assigneeLogin}`,
135
+ groups: v4Groups,
136
+ }
137
+ : null;
138
+
139
+ return { v1, v2, v3, v4 };
140
+ };
141
+
142
+ private isInTmuxByHuman = (issue: Issue, assigneeLogin: string): boolean =>
143
+ issue.status === IN_TMUX_BY_HUMAN_STATUS_NAME &&
144
+ issue.isClosed === false &&
145
+ issue.assignees.includes(assigneeLogin);
146
+
147
+ private groupByStoryOrder = (
148
+ issues: Issue[],
149
+ storyOrder: string[],
150
+ ): InTmuxByHumanStoryGroup[] => {
151
+ const indexByStory = new Map(
152
+ storyOrder.map((name, index) => [name, index]),
153
+ );
154
+ const issuesByStory = new Map<string, Issue[]>();
155
+ for (const issue of issues) {
156
+ const story = issue.story ?? '';
157
+ const existing = issuesByStory.get(story);
158
+ if (existing) {
159
+ existing.push(issue);
160
+ } else {
161
+ issuesByStory.set(story, [issue]);
162
+ }
163
+ }
164
+ return [...issuesByStory.entries()]
165
+ .map(([story, groupedIssues]) => ({
166
+ story,
167
+ issues: groupedIssues,
168
+ sortIndex: indexByStory.get(story) ?? UNKNOWN_STORY_SORT_INDEX,
169
+ }))
170
+ .sort((left, right) =>
171
+ left.sortIndex !== right.sortIndex
172
+ ? left.sortIndex - right.sortIndex
173
+ : left.story < right.story
174
+ ? -1
175
+ : 1,
176
+ )
177
+ .map(({ story, issues: groupedIssues }) => ({
178
+ story,
179
+ issues: groupedIssues,
180
+ }));
181
+ };
182
+ }
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "include": ["src"],
4
- "exclude": ["node_modules", "**/__tests__/*", "**/*.test.ts"],
4
+ "exclude": [
5
+ "node_modules",
6
+ "**/__tests__/*",
7
+ "**/*.test.ts",
8
+ "src/adapter/entry-points/console/ui/**",
9
+ "src/adapter/entry-points/console/ui-dist/**"
10
+ ],
5
11
  "compilerOptions": {
6
12
  "rootDir": "./src",
7
13
  "outDir": "bin",
package/tsconfig.json CHANGED
@@ -20,5 +20,10 @@
20
20
  "types": ["jest", "node"]
21
21
  },
22
22
  "include": ["src"],
23
- "exclude": ["node_modules", "**/__tests__/*"]
23
+ "exclude": [
24
+ "node_modules",
25
+ "**/__tests__/*",
26
+ "src/adapter/entry-points/console/ui/**",
27
+ "src/adapter/entry-points/console/ui-dist/**"
28
+ ]
24
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA8B3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,KAChB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CAmUP;CACH"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA8B3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,KAChB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CA4VP;CACH"}
@@ -0,0 +1,16 @@
1
+ import type { Issue } from '../../../domain/entities/Issue';
2
+ import type { Project } from '../../../domain/entities/Project';
3
+ export type InTmuxByHumanDataWriterParams = {
4
+ inTmuxDataOutputDir: string | null | undefined;
5
+ inTmuxConsoleBaseUrl: string | null | undefined;
6
+ inTmuxConsoleToken: string | null | undefined;
7
+ inTmuxProjectOrder: string[] | null | undefined;
8
+ pjcode: string | null | undefined;
9
+ assigneeLogin: string | null | undefined;
10
+ org: string;
11
+ repo: string;
12
+ project: Project;
13
+ issues: Issue[];
14
+ };
15
+ export declare const writeInTmuxByHumanData: (params: InTmuxByHumanDataWriterParams) => void;
16
+ //# sourceMappingURL=inTmuxByHumanDataWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inTmuxByHumanDataWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAMhE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAUF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,6BAA6B,KACpC,IAsEF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IssueRepository, RelatedPullRequest } from '../../../domain/usecases/adapter-interfaces/IssueRepository';
1
+ import { IssueRepository, RelatedPullRequest, IssueComment, PullRequestDetail, PullRequestCommit } from '../../../domain/usecases/adapter-interfaces/IssueRepository';
2
2
  import { Project } from '../../../domain/entities/Project';
3
3
  import { Issue } from '../../../domain/entities/Issue';
4
4
  import { StoryObjectMap } from '../../../domain/entities/StoryObjectMap';
@@ -70,5 +70,22 @@ export declare class ApiV3CheerioRestIssueRepository extends BaseGitHubRepositor
70
70
  requestChangesWithInlineComment: (prUrl: string, changedFilePath: string | null, commentBody: string) => Promise<void>;
71
71
  deletePullRequestBranch: (prUrl: string, branchName: string) => Promise<void>;
72
72
  createCommentByUrl: (issueOrPrUrl: string, commentBody: string) => Promise<void>;
73
+ getIssueOrPullRequestBody: (url: string) => Promise<string>;
74
+ getIssueOrPullRequestComments: (url: string) => Promise<IssueComment[]>;
75
+ getPullRequestDetail: (prUrl: string) => Promise<PullRequestDetail | null>;
76
+ private fetchPullRequestFiles;
77
+ getPullRequestCommits: (prUrl: string) => Promise<PullRequestCommit[]>;
78
+ getIssueOrPullRequestState: (url: string) => Promise<{
79
+ state: string;
80
+ merged: boolean;
81
+ isPullRequest: boolean;
82
+ }>;
83
+ getPullRequestSummary: (prUrl: string) => Promise<{
84
+ title: string;
85
+ body: string;
86
+ additions: number;
87
+ deletions: number;
88
+ changedFiles: number;
89
+ } | null>;
73
90
  }
74
91
  //# sourceMappingURL=ApiV3CheerioRestIssueRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,37 @@ export type RelatedPullRequest = {
14
14
  isBranchOutOfDate: boolean;
15
15
  missingRequiredCheckNames: string[];
16
16
  };
17
+ export type IssueComment = {
18
+ author: string;
19
+ body: string;
20
+ createdAt: Date;
21
+ };
22
+ export type PullRequestFile = {
23
+ filename: string;
24
+ status: string;
25
+ additions: number;
26
+ deletions: number;
27
+ patch: string | null;
28
+ };
29
+ export type PullRequestDetail = {
30
+ title: string;
31
+ state: string;
32
+ merged: boolean;
33
+ isDraft: boolean;
34
+ additions: number;
35
+ deletions: number;
36
+ changedFiles: number;
37
+ headRefName: string;
38
+ baseRefName: string;
39
+ author: string;
40
+ files: PullRequestFile[];
41
+ };
42
+ export type PullRequestCommit = {
43
+ sha: string;
44
+ message: string;
45
+ author: string;
46
+ authoredAt: Date;
47
+ };
17
48
  export interface IssueRepository {
18
49
  getAllIssues: (projectId: Project['id'], allowCacheMinutes: number) => Promise<{
19
50
  issues: Issue[];
@@ -63,5 +94,21 @@ export interface IssueRepository {
63
94
  getStoryObjectMap: (project: Project, allowCacheMinutes: number) => Promise<StoryObjectMap>;
64
95
  addIssueToProject: (project: Project, issueUrl: string) => Promise<void>;
65
96
  setDependedIssueUrl: (prUrl: string, project: Project, issueUrl: string) => Promise<void>;
97
+ getIssueOrPullRequestBody: (url: string) => Promise<string>;
98
+ getIssueOrPullRequestComments: (url: string) => Promise<IssueComment[]>;
99
+ getPullRequestDetail: (prUrl: string) => Promise<PullRequestDetail | null>;
100
+ getPullRequestCommits: (prUrl: string) => Promise<PullRequestCommit[]>;
101
+ getIssueOrPullRequestState: (url: string) => Promise<{
102
+ state: string;
103
+ merged: boolean;
104
+ isPullRequest: boolean;
105
+ }>;
106
+ getPullRequestSummary: (prUrl: string) => Promise<{
107
+ title: string;
108
+ body: string;
109
+ additions: number;
110
+ deletions: number;
111
+ changedFiles: number;
112
+ } | null>;
66
113
  }
67
114
  //# sourceMappingURL=IssueRepository.d.ts.map
@@ -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":"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"}