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

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 (23) hide show
  1. package/atlassian/shared/frontend-feature-atlassian-app/src/lib/custom-ui/atlassian-app-forge/index.cjs.js +1 -1
  2. package/atlassian/shared/frontend-feature-atlassian-app/src/lib/custom-ui/atlassian-app-forge/index.es.js +4 -3
  3. package/atlassian/shared/frontend-feature-atlassian-app/src/lib/standalone/atlassian-app-standalone/index.cjs.js +1 -1
  4. package/atlassian/shared/frontend-feature-atlassian-app/src/lib/standalone/atlassian-app-standalone/index.es.js +4 -3
  5. package/atlassian/shared/frontend-ui-iframe/src/lib/iframe-wrapper/index.cjs.js +1 -1
  6. package/atlassian/shared/frontend-ui-iframe/src/lib/iframe-wrapper/index.es.js +50 -38
  7. package/atlassian/shared/frontend-ui-remote-adapter/src/lib/oauth-fetch-invoke-remote/index.cjs.js +1 -1
  8. package/atlassian/shared/frontend-ui-remote-adapter/src/lib/oauth-fetch-invoke-remote/index.es.js +7 -15
  9. package/atlassian-app/index.d.ts +2 -8
  10. package/atlassian-app-custom-ui/index.d.ts +2 -8
  11. package/atlassian-app-test/index.d.ts +2 -8
  12. package/package.json +2 -2
  13. package/shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js +2 -2
  14. package/shared/util-fetch/src/lib/shared-util-fetch/index.es.js +34 -27
  15. package/ui-iframe/atlassian-app-frontend-ui-iframe.api.json +189 -34
  16. package/ui-iframe/atlassian-app-frontend.api.md +17 -4
  17. package/ui-iframe/index.d.ts +12 -4
  18. package/ui-remote-adapter/atlassian-app-frontend-ui-remote-adapter.api.json +4 -121
  19. package/ui-remote-adapter/atlassian-app-frontend.api.md +2 -12
  20. package/ui-remote-adapter/index.d.ts +2 -8
  21. package/util-atlassian-product-fetch/atlassian-app-frontend-util-atlassian-product-fetch.api.json +87 -5
  22. package/util-atlassian-product-fetch/atlassian-app-frontend.api.md +9 -1
  23. package/util-atlassian-product-fetch/index.d.ts +6 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),i=require("@forge/bridge"),o=require("../../../../../../forge/shared/frontend-data-access-product-fetch-forge-bridge/src/lib/forge-bridge-product-fetch/index.cjs.js"),a=require("../../../../../../forge/shared/frontend-ui-app-flags/src/lib/app-flags-provider-forge/index.cjs.js"),d=require("../../../../../frontend-feature-chosen-workspace-check/src/lib/feature-chosen-workspace-check/index.cjs.js");require("../../../../../frontend-feature-chosen-workspace-check/src/lib/jira-workspace-provider/index.cjs.js");require("../../../../../frontend-ui-app-flags/src/lib/app-flags-dispatch/index.cjs.js");const q=require("../../../../../frontend-ui-app-flags/src/lib/app-flags-provider-atlaskit/index.cjs.js"),p=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-bitbucket/index.cjs.js"),v=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-confluence/index.cjs.js"),h=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-jira/index.cjs.js");require("@atlaskit/button/new");require("react");const F=require("../../../../../frontend-ui-host-router/src/lib/host-router-provider/index.cjs.js");require("../../../../../frontend-ui-modal/src/lib/modal-content/index.cjs.js");require("@atlaskit/heading");require("@atlaskit/primitives");const g=require("../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.cjs.js");require("../../../../../frontend-ui-view-context/src/lib/view-context-provider/index.cjs.js");const m=require("../../../../../frontend-ui-remote-adapter/src/lib/remote-adapter/index.cjs.js"),P=require("../../ui-kit/atlassian-app-forge-ui-kit/index.cjs.js"),S=o.createClientSideForgeProductFetchService("jira"),j=o.createClientSideForgeProductFetchService("bitbucket"),A=o.createClientSideForgeProductFetchService("confluence"),f={open(t){return new i.Modal(t).open()}};function c({appName:t,doCheckWorkspace:n,invokeRemoteImpl:s,useAtlasKitFlags:u,children:l}){let r=l;return n&&(r=e.jsx(d.FeatureChosenWorkspaceCheck,{appName:t,children:r})),r=e.jsx(m.RemoteAdapterProvider,{invokeRemoteImplementation:s||i.invokeRemote,children:e.jsx(P.AtlassianAppForgeUiKit,{children:e.jsx(F.HostRouterProvider,{hostRouter:i.router,children:e.jsx(p.RequestBitbucketProvider,{requestBitbucketImplementation:j,children:e.jsx(v.RequestConfluenceProvider,{requestConfluenceImplementation:A,children:e.jsx(h.RequestJiraProvider,{requestJiraImplementation:S,children:e.jsx(g.ModalServiceProvider,{modalService:f,children:r})})})})})})}),u?e.jsx(q.AppFlagsProviderAtlasKit,{children:r}):e.jsx(a.AppFlagsProviderForge,{children:r})}exports.AtlassianAppForge=c;exports.default=c;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),i=require("@forge/bridge"),o=require("../../../../../../forge/shared/frontend-data-access-product-fetch-forge-bridge/src/lib/forge-bridge-product-fetch/index.cjs.js"),a=require("../../../../../../forge/shared/frontend-ui-app-flags/src/lib/app-flags-provider-forge/index.cjs.js"),d=require("../../../../../frontend-feature-chosen-workspace-check/src/lib/feature-chosen-workspace-check/index.cjs.js");require("../../../../../frontend-feature-chosen-workspace-check/src/lib/jira-workspace-provider/index.cjs.js");require("../../../../../frontend-ui-app-flags/src/lib/app-flags-dispatch/index.cjs.js");const q=require("../../../../../frontend-ui-app-flags/src/lib/app-flags-provider-atlaskit/index.cjs.js"),p=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-bitbucket/index.cjs.js"),v=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-confluence/index.cjs.js"),h=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-jira/index.cjs.js");require("@atlaskit/button/new");require("react");const F=require("../../../../../frontend-ui-host-router/src/lib/host-router-provider/index.cjs.js");require("../../../../../frontend-ui-modal/src/lib/modal-content/index.cjs.js");require("@atlaskit/heading");require("@atlaskit/primitives");require("../../../../../frontend-ui-iframe/src/lib/iframe-wrapper/index.cjs.js");const g=require("../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.cjs.js");require("../../../../../frontend-ui-view-context/src/lib/view-context-provider/index.cjs.js");const m=require("../../../../../frontend-ui-remote-adapter/src/lib/remote-adapter/index.cjs.js"),P=require("../../ui-kit/atlassian-app-forge-ui-kit/index.cjs.js"),S=o.createClientSideForgeProductFetchService("jira"),j=o.createClientSideForgeProductFetchService("bitbucket"),A=o.createClientSideForgeProductFetchService("confluence"),f={open(t){return new i.Modal(t).open()}};function c({appName:t,doCheckWorkspace:n,invokeRemoteImpl:s,useAtlasKitFlags:u,children:l}){let r=l;return n&&(r=e.jsx(d.FeatureChosenWorkspaceCheck,{appName:t,children:r})),r=e.jsx(m.RemoteAdapterProvider,{invokeRemoteImplementation:s||i.invokeRemote,children:e.jsx(P.AtlassianAppForgeUiKit,{children:e.jsx(F.HostRouterProvider,{hostRouter:i.router,children:e.jsx(p.RequestBitbucketProvider,{requestBitbucketImplementation:j,children:e.jsx(v.RequestConfluenceProvider,{requestConfluenceImplementation:A,children:e.jsx(h.RequestJiraProvider,{requestJiraImplementation:S,children:e.jsx(g.ModalServiceProvider,{modalService:f,children:r})})})})})})}),u?e.jsx(q.AppFlagsProviderAtlasKit,{children:r}):e.jsx(a.AppFlagsProviderForge,{children:r})}exports.AtlassianAppForge=c;exports.default=c;
@@ -15,6 +15,7 @@ import { HostRouterProvider as F } from "../../../../../frontend-ui-host-router/
15
15
  import "../../../../../frontend-ui-modal/src/lib/modal-content/index.es.js";
16
16
  import "@atlaskit/heading";
17
17
  import "@atlaskit/primitives";
18
+ import "../../../../../frontend-ui-iframe/src/lib/iframe-wrapper/index.es.js";
18
19
  import { ModalServiceProvider as P } from "../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.es.js";
19
20
  import "../../../../../frontend-ui-view-context/src/lib/view-context-provider/index.es.js";
20
21
  import { RemoteAdapterProvider as k } from "../../../../../frontend-ui-remote-adapter/src/lib/remote-adapter/index.es.js";
@@ -24,7 +25,7 @@ const R = t("jira"), S = t("bitbucket"), g = t("confluence"), b = {
24
25
  return new d(o).open();
25
26
  }
26
27
  };
27
- function Q({
28
+ function T({
28
29
  appName: o,
29
30
  doCheckWorkspace: i,
30
31
  invokeRemoteImpl: m,
@@ -53,6 +54,6 @@ function Q({
53
54
  ), n ? /* @__PURE__ */ e(u, { children: r }) : /* @__PURE__ */ e(a, { children: r });
54
55
  }
55
56
  export {
56
- Q as AtlassianAppForge,
57
- Q as default
57
+ T as AtlassianAppForge,
58
+ T as default
58
59
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),g=require("@atlaskit/app-provider"),o=require("react"),S=require("../../../../../data-access-atlassian-product-fetch-oauth/src/lib/atlassian-oauth-fetch/index.cjs.js"),B=require("../../../../../data-access-resources/src/lib/atlassian-user-resource-service/index.cjs.js"),O=require("../../../../../frontend-feature-chosen-workspace-check/src/lib/feature-chosen-workspace-check/index.cjs.js");require("../../../../../frontend-feature-chosen-workspace-check/src/lib/jira-workspace-provider/index.cjs.js");const P=require("../../../../../frontend-feature-oauth-login/src/lib/feature-oauth/index.cjs.js");require("../../../../../frontend-feature-oauth-login/src/lib/oauth-routes/index.cjs.js");require("@atlaskit/heading");require("@atlaskit/primitives");require("@atlaskit/section-message");require("@atlaskit/spinner");require("../../../../../frontend-ui-app-flags/src/lib/app-flags-dispatch/index.cjs.js");const W=require("../../../../../frontend-ui-app-flags/src/lib/app-flags-provider-atlaskit/index.cjs.js"),J=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-bitbucket/index.cjs.js"),T=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-confluence/index.cjs.js"),E=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-jira/index.cjs.js"),y=require("../../../../../frontend-ui-backend-adapter/src/lib/backend-adapter/index.cjs.js"),M=require("../../../../../frontend-ui-backend-adapter/src/lib/oauth-fetch-invoke/index.cjs.js"),H=require("../../../../../frontend-ui-host-router/src/lib/host-router/index.cjs.js");require("@atlaskit/button/new");const _=require("../../../../../frontend-ui-host-router/src/lib/host-router-provider/index.cjs.js");require("../../../../../frontend-ui-modal/src/lib/modal-content/index.cjs.js");const $=require("../../../../../frontend-ui-modal/src/lib/modal-service/index.cjs.js"),z=require("../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.cjs.js"),K=require("../../../../../frontend-ui-modal/src/lib/modal-view-context/index.cjs.js"),U=require("../../../../../frontend-ui-remote-adapter/src/lib/remote-adapter/index.cjs.js"),D=require("../../../../../frontend-ui-remote-adapter/src/lib/oauth-fetch-invoke-remote/index.cjs.js"),G=require("../../../../../frontend-ui-view-context/src/lib/view-context-provider/index.cjs.js"),L=require("../../../../../frontend-ui-view-context/src/lib/mock-view-context/index.cjs.js"),Q=o.lazy(()=>Promise.resolve().then(()=>require("../../../../../frontend-feature-chosen-resource-check/src/index/index.cjs.js")));function R({initialMockViewContext:c,backendUrl:u,remoteUrl:h,doCheckWorkspace:A,appName:i,doCheckResource:l,modalOpenerConfig:d,modalContextConfig:q,oauthConfig:n,atlassianResourceId:x,children:t}){const v=r.jsx(X,{appName:i,backendUrl:u,remoteUrl:h,initialMockViewContext:c,modalOpenerConfig:d,modalContextConfig:q,doCheckWorkspace:A,doCheckResource:l,oauthConfig:n,atlassianResourceId:x,children:t});return n?r.jsx(P.OAuthProvider,{clientId:n.clientId,codeTokenExchangeUrl:n.codeTokenExchangeUrl,appName:i,oAuthScopes:n.oAuthScopes,appBaseContext:n.appBaseContext,children:v}):v}function X({initialMockViewContext:c,backendUrl:u,remoteUrl:h,doCheckWorkspace:A,appName:i,doCheckResource:l,modalOpenerConfig:d,modalContextConfig:q,atlassianResourceId:n,children:x}){const[t,v]=o.useState(n),[a,j]=o.useState(),{getAuthToken:s}=P.useOAuth(),f=o.useCallback(()=>S.atlassianOAuthJiraFetch(s(),t??""),[s,t]),C=o.useCallback(()=>S.atlassianOAuthConfluenceFetch(s(),t??""),[s,t]),F=o.useCallback(()=>S.atlassianOAuthBitbucketFetch(s()),[s]),w=o.useCallback(async p=>{if(u&&l){const I=p??localStorage.getItem(`${i}-user-resource-id`)??"",k=await new B.AtlassianUserResourceService().checkUserChosenResource(s(),I);return k.hasChosen&&(localStorage.setItem(`${i}-user-resource-id`,k.resource.id),v(k.resource.id)),k}else return{hasChosen:!0}},[u,s,i,l]);o.useEffect(()=>{const p=t??(c==null?void 0:c.cloudId)??"";if(!a||a.cloudId!==p){const I={...a||c,cloudId:p};j(I)}},[c,t,a]);const b=o.useCallback(()=>u?M.getOauthFetchInvokeImpl(u,s(),t??""):void 0,[t,s,u]);let e=x;A&&(e=r.jsx(O.FeatureChosenWorkspaceCheck,{appName:i,children:e})),d&&(e=r.jsx(z.ModalServiceProvider,{modalService:new $.WindowModalService(d.defaultUrl,d.resourceMap),children:e})),a&&(e=r.jsx(G.ViewContextProvider,{viewContext:q?new K.ModalViewContext(a,q.openerOrigin):new L.MockViewContext(a),children:e})),e=r.jsx(_.HostRouterProvider,{hostRouter:new H.WindowHostRouter,children:r.jsx(J.RequestBitbucketProvider,{requestBitbucketImplementation:F(),children:r.jsx(T.RequestConfluenceProvider,{requestConfluenceImplementation:C(),children:r.jsx(E.RequestJiraProvider,{requestJiraImplementation:f(),children:e})})})});const m=b();return m&&(e=r.jsx(y.BackendAdapterProvider,{invokeImplementation:m,children:e})),h&&(e=r.jsx(U.RemoteAdapterProvider,{invokeRemoteImplementation:D.oauthFetchInvokeRemote(h),children:e})),l&&(e=r.jsx(Q,{checkResource:w,children:e})),r.jsx(g,{children:r.jsx(W.AppFlagsProviderAtlasKit,{children:e})})}exports.AtlassianAppStandalone=R;exports.default=R;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),g=require("@atlaskit/app-provider"),o=require("react"),S=require("../../../../../data-access-atlassian-product-fetch-oauth/src/lib/atlassian-oauth-fetch/index.cjs.js"),B=require("../../../../../data-access-resources/src/lib/atlassian-user-resource-service/index.cjs.js"),O=require("../../../../../frontend-feature-chosen-workspace-check/src/lib/feature-chosen-workspace-check/index.cjs.js");require("../../../../../frontend-feature-chosen-workspace-check/src/lib/jira-workspace-provider/index.cjs.js");const P=require("../../../../../frontend-feature-oauth-login/src/lib/feature-oauth/index.cjs.js");require("../../../../../frontend-feature-oauth-login/src/lib/oauth-routes/index.cjs.js");require("@atlaskit/heading");require("@atlaskit/primitives");require("@atlaskit/section-message");require("@atlaskit/spinner");require("../../../../../frontend-ui-app-flags/src/lib/app-flags-dispatch/index.cjs.js");const W=require("../../../../../frontend-ui-app-flags/src/lib/app-flags-provider-atlaskit/index.cjs.js"),J=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-bitbucket/index.cjs.js"),T=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-confluence/index.cjs.js"),E=require("../../../../../frontend-ui-atlassian-product-fetch/src/lib/request-jira/index.cjs.js"),y=require("../../../../../frontend-ui-backend-adapter/src/lib/backend-adapter/index.cjs.js"),M=require("../../../../../frontend-ui-backend-adapter/src/lib/oauth-fetch-invoke/index.cjs.js"),H=require("../../../../../frontend-ui-host-router/src/lib/host-router/index.cjs.js");require("@atlaskit/button/new");const _=require("../../../../../frontend-ui-host-router/src/lib/host-router-provider/index.cjs.js");require("../../../../../frontend-ui-modal/src/lib/modal-content/index.cjs.js");require("../../../../../frontend-ui-iframe/src/lib/iframe-wrapper/index.cjs.js");const $=require("../../../../../frontend-ui-modal/src/lib/modal-service/index.cjs.js"),z=require("../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.cjs.js"),K=require("../../../../../frontend-ui-modal/src/lib/modal-view-context/index.cjs.js"),U=require("../../../../../frontend-ui-remote-adapter/src/lib/remote-adapter/index.cjs.js"),D=require("../../../../../frontend-ui-remote-adapter/src/lib/oauth-fetch-invoke-remote/index.cjs.js"),G=require("../../../../../frontend-ui-view-context/src/lib/view-context-provider/index.cjs.js"),L=require("../../../../../frontend-ui-view-context/src/lib/mock-view-context/index.cjs.js"),Q=o.lazy(()=>Promise.resolve().then(()=>require("../../../../../frontend-feature-chosen-resource-check/src/index/index.cjs.js")));function R({initialMockViewContext:c,backendUrl:u,remoteUrl:h,doCheckWorkspace:A,appName:i,doCheckResource:l,modalOpenerConfig:d,modalContextConfig:q,oauthConfig:n,atlassianResourceId:x,children:t}){const v=r.jsx(X,{appName:i,backendUrl:u,remoteUrl:h,initialMockViewContext:c,modalOpenerConfig:d,modalContextConfig:q,doCheckWorkspace:A,doCheckResource:l,oauthConfig:n,atlassianResourceId:x,children:t});return n?r.jsx(P.OAuthProvider,{clientId:n.clientId,codeTokenExchangeUrl:n.codeTokenExchangeUrl,appName:i,oAuthScopes:n.oAuthScopes,appBaseContext:n.appBaseContext,children:v}):v}function X({initialMockViewContext:c,backendUrl:u,remoteUrl:h,doCheckWorkspace:A,appName:i,doCheckResource:l,modalOpenerConfig:d,modalContextConfig:q,atlassianResourceId:n,children:x}){const[t,v]=o.useState(n),[a,j]=o.useState(),{getAuthToken:s}=P.useOAuth(),f=o.useCallback(()=>S.atlassianOAuthJiraFetch(s(),t??""),[s,t]),C=o.useCallback(()=>S.atlassianOAuthConfluenceFetch(s(),t??""),[s,t]),F=o.useCallback(()=>S.atlassianOAuthBitbucketFetch(s()),[s]),w=o.useCallback(async p=>{if(u&&l){const I=p??localStorage.getItem(`${i}-user-resource-id`)??"",k=await new B.AtlassianUserResourceService().checkUserChosenResource(s(),I);return k.hasChosen&&(localStorage.setItem(`${i}-user-resource-id`,k.resource.id),v(k.resource.id)),k}else return{hasChosen:!0}},[u,s,i,l]);o.useEffect(()=>{const p=t??(c==null?void 0:c.cloudId)??"";if(!a||a.cloudId!==p){const I={...a||c,cloudId:p};j(I)}},[c,t,a]);const b=o.useCallback(()=>u?M.getOauthFetchInvokeImpl(u,s(),t??""):void 0,[t,s,u]);let e=x;A&&(e=r.jsx(O.FeatureChosenWorkspaceCheck,{appName:i,children:e})),d&&(e=r.jsx(z.ModalServiceProvider,{modalService:new $.WindowModalService(d.defaultUrl,d.resourceMap),children:e})),a&&(e=r.jsx(G.ViewContextProvider,{viewContext:q?new K.ModalViewContext(a,q.openerOrigin):new L.MockViewContext(a),children:e})),e=r.jsx(_.HostRouterProvider,{hostRouter:new H.WindowHostRouter,children:r.jsx(J.RequestBitbucketProvider,{requestBitbucketImplementation:F(),children:r.jsx(T.RequestConfluenceProvider,{requestConfluenceImplementation:C(),children:r.jsx(E.RequestJiraProvider,{requestJiraImplementation:f(),children:e})})})});const m=b();return m&&(e=r.jsx(y.BackendAdapterProvider,{invokeImplementation:m,children:e})),h&&(e=r.jsx(U.RemoteAdapterProvider,{invokeRemoteImplementation:D.oauthFetchInvokeRemote(h),children:e})),l&&(e=r.jsx(Q,{checkResource:w,children:e})),r.jsx(g,{children:r.jsx(W.AppFlagsProviderAtlasKit,{children:e})})}exports.AtlassianAppStandalone=R;exports.default=R;
@@ -22,6 +22,7 @@ import { WindowHostRouter as G } from "../../../../../frontend-ui-host-router/sr
22
22
  import "@atlaskit/button/new";
23
23
  import { HostRouterProvider as L } from "../../../../../frontend-ui-host-router/src/lib/host-router-provider/index.es.js";
24
24
  import "../../../../../frontend-ui-modal/src/lib/modal-content/index.es.js";
25
+ import "../../../../../frontend-ui-iframe/src/lib/iframe-wrapper/index.es.js";
25
26
  import { WindowModalService as Q } from "../../../../../frontend-ui-modal/src/lib/modal-service/index.es.js";
26
27
  import { ModalServiceProvider as U } from "../../../../../frontend-ui-modal/src/lib/modal-service-provider/index.es.js";
27
28
  import { ModalViewContext as X } from "../../../../../frontend-ui-modal/src/lib/modal-view-context/index.es.js";
@@ -32,7 +33,7 @@ import { MockViewContext as V } from "../../../../../frontend-ui-view-context/sr
32
33
  const N = O(
33
34
  () => import("../../../../../frontend-feature-chosen-resource-check/src/index/index.es.js")
34
35
  );
35
- function Ee({
36
+ function Je({
36
37
  initialMockViewContext: i,
37
38
  backendUrl: c,
38
39
  remoteUrl: l,
@@ -162,6 +163,6 @@ function ee({
162
163
  )), p && (e = /* @__PURE__ */ r(N, { checkResource: q, children: e })), /* @__PURE__ */ r(g, { children: /* @__PURE__ */ r(b, { children: e }) });
163
164
  }
164
165
  export {
165
- Ee as AtlassianAppStandalone,
166
- Ee as default
166
+ Je as AtlassianAppStandalone,
167
+ Je as default
167
168
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),t=require("react"),w=require("../../../../../../shared/frontend-ui-window-listener-hook/src/lib/window-listener-hook/index.cjs.js"),W=require("../iframe-wrapper.module.scss/index.cjs.js");function R({iframeProps:e,messageCallback:c,onMouseOut:i}){const[o,r]=t.useState(),s=t.useRef(!1),d=t.useRef(!1),u=t.useRef(null),g=t.useCallback(n=>{var h;n.source===((h=u.current)==null?void 0:h.contentWindow)&&c&&c(n.data)},[c]);return w.useWindowListener("message",g),t.useEffect(()=>{(async()=>e!=null&&e.height&&(console.log("IframeWrapper: Setting height to",e.height),r(e.height)))()},[e]),t.useEffect(()=>{(async()=>{var n;!d.current&&((n=u.current)!=null&&n.contentWindow)&&(u.current.contentWindow.focus(),d.current=!0)})()}),l.jsx("div",{className:W["iframe-wrapper"],children:l.jsx("iframe",{title:e==null?void 0:e.title,ref:u,width:e==null?void 0:e.width,height:o,src:e==null?void 0:e.link,onMouseEnter:()=>s.current=!0,onMouseOut:()=>{s.current&&i&&i()}})})}exports.IframeWrapper=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),n=require("react"),g=require("../../../../../../shared/frontend-ui-window-listener-hook/src/lib/window-listener-hook/index.cjs.js"),f=require("../iframe-wrapper.module.scss/index.cjs.js"),R=n.forwardRef(({iframeProps:e,messageCallback:o,onMouseOut:i},l)=>{const[h,w]=n.useState(),d=n.useRef(!1),r=n.useRef(!1),u=n.useRef(null);n.useImperativeHandle(l,()=>({reloadContentWindow:()=>{var t,c;return(c=(t=u.current)==null?void 0:t.contentWindow)==null?void 0:c.location.reload()},focusContentWindow:()=>{var t,c;return(c=(t=u.current)==null?void 0:t.contentWindow)==null?void 0:c.focus()}}));const W=n.useCallback(t=>{var c;t.source===((c=u.current)==null?void 0:c.contentWindow)&&o&&o(t.data)},[o]);return g.useWindowListener("message",W),n.useEffect(()=>{(async()=>e!=null&&e.height&&(console.log("IframeWrapper: Setting height to",e.height),w(e.height)))()},[e]),n.useEffect(()=>{(async()=>{var t;!r.current&&((t=u.current)!=null&&t.contentWindow)&&(u.current.contentWindow.focus(),r.current=!0)})()}),s.jsx("div",{className:f["iframe-wrapper"],children:s.jsx("iframe",{title:e==null?void 0:e.title,ref:u,width:e==null?void 0:e.width,height:h,src:e==null?void 0:e.link,onMouseEnter:()=>d.current=!0,onMouseOut:()=>{d.current&&i&&i()}})})});exports.IframeWrapper=R;
@@ -1,41 +1,53 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { useState as y, useRef as u, useCallback as I, useEffect as g } from "react";
3
- import { useWindowListener as R } from "../../../../../../shared/frontend-ui-window-listener-hook/src/lib/window-listener-hook/index.es.js";
4
- import f from "../iframe-wrapper.module.scss/index.es.js";
5
- function j({
6
- iframeProps: t,
7
- messageCallback: c,
8
- onMouseOut: h
9
- }) {
10
- const [s, w] = y(), i = u(!1), d = u(!1), e = u(null), W = I(
11
- (n) => {
12
- var l;
13
- n.source === ((l = e.current) == null ? void 0 : l.contentWindow) && c && c(n.data);
14
- },
15
- [c]
16
- );
17
- return R("message", W), g(() => {
18
- (async () => t != null && t.height && (console.log("IframeWrapper: Setting height to", t.height), w(t.height)))();
19
- }, [t]), g(() => {
20
- (async () => {
21
- var n;
22
- !d.current && ((n = e.current) != null && n.contentWindow) && (e.current.contentWindow.focus(), d.current = !0);
23
- })();
24
- }), /* @__PURE__ */ o("div", { className: f["iframe-wrapper"], children: /* @__PURE__ */ o(
25
- "iframe",
26
- {
27
- title: t == null ? void 0 : t.title,
28
- ref: e,
29
- width: t == null ? void 0 : t.width,
30
- height: s,
31
- src: t == null ? void 0 : t.link,
32
- onMouseEnter: () => i.current = !0,
33
- onMouseOut: () => {
34
- i.current && h && h();
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as f, useState as I, useRef as o, useImperativeHandle as R, useCallback as y, useEffect as w } from "react";
3
+ import { useWindowListener as x } from "../../../../../../shared/frontend-ui-window-listener-hook/src/lib/window-listener-hook/index.es.js";
4
+ import E from "../iframe-wrapper.module.scss/index.es.js";
5
+ const v = f(
6
+ ({ iframeProps: t, messageCallback: u, onMouseOut: d }, s) => {
7
+ const [r, W] = I(), i = o(!1), h = o(!1), c = o(null);
8
+ R(
9
+ s,
10
+ () => ({
11
+ reloadContentWindow: () => {
12
+ var n, e;
13
+ return (e = (n = c.current) == null ? void 0 : n.contentWindow) == null ? void 0 : e.location.reload();
14
+ },
15
+ focusContentWindow: () => {
16
+ var n, e;
17
+ return (e = (n = c.current) == null ? void 0 : n.contentWindow) == null ? void 0 : e.focus();
18
+ }
19
+ })
20
+ );
21
+ const g = y(
22
+ (n) => {
23
+ var e;
24
+ n.source === ((e = c.current) == null ? void 0 : e.contentWindow) && u && u(n.data);
25
+ },
26
+ [u]
27
+ );
28
+ return x("message", g), w(() => {
29
+ (async () => t != null && t.height && (console.log("IframeWrapper: Setting height to", t.height), W(t.height)))();
30
+ }, [t]), w(() => {
31
+ (async () => {
32
+ var n;
33
+ !h.current && ((n = c.current) != null && n.contentWindow) && (c.current.contentWindow.focus(), h.current = !0);
34
+ })();
35
+ }), /* @__PURE__ */ l("div", { className: E["iframe-wrapper"], children: /* @__PURE__ */ l(
36
+ "iframe",
37
+ {
38
+ title: t == null ? void 0 : t.title,
39
+ ref: c,
40
+ width: t == null ? void 0 : t.width,
41
+ height: r,
42
+ src: t == null ? void 0 : t.link,
43
+ onMouseEnter: () => i.current = !0,
44
+ onMouseOut: () => {
45
+ i.current && d && d();
46
+ }
35
47
  }
36
- }
37
- ) });
38
- }
48
+ ) });
49
+ }
50
+ );
39
51
  export {
40
- j as IframeWrapper
52
+ v as IframeWrapper
41
53
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../../../../shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js");function n(r,s){return async e=>{const a=`${r}${e.path}`,o=await fetch(a,{method:e.method,headers:s?c.addAuthHeader(s,e.headers||{}):e.headers,body:e.body?JSON.stringify(e.body):void 0}),t={};return o.headers.forEach((d,h)=>{t[h]=d}),{body:await o.json(),headers:t,status:o.status}}}exports.oauthFetchInvokeRemote=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../../shared/util-fetch/src/lib/shared-util-fetch/index.cjs.js");function h(o,t){return async e=>{const a=`${o}${e.path}`,d=t?r.addAuthHeader(t,e.headers||{}):e.headers;return r.jsonFetch(a,e.method,d,e.body,"json",{returnMetadata:!0})}}exports.oauthFetchInvokeRemote=h;
@@ -1,20 +1,12 @@
1
- import { addAuthHeader as n } from "../../../../../../shared/util-fetch/src/lib/shared-util-fetch/index.es.js";
2
- function f(d, s) {
1
+ import { jsonFetch as d, addAuthHeader as h } from "../../../../../../shared/util-fetch/src/lib/shared-util-fetch/index.es.js";
2
+ function c(t, r) {
3
3
  return async (e) => {
4
- const t = `${d}${e.path}`, o = await fetch(t, {
5
- method: e.method,
6
- headers: s ? n(s, e.headers || {}) : e.headers,
7
- body: e.body ? JSON.stringify(e.body) : void 0
8
- }), r = {};
9
- return o.headers.forEach((a, h) => {
10
- r[h] = a;
11
- }), {
12
- body: await o.json(),
13
- headers: r,
14
- status: o.status
15
- };
4
+ const o = `${t}${e.path}`, a = r ? h(r, e.headers || {}) : e.headers;
5
+ return d(o, e.method, a, e.body, "json", {
6
+ returnMetadata: !0
7
+ });
16
8
  };
17
9
  }
18
10
  export {
19
- f as oauthFetchInvokeRemote
11
+ c as oauthFetchInvokeRemote
20
12
  };
@@ -86,18 +86,12 @@ export declare type AtlassianAppStandaloneOauthConfig = OAuthProviderProps & {
86
86
 
87
87
  declare type AtlassianOAuthScopes = 'read:me' | 'read:jira-user' | 'read:jira-work' | 'write:jira-work' | 'read:servicedesk-request' | 'write:servicedesk-request' | 'read:cmdb-schema:jira' | 'write:cmdb-schema:jira' | 'read:cmdb-type:jira' | 'write:cmdb-type:jira' | 'read:cmdb-object:jira' | 'write:cmdb-object:jira' | 'delete:cmdb-object:jira' | 'read:cmdb-attribute:jira' | 'write:cmdb-attribute:jira' | 'read:cmdb-icon:jira';
88
88
 
89
- declare interface InvokeRemoteResponse<T> {
90
- body?: T;
91
- headers?: Record<string, string>;
92
- status: number;
93
- }
94
-
95
- declare type InvokeRemoteSignature = <T, U>(input: {
89
+ declare type InvokeRemoteSignature = <U>(input: {
96
90
  path: string;
97
91
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
98
92
  headers?: Record<string, string>;
99
93
  body?: U;
100
- }) => Promise<InvokeRemoteResponse<T>>;
94
+ }) => Promise<Record<string, unknown> | void>;
101
95
 
102
96
  export declare const IS_STANDALONE: boolean;
103
97
 
@@ -10,17 +10,11 @@ declare interface AtlassianAppForgeProps {
10
10
  useAtlasKitFlags?: boolean;
11
11
  }
12
12
 
13
- declare interface InvokeRemoteResponse<T> {
14
- body?: T;
15
- headers?: Record<string, string>;
16
- status: number;
17
- }
18
-
19
- declare type InvokeRemoteSignature = <T, U>(input: {
13
+ declare type InvokeRemoteSignature = <U>(input: {
20
14
  path: string;
21
15
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
22
16
  headers?: Record<string, string>;
23
17
  body?: U;
24
- }) => Promise<InvokeRemoteResponse<T>>;
18
+ }) => Promise<Record<string, unknown> | void>;
25
19
 
26
20
  export { }
@@ -51,18 +51,12 @@ declare type InvokePayload = {
51
51
  [key in number | string]: unknown;
52
52
  };
53
53
 
54
- declare interface InvokeRemoteResponse<T> {
55
- body?: T;
56
- headers?: Record<string, string>;
57
- status: number;
58
- }
59
-
60
- declare type InvokeRemoteSignature = <T, U>(input: {
54
+ declare type InvokeRemoteSignature = <U>(input: {
61
55
  path: string;
62
56
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
63
57
  headers?: Record<string, string>;
64
58
  body?: U;
65
- }) => Promise<InvokeRemoteResponse<T>>;
59
+ }) => Promise<Record<string, unknown> | void>;
66
60
 
67
61
  declare type InvokeSignature = <T = unknown, U = InvokePayload, A extends string = string>(action: A, data?: U) => Promise<T>;
68
62
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valiantys/atlassian-app-frontend",
3
- "version": "3.0.0-alpha-21",
3
+ "version": "3.0.0-alpha-24",
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": {
@@ -183,7 +183,7 @@
183
183
  "@atlaskit/select": "^20.6.0",
184
184
  "@atlaskit/spinner": "^18.0.4",
185
185
  "@atlaskit/tokens": "^4.9.0",
186
- "@forge/bridge": "^4.5.2",
186
+ "@forge/bridge": "^5.7.0",
187
187
  "react": "^18.3.1",
188
188
  "react-dom": "^18.3.1",
189
189
  "react-router-dom": "^6.26.2"
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class h 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 c(r,t){const e={Authorization:r.startsWith("Bearer ")?r:`Bearer ${r}`};return t?{...t,...e}:e}async function j(r,t,e){const a=c(r,e.headers||{});return fetch(t,{...e,headers:a})}async function x(r,t,e,a,n="json",o={}){return d(t,e,c(r,o),a,n)}async function d(r,t,e,a,n="json",o){const f={...e??{},Accept:n==="json"?"application/json":"text/html","Content-Type":n==="json"?"application/json":"text/html"},l=a?JSON.stringify(a):void 0,s=await fetch(r,{method:t,headers:f,body:l,credentials:o});if(s.ok)return t==="DELETE"||s.status===204?void 0:n==="text"?await s.text():await s.json();{let u="";try{u=await s.text()}catch{}const i=`${s.status} ${s.statusText} - ${t} ${r}
2
- ${u}`;throw console.error(i),new h(s.statusText,s.status,i)}}exports.FetchError=h;exports.addAuthHeader=c;exports.bearerAuthFetch=x;exports.bearerAuthFetchRaw=j;exports.jsonFetch=d;
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,4 +1,4 @@
1
- class f extends Error {
1
+ class j extends Error {
2
2
  constructor(t, e, a = t) {
3
3
  super(a), this.statusText = t, this.statusCode = e, this.statusCode = e, this.statusText = t;
4
4
  }
@@ -9,56 +9,63 @@ class f extends Error {
9
9
  };
10
10
  }
11
11
  }
12
- function u(s, t) {
12
+ function d(s, t) {
13
13
  const e = {
14
14
  Authorization: s.startsWith("Bearer ") ? s : `Bearer ${s}`
15
15
  };
16
16
  return t ? { ...t, ...e } : e;
17
17
  }
18
- async function l(s, t, e) {
19
- const a = u(
18
+ async function p(s, t, e) {
19
+ const a = d(
20
20
  s,
21
21
  e.headers || {}
22
22
  );
23
23
  return fetch(t, { ...e, headers: a });
24
24
  }
25
- async function j(s, t, e, a, n = "json", o = {}) {
26
- return x(
25
+ async function w(s, t, e, a, n = "json", o = {}) {
26
+ return y(
27
27
  t,
28
28
  e,
29
- u(s, o),
29
+ d(s, o),
30
30
  a,
31
31
  n
32
32
  );
33
33
  }
34
- async function x(s, t, e, a, n = "json", o) {
35
- const h = {
36
- ...e ?? {},
34
+ async function y(s, t, e, a, n = "json", o) {
35
+ const h = typeof o == "string" ? { includeCredentials: o } : o ?? {}, f = {
36
+ ...e,
37
37
  Accept: n === "json" ? "application/json" : "text/html",
38
38
  "Content-Type": n === "json" ? "application/json" : "text/html"
39
- }, d = a ? JSON.stringify(a) : void 0, r = await fetch(s, {
39
+ }, l = a ? JSON.stringify(a) : void 0, r = await fetch(s, {
40
40
  method: t,
41
- headers: h,
42
- body: d,
43
- credentials: o
41
+ headers: f,
42
+ body: l,
43
+ credentials: h.includeCredentials
44
44
  });
45
- if (r.ok)
46
- return t === "DELETE" || r.status === 204 ? void 0 : n === "text" ? await r.text() : await r.json();
47
- {
48
- let c = "";
45
+ let c;
46
+ if (r.ok) {
47
+ if (t === "DELETE" || r.status === 204 ? c = void 0 : n === "text" ? c = await r.text() : c = await r.json(), h.returnMetadata) {
48
+ const i = {};
49
+ return r.headers.forEach((u, x) => {
50
+ i[x] = u;
51
+ }), { body: c, headers: i };
52
+ }
53
+ return c;
54
+ } else {
55
+ let i = "";
49
56
  try {
50
- c = await r.text();
57
+ i = await r.text();
51
58
  } catch {
52
59
  }
53
- const i = `${r.status} ${r.statusText} - ${t} ${s}
54
- ${c}`;
55
- throw console.error(i), new f(r.statusText, r.status, i);
60
+ const u = `${r.status} ${r.statusText} - ${t} ${s}
61
+ ${i}`;
62
+ throw console.error(u), new j(r.statusText, r.status, u);
56
63
  }
57
64
  }
58
65
  export {
59
- f as FetchError,
60
- u as addAuthHeader,
61
- j as bearerAuthFetch,
62
- l as bearerAuthFetchRaw,
63
- x as jsonFetch
66
+ j as FetchError,
67
+ d as addAuthHeader,
68
+ w as bearerAuthFetch,
69
+ p as bearerAuthFetchRaw,
70
+ y as jsonFetch
64
71
  };
@@ -299,76 +299,231 @@
299
299
  "extendsTokenRanges": []
300
300
  },
301
301
  {
302
- "kind": "Function",
303
- "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapper:function(1)",
302
+ "kind": "Variable",
303
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapper:var",
304
304
  "docComment": "",
305
305
  "excerptTokens": [
306
306
  {
307
307
  "kind": "Content",
308
- "text": "export declare function IframeWrapper<T>({ iframeProps, messageCallback, onMouseOut, }: "
308
+ "text": "IframeWrapper: "
309
+ },
310
+ {
311
+ "kind": "Reference",
312
+ "text": "React.ForwardRefExoticComponent",
313
+ "canonicalReference": "@types/react!React.ForwardRefExoticComponent:interface"
309
314
  },
310
315
  {
311
316
  "kind": "Content",
312
- "text": "{\n iframeProps: "
317
+ "text": "<"
313
318
  },
314
319
  {
315
320
  "kind": "Reference",
316
- "text": "IframeProps",
317
- "canonicalReference": "@valiantys/atlassian-app-frontend!IframeProps:interface"
321
+ "text": "Readonly",
322
+ "canonicalReference": "!Readonly:type"
318
323
  },
319
324
  {
320
325
  "kind": "Content",
321
- "text": ";\n messageCallback?: (eventData: T) => void;\n onMouseOut?: () => void;\n}"
326
+ "text": "<"
322
327
  },
323
328
  {
324
- "kind": "Content",
325
- "text": "): "
329
+ "kind": "Reference",
330
+ "text": "IframeWrapperProps",
331
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperProps:interface"
326
332
  },
327
333
  {
328
334
  "kind": "Content",
329
- "text": "import(\"react/jsx-runtime\")."
335
+ "text": "> & "
330
336
  },
331
337
  {
332
338
  "kind": "Reference",
333
- "text": "JSX.Element",
334
- "canonicalReference": "@types/react!JSX.Element:interface"
339
+ "text": "React.RefAttributes",
340
+ "canonicalReference": "@types/react!React.RefAttributes:interface"
335
341
  },
336
342
  {
337
343
  "kind": "Content",
338
- "text": ";"
344
+ "text": "<unknown>>"
345
+ }
346
+ ],
347
+ "fileUrlPath": "../../shared/frontend-ui-iframe/src/lib/iframe-wrapper.d.ts",
348
+ "isReadonly": true,
349
+ "releaseTag": "Public",
350
+ "name": "IframeWrapper",
351
+ "variableTypeTokenRange": {
352
+ "startIndex": 1,
353
+ "endIndex": 9
354
+ }
355
+ },
356
+ {
357
+ "kind": "Interface",
358
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperProps:interface",
359
+ "docComment": "",
360
+ "excerptTokens": [
361
+ {
362
+ "kind": "Content",
363
+ "text": "export interface IframeWrapperProps "
339
364
  }
340
365
  ],
341
366
  "fileUrlPath": "../../shared/frontend-ui-iframe/src/lib/iframe-wrapper.d.ts",
342
- "returnTypeTokenRange": {
343
- "startIndex": 5,
344
- "endIndex": 7
345
- },
346
367
  "releaseTag": "Public",
347
- "overloadIndex": 1,
348
- "parameters": [
368
+ "name": "IframeWrapperProps",
369
+ "preserveMemberOrder": false,
370
+ "members": [
371
+ {
372
+ "kind": "PropertySignature",
373
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperProps#iframeProps:member",
374
+ "docComment": "",
375
+ "excerptTokens": [
376
+ {
377
+ "kind": "Content",
378
+ "text": "iframeProps: "
379
+ },
380
+ {
381
+ "kind": "Reference",
382
+ "text": "IframeProps",
383
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeProps:interface"
384
+ },
385
+ {
386
+ "kind": "Content",
387
+ "text": ";"
388
+ }
389
+ ],
390
+ "isReadonly": false,
391
+ "isOptional": false,
392
+ "releaseTag": "Public",
393
+ "name": "iframeProps",
394
+ "propertyTypeTokenRange": {
395
+ "startIndex": 1,
396
+ "endIndex": 2
397
+ }
398
+ },
349
399
  {
350
- "parameterName": "{ iframeProps, messageCallback, onMouseOut, }",
351
- "parameterTypeTokenRange": {
400
+ "kind": "PropertySignature",
401
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperProps#messageCallback:member",
402
+ "docComment": "",
403
+ "excerptTokens": [
404
+ {
405
+ "kind": "Content",
406
+ "text": "messageCallback?: "
407
+ },
408
+ {
409
+ "kind": "Content",
410
+ "text": "(eventData: any) => void"
411
+ },
412
+ {
413
+ "kind": "Content",
414
+ "text": ";"
415
+ }
416
+ ],
417
+ "isReadonly": false,
418
+ "isOptional": true,
419
+ "releaseTag": "Public",
420
+ "name": "messageCallback",
421
+ "propertyTypeTokenRange": {
422
+ "startIndex": 1,
423
+ "endIndex": 2
424
+ }
425
+ },
426
+ {
427
+ "kind": "PropertySignature",
428
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperProps#onMouseOut:member",
429
+ "docComment": "",
430
+ "excerptTokens": [
431
+ {
432
+ "kind": "Content",
433
+ "text": "onMouseOut?: "
434
+ },
435
+ {
436
+ "kind": "Content",
437
+ "text": "() => void"
438
+ },
439
+ {
440
+ "kind": "Content",
441
+ "text": ";"
442
+ }
443
+ ],
444
+ "isReadonly": false,
445
+ "isOptional": true,
446
+ "releaseTag": "Public",
447
+ "name": "onMouseOut",
448
+ "propertyTypeTokenRange": {
352
449
  "startIndex": 1,
353
- "endIndex": 4
354
- },
355
- "isOptional": false
450
+ "endIndex": 2
451
+ }
356
452
  }
357
453
  ],
358
- "typeParameters": [
454
+ "extendsTokenRanges": []
455
+ },
456
+ {
457
+ "kind": "Interface",
458
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperRef:interface",
459
+ "docComment": "",
460
+ "excerptTokens": [
461
+ {
462
+ "kind": "Content",
463
+ "text": "export interface IframeWrapperRef "
464
+ }
465
+ ],
466
+ "fileUrlPath": "../../shared/frontend-ui-iframe/src/lib/iframe-wrapper.d.ts",
467
+ "releaseTag": "Public",
468
+ "name": "IframeWrapperRef",
469
+ "preserveMemberOrder": false,
470
+ "members": [
471
+ {
472
+ "kind": "PropertySignature",
473
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperRef#focusContentWindow:member",
474
+ "docComment": "",
475
+ "excerptTokens": [
476
+ {
477
+ "kind": "Content",
478
+ "text": "focusContentWindow: "
479
+ },
480
+ {
481
+ "kind": "Content",
482
+ "text": "() => void"
483
+ },
484
+ {
485
+ "kind": "Content",
486
+ "text": ";"
487
+ }
488
+ ],
489
+ "isReadonly": false,
490
+ "isOptional": false,
491
+ "releaseTag": "Public",
492
+ "name": "focusContentWindow",
493
+ "propertyTypeTokenRange": {
494
+ "startIndex": 1,
495
+ "endIndex": 2
496
+ }
497
+ },
359
498
  {
360
- "typeParameterName": "T",
361
- "constraintTokenRange": {
362
- "startIndex": 0,
363
- "endIndex": 0
364
- },
365
- "defaultTypeTokenRange": {
366
- "startIndex": 0,
367
- "endIndex": 0
499
+ "kind": "PropertySignature",
500
+ "canonicalReference": "@valiantys/atlassian-app-frontend!IframeWrapperRef#reloadContentWindow:member",
501
+ "docComment": "/**\n * reload will only work in a same-origin frame *\n */\n",
502
+ "excerptTokens": [
503
+ {
504
+ "kind": "Content",
505
+ "text": "reloadContentWindow: "
506
+ },
507
+ {
508
+ "kind": "Content",
509
+ "text": "() => void"
510
+ },
511
+ {
512
+ "kind": "Content",
513
+ "text": ";"
514
+ }
515
+ ],
516
+ "isReadonly": false,
517
+ "isOptional": false,
518
+ "releaseTag": "Public",
519
+ "name": "reloadContentWindow",
520
+ "propertyTypeTokenRange": {
521
+ "startIndex": 1,
522
+ "endIndex": 2
368
523
  }
369
524
  }
370
525
  ],
371
- "name": "IframeWrapper"
526
+ "extendsTokenRanges": []
372
527
  }
373
528
  ]
374
529
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```ts
6
6
 
7
- import { JSX as JSX_2 } from 'react/jsx-runtime';
7
+ import { default as default_2 } from 'react';
8
8
 
9
9
  // @public (undocumented)
10
10
  export interface IframeProps {
@@ -19,11 +19,24 @@ export interface IframeProps {
19
19
  }
20
20
 
21
21
  // @public (undocumented)
22
- export function IframeWrapper<T>({ iframeProps, messageCallback, onMouseOut, }: {
22
+ export const IframeWrapper: default_2.ForwardRefExoticComponent<Readonly<IframeWrapperProps> & default_2.RefAttributes<unknown>>;
23
+
24
+ // @public (undocumented)
25
+ export interface IframeWrapperProps {
26
+ // (undocumented)
23
27
  iframeProps: IframeProps;
24
- messageCallback?: (eventData: T) => void;
28
+ // (undocumented)
29
+ messageCallback?: (eventData: any) => void;
30
+ // (undocumented)
25
31
  onMouseOut?: () => void;
26
- }): JSX_2.Element;
32
+ }
33
+
34
+ // @public (undocumented)
35
+ export interface IframeWrapperRef {
36
+ // (undocumented)
37
+ focusContentWindow: () => void;
38
+ reloadContentWindow: () => void;
39
+ }
27
40
 
28
41
  // (No @packageDocumentation comment for this package)
29
42
 
@@ -1,4 +1,4 @@
1
- import { JSX as JSX_2 } from 'react/jsx-runtime';
1
+ import { default as default_2 } from 'react';
2
2
 
3
3
  export declare interface IframeProps {
4
4
  link: string;
@@ -7,10 +7,18 @@ export declare interface IframeProps {
7
7
  height?: string;
8
8
  }
9
9
 
10
- export declare function IframeWrapper<T>({ iframeProps, messageCallback, onMouseOut, }: {
10
+ export declare const IframeWrapper: default_2.ForwardRefExoticComponent<Readonly<IframeWrapperProps> & default_2.RefAttributes<unknown>>;
11
+
12
+ export declare interface IframeWrapperProps {
11
13
  iframeProps: IframeProps;
12
- messageCallback?: (eventData: T) => void;
14
+ messageCallback?: (eventData: any) => void;
13
15
  onMouseOut?: () => void;
14
- }): JSX_2.Element;
16
+ }
17
+
18
+ export declare interface IframeWrapperRef {
19
+ /** reload will only work in a same-origin frame **/
20
+ reloadContentWindow: () => void;
21
+ focusContentWindow: () => void;
22
+ }
15
23
 
16
24
  export { }
@@ -172,123 +172,6 @@
172
172
  "name": "",
173
173
  "preserveMemberOrder": false,
174
174
  "members": [
175
- {
176
- "kind": "Interface",
177
- "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteResponse:interface",
178
- "docComment": "",
179
- "excerptTokens": [
180
- {
181
- "kind": "Content",
182
- "text": "export interface InvokeRemoteResponse<T> "
183
- }
184
- ],
185
- "fileUrlPath": "../../shared/frontend-ui-remote-adapter/src/lib/remote-adapter.d.ts",
186
- "releaseTag": "Public",
187
- "typeParameters": [
188
- {
189
- "typeParameterName": "T",
190
- "constraintTokenRange": {
191
- "startIndex": 0,
192
- "endIndex": 0
193
- },
194
- "defaultTypeTokenRange": {
195
- "startIndex": 0,
196
- "endIndex": 0
197
- }
198
- }
199
- ],
200
- "name": "InvokeRemoteResponse",
201
- "preserveMemberOrder": false,
202
- "members": [
203
- {
204
- "kind": "PropertySignature",
205
- "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteResponse#body:member",
206
- "docComment": "",
207
- "excerptTokens": [
208
- {
209
- "kind": "Content",
210
- "text": "body?: "
211
- },
212
- {
213
- "kind": "Content",
214
- "text": "T"
215
- },
216
- {
217
- "kind": "Content",
218
- "text": ";"
219
- }
220
- ],
221
- "isReadonly": false,
222
- "isOptional": true,
223
- "releaseTag": "Public",
224
- "name": "body",
225
- "propertyTypeTokenRange": {
226
- "startIndex": 1,
227
- "endIndex": 2
228
- }
229
- },
230
- {
231
- "kind": "PropertySignature",
232
- "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteResponse#headers:member",
233
- "docComment": "",
234
- "excerptTokens": [
235
- {
236
- "kind": "Content",
237
- "text": "headers?: "
238
- },
239
- {
240
- "kind": "Reference",
241
- "text": "Record",
242
- "canonicalReference": "!Record:type"
243
- },
244
- {
245
- "kind": "Content",
246
- "text": "<string, string>"
247
- },
248
- {
249
- "kind": "Content",
250
- "text": ";"
251
- }
252
- ],
253
- "isReadonly": false,
254
- "isOptional": true,
255
- "releaseTag": "Public",
256
- "name": "headers",
257
- "propertyTypeTokenRange": {
258
- "startIndex": 1,
259
- "endIndex": 3
260
- }
261
- },
262
- {
263
- "kind": "PropertySignature",
264
- "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteResponse#status:member",
265
- "docComment": "",
266
- "excerptTokens": [
267
- {
268
- "kind": "Content",
269
- "text": "status: "
270
- },
271
- {
272
- "kind": "Content",
273
- "text": "number"
274
- },
275
- {
276
- "kind": "Content",
277
- "text": ";"
278
- }
279
- ],
280
- "isReadonly": false,
281
- "isOptional": false,
282
- "releaseTag": "Public",
283
- "name": "status",
284
- "propertyTypeTokenRange": {
285
- "startIndex": 1,
286
- "endIndex": 2
287
- }
288
- }
289
- ],
290
- "extendsTokenRanges": []
291
- },
292
175
  {
293
176
  "kind": "TypeAlias",
294
177
  "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteSignature:type",
@@ -300,7 +183,7 @@
300
183
  },
301
184
  {
302
185
  "kind": "Content",
303
- "text": "<T, U>(input: {\n path: string;\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n headers?: "
186
+ "text": "<U>(input: {\n path: string;\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n headers?: "
304
187
  },
305
188
  {
306
189
  "kind": "Reference",
@@ -322,12 +205,12 @@
322
205
  },
323
206
  {
324
207
  "kind": "Reference",
325
- "text": "InvokeRemoteResponse",
326
- "canonicalReference": "@valiantys/atlassian-app-frontend!InvokeRemoteResponse:interface"
208
+ "text": "Record",
209
+ "canonicalReference": "!Record:type"
327
210
  },
328
211
  {
329
212
  "kind": "Content",
330
- "text": "<T>>"
213
+ "text": "<string, unknown> | void>"
331
214
  },
332
215
  {
333
216
  "kind": "Content",
@@ -8,22 +8,12 @@ import { JSX as JSX_2 } from 'react/jsx-runtime';
8
8
  import { ReactNode } from 'react';
9
9
 
10
10
  // @public (undocumented)
11
- export interface InvokeRemoteResponse<T> {
12
- // (undocumented)
13
- body?: T;
14
- // (undocumented)
15
- headers?: Record<string, string>;
16
- // (undocumented)
17
- status: number;
18
- }
19
-
20
- // @public (undocumented)
21
- export type InvokeRemoteSignature = <T, U>(input: {
11
+ export type InvokeRemoteSignature = <U>(input: {
22
12
  path: string;
23
13
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
24
14
  headers?: Record<string, string>;
25
15
  body?: U;
26
- }) => Promise<InvokeRemoteResponse<T>>;
16
+ }) => Promise<Record<string, unknown> | void>;
27
17
 
28
18
  // @public (undocumented)
29
19
  export function oauthFetchInvokeRemote(baseUrl: string, authToken?: string): InvokeRemoteSignature;
@@ -1,18 +1,12 @@
1
1
  import { JSX as JSX_2 } from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
3
 
4
- export declare interface InvokeRemoteResponse<T> {
5
- body?: T;
6
- headers?: Record<string, string>;
7
- status: number;
8
- }
9
-
10
- export declare type InvokeRemoteSignature = <T, U>(input: {
4
+ export declare type InvokeRemoteSignature = <U>(input: {
11
5
  path: string;
12
6
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
13
7
  headers?: Record<string, string>;
14
8
  body?: U;
15
- }) => Promise<InvokeRemoteResponse<T>>;
9
+ }) => Promise<Record<string, unknown> | void>;
16
10
 
17
11
  export declare function oauthFetchInvokeRemote(baseUrl: string, authToken?: string): InvokeRemoteSignature;
18
12
 
@@ -1284,13 +1284,22 @@
1284
1284
  },
1285
1285
  {
1286
1286
  "kind": "Content",
1287
- "text": ", includeCredentials?: "
1287
+ "text": ", options?: "
1288
1288
  },
1289
1289
  {
1290
1290
  "kind": "Reference",
1291
1291
  "text": "RequestCredentials",
1292
1292
  "canonicalReference": "!RequestCredentials:type"
1293
1293
  },
1294
+ {
1295
+ "kind": "Content",
1296
+ "text": " | "
1297
+ },
1298
+ {
1299
+ "kind": "Reference",
1300
+ "text": "JsonFetchOptions",
1301
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JsonFetchOptions:interface"
1302
+ },
1294
1303
  {
1295
1304
  "kind": "Content",
1296
1305
  "text": "): "
@@ -1311,8 +1320,8 @@
1311
1320
  ],
1312
1321
  "fileUrlPath": "../../../shared/util-fetch/src/lib/shared-util-fetch.d.ts",
1313
1322
  "returnTypeTokenRange": {
1314
- "startIndex": 17,
1315
- "endIndex": 19
1323
+ "startIndex": 19,
1324
+ "endIndex": 21
1316
1325
  },
1317
1326
  "releaseTag": "Public",
1318
1327
  "overloadIndex": 1,
@@ -1358,10 +1367,10 @@
1358
1367
  "isOptional": true
1359
1368
  },
1360
1369
  {
1361
- "parameterName": "includeCredentials",
1370
+ "parameterName": "options",
1362
1371
  "parameterTypeTokenRange": {
1363
1372
  "startIndex": 15,
1364
- "endIndex": 16
1373
+ "endIndex": 18
1365
1374
  },
1366
1375
  "isOptional": true
1367
1376
  }
@@ -1392,6 +1401,79 @@
1392
1401
  ],
1393
1402
  "name": "jsonFetch"
1394
1403
  },
1404
+ {
1405
+ "kind": "Interface",
1406
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JsonFetchOptions:interface",
1407
+ "docComment": "",
1408
+ "excerptTokens": [
1409
+ {
1410
+ "kind": "Content",
1411
+ "text": "export interface JsonFetchOptions "
1412
+ }
1413
+ ],
1414
+ "fileUrlPath": "../../../shared/util-fetch/src/lib/shared-util-fetch.d.ts",
1415
+ "releaseTag": "Public",
1416
+ "name": "JsonFetchOptions",
1417
+ "preserveMemberOrder": false,
1418
+ "members": [
1419
+ {
1420
+ "kind": "PropertySignature",
1421
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JsonFetchOptions#includeCredentials:member",
1422
+ "docComment": "",
1423
+ "excerptTokens": [
1424
+ {
1425
+ "kind": "Content",
1426
+ "text": "includeCredentials?: "
1427
+ },
1428
+ {
1429
+ "kind": "Reference",
1430
+ "text": "RequestCredentials",
1431
+ "canonicalReference": "!RequestCredentials:type"
1432
+ },
1433
+ {
1434
+ "kind": "Content",
1435
+ "text": ";"
1436
+ }
1437
+ ],
1438
+ "isReadonly": false,
1439
+ "isOptional": true,
1440
+ "releaseTag": "Public",
1441
+ "name": "includeCredentials",
1442
+ "propertyTypeTokenRange": {
1443
+ "startIndex": 1,
1444
+ "endIndex": 2
1445
+ }
1446
+ },
1447
+ {
1448
+ "kind": "PropertySignature",
1449
+ "canonicalReference": "@valiantys/atlassian-app-frontend!JsonFetchOptions#returnMetadata:member",
1450
+ "docComment": "",
1451
+ "excerptTokens": [
1452
+ {
1453
+ "kind": "Content",
1454
+ "text": "returnMetadata?: "
1455
+ },
1456
+ {
1457
+ "kind": "Content",
1458
+ "text": "boolean"
1459
+ },
1460
+ {
1461
+ "kind": "Content",
1462
+ "text": ";"
1463
+ }
1464
+ ],
1465
+ "isReadonly": false,
1466
+ "isOptional": true,
1467
+ "releaseTag": "Public",
1468
+ "name": "returnMetadata",
1469
+ "propertyTypeTokenRange": {
1470
+ "startIndex": 1,
1471
+ "endIndex": 2
1472
+ }
1473
+ }
1474
+ ],
1475
+ "extendsTokenRanges": []
1476
+ },
1395
1477
  {
1396
1478
  "kind": "Interface",
1397
1479
  "canonicalReference": "@valiantys/atlassian-app-frontend!PagedResponseValues:interface",
@@ -78,7 +78,15 @@ export type FetchRoute = {
78
78
  export type FetchSignature = <T>(request: FetchRequest, body?: any) => Promise<T>;
79
79
 
80
80
  // @public (undocumented)
81
- export function jsonFetch<T, U = Record<string, unknown>>(url: string, method: FetchMethod, headers?: Record<string, string>, body?: U, responseType?: 'json' | 'text', includeCredentials?: RequestCredentials): Promise<T>;
81
+ export function jsonFetch<T, U = Record<string, unknown>>(url: string, method: FetchMethod, headers?: Record<string, string>, body?: U, responseType?: 'json' | 'text', options?: RequestCredentials | JsonFetchOptions): Promise<T>;
82
+
83
+ // @public (undocumented)
84
+ export interface JsonFetchOptions {
85
+ // (undocumented)
86
+ includeCredentials?: RequestCredentials;
87
+ // (undocumented)
88
+ returnMetadata?: boolean;
89
+ }
82
90
 
83
91
  // @public (undocumented)
84
92
  export interface PagedResponseValues<T> {
@@ -46,7 +46,12 @@ export declare type FetchRoute = {
46
46
 
47
47
  export declare type FetchSignature = <T>(request: FetchRequest, body?: any) => Promise<T>;
48
48
 
49
- export declare function jsonFetch<T, U = Record<string, unknown>>(url: string, method: FetchMethod, headers?: Record<string, string>, body?: U, responseType?: 'json' | 'text', includeCredentials?: RequestCredentials): Promise<T>;
49
+ export declare function jsonFetch<T, U = Record<string, unknown>>(url: string, method: FetchMethod, headers?: Record<string, string>, body?: U, responseType?: 'json' | 'text', options?: RequestCredentials | JsonFetchOptions): Promise<T>;
50
+
51
+ export declare interface JsonFetchOptions {
52
+ includeCredentials?: RequestCredentials;
53
+ returnMetadata?: boolean;
54
+ }
50
55
 
51
56
  export declare interface PagedResponseValues<T> {
52
57
  startAt: number;