github-issue-tower-defence-management 1.67.1 → 1.67.3

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 (24) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/bin/adapter/entry-points/cli/index.js +2 -2
  4. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  5. package/bin/adapter/entry-points/cli/projectConfig.js +24 -2
  6. package/bin/adapter/entry-points/cli/projectConfig.js.map +1 -1
  7. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +16 -1
  8. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  9. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js +38 -7
  10. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/adapter/entry-points/cli/index.test.ts +117 -0
  13. package/src/adapter/entry-points/cli/index.ts +2 -2
  14. package/src/adapter/entry-points/cli/projectConfig.ts +31 -1
  15. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +94 -0
  16. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +47 -1
  17. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +136 -7
  18. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.ts +81 -5
  19. package/src/adapter/repositories/issue/RestIssueRepository.test.ts +195 -77
  20. package/types/adapter/entry-points/cli/projectConfig.d.ts +2 -1
  21. package/types/adapter/entry-points/cli/projectConfig.d.ts.map +1 -1
  22. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  23. package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts +2 -0
  24. package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts.map +1 -1
@@ -1,25 +1,118 @@
1
+ const mockPost = jest.fn();
2
+ const mockGet = jest.fn();
3
+ const mockPut = jest.fn();
4
+ const mockPatch = jest.fn();
5
+ const mockDelete = jest.fn();
6
+
7
+ jest.mock('ky', () => ({
8
+ default: {
9
+ post: mockPost,
10
+ get: mockGet,
11
+ put: mockPut,
12
+ patch: mockPatch,
13
+ delete: mockDelete,
14
+ extend: jest.fn(),
15
+ create: jest.fn(),
16
+ stop: jest.fn(),
17
+ },
18
+ __esModule: true,
19
+ }));
20
+
1
21
  import { RestIssueRepository } from './RestIssueRepository';
2
22
  import { LocalStorageRepository } from '../LocalStorageRepository';
3
23
  import { Issue } from '../../../domain/entities/Issue';
4
24
 
25
+ const mockJsonResponse = <T>(data: T) => ({
26
+ json: jest.fn().mockResolvedValue(data),
27
+ });
28
+
29
+ const buildIssue = (overrides: Partial<Issue> = {}): Issue => ({
30
+ nameWithOwner: 'HiromiShikata/test-repository',
31
+ number: 40,
32
+ title: 'Test Issue',
33
+ state: 'OPEN',
34
+ status: null,
35
+ story: null,
36
+ nextActionDate: null,
37
+ nextActionHour: null,
38
+ estimationMinutes: null,
39
+ dependedIssueUrls: [],
40
+ completionDate50PercentConfidence: null,
41
+ url: 'https://github.com/HiromiShikata/test-repository/issues/40',
42
+ assignees: [],
43
+ labels: ['test'],
44
+ org: 'HiromiShikata',
45
+ repo: 'test-repository',
46
+ body: 'Test body',
47
+ itemId: '',
48
+ isPr: false,
49
+ isInProgress: false,
50
+ isClosed: false,
51
+ createdAt: new Date(),
52
+ author: '',
53
+ ...overrides,
54
+ });
55
+
56
+ const buildGetIssueResponse = (
57
+ labels: string[],
58
+ assignees: string[],
59
+ ): {
60
+ labels: Array<{ name: string }>;
61
+ assignees: Array<{ login: string }>;
62
+ title: string;
63
+ body: string;
64
+ number: number;
65
+ state: string;
66
+ created_at: string;
67
+ } => ({
68
+ labels: labels.map((name) => ({ name })),
69
+ assignees: assignees.map((login) => ({ login })),
70
+ title: 'Test Issue',
71
+ body: 'Test body',
72
+ number: 40,
73
+ state: 'OPEN',
74
+ created_at: '2020-01-01T00:00:00Z',
75
+ });
76
+
5
77
  describe('RestIssueRepository', () => {
6
78
  const localStorageRepository = new LocalStorageRepository();
7
79
  const restIssueRepository: RestIssueRepository = new RestIssueRepository(
8
80
  localStorageRepository,
9
- process.env.GH_TOKEN || 'dummy',
81
+ 'dummy-token',
10
82
  );
11
83
 
84
+ afterEach(() => {
85
+ mockPost.mockReset();
86
+ mockGet.mockReset();
87
+ mockPut.mockReset();
88
+ mockPatch.mockReset();
89
+ mockDelete.mockReset();
90
+ });
91
+
12
92
  describe('createComment', () => {
13
93
  it('should create a comment', async () => {
94
+ mockPost.mockResolvedValue(undefined);
95
+
14
96
  await restIssueRepository.createComment(
15
97
  'https://github.com/HiromiShikata/test-repository/issues/40',
16
98
  'test comment',
17
99
  );
100
+
101
+ expect(mockPost).toHaveBeenCalledTimes(1);
102
+ expect(mockPost).toHaveBeenCalledWith(
103
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40/comments',
104
+ {
105
+ json: { body: 'test comment' },
106
+ headers: { Authorization: 'token dummy-token' },
107
+ },
108
+ );
18
109
  });
19
110
  });
20
111
  describe('createNewIssue', () => {
21
112
  it('should create a new issue', async () => {
22
- await restIssueRepository.createNewIssue(
113
+ mockPost.mockReturnValue(mockJsonResponse({ number: 123 }));
114
+
115
+ const issueNumber = await restIssueRepository.createNewIssue(
23
116
  'HiromiShikata',
24
117
  'test-repository',
25
118
  'test issue',
@@ -27,35 +120,35 @@ describe('RestIssueRepository', () => {
27
120
  ['HiromiShikata'],
28
121
  ['test'],
29
122
  );
123
+
124
+ expect(issueNumber).toBe(123);
125
+ expect(mockPost).toHaveBeenCalledTimes(1);
126
+ expect(mockPost).toHaveBeenCalledWith(
127
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues',
128
+ {
129
+ json: {
130
+ title: 'test issue',
131
+ body: 'test body',
132
+ assignees: ['HiromiShikata'],
133
+ labels: ['test'],
134
+ },
135
+ headers: { Authorization: 'token dummy-token' },
136
+ },
137
+ );
30
138
  });
31
139
  });
32
140
  describe('updateLabels', () => {
33
141
  it('should update issue labels', async () => {
34
- const issue: Issue = {
35
- nameWithOwner: 'HiromiShikata/test-repository',
36
- number: 40,
37
- title: 'Test Issue',
38
- state: 'OPEN',
39
- status: null,
40
- story: null,
41
- nextActionDate: null,
42
- nextActionHour: null,
43
- estimationMinutes: null,
44
- dependedIssueUrls: [],
45
- completionDate50PercentConfidence: null,
46
- url: 'https://github.com/HiromiShikata/test-repository/issues/40',
47
- assignees: [],
48
- labels: ['test'],
49
- org: 'HiromiShikata',
50
- repo: 'test-repository',
51
- body: 'Test body',
52
- itemId: '',
53
- isPr: false,
54
- isInProgress: false,
55
- isClosed: false,
56
- createdAt: new Date(),
57
- author: '',
58
- };
142
+ const issue = buildIssue();
143
+
144
+ mockPut.mockResolvedValue(undefined);
145
+ mockGet
146
+ .mockReturnValueOnce(
147
+ mockJsonResponse(buildGetIssueResponse(['default'], [])),
148
+ )
149
+ .mockReturnValueOnce(
150
+ mockJsonResponse(buildGetIssueResponse(['test', 'updated'], [])),
151
+ );
59
152
 
60
153
  await restIssueRepository.updateLabels(issue, ['default']);
61
154
  const issueDefault = await restIssueRepository.getIssue(issue.url);
@@ -65,35 +158,45 @@ describe('RestIssueRepository', () => {
65
158
  expect(updatedIssue.labels).toContain('updated');
66
159
  expect(updatedIssue.labels).toContain('test');
67
160
  expect(updatedIssue.labels).not.toContain('default');
161
+
162
+ expect(mockPut).toHaveBeenCalledTimes(2);
163
+ expect(mockPut).toHaveBeenNthCalledWith(
164
+ 1,
165
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40/labels',
166
+ {
167
+ json: { labels: ['default'] },
168
+ headers: {
169
+ Authorization: 'token dummy-token',
170
+ Accept: 'application/vnd.github.v3+json',
171
+ },
172
+ },
173
+ );
174
+ expect(mockPut).toHaveBeenNthCalledWith(
175
+ 2,
176
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40/labels',
177
+ {
178
+ json: { labels: ['test', 'updated'] },
179
+ headers: {
180
+ Authorization: 'token dummy-token',
181
+ Accept: 'application/vnd.github.v3+json',
182
+ },
183
+ },
184
+ );
68
185
  });
69
186
  });
70
187
  describe('removeLabel', () => {
71
188
  it('should remove a specific label from issue', async () => {
72
- const issue: Issue = {
73
- nameWithOwner: 'HiromiShikata/test-repository',
74
- number: 40,
75
- title: 'Test Issue',
76
- state: 'OPEN',
77
- status: null,
78
- story: null,
79
- nextActionDate: null,
80
- nextActionHour: null,
81
- estimationMinutes: null,
82
- dependedIssueUrls: [],
83
- completionDate50PercentConfidence: null,
84
- url: 'https://github.com/HiromiShikata/test-repository/issues/40',
85
- assignees: [],
86
- labels: ['test'],
87
- org: 'HiromiShikata',
88
- repo: 'test-repository',
89
- body: 'Test body',
90
- itemId: '',
91
- isPr: false,
92
- isInProgress: false,
93
- isClosed: false,
94
- createdAt: new Date(),
95
- author: '',
96
- };
189
+ const issue = buildIssue();
190
+
191
+ mockPut.mockResolvedValue(undefined);
192
+ mockDelete.mockResolvedValue(undefined);
193
+ mockGet
194
+ .mockReturnValueOnce(
195
+ mockJsonResponse(buildGetIssueResponse(['test', 'to-remove'], [])),
196
+ )
197
+ .mockReturnValueOnce(
198
+ mockJsonResponse(buildGetIssueResponse(['test'], [])),
199
+ );
97
200
 
98
201
  await restIssueRepository.updateLabels(issue, ['test', 'to-remove']);
99
202
  const issueBefore = await restIssueRepository.getIssue(issue.url);
@@ -104,35 +207,32 @@ describe('RestIssueRepository', () => {
104
207
  const issueAfter = await restIssueRepository.getIssue(issue.url);
105
208
  expect(issueAfter.labels).not.toContain('to-remove');
106
209
  expect(issueAfter.labels).toContain('test');
210
+
211
+ expect(mockDelete).toHaveBeenCalledTimes(1);
212
+ expect(mockDelete).toHaveBeenCalledWith(
213
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40/labels/to-remove',
214
+ {
215
+ headers: {
216
+ Authorization: 'token dummy-token',
217
+ Accept: 'application/vnd.github.v3+json',
218
+ },
219
+ },
220
+ );
107
221
  });
108
222
  });
109
223
  describe('updateAssigneeList', () => {
110
224
  it('should update issue assignees', async () => {
111
- const issue: Issue = {
112
- nameWithOwner: 'HiromiShikata/test-repository',
113
- number: 40,
114
- title: 'Test Issue',
115
- state: 'OPEN',
116
- status: null,
117
- story: null,
118
- nextActionDate: null,
119
- nextActionHour: null,
120
- estimationMinutes: null,
121
- dependedIssueUrls: [],
122
- completionDate50PercentConfidence: null,
123
- url: 'https://github.com/HiromiShikata/test-repository/issues/40',
124
- assignees: [],
125
- labels: ['test'],
126
- org: 'HiromiShikata',
127
- repo: 'test-repository',
128
- body: 'Test body',
129
- itemId: '',
130
- isPr: false,
131
- isInProgress: false,
132
- isClosed: false,
133
- createdAt: new Date(),
134
- author: '',
135
- };
225
+ const issue = buildIssue();
226
+
227
+ mockPatch.mockResolvedValue(undefined);
228
+ mockGet
229
+ .mockReturnValueOnce(
230
+ mockJsonResponse(buildGetIssueResponse(['test'], ['HiromiShikata'])),
231
+ )
232
+ .mockReturnValueOnce(
233
+ mockJsonResponse(buildGetIssueResponse(['test'], [])),
234
+ );
235
+
136
236
  await restIssueRepository.updateAssigneeList(issue, ['HiromiShikata']);
137
237
  const issueWithAssignee = await restIssueRepository.getIssue(issue.url);
138
238
  expect(issueWithAssignee.assignees).toContain('HiromiShikata');
@@ -141,6 +241,24 @@ describe('RestIssueRepository', () => {
141
241
  issue.url,
142
242
  );
143
243
  expect(issueWithoutAssignee.assignees).not.toContain('HiromiShikata');
244
+
245
+ expect(mockPatch).toHaveBeenCalledTimes(2);
246
+ expect(mockPatch).toHaveBeenNthCalledWith(
247
+ 1,
248
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40',
249
+ {
250
+ json: { assignees: ['HiromiShikata'] },
251
+ headers: { Authorization: 'token dummy-token' },
252
+ },
253
+ );
254
+ expect(mockPatch).toHaveBeenNthCalledWith(
255
+ 2,
256
+ 'https://api.github.com/repos/HiromiShikata/test-repository/issues/40',
257
+ {
258
+ json: { assignees: [] },
259
+ headers: { Authorization: 'token dummy-token' },
260
+ },
261
+ );
144
262
  });
145
263
  });
146
264
  });
@@ -18,7 +18,8 @@ export type ConfigFile = {
18
18
  };
19
19
  export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
20
20
  export declare const loadConfigFile: (configFilePath: string) => ConfigFile;
21
- export declare const parseProjectReadmeConfig: (readme: string) => ConfigFile;
21
+ export declare const knownProjectReadmeConfigKeys: readonly string[];
22
+ export declare const parseProjectReadmeConfig: (readme: string, projectUrl?: string) => ConfigFile;
22
23
  export declare const mergeConfigs: (configFile: ConfigFile, cliOverrides: ConfigFile, readmeOverrides: ConfigFile) => ConfigFile;
23
24
  export declare const fetchProjectReadme: (projectUrl: string, token: string) => Promise<string | null>;
24
25
  //# sourceMappingURL=projectConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAoCF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AAEvE,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,UAkDvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,UAsDzD,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,cAAc,UAAU,EACxB,iBAAiB,UAAU,KAC1B,UA2DD,CAAC;AAkBH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CA0DvB,CAAC"}
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAoCF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AAEvE,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,UAkDvD,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAezD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,UAgEF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,cAAc,UAAU,EACxB,iBAAiB,UAAU,KAC1B,UA2DD,CAAC;AAkBH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CA0DvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA2B3D,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,CAmPP;CACH"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA2B3D,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,CAiSP;CACH"}
@@ -19,6 +19,8 @@ export type ProjectItem = {
19
19
  }[];
20
20
  };
21
21
  export declare const PAGINATION_DELAY_MS = 5000;
22
+ export declare const FETCH_PROJECT_ITEMS_INITIAL_PAGE_SIZE = 50;
23
+ export declare const FETCH_PROJECT_ITEMS_GRAPHQL_ERROR_PAYLOAD_MAX_LENGTH = 4000;
22
24
  export declare class GraphqlProjectItemRepository extends BaseGitHubRepository {
23
25
  fetchItemId: (projectId: string, owner: string, repositoryName: string, issueNumber: number) => Promise<string | undefined>;
24
26
  fetchProjectItems: (projectId: string) => Promise<ProjectItem[]>;
@@ -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;AAC/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,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EAAE,CAAC;CACL,CAAC;AACF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,qBAAa,4BAA6B,SAAQ,oBAAoB;IACpE,WAAW,GACT,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoE5B;IACF,iBAAiB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8TnE;IACF,gCAAgC,GAC9B,UAAU,MAAM,KACf,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CACJ,CAGC;IAEF,oBAAoB,GAClB,OAAO,MAAM,EACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,KAClB,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CACJ,CAqJC;IACF,qBAAqB,GACnB,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2L5B;IACF,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAQ/D;IAEF,kBAAkB,GAChB,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,OACI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAClB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,oBAAoB,EAAE,MAAM,CAAA;KAAE,KACnC,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,iBAAiB,GACf,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CA+Bd;IACF,sBAAsB,GACpB,SAAS,OAAO,CAAC,IAAI,CAAC,EACtB,SAAS,MAAM,EACf,OAAO,KAAK,CAAC,QAAQ,CAAC,EACtB,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAEd;IAEF,qBAAqB,GACnB,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,+BAA+B,GAC7B,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF,iBAAiB,GACf,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CA4Dd;CACH"}
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;AAC/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,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EAAE,CAAC;CACL,CAAC;AACF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,eAAO,MAAM,oDAAoD,OAAO,CAAC;AAczE,qBAAa,4BAA6B,SAAQ,oBAAoB;IACpE,WAAW,GACT,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoE5B;IACF,iBAAiB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2XnE;IACF,gCAAgC,GAC9B,UAAU,MAAM,KACf,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CACJ,CAGC;IAEF,oBAAoB,GAClB,OAAO,MAAM,EACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,KAClB,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CACJ,CAqJC;IACF,qBAAqB,GACnB,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2L5B;IACF,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAQ/D;IAEF,kBAAkB,GAChB,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,OACI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAClB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,oBAAoB,EAAE,MAAM,CAAA;KAAE,KACnC,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,iBAAiB,GACf,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CA+Bd;IACF,sBAAsB,GACpB,SAAS,OAAO,CAAC,IAAI,CAAC,EACtB,SAAS,MAAM,EACf,OAAO,KAAK,CAAC,QAAQ,CAAC,EACtB,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAEd;IAEF,qBAAqB,GACnB,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,+BAA+B,GAC7B,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF,iBAAiB,GACf,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CA4Dd;CACH"}