@keboola/api-client 36.0.0 → 40.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +133 -103
- package/API-SURFACE.md +36 -2
- package/CHANGELOG.md +194 -0
- package/README.md +22 -20
- package/dist/{ManagementClientAuthError-DD4u0EU7.cjs → ManagementClientAuthError-DE7lNGZQ.cjs} +3 -2
- package/dist/{ManagementClientAuthError-DD4u0EU7.cjs.map → ManagementClientAuthError-DE7lNGZQ.cjs.map} +1 -1
- package/dist/{ManagementClientAuthError-ey-f03vy.js → ManagementClientAuthError-H30lti_Q.js} +3 -2
- package/dist/{ManagementClientAuthError-ey-f03vy.js.map → ManagementClientAuthError-H30lti_Q.js.map} +1 -1
- package/dist/{ValidationError-CLVJCCwH.cjs → ValidationError-D65QU0uq.cjs} +10 -16
- package/dist/ValidationError-D65QU0uq.cjs.map +1 -0
- package/dist/ValidationError-DjhtNMfZ.js +42 -0
- package/dist/ValidationError-DjhtNMfZ.js.map +1 -0
- package/dist/ai/index.cjs +2 -2
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.js +2 -2
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/{appLogs-BjfUoWzs.cjs → appLogs-B9zFJIuy.cjs} +2 -2
- package/dist/{appLogs-BjfUoWzs.cjs.map → appLogs-B9zFJIuy.cjs.map} +1 -1
- package/dist/{appLogs-xsVkTriU.js → appLogs-BBkkUOW1.js} +2 -2
- package/dist/{appLogs-xsVkTriU.js.map → appLogs-BBkkUOW1.js.map} +1 -1
- package/dist/{appLogs-Ch7DYpzx.d.ts → appLogs-BS6ViVGR.d.ts} +2 -2
- package/dist/{appLogs-D5A13Y0y.d.cts → appLogs-C9YlJ2g8.d.cts} +2 -2
- package/dist/apps/index.cjs +30 -56
- package/dist/apps/index.cjs.map +1 -1
- package/dist/apps/index.d.cts +8 -13
- package/dist/apps/index.d.ts +8 -13
- package/dist/apps/index.js +30 -56
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/assets/index.cjs +1 -1
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/auth/index.cjs +8 -4
- package/dist/auth/index.d.cts +2 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.js +2 -2
- package/dist/auth/types.d.cts +2 -2
- package/dist/auth/types.d.ts +2 -2
- package/dist/{auth-JQ33o3nU.cjs → auth-Dm0F2rOh.cjs} +2 -2
- package/dist/{auth-JQ33o3nU.cjs.map → auth-Dm0F2rOh.cjs.map} +1 -1
- package/dist/{auth-aItmDu45.js → auth-DworfoPy.js} +2 -2
- package/dist/{auth-aItmDu45.js.map → auth-DworfoPy.js.map} +1 -1
- package/dist/{authClient-_PpvGgZJ.cjs → authClient-BmuUo0J4.cjs} +141 -48
- package/dist/authClient-BmuUo0J4.cjs.map +1 -0
- package/dist/{authClient-D8i3JTM-.d.ts → authClient-CHXWJ9x3.d.ts} +109 -76
- package/dist/{authClient-D7W9vWPR.js → authClient-CgcDGd30.js} +108 -39
- package/dist/authClient-CgcDGd30.js.map +1 -0
- package/dist/{authClient-CTHNs6Tq.d.cts → authClient-vEt_7_uk.d.cts} +109 -76
- package/dist/billing/index.cjs +2 -2
- package/dist/billing/index.d.cts +1 -1
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/index.js +2 -2
- package/dist/billing/types.d.cts +1 -1
- package/dist/billing/types.d.ts +1 -1
- package/dist/businessWorkspaceApi/index.cjs +3 -0
- package/dist/businessWorkspaceApi/index.d.cts +2 -0
- package/dist/businessWorkspaceApi/index.d.ts +2 -0
- package/dist/businessWorkspaceApi/index.js +2 -0
- package/dist/businessWorkspaceApi/types.cjs +0 -0
- package/dist/businessWorkspaceApi/types.d.cts +2 -0
- package/dist/businessWorkspaceApi/types.d.ts +2 -0
- package/dist/businessWorkspaceApi/types.js +1 -0
- package/dist/businessWorkspaceApi-6tCDdpnY.cjs +66 -0
- package/dist/businessWorkspaceApi-6tCDdpnY.cjs.map +1 -0
- package/dist/businessWorkspaceApi-BLUdefRF.js +61 -0
- package/dist/businessWorkspaceApi-BLUdefRF.js.map +1 -0
- package/dist/businessWorkspaceApiClient-BHDJlHFo.d.cts +529 -0
- package/dist/businessWorkspaceApiClient-DI-z1VIH.d.ts +529 -0
- package/dist/chat/index.cjs +9 -5
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.d.cts +3 -3
- package/dist/chat/index.d.ts +3 -3
- package/dist/chat/index.js +9 -5
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/types.cjs +1 -3
- package/dist/chat/types.cjs.map +1 -1
- package/dist/chat/types.d.cts +2 -2
- package/dist/chat/types.d.ts +2 -2
- package/dist/chat/types.js +1 -3
- package/dist/chat/types.js.map +1 -1
- package/dist/{componentId-DkyQ8PM0.cjs → componentId-57vjsa2i.cjs} +4 -2
- package/dist/{componentId-DkyQ8PM0.cjs.map → componentId-57vjsa2i.cjs.map} +1 -1
- package/dist/{componentId-vJz-kWs6.js → componentId-C6WZa_R1.js} +4 -2
- package/dist/{componentId-vJz-kWs6.js.map → componentId-C6WZa_R1.js.map} +1 -1
- package/dist/{concurrent-CH9fbNr3.js → concurrent-BacWxPwi.js} +5 -7
- package/dist/concurrent-BacWxPwi.js.map +1 -0
- package/dist/{concurrent-tbiIa0UL.cjs → concurrent-CdVfR1N5.cjs} +5 -7
- package/dist/concurrent-CdVfR1N5.cjs.map +1 -0
- package/dist/{configurations-VtNE0nrT.js → configurations-BPKGGy-M.js} +14 -22
- package/dist/configurations-BPKGGy-M.js.map +1 -0
- package/dist/{configurations-CyFF9Dtu.cjs → configurations-BTRHVSRq.cjs} +20 -53
- package/dist/configurations-BTRHVSRq.cjs.map +1 -0
- package/dist/{configurations-BVvcimzo.js → configurations-Chg_JwJ1.js} +20 -53
- package/dist/configurations-Chg_JwJ1.js.map +1 -0
- package/dist/{configurations-zkNjr73Q.cjs → configurations-IYyOvhI3.cjs} +14 -22
- package/dist/configurations-IYyOvhI3.cjs.map +1 -0
- package/dist/constants/index.cjs +2 -2
- package/dist/constants/index.d.cts +2 -2
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +2 -2
- package/dist/{constants-wfbFsqqN.js → constants-C2tYAJSj.js} +10 -1
- package/dist/constants-C2tYAJSj.js.map +1 -0
- package/dist/{constants-C4DlsF_M.cjs → constants-C6xku_Vx.cjs} +10 -1
- package/dist/constants-C6xku_Vx.cjs.map +1 -0
- package/dist/{createFetchClient-DgMiqTJ8.cjs → createFetchClient-Cwp8max9.cjs} +24 -5
- package/dist/createFetchClient-Cwp8max9.cjs.map +1 -0
- package/dist/{createFetchClient-U-ZrwPl2.js → createFetchClient-DXHQK63w.js} +24 -5
- package/dist/createFetchClient-DXHQK63w.js.map +1 -0
- package/dist/{createGenericFetchClient-rxvUUbap.js → createGenericFetchClient-Dg1rgzmG.js} +2 -2
- package/dist/{createGenericFetchClient-rxvUUbap.js.map → createGenericFetchClient-Dg1rgzmG.js.map} +1 -1
- package/dist/{createGenericFetchClient-o3cPJeRn.cjs → createGenericFetchClient-Dl9cqTvR.cjs} +2 -2
- package/dist/{createGenericFetchClient-o3cPJeRn.cjs.map → createGenericFetchClient-Dl9cqTvR.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-DhUU3M1W.cjs → createOpenapiFetchClient-BYqW-9tm.cjs} +2 -2
- package/dist/{createOpenapiFetchClient-DhUU3M1W.cjs.map → createOpenapiFetchClient-BYqW-9tm.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-BVSc9ibR.js → createOpenapiFetchClient-DZUOVupy.js} +2 -2
- package/dist/{createOpenapiFetchClient-BVSc9ibR.js.map → createOpenapiFetchClient-DZUOVupy.js.map} +1 -1
- package/dist/dataScience/index.cjs +2 -2
- package/dist/dataScience/index.d.cts +2 -2
- package/dist/dataScience/index.d.ts +2 -2
- package/dist/dataScience/index.js +2 -2
- package/dist/dataScience/types.d.cts +2 -2
- package/dist/dataScience/types.d.ts +2 -2
- package/dist/{dataScience-0Rl_EuV_.cjs → dataScience-B5QxZnvW.cjs} +5 -5
- package/dist/{dataScience-0Rl_EuV_.cjs.map → dataScience-B5QxZnvW.cjs.map} +1 -1
- package/dist/{dataScience-C1gO5zUn.js → dataScience-OXcwdk1p.js} +5 -5
- package/dist/{dataScience-C1gO5zUn.js.map → dataScience-OXcwdk1p.js.map} +1 -1
- package/dist/dedupe-Cky1gSUu.js +21 -0
- package/dist/dedupe-Cky1gSUu.js.map +1 -0
- package/dist/dedupe-OSnnst2u.cjs +26 -0
- package/dist/dedupe-OSnnst2u.cjs.map +1 -0
- package/dist/developerPortal/index.cjs +1 -1
- package/dist/developerPortal/index.d.cts +2 -2
- package/dist/developerPortal/index.d.ts +2 -2
- package/dist/developerPortal/index.js +1 -1
- package/dist/developerPortal/types.d.cts +1 -1
- package/dist/developerPortal/types.d.ts +1 -1
- package/dist/{developerPortalClient-C_48z8BN.js → developerPortalClient-B1QZ1rYi.js} +6 -8
- package/dist/{developerPortalClient-C_48z8BN.js.map → developerPortalClient-B1QZ1rYi.js.map} +1 -1
- package/dist/{developerPortalClient-ki0XS_OD.cjs → developerPortalClient-CLPpBksD.cjs} +6 -8
- package/dist/{developerPortalClient-ki0XS_OD.cjs.map → developerPortalClient-CLPpBksD.cjs.map} +1 -1
- package/dist/domain/permissions/index.cjs +9 -30
- package/dist/domain/permissions/index.cjs.map +1 -1
- package/dist/domain/permissions/index.d.cts +29 -102
- package/dist/domain/permissions/index.d.ts +29 -102
- package/dist/domain/permissions/index.js +9 -30
- package/dist/domain/permissions/index.js.map +1 -1
- package/dist/domain/storageTable/index.d.cts +1 -1
- package/dist/domain/storageTable/index.d.ts +1 -1
- package/dist/editor/index.cjs +2 -2
- package/dist/editor/index.cjs.map +1 -1
- package/dist/editor/index.d.cts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/index.js +2 -2
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/encryption/index.cjs +2 -22
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +2 -22
- package/dist/encryption/index.js.map +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.cjs +1 -1
- package/dist/import/index.d.cts +3 -3
- package/dist/import/index.d.ts +3 -3
- package/dist/import/index.js +1 -1
- package/dist/{import-C83w7BKz.cjs → import-CNk89mqy.cjs} +3 -3
- package/dist/{import-C83w7BKz.cjs.map → import-CNk89mqy.cjs.map} +1 -1
- package/dist/{import-CROEK82b.js → import-DiMQCzLa.js} +3 -3
- package/dist/{import-CROEK82b.js.map → import-DiMQCzLa.js.map} +1 -1
- package/dist/{index-DR4QqItd.d.cts → index--ZpnE3YT.d.cts} +3 -3
- package/dist/{index-C77vTm2K.d.ts → index-BDZvaRud.d.ts} +6 -6
- package/dist/{index-KuQ79Mnz.d.ts → index-BVhHt5lx.d.cts} +18 -26
- package/dist/{index-NC1dXRTD.d.ts → index-BfqkgPGI.d.cts} +7 -13
- package/dist/{index-NC1dXRTD.d.cts → index-BfqkgPGI.d.ts} +7 -13
- package/dist/{index-V7XKUQm9.d.cts → index-BgR5zcjJ.d.ts} +18 -26
- package/dist/{index-2JM0gyAf.d.ts → index-BkqackZf.d.ts} +439 -289
- package/dist/{index-BDG-LKXj.d.cts → index-ByRpNVcs.d.cts} +88 -18
- package/dist/{index-pXN4LWUX.d.ts → index-C11JSxBY.d.ts} +8 -11
- package/dist/{index-GjcJTCbz.d.cts → index-C4TNAA8-.d.cts} +8 -11
- package/dist/{index-NaYLwG_h.d.cts → index-C8gRRWHL.d.cts} +11 -1
- package/dist/{index-NaYLwG_h.d.ts → index-C8gRRWHL.d.ts} +11 -1
- package/dist/{index-3LUk2rpD.d.ts → index-CPu4Nezo.d.cts} +34 -9
- package/dist/{index-BMqLPS6S.d.ts → index-CXcWpZQ2.d.cts} +4 -12
- package/dist/{index-BMqLPS6S.d.cts → index-CXcWpZQ2.d.ts} +4 -12
- package/dist/{index-Dx52hNLP.d.cts → index-CcMHJcuP.d.cts} +3 -3
- package/dist/{index-BgLnWTZU.d.cts → index-Cvbjp3jx.d.cts} +6 -6
- package/dist/{index-DppA4k3b.d.cts → index-Cz0MXhzs.d.cts} +5 -5
- package/dist/{index-6Xe81qN3.d.ts → index-D-VMgpGc.d.ts} +5 -5
- package/dist/{index-D8rcUbnk.d.ts → index-D7-o-oGa.d.ts} +3 -3
- package/dist/{index-BXF-bs2d.d.ts → index-DCRKjihs.d.ts} +88 -18
- package/dist/{kaiAgentClient-DhTaM3GC.d.cts → index-DNThyEej.d.cts} +19 -5
- package/dist/{index-DXSmFkol.d.cts → index-DOAZmWvh.d.cts} +6 -6
- package/dist/{index-DIAyi-EZ.d.cts → index-DXYASsPP.d.cts} +439 -289
- package/dist/{index-BuegqrS1.d.ts → index-D_-4uQF8.d.ts} +3 -3
- package/dist/{index-CW3Pj7DY.d.cts → index-Dazy-meb.d.ts} +34 -9
- package/dist/{index-CqgtL2NU.d.ts → index-DnQTuc6t.d.ts} +6 -6
- package/dist/{kaiAgentClient-BJj_2aqt.d.ts → index-Qb7X6-ph.d.ts} +19 -5
- package/dist/index.cjs +1503 -895
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1501 -896
- package/dist/index.js.map +1 -1
- package/dist/isLoginPageRedirect-XPwAOKK3.js +14 -0
- package/dist/isLoginPageRedirect-XPwAOKK3.js.map +1 -0
- package/dist/isLoginPageRedirect-jQHiLrG7.cjs +19 -0
- package/dist/isLoginPageRedirect-jQHiLrG7.cjs.map +1 -0
- package/dist/{jobStatus-0_Y3Sr4i.cjs → jobStatus-BMlsyXWI.cjs} +19 -45
- package/dist/jobStatus-BMlsyXWI.cjs.map +1 -0
- package/dist/{jobStatus-PSZJMTiA.js → jobStatus-CfRtsIpv.js} +19 -45
- package/dist/jobStatus-CfRtsIpv.js.map +1 -0
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +3 -2
- package/dist/kaiAgent/index.d.ts +3 -2
- package/dist/kaiAgent/index.js +1 -1
- package/dist/kaiAgent/types.d.cts +2 -2
- package/dist/kaiAgent/types.d.ts +2 -2
- package/dist/{kaiAgent-8LNzGhZc.js → kaiAgent-Dp20HLTh.js} +63 -7
- package/dist/kaiAgent-Dp20HLTh.js.map +1 -0
- package/dist/{kaiAgent-B_TaUPRt.cjs → kaiAgent-QNoeVKPs.cjs} +63 -7
- package/dist/kaiAgent-QNoeVKPs.cjs.map +1 -0
- package/dist/kaiMemory-CClSPInt.cjs +289 -0
- package/dist/kaiMemory-CClSPInt.cjs.map +1 -0
- package/dist/kaiMemory-D0Y_16U4.js +260 -0
- package/dist/kaiMemory-D0Y_16U4.js.map +1 -0
- package/dist/management/index.cjs +1 -1
- package/dist/management/index.d.cts +2 -2
- package/dist/management/index.d.ts +2 -2
- package/dist/management/index.js +1 -1
- package/dist/management/types.d.cts +2 -2
- package/dist/management/types.d.ts +2 -2
- package/dist/{management-BoxlRNg2.cjs → management-CCY0IYnq.cjs} +93 -25
- package/dist/management-CCY0IYnq.cjs.map +1 -0
- package/dist/{management-Bp440RsV.js → management-DvmPiG64.js} +93 -25
- package/dist/management-DvmPiG64.js.map +1 -0
- package/dist/metastore/index.cjs +1 -1
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/index.js +1 -1
- package/dist/metastore/types.d.cts +2 -2
- package/dist/metastore/types.d.ts +2 -2
- package/dist/{metastore-VCDRVhUT.js → metastore-BycJxe7A.js} +14 -8
- package/dist/metastore-BycJxe7A.js.map +1 -0
- package/dist/{metastore-BYYWTb3m.cjs → metastore-XtWciCZT.cjs} +14 -8
- package/dist/metastore-XtWciCZT.cjs.map +1 -0
- package/dist/microsoftGraph/index.cjs +2 -2
- package/dist/microsoftGraph/index.d.cts +2 -2
- package/dist/microsoftGraph/index.d.ts +2 -2
- package/dist/microsoftGraph/index.js +2 -2
- package/dist/microsoftGraph/types.d.cts +1 -1
- package/dist/microsoftGraph/types.d.ts +1 -1
- package/dist/middleware-CBwrtgQd.js +34 -0
- package/dist/middleware-CBwrtgQd.js.map +1 -0
- package/dist/middleware-IjYx3d5u.cjs +45 -0
- package/dist/middleware-IjYx3d5u.cjs.map +1 -0
- package/dist/notifications/index.cjs +4 -4
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/notifications/index.js +4 -4
- package/dist/notifications/types.d.cts +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/oauth/index.cjs +1 -1
- package/dist/oauth/index.d.cts +2 -2
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/{oauth-B8yqG6Sy.cjs → oauth--2p8jkJf.cjs} +5 -5
- package/dist/{oauth-B8yqG6Sy.cjs.map → oauth--2p8jkJf.cjs.map} +1 -1
- package/dist/{oauth--asfePw-.js → oauth-l5zE39cD.js} +5 -5
- package/dist/{oauth--asfePw-.js.map → oauth-l5zE39cD.js.map} +1 -1
- package/dist/omnisearch/index.cjs +6 -14
- package/dist/omnisearch/index.cjs.map +1 -1
- package/dist/omnisearch/index.d.cts +6 -14
- package/dist/omnisearch/index.d.ts +6 -14
- package/dist/omnisearch/index.js +6 -14
- package/dist/omnisearch/index.js.map +1 -1
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/{project-C2wvX0xZ.d.ts → project-B15gStbM.d.ts} +2 -2
- package/dist/{project-hePfzUY0.d.cts → project-cHKuGvqJ.d.cts} +2 -2
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/queryService/types.d.cts +1 -1
- package/dist/queryService/types.d.ts +1 -1
- package/dist/{queryService-Ca65E5KH.js → queryService-CCOYbRbw.js} +6 -6
- package/dist/{queryService-Ca65E5KH.js.map → queryService-CCOYbRbw.js.map} +1 -1
- package/dist/{queryService-BVtjkXy1.cjs → queryService-CQzclHdL.cjs} +6 -6
- package/dist/{queryService-BVtjkXy1.cjs.map → queryService-CQzclHdL.cjs.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +3 -3
- package/dist/queue/index.d.ts +3 -3
- package/dist/queue/index.js +1 -1
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-DyotLFJi.js → queue-Cowbg6bR.js} +8 -11
- package/dist/queue-Cowbg6bR.js.map +1 -0
- package/dist/{queue-OJJUUqc2.cjs → queue-UG_BWKIC.cjs} +8 -11
- package/dist/queue-UG_BWKIC.cjs.map +1 -0
- package/dist/scheduler/index.cjs +4 -4
- package/dist/scheduler/index.d.cts +2 -2
- package/dist/scheduler/index.d.ts +2 -2
- package/dist/scheduler/index.js +4 -4
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/sdk/configurations/index.cjs +1 -1
- package/dist/sdk/configurations/index.d.cts +11 -11
- package/dist/sdk/configurations/index.d.ts +11 -11
- package/dist/sdk/configurations/index.js +1 -1
- package/dist/sdk/developerPortal/index.cjs +10 -18
- package/dist/sdk/developerPortal/index.cjs.map +1 -1
- package/dist/sdk/developerPortal/index.d.cts +7 -15
- package/dist/sdk/developerPortal/index.d.ts +7 -15
- package/dist/sdk/developerPortal/index.js +7 -15
- package/dist/sdk/developerPortal/index.js.map +1 -1
- package/dist/sdk/kaiMemory/index.cjs +7 -0
- package/dist/sdk/kaiMemory/index.d.cts +41 -0
- package/dist/sdk/kaiMemory/index.d.ts +41 -0
- package/dist/sdk/kaiMemory/index.js +2 -0
- package/dist/sdk/kaiMemory/types.cjs +0 -0
- package/dist/sdk/kaiMemory/types.d.cts +2 -0
- package/dist/sdk/kaiMemory/types.d.ts +2 -0
- package/dist/sdk/kaiMemory/types.js +1 -0
- package/dist/sdk/queryService/index.cjs +2 -2
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/queryService/index.js +2 -2
- package/dist/sdk/semanticLayer/index.cjs +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +16 -40
- package/dist/sdk/semanticLayer/index.d.ts +16 -40
- package/dist/sdk/semanticLayer/index.js +1 -1
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +1 -1
- package/dist/sdk/storage/index.cjs +0 -5
- package/dist/sdk/storage/index.cjs.map +1 -1
- package/dist/sdk/storage/index.d.cts +2 -2
- package/dist/sdk/storage/index.d.ts +2 -2
- package/dist/sdk/storage/index.js +1 -5
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.cjs +1 -1
- package/dist/sdk/tag/index.d.cts +3 -3
- package/dist/sdk/tag/index.d.ts +3 -3
- package/dist/sdk/tag/index.js +1 -1
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.cjs +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/sdk/vault/index.js +1 -1
- package/dist/{semanticLayer-E0Vilu8u.cjs → semanticLayer-CKDVkU56.cjs} +78 -166
- package/dist/semanticLayer-CKDVkU56.cjs.map +1 -0
- package/dist/{semanticLayer-CSqmtHRo.js → semanticLayer-pYy082Ju.js} +78 -166
- package/dist/semanticLayer-pYy082Ju.js.map +1 -0
- package/dist/{serviceIds-DRcoTnSd.d.cts → serviceIds-DC-H6ZD9.d.cts} +2 -1
- package/dist/{serviceIds-DRcoTnSd.d.ts → serviceIds-DC-H6ZD9.d.ts} +2 -1
- package/dist/status/index.cjs +1 -1
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +1 -1
- package/dist/storage/index.cjs +6 -5
- package/dist/storage/index.d.cts +3 -3
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +6 -6
- package/dist/storage/types.d.cts +3 -3
- package/dist/storage/types.d.ts +3 -3
- package/dist/{storage-LYwFQPNO.js → storage-CZQHZcXG.js} +127 -289
- package/dist/storage-CZQHZcXG.js.map +1 -0
- package/dist/{storage-BKm7cztt.cjs → storage-JinL1y1s.cjs} +132 -288
- package/dist/storage-JinL1y1s.cjs.map +1 -0
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.d.cts +2 -2
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/index.js +3 -3
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/syncActions/index.cjs +1 -1
- package/dist/syncActions/index.d.cts +1 -1
- package/dist/syncActions/index.d.ts +1 -1
- package/dist/syncActions/index.js +1 -1
- package/dist/syncActions/types.d.cts +2 -2
- package/dist/syncActions/types.d.ts +2 -2
- package/dist/{syncActions-QeBhIVhG.js → syncActions-BmmoqZO_.js} +130 -111
- package/dist/syncActions-BmmoqZO_.js.map +1 -0
- package/dist/{syncActions-OEZdVffK.cjs → syncActions-CtcLGQiy.cjs} +130 -111
- package/dist/syncActions-CtcLGQiy.cjs.map +1 -0
- package/dist/{tag-CsoOZWB_.cjs → tag-DHS_soa7.cjs} +2 -2
- package/dist/{tag-CsoOZWB_.cjs.map → tag-DHS_soa7.cjs.map} +1 -1
- package/dist/{tag-DCsoewjL.js → tag-hh-1nhNr.js} +2 -2
- package/dist/{tag-DCsoewjL.js.map → tag-hh-1nhNr.js.map} +1 -1
- package/dist/telemetry/index.cjs +7 -11
- package/dist/telemetry/index.cjs.map +1 -1
- package/dist/telemetry/index.d.cts +5 -9
- package/dist/telemetry/index.d.ts +5 -9
- package/dist/telemetry/index.js +7 -11
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{types-DqxIx9Pi.d.cts → types-6kuMW4JW.d.cts} +2 -2
- package/dist/{types-Ct0YPy2w.d.ts → types-B2w2TtSA.d.ts} +3 -3
- package/dist/{types-M46WuBSm.d.cts → types-B61aCifg.d.cts} +2 -2
- package/dist/{types-COL1kVEB.d.cts → types-B8N_k79M.d.cts} +2 -2
- package/dist/{types-Jw10xuOW.d.cts → types-BIECJYun.d.ts} +171 -44
- package/dist/{types-DZk3XHiN.d.cts → types-BLNB882w.d.cts} +3 -3
- package/dist/{types-BEe50G2r.d.cts → types-BPy5Ozee.d.cts} +2 -2
- package/dist/{types-DBOSvWtD.d.ts → types-BS4jwuMi.d.ts} +8 -15
- package/dist/{types-BrYkBQo4.d.ts → types-BTK7Bv3n.d.cts} +171 -44
- package/dist/{types-CW6lCqrC.d.cts → types-BYM9Ptz5.d.ts} +93 -43
- package/dist/{types-D6UmMa6E.d.ts → types-BZDV8DZk.d.ts} +3 -3
- package/dist/{types-Cz83RiVu.d.cts → types-B_iLJlp4.d.ts} +255 -12
- package/dist/{types-DjrRmQUe.d.cts → types-BiMahEK8.d.cts} +92 -238
- package/dist/{types-BH5LLeJy.d.ts → types-Bl03Cg2n.d.cts} +255 -12
- package/dist/{types-bGQb4Jtl.d.cts → types-ByLH46Dt.d.cts} +13 -8
- package/dist/{types-g3vU7hcg.d.cts → types-Bydx6ga_.d.cts} +2 -2
- package/dist/{types-DYzJ6K2e.d.ts → types-CFeZCQ9p.d.cts} +93 -43
- package/dist/{types-DEc55spK.d.ts → types-CKmTZSPG.d.ts} +92 -238
- package/dist/{types-CaYtinmA.d.cts → types-CMzQSHAQ.d.cts} +3 -3
- package/dist/{types-N3EChotg.d.cts → types-CP_LBmw3.d.cts} +2 -2
- package/dist/{types-zZBxJ0P-.d.ts → types-CWyXTMwy.d.ts} +2 -2
- package/dist/{types-CPB-eF82.d.ts → types-CZJlLCbA.d.ts} +2 -2
- package/dist/{types-l9o4gFsI.d.ts → types-CZXPu3gn.d.ts} +2 -2
- package/dist/{types-BztF4HeB.d.ts → types-CaOtNjSZ.d.ts} +6 -13
- package/dist/{types-BTWIPEiU.d.ts → types-CfwqVkEA.d.ts} +2 -2
- package/dist/types-Cg14ncdV.d.ts +63 -0
- package/dist/{types-Bxhh2SJr.d.ts → types-CoJVrRAD.d.ts} +2 -2
- package/dist/{types-CKiW3n6v.d.ts → types-D3wcs4tp.d.ts} +2 -2
- package/dist/{types-DPS8nwkV.d.cts → types-DDOa07rU.d.cts} +8 -15
- package/dist/{types-BW2BXUB4.d.cts → types-DE9hgr7i.d.cts} +2 -2
- package/dist/{types-BOqD3Hqy.d.cts → types-DEzW1CfI.d.cts} +3 -3
- package/dist/{types-OaD-cbbl.d.ts → types-DIiOMV-t.d.ts} +3 -3
- package/dist/{types-BuqxXXYP.d.ts → types-DKc1gmd9.d.ts} +949 -190
- package/dist/{types-BQsOHNI0.d.ts → types-DRCMBt89.d.ts} +3 -3
- package/dist/{types-BQvv4RaI.d.cts → types-DUMal2E-.d.cts} +5 -8
- package/dist/types-DWiLcrxt.d.cts +63 -0
- package/dist/{types-DNxOHnZI.d.cts → types-Dd31Lw4S.d.cts} +2 -2
- package/dist/{types-Dmu-8g4O.d.ts → types-DekYAlA-.d.ts} +3 -3
- package/dist/{types-B2U9cFcx.d.ts → types-DgJeO9Nd.d.ts} +2 -2
- package/dist/{types-nrviNdzZ.d.ts → types-DicSaNwq.d.ts} +2 -2
- package/dist/{types-f8W_j6qD.d.cts → types-DinIJ1D_.d.cts} +688 -201
- package/dist/{types-DhDNS-5B.d.ts → types-DlQw6FCi.d.ts} +13 -8
- package/dist/{types-_RhBCj4_.d.cts → types-DoZtE9tz.d.cts} +3 -3
- package/dist/{types-BsxLGDoC.d.cts → types-DrvKfXXd.d.cts} +2 -2
- package/dist/{types-CzsnuPFh.d.cts → types-Dtuvhm3K.d.cts} +949 -190
- package/dist/{types-CcrvrAJX.d.ts → types-DwVSj-Da.d.ts} +5 -8
- package/dist/{types-C2vefB4D.d.ts → types-FwRmjsNN.d.ts} +10 -34
- package/dist/{types-C0_2KZ-A.d.ts → types-RbrfiY8T.d.ts} +2 -2
- package/dist/{types-DfvdbRPL.d.ts → types-WZBztugL.d.ts} +2 -2
- package/dist/{types-52irAt99.d.cts → types-YHUEArkR.d.cts} +2 -2
- package/dist/{types-fX4gbxfV.d.cts → types-bc-4z_gc.d.cts} +10 -34
- package/dist/{types-3eUgOA7I.d.cts → types-ePSqbXRr.d.cts} +6 -13
- package/dist/{types-BupPADSm.d.ts → types-n4PTnLii.d.ts} +688 -201
- package/dist/{types-DXskkNp8.d.cts → types-pvQzbgNE.d.cts} +3 -3
- package/dist/{types-DajzGOKB.d.ts → types-q-1r_9d1.d.ts} +2 -2
- package/dist/{types-D8Rrz51O.d.cts → types-tKkeLa2B.d.cts} +2 -2
- package/dist/{validateConnectionStatus-olE2sQ3U.js → validateConnectionStatus-BEGu8wXT.js} +7 -10
- package/dist/validateConnectionStatus-BEGu8wXT.js.map +1 -0
- package/dist/{validateConnectionStatus-CsvYmCOI.cjs → validateConnectionStatus-BEYkQpu9.cjs} +7 -10
- package/dist/validateConnectionStatus-BEYkQpu9.cjs.map +1 -0
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +4 -4
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +58 -4
- package/surface/apps.md +3 -3
- package/surface/auth.md +13 -6
- package/surface/businessWorkspaceApi.md +12 -0
- package/surface/chat.md +7 -7
- package/surface/kaiAgent.md +13 -9
- package/surface/management.md +18 -5
- package/surface/metastore.md +2 -2
- package/surface/queue.md +3 -3
- package/surface/sdk.md +13 -3
- package/surface/storage.md +6 -6
- package/surface/syncActions.md +9 -0
- package/dist/ValidationError-BekhphAq.js +0 -48
- package/dist/ValidationError-BekhphAq.js.map +0 -1
- package/dist/ValidationError-CLVJCCwH.cjs.map +0 -1
- package/dist/authClient-D7W9vWPR.js.map +0 -1
- package/dist/authClient-_PpvGgZJ.cjs.map +0 -1
- package/dist/concurrent-CH9fbNr3.js.map +0 -1
- package/dist/concurrent-tbiIa0UL.cjs.map +0 -1
- package/dist/configurations-BVvcimzo.js.map +0 -1
- package/dist/configurations-CyFF9Dtu.cjs.map +0 -1
- package/dist/configurations-VtNE0nrT.js.map +0 -1
- package/dist/configurations-zkNjr73Q.cjs.map +0 -1
- package/dist/constants-C4DlsF_M.cjs.map +0 -1
- package/dist/constants-wfbFsqqN.js.map +0 -1
- package/dist/createFetchClient-DgMiqTJ8.cjs.map +0 -1
- package/dist/createFetchClient-U-ZrwPl2.js.map +0 -1
- package/dist/credential-CihSf_xs.js +0 -36
- package/dist/credential-CihSf_xs.js.map +0 -1
- package/dist/credential-DVWvJFJs.cjs +0 -47
- package/dist/credential-DVWvJFJs.cjs.map +0 -1
- package/dist/dedupe-CiskLkGR.cjs +0 -30
- package/dist/dedupe-CiskLkGR.cjs.map +0 -1
- package/dist/dedupe-DYIHgZoG.js +0 -25
- package/dist/dedupe-DYIHgZoG.js.map +0 -1
- package/dist/isLoginPageRedirect-B0EmRsHr.cjs +0 -25
- package/dist/isLoginPageRedirect-B0EmRsHr.cjs.map +0 -1
- package/dist/isLoginPageRedirect-BTTAedW-.js +0 -20
- package/dist/isLoginPageRedirect-BTTAedW-.js.map +0 -1
- package/dist/jobStatus-0_Y3Sr4i.cjs.map +0 -1
- package/dist/jobStatus-PSZJMTiA.js.map +0 -1
- package/dist/kaiAgent-8LNzGhZc.js.map +0 -1
- package/dist/kaiAgent-B_TaUPRt.cjs.map +0 -1
- package/dist/management-BoxlRNg2.cjs.map +0 -1
- package/dist/management-Bp440RsV.js.map +0 -1
- package/dist/metastore-BYYWTb3m.cjs.map +0 -1
- package/dist/metastore-VCDRVhUT.js.map +0 -1
- package/dist/queue-DyotLFJi.js.map +0 -1
- package/dist/queue-OJJUUqc2.cjs.map +0 -1
- package/dist/semanticLayer-CSqmtHRo.js.map +0 -1
- package/dist/semanticLayer-E0Vilu8u.cjs.map +0 -1
- package/dist/storage-BKm7cztt.cjs.map +0 -1
- package/dist/storage-LYwFQPNO.js.map +0 -1
- package/dist/syncActions-OEZdVffK.cjs.map +0 -1
- package/dist/syncActions-QeBhIVhG.js.map +0 -1
- package/dist/validateConnectionStatus-CsvYmCOI.cjs.map +0 -1
- package/dist/validateConnectionStatus-olE2sQ3U.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedupe-OSnnst2u.cjs","names":[],"sources":["../src/utils/async/dedupe.ts"],"sourcesContent":["import type { TaskFn } from './types';\n\n/**\n * Shares one in-flight run of `task` across concurrent triggers.\n *\n * - Once it settles, the next trigger starts a fresh run (unlike `coalesce`, no trailing run).\n * - The returned promise rejects with whatever `task` throws.\n */\nexport const dedupe = <T>(task: TaskFn<T>): (() => Promise<Awaited<T>>) => {\n let inflight: Promise<Awaited<T>> | null = null;\n\n // async wrapper so a synchronous throw from `task` rejects rather than throws.\n const runTask = async (): Promise<Awaited<T>> => await task();\n\n return () => {\n inflight ??= runTask().finally(() => {\n inflight = null;\n });\n return inflight;\n };\n};\n"],"mappings":";;;;;;;AAQA,MAAa,UAAa,SAAiD;CACzE,IAAI,WAAuC;CAG3C,MAAM,UAAU,YAAiC,MAAM,KAAK;CAE5D,aAAa;EACX,aAAa,QAAQ,CAAC,CAAC,cAAc;GACnC,WAAW;EACb,CAAC;EACD,OAAO;CACT;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_developerPortalClient = require("../developerPortalClient-
|
|
2
|
+
const require_developerPortalClient = require("../developerPortalClient-CLPpBksD.cjs");
|
|
3
3
|
exports.authHeader = require_developerPortalClient.authHeader;
|
|
4
4
|
exports.createDeveloperPortalClient = require_developerPortalClient.createDeveloperPortalClient;
|
|
5
5
|
exports.isMfaChallengeResponse = require_developerPortalClient.isMfaChallengeResponse;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-
|
|
2
|
-
import { a as DeveloperPortalClient, c as createDeveloperPortalClient, i as isMfaChallengeResponse, n as authHeader, o as DeveloperPortalClientInitOptions, r as uploadAppIcon, s as DeveloperPortalFetchClient, t as DeveloperPortalTokens } from "../index-
|
|
1
|
+
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-tKkeLa2B.cjs";
|
|
2
|
+
import { a as DeveloperPortalClient, c as createDeveloperPortalClient, i as isMfaChallengeResponse, n as authHeader, o as DeveloperPortalClientInitOptions, r as uploadAppIcon, s as DeveloperPortalFetchClient, t as DeveloperPortalTokens } from "../index-C4TNAA8-.cjs";
|
|
3
3
|
export { type AdminPaginationQuery, type AdminVendor, type App, type AppChange, type AppRepository, type AppVendor, type ApproveVendorInput, type ConfirmAccountInput, type CreateAppInput, type CreateServiceAccountInput, type CreateVendorAsAdminInput, type CreateVendorInput, type DeprecateAppInput, DeveloperPortalClient, DeveloperPortalClientInitOptions, type DeveloperPortalError, DeveloperPortalFetchClient, type DeveloperPortalTokens, type GetAppsQuery, type GetChangesQuery, type GetVendorUsersQuery, type IconUploadLink, type LoginChallenge, type LoginInput, type LoginResult, type LoginSuccess, type MfaConfirmInput, type MfaSetupInput, type MfaSetupResult, type PaginationQuery, type Profile, type RefreshTokensResult, type RejectAppInput, type ResetPasswordConfirmInput, type ServiceAccount, type ServiceIndex, type SignUpInput, type Stack, type UpdateAppAsAdminInput, type UpdateAppInput, type UpdateVendorAsAdminInput, type UpdateVendorInput, type User, type UserRequest, type Vendor, type VendorListItem, type Version, authHeader, createDeveloperPortalClient, isMfaChallengeResponse, uploadAppIcon };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-
|
|
2
|
-
import { a as DeveloperPortalClient, c as createDeveloperPortalClient, i as isMfaChallengeResponse, n as authHeader, o as DeveloperPortalClientInitOptions, r as uploadAppIcon, s as DeveloperPortalFetchClient, t as DeveloperPortalTokens } from "../index-
|
|
1
|
+
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-q-1r_9d1.js";
|
|
2
|
+
import { a as DeveloperPortalClient, c as createDeveloperPortalClient, i as isMfaChallengeResponse, n as authHeader, o as DeveloperPortalClientInitOptions, r as uploadAppIcon, s as DeveloperPortalFetchClient, t as DeveloperPortalTokens } from "../index-C11JSxBY.js";
|
|
3
3
|
export { type AdminPaginationQuery, type AdminVendor, type App, type AppChange, type AppRepository, type AppVendor, type ApproveVendorInput, type ConfirmAccountInput, type CreateAppInput, type CreateServiceAccountInput, type CreateVendorAsAdminInput, type CreateVendorInput, type DeprecateAppInput, DeveloperPortalClient, DeveloperPortalClientInitOptions, type DeveloperPortalError, DeveloperPortalFetchClient, type DeveloperPortalTokens, type GetAppsQuery, type GetChangesQuery, type GetVendorUsersQuery, type IconUploadLink, type LoginChallenge, type LoginInput, type LoginResult, type LoginSuccess, type MfaConfirmInput, type MfaSetupInput, type MfaSetupResult, type PaginationQuery, type Profile, type RefreshTokensResult, type RejectAppInput, type ResetPasswordConfirmInput, type ServiceAccount, type ServiceIndex, type SignUpInput, type Stack, type UpdateAppAsAdminInput, type UpdateAppInput, type UpdateVendorAsAdminInput, type UpdateVendorInput, type User, type UserRequest, type Vendor, type VendorListItem, type Version, authHeader, createDeveloperPortalClient, isMfaChallengeResponse, uploadAppIcon };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as uploadAppIcon, n as isMfaChallengeResponse, r as authHeader, t as createDeveloperPortalClient } from "../developerPortalClient-
|
|
1
|
+
import { i as uploadAppIcon, n as isMfaChallengeResponse, r as authHeader, t as createDeveloperPortalClient } from "../developerPortalClient-B1QZ1rYi.js";
|
|
2
2
|
export { authHeader, createDeveloperPortalClient, isMfaChallengeResponse, uploadAppIcon };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-
|
|
1
|
+
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-tKkeLa2B.cjs";
|
|
2
2
|
export { AdminPaginationQuery, AdminVendor, App, AppChange, AppRepository, AppVendor, ApproveVendorInput, ConfirmAccountInput, CreateAppInput, CreateServiceAccountInput, CreateVendorAsAdminInput, CreateVendorInput, DeprecateAppInput, DeveloperPortalError, GetAppsQuery, GetChangesQuery, GetVendorUsersQuery, IconUploadLink, LoginChallenge, LoginInput, LoginResult, LoginSuccess, MfaConfirmInput, MfaSetupInput, MfaSetupResult, PaginationQuery, Profile, RefreshTokensResult, RejectAppInput, ResetPasswordConfirmInput, ServiceAccount, ServiceIndex, SignUpInput, Stack, UpdateAppAsAdminInput, UpdateAppInput, UpdateVendorAsAdminInput, UpdateVendorInput, User, UserRequest, Vendor, VendorListItem, Version };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-
|
|
1
|
+
import { A as ResetPasswordConfirmInput, B as UserRequest, C as MfaConfirmInput, D as Profile, E as PaginationQuery, F as UpdateAppAsAdminInput, H as VendorListItem, I as UpdateAppInput, L as UpdateVendorAsAdminInput, M as ServiceIndex, N as SignUpInput, O as RefreshTokensResult, P as Stack, R as UpdateVendorInput, S as LoginSuccess, T as MfaSetupResult, U as Version, V as Vendor, _ as GetVendorUsersQuery, a as AppRepository, b as LoginInput, c as ConfirmAccountInput, d as CreateVendorAsAdminInput, f as CreateVendorInput, g as GetChangesQuery, h as GetAppsQuery, i as AppChange, j as ServiceAccount, k as RejectAppInput, l as CreateAppInput, m as DeveloperPortalError, n as AdminVendor, o as AppVendor, p as DeprecateAppInput, r as App, s as ApproveVendorInput, t as AdminPaginationQuery, u as CreateServiceAccountInput, v as IconUploadLink, w as MfaSetupInput, x as LoginResult, y as LoginChallenge, z as User } from "../types-q-1r_9d1.js";
|
|
2
2
|
export { AdminPaginationQuery, AdminVendor, App, AppChange, AppRepository, AppVendor, ApproveVendorInput, ConfirmAccountInput, CreateAppInput, CreateServiceAccountInput, CreateVendorAsAdminInput, CreateVendorInput, DeprecateAppInput, DeveloperPortalError, GetAppsQuery, GetChangesQuery, GetVendorUsersQuery, IconUploadLink, LoginChallenge, LoginInput, LoginResult, LoginSuccess, MfaConfirmInput, MfaSetupInput, MfaSetupResult, PaginationQuery, Profile, RefreshTokensResult, RejectAppInput, ResetPasswordConfirmInput, ServiceAccount, ServiceIndex, SignUpInput, Stack, UpdateAppAsAdminInput, UpdateAppInput, UpdateVendorAsAdminInput, UpdateVendorInput, User, UserRequest, Vendor, VendorListItem, Version };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { s as HttpHeader } from "./createFetchClient-
|
|
2
|
-
import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-
|
|
1
|
+
import { s as HttpHeader } from "./createFetchClient-DXHQK63w.js";
|
|
2
|
+
import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-DZUOVupy.js";
|
|
3
3
|
//#region src/clients/developerPortal/admin/admin.ts
|
|
4
4
|
/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */
|
|
5
5
|
const createAdmin = (client) => {
|
|
@@ -442,11 +442,10 @@ const createVendors = ({ client, publicClient }) => {
|
|
|
442
442
|
//#endregion
|
|
443
443
|
//#region src/clients/developerPortal/developerPortalClient.ts
|
|
444
444
|
/**
|
|
445
|
-
* The Developer Portal (apps-api) client
|
|
446
|
-
* `https://apps-api.keboola.com/docs/openapi.yaml` — see `redocly.yaml` and `pnpm gen:types`.
|
|
445
|
+
* The Developer Portal (apps-api) client; types generated via `redocly.yaml` / `pnpm gen:types`.
|
|
447
446
|
*
|
|
448
|
-
* Two fetch clients
|
|
449
|
-
*
|
|
447
|
+
* - Two fetch clients: `security: []` operations go out unauthenticated, and four use the access or
|
|
448
|
+
* refresh token instead of the id token.
|
|
450
449
|
*/
|
|
451
450
|
const createDeveloperPortalClient = ({ baseUrl, middlewares = [], authMiddleware }) => {
|
|
452
451
|
const publicClient = createOpenapiFetchClient({
|
|
@@ -457,7 +456,6 @@ const createDeveloperPortalClient = ({ baseUrl, middlewares = [], authMiddleware
|
|
|
457
456
|
baseUrl,
|
|
458
457
|
middlewares: [authMiddleware, ...middlewares]
|
|
459
458
|
}) : publicClient;
|
|
460
|
-
/** `GET /` — the spec's service index. */
|
|
461
459
|
const healthCheck = async (signal) => {
|
|
462
460
|
const { data } = await publicClient.get("/", {}, { signal });
|
|
463
461
|
return data;
|
|
@@ -482,4 +480,4 @@ const createDeveloperPortalClient = ({ baseUrl, middlewares = [], authMiddleware
|
|
|
482
480
|
//#endregion
|
|
483
481
|
export { uploadAppIcon as i, isMfaChallengeResponse as n, authHeader as r, createDeveloperPortalClient as t };
|
|
484
482
|
|
|
485
|
-
//# sourceMappingURL=developerPortalClient-
|
|
483
|
+
//# sourceMappingURL=developerPortalClient-B1QZ1rYi.js.map
|
package/dist/{developerPortalClient-C_48z8BN.js.map → developerPortalClient-B1QZ1rYi.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developerPortalClient-C_48z8BN.js","names":[],"sources":["../src/clients/developerPortal/admin/admin.ts","../src/clients/developerPortal/apps/apps.ts","../src/clients/developerPortal/tokens.ts","../src/clients/developerPortal/auth/auth.ts","../src/clients/developerPortal/vendors/vendors.ts","../src/clients/developerPortal/developerPortalClient.ts"],"sourcesContent":["import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n AdminPaginationQuery,\n ApproveVendorInput,\n CreateVendorAsAdminInput,\n GetChangesQuery,\n PaginationQuery,\n RejectAppInput,\n UpdateAppAsAdminInput,\n UpdateVendorAsAdminInput,\n} from '../types';\n\n/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */\nexport const createAdmin = (client: DeveloperPortalFetchClient) => {\n const getStacks = async (signal?: AbortSignal) => {\n const { data } = await client.get('/admin/stacks', {}, { signal });\n return data;\n };\n\n const getChanges = async (query: GetChangesQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/changes', { query }, { signal });\n return data;\n };\n\n const getApps = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps', { query }, { signal });\n return data;\n };\n\n const getApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps/{id}', { path: { id } }, { signal });\n return data;\n };\n\n const updateApp = async (id: string, body: UpdateAppAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.patch('/admin/apps/{id}', { path: { id }, body }, { signal });\n return data;\n };\n\n const publishApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/apps/{id}/publish', { path: { id } }, { signal });\n return data;\n };\n\n const rejectApp = async (id: string, body: RejectAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/admin/apps/{id}/reject',\n { path: { id }, body },\n { signal },\n );\n return data;\n };\n\n const getUsers = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/users', { query }, { signal });\n return data;\n };\n\n const deleteUser = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}', { path: { username } }, { signal });\n };\n\n /** Clears the user's MFA enrolment so they can re-enrol — the account-recovery path. */\n const resetUserMfa = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/mfa', { path: { username } }, { signal });\n };\n\n const addUserToVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.post(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const removeUserFromVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.delete(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const grantUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.post('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const revokeUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const getVendors = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/vendors', { query }, { signal });\n return data;\n };\n\n const createVendor = async (body: CreateVendorAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (\n vendor: string,\n body: UpdateVendorAsAdminInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/admin/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const deleteVendor = async (vendor: string, signal?: AbortSignal) => {\n await client.delete('/admin/vendors/{vendor}', { path: { vendor } }, { signal });\n };\n\n /** Swaps a pending `_v`-prefixed id for the permanent one carried in the body. */\n const approveVendor = async (vendor: string, body: ApproveVendorInput, signal?: AbortSignal) => {\n await client.post('/admin/vendors/{vendor}/approve', { path: { vendor }, body }, { signal });\n };\n\n return {\n getStacks,\n getChanges,\n getApps,\n getApp,\n updateApp,\n publishApp,\n rejectApp,\n getUsers,\n deleteUser,\n resetUserMfa,\n addUserToVendor,\n removeUserFromVendor,\n grantUserAdmin,\n revokeUserAdmin,\n getVendors,\n createVendor,\n updateVendor,\n deleteVendor,\n approveVendor,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateAppInput,\n DeprecateAppInput,\n GetAppsQuery,\n PaginationQuery,\n UpdateAppInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /apps` and `GET /apps/{app}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createApps = ({ client, publicClient }: Deps) => {\n /** The public catalog: scoped server-side to published components. */\n const getPublishedApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps', { query }, { signal });\n return data;\n };\n\n const getPublishedApp = async (app: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps/{app}', { path: { app } }, { signal });\n return data;\n };\n\n const getApps = async (vendor: string, query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const getApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const createApp = async (vendor: string, body: CreateAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const updateApp = async (\n vendor: string,\n app: string,\n body: UpdateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const deleteApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n await client.delete('/vendors/{vendor}/apps/{app}', { path: { vendor, app } }, { signal });\n };\n\n const requestAppPublishing = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/publish',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const deprecateApp = async (\n vendor: string,\n app: string,\n body: DeprecateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/deprecate',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const getAppVersions = async (\n vendor: string,\n app: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions',\n { path: { vendor, app }, query },\n { signal },\n );\n return data;\n };\n\n const getAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions/{version}',\n { path: { vendor, app, version } },\n { signal },\n );\n return data;\n };\n\n const rollbackAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n await client.post(\n '/vendors/{vendor}/apps/{app}/versions/{version}/rollback',\n { path: { vendor, app, version } },\n { signal },\n );\n };\n\n const getAppRepository = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/repository',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n /** Requests a presigned S3 upload link; the upload itself is {@link uploadAppIcon}. */\n const createAppIconUploadLink = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/icon',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n return {\n getPublishedApps,\n getPublishedApp,\n getApps,\n getApp,\n createApp,\n updateApp,\n deleteApp,\n requestAppPublishing,\n deprecateApp,\n getAppVersions,\n getAppVersion,\n rollbackAppVersion,\n getAppRepository,\n createAppIconUploadLink,\n };\n};\n\n/**\n * Uploads the icon to the presigned URL from `createAppIconUploadLink`. Deliberately a bare `fetch`:\n * the URL carries its own signature in the query string, and sending our `Authorization` header to\n * S3 makes it reject the request.\n */\nexport const uploadAppIcon = async (\n uploadUrl: string,\n png: Blob,\n signal?: AbortSignal,\n): Promise<void> => {\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: png,\n headers: { 'Content-Type': 'image/png' },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Icon upload failed: ${response.status} ${response.statusText}`);\n }\n};\n","import { HttpHeader } from '../../fetchClient';\n\n/**\n * The Cognito token trio apps-api issues. `token` is the id token: stamped on almost every call, and\n * the header on both MFA calls. `refreshToken` authenticates `GET /auth/token`. `accessToken`\n * authenticates `POST /auth/logout` as a header, and both `POST /auth/mfa` and `/auth/mfa/confirm`\n * in the **body** — which is why those two stay off the refresh-and-replay path.\n */\nexport type DeveloperPortalTokens = {\n token: string;\n accessToken: string;\n refreshToken: string;\n};\n\n/** Raw token, no `Bearer` prefix — see the spec's `bearerAuth` scheme (`type: apiKey`). */\nexport const authHeader = (token: string): Record<string, string> => ({\n [HttpHeader.AUTHORIZATION]: token,\n});\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport { authHeader } from '../tokens';\nimport type {\n ConfirmAccountInput,\n LoginChallenge,\n LoginInput,\n LoginResult,\n ResetPasswordConfirmInput,\n SignUpInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** The spec's `security: []` operations, plus the four that bring their own token. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const isMfaChallengeResponse = (result: LoginResult): result is LoginChallenge =>\n !('token' in result);\n\nexport const createAuth = ({ client, publicClient }: Deps) => {\n const login = async (body: LoginInput, signal?: AbortSignal) => {\n const { data } = await publicClient.post('/auth/login', { body }, { signal });\n return data;\n };\n\n const signUp = async (body: SignUpInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/signup', { body }, { signal });\n };\n\n const confirmAccount = async (body: ConfirmAccountInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm', { body }, { signal });\n };\n\n /** Confirms via the emailed link's path segments, for a consumer echoing that link. */\n const confirmAccountByCode = async (email: string, code: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm/{email}/{code}', { path: { email, code } }, { signal });\n };\n\n /**\n * Rotates the trio, authenticated with the **refresh** token, on the auth-free client so a\n * rotation triggered by the auth middleware cannot recurse into it. The response carries no new\n * refresh token, so the caller carries the one it has forward.\n */\n const refreshTokens = async (refreshToken: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get(\n '/auth/token',\n {},\n { headers: authHeader(refreshToken), signal },\n );\n return data;\n };\n\n /** Authenticated with the **access** token. Clear local state regardless of the outcome. */\n const logout = async (accessToken: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/logout', {}, { headers: authHeader(accessToken), signal });\n };\n\n const getProfile = async (signal?: AbortSignal) => {\n const { data } = await client.get('/auth/profile', {}, { signal });\n return data;\n };\n\n const requestPasswordReset = async (email: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/forgot/{email}', { path: { email } }, { signal });\n };\n\n const confirmPasswordReset = async (\n email: string,\n body: ResetPasswordConfirmInput,\n signal?: AbortSignal,\n ) => {\n await publicClient.post('/auth/forgot/{email}/confirm', { path: { email }, body }, { signal });\n };\n\n // `setupMfa` and `confirmMfa` each take two of the three tokens: the auth token in the header, the\n // access token in the body. Both sit on the auth-free client, which keeps them out of the\n // middleware's refresh-and-replay: restamping a header cannot fix a stale token in a body.\n const setupMfa = async (\n { idToken, accessToken }: { idToken: string; accessToken: string },\n signal?: AbortSignal,\n ) => {\n const { data } = await publicClient.post(\n '/auth/mfa',\n { body: { accessToken } },\n { headers: authHeader(idToken), signal },\n );\n return data;\n };\n\n const confirmMfa = async (\n { idToken, accessToken, code }: { idToken: string; accessToken: string; code: string },\n signal?: AbortSignal,\n ) => {\n await publicClient.post(\n '/auth/mfa/confirm',\n { body: { accessToken, code } },\n { headers: authHeader(idToken), signal },\n );\n };\n\n return {\n login,\n signUp,\n confirmAccount,\n confirmAccountByCode,\n refreshTokens,\n logout,\n getProfile,\n requestPasswordReset,\n confirmPasswordReset,\n setupMfa,\n confirmMfa,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateServiceAccountInput,\n CreateVendorInput,\n GetVendorUsersQuery,\n PaginationQuery,\n UpdateVendorInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /vendors` and `GET /vendors/{vendor}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createVendors = ({ client, publicClient }: Deps) => {\n const getVendors = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors', { query }, { signal });\n return data;\n };\n\n const getVendor = async (vendor: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors/{vendor}', { path: { vendor } }, { signal });\n return data;\n };\n\n /** Self-service registration. The vendor is pending, under a temporary `_v`-prefixed id. */\n const createVendor = async (body: CreateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.post('/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (vendor: string, body: UpdateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.patch(\n '/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const getVendorUsers = async (\n vendor: string,\n query: GetVendorUsersQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n /** Requests membership of a vendor for the signed-in user. */\n const requestVendorMembership = async (vendor: string, signal?: AbortSignal) => {\n await client.post('/vendors/{vendor}/users', { path: { vendor } }, { signal });\n };\n\n const approveVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const removeVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.delete(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const getVendorUserRequests = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/user-requests',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const sendVendorInvitation = async (vendor: string, email: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/invitations/{email}',\n { path: { vendor, email } },\n { signal },\n );\n };\n\n /** `security: []` — the invitee follows the emailed link before they have a session. */\n const acceptVendorInvitation = async (\n vendor: string,\n email: string,\n code: string,\n signal?: AbortSignal,\n ) => {\n await publicClient.get(\n '/vendors/{vendor}/invitations/{email}/{code}',\n { path: { vendor, email, code } },\n { signal },\n );\n };\n\n /** `service=1` filters the member list; there is no distinct endpoint. */\n const getServiceAccounts = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query: { ...query, service: 1 } },\n { signal },\n );\n return data;\n };\n\n /** The returned `password` is shown once and is not retrievable afterwards. */\n const createServiceAccount = async (\n vendor: string,\n body: CreateServiceAccountInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/credentials',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n return {\n getVendors,\n getVendor,\n createVendor,\n updateVendor,\n getVendorUsers,\n requestVendorMembership,\n approveVendorUser,\n removeVendorUser,\n getVendorUserRequests,\n sendVendorInvitation,\n acceptVendorInvitation,\n getServiceAccounts,\n createServiceAccount,\n };\n};\n","import { createOpenapiFetchClient, type MiddlewareFn } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createAdmin } from './admin/admin';\nimport { createApps } from './apps/apps';\nimport { createAuth } from './auth/auth';\nimport { createVendors } from './vendors/vendors';\n\nexport type DeveloperPortalFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport type DeveloperPortalClientInitOptions = Omit<ClientInitOptions, 'auth' | 'middlewares'> & {\n middlewares?: MiddlewareFn[];\n /**\n * Stamps the id token. A middleware rather than the `auth: AuthStrategy` other clients take, because\n * apps-api's token rotates and a header baked in at construction would go stale. Supplied by\n * `createDeveloperPortalSdk`; omit it for the spec's `security: []` operations.\n */\n authMiddleware?: MiddlewareFn;\n};\n\n/**\n * The Developer Portal (apps-api) client. Paths and types are generated from\n * `https://apps-api.keboola.com/docs/openapi.yaml` — see `redocly.yaml` and `pnpm gen:types`.\n *\n * Two fetch clients because the spec splits its operations: `security: []` ones must go out\n * unauthenticated, and four authenticate with the access or refresh token instead of the id token.\n */\nexport const createDeveloperPortalClient = ({\n baseUrl,\n middlewares = [],\n authMiddleware,\n}: DeveloperPortalClientInitOptions) => {\n const publicClient = createOpenapiFetchClient<paths>({ baseUrl, middlewares });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({ baseUrl, middlewares: [authMiddleware, ...middlewares] })\n : publicClient;\n\n /** `GET /` — the spec's service index. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await publicClient.get('/', {}, { signal });\n return data;\n };\n\n return {\n healthCheck,\n auth: createAuth({ client, publicClient }),\n vendors: createVendors({ client, publicClient }),\n apps: createApps({ client, publicClient }),\n admin: createAdmin(client),\n };\n};\n\nexport type DeveloperPortalClient = ReturnType<typeof createDeveloperPortalClient>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"developerPortalClient-B1QZ1rYi.js","names":[],"sources":["../src/clients/developerPortal/admin/admin.ts","../src/clients/developerPortal/apps/apps.ts","../src/clients/developerPortal/tokens.ts","../src/clients/developerPortal/auth/auth.ts","../src/clients/developerPortal/vendors/vendors.ts","../src/clients/developerPortal/developerPortalClient.ts"],"sourcesContent":["import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n AdminPaginationQuery,\n ApproveVendorInput,\n CreateVendorAsAdminInput,\n GetChangesQuery,\n PaginationQuery,\n RejectAppInput,\n UpdateAppAsAdminInput,\n UpdateVendorAsAdminInput,\n} from '../types';\n\n/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */\nexport const createAdmin = (client: DeveloperPortalFetchClient) => {\n const getStacks = async (signal?: AbortSignal) => {\n const { data } = await client.get('/admin/stacks', {}, { signal });\n return data;\n };\n\n const getChanges = async (query: GetChangesQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/changes', { query }, { signal });\n return data;\n };\n\n const getApps = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps', { query }, { signal });\n return data;\n };\n\n const getApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps/{id}', { path: { id } }, { signal });\n return data;\n };\n\n const updateApp = async (id: string, body: UpdateAppAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.patch('/admin/apps/{id}', { path: { id }, body }, { signal });\n return data;\n };\n\n const publishApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/apps/{id}/publish', { path: { id } }, { signal });\n return data;\n };\n\n const rejectApp = async (id: string, body: RejectAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/admin/apps/{id}/reject',\n { path: { id }, body },\n { signal },\n );\n return data;\n };\n\n const getUsers = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/users', { query }, { signal });\n return data;\n };\n\n const deleteUser = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}', { path: { username } }, { signal });\n };\n\n /** Clears the user's MFA enrolment so they can re-enrol — the account-recovery path. */\n const resetUserMfa = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/mfa', { path: { username } }, { signal });\n };\n\n const addUserToVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.post(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const removeUserFromVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.delete(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const grantUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.post('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const revokeUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const getVendors = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/vendors', { query }, { signal });\n return data;\n };\n\n const createVendor = async (body: CreateVendorAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (\n vendor: string,\n body: UpdateVendorAsAdminInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/admin/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const deleteVendor = async (vendor: string, signal?: AbortSignal) => {\n await client.delete('/admin/vendors/{vendor}', { path: { vendor } }, { signal });\n };\n\n /** Swaps a pending `_v`-prefixed id for the permanent one carried in the body. */\n const approveVendor = async (vendor: string, body: ApproveVendorInput, signal?: AbortSignal) => {\n await client.post('/admin/vendors/{vendor}/approve', { path: { vendor }, body }, { signal });\n };\n\n return {\n getStacks,\n getChanges,\n getApps,\n getApp,\n updateApp,\n publishApp,\n rejectApp,\n getUsers,\n deleteUser,\n resetUserMfa,\n addUserToVendor,\n removeUserFromVendor,\n grantUserAdmin,\n revokeUserAdmin,\n getVendors,\n createVendor,\n updateVendor,\n deleteVendor,\n approveVendor,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateAppInput,\n DeprecateAppInput,\n GetAppsQuery,\n PaginationQuery,\n UpdateAppInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /apps` and `GET /apps/{app}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createApps = ({ client, publicClient }: Deps) => {\n /** The public catalog: scoped server-side to published components. */\n const getPublishedApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps', { query }, { signal });\n return data;\n };\n\n const getPublishedApp = async (app: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps/{app}', { path: { app } }, { signal });\n return data;\n };\n\n const getApps = async (vendor: string, query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const getApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const createApp = async (vendor: string, body: CreateAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const updateApp = async (\n vendor: string,\n app: string,\n body: UpdateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const deleteApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n await client.delete('/vendors/{vendor}/apps/{app}', { path: { vendor, app } }, { signal });\n };\n\n const requestAppPublishing = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/publish',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const deprecateApp = async (\n vendor: string,\n app: string,\n body: DeprecateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/deprecate',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const getAppVersions = async (\n vendor: string,\n app: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions',\n { path: { vendor, app }, query },\n { signal },\n );\n return data;\n };\n\n const getAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions/{version}',\n { path: { vendor, app, version } },\n { signal },\n );\n return data;\n };\n\n const rollbackAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n await client.post(\n '/vendors/{vendor}/apps/{app}/versions/{version}/rollback',\n { path: { vendor, app, version } },\n { signal },\n );\n };\n\n const getAppRepository = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/repository',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n /** Requests a presigned S3 upload link; the upload itself is {@link uploadAppIcon}. */\n const createAppIconUploadLink = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/icon',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n return {\n getPublishedApps,\n getPublishedApp,\n getApps,\n getApp,\n createApp,\n updateApp,\n deleteApp,\n requestAppPublishing,\n deprecateApp,\n getAppVersions,\n getAppVersion,\n rollbackAppVersion,\n getAppRepository,\n createAppIconUploadLink,\n };\n};\n\n/**\n * Uploads the icon to the presigned URL from `createAppIconUploadLink`. Deliberately a bare `fetch`:\n * the URL carries its own signature in the query string, and sending our `Authorization` header to\n * S3 makes it reject the request.\n */\nexport const uploadAppIcon = async (\n uploadUrl: string,\n png: Blob,\n signal?: AbortSignal,\n): Promise<void> => {\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: png,\n headers: { 'Content-Type': 'image/png' },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Icon upload failed: ${response.status} ${response.statusText}`);\n }\n};\n","import { HttpHeader } from '../../fetchClient';\n\n/**\n * The Cognito token trio apps-api issues. `token` is the id token: stamped on almost every call, and\n * the header on both MFA calls. `refreshToken` authenticates `GET /auth/token`. `accessToken`\n * authenticates `POST /auth/logout` as a header, and both `POST /auth/mfa` and `/auth/mfa/confirm`\n * in the **body** — which is why those two stay off the refresh-and-replay path.\n */\nexport type DeveloperPortalTokens = {\n token: string;\n accessToken: string;\n refreshToken: string;\n};\n\n/** Raw token, no `Bearer` prefix — see the spec's `bearerAuth` scheme (`type: apiKey`). */\nexport const authHeader = (token: string): Record<string, string> => ({\n [HttpHeader.AUTHORIZATION]: token,\n});\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport { authHeader } from '../tokens';\nimport type {\n ConfirmAccountInput,\n LoginChallenge,\n LoginInput,\n LoginResult,\n ResetPasswordConfirmInput,\n SignUpInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** The spec's `security: []` operations, plus the four that bring their own token. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const isMfaChallengeResponse = (result: LoginResult): result is LoginChallenge =>\n !('token' in result);\n\nexport const createAuth = ({ client, publicClient }: Deps) => {\n const login = async (body: LoginInput, signal?: AbortSignal) => {\n const { data } = await publicClient.post('/auth/login', { body }, { signal });\n return data;\n };\n\n const signUp = async (body: SignUpInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/signup', { body }, { signal });\n };\n\n const confirmAccount = async (body: ConfirmAccountInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm', { body }, { signal });\n };\n\n /** Confirms via the emailed link's path segments, for a consumer echoing that link. */\n const confirmAccountByCode = async (email: string, code: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm/{email}/{code}', { path: { email, code } }, { signal });\n };\n\n /**\n * Rotates the trio, authenticated with the **refresh** token, on the auth-free client so a\n * rotation triggered by the auth middleware cannot recurse into it. The response carries no new\n * refresh token, so the caller carries the one it has forward.\n */\n const refreshTokens = async (refreshToken: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get(\n '/auth/token',\n {},\n { headers: authHeader(refreshToken), signal },\n );\n return data;\n };\n\n /** Authenticated with the **access** token. Clear local state regardless of the outcome. */\n const logout = async (accessToken: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/logout', {}, { headers: authHeader(accessToken), signal });\n };\n\n const getProfile = async (signal?: AbortSignal) => {\n const { data } = await client.get('/auth/profile', {}, { signal });\n return data;\n };\n\n const requestPasswordReset = async (email: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/forgot/{email}', { path: { email } }, { signal });\n };\n\n const confirmPasswordReset = async (\n email: string,\n body: ResetPasswordConfirmInput,\n signal?: AbortSignal,\n ) => {\n await publicClient.post('/auth/forgot/{email}/confirm', { path: { email }, body }, { signal });\n };\n\n // `setupMfa` and `confirmMfa` each take two of the three tokens: the auth token in the header, the\n // access token in the body. Both sit on the auth-free client, which keeps them out of the\n // middleware's refresh-and-replay: restamping a header cannot fix a stale token in a body.\n const setupMfa = async (\n { idToken, accessToken }: { idToken: string; accessToken: string },\n signal?: AbortSignal,\n ) => {\n const { data } = await publicClient.post(\n '/auth/mfa',\n { body: { accessToken } },\n { headers: authHeader(idToken), signal },\n );\n return data;\n };\n\n const confirmMfa = async (\n { idToken, accessToken, code }: { idToken: string; accessToken: string; code: string },\n signal?: AbortSignal,\n ) => {\n await publicClient.post(\n '/auth/mfa/confirm',\n { body: { accessToken, code } },\n { headers: authHeader(idToken), signal },\n );\n };\n\n return {\n login,\n signUp,\n confirmAccount,\n confirmAccountByCode,\n refreshTokens,\n logout,\n getProfile,\n requestPasswordReset,\n confirmPasswordReset,\n setupMfa,\n confirmMfa,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateServiceAccountInput,\n CreateVendorInput,\n GetVendorUsersQuery,\n PaginationQuery,\n UpdateVendorInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /vendors` and `GET /vendors/{vendor}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createVendors = ({ client, publicClient }: Deps) => {\n const getVendors = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors', { query }, { signal });\n return data;\n };\n\n const getVendor = async (vendor: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors/{vendor}', { path: { vendor } }, { signal });\n return data;\n };\n\n /** Self-service registration. The vendor is pending, under a temporary `_v`-prefixed id. */\n const createVendor = async (body: CreateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.post('/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (vendor: string, body: UpdateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.patch(\n '/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const getVendorUsers = async (\n vendor: string,\n query: GetVendorUsersQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n /** Requests membership of a vendor for the signed-in user. */\n const requestVendorMembership = async (vendor: string, signal?: AbortSignal) => {\n await client.post('/vendors/{vendor}/users', { path: { vendor } }, { signal });\n };\n\n const approveVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const removeVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.delete(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const getVendorUserRequests = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/user-requests',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const sendVendorInvitation = async (vendor: string, email: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/invitations/{email}',\n { path: { vendor, email } },\n { signal },\n );\n };\n\n /** `security: []` — the invitee follows the emailed link before they have a session. */\n const acceptVendorInvitation = async (\n vendor: string,\n email: string,\n code: string,\n signal?: AbortSignal,\n ) => {\n await publicClient.get(\n '/vendors/{vendor}/invitations/{email}/{code}',\n { path: { vendor, email, code } },\n { signal },\n );\n };\n\n /** `service=1` filters the member list; there is no distinct endpoint. */\n const getServiceAccounts = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query: { ...query, service: 1 } },\n { signal },\n );\n return data;\n };\n\n /** The returned `password` is shown once and is not retrievable afterwards. */\n const createServiceAccount = async (\n vendor: string,\n body: CreateServiceAccountInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/credentials',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n return {\n getVendors,\n getVendor,\n createVendor,\n updateVendor,\n getVendorUsers,\n requestVendorMembership,\n approveVendorUser,\n removeVendorUser,\n getVendorUserRequests,\n sendVendorInvitation,\n acceptVendorInvitation,\n getServiceAccounts,\n createServiceAccount,\n };\n};\n","import { createOpenapiFetchClient, type MiddlewareFn } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createAdmin } from './admin/admin';\nimport { createApps } from './apps/apps';\nimport { createAuth } from './auth/auth';\nimport { createVendors } from './vendors/vendors';\n\nexport type DeveloperPortalFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport type DeveloperPortalClientInitOptions = Omit<ClientInitOptions, 'auth' | 'middlewares'> & {\n middlewares?: MiddlewareFn[];\n /**\n * Stamps the id token per request (it rotates). Omit for the spec's `security: []` operations.\n */\n authMiddleware?: MiddlewareFn;\n};\n\n/**\n * The Developer Portal (apps-api) client; types generated via `redocly.yaml` / `pnpm gen:types`.\n *\n * - Two fetch clients: `security: []` operations go out unauthenticated, and four use the access or\n * refresh token instead of the id token.\n */\nexport const createDeveloperPortalClient = ({\n baseUrl,\n middlewares = [],\n authMiddleware,\n}: DeveloperPortalClientInitOptions) => {\n const publicClient = createOpenapiFetchClient<paths>({ baseUrl, middlewares });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({ baseUrl, middlewares: [authMiddleware, ...middlewares] })\n : publicClient;\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await publicClient.get('/', {}, { signal });\n return data;\n };\n\n return {\n healthCheck,\n auth: createAuth({ client, publicClient }),\n vendors: createVendors({ client, publicClient }),\n apps: createApps({ client, publicClient }),\n admin: createAdmin(client),\n };\n};\n\nexport type DeveloperPortalClient = ReturnType<typeof createDeveloperPortalClient>;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_createFetchClient = require("./createFetchClient-
|
|
2
|
-
const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-
|
|
1
|
+
const require_createFetchClient = require("./createFetchClient-Cwp8max9.cjs");
|
|
2
|
+
const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-BYqW-9tm.cjs");
|
|
3
3
|
//#region src/clients/developerPortal/admin/admin.ts
|
|
4
4
|
/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */
|
|
5
5
|
const createAdmin = (client) => {
|
|
@@ -442,11 +442,10 @@ const createVendors = ({ client, publicClient }) => {
|
|
|
442
442
|
//#endregion
|
|
443
443
|
//#region src/clients/developerPortal/developerPortalClient.ts
|
|
444
444
|
/**
|
|
445
|
-
* The Developer Portal (apps-api) client
|
|
446
|
-
* `https://apps-api.keboola.com/docs/openapi.yaml` — see `redocly.yaml` and `pnpm gen:types`.
|
|
445
|
+
* The Developer Portal (apps-api) client; types generated via `redocly.yaml` / `pnpm gen:types`.
|
|
447
446
|
*
|
|
448
|
-
* Two fetch clients
|
|
449
|
-
*
|
|
447
|
+
* - Two fetch clients: `security: []` operations go out unauthenticated, and four use the access or
|
|
448
|
+
* refresh token instead of the id token.
|
|
450
449
|
*/
|
|
451
450
|
const createDeveloperPortalClient = ({ baseUrl, middlewares = [], authMiddleware }) => {
|
|
452
451
|
const publicClient = require_createOpenapiFetchClient.createOpenapiFetchClient({
|
|
@@ -457,7 +456,6 @@ const createDeveloperPortalClient = ({ baseUrl, middlewares = [], authMiddleware
|
|
|
457
456
|
baseUrl,
|
|
458
457
|
middlewares: [authMiddleware, ...middlewares]
|
|
459
458
|
}) : publicClient;
|
|
460
|
-
/** `GET /` — the spec's service index. */
|
|
461
459
|
const healthCheck = async (signal) => {
|
|
462
460
|
const { data } = await publicClient.get("/", {}, { signal });
|
|
463
461
|
return data;
|
|
@@ -505,4 +503,4 @@ Object.defineProperty(exports, "uploadAppIcon", {
|
|
|
505
503
|
}
|
|
506
504
|
});
|
|
507
505
|
|
|
508
|
-
//# sourceMappingURL=developerPortalClient-
|
|
506
|
+
//# sourceMappingURL=developerPortalClient-CLPpBksD.cjs.map
|
package/dist/{developerPortalClient-ki0XS_OD.cjs.map → developerPortalClient-CLPpBksD.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developerPortalClient-ki0XS_OD.cjs","names":["HttpHeader","createOpenapiFetchClient"],"sources":["../src/clients/developerPortal/admin/admin.ts","../src/clients/developerPortal/apps/apps.ts","../src/clients/developerPortal/tokens.ts","../src/clients/developerPortal/auth/auth.ts","../src/clients/developerPortal/vendors/vendors.ts","../src/clients/developerPortal/developerPortalClient.ts"],"sourcesContent":["import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n AdminPaginationQuery,\n ApproveVendorInput,\n CreateVendorAsAdminInput,\n GetChangesQuery,\n PaginationQuery,\n RejectAppInput,\n UpdateAppAsAdminInput,\n UpdateVendorAsAdminInput,\n} from '../types';\n\n/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */\nexport const createAdmin = (client: DeveloperPortalFetchClient) => {\n const getStacks = async (signal?: AbortSignal) => {\n const { data } = await client.get('/admin/stacks', {}, { signal });\n return data;\n };\n\n const getChanges = async (query: GetChangesQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/changes', { query }, { signal });\n return data;\n };\n\n const getApps = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps', { query }, { signal });\n return data;\n };\n\n const getApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps/{id}', { path: { id } }, { signal });\n return data;\n };\n\n const updateApp = async (id: string, body: UpdateAppAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.patch('/admin/apps/{id}', { path: { id }, body }, { signal });\n return data;\n };\n\n const publishApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/apps/{id}/publish', { path: { id } }, { signal });\n return data;\n };\n\n const rejectApp = async (id: string, body: RejectAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/admin/apps/{id}/reject',\n { path: { id }, body },\n { signal },\n );\n return data;\n };\n\n const getUsers = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/users', { query }, { signal });\n return data;\n };\n\n const deleteUser = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}', { path: { username } }, { signal });\n };\n\n /** Clears the user's MFA enrolment so they can re-enrol — the account-recovery path. */\n const resetUserMfa = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/mfa', { path: { username } }, { signal });\n };\n\n const addUserToVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.post(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const removeUserFromVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.delete(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const grantUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.post('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const revokeUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const getVendors = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/vendors', { query }, { signal });\n return data;\n };\n\n const createVendor = async (body: CreateVendorAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (\n vendor: string,\n body: UpdateVendorAsAdminInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/admin/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const deleteVendor = async (vendor: string, signal?: AbortSignal) => {\n await client.delete('/admin/vendors/{vendor}', { path: { vendor } }, { signal });\n };\n\n /** Swaps a pending `_v`-prefixed id for the permanent one carried in the body. */\n const approveVendor = async (vendor: string, body: ApproveVendorInput, signal?: AbortSignal) => {\n await client.post('/admin/vendors/{vendor}/approve', { path: { vendor }, body }, { signal });\n };\n\n return {\n getStacks,\n getChanges,\n getApps,\n getApp,\n updateApp,\n publishApp,\n rejectApp,\n getUsers,\n deleteUser,\n resetUserMfa,\n addUserToVendor,\n removeUserFromVendor,\n grantUserAdmin,\n revokeUserAdmin,\n getVendors,\n createVendor,\n updateVendor,\n deleteVendor,\n approveVendor,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateAppInput,\n DeprecateAppInput,\n GetAppsQuery,\n PaginationQuery,\n UpdateAppInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /apps` and `GET /apps/{app}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createApps = ({ client, publicClient }: Deps) => {\n /** The public catalog: scoped server-side to published components. */\n const getPublishedApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps', { query }, { signal });\n return data;\n };\n\n const getPublishedApp = async (app: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps/{app}', { path: { app } }, { signal });\n return data;\n };\n\n const getApps = async (vendor: string, query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const getApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const createApp = async (vendor: string, body: CreateAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const updateApp = async (\n vendor: string,\n app: string,\n body: UpdateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const deleteApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n await client.delete('/vendors/{vendor}/apps/{app}', { path: { vendor, app } }, { signal });\n };\n\n const requestAppPublishing = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/publish',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const deprecateApp = async (\n vendor: string,\n app: string,\n body: DeprecateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/deprecate',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const getAppVersions = async (\n vendor: string,\n app: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions',\n { path: { vendor, app }, query },\n { signal },\n );\n return data;\n };\n\n const getAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions/{version}',\n { path: { vendor, app, version } },\n { signal },\n );\n return data;\n };\n\n const rollbackAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n await client.post(\n '/vendors/{vendor}/apps/{app}/versions/{version}/rollback',\n { path: { vendor, app, version } },\n { signal },\n );\n };\n\n const getAppRepository = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/repository',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n /** Requests a presigned S3 upload link; the upload itself is {@link uploadAppIcon}. */\n const createAppIconUploadLink = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/icon',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n return {\n getPublishedApps,\n getPublishedApp,\n getApps,\n getApp,\n createApp,\n updateApp,\n deleteApp,\n requestAppPublishing,\n deprecateApp,\n getAppVersions,\n getAppVersion,\n rollbackAppVersion,\n getAppRepository,\n createAppIconUploadLink,\n };\n};\n\n/**\n * Uploads the icon to the presigned URL from `createAppIconUploadLink`. Deliberately a bare `fetch`:\n * the URL carries its own signature in the query string, and sending our `Authorization` header to\n * S3 makes it reject the request.\n */\nexport const uploadAppIcon = async (\n uploadUrl: string,\n png: Blob,\n signal?: AbortSignal,\n): Promise<void> => {\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: png,\n headers: { 'Content-Type': 'image/png' },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Icon upload failed: ${response.status} ${response.statusText}`);\n }\n};\n","import { HttpHeader } from '../../fetchClient';\n\n/**\n * The Cognito token trio apps-api issues. `token` is the id token: stamped on almost every call, and\n * the header on both MFA calls. `refreshToken` authenticates `GET /auth/token`. `accessToken`\n * authenticates `POST /auth/logout` as a header, and both `POST /auth/mfa` and `/auth/mfa/confirm`\n * in the **body** — which is why those two stay off the refresh-and-replay path.\n */\nexport type DeveloperPortalTokens = {\n token: string;\n accessToken: string;\n refreshToken: string;\n};\n\n/** Raw token, no `Bearer` prefix — see the spec's `bearerAuth` scheme (`type: apiKey`). */\nexport const authHeader = (token: string): Record<string, string> => ({\n [HttpHeader.AUTHORIZATION]: token,\n});\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport { authHeader } from '../tokens';\nimport type {\n ConfirmAccountInput,\n LoginChallenge,\n LoginInput,\n LoginResult,\n ResetPasswordConfirmInput,\n SignUpInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** The spec's `security: []` operations, plus the four that bring their own token. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const isMfaChallengeResponse = (result: LoginResult): result is LoginChallenge =>\n !('token' in result);\n\nexport const createAuth = ({ client, publicClient }: Deps) => {\n const login = async (body: LoginInput, signal?: AbortSignal) => {\n const { data } = await publicClient.post('/auth/login', { body }, { signal });\n return data;\n };\n\n const signUp = async (body: SignUpInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/signup', { body }, { signal });\n };\n\n const confirmAccount = async (body: ConfirmAccountInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm', { body }, { signal });\n };\n\n /** Confirms via the emailed link's path segments, for a consumer echoing that link. */\n const confirmAccountByCode = async (email: string, code: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm/{email}/{code}', { path: { email, code } }, { signal });\n };\n\n /**\n * Rotates the trio, authenticated with the **refresh** token, on the auth-free client so a\n * rotation triggered by the auth middleware cannot recurse into it. The response carries no new\n * refresh token, so the caller carries the one it has forward.\n */\n const refreshTokens = async (refreshToken: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get(\n '/auth/token',\n {},\n { headers: authHeader(refreshToken), signal },\n );\n return data;\n };\n\n /** Authenticated with the **access** token. Clear local state regardless of the outcome. */\n const logout = async (accessToken: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/logout', {}, { headers: authHeader(accessToken), signal });\n };\n\n const getProfile = async (signal?: AbortSignal) => {\n const { data } = await client.get('/auth/profile', {}, { signal });\n return data;\n };\n\n const requestPasswordReset = async (email: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/forgot/{email}', { path: { email } }, { signal });\n };\n\n const confirmPasswordReset = async (\n email: string,\n body: ResetPasswordConfirmInput,\n signal?: AbortSignal,\n ) => {\n await publicClient.post('/auth/forgot/{email}/confirm', { path: { email }, body }, { signal });\n };\n\n // `setupMfa` and `confirmMfa` each take two of the three tokens: the auth token in the header, the\n // access token in the body. Both sit on the auth-free client, which keeps them out of the\n // middleware's refresh-and-replay: restamping a header cannot fix a stale token in a body.\n const setupMfa = async (\n { idToken, accessToken }: { idToken: string; accessToken: string },\n signal?: AbortSignal,\n ) => {\n const { data } = await publicClient.post(\n '/auth/mfa',\n { body: { accessToken } },\n { headers: authHeader(idToken), signal },\n );\n return data;\n };\n\n const confirmMfa = async (\n { idToken, accessToken, code }: { idToken: string; accessToken: string; code: string },\n signal?: AbortSignal,\n ) => {\n await publicClient.post(\n '/auth/mfa/confirm',\n { body: { accessToken, code } },\n { headers: authHeader(idToken), signal },\n );\n };\n\n return {\n login,\n signUp,\n confirmAccount,\n confirmAccountByCode,\n refreshTokens,\n logout,\n getProfile,\n requestPasswordReset,\n confirmPasswordReset,\n setupMfa,\n confirmMfa,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateServiceAccountInput,\n CreateVendorInput,\n GetVendorUsersQuery,\n PaginationQuery,\n UpdateVendorInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /vendors` and `GET /vendors/{vendor}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createVendors = ({ client, publicClient }: Deps) => {\n const getVendors = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors', { query }, { signal });\n return data;\n };\n\n const getVendor = async (vendor: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors/{vendor}', { path: { vendor } }, { signal });\n return data;\n };\n\n /** Self-service registration. The vendor is pending, under a temporary `_v`-prefixed id. */\n const createVendor = async (body: CreateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.post('/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (vendor: string, body: UpdateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.patch(\n '/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const getVendorUsers = async (\n vendor: string,\n query: GetVendorUsersQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n /** Requests membership of a vendor for the signed-in user. */\n const requestVendorMembership = async (vendor: string, signal?: AbortSignal) => {\n await client.post('/vendors/{vendor}/users', { path: { vendor } }, { signal });\n };\n\n const approveVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const removeVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.delete(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const getVendorUserRequests = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/user-requests',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const sendVendorInvitation = async (vendor: string, email: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/invitations/{email}',\n { path: { vendor, email } },\n { signal },\n );\n };\n\n /** `security: []` — the invitee follows the emailed link before they have a session. */\n const acceptVendorInvitation = async (\n vendor: string,\n email: string,\n code: string,\n signal?: AbortSignal,\n ) => {\n await publicClient.get(\n '/vendors/{vendor}/invitations/{email}/{code}',\n { path: { vendor, email, code } },\n { signal },\n );\n };\n\n /** `service=1` filters the member list; there is no distinct endpoint. */\n const getServiceAccounts = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query: { ...query, service: 1 } },\n { signal },\n );\n return data;\n };\n\n /** The returned `password` is shown once and is not retrievable afterwards. */\n const createServiceAccount = async (\n vendor: string,\n body: CreateServiceAccountInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/credentials',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n return {\n getVendors,\n getVendor,\n createVendor,\n updateVendor,\n getVendorUsers,\n requestVendorMembership,\n approveVendorUser,\n removeVendorUser,\n getVendorUserRequests,\n sendVendorInvitation,\n acceptVendorInvitation,\n getServiceAccounts,\n createServiceAccount,\n };\n};\n","import { createOpenapiFetchClient, type MiddlewareFn } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createAdmin } from './admin/admin';\nimport { createApps } from './apps/apps';\nimport { createAuth } from './auth/auth';\nimport { createVendors } from './vendors/vendors';\n\nexport type DeveloperPortalFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport type DeveloperPortalClientInitOptions = Omit<ClientInitOptions, 'auth' | 'middlewares'> & {\n middlewares?: MiddlewareFn[];\n /**\n * Stamps the id token. A middleware rather than the `auth: AuthStrategy` other clients take, because\n * apps-api's token rotates and a header baked in at construction would go stale. Supplied by\n * `createDeveloperPortalSdk`; omit it for the spec's `security: []` operations.\n */\n authMiddleware?: MiddlewareFn;\n};\n\n/**\n * The Developer Portal (apps-api) client. Paths and types are generated from\n * `https://apps-api.keboola.com/docs/openapi.yaml` — see `redocly.yaml` and `pnpm gen:types`.\n *\n * Two fetch clients because the spec splits its operations: `security: []` ones must go out\n * unauthenticated, and four authenticate with the access or refresh token instead of the id token.\n */\nexport const createDeveloperPortalClient = ({\n baseUrl,\n middlewares = [],\n authMiddleware,\n}: DeveloperPortalClientInitOptions) => {\n const publicClient = createOpenapiFetchClient<paths>({ baseUrl, middlewares });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({ baseUrl, middlewares: [authMiddleware, ...middlewares] })\n : publicClient;\n\n /** `GET /` — the spec's service index. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await publicClient.get('/', {}, { signal });\n return data;\n };\n\n return {\n healthCheck,\n auth: createAuth({ client, publicClient }),\n vendors: createVendors({ client, publicClient }),\n apps: createApps({ client, publicClient }),\n admin: createAdmin(client),\n };\n};\n\nexport type DeveloperPortalClient = ReturnType<typeof createDeveloperPortalClient>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"developerPortalClient-CLPpBksD.cjs","names":["HttpHeader","createOpenapiFetchClient"],"sources":["../src/clients/developerPortal/admin/admin.ts","../src/clients/developerPortal/apps/apps.ts","../src/clients/developerPortal/tokens.ts","../src/clients/developerPortal/auth/auth.ts","../src/clients/developerPortal/vendors/vendors.ts","../src/clients/developerPortal/developerPortalClient.ts"],"sourcesContent":["import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n AdminPaginationQuery,\n ApproveVendorInput,\n CreateVendorAsAdminInput,\n GetChangesQuery,\n PaginationQuery,\n RejectAppInput,\n UpdateAppAsAdminInput,\n UpdateVendorAsAdminInput,\n} from '../types';\n\n/** Keboola staff only. Every method 403s for a non-admin token; the UI gates on `custom:isAdmin`. */\nexport const createAdmin = (client: DeveloperPortalFetchClient) => {\n const getStacks = async (signal?: AbortSignal) => {\n const { data } = await client.get('/admin/stacks', {}, { signal });\n return data;\n };\n\n const getChanges = async (query: GetChangesQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/changes', { query }, { signal });\n return data;\n };\n\n const getApps = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps', { query }, { signal });\n return data;\n };\n\n const getApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/apps/{id}', { path: { id } }, { signal });\n return data;\n };\n\n const updateApp = async (id: string, body: UpdateAppAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.patch('/admin/apps/{id}', { path: { id }, body }, { signal });\n return data;\n };\n\n const publishApp = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/apps/{id}/publish', { path: { id } }, { signal });\n return data;\n };\n\n const rejectApp = async (id: string, body: RejectAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/admin/apps/{id}/reject',\n { path: { id }, body },\n { signal },\n );\n return data;\n };\n\n const getUsers = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/users', { query }, { signal });\n return data;\n };\n\n const deleteUser = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}', { path: { username } }, { signal });\n };\n\n /** Clears the user's MFA enrolment so they can re-enrol — the account-recovery path. */\n const resetUserMfa = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/mfa', { path: { username } }, { signal });\n };\n\n const addUserToVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.post(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const removeUserFromVendor = async (username: string, vendor: string, signal?: AbortSignal) => {\n await client.delete(\n '/admin/users/{username}/vendors/{vendor}',\n { path: { username, vendor } },\n { signal },\n );\n };\n\n const grantUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.post('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const revokeUserAdmin = async (username: string, signal?: AbortSignal) => {\n await client.delete('/admin/users/{username}/admin', { path: { username } }, { signal });\n };\n\n const getVendors = async (query: AdminPaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/admin/vendors', { query }, { signal });\n return data;\n };\n\n const createVendor = async (body: CreateVendorAsAdminInput, signal?: AbortSignal) => {\n const { data } = await client.post('/admin/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (\n vendor: string,\n body: UpdateVendorAsAdminInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/admin/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const deleteVendor = async (vendor: string, signal?: AbortSignal) => {\n await client.delete('/admin/vendors/{vendor}', { path: { vendor } }, { signal });\n };\n\n /** Swaps a pending `_v`-prefixed id for the permanent one carried in the body. */\n const approveVendor = async (vendor: string, body: ApproveVendorInput, signal?: AbortSignal) => {\n await client.post('/admin/vendors/{vendor}/approve', { path: { vendor }, body }, { signal });\n };\n\n return {\n getStacks,\n getChanges,\n getApps,\n getApp,\n updateApp,\n publishApp,\n rejectApp,\n getUsers,\n deleteUser,\n resetUserMfa,\n addUserToVendor,\n removeUserFromVendor,\n grantUserAdmin,\n revokeUserAdmin,\n getVendors,\n createVendor,\n updateVendor,\n deleteVendor,\n approveVendor,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateAppInput,\n DeprecateAppInput,\n GetAppsQuery,\n PaginationQuery,\n UpdateAppInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /apps` and `GET /apps/{app}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createApps = ({ client, publicClient }: Deps) => {\n /** The public catalog: scoped server-side to published components. */\n const getPublishedApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps', { query }, { signal });\n return data;\n };\n\n const getPublishedApp = async (app: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/apps/{app}', { path: { app } }, { signal });\n return data;\n };\n\n const getApps = async (vendor: string, query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const getApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const createApp = async (vendor: string, body: CreateAppInput, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const updateApp = async (\n vendor: string,\n app: string,\n body: UpdateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.patch(\n '/vendors/{vendor}/apps/{app}',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const deleteApp = async (vendor: string, app: string, signal?: AbortSignal) => {\n await client.delete('/vendors/{vendor}/apps/{app}', { path: { vendor, app } }, { signal });\n };\n\n const requestAppPublishing = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/publish',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n const deprecateApp = async (\n vendor: string,\n app: string,\n body: DeprecateAppInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/deprecate',\n { path: { vendor, app }, body },\n { signal },\n );\n return data;\n };\n\n const getAppVersions = async (\n vendor: string,\n app: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions',\n { path: { vendor, app }, query },\n { signal },\n );\n return data;\n };\n\n const getAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/versions/{version}',\n { path: { vendor, app, version } },\n { signal },\n );\n return data;\n };\n\n const rollbackAppVersion = async (\n vendor: string,\n app: string,\n version: string,\n signal?: AbortSignal,\n ) => {\n await client.post(\n '/vendors/{vendor}/apps/{app}/versions/{version}/rollback',\n { path: { vendor, app, version } },\n { signal },\n );\n };\n\n const getAppRepository = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/vendors/{vendor}/apps/{app}/repository',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n /** Requests a presigned S3 upload link; the upload itself is {@link uploadAppIcon}. */\n const createAppIconUploadLink = async (vendor: string, app: string, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/vendors/{vendor}/apps/{app}/icon',\n { path: { vendor, app } },\n { signal },\n );\n return data;\n };\n\n return {\n getPublishedApps,\n getPublishedApp,\n getApps,\n getApp,\n createApp,\n updateApp,\n deleteApp,\n requestAppPublishing,\n deprecateApp,\n getAppVersions,\n getAppVersion,\n rollbackAppVersion,\n getAppRepository,\n createAppIconUploadLink,\n };\n};\n\n/**\n * Uploads the icon to the presigned URL from `createAppIconUploadLink`. Deliberately a bare `fetch`:\n * the URL carries its own signature in the query string, and sending our `Authorization` header to\n * S3 makes it reject the request.\n */\nexport const uploadAppIcon = async (\n uploadUrl: string,\n png: Blob,\n signal?: AbortSignal,\n): Promise<void> => {\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: png,\n headers: { 'Content-Type': 'image/png' },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Icon upload failed: ${response.status} ${response.statusText}`);\n }\n};\n","import { HttpHeader } from '../../fetchClient';\n\n/**\n * The Cognito token trio apps-api issues. `token` is the id token: stamped on almost every call, and\n * the header on both MFA calls. `refreshToken` authenticates `GET /auth/token`. `accessToken`\n * authenticates `POST /auth/logout` as a header, and both `POST /auth/mfa` and `/auth/mfa/confirm`\n * in the **body** — which is why those two stay off the refresh-and-replay path.\n */\nexport type DeveloperPortalTokens = {\n token: string;\n accessToken: string;\n refreshToken: string;\n};\n\n/** Raw token, no `Bearer` prefix — see the spec's `bearerAuth` scheme (`type: apiKey`). */\nexport const authHeader = (token: string): Record<string, string> => ({\n [HttpHeader.AUTHORIZATION]: token,\n});\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport { authHeader } from '../tokens';\nimport type {\n ConfirmAccountInput,\n LoginChallenge,\n LoginInput,\n LoginResult,\n ResetPasswordConfirmInput,\n SignUpInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** The spec's `security: []` operations, plus the four that bring their own token. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const isMfaChallengeResponse = (result: LoginResult): result is LoginChallenge =>\n !('token' in result);\n\nexport const createAuth = ({ client, publicClient }: Deps) => {\n const login = async (body: LoginInput, signal?: AbortSignal) => {\n const { data } = await publicClient.post('/auth/login', { body }, { signal });\n return data;\n };\n\n const signUp = async (body: SignUpInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/signup', { body }, { signal });\n };\n\n const confirmAccount = async (body: ConfirmAccountInput, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm', { body }, { signal });\n };\n\n /** Confirms via the emailed link's path segments, for a consumer echoing that link. */\n const confirmAccountByCode = async (email: string, code: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/confirm/{email}/{code}', { path: { email, code } }, { signal });\n };\n\n /**\n * Rotates the trio, authenticated with the **refresh** token, on the auth-free client so a\n * rotation triggered by the auth middleware cannot recurse into it. The response carries no new\n * refresh token, so the caller carries the one it has forward.\n */\n const refreshTokens = async (refreshToken: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get(\n '/auth/token',\n {},\n { headers: authHeader(refreshToken), signal },\n );\n return data;\n };\n\n /** Authenticated with the **access** token. Clear local state regardless of the outcome. */\n const logout = async (accessToken: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/logout', {}, { headers: authHeader(accessToken), signal });\n };\n\n const getProfile = async (signal?: AbortSignal) => {\n const { data } = await client.get('/auth/profile', {}, { signal });\n return data;\n };\n\n const requestPasswordReset = async (email: string, signal?: AbortSignal) => {\n await publicClient.post('/auth/forgot/{email}', { path: { email } }, { signal });\n };\n\n const confirmPasswordReset = async (\n email: string,\n body: ResetPasswordConfirmInput,\n signal?: AbortSignal,\n ) => {\n await publicClient.post('/auth/forgot/{email}/confirm', { path: { email }, body }, { signal });\n };\n\n // `setupMfa` and `confirmMfa` each take two of the three tokens: the auth token in the header, the\n // access token in the body. Both sit on the auth-free client, which keeps them out of the\n // middleware's refresh-and-replay: restamping a header cannot fix a stale token in a body.\n const setupMfa = async (\n { idToken, accessToken }: { idToken: string; accessToken: string },\n signal?: AbortSignal,\n ) => {\n const { data } = await publicClient.post(\n '/auth/mfa',\n { body: { accessToken } },\n { headers: authHeader(idToken), signal },\n );\n return data;\n };\n\n const confirmMfa = async (\n { idToken, accessToken, code }: { idToken: string; accessToken: string; code: string },\n signal?: AbortSignal,\n ) => {\n await publicClient.post(\n '/auth/mfa/confirm',\n { body: { accessToken, code } },\n { headers: authHeader(idToken), signal },\n );\n };\n\n return {\n login,\n signUp,\n confirmAccount,\n confirmAccountByCode,\n refreshTokens,\n logout,\n getProfile,\n requestPasswordReset,\n confirmPasswordReset,\n setupMfa,\n confirmMfa,\n };\n};\n","import type { DeveloperPortalFetchClient } from '../developerPortalClient';\nimport type {\n CreateServiceAccountInput,\n CreateVendorInput,\n GetVendorUsersQuery,\n PaginationQuery,\n UpdateVendorInput,\n} from '../types';\n\ntype Deps = {\n client: DeveloperPortalFetchClient;\n /** `GET /vendors` and `GET /vendors/{vendor}` are `security: []` in the spec. */\n publicClient: DeveloperPortalFetchClient;\n};\n\nexport const createVendors = ({ client, publicClient }: Deps) => {\n const getVendors = async (query: PaginationQuery = {}, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors', { query }, { signal });\n return data;\n };\n\n const getVendor = async (vendor: string, signal?: AbortSignal) => {\n const { data } = await publicClient.get('/vendors/{vendor}', { path: { vendor } }, { signal });\n return data;\n };\n\n /** Self-service registration. The vendor is pending, under a temporary `_v`-prefixed id. */\n const createVendor = async (body: CreateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.post('/vendors', { body }, { signal });\n return data;\n };\n\n const updateVendor = async (vendor: string, body: UpdateVendorInput, signal?: AbortSignal) => {\n const { data } = await client.patch(\n '/vendors/{vendor}',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n const getVendorUsers = async (\n vendor: string,\n query: GetVendorUsersQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n /** Requests membership of a vendor for the signed-in user. */\n const requestVendorMembership = async (vendor: string, signal?: AbortSignal) => {\n await client.post('/vendors/{vendor}/users', { path: { vendor } }, { signal });\n };\n\n const approveVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const removeVendorUser = async (vendor: string, username: string, signal?: AbortSignal) => {\n await client.delete(\n '/vendors/{vendor}/users/{username}',\n { path: { vendor, username } },\n { signal },\n );\n };\n\n const getVendorUserRequests = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/user-requests',\n { path: { vendor }, query },\n { signal },\n );\n return data;\n };\n\n const sendVendorInvitation = async (vendor: string, email: string, signal?: AbortSignal) => {\n await client.post(\n '/vendors/{vendor}/invitations/{email}',\n { path: { vendor, email } },\n { signal },\n );\n };\n\n /** `security: []` — the invitee follows the emailed link before they have a session. */\n const acceptVendorInvitation = async (\n vendor: string,\n email: string,\n code: string,\n signal?: AbortSignal,\n ) => {\n await publicClient.get(\n '/vendors/{vendor}/invitations/{email}/{code}',\n { path: { vendor, email, code } },\n { signal },\n );\n };\n\n /** `service=1` filters the member list; there is no distinct endpoint. */\n const getServiceAccounts = async (\n vendor: string,\n query: PaginationQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/vendors/{vendor}/users',\n { path: { vendor }, query: { ...query, service: 1 } },\n { signal },\n );\n return data;\n };\n\n /** The returned `password` is shown once and is not retrievable afterwards. */\n const createServiceAccount = async (\n vendor: string,\n body: CreateServiceAccountInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/vendors/{vendor}/credentials',\n { path: { vendor }, body },\n { signal },\n );\n return data;\n };\n\n return {\n getVendors,\n getVendor,\n createVendor,\n updateVendor,\n getVendorUsers,\n requestVendorMembership,\n approveVendorUser,\n removeVendorUser,\n getVendorUserRequests,\n sendVendorInvitation,\n acceptVendorInvitation,\n getServiceAccounts,\n createServiceAccount,\n };\n};\n","import { createOpenapiFetchClient, type MiddlewareFn } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createAdmin } from './admin/admin';\nimport { createApps } from './apps/apps';\nimport { createAuth } from './auth/auth';\nimport { createVendors } from './vendors/vendors';\n\nexport type DeveloperPortalFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport type DeveloperPortalClientInitOptions = Omit<ClientInitOptions, 'auth' | 'middlewares'> & {\n middlewares?: MiddlewareFn[];\n /**\n * Stamps the id token per request (it rotates). Omit for the spec's `security: []` operations.\n */\n authMiddleware?: MiddlewareFn;\n};\n\n/**\n * The Developer Portal (apps-api) client; types generated via `redocly.yaml` / `pnpm gen:types`.\n *\n * - Two fetch clients: `security: []` operations go out unauthenticated, and four use the access or\n * refresh token instead of the id token.\n */\nexport const createDeveloperPortalClient = ({\n baseUrl,\n middlewares = [],\n authMiddleware,\n}: DeveloperPortalClientInitOptions) => {\n const publicClient = createOpenapiFetchClient<paths>({ baseUrl, middlewares });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({ baseUrl, middlewares: [authMiddleware, ...middlewares] })\n : publicClient;\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await publicClient.get('/', {}, { signal });\n return data;\n };\n\n return {\n healthCheck,\n auth: createAuth({ client, publicClient }),\n vendors: createVendors({ client, publicClient }),\n apps: createApps({ client, publicClient }),\n admin: createAdmin(client),\n };\n};\n\nexport type DeveloperPortalClient = ReturnType<typeof createDeveloperPortalClient>;\n"],"mappings":"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"}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_project = require("../../project-BvFi19K_.cjs");
|
|
3
|
-
const require_configurations = require("../../configurations-
|
|
3
|
+
const require_configurations = require("../../configurations-BTRHVSRq.cjs");
|
|
4
4
|
//#region src/domain/permissions/organization.ts
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* the project?
|
|
6
|
+
* Whether this token's admin is a member of the organization owning the project.
|
|
8
7
|
*
|
|
9
|
-
* A limited
|
|
10
|
-
*
|
|
11
|
-
* optional chain and the `isMasterToken` requirement. Prefer
|
|
12
|
-
* `isOrganizationAdmin` for authorization decisions; this bare signal exists
|
|
13
|
-
* because a few kbc-ui call sites use it with no role conjunction (e.g.
|
|
14
|
-
* `privileges.ts`'s `canManageUsers`/`canUnlinkBucket`), and porting those must
|
|
15
|
-
* not change behaviour.
|
|
8
|
+
* - A limited token has no `admin` block despite the type saying required.
|
|
9
|
+
* - Prefer `isOrganizationAdmin` for authorization decisions.
|
|
16
10
|
*/
|
|
17
11
|
const isOrganizationMember = (token) => token.isMasterToken && (token.admin?.isOrganizationMember ?? false);
|
|
18
12
|
/**
|
|
19
|
-
*
|
|
13
|
+
* `isOrganizationMember` AND `admin`/`share`.
|
|
20
14
|
*
|
|
21
|
-
* `
|
|
22
|
-
* flag — is the shape kbc-ui already uses wherever org authority gates a
|
|
23
|
-
* project-level *write* (e.g. `privileges.ts`'s `canChangeUserRole` for the
|
|
24
|
-
* SHARE target). Keeping the conjunction means an org member holding a
|
|
25
|
-
* `readOnly` or `guest` token on this particular project still cannot write,
|
|
26
|
-
* matching every existing write-shaped call site.
|
|
15
|
+
* - An org member with a `readOnly` or `guest` role on this project still cannot write.
|
|
27
16
|
*/
|
|
28
17
|
const isOrganizationAdmin = (token) => isOrganizationMember(token) && require_configurations.isAdminOrShare(token);
|
|
29
18
|
const assertCanAdministerOrganization = (token) => {
|
|
@@ -33,20 +22,10 @@ const assertCanAdministerOrganization = (token) => {
|
|
|
33
22
|
});
|
|
34
23
|
};
|
|
35
24
|
/**
|
|
36
|
-
* Whether this token may write Kai's
|
|
37
|
-
* default per-user limit, and per-user overrides (AI-3738).
|
|
25
|
+
* Whether this token may write Kai's spend caps: project cap, default and per-user limits.
|
|
38
26
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* `admin`/`share` — the authority to rewrite shared project *config* (a
|
|
42
|
-
* prompt-injection surface). Spend caps commit the organization's money across
|
|
43
|
-
* every project it owns, so per AI-3738 they are organization-admin only: a
|
|
44
|
-
* project admin sees which caps apply and cannot change them. A project whose
|
|
45
|
-
* own admin could raise its own cap has no cap.
|
|
46
|
-
*
|
|
47
|
-
* Lives here rather than beside `canWriteKaiSettings` in `admin.ts` because its
|
|
48
|
-
* rule is org-scoped and `admin.ts` is documented as depending purely on the
|
|
49
|
-
* project role string.
|
|
27
|
+
* - Org-admin only, stricter than `canWriteKaiSettings`: caps commit the org's money.
|
|
28
|
+
* - A project whose own admin could raise its cap has no cap.
|
|
50
29
|
*/
|
|
51
30
|
const canWriteKaiSpendCaps = (token) => isOrganizationAdmin(token);
|
|
52
31
|
const assertCanWriteKaiSpendCaps = (token) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["isAdminOrShare","PermissionDeniedError"],"sources":["../../../src/domain/permissions/organization.ts"],"sourcesContent":["/**\n * @module domain/permissions/organization\n *\n * Organization-scope predicates
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["isAdminOrShare","PermissionDeniedError"],"sources":["../../../src/domain/permissions/organization.ts"],"sourcesContent":["/**\n * @module domain/permissions/organization\n *\n * Organization-scope predicates, read from `admin.isOrganizationMember`, not the project role.\n * - In Keboola, org membership is org administration of every project the org owns.\n * - `isOrganizationMember` is a raw signal; nothing asserts on bare membership.\n */\nimport type { StorageToken } from '../../clients/storage/tokens/types';\n\nimport { isAdminOrShare } from './admin';\nimport { PermissionDeniedError } from './errors';\n\n/**\n * Whether this token's admin is a member of the organization owning the project.\n *\n * - A limited token has no `admin` block despite the type saying required.\n * - Prefer `isOrganizationAdmin` for authorization decisions.\n */\nexport const isOrganizationMember = (token: StorageToken): boolean =>\n token.isMasterToken && (token.admin?.isOrganizationMember ?? false);\n\n/**\n * `isOrganizationMember` AND `admin`/`share`.\n *\n * - An org member with a `readOnly` or `guest` role on this project still cannot write.\n */\nexport const isOrganizationAdmin = (token: StorageToken): boolean =>\n isOrganizationMember(token) && isAdminOrShare(token);\n\nexport const assertCanAdministerOrganization = (token: StorageToken): void => {\n if (!isOrganizationAdmin(token)) {\n throw new PermissionDeniedError({\n action: 'administer-organization',\n reason: token.isMasterToken\n ? `role '${token.admin?.role ?? 'none'}' with isOrganizationMember=${token.admin?.isOrganizationMember ?? false} may not administer organization settings`\n : 'a limited (non-master) token may not administer organization settings',\n });\n }\n};\n\n/**\n * Whether this token may write Kai's spend caps: project cap, default and per-user limits.\n *\n * - Org-admin only, stricter than `canWriteKaiSettings`: caps commit the org's money.\n * - A project whose own admin could raise its cap has no cap.\n */\nexport const canWriteKaiSpendCaps = (token: StorageToken): boolean => isOrganizationAdmin(token);\n\nexport const assertCanWriteKaiSpendCaps = (token: StorageToken): void => {\n if (!canWriteKaiSpendCaps(token)) {\n throw new PermissionDeniedError({\n action: 'write-kai-spend-caps',\n reason: token.isMasterToken\n ? `role '${token.admin?.role ?? 'none'}' with isOrganizationMember=${token.admin?.isOrganizationMember ?? false} may not change Kai spend caps`\n : 'a limited (non-master) token may not change Kai spend caps',\n });\n }\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,wBAAwB,UACnC,MAAM,kBAAkB,MAAM,OAAO,wBAAwB;;;;;;AAO/D,MAAa,uBAAuB,UAClC,qBAAqB,KAAK,KAAKA,uBAAAA,eAAe,KAAK;AAErD,MAAa,mCAAmC,UAA8B;CAC5E,IAAI,CAAC,oBAAoB,KAAK,GAC5B,MAAM,IAAIC,uBAAAA,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,MAAM,gBACV,SAAS,MAAM,OAAO,QAAQ,OAAO,8BAA8B,MAAM,OAAO,wBAAwB,MAAM,6CAC9G;CACN,CAAC;AAEL;;;;;;;AAQA,MAAa,wBAAwB,UAAiC,oBAAoB,KAAK;AAE/F,MAAa,8BAA8B,UAA8B;CACvE,IAAI,CAAC,qBAAqB,KAAK,GAC7B,MAAM,IAAIA,uBAAAA,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,MAAM,gBACV,SAAS,MAAM,OAAO,QAAQ,OAAO,8BAA8B,MAAM,OAAO,wBAAwB,MAAM,kCAC9G;CACN,CAAC;AAEL"}
|