@valiantys/atlassian-app-frontend 3.0.0-alpha-27 → 3.0.0-alpha-29

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 (25) hide show
  1. package/atlassian/jira/shared/data-access-issue/src/lib/jira-issue-service/index.cjs.js +1 -1
  2. package/atlassian/jira/shared/data-access-issue/src/lib/jira-issue-service/index.es.js +9 -3
  3. package/atlassian/jira/shared/data-access-issue/src/lib/jira-remote-links-service/index.cjs.js +1 -0
  4. package/atlassian/jira/shared/data-access-issue/src/lib/jira-remote-links-service/index.es.js +20 -0
  5. package/atlassian-app/atlassian-app-frontend.api.md +1 -1
  6. package/data-access-issue/atlassian-app-frontend-data-access-issue.api.json +218 -5
  7. package/data-access-issue/atlassian-app-frontend.api.md +18 -1
  8. package/data-access-issue/index.cjs.js +1 -1
  9. package/data-access-issue/index.d.ts +49 -1
  10. package/data-access-issue/index.es.js +3 -1
  11. package/package.json +1 -1
  12. package/shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js +2 -2
  13. package/shared/util-fetch/src/lib/shared-util-fetch/index.es.js +24 -19
  14. package/ui-async-queue-job-log/atlassian-app-frontend.api.md +1 -1
  15. package/ui-host-router/atlassian-app-frontend-ui-host-router.api.json +19 -5
  16. package/ui-host-router/atlassian-app-frontend.api.md +3 -2
  17. package/ui-host-router/index.d.ts +3 -2
  18. package/util-atlassian-product-fetch/atlassian-app-frontend-util-atlassian-product-fetch.api.json +61 -0
  19. package/util-atlassian-product-fetch/atlassian-app-frontend.api.md +3 -0
  20. package/util-atlassian-product-fetch/index.cjs.js +1 -1
  21. package/util-atlassian-product-fetch/index.d.ts +2 -0
  22. package/util-atlassian-product-fetch/index.es.js +4 -3
  23. package/util-jira-v3-api/atlassian-app-frontend-util-jira-v3-api.api.json +180 -0
  24. package/util-jira-v3-api/atlassian-app-frontend.api.md +35 -0
  25. package/util-jira-v3-api/index.d.ts +28 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=class h{constructor(e){this.fetchSvc=e}async updateProperty(e,t,s){return this.fetchSvc.fetch({method:"PUT",url:this.fetchSvc.route`/rest/api/3/issue/${e}/properties/${t}`},s)}async updateField(e,t,s){await this.updateFields(e,{[t]:s})}async updateFields(e,t){await this.updateIssue(e,{fields:t})}async getIssueField(e,t){var s;return(s=await this.getIssueFields(e,[t]))==null?void 0:s[t]}async getIssueFields(e,t){return(await this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}?fields=${t.join(",")}`})).fields}async getIssue(e,t=["*all"],s=!1){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}?fields=${t.join(",")}&expand=${s?"renderedFields":""}`})}async issueSearch(e,t,s=50){let c;const i=[];do{const u=await this.issueSearchByPage(e,t,c,s);i.push(...u.issues),c=u.nextPageToken}while(c!==void 0);return i}async issueSearchByPage(e,t,s,c=50){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/search/jql`},{fields:t,jql:e,maxResults:c,nextPageToken:s})}async addWorklog(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/worklog`},t)}async queryForIssuesInProjects(e){const t=`project IN (${e.join(",")})`;return this.issueSearch(t,["key","project"],5e3)}async createIssue(e){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue`},e)}async updateIssue(e,t){return this.fetchSvc.fetch({method:"PUT",url:this.fetchSvc.route`/rest/api/3/issue/${e}`},t)}async getIssueComments(e,t=0){const s=t?`?startAt=${t}`:"";return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment${s}`})}async getIssueCommentById(e,t){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment/${t}`})}async addIssueComment(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment`},{body:t})}async transitionIssue(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/transitions`},t)}async createIssueLink(e){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issueLink`},e)}async getIssueTypes(){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issuetype`})}async getIssueTypeSchemes(){return await this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issuetypescheme?expand=projects,issuetypes`})}};h.issueUrl="/rest/api/3/issue";let r=h;exports.JiraIssueService=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=class h{constructor(e){this.fetchSvc=e}async updateProperty(e,t,s){return this.fetchSvc.fetch({method:"PUT",url:this.fetchSvc.route`/rest/api/3/issue/${e}/properties/${t}`},s)}async updateField(e,t,s){await this.updateFields(e,{[t]:s})}async updateFields(e,t){await this.updateIssue(e,{fields:t})}async getIssueField(e,t){var s;return(s=await this.getIssueFields(e,[t]))==null?void 0:s[t]}async getIssueFields(e,t){return(await this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}?fields=${t.join(",")}`})).fields}async getIssue(e,t=["*all"],s=!1){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}?fields=${t.join(",")}&expand=${s?"renderedFields":""}`})}async issueSearch(e,t,s=50){let c;const r=[];do{const u=await this.issueSearchByPage(e,t,c,s);r.push(...u.issues),c=u.nextPageToken}while(c!==void 0);return r}async issueSearchByPage(e,t,s,c=50){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/search/jql`},{fields:t,jql:e,maxResults:c,nextPageToken:s})}async addWorklog(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/worklog`},t)}async queryForIssuesInProjects(e){const t=`project IN (${e.join(",")})`;return this.issueSearch(t,["key","project"],5e3)}async createIssue(e){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue`},e)}async updateIssue(e,t){return this.fetchSvc.fetch({method:"PUT",url:this.fetchSvc.route`/rest/api/3/issue/${e}`},t)}async getIssueComments(e,t=0){const s=t?`?startAt=${t}`:"";return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment${s}`})}async getIssueCommentById(e,t){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment/${t}`})}async addIssueComment(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/comment`},{body:t})}async transitionIssue(e,t){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issue/${e}/transitions`},t)}async createIssueLink(e){return this.fetchSvc.fetch({method:"POST",url:this.fetchSvc.route`/rest/api/3/issueLink`},e)}async getIssueTypes(){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issuetype`})}async getIssueTypeSchemes({maxResults:e,orderBy:t,startAt:s,expand:c}={}){const r=new URLSearchParams;return c&&r.append("expand",c),e&&r.append("maxResults",e.toString()),t&&r.append("orderBy",t),s&&r.append("startAt",s.toString()),this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issuetypescheme?${r}`})}};h.issueUrl="/rest/api/3/issue";let i=h;exports.JiraIssueService=i;
@@ -134,10 +134,16 @@ const h = class h {
134
134
  url: this.fetchSvc.route`/rest/api/3/issuetype`
135
135
  });
136
136
  }
137
- async getIssueTypeSchemes() {
138
- return await this.fetchSvc.fetch({
137
+ async getIssueTypeSchemes({
138
+ maxResults: e,
139
+ orderBy: t,
140
+ startAt: s,
141
+ expand: c
142
+ } = {}) {
143
+ const r = new URLSearchParams();
144
+ return c && r.append("expand", c), e && r.append("maxResults", e.toString()), t && r.append("orderBy", t), s && r.append("startAt", s.toString()), this.fetchSvc.fetch({
139
145
  method: "GET",
140
- url: this.fetchSvc.route`/rest/api/3/issuetypescheme?expand=projects,issuetypes`
146
+ url: this.fetchSvc.route`/rest/api/3/issuetypescheme?${r}`
141
147
  });
142
148
  }
143
149
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class r{constructor(e){this.fetchSvc=e}getRemoteLinksForIssue(e){return this.fetchSvc.fetch({method:"GET",url:this.fetchSvc.route`/rest/api/3/issue/${e}/remotelink`})}deleteRemoteLinkForIssueById(e,t){return this.fetchSvc.fetch({method:"DELETE",url:this.fetchSvc.route`/rest/api/3/issue/${e}/remotelink/${t}`})}}exports.JiraRemoteLinksService=r;
@@ -0,0 +1,20 @@
1
+ class r {
2
+ constructor(e) {
3
+ this.fetchSvc = e;
4
+ }
5
+ getRemoteLinksForIssue(e) {
6
+ return this.fetchSvc.fetch({
7
+ method: "GET",
8
+ url: this.fetchSvc.route`/rest/api/3/issue/${e}/remotelink`
9
+ });
10
+ }
11
+ deleteRemoteLinkForIssueById(e, t) {
12
+ return this.fetchSvc.fetch({
13
+ method: "DELETE",
14
+ url: this.fetchSvc.route`/rest/api/3/issue/${e}/remotelink/${t}`
15
+ });
16
+ }
17
+ }
18
+ export {
19
+ r as JiraRemoteLinksService
20
+ };
@@ -49,7 +49,7 @@ export const IS_STANDALONE: boolean;
49
49
 
50
50
  // Warnings were encountered during analysis:
51
51
  //
52
- // /Users/chris.hardin/code/od/engineering-monorepo/atlassian/shared/frontend-feature-atlassian-app/src/lib/atlassian-app-config.d.ts:65:9 - (ae-forgotten-export) The symbol "InvokeRemoteSignature" needs to be exported by the entry point atlassian-app.d.ts
52
+ // /Users/chris.hardin/code/od/engineering-monorepo-copy/atlassian/shared/frontend-feature-atlassian-app/src/lib/atlassian-app-config.d.ts:65:9 - (ae-forgotten-export) The symbol "InvokeRemoteSignature" needs to be exported by the entry point atlassian-app.d.ts
53
53
 
54
54
  // (No @packageDocumentation comment for this package)
55
55
 
@@ -962,7 +962,15 @@
962
962
  "excerptTokens": [
963
963
  {
964
964
  "kind": "Content",
965
- "text": "getIssueTypeSchemes(): "
965
+ "text": "getIssueTypeSchemes({ maxResults, orderBy, startAt, expand, }?: "
966
+ },
967
+ {
968
+ "kind": "Content",
969
+ "text": "{\n maxResults?: number;\n orderBy?: string;\n startAt?: number;\n expand?: string;\n }"
970
+ },
971
+ {
972
+ "kind": "Content",
973
+ "text": "): "
966
974
  },
967
975
  {
968
976
  "kind": "Reference",
@@ -973,6 +981,15 @@
973
981
  "kind": "Content",
974
982
  "text": "<"
975
983
  },
984
+ {
985
+ "kind": "Reference",
986
+ "text": "PagedResponse",
987
+ "canonicalReference": "@valiantys/atlassian-app-frontend!~PagedResponse:interface"
988
+ },
989
+ {
990
+ "kind": "Content",
991
+ "text": "<"
992
+ },
976
993
  {
977
994
  "kind": "Reference",
978
995
  "text": "IssueTypeScheme",
@@ -980,7 +997,7 @@
980
997
  },
981
998
  {
982
999
  "kind": "Content",
983
- "text": "[]>"
1000
+ "text": ">>"
984
1001
  },
985
1002
  {
986
1003
  "kind": "Content",
@@ -989,13 +1006,22 @@
989
1006
  ],
990
1007
  "isStatic": false,
991
1008
  "returnTypeTokenRange": {
992
- "startIndex": 1,
993
- "endIndex": 5
1009
+ "startIndex": 3,
1010
+ "endIndex": 9
994
1011
  },
995
1012
  "releaseTag": "Public",
996
1013
  "isProtected": false,
997
1014
  "overloadIndex": 1,
998
- "parameters": [],
1015
+ "parameters": [
1016
+ {
1017
+ "parameterName": "{ maxResults, orderBy, startAt, expand, }",
1018
+ "parameterTypeTokenRange": {
1019
+ "startIndex": 1,
1020
+ "endIndex": 2
1021
+ },
1022
+ "isOptional": true
1023
+ }
1024
+ ],
999
1025
  "isOptional": false,
1000
1026
  "isAbstract": false,
1001
1027
  "name": "getIssueTypeSchemes"
@@ -1704,6 +1730,193 @@
1704
1730
  }
1705
1731
  ],
1706
1732
  "implementsTokenRanges": []
1733
+ },
1734
+ {
1735
+ "kind": "Class",
1736
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraRemoteLinksService:class",
1737
+ "docComment": "",
1738
+ "excerptTokens": [
1739
+ {
1740
+ "kind": "Content",
1741
+ "text": "export declare class JiraRemoteLinksService "
1742
+ }
1743
+ ],
1744
+ "fileUrlPath": "../../jira/shared/data-access-issue/src/lib/jira-remote-links-service.d.ts",
1745
+ "releaseTag": "Public",
1746
+ "isAbstract": false,
1747
+ "name": "JiraRemoteLinksService",
1748
+ "preserveMemberOrder": false,
1749
+ "members": [
1750
+ {
1751
+ "kind": "Constructor",
1752
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraRemoteLinksService:constructor(1)",
1753
+ "docComment": "/**\n * Constructs a new instance of the `JiraRemoteLinksService` class\n */\n",
1754
+ "excerptTokens": [
1755
+ {
1756
+ "kind": "Content",
1757
+ "text": "constructor(fetchSvc: "
1758
+ },
1759
+ {
1760
+ "kind": "Reference",
1761
+ "text": "AtlassianProductFetchService",
1762
+ "canonicalReference": "@valiantys/atlassian-app-frontend!~AtlassianProductFetchService:interface"
1763
+ },
1764
+ {
1765
+ "kind": "Content",
1766
+ "text": "<'jira'>"
1767
+ },
1768
+ {
1769
+ "kind": "Content",
1770
+ "text": ");"
1771
+ }
1772
+ ],
1773
+ "releaseTag": "Public",
1774
+ "isProtected": false,
1775
+ "overloadIndex": 1,
1776
+ "parameters": [
1777
+ {
1778
+ "parameterName": "fetchSvc",
1779
+ "parameterTypeTokenRange": {
1780
+ "startIndex": 1,
1781
+ "endIndex": 3
1782
+ },
1783
+ "isOptional": false
1784
+ }
1785
+ ]
1786
+ },
1787
+ {
1788
+ "kind": "Method",
1789
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraRemoteLinksService#deleteRemoteLinkForIssueById:member(1)",
1790
+ "docComment": "",
1791
+ "excerptTokens": [
1792
+ {
1793
+ "kind": "Content",
1794
+ "text": "deleteRemoteLinkForIssueById(issueIdOrKey: "
1795
+ },
1796
+ {
1797
+ "kind": "Content",
1798
+ "text": "string"
1799
+ },
1800
+ {
1801
+ "kind": "Content",
1802
+ "text": ", linkId: "
1803
+ },
1804
+ {
1805
+ "kind": "Content",
1806
+ "text": "number"
1807
+ },
1808
+ {
1809
+ "kind": "Content",
1810
+ "text": "): "
1811
+ },
1812
+ {
1813
+ "kind": "Reference",
1814
+ "text": "Promise",
1815
+ "canonicalReference": "!Promise:interface"
1816
+ },
1817
+ {
1818
+ "kind": "Content",
1819
+ "text": "<void>"
1820
+ },
1821
+ {
1822
+ "kind": "Content",
1823
+ "text": ";"
1824
+ }
1825
+ ],
1826
+ "isStatic": false,
1827
+ "returnTypeTokenRange": {
1828
+ "startIndex": 5,
1829
+ "endIndex": 7
1830
+ },
1831
+ "releaseTag": "Public",
1832
+ "isProtected": false,
1833
+ "overloadIndex": 1,
1834
+ "parameters": [
1835
+ {
1836
+ "parameterName": "issueIdOrKey",
1837
+ "parameterTypeTokenRange": {
1838
+ "startIndex": 1,
1839
+ "endIndex": 2
1840
+ },
1841
+ "isOptional": false
1842
+ },
1843
+ {
1844
+ "parameterName": "linkId",
1845
+ "parameterTypeTokenRange": {
1846
+ "startIndex": 3,
1847
+ "endIndex": 4
1848
+ },
1849
+ "isOptional": false
1850
+ }
1851
+ ],
1852
+ "isOptional": false,
1853
+ "isAbstract": false,
1854
+ "name": "deleteRemoteLinkForIssueById"
1855
+ },
1856
+ {
1857
+ "kind": "Method",
1858
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraRemoteLinksService#getRemoteLinksForIssue:member(1)",
1859
+ "docComment": "",
1860
+ "excerptTokens": [
1861
+ {
1862
+ "kind": "Content",
1863
+ "text": "getRemoteLinksForIssue(issueIdOrKey: "
1864
+ },
1865
+ {
1866
+ "kind": "Content",
1867
+ "text": "string"
1868
+ },
1869
+ {
1870
+ "kind": "Content",
1871
+ "text": "): "
1872
+ },
1873
+ {
1874
+ "kind": "Reference",
1875
+ "text": "Promise",
1876
+ "canonicalReference": "!Promise:interface"
1877
+ },
1878
+ {
1879
+ "kind": "Content",
1880
+ "text": "<"
1881
+ },
1882
+ {
1883
+ "kind": "Reference",
1884
+ "text": "RemoteIssueLink",
1885
+ "canonicalReference": "@valiantys/atlassian-app-frontend!~RemoteIssueLink:interface"
1886
+ },
1887
+ {
1888
+ "kind": "Content",
1889
+ "text": "[]>"
1890
+ },
1891
+ {
1892
+ "kind": "Content",
1893
+ "text": ";"
1894
+ }
1895
+ ],
1896
+ "isStatic": false,
1897
+ "returnTypeTokenRange": {
1898
+ "startIndex": 3,
1899
+ "endIndex": 7
1900
+ },
1901
+ "releaseTag": "Public",
1902
+ "isProtected": false,
1903
+ "overloadIndex": 1,
1904
+ "parameters": [
1905
+ {
1906
+ "parameterName": "issueIdOrKey",
1907
+ "parameterTypeTokenRange": {
1908
+ "startIndex": 1,
1909
+ "endIndex": 2
1910
+ },
1911
+ "isOptional": false
1912
+ }
1913
+ ],
1914
+ "isOptional": false,
1915
+ "isAbstract": false,
1916
+ "name": "getRemoteLinksForIssue"
1917
+ }
1918
+ ],
1919
+ "implementsTokenRanges": []
1707
1920
  }
1708
1921
  ]
1709
1922
  }
@@ -46,10 +46,16 @@ export class JiraIssueService {
46
46
  //
47
47
  // (undocumented)
48
48
  getIssueTypes(): Promise<IssueTypeDetails[]>;
49
+ // Warning: (ae-forgotten-export) The symbol "PagedResponse" needs to be exported by the entry point data-access-issue.d.ts
49
50
  // Warning: (ae-forgotten-export) The symbol "IssueTypeScheme" needs to be exported by the entry point data-access-issue.d.ts
50
51
  //
51
52
  // (undocumented)
52
- getIssueTypeSchemes(): Promise<IssueTypeScheme[]>;
53
+ getIssueTypeSchemes({ maxResults, orderBy, startAt, expand, }?: {
54
+ maxResults?: number;
55
+ orderBy?: string;
56
+ startAt?: number;
57
+ expand?: string;
58
+ }): Promise<PagedResponse<IssueTypeScheme>>;
53
59
  // Warning: (ae-forgotten-export) The symbol "AtlassianDocumentFormat" needs to be exported by the entry point data-access-issue.d.ts
54
60
  //
55
61
  // (undocumented)
@@ -79,6 +85,17 @@ export class JiraIssueService {
79
85
  updateProperty(issueIdOrKey: string, propertyName: string, value: any): Promise<void>;
80
86
  }
81
87
 
88
+ // @public (undocumented)
89
+ export class JiraRemoteLinksService {
90
+ constructor(fetchSvc: AtlassianProductFetchService<'jira'>);
91
+ // (undocumented)
92
+ deleteRemoteLinkForIssueById(issueIdOrKey: string, linkId: number): Promise<void>;
93
+ // Warning: (ae-forgotten-export) The symbol "RemoteIssueLink" needs to be exported by the entry point data-access-issue.d.ts
94
+ //
95
+ // (undocumented)
96
+ getRemoteLinksForIssue(issueIdOrKey: string): Promise<RemoteIssueLink[]>;
97
+ }
98
+
82
99
  // (No @packageDocumentation comment for this package)
83
100
 
84
101
  ```
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../atlassian/jira/shared/data-access-issue/src/lib/jira-issue-service/index.cjs.js");exports.JiraIssueService=e.JiraIssueService;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../atlassian/jira/shared/data-access-issue/src/lib/jira-issue-service/index.cjs.js"),i=require("../atlassian/jira/shared/data-access-issue/src/lib/jira-remote-links-service/index.cjs.js");exports.JiraIssueService=e.JiraIssueService;exports.JiraRemoteLinksService=i.JiraRemoteLinksService;
@@ -253,7 +253,27 @@ export declare class JiraIssueService {
253
253
  transitionIssue(issueIdOrKey: string, body: TransitionIssueRequest): Promise<void>;
254
254
  createIssueLink(issueLinkRequest: IssueLinkRequest): Promise<void>;
255
255
  getIssueTypes(): Promise<IssueTypeDetails[]>;
256
- getIssueTypeSchemes(): Promise<IssueTypeScheme[]>;
256
+ getIssueTypeSchemes({ maxResults, orderBy, startAt, expand, }?: {
257
+ maxResults?: number;
258
+ orderBy?: string;
259
+ startAt?: number;
260
+ expand?: string;
261
+ }): Promise<PagedResponse<IssueTypeScheme>>;
262
+ }
263
+
264
+ export declare class JiraRemoteLinksService {
265
+ private readonly fetchSvc;
266
+ constructor(fetchSvc: AtlassianProductFetchService<'jira'>);
267
+ getRemoteLinksForIssue(issueIdOrKey: string): Promise<RemoteIssueLink[]>;
268
+ deleteRemoteLinkForIssueById(issueIdOrKey: string, linkId: number): Promise<void>;
269
+ }
270
+
271
+ declare interface PagedResponse<T> {
272
+ startAt: number;
273
+ isLast: boolean;
274
+ maxResults: number;
275
+ total: number;
276
+ values: T[];
257
277
  }
258
278
 
259
279
  declare type Product = 'jira' | 'bitbucket' | 'confluence' | 'connected-data';
@@ -270,6 +290,34 @@ declare interface Project {
270
290
  lead?: User;
271
291
  }
272
292
 
293
+ declare interface RemoteIssueLink {
294
+ application?: {
295
+ name?: string;
296
+ type?: string;
297
+ };
298
+ globalId?: string;
299
+ id?: number;
300
+ object: {
301
+ icon?: {
302
+ title?: string;
303
+ url16x16?: string;
304
+ };
305
+ status?: {
306
+ icon?: {
307
+ link?: string;
308
+ title?: string;
309
+ url16x16?: string;
310
+ };
311
+ resolved?: boolean;
312
+ };
313
+ summary?: string;
314
+ title: string;
315
+ url: string;
316
+ };
317
+ relationship?: string;
318
+ self?: string;
319
+ }
320
+
273
321
  declare type RequestProductMethod = (url: FetchRoute, init: RequestInit) => Promise<APIResponse>;
274
322
 
275
323
  declare interface StaticIssueFields<T = AtlassianDocumentFormat> {
@@ -1,4 +1,6 @@
1
1
  import { JiraIssueService as i } from "../atlassian/jira/shared/data-access-issue/src/lib/jira-issue-service/index.es.js";
2
+ import { JiraRemoteLinksService as m } from "../atlassian/jira/shared/data-access-issue/src/lib/jira-remote-links-service/index.es.js";
2
3
  export {
3
- i as JiraIssueService
4
+ i as JiraIssueService,
5
+ m as JiraRemoteLinksService
4
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valiantys/atlassian-app-frontend",
3
- "version": "3.0.0-alpha-27",
3
+ "version": "3.0.0-alpha-29",
4
4
  "description": "This library provides an Atlassian Forge Custom UI wrapper component that handles all the setup necessary to support an app that can run deployed or in standalone mode",
5
5
  "exports": {
6
6
  "./atlassian-app": {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class l extends Error{constructor(t,e,a=t){super(a),this.statusText=t,this.statusCode=e,this.statusCode=e,this.statusText=t}toJSON(){return{statusCode:this.statusCode,statusText:this.statusText}}}function u(s,t){const e={Authorization:s.startsWith("Bearer ")?s:`Bearer ${s}`};return t?{...t,...e}:e}async function w(s,t,e){const a=u(s,e.headers||{});return fetch(t,{...e,headers:a})}async function A(s,t,e,a,n="json",o={}){return f(t,e,u(s,o),a,n)}async function f(s,t,e,a,n="json",o){const d=typeof o=="string"?{includeCredentials:o}:o??{},j={...e,Accept:n==="json"?"application/json":"text/html","Content-Type":n==="json"?"application/json":"text/html"},x=a?JSON.stringify(a):void 0,r=await fetch(s,{method:t,headers:j,body:x,credentials:d.includeCredentials});let c;if(r.ok){if(t==="DELETE"||r.status===204?c=void 0:n==="text"?c=await r.text():c=await r.json(),d.returnMetadata){const i={};return r.headers.forEach((h,y)=>{i[y]=h}),{body:c,headers:i}}return c}else{let i="";try{i=await r.text()}catch{}const h=`${r.status} ${r.statusText} - ${t} ${s}
2
- ${i}`;throw console.error(h),new l(r.statusText,r.status,h)}}exports.FetchError=l;exports.addAuthHeader=u;exports.bearerAuthFetch=A;exports.bearerAuthFetchRaw=w;exports.jsonFetch=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class f extends Error{constructor(t,r,a=t){super(a),this.statusText=t,this.statusCode=r,this.statusCode=r,this.statusText=t}toJSON(){return{statusCode:this.statusCode,statusText:this.statusText}}}function h(e,t){const r={Authorization:e.startsWith("Bearer ")||e.startsWith("Basic ")?e:`Bearer ${e}`};return t?{...t,...r}:r}function A(e,t){return"Basic "+Buffer.from(`${e}:${t}`).toString("base64")}async function B(e,t,r){const a=h(e,r.headers||{});return fetch(t,{...r,headers:a})}async function b(e,t,r,a,n="json",c={}){return l(t,r,h(e,c),a,n)}async function l(e,t,r,a,n="json",c){const d=typeof c=="string"?{includeCredentials:c}:c??{},j={...r,Accept:n==="json"?"application/json":"text/html","Content-Type":n==="json"?"application/json":"text/html"},x=a?JSON.stringify(a):void 0,s=await fetch(e,{method:t,headers:j,body:x,credentials:d.includeCredentials});let o;if(s.ok){if(t==="DELETE"||s.status===204?o=void 0:n==="text"?o=await s.text():o=await s.json(),d.returnMetadata){const i={};return s.headers.forEach((u,y)=>{i[y]=u}),{body:o,headers:i}}return o}else{let i="";try{i=await s.text()}catch{}const u=`${s.status} ${s.statusText} - ${t} ${e}
2
+ ${i}`;throw console.error(u),new f(s.statusText,s.status,u)}}exports.FetchError=f;exports.addAuthHeader=h;exports.bearerAuthFetch=b;exports.bearerAuthFetchRaw=B;exports.encodeBasicAuthHeaderValue=A;exports.jsonFetch=l;
@@ -1,6 +1,6 @@
1
1
  class j extends Error {
2
- constructor(t, e, a = t) {
3
- super(a), this.statusText = t, this.statusCode = e, this.statusCode = e, this.statusText = t;
2
+ constructor(t, s, a = t) {
3
+ super(a), this.statusText = t, this.statusCode = s, this.statusCode = s, this.statusText = t;
4
4
  }
5
5
  toJSON() {
6
6
  return {
@@ -9,34 +9,38 @@ class j extends Error {
9
9
  };
10
10
  }
11
11
  }
12
- function d(s, t) {
13
- const e = {
14
- Authorization: s.startsWith("Bearer ") ? s : `Bearer ${s}`
12
+ function d(e, t) {
13
+ const s = {
14
+ Authorization: e.startsWith("Bearer ") || e.startsWith("Basic ") ? e : `Bearer ${e}`
15
+ // default to Bearer token if not provided
15
16
  };
16
- return t ? { ...t, ...e } : e;
17
+ return t ? { ...t, ...s } : s;
17
18
  }
18
- async function p(s, t, e) {
19
+ function B(e, t) {
20
+ return "Basic " + Buffer.from(`${e}:${t}`).toString("base64");
21
+ }
22
+ async function $(e, t, s) {
19
23
  const a = d(
20
- s,
21
- e.headers || {}
24
+ e,
25
+ s.headers || {}
22
26
  );
23
- return fetch(t, { ...e, headers: a });
27
+ return fetch(t, { ...s, headers: a });
24
28
  }
25
- async function w(s, t, e, a, n = "json", o = {}) {
29
+ async function p(e, t, s, a, n = "json", o = {}) {
26
30
  return y(
27
31
  t,
28
- e,
29
- d(s, o),
32
+ s,
33
+ d(e, o),
30
34
  a,
31
35
  n
32
36
  );
33
37
  }
34
- async function y(s, t, e, a, n = "json", o) {
38
+ async function y(e, t, s, a, n = "json", o) {
35
39
  const h = typeof o == "string" ? { includeCredentials: o } : o ?? {}, f = {
36
- ...e,
40
+ ...s,
37
41
  Accept: n === "json" ? "application/json" : "text/html",
38
42
  "Content-Type": n === "json" ? "application/json" : "text/html"
39
- }, l = a ? JSON.stringify(a) : void 0, r = await fetch(s, {
43
+ }, l = a ? JSON.stringify(a) : void 0, r = await fetch(e, {
40
44
  method: t,
41
45
  headers: f,
42
46
  body: l,
@@ -57,7 +61,7 @@ async function y(s, t, e, a, n = "json", o) {
57
61
  i = await r.text();
58
62
  } catch {
59
63
  }
60
- const u = `${r.status} ${r.statusText} - ${t} ${s}
64
+ const u = `${r.status} ${r.statusText} - ${t} ${e}
61
65
  ${i}`;
62
66
  throw console.error(u), new j(r.statusText, r.status, u);
63
67
  }
@@ -65,7 +69,8 @@ async function y(s, t, e, a, n = "json", o) {
65
69
  export {
66
70
  j as FetchError,
67
71
  d as addAuthHeader,
68
- w as bearerAuthFetch,
69
- p as bearerAuthFetchRaw,
72
+ p as bearerAuthFetch,
73
+ $ as bearerAuthFetchRaw,
74
+ B as encodeBasicAuthHeaderValue,
70
75
  y as jsonFetch
71
76
  };
@@ -15,7 +15,7 @@ export function JobLogTable(props: {
15
15
 
16
16
  // Warnings were encountered during analysis:
17
17
  //
18
- // /Users/chris.hardin/code/od/engineering-monorepo/atlassian/forge/shared/frontend-ui-async-queue-job-log/src/lib/job-log-table.d.ts:4:9 - (ae-forgotten-export) The symbol "JobLogEntry" needs to be exported by the entry point ui-async-queue-job-log.d.ts
18
+ // /Users/chris.hardin/code/od/engineering-monorepo-copy/atlassian/forge/shared/frontend-ui-async-queue-job-log/src/lib/job-log-table.d.ts:4:9 - (ae-forgotten-export) The symbol "JobLogEntry" needs to be exported by the entry point ui-async-queue-job-log.d.ts
19
19
 
20
20
  // (No @packageDocumentation comment for this package)
21
21
 
@@ -332,11 +332,24 @@
332
332
  "kind": "Content",
333
333
  "text": "export declare function HostRouterLink({ url, action, label, linkStyle, buttonIcon, buttonAppearance, }: "
334
334
  },
335
+ {
336
+ "kind": "Reference",
337
+ "text": "Readonly",
338
+ "canonicalReference": "!Readonly:type"
339
+ },
340
+ {
341
+ "kind": "Content",
342
+ "text": "<"
343
+ },
335
344
  {
336
345
  "kind": "Reference",
337
346
  "text": "HostRouterLinkProps",
338
347
  "canonicalReference": "@valiantys/atlassian-app-frontend!HostRouterLinkProps:interface"
339
348
  },
349
+ {
350
+ "kind": "Content",
351
+ "text": ">"
352
+ },
340
353
  {
341
354
  "kind": "Content",
342
355
  "text": "): "
@@ -357,8 +370,8 @@
357
370
  ],
358
371
  "fileUrlPath": "../../shared/frontend-ui-host-router/src/lib/host-router-link.d.ts",
359
372
  "returnTypeTokenRange": {
360
- "startIndex": 3,
361
- "endIndex": 5
373
+ "startIndex": 6,
374
+ "endIndex": 8
362
375
  },
363
376
  "releaseTag": "Public",
364
377
  "overloadIndex": 1,
@@ -367,7 +380,7 @@
367
380
  "parameterName": "{ url, action, label, linkStyle, buttonIcon, buttonAppearance, }",
368
381
  "parameterTypeTokenRange": {
369
382
  "startIndex": 1,
370
- "endIndex": 2
383
+ "endIndex": 5
371
384
  },
372
385
  "isOptional": false
373
386
  }
@@ -482,8 +495,9 @@
482
495
  "text": "label: "
483
496
  },
484
497
  {
485
- "kind": "Content",
486
- "text": "string"
498
+ "kind": "Reference",
499
+ "text": "React.ReactNode",
500
+ "canonicalReference": "@types/react!React.ReactNode:type"
487
501
  },
488
502
  {
489
503
  "kind": "Content",
@@ -4,6 +4,7 @@
4
4
 
5
5
  ```ts
6
6
 
7
+ import { default as default_2 } from 'react';
7
8
  import { IconButtonAppearance } from '@atlaskit/button/new';
8
9
  import { IconProp } from '@atlaskit/button/new';
9
10
  import { JSX as JSX_2 } from 'react/jsx-runtime';
@@ -20,7 +21,7 @@ export interface HostRouter {
20
21
  }
21
22
 
22
23
  // @public (undocumented)
23
- export function HostRouterLink({ url, action, label, linkStyle, buttonIcon, buttonAppearance, }: HostRouterLinkProps): JSX_2.Element;
24
+ export function HostRouterLink({ url, action, label, linkStyle, buttonIcon, buttonAppearance, }: Readonly<HostRouterLinkProps>): JSX_2.Element;
24
25
 
25
26
  // @public (undocumented)
26
27
  export interface HostRouterLinkProps {
@@ -30,7 +31,7 @@ export interface HostRouterLinkProps {
30
31
  buttonAppearance?: IconButtonAppearance;
31
32
  // (undocumented)
32
33
  buttonIcon?: IconProp;
33
- label: string;
34
+ label: default_2.ReactNode;
34
35
  // (undocumented)
35
36
  linkStyle: 'link' | 'button';
36
37
  // (undocumented)
@@ -1,3 +1,4 @@
1
+ import { default as default_2 } from 'react';
1
2
  import { IconButtonAppearance } from '@atlaskit/button/new';
2
3
  import { IconProp } from '@atlaskit/button/new';
3
4
  import { JSX as JSX_2 } from 'react/jsx-runtime';
@@ -9,13 +10,13 @@ export declare interface HostRouter {
9
10
  reload(): Promise<void>;
10
11
  }
11
12
 
12
- export declare function HostRouterLink({ url, action, label, linkStyle, buttonIcon, buttonAppearance, }: HostRouterLinkProps): JSX_2.Element;
13
+ export declare function HostRouterLink({ url, action, label, linkStyle, buttonIcon, buttonAppearance, }: Readonly<HostRouterLinkProps>): JSX_2.Element;
13
14
 
14
15
  export declare interface HostRouterLinkProps {
15
16
  url: string;
16
17
  action: 'navigate' | 'open';
17
18
  /** anchor text or button label **/
18
- label: string;
19
+ label: default_2.ReactNode;
19
20
  linkStyle: 'link' | 'button';
20
21
  buttonIcon?: IconProp;
21
22
  buttonAppearance?: IconButtonAppearance;
@@ -807,6 +807,67 @@
807
807
  ],
808
808
  "name": "bearerAuthFetchRaw"
809
809
  },
810
+ {
811
+ "kind": "Function",
812
+ "canonicalReference": "@valiantys/atlassian-app-frontend!encodeBasicAuthHeaderValue:function(1)",
813
+ "docComment": "",
814
+ "excerptTokens": [
815
+ {
816
+ "kind": "Content",
817
+ "text": "export declare function encodeBasicAuthHeaderValue(email: "
818
+ },
819
+ {
820
+ "kind": "Content",
821
+ "text": "string"
822
+ },
823
+ {
824
+ "kind": "Content",
825
+ "text": ", apiToken: "
826
+ },
827
+ {
828
+ "kind": "Content",
829
+ "text": "string"
830
+ },
831
+ {
832
+ "kind": "Content",
833
+ "text": "): "
834
+ },
835
+ {
836
+ "kind": "Content",
837
+ "text": "string"
838
+ },
839
+ {
840
+ "kind": "Content",
841
+ "text": ";"
842
+ }
843
+ ],
844
+ "fileUrlPath": "../../../shared/util-fetch/src/lib/shared-util-fetch.d.ts",
845
+ "returnTypeTokenRange": {
846
+ "startIndex": 5,
847
+ "endIndex": 6
848
+ },
849
+ "releaseTag": "Public",
850
+ "overloadIndex": 1,
851
+ "parameters": [
852
+ {
853
+ "parameterName": "email",
854
+ "parameterTypeTokenRange": {
855
+ "startIndex": 1,
856
+ "endIndex": 2
857
+ },
858
+ "isOptional": false
859
+ },
860
+ {
861
+ "parameterName": "apiToken",
862
+ "parameterTypeTokenRange": {
863
+ "startIndex": 3,
864
+ "endIndex": 4
865
+ },
866
+ "isOptional": false
867
+ }
868
+ ],
869
+ "name": "encodeBasicAuthHeaderValue"
870
+ },
810
871
  {
811
872
  "kind": "Class",
812
873
  "canonicalReference": "@valiantys/atlassian-app-frontend!FetchError:class",
@@ -40,6 +40,9 @@ export function bearerAuthFetch<T>(authToken: string, url: string, method: Fetch
40
40
  // @public (undocumented)
41
41
  export function bearerAuthFetchRaw(authToken: string, url: string, init: RequestInit): Promise<Response>;
42
42
 
43
+ // @public (undocumented)
44
+ export function encodeBasicAuthHeaderValue(email: string, apiToken: string): string;
45
+
43
46
  // @public (undocumented)
44
47
  export class FetchError extends Error {
45
48
  constructor(statusText: string, statusCode: number, message?: string);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js");exports.FetchError=e.FetchError;exports.addAuthHeader=e.addAuthHeader;exports.bearerAuthFetch=e.bearerAuthFetch;exports.bearerAuthFetchRaw=e.bearerAuthFetchRaw;exports.jsonFetch=e.jsonFetch;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js");exports.FetchError=e.FetchError;exports.addAuthHeader=e.addAuthHeader;exports.bearerAuthFetch=e.bearerAuthFetch;exports.bearerAuthFetchRaw=e.bearerAuthFetchRaw;exports.encodeBasicAuthHeaderValue=e.encodeBasicAuthHeaderValue;exports.jsonFetch=e.jsonFetch;
@@ -21,6 +21,8 @@ export declare function bearerAuthFetch<T>(authToken: string, url: string, metho
21
21
 
22
22
  export declare function bearerAuthFetchRaw(authToken: string, url: string, init: RequestInit): Promise<Response>;
23
23
 
24
+ export declare function encodeBasicAuthHeaderValue(email: string, apiToken: string): string;
25
+
24
26
  export declare class FetchError extends Error {
25
27
  readonly statusText: string;
26
28
  readonly statusCode: number;
@@ -1,8 +1,9 @@
1
- import { FetchError as t, addAuthHeader as h, bearerAuthFetch as a, bearerAuthFetchRaw as c, jsonFetch as o } from "../shared/util-fetch/src/lib/shared-util-fetch/index.es.js";
1
+ import { FetchError as t, addAuthHeader as a, bearerAuthFetch as h, bearerAuthFetchRaw as c, encodeBasicAuthHeaderValue as d, jsonFetch as o } from "../shared/util-fetch/src/lib/shared-util-fetch/index.es.js";
2
2
  export {
3
3
  t as FetchError,
4
- h as addAuthHeader,
5
- a as bearerAuthFetch,
4
+ a as addAuthHeader,
5
+ h as bearerAuthFetch,
6
6
  c as bearerAuthFetchRaw,
7
+ d as encodeBasicAuthHeaderValue,
7
8
  o as jsonFetch
8
9
  };
@@ -4925,6 +4925,186 @@
4925
4925
  ],
4926
4926
  "extendsTokenRanges": []
4927
4927
  },
4928
+ {
4929
+ "kind": "Interface",
4930
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink:interface",
4931
+ "docComment": "",
4932
+ "excerptTokens": [
4933
+ {
4934
+ "kind": "Content",
4935
+ "text": "export interface RemoteIssueLink "
4936
+ }
4937
+ ],
4938
+ "fileUrlPath": "../../jira/shared/util-jira-v3-api/src/lib/remote-issue-link.d.ts",
4939
+ "releaseTag": "Public",
4940
+ "name": "RemoteIssueLink",
4941
+ "preserveMemberOrder": false,
4942
+ "members": [
4943
+ {
4944
+ "kind": "PropertySignature",
4945
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#application:member",
4946
+ "docComment": "",
4947
+ "excerptTokens": [
4948
+ {
4949
+ "kind": "Content",
4950
+ "text": "application?: "
4951
+ },
4952
+ {
4953
+ "kind": "Content",
4954
+ "text": "{\n name?: string;\n type?: string;\n }"
4955
+ },
4956
+ {
4957
+ "kind": "Content",
4958
+ "text": ";"
4959
+ }
4960
+ ],
4961
+ "isReadonly": false,
4962
+ "isOptional": true,
4963
+ "releaseTag": "Public",
4964
+ "name": "application",
4965
+ "propertyTypeTokenRange": {
4966
+ "startIndex": 1,
4967
+ "endIndex": 2
4968
+ }
4969
+ },
4970
+ {
4971
+ "kind": "PropertySignature",
4972
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#globalId:member",
4973
+ "docComment": "",
4974
+ "excerptTokens": [
4975
+ {
4976
+ "kind": "Content",
4977
+ "text": "globalId?: "
4978
+ },
4979
+ {
4980
+ "kind": "Content",
4981
+ "text": "string"
4982
+ },
4983
+ {
4984
+ "kind": "Content",
4985
+ "text": ";"
4986
+ }
4987
+ ],
4988
+ "isReadonly": false,
4989
+ "isOptional": true,
4990
+ "releaseTag": "Public",
4991
+ "name": "globalId",
4992
+ "propertyTypeTokenRange": {
4993
+ "startIndex": 1,
4994
+ "endIndex": 2
4995
+ }
4996
+ },
4997
+ {
4998
+ "kind": "PropertySignature",
4999
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#id:member",
5000
+ "docComment": "",
5001
+ "excerptTokens": [
5002
+ {
5003
+ "kind": "Content",
5004
+ "text": "id?: "
5005
+ },
5006
+ {
5007
+ "kind": "Content",
5008
+ "text": "number"
5009
+ },
5010
+ {
5011
+ "kind": "Content",
5012
+ "text": ";"
5013
+ }
5014
+ ],
5015
+ "isReadonly": false,
5016
+ "isOptional": true,
5017
+ "releaseTag": "Public",
5018
+ "name": "id",
5019
+ "propertyTypeTokenRange": {
5020
+ "startIndex": 1,
5021
+ "endIndex": 2
5022
+ }
5023
+ },
5024
+ {
5025
+ "kind": "PropertySignature",
5026
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#object:member",
5027
+ "docComment": "",
5028
+ "excerptTokens": [
5029
+ {
5030
+ "kind": "Content",
5031
+ "text": "object: "
5032
+ },
5033
+ {
5034
+ "kind": "Content",
5035
+ "text": "{\n icon?: {\n title?: string;\n url16x16?: string;\n };\n status?: {\n icon?: {\n link?: string;\n title?: string;\n url16x16?: string;\n };\n resolved?: boolean;\n };\n summary?: string;\n title: string;\n url: string;\n }"
5036
+ },
5037
+ {
5038
+ "kind": "Content",
5039
+ "text": ";"
5040
+ }
5041
+ ],
5042
+ "isReadonly": false,
5043
+ "isOptional": false,
5044
+ "releaseTag": "Public",
5045
+ "name": "object",
5046
+ "propertyTypeTokenRange": {
5047
+ "startIndex": 1,
5048
+ "endIndex": 2
5049
+ }
5050
+ },
5051
+ {
5052
+ "kind": "PropertySignature",
5053
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#relationship:member",
5054
+ "docComment": "",
5055
+ "excerptTokens": [
5056
+ {
5057
+ "kind": "Content",
5058
+ "text": "relationship?: "
5059
+ },
5060
+ {
5061
+ "kind": "Content",
5062
+ "text": "string"
5063
+ },
5064
+ {
5065
+ "kind": "Content",
5066
+ "text": ";"
5067
+ }
5068
+ ],
5069
+ "isReadonly": false,
5070
+ "isOptional": true,
5071
+ "releaseTag": "Public",
5072
+ "name": "relationship",
5073
+ "propertyTypeTokenRange": {
5074
+ "startIndex": 1,
5075
+ "endIndex": 2
5076
+ }
5077
+ },
5078
+ {
5079
+ "kind": "PropertySignature",
5080
+ "canonicalReference": "@valiantys/atlassian-app-frontend!RemoteIssueLink#self:member",
5081
+ "docComment": "",
5082
+ "excerptTokens": [
5083
+ {
5084
+ "kind": "Content",
5085
+ "text": "self?: "
5086
+ },
5087
+ {
5088
+ "kind": "Content",
5089
+ "text": "string"
5090
+ },
5091
+ {
5092
+ "kind": "Content",
5093
+ "text": ";"
5094
+ }
5095
+ ],
5096
+ "isReadonly": false,
5097
+ "isOptional": true,
5098
+ "releaseTag": "Public",
5099
+ "name": "self",
5100
+ "propertyTypeTokenRange": {
5101
+ "startIndex": 1,
5102
+ "endIndex": 2
5103
+ }
5104
+ }
5105
+ ],
5106
+ "extendsTokenRanges": []
5107
+ },
4928
5108
  {
4929
5109
  "kind": "Interface",
4930
5110
  "canonicalReference": "@valiantys/atlassian-app-frontend!StaticIssueFields:interface",
@@ -501,6 +501,41 @@ export interface ProjectVersion {
501
501
  userReleaseDate?: string;
502
502
  }
503
503
 
504
+ // @public (undocumented)
505
+ export interface RemoteIssueLink {
506
+ // (undocumented)
507
+ application?: {
508
+ name?: string;
509
+ type?: string;
510
+ };
511
+ // (undocumented)
512
+ globalId?: string;
513
+ // (undocumented)
514
+ id?: number;
515
+ // (undocumented)
516
+ object: {
517
+ icon?: {
518
+ title?: string;
519
+ url16x16?: string;
520
+ };
521
+ status?: {
522
+ icon?: {
523
+ link?: string;
524
+ title?: string;
525
+ url16x16?: string;
526
+ };
527
+ resolved?: boolean;
528
+ };
529
+ summary?: string;
530
+ title: string;
531
+ url: string;
532
+ };
533
+ // (undocumented)
534
+ relationship?: string;
535
+ // (undocumented)
536
+ self?: string;
537
+ }
538
+
504
539
  // @public (undocumented)
505
540
  export interface StaticIssueFields<T = AtlassianDocumentFormat> {
506
541
  // (undocumented)
@@ -323,6 +323,34 @@ export declare interface ProjectVersion {
323
323
  userReleaseDate?: string;
324
324
  }
325
325
 
326
+ export declare interface RemoteIssueLink {
327
+ application?: {
328
+ name?: string;
329
+ type?: string;
330
+ };
331
+ globalId?: string;
332
+ id?: number;
333
+ object: {
334
+ icon?: {
335
+ title?: string;
336
+ url16x16?: string;
337
+ };
338
+ status?: {
339
+ icon?: {
340
+ link?: string;
341
+ title?: string;
342
+ url16x16?: string;
343
+ };
344
+ resolved?: boolean;
345
+ };
346
+ summary?: string;
347
+ title: string;
348
+ url: string;
349
+ };
350
+ relationship?: string;
351
+ self?: string;
352
+ }
353
+
326
354
  export declare interface StaticIssueFields<T = AtlassianDocumentFormat> {
327
355
  statuscategorychangedate?: string;
328
356
  fixVersions?: FixVersions;