@valiantys/atlassian-app-frontend 3.0.0-alpha-18 → 3.0.0-alpha-21

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 (28) 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 +18 -6
  3. package/atlassian/jira/shared/util-jira-v3-api/src/lib/jira-server-info/index.cjs.js +1 -0
  4. package/atlassian/jira/shared/util-jira-v3-api/src/lib/jira-server-info/index.es.js +9 -0
  5. package/atlassian/shared/frontend-ui-atlaskit-forms/src/lib/option/index.cjs.js +1 -0
  6. package/atlassian/shared/frontend-ui-atlaskit-forms/src/lib/option/index.es.js +8 -0
  7. package/data-access-issue/atlassian-app-frontend-data-access-issue.api.json +90 -0
  8. package/data-access-issue/atlassian-app-frontend.api.md +8 -0
  9. package/data-access-issue/index.d.ts +42 -0
  10. package/package.json +6 -1
  11. package/shared/frontend-ui-drop-target/src/lib/drop-target-box/index.cjs.js +1 -1
  12. package/shared/frontend-ui-drop-target/src/lib/drop-target-box/index.es.js +7 -9
  13. package/shared/frontend-ui-load-data-hook/src/lib/load-data-hook/index.cjs.js +1 -1
  14. package/shared/frontend-ui-load-data-hook/src/lib/load-data-hook/index.es.js +10 -10
  15. package/ui-atlaskit-forms/atlassian-app-frontend-ui-atlaskit-forms.api.json +341 -0
  16. package/ui-atlaskit-forms/atlassian-app-frontend.api.md +19 -0
  17. package/ui-atlaskit-forms/index.cjs.js +1 -0
  18. package/ui-atlaskit-forms/index.d.ts +48 -0
  19. package/ui-atlaskit-forms/index.es.js +4 -0
  20. package/ui-atlaskit-forms/tsdoc-metadata.json +11 -0
  21. package/util-atlassian-product-fetch/atlassian-app-frontend-util-atlassian-product-fetch.api.json +2 -2
  22. package/util-atlassian-product-fetch/atlassian-app-frontend.api.md +1 -1
  23. package/util-atlassian-product-fetch/index.d.ts +1 -1
  24. package/util-jira-v3-api/atlassian-app-frontend-util-jira-v3-api.api.json +383 -1
  25. package/util-jira-v3-api/atlassian-app-frontend.api.md +45 -1
  26. package/util-jira-v3-api/index.cjs.js +1 -1
  27. package/util-jira-v3-api/index.d.ts +32 -1
  28. package/util-jira-v3-api/index.es.js +6 -4
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=class i{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 h=[];do{const u=await this.issueSearchByPage(e,t,c,s);h.push(...u.issues),c=u.nextPageToken}while(c!==void 0);return h}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)}};i.issueUrl="/rest/api/3/issue";let r=i;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 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,4 +1,4 @@
1
- const r = class r {
1
+ const h = class h {
2
2
  constructor(e) {
3
3
  this.fetchSvc = e;
4
4
  }
@@ -35,12 +35,12 @@ const r = class r {
35
35
  }
36
36
  async issueSearch(e, t, s = 50) {
37
37
  let c;
38
- const h = [];
38
+ const r = [];
39
39
  do {
40
40
  const i = await this.issueSearchByPage(e, t, c, s);
41
- h.push(...i.issues), c = i.nextPageToken;
41
+ r.push(...i.issues), c = i.nextPageToken;
42
42
  } while (c !== void 0);
43
- return h;
43
+ return r;
44
44
  }
45
45
  async issueSearchByPage(e, t, s, c = 50) {
46
46
  return this.fetchSvc.fetch(
@@ -128,9 +128,21 @@ const r = class r {
128
128
  e
129
129
  );
130
130
  }
131
+ async getIssueTypes() {
132
+ return this.fetchSvc.fetch({
133
+ method: "GET",
134
+ url: this.fetchSvc.route`/rest/api/3/issuetype`
135
+ });
136
+ }
137
+ async getIssueTypeSchemes() {
138
+ return await this.fetchSvc.fetch({
139
+ method: "GET",
140
+ url: this.fetchSvc.route`/rest/api/3/issuetypescheme?expand=projects,issuetypes`
141
+ });
142
+ }
131
143
  };
132
- r.issueUrl = "/rest/api/3/issue";
133
- let u = r;
144
+ h.issueUrl = "/rest/api/3/issue";
145
+ let u = h;
134
146
  export {
135
147
  u as JiraIssueService
136
148
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function s(e,t){const i=t.substring(t.indexOf("/rest/api/"));return e+i}exports.switchAtlassianApiUrlToUseSiteUrl=s;
@@ -0,0 +1,9 @@
1
+ function n(e, t) {
2
+ const i = t.substring(
3
+ t.indexOf("/rest/api/")
4
+ );
5
+ return e + i;
6
+ }
7
+ export {
8
+ n as switchAtlassianApiUrlToUseSiteUrl
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function d(l,t,i,o=(e,n)=>e===n){console.log(l,t);let e;return t?(e=l.find(n=>o(n.value,t)),e||(console.log("setting undefined"),i(void 0))):l.length===1&&(e=l[0],console.log("setting ",e.value),i(e.value)),e||null}exports.getSelectedOption=d;
@@ -0,0 +1,8 @@
1
+ function d(l, n, o, t = (e, i) => e === i) {
2
+ console.log(l, n);
3
+ let e;
4
+ return n ? (e = l.find((i) => t(i.value, n)), e || (console.log("setting undefined"), o(void 0))) : l.length === 1 && (e = l[0], console.log("setting ", e.value), o(e.value)), e || null;
5
+ }
6
+ export {
7
+ d as getSelectedOption
8
+ };
@@ -910,6 +910,96 @@
910
910
  "isAbstract": false,
911
911
  "name": "getIssueFields"
912
912
  },
913
+ {
914
+ "kind": "Method",
915
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraIssueService#getIssueTypes:member(1)",
916
+ "docComment": "",
917
+ "excerptTokens": [
918
+ {
919
+ "kind": "Content",
920
+ "text": "getIssueTypes(): "
921
+ },
922
+ {
923
+ "kind": "Reference",
924
+ "text": "Promise",
925
+ "canonicalReference": "!Promise:interface"
926
+ },
927
+ {
928
+ "kind": "Content",
929
+ "text": "<"
930
+ },
931
+ {
932
+ "kind": "Reference",
933
+ "text": "IssueTypeDetails",
934
+ "canonicalReference": "@valiantys/atlassian-app-frontend!~IssueTypeDetails:interface"
935
+ },
936
+ {
937
+ "kind": "Content",
938
+ "text": "[]>"
939
+ },
940
+ {
941
+ "kind": "Content",
942
+ "text": ";"
943
+ }
944
+ ],
945
+ "isStatic": false,
946
+ "returnTypeTokenRange": {
947
+ "startIndex": 1,
948
+ "endIndex": 5
949
+ },
950
+ "releaseTag": "Public",
951
+ "isProtected": false,
952
+ "overloadIndex": 1,
953
+ "parameters": [],
954
+ "isOptional": false,
955
+ "isAbstract": false,
956
+ "name": "getIssueTypes"
957
+ },
958
+ {
959
+ "kind": "Method",
960
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JiraIssueService#getIssueTypeSchemes:member(1)",
961
+ "docComment": "",
962
+ "excerptTokens": [
963
+ {
964
+ "kind": "Content",
965
+ "text": "getIssueTypeSchemes(): "
966
+ },
967
+ {
968
+ "kind": "Reference",
969
+ "text": "Promise",
970
+ "canonicalReference": "!Promise:interface"
971
+ },
972
+ {
973
+ "kind": "Content",
974
+ "text": "<"
975
+ },
976
+ {
977
+ "kind": "Reference",
978
+ "text": "IssueTypeScheme",
979
+ "canonicalReference": "@valiantys/atlassian-app-frontend!~IssueTypeScheme:interface"
980
+ },
981
+ {
982
+ "kind": "Content",
983
+ "text": "[]>"
984
+ },
985
+ {
986
+ "kind": "Content",
987
+ "text": ";"
988
+ }
989
+ ],
990
+ "isStatic": false,
991
+ "returnTypeTokenRange": {
992
+ "startIndex": 1,
993
+ "endIndex": 5
994
+ },
995
+ "releaseTag": "Public",
996
+ "isProtected": false,
997
+ "overloadIndex": 1,
998
+ "parameters": [],
999
+ "isOptional": false,
1000
+ "isAbstract": false,
1001
+ "name": "getIssueTypeSchemes"
1002
+ },
913
1003
  {
914
1004
  "kind": "Method",
915
1005
  "canonicalReference": "@valiantys/atlassian-app-frontend!JiraIssueService#issueSearch:member(1)",
@@ -42,6 +42,14 @@ export class JiraIssueService {
42
42
  //
43
43
  // (undocumented)
44
44
  getIssueFields(issueIdOrKey: string, fields: string[]): Promise<IssueFields | undefined>;
45
+ // Warning: (ae-forgotten-export) The symbol "IssueTypeDetails" needs to be exported by the entry point data-access-issue.d.ts
46
+ //
47
+ // (undocumented)
48
+ getIssueTypes(): Promise<IssueTypeDetails[]>;
49
+ // Warning: (ae-forgotten-export) The symbol "IssueTypeScheme" needs to be exported by the entry point data-access-issue.d.ts
50
+ //
51
+ // (undocumented)
52
+ getIssueTypeSchemes(): Promise<IssueTypeScheme[]>;
45
53
  // Warning: (ae-forgotten-export) The symbol "AtlassianDocumentFormat" needs to be exported by the entry point data-access-issue.d.ts
46
54
  //
47
55
  // (undocumented)
@@ -181,6 +181,46 @@ declare interface IssueTransition {
181
181
  looped?: boolean;
182
182
  }
183
183
 
184
+ declare interface IssueTypeDetails {
185
+ avatarId: number;
186
+ description: string;
187
+ hierarchyLevel: number;
188
+ iconUrl: string;
189
+ id: string;
190
+ name: string;
191
+ self: string;
192
+ subtask: boolean;
193
+ }
194
+
195
+ declare interface IssueTypeScheme {
196
+ id: string;
197
+ name: string;
198
+ description: string;
199
+ issueTypes: IssueTypeSchemeIssueTypesPage;
200
+ projects?: {
201
+ isLast: boolean;
202
+ maxResults: number;
203
+ startAt: number;
204
+ total: number;
205
+ values: {
206
+ id: string;
207
+ key: string;
208
+ name: string;
209
+ projectTypeKey: string;
210
+ simplified: boolean;
211
+ avatarUrls: Record<string, string>;
212
+ }[];
213
+ };
214
+ }
215
+
216
+ declare interface IssueTypeSchemeIssueTypesPage {
217
+ isLast: boolean;
218
+ maxResults: number;
219
+ startAt: number;
220
+ total: number;
221
+ values: IssueTypeDetails[];
222
+ }
223
+
184
224
  declare type JiraCommentResponse = {
185
225
  comments: IssueComment[];
186
226
  maxResults: number;
@@ -212,6 +252,8 @@ export declare class JiraIssueService {
212
252
  addIssueComment(issueIdOrKey: string, body: AtlassianDocumentFormat): Promise<IssueComment>;
213
253
  transitionIssue(issueIdOrKey: string, body: TransitionIssueRequest): Promise<void>;
214
254
  createIssueLink(issueLinkRequest: IssueLinkRequest): Promise<void>;
255
+ getIssueTypes(): Promise<IssueTypeDetails[]>;
256
+ getIssueTypeSchemes(): Promise<IssueTypeScheme[]>;
215
257
  }
216
258
 
217
259
  declare type Product = 'jira' | 'bitbucket' | 'confluence' | 'connected-data';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valiantys/atlassian-app-frontend",
3
- "version": "3.0.0-alpha-18",
3
+ "version": "3.0.0-alpha-21",
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": {
@@ -68,6 +68,11 @@
68
68
  "require": "./ui-app-flags/index.cjs.js",
69
69
  "types": "./ui-app-flags/index.d.ts"
70
70
  },
71
+ "./ui-atlaskit-forms": {
72
+ "import": "./ui-atlaskit-forms/index.es.js",
73
+ "require": "./ui-atlaskit-forms/index.cjs.js",
74
+ "types": "./ui-atlaskit-forms/index.d.ts"
75
+ },
71
76
  "./ui-atlassian-product-fetch": {
72
77
  "import": "./ui-atlassian-product-fetch/index.es.js",
73
78
  "require": "./ui-atlassian-product-fetch/index.cjs.js",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),i=require("react-dnd"),a=require("../drop-target-box.module.scss/index.cjs.js");function c({onDrop:e,accept:r,children:t}){const[,o]=i.useDrop(()=>({accept:r,drop(s){e&&e(s)}}),[e]);return u.jsx("div",{ref:o,className:a["drop-target-box"],children:t})}exports.DropTargetBox=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),u=require("react-dnd"),n=require("../drop-target-box.module.scss/index.cjs.js");function a({onDrop:e,accept:r,children:o}){const[,t]=u.useDrop(()=>({accept:r,drop:e}),[e]);return s.jsx("div",{ref:t,className:n["drop-target-box"],children:o})}exports.DropTargetBox=a;
@@ -1,22 +1,20 @@
1
1
  import { jsx as p } from "react/jsx-runtime";
2
- import { useDrop as s } from "react-dnd";
3
- import f from "../drop-target-box.module.scss/index.es.js";
4
- function x({
2
+ import { useDrop as m } from "react-dnd";
3
+ import s from "../drop-target-box.module.scss/index.es.js";
4
+ function d({
5
5
  onDrop: r,
6
6
  accept: o,
7
7
  children: t
8
8
  }) {
9
- const [, e] = s(
9
+ const [, e] = m(
10
10
  () => ({
11
11
  accept: o,
12
- drop(m) {
13
- r && r(m);
14
- }
12
+ drop: r
15
13
  }),
16
14
  [r]
17
15
  );
18
- return /* @__PURE__ */ p("div", { ref: e, className: f["drop-target-box"], children: t });
16
+ return /* @__PURE__ */ p("div", { ref: e, className: s["drop-target-box"], children: t });
19
17
  }
20
18
  export {
21
- x as DropTargetBox
19
+ d as DropTargetBox
22
20
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function d(t){return console.error(t),`Error Occurred: ${t.message||t}`}function f(t,n=d){const[u,r]=e.useState(),[i,o]=e.useState(!0),[l,c]=e.useState(),s=e.useCallback(async()=>{o(!0);try{c(void 0);const a=await t();return r(a),a}catch(a){c(n(a)),r(void 0)}finally{o(!1)}},[t,n]);return e.useEffect(()=>{s()},[s]),{data:u,loading:i,error:l,setData:r,setLoading:o,setError:c,manualTrigger:()=>s()}}exports.useLoadDataEffect=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function d(t){return console.error(t),`Error Occurred: ${t.message||JSON.stringify(t)}`}function f(t,n=d){const[u,r]=e.useState(),[i,o]=e.useState(!0),[l,s]=e.useState(),c=e.useCallback(async()=>{o(!0);try{s(void 0);const a=await t();return r(a),a}catch(a){s(n(a)),r(void 0)}finally{o(!1)}},[t,n]);return e.useEffect(()=>{c()},[c]),{data:u,loading:i,error:l,setData:r,setLoading:o,setError:s,manualTrigger:()=>c()}}exports.useLoadDataEffect=f;
@@ -1,9 +1,9 @@
1
- import { useState as n, useCallback as d, useEffect as f } from "react";
1
+ import { useState as c, useCallback as l, useEffect as d } from "react";
2
2
  function g(r) {
3
- return console.error(r), `Error Occurred: ${r.message || r}`;
3
+ return console.error(r), `Error Occurred: ${r.message || JSON.stringify(r)}`;
4
4
  }
5
5
  function m(r, s = g) {
6
- const [u, a] = n(), [i, o] = n(!0), [l, e] = n(), c = d(async () => {
6
+ const [i, a] = c(), [u, o] = c(!0), [f, e] = c(), n = l(async () => {
7
7
  o(!0);
8
8
  try {
9
9
  e(void 0);
@@ -15,16 +15,16 @@ function m(r, s = g) {
15
15
  o(!1);
16
16
  }
17
17
  }, [r, s]);
18
- return f(() => {
19
- c();
20
- }, [c]), {
21
- data: u,
22
- loading: i,
23
- error: l,
18
+ return d(() => {
19
+ n();
20
+ }, [n]), {
21
+ data: i,
22
+ loading: u,
23
+ error: f,
24
24
  setData: a,
25
25
  setLoading: o,
26
26
  setError: e,
27
- manualTrigger: () => c()
27
+ manualTrigger: () => n()
28
28
  };
29
29
  }
30
30
  export {