github-issue-tower-defence-management 1.71.0 → 1.71.1

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.71.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.71.0...v1.71.1) (2026-06-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **notify:** query both issue and pullRequest in fetchProjectItemByUrl so PR URLs resolve to project items ([2d9edb4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/2d9edb4ce533d05c75ba74bfd57dc1e7373aaf59))
7
+
1
8
  # [1.71.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.70.0...v1.71.0) (2026-06-06)
2
9
 
3
10
 
@@ -402,7 +402,7 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
402
402
  };
403
403
  this.fetchProjectItemByUrl = async (issueUrl) => {
404
404
  const { owner, repo, issueNumber } = this.extractIssueFromUrl(issueUrl);
405
- const graphql = `query GetIssue($owner: String!, $repo: String!, $number: Int!) {
405
+ const graphql = `query GetIssueOrPullRequest($owner: String!, $repo: String!, $number: Int!) {
406
406
  repository(owner: $owner, name: $repo) {
407
407
  issue(number: $number) {
408
408
  number
@@ -478,6 +478,80 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
478
478
  }
479
479
  }
480
480
  }
481
+ pullRequest(number: $number) {
482
+ number
483
+ title
484
+ state
485
+ url
486
+ body
487
+ createdAt
488
+ author {
489
+ login
490
+ }
491
+ labels(first: 100) {
492
+ nodes {
493
+ name
494
+ }
495
+ }
496
+ assignees(first: 20) {
497
+ nodes {
498
+ login
499
+ }
500
+ }
501
+ repository {
502
+ nameWithOwner
503
+ }
504
+ projectItems(first: 10) {
505
+ nodes {
506
+ id
507
+ fieldValues(first: 10) {
508
+ nodes {
509
+ ... on ProjectV2ItemFieldTextValue {
510
+ text
511
+ field {
512
+ ... on ProjectV2Field {
513
+ name
514
+ }
515
+ }
516
+ }
517
+ ... on ProjectV2ItemFieldNumberValue {
518
+ number
519
+ id
520
+ field {
521
+ ... on ProjectV2Field {
522
+ name
523
+ }
524
+ }
525
+ }
526
+ ... on ProjectV2ItemFieldDateValue {
527
+ date
528
+ field {
529
+ ... on ProjectV2Field {
530
+ name
531
+ }
532
+ }
533
+ }
534
+ ... on ProjectV2ItemFieldSingleSelectValue {
535
+ name
536
+ field {
537
+ ... on ProjectV2SingleSelectField {
538
+ name
539
+ }
540
+ }
541
+ }
542
+ ... on ProjectV2ItemFieldIterationValue {
543
+ title
544
+ field {
545
+ ... on ProjectV2Field {
546
+ name
547
+ }
548
+ }
549
+ }
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
481
555
  }
482
556
  }`;
483
557
  const graphqlQuery = {
@@ -503,26 +577,27 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
503
577
  throw new Error(`GitHub GraphQL API returned no data for fetchProjectItemByUrl: ${errorMessages}`);
504
578
  }
505
579
  const data = response.data;
506
- if (!data.repository.issue) {
580
+ const content = data.repository.issue ?? data.repository.pullRequest;
581
+ if (!content) {
507
582
  return null;
508
583
  }
509
- const projectItems = data.repository.issue.projectItems.nodes;
584
+ const projectItems = content.projectItems.nodes;
510
585
  const item = projectItems[0];
511
586
  if (!item) {
512
587
  throw new Error(`No project item found for issue ${issueUrl}`);
513
588
  }
514
589
  return {
515
590
  id: item.id,
516
- nameWithOwner: data.repository.issue.repository.nameWithOwner,
517
- number: data.repository.issue.number,
518
- title: data.repository.issue.title,
519
- state: this.convertStrToState(data.repository.issue.state),
520
- url: data.repository.issue.url,
521
- body: data.repository.issue.body,
522
- labels: data.repository.issue.labels?.nodes?.map((l) => l.name) || [],
523
- assignees: data.repository.issue.assignees?.nodes?.map((a) => a.login) || [],
524
- createdAt: data.repository.issue.createdAt || new Date().toISOString(),
525
- author: data.repository.issue.author?.login || '',
591
+ nameWithOwner: content.repository.nameWithOwner,
592
+ number: content.number,
593
+ title: content.title,
594
+ state: this.convertStrToState(content.state),
595
+ url: content.url,
596
+ body: content.body,
597
+ labels: content.labels?.nodes?.map((l) => l.name) || [],
598
+ assignees: content.assignees?.nodes?.map((a) => a.login) || [],
599
+ createdAt: content.createdAt || new Date().toISOString(),
600
+ author: content.author?.login || '',
526
601
  customFields: item.fieldValues.nodes
527
602
  .filter((field) => !!field.field)
528
603
  .map((field) => {
@@ -1 +1 @@
1
- {"version":3,"file":"GraphqlProjectItemRepository.js","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/GraphqlProjectItemRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphqlProjectItemRepository.js","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/GraphqlProjectItemRepository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.71.0",
3
+ "version": "1.71.1",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -49,6 +49,24 @@ const extractRequestedFirstFromMockCall = (
49
49
  return typeof first === 'number' ? first : undefined;
50
50
  };
51
51
 
52
+ const extractRequestedQueryFromMockCall = (
53
+ call: unknown,
54
+ ): string | undefined => {
55
+ if (!Array.isArray(call)) {
56
+ return undefined;
57
+ }
58
+ const second: unknown = call[1];
59
+ if (!isRecord(second)) {
60
+ return undefined;
61
+ }
62
+ const json: unknown = second.json;
63
+ if (!isRecord(json)) {
64
+ return undefined;
65
+ }
66
+ const query: unknown = json.query;
67
+ return typeof query === 'string' ? query : undefined;
68
+ };
69
+
52
70
  const extractErrorMessage = (value: unknown): string => {
53
71
  if (value instanceof Error) {
54
72
  return value.message;
@@ -477,4 +495,170 @@ describe('GraphqlProjectItemRepository', () => {
477
495
  ]);
478
496
  });
479
497
  });
498
+
499
+ describe('fetchProjectItemByUrl', () => {
500
+ afterEach(() => {
501
+ mockPost.mockClear();
502
+ });
503
+
504
+ const makeContentNode = (url: string, number: number, title: string) => ({
505
+ number,
506
+ title,
507
+ state: 'OPEN',
508
+ url,
509
+ body: 'body text',
510
+ createdAt: '2024-01-01T00:00:00Z',
511
+ author: { login: 'octocat' },
512
+ labels: { nodes: [{ name: 'bug' }] },
513
+ assignees: { nodes: [{ login: 'octocat' }] },
514
+ repository: { nameWithOwner: 'owner/repo' },
515
+ projectItems: {
516
+ nodes: [
517
+ {
518
+ id: `item-${number}`,
519
+ fieldValues: {
520
+ nodes: [
521
+ {
522
+ __typename: 'ProjectV2ItemFieldSingleSelectValue',
523
+ name: 'Preparation',
524
+ field: { name: 'Status' },
525
+ },
526
+ ],
527
+ },
528
+ },
529
+ ],
530
+ },
531
+ });
532
+
533
+ it('should return project item for an issue URL', async () => {
534
+ const localStorageRepository = new LocalStorageRepository();
535
+ const repository = new GraphqlProjectItemRepository(
536
+ localStorageRepository,
537
+ 'dummy-token',
538
+ );
539
+
540
+ mockPost.mockReturnValueOnce(
541
+ mockJsonResponse({
542
+ data: {
543
+ repository: {
544
+ issue: makeContentNode(
545
+ 'https://github.com/owner/repo/issues/7',
546
+ 7,
547
+ 'Issue Title',
548
+ ),
549
+ pullRequest: null,
550
+ },
551
+ },
552
+ }),
553
+ );
554
+
555
+ const result = await repository.fetchProjectItemByUrl(
556
+ 'https://github.com/owner/repo/issues/7',
557
+ );
558
+
559
+ expect(mockPost).toHaveBeenCalledTimes(1);
560
+ expect(result).not.toBeNull();
561
+ expect(result?.url).toBe('https://github.com/owner/repo/issues/7');
562
+ expect(result?.title).toBe('Issue Title');
563
+ expect(result?.id).toBe('item-7');
564
+ expect(result?.customFields).toEqual([
565
+ { name: 'Status', value: 'Preparation' },
566
+ ]);
567
+ });
568
+
569
+ it('should return project item for a pull request URL when repository.issue is null', async () => {
570
+ const localStorageRepository = new LocalStorageRepository();
571
+ const repository = new GraphqlProjectItemRepository(
572
+ localStorageRepository,
573
+ 'dummy-token',
574
+ );
575
+
576
+ mockPost.mockReturnValueOnce(
577
+ mockJsonResponse({
578
+ data: {
579
+ repository: {
580
+ issue: null,
581
+ pullRequest: makeContentNode(
582
+ 'https://github.com/owner/repo/pull/9',
583
+ 9,
584
+ 'PR Title',
585
+ ),
586
+ },
587
+ },
588
+ }),
589
+ );
590
+
591
+ const result = await repository.fetchProjectItemByUrl(
592
+ 'https://github.com/owner/repo/pull/9',
593
+ );
594
+
595
+ expect(mockPost).toHaveBeenCalledTimes(1);
596
+ expect(result).not.toBeNull();
597
+ expect(result?.url).toBe('https://github.com/owner/repo/pull/9');
598
+ expect(result?.title).toBe('PR Title');
599
+ expect(result?.id).toBe('item-9');
600
+ expect(result?.customFields).toEqual([
601
+ { name: 'Status', value: 'Preparation' },
602
+ ]);
603
+ });
604
+
605
+ it('should query both issue and pullRequest fields in a single request', async () => {
606
+ const localStorageRepository = new LocalStorageRepository();
607
+ const repository = new GraphqlProjectItemRepository(
608
+ localStorageRepository,
609
+ 'dummy-token',
610
+ );
611
+
612
+ mockPost.mockReturnValueOnce(
613
+ mockJsonResponse({
614
+ data: {
615
+ repository: {
616
+ issue: null,
617
+ pullRequest: makeContentNode(
618
+ 'https://github.com/owner/repo/pull/3',
619
+ 3,
620
+ 'PR Title',
621
+ ),
622
+ },
623
+ },
624
+ }),
625
+ );
626
+
627
+ await repository.fetchProjectItemByUrl(
628
+ 'https://github.com/owner/repo/pull/3',
629
+ );
630
+
631
+ const sentQuery = extractRequestedQueryFromMockCall(
632
+ mockPost.mock.calls[0],
633
+ );
634
+ expect(typeof sentQuery).toBe('string');
635
+ expect(sentQuery).toContain('issue(number: $number)');
636
+ expect(sentQuery).toContain('pullRequest(number: $number)');
637
+ });
638
+
639
+ it('should return null when neither issue nor pullRequest exists', async () => {
640
+ const localStorageRepository = new LocalStorageRepository();
641
+ const repository = new GraphqlProjectItemRepository(
642
+ localStorageRepository,
643
+ 'dummy-token',
644
+ );
645
+
646
+ mockPost.mockReturnValueOnce(
647
+ mockJsonResponse({
648
+ data: {
649
+ repository: {
650
+ issue: null,
651
+ pullRequest: null,
652
+ },
653
+ },
654
+ }),
655
+ );
656
+
657
+ const result = await repository.fetchProjectItemByUrl(
658
+ 'https://github.com/owner/repo/issues/123',
659
+ );
660
+
661
+ expect(result).toBeNull();
662
+ });
663
+ });
480
664
  });
@@ -665,7 +665,7 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
665
665
  issueUrl: string,
666
666
  ): Promise<ProjectItem | null> => {
667
667
  const { owner, repo, issueNumber } = this.extractIssueFromUrl(issueUrl);
668
- const graphql = `query GetIssue($owner: String!, $repo: String!, $number: Int!) {
668
+ const graphql = `query GetIssueOrPullRequest($owner: String!, $repo: String!, $number: Int!) {
669
669
  repository(owner: $owner, name: $repo) {
670
670
  issue(number: $number) {
671
671
  number
@@ -741,6 +741,80 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
741
741
  }
742
742
  }
743
743
  }
744
+ pullRequest(number: $number) {
745
+ number
746
+ title
747
+ state
748
+ url
749
+ body
750
+ createdAt
751
+ author {
752
+ login
753
+ }
754
+ labels(first: 100) {
755
+ nodes {
756
+ name
757
+ }
758
+ }
759
+ assignees(first: 20) {
760
+ nodes {
761
+ login
762
+ }
763
+ }
764
+ repository {
765
+ nameWithOwner
766
+ }
767
+ projectItems(first: 10) {
768
+ nodes {
769
+ id
770
+ fieldValues(first: 10) {
771
+ nodes {
772
+ ... on ProjectV2ItemFieldTextValue {
773
+ text
774
+ field {
775
+ ... on ProjectV2Field {
776
+ name
777
+ }
778
+ }
779
+ }
780
+ ... on ProjectV2ItemFieldNumberValue {
781
+ number
782
+ id
783
+ field {
784
+ ... on ProjectV2Field {
785
+ name
786
+ }
787
+ }
788
+ }
789
+ ... on ProjectV2ItemFieldDateValue {
790
+ date
791
+ field {
792
+ ... on ProjectV2Field {
793
+ name
794
+ }
795
+ }
796
+ }
797
+ ... on ProjectV2ItemFieldSingleSelectValue {
798
+ name
799
+ field {
800
+ ... on ProjectV2SingleSelectField {
801
+ name
802
+ }
803
+ }
804
+ }
805
+ ... on ProjectV2ItemFieldIterationValue {
806
+ title
807
+ field {
808
+ ... on ProjectV2Field {
809
+ name
810
+ }
811
+ }
812
+ }
813
+ }
814
+ }
815
+ }
816
+ }
817
+ }
744
818
  }
745
819
  }`;
746
820
  const graphqlQuery = {
@@ -751,6 +825,34 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
751
825
  number: issueNumber,
752
826
  },
753
827
  };
828
+ type ContentNode = {
829
+ number: number;
830
+ title: string;
831
+ state: string;
832
+ url: string;
833
+ body: string;
834
+ createdAt: string;
835
+ author: { login: string } | null;
836
+ labels: { nodes: { name: string }[] };
837
+ assignees: { nodes: { login: string }[] };
838
+ repository: { nameWithOwner: string };
839
+ projectItems: {
840
+ nodes: {
841
+ id: string;
842
+ fieldValues: {
843
+ nodes: {
844
+ text: string;
845
+ number: number;
846
+ date: string;
847
+ name: string;
848
+ field: {
849
+ name: string;
850
+ };
851
+ }[];
852
+ };
853
+ }[];
854
+ };
855
+ };
754
856
  const response = await ky
755
857
  .post('https://api.github.com/graphql', {
756
858
  json: graphqlQuery,
@@ -761,34 +863,8 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
761
863
  .json<{
762
864
  data?: {
763
865
  repository: {
764
- issue: {
765
- number: number;
766
- title: string;
767
- state: string;
768
- url: string;
769
- body: string;
770
- createdAt: string;
771
- author: { login: string } | null;
772
- labels: { nodes: { name: string }[] };
773
- assignees: { nodes: { login: string }[] };
774
- repository: { nameWithOwner: string };
775
- projectItems: {
776
- nodes: {
777
- id: string;
778
- fieldValues: {
779
- nodes: {
780
- text: string;
781
- number: number;
782
- date: string;
783
- name: string;
784
- field: {
785
- name: string;
786
- };
787
- }[];
788
- };
789
- }[];
790
- };
791
- };
866
+ issue: ContentNode | null;
867
+ pullRequest: ContentNode | null;
792
868
  };
793
869
  };
794
870
  errors?: { message: string }[];
@@ -802,40 +878,27 @@ query GetProjectFields($owner: String!, $repository: String!, $issueNumber: Int!
802
878
  );
803
879
  }
804
880
  const data = response.data;
805
- if (!data.repository.issue) {
881
+ const content = data.repository.issue ?? data.repository.pullRequest;
882
+ if (!content) {
806
883
  return null;
807
884
  }
808
- const projectItems: {
809
- id: string;
810
- fieldValues: {
811
- nodes: {
812
- text: string;
813
- number: number;
814
- date: string;
815
- name: string;
816
- field: {
817
- name: string;
818
- };
819
- }[];
820
- };
821
- }[] = data.repository.issue.projectItems.nodes;
885
+ const projectItems = content.projectItems.nodes;
822
886
  const item = projectItems[0];
823
887
  if (!item) {
824
888
  throw new Error(`No project item found for issue ${issueUrl}`);
825
889
  }
826
890
  return {
827
891
  id: item.id,
828
- nameWithOwner: data.repository.issue.repository.nameWithOwner,
829
- number: data.repository.issue.number,
830
- title: data.repository.issue.title,
831
- state: this.convertStrToState(data.repository.issue.state),
832
- url: data.repository.issue.url,
833
- body: data.repository.issue.body,
834
- labels: data.repository.issue.labels?.nodes?.map((l) => l.name) || [],
835
- assignees:
836
- data.repository.issue.assignees?.nodes?.map((a) => a.login) || [],
837
- createdAt: data.repository.issue.createdAt || new Date().toISOString(),
838
- author: data.repository.issue.author?.login || '',
892
+ nameWithOwner: content.repository.nameWithOwner,
893
+ number: content.number,
894
+ title: content.title,
895
+ state: this.convertStrToState(content.state),
896
+ url: content.url,
897
+ body: content.body,
898
+ labels: content.labels?.nodes?.map((l) => l.name) || [],
899
+ assignees: content.assignees?.nodes?.map((a) => a.login) || [],
900
+ createdAt: content.createdAt || new Date().toISOString(),
901
+ author: content.author?.login || '',
839
902
  customFields: item.fieldValues.nodes
840
903
  .filter((field) => !!field.field)
841
904
  .map((field) => {
@@ -257,6 +257,75 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
257
257
  );
258
258
  });
259
259
 
260
+ it('should throw IssueNotFoundError when a pull request URL has no backing project item (no silent skip)', async () => {
261
+ mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
262
+ mockIssueRepository.get.mockResolvedValue(null);
263
+
264
+ await expect(
265
+ useCase.run({
266
+ projectUrl: 'https://github.com/users/user/projects/1',
267
+ issueUrl: 'https://github.com/user/repo/pull/999',
268
+ thresholdForAutoReject: 3,
269
+ workflowBlockerResolvedWebhookUrl: null,
270
+ allowedIssueAuthors: null,
271
+ }),
272
+ ).rejects.toThrow('Issue not found: https://github.com/user/repo/pull/999');
273
+ expect(mockIssueRepository.update).not.toHaveBeenCalled();
274
+ expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
275
+ });
276
+
277
+ it('should process a pull request URL the same as an issue URL when the project item resolves', async () => {
278
+ const prIssue = createMockIssue({
279
+ url: 'https://github.com/user/repo/pull/77',
280
+ number: 77,
281
+ status: 'Preparation',
282
+ isPr: true,
283
+ });
284
+
285
+ mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
286
+ mockIssueRepository.get.mockResolvedValue(prIssue);
287
+ mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
288
+ createMockComment({ content: 'From: :robot: Agent report' }),
289
+ ]);
290
+ mockIssueRepository.getOpenPullRequest.mockResolvedValue({
291
+ url: 'https://github.com/user/repo/pull/77',
292
+ isConflicted: false,
293
+ isPassedAllCiJob: true,
294
+ isCiStateSuccess: true,
295
+ isResolvedAllReviewComments: true,
296
+ isBranchOutOfDate: false,
297
+ missingRequiredCheckNames: [],
298
+ });
299
+
300
+ await useCase.run({
301
+ projectUrl: 'https://github.com/users/user/projects/1',
302
+ issueUrl: 'https://github.com/user/repo/pull/77',
303
+ thresholdForAutoReject: 3,
304
+ workflowBlockerResolvedWebhookUrl: null,
305
+ allowedIssueAuthors: null,
306
+ });
307
+
308
+ expect(mockIssueRepository.get).toHaveBeenCalledWith(
309
+ 'https://github.com/user/repo/pull/77',
310
+ mockProject,
311
+ );
312
+ expect(mockIssueRepository.update).toHaveBeenCalledWith(
313
+ expect.objectContaining({
314
+ url: 'https://github.com/user/repo/pull/77',
315
+ status: 'Awaiting Quality Check',
316
+ }),
317
+ mockProject,
318
+ );
319
+ expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
320
+ mockProject,
321
+ expect.objectContaining({
322
+ url: 'https://github.com/user/repo/pull/77',
323
+ status: 'Awaiting Quality Check',
324
+ }),
325
+ 'awaiting-quality-check-id',
326
+ );
327
+ });
328
+
260
329
  it('should throw IllegalIssueStatusError when issue status is not Preparation', async () => {
261
330
  const issue = createMockIssue({
262
331
  url: 'https://github.com/user/repo/issues/1',
@@ -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,eAAO,MAAM,qCAAqC,MAAM,CAAC;AACzD,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"}
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,MAAM,CAAC;AACzD,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,CA0P5B;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"}