@keboola/api-client 55.0.0 → 57.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 +110 -229
- package/API-SURFACE.md +12 -2
- package/CHANGELOG.md +61 -0
- package/README.md +20 -133
- package/dist/{ManagementSessionMintError-Bc9bc7Ai.cjs → ManagementSessionMintError-BCOLLaJi.cjs} +3 -2
- package/dist/ManagementSessionMintError-BCOLLaJi.cjs.map +1 -0
- package/dist/{ManagementSessionMintError-BMHDcEqV.js → ManagementSessionMintError-KUX3utTV.js} +3 -2
- package/dist/ManagementSessionMintError-KUX3utTV.js.map +1 -0
- package/dist/{adminRoles-Cm513r1G.d.ts → adminRoles-CnfGDvjN.d.ts} +2 -2
- package/dist/{adminRoles-BTKVwEy8.d.cts → adminRoles-D6AS9Bzx.d.cts} +2 -2
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/apps/index.cjs +1 -1
- package/dist/apps/index.d.cts +2 -2
- package/dist/apps/index.d.ts +2 -2
- package/dist/apps/index.js +1 -1
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/{apps-C1x5IKNQ.cjs → apps-BA9JRLAZ.cjs} +55 -1
- package/dist/apps-BA9JRLAZ.cjs.map +1 -0
- package/dist/{apps-BN7fWtSm.js → apps-DDcguJ1i.js} +55 -1
- package/dist/apps-DDcguJ1i.js.map +1 -0
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/auth/index.cjs +1 -1
- package/dist/auth/index.d.cts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/types.d.cts +2 -2
- package/dist/auth/types.d.ts +2 -2
- package/dist/{authClient-BM4L8XEN.js → authClient-BKGpJI5L.js} +14 -45
- package/dist/authClient-BKGpJI5L.js.map +1 -0
- package/dist/{authClient-DspK50e7.cjs → authClient-C3KG9hXw.cjs} +15 -58
- package/dist/authClient-C3KG9hXw.cjs.map +1 -0
- package/dist/{authClient-ij_Rm2Yn.d.ts → authClient-CbWpMmdX.d.ts} +7 -4
- package/dist/{authClient-NBi0pqD5.d.cts → authClient-UKeopxZZ.d.cts} +7 -4
- package/dist/billing/index.d.cts +1 -1
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/types.d.cts +1 -1
- package/dist/billing/types.d.ts +1 -1
- package/dist/chat/index.d.cts +2 -2
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/types.d.cts +1 -1
- package/dist/chat/types.d.ts +1 -1
- package/dist/componentsMcp/index.d.cts +1 -1
- package/dist/componentsMcp/index.d.ts +1 -1
- package/dist/componentsMcp/types.d.cts +1 -1
- package/dist/componentsMcp/types.d.ts +1 -1
- package/dist/constants/index.cjs +2 -2
- package/dist/constants/index.d.cts +3 -3
- package/dist/constants/index.d.ts +3 -3
- package/dist/constants/index.js +2 -2
- package/dist/{constants-HccvU5kx.js → constants-CxEaHCyt.js} +4 -3
- package/dist/constants-CxEaHCyt.js.map +1 -0
- package/dist/{constants-V9hAyPTo.cjs → constants-fiyOLyZE.cjs} +4 -3
- package/dist/constants-fiyOLyZE.cjs.map +1 -0
- package/dist/dataScience/index.d.cts +3 -3
- package/dist/dataScience/index.d.ts +3 -3
- package/dist/dataScience/types.d.cts +1 -1
- package/dist/dataScience/types.d.ts +1 -1
- package/dist/developerPortal/index.cjs +1 -1
- package/dist/developerPortal/index.d.cts +3 -3
- package/dist/developerPortal/index.d.ts +3 -3
- package/dist/developerPortal/index.js +1 -1
- package/dist/developerPortal/types.d.cts +2 -2
- package/dist/developerPortal/types.d.ts +2 -2
- package/dist/{developerPortalClient-CzCJ5sE3.js → developerPortalClient-3Q7049-4.js} +19 -1
- package/dist/developerPortalClient-3Q7049-4.js.map +1 -0
- package/dist/{developerPortalClient-BcK9F-Fs.cjs → developerPortalClient-Cj9bStCS.cjs} +19 -1
- package/dist/developerPortalClient-Cj9bStCS.cjs.map +1 -0
- package/dist/domain/permissions/index.d.cts +1 -1
- package/dist/domain/permissions/index.d.ts +1 -1
- package/dist/editor/index.d.cts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/{emitter-raKkIqRp.d.ts → emitter-yaYzJOdh.d.cts} +1 -2
- package/dist/{emitter-raKkIqRp.d.cts → emitter-yaYzJOdh.d.ts} +1 -2
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.d.cts +3 -3
- package/dist/import/index.d.ts +3 -3
- package/dist/{index-FrsEkDvX.d.cts → index-9p4O-clX.d.cts} +2035 -73
- package/dist/{index-FrsEkDvX.d.ts → index-9p4O-clX.d.ts} +2035 -73
- package/dist/{index-BGE3eZfd.d.cts → index-B-HCh7LL.d.cts} +3 -3
- package/dist/{index-D3hWR_e4.d.ts → index-B0e42GnK.d.cts} +4 -3
- package/dist/{index-DeWeUUfE.d.ts → index-BbXGsspe.d.ts} +4 -4
- package/dist/{index-CYk7Aa8u.d.cts → index-Bg9BWpIY.d.ts} +4 -3
- package/dist/{index-CmyFWQXn.d.cts → index-BgEu7wGk.d.cts} +2671 -7325
- package/dist/{index-B8K-Bbdq.d.cts → index-Btft3BFn.d.ts} +29 -3
- package/dist/{index-CNJBmCHM.d.cts → index-ByaAn_lm.d.cts} +4 -4
- package/dist/{index-DLWMm1-T.d.ts → index-C92Ct6K5.d.ts} +178 -4
- package/dist/{index-CEDjFidH.d.ts → index-CBq59Aif.d.ts} +3 -3
- package/dist/{index-CQNwp6wX.d.ts → index-CGUPsu_R.d.cts} +29 -3
- package/dist/{index-CZvBjQvl.d.ts → index-CIA6-x2Q.d.ts} +4 -4
- package/dist/{index-BVe4S2CK.d.ts → index-CeWVf3d1.d.ts} +4 -4
- package/dist/{index-CQPs3hrp.d.ts → index-Cj0l_DL_.d.ts} +2671 -7325
- package/dist/{index-BUZ-vTRt.d.ts → index-Ck0UPKMM.d.ts} +2 -2
- package/dist/{index-d9zxFmNI.d.cts → index-D0ACg_Pp.d.cts} +7 -4
- package/dist/{index-8QhOqFLY.d.cts → index-D8nMnVp1.d.cts} +4 -4
- package/dist/{index-24GpnYhn.d.cts → index-DENUPo51.d.cts} +2 -2
- package/dist/{index-iFCann29.d.cts → index-DGjxLWZ-.d.cts} +3 -3
- package/dist/{index-CdeWTy8t.d.ts → index-Dse6Psvc.d.ts} +7 -4
- package/dist/{index-DTGOEke4.d.ts → index-DxcaEIhU.d.ts} +3 -3
- package/dist/{index-BE6qM0vu.d.cts → index-OCEoQ1Y-.d.cts} +4 -4
- package/dist/{index-BXgjPlZN.d.cts → index-jR69kGUZ.d.cts} +178 -4
- package/dist/index.cjs +613 -865
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +611 -860
- package/dist/index.js.map +1 -1
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +2 -2
- package/dist/kaiAgent/index.d.ts +2 -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-De2T6G4G.cjs → kaiAgent-Q00g6S1v.cjs} +16 -1
- package/dist/kaiAgent-Q00g6S1v.cjs.map +1 -0
- package/dist/{kaiAgent-D0MoKqXe.js → kaiAgent-aqylPZHY.js} +16 -1
- package/dist/kaiAgent-aqylPZHY.js.map +1 -0
- package/dist/management/index.cjs +1 -1
- package/dist/management/index.d.cts +1 -1
- package/dist/management/index.d.ts +1 -1
- package/dist/management/index.js +1 -1
- package/dist/management/types.d.cts +1 -1
- package/dist/management/types.d.ts +1 -1
- package/dist/{management-BlMQnPNS.js → management-CIK5-Aq5.js} +14 -7
- package/dist/management-CIK5-Aq5.js.map +1 -0
- package/dist/{management-dIMrTTpI.cjs → management-Dqrc516s.cjs} +14 -7
- package/dist/management-Dqrc516s.cjs.map +1 -0
- package/dist/{metaObject-ClvW342q.d.ts → metaObject-AQ7wKDOu.d.ts} +2 -2
- package/dist/{metaObject-D7oudegV.d.cts → metaObject-I35_krxf.d.cts} +2 -2
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/types.d.cts +1 -1
- package/dist/metastore/types.d.ts +1 -1
- package/dist/microsoftGraph/index.d.cts +3 -3
- package/dist/microsoftGraph/index.d.ts +3 -3
- package/dist/microsoftGraph/types.d.cts +2 -2
- package/dist/microsoftGraph/types.d.ts +2 -2
- package/dist/{middleware-DxGv7DG8.js → middleware-DWmhthX0.js} +2 -2
- package/dist/middleware-DWmhthX0.js.map +1 -0
- package/dist/{middleware-vIaPDtQI.cjs → middleware-DYdDD4O6.cjs} +2 -2
- package/dist/middleware-DYdDD4O6.cjs.map +1 -0
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/notifications/types.d.cts +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/oauth/index.d.cts +2 -2
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/omnisearch/index.d.cts +2 -2
- package/dist/omnisearch/index.d.ts +2 -2
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/{project-DS0HOV3M.d.ts → project-DwRvx_zN.d.ts} +3 -3
- package/dist/{project-BGk9CtOq.d.cts → project-ERH0FTGW.d.cts} +3 -3
- 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-C3BQ6GKW.cjs → queryService-CECWubS0.cjs} +2 -2
- package/dist/{queryService-C3BQ6GKW.cjs.map → queryService-CECWubS0.cjs.map} +1 -1
- package/dist/{queryService-DQHtHy2-.js → queryService-CIxb_mcP.js} +2 -2
- package/dist/{queryService-DQHtHy2-.js.map → queryService-CIxb_mcP.js.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +11 -4
- package/dist/queue/index.d.ts +11 -4
- 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-6cywDnA-.js → queue-BBihD5qQ.js} +2 -2
- package/dist/{queue-6cywDnA-.js.map → queue-BBihD5qQ.js.map} +1 -1
- package/dist/{queue-J2uXzXR9.cjs → queue-PmTfoniJ.cjs} +2 -2
- package/dist/{queue-J2uXzXR9.cjs.map → queue-PmTfoniJ.cjs.map} +1 -1
- package/dist/scheduler/index.d.cts +2 -2
- package/dist/scheduler/index.d.ts +2 -2
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/{schema-DLmBEgPM.d.cts → schema-CqzWi5cO.d.cts} +14 -4
- package/dist/{schema-DLmBEgPM.d.ts → schema-CqzWi5cO.d.ts} +14 -4
- package/dist/sdk/configurations/index.d.cts +2 -3
- package/dist/sdk/configurations/index.d.ts +2 -3
- package/dist/sdk/dataAppServer/index.cjs +3 -3
- package/dist/sdk/dataAppServer/index.d.cts +1 -1
- package/dist/sdk/dataAppServer/index.d.ts +1 -1
- package/dist/sdk/dataAppServer/index.js +3 -3
- package/dist/sdk/developerPortal/index.cjs +3 -3
- package/dist/sdk/developerPortal/index.cjs.map +1 -1
- package/dist/sdk/developerPortal/index.d.cts +178 -4
- package/dist/sdk/developerPortal/index.d.ts +178 -4
- package/dist/sdk/developerPortal/index.js +3 -3
- package/dist/sdk/developerPortal/index.js.map +1 -1
- package/dist/sdk/kaiMemory/index.d.cts +1 -1
- package/dist/sdk/kaiMemory/index.d.ts +1 -1
- package/dist/sdk/kaiMemory/types.d.cts +1 -1
- package/dist/sdk/kaiMemory/types.d.ts +1 -1
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/securityPolicy/index.d.cts +2 -2
- package/dist/sdk/securityPolicy/index.d.ts +2 -2
- package/dist/sdk/securityPolicy/types.d.cts +1 -1
- package/dist/sdk/securityPolicy/types.d.ts +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +1 -1
- package/dist/sdk/semanticLayer/index.d.ts +1 -1
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +1 -1
- package/dist/sdk/tag/index.d.cts +3 -3
- package/dist/sdk/tag/index.d.ts +3 -3
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/storage/index.cjs +3 -3
- package/dist/storage/index.d.cts +2 -3
- package/dist/storage/index.d.ts +2 -3
- package/dist/storage/index.js +3 -3
- package/dist/storage/types.d.cts +6 -6
- package/dist/storage/types.d.ts +6 -6
- package/dist/{storage-BL-TfHp8.cjs → storage-chxoWtAL.cjs} +83 -42
- package/dist/storage-chxoWtAL.cjs.map +1 -0
- package/dist/{storage-DEJN8sw-.js → storage-o9teEKl_.js} +83 -42
- package/dist/storage-o9teEKl_.js.map +1 -0
- package/dist/{store-2OyH1XOP.cjs → store-7xlVu4qF.cjs} +3 -14
- package/dist/store-7xlVu4qF.cjs.map +1 -0
- package/dist/{store-HP0zRcLz.js → store-DDUzPeCm.js} +3 -14
- package/dist/store-DDUzPeCm.js.map +1 -0
- package/dist/stream/index.d.cts +2 -2
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/syncActions/index.d.cts +2 -2
- package/dist/syncActions/index.d.ts +2 -2
- package/dist/syncActions/types.d.cts +1 -1
- package/dist/syncActions/types.d.ts +1 -1
- package/dist/telemetry/index.d.cts +2 -2
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{transientRetries-BORv47mH.js → transientRetries-dssygpwU.js} +2 -2
- package/dist/{transientRetries-BORv47mH.js.map → transientRetries-dssygpwU.js.map} +1 -1
- package/dist/{transientRetries-CBorl4Ue.cjs → transientRetries-yVaQgKqP.cjs} +2 -2
- package/dist/{transientRetries-CBorl4Ue.cjs.map → transientRetries-yVaQgKqP.cjs.map} +1 -1
- package/dist/{types-BEw98Dd2.d.cts → types-B1kernzE.d.cts} +2 -2
- package/dist/{types-DjSjUKUl.d.ts → types-BBmS7-IS.d.ts} +151 -4
- package/dist/{types-DbthI3r-.d.ts → types-BJyWTgXX.d.ts} +2 -2
- package/dist/{types-DNwIMEuB.d.cts → types-BPNFTA63.d.cts} +21 -7
- package/dist/{types-Bv2Ds1hL.d.cts → types-BPSExpye.d.cts} +244 -4
- package/dist/{types-Dsf7CYmm.d.ts → types-BiXonOK6.d.ts} +2 -2
- package/dist/{types-BXKL0wTI.d.cts → types-BimRBONo.d.cts} +3 -3
- package/dist/{types-D2hhEGem.d.cts → types-BuEC58u3.d.cts} +2 -2
- package/dist/{types-dU3EA8gk.d.ts → types-BzHyi99r.d.cts} +5 -3
- package/dist/{types-J_dgwMjP.d.ts → types-C4T_2JdN.d.cts} +40 -27
- package/dist/{types-OHt0D_f2.d.ts → types-C53aKnWt.d.ts} +2 -2
- package/dist/{types-Do3__S4Q.d.cts → types-CEjgqmr2.d.cts} +2 -2
- package/dist/{types-CQYyULrw.d.ts → types-CGtpwTJk.d.ts} +2 -2
- package/dist/{types-D5bxXqEU.d.ts → types-CH1uguug.d.cts} +2 -163
- package/dist/{types-Tg3euEN_.d.ts → types-CP8-CssY.d.ts} +2 -2
- package/dist/{types-DX1Dz0xK.d.ts → types-CPQ6RkiZ.d.ts} +244 -4
- package/dist/{types-DSWIIMdv.d.ts → types-CPwofeyq.d.ts} +3 -3
- package/dist/{types-ChOJ-Az7.d.cts → types-CQAEOq-K.d.cts} +2 -2
- package/dist/{types-CKdNf_2k.d.cts → types-CVWoP_PC.d.cts} +3 -3
- package/dist/{types-B4ezB18r.d.cts → types-CbM2MApW.d.cts} +2 -2
- package/dist/{types-BD0B1KQ6.d.ts → types-CbOfT6lb.d.ts} +21 -7
- package/dist/{types-DMhgKHCP.d.cts → types-CcPpqVhm.d.cts} +2 -2
- package/dist/{types-d5Bt8Mr3.d.ts → types-CeqpzbBH.d.ts} +2 -2
- package/dist/{types-DU8aPTFW.d.cts → types-CjJYZaMO.d.cts} +2 -2
- package/dist/{types-B4Vwz45w.d.cts → types-CjP8RcFN.d.cts} +2 -2
- package/dist/{types-Rrcx-8LM.d.ts → types-CjfsPtwk.d.ts} +2 -2
- package/dist/{types-B6f6LpZ_.d.cts → types-CnSBLcZB.d.ts} +163 -3
- package/dist/{types-Bp8G9yta.d.ts → types-CsXLdnfV.d.ts} +2 -2
- package/dist/{types-Y4e8GGa3.d.cts → types-CzAh5-0z.d.cts} +2 -2
- package/dist/{types-BDgOF2WN.d.ts → types-D0F_c5KI.d.ts} +4 -4
- package/dist/{types-C5B3Pfob.d.cts → types-D3L3CqKl.d.cts} +151 -4
- package/dist/{types-CTYTMXXj.d.ts → types-D4oIei5M.d.cts} +163 -3
- package/dist/{types-CSE8bHiq.d.cts → types-D6ilG8sC.d.cts} +3 -3
- package/dist/{types-Cf0WE6qK.d.cts → types-DEGkXcw2.d.ts} +5 -3
- package/dist/{types-BynQKst1.d.cts → types-DEhAcO1Z.d.cts} +2 -2
- package/dist/{types-DCARsJWs.d.cts → types-DaIfg9Mb.d.cts} +4 -4
- package/dist/{types-p_lWvuQJ.d.ts → types-DhofEmWy.d.ts} +2 -2
- package/dist/{types-zlYUn0oi.d.ts → types-Dp61pYgP.d.ts} +3 -3
- package/dist/{types-CRC4lbPw.d.cts → types-Dteot3tT.d.ts} +757 -112
- package/dist/{types-DoSZQ1Bi.d.ts → types-K-JISUUI.d.cts} +757 -112
- package/dist/{types-Bwvss_gW.d.cts → types-TywAc1ow.d.ts} +40 -27
- package/dist/{types-B6JcEPEu.d.ts → types-UBpth6_9.d.ts} +2 -2
- package/dist/{types-DKKHKj19.d.cts → types-Vw-tduOH.d.ts} +2 -163
- package/dist/{types-CIlBSV99.d.cts → types-ZyLTqgpa.d.cts} +2 -2
- package/dist/{types-D-ufoskb.d.cts → types-aylD1zQz.d.cts} +17 -2
- package/dist/{types-BVJmcoqA.d.cts → types-fYY4q7dC.d.cts} +2 -2
- package/dist/{types-DK1bSUNr.d.ts → types-jYn3e3Du.d.ts} +3 -3
- package/dist/{types-CepTvkfm.d.ts → types-qXqJRPHj.d.ts} +2 -2
- package/dist/{types-kGZQQcIK.d.ts → types-r-Qa3y8e.d.ts} +2 -2
- package/dist/{types-Cr6WA6CN.d.ts → types-z82j5aNW.d.ts} +17 -2
- package/dist/validateConnectionStatus-DgJwuEy9.js +86 -0
- package/dist/validateConnectionStatus-DgJwuEy9.js.map +1 -0
- package/dist/validateConnectionStatus-DpYRsU-e.cjs +121 -0
- package/dist/validateConnectionStatus-DpYRsU-e.cjs.map +1 -0
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +2 -2
- package/surface/apps.md +8 -3
- package/surface/auth.md +3 -2
- package/surface/chat.md +3 -3
- package/surface/dataScience.md +2 -2
- package/surface/kaiAgent.md +4 -3
- package/surface/management.md +4 -4
- package/surface/queue.md +7 -7
- package/surface/storage.md +32 -26
- package/dist/ManagementSessionMintError-BMHDcEqV.js.map +0 -1
- package/dist/ManagementSessionMintError-Bc9bc7Ai.cjs.map +0 -1
- package/dist/apps-BN7fWtSm.js.map +0 -1
- package/dist/apps-C1x5IKNQ.cjs.map +0 -1
- package/dist/authClient-BM4L8XEN.js.map +0 -1
- package/dist/authClient-DspK50e7.cjs.map +0 -1
- package/dist/constants-HccvU5kx.js.map +0 -1
- package/dist/constants-V9hAyPTo.cjs.map +0 -1
- package/dist/developerPortalClient-BcK9F-Fs.cjs.map +0 -1
- package/dist/developerPortalClient-CzCJ5sE3.js.map +0 -1
- package/dist/index-BGsP2QBc.d.ts +0 -10
- package/dist/index-CWowDl63.d.cts +0 -10
- package/dist/kaiAgent-D0MoKqXe.js.map +0 -1
- package/dist/kaiAgent-De2T6G4G.cjs.map +0 -1
- package/dist/management-BlMQnPNS.js.map +0 -1
- package/dist/management-dIMrTTpI.cjs.map +0 -1
- package/dist/middleware-DxGv7DG8.js.map +0 -1
- package/dist/middleware-vIaPDtQI.cjs.map +0 -1
- package/dist/storage-BL-TfHp8.cjs.map +0 -1
- package/dist/storage-DEJN8sw-.js.map +0 -1
- package/dist/store-2OyH1XOP.cjs.map +0 -1
- package/dist/store-HP0zRcLz.js.map +0 -1
- package/dist/validateConnectionStatus-DV00sDmu.js +0 -34
- package/dist/validateConnectionStatus-DV00sDmu.js.map +0 -1
- package/dist/validateConnectionStatus-ckaHcRx8.cjs +0 -51
- package/dist/validateConnectionStatus-ckaHcRx8.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authClient-DspK50e7.cjs","names":["z","createAbortError","z","z","z","KeboolaHttpHeader","HttpHeader","createOpenapiFetchClient","validateConnectionStatus","createGenericFetchClient"],"sources":["../src/clients/auth/device/device.ts","../src/clients/auth/login/schemas.ts","../src/clients/auth/login/login.ts","../src/clients/auth/manageTokens/manageTokens.ts","../src/utils/async/collectByCursor.ts","../src/clients/auth/me/me.ts","../src/clients/auth/mfa/schemas.ts","../src/clients/auth/mfa/mfa.ts","../src/clients/auth/password/schemas.ts","../src/clients/auth/password/password.ts","../src/clients/auth/pat/pat.ts","../src/clients/auth/pkce/pkce.ts","../src/clients/auth/saml/saml.ts","../src/clients/auth/session/session.ts","../src/clients/auth/sudo/sudo.ts","../src/clients/auth/token/schemas.ts","../src/clients/auth/token/token.ts","../src/clients/auth/webauthn/webauthn.ts","../src/clients/auth/authClient.ts"],"sourcesContent":["import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type {\n ApproveDeviceAuthorizationBody,\n CreateDeviceAuthorizationBody,\n GetDeviceAuthorizationTokenBody,\n} from './types';\n\nexport const createDevice = (client: AuthOpenApiFetchClient) => {\n const create = async (body: CreateDeviceAuthorizationBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/device', { body }, { signal });\n return data;\n };\n\n const approve = async (body: ApproveDeviceAuthorizationBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/device/approve', { body }, { signal });\n return data;\n };\n\n const getToken = async (body: GetDeviceAuthorizationTokenBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/device/token', { body }, { signal });\n return data;\n };\n\n return { create, approve, getToken };\n};\n","import * as z from 'zod';\n\nconst loginInputSchema = z.object({\n /** Also mints a session cookie; `Origin` must be the stack app URL, else 403. */\n browserMode: z.boolean().default(false),\n});\n\nexport const passwordInputSchema = loginInputSchema.extend({\n email: z.email(),\n password: z.string().min(1, 'Required'),\n});\n\nexport const oidcInputSchema = loginInputSchema.extend({\n grantType: z.enum(['google', 'microsoft']),\n idToken: z.string().min(1, 'Required'),\n});\n\n// No `browserMode`: as `boolean` it would widen the result; the method signature keeps the literal.\nexport type PasswordInput = Omit<z.input<typeof passwordInputSchema>, 'browserMode'>;\nexport type OidcInput = Omit<z.input<typeof oidcInputSchema>, 'browserMode'>;\n\nconst userSchema = z.object({\n id: z.number(),\n email: z.string(),\n name: z.string(),\n});\n\n// The backend omits `mfaRequired` on success; the `false` default makes it the union discriminant.\nconst loginSuccessBaseSchema = z.object({\n mfaRequired: z.literal(false).default(false),\n accessToken: z.string(),\n tokenType: z.string(),\n expiresIn: z.number(),\n user: userSchema,\n sessionId: z.string(),\n});\n\nexport const apiLoginSuccessSchema = loginSuccessBaseSchema.extend({\n refreshToken: z.string(),\n});\n\nexport const browserLoginSuccessSchema = loginSuccessBaseSchema.extend({\n refreshToken: z.null().optional(),\n});\n\n/**\n * MFA-challenge shape.\n *\n * - `mfaType` / `allowedMethods` stay `string` so a new method still parses.\n * - `webauthn` is `PublicKeyCredentialRequestOptionsJSON`: present, `null` or absent (TOTP).\n * - `unknown`: a stricter shape failing would block every MFA sign-in; the ceremony validates.\n */\nexport const mfaChallengeSchema = z.object({\n mfaRequired: z.literal(true),\n mfaType: z.string(),\n mfaToken: z.string(),\n expiresIn: z.number(),\n allowedMethods: z.array(z.string()),\n // zod 4 `z.unknown()` is not implicitly optional; TOTP challenges omit the key.\n webauthn: z.unknown().optional(),\n});\n\nexport const apiLoginResultSchema = z.union([apiLoginSuccessSchema, mfaChallengeSchema]);\nexport const browserLoginResultSchema = z.union([browserLoginSuccessSchema, mfaChallengeSchema]);\n\nexport type LoginUser = z.infer<typeof userSchema>;\nexport type MfaChallenge = z.infer<typeof mfaChallengeSchema>;\nexport type ApiLoginSuccess = z.infer<typeof apiLoginSuccessSchema>;\nexport type BrowserLoginSuccess = z.infer<typeof browserLoginSuccessSchema>;\nexport type ApiLoginResult = z.infer<typeof apiLoginResultSchema>;\nexport type BrowserLoginResult = z.infer<typeof browserLoginResultSchema>;\n\nexport type LoginResultFor<Browser extends boolean> = Browser extends true\n ? BrowserLoginResult\n : ApiLoginResult;\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { LoginResultFor, OidcInput, PasswordInput } from './schemas';\nimport {\n apiLoginResultSchema,\n browserLoginResultSchema,\n oidcInputSchema,\n passwordInputSchema,\n} from './schemas';\nimport type { LoginBody } from './types';\n\nexport const createLogin = (client: AuthOpenApiFetchClient) => {\n const _login = async (body: LoginBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/login', { body }, { signal });\n return data;\n };\n\n /**\n * Grants parse with our own schemas — the generated response type is unreliable.\n *\n * - `browserMode` picks the schema: only API mode carries a refresh token.\n * - `const Browser` keeps the literal; a `boolean` flag widens the result to the union.\n */\n const withPassword = async <const Browser extends boolean = false>(\n input: Omit<PasswordInput, 'browserMode'> & { browserMode?: Browser },\n signal?: AbortSignal,\n ) => {\n const { email, password, browserMode } = passwordInputSchema.parse(input);\n // Cast: omit fields outside the grant — the backend rejects null.\n const data = await _login(\n { grantType: 'password', email, password, browserMode } as LoginBody,\n signal,\n );\n const schema = browserMode ? browserLoginResultSchema : apiLoginResultSchema;\n return schema.parse(data) as LoginResultFor<Browser>;\n };\n\n const withOidc = async <const Browser extends boolean = false>(\n input: Omit<OidcInput, 'browserMode'> & { browserMode?: Browser },\n signal?: AbortSignal,\n ) => {\n const { grantType, idToken, browserMode } = oidcInputSchema.parse(input);\n // Cast: omit fields outside the grant — the backend rejects null.\n const data = await _login({ grantType, idToken, browserMode } as LoginBody, signal);\n const schema = browserMode ? browserLoginResultSchema : apiLoginResultSchema;\n return schema.parse(data) as LoginResultFor<Browser>;\n };\n\n // Unauthenticated. Carries the public OAuth client ids `withOidc` callers mint an id token with.\n const methods = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/methods', {}, { signal });\n return data;\n };\n\n return { withPassword, withOidc, methods };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { CreateManageTokenInput, RevokeManageTokenPath } from './types';\n\nexport const createManageTokens = (client: AuthOpenApiFetchClient) => {\n /**\n * Every Manage API token the caller owns, in two lists.\n *\n * - `tokens` — the ones the caller created by hand, newest first.\n * - `sessionTokens` — the ones a browser sign-in minted, newest first.\n * - A token carries `scopes: []` when it merely inherits the caller's own permissions.\n */\n const getAll = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/manage-tokens', {}, { signal });\n return data;\n };\n\n /**\n * Mint a token and read its secret.\n *\n * - `token` in the response is returned this once and is unreadable afterwards.\n * - `manageToken` is the same row the list endpoint returns.\n * - Needs an active sudo window; without one the endpoint answers `403`.\n * - Rate-limited per caller, answering `429` with `Retry-After`.\n */\n const create = async (input: CreateManageTokenInput, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/manage-tokens', { body: input }, { signal });\n return data;\n };\n\n /** Deleting an id that is already gone answers `404` — the call is not idempotent. */\n const revoke = async (id: RevokeManageTokenPath['id'], signal?: AbortSignal) => {\n await client.delete('/v1/auth/manage-tokens/{id}', { path: { id } }, { signal });\n };\n\n return { getAll, create, revoke };\n};\n","import { createAbortError } from '../createAbortError';\n\n/** One page of a cursor-paginated collection (`data` / `meta` / `links` envelope). */\nexport type CursorPage<T> = { data: T[]; links: { next: string | null } };\n\nexport type CollectByCursorOptions<T> = {\n fetchFrom: (\n after: string | undefined,\n pageSize?: number,\n signal?: AbortSignal,\n ) => Promise<CursorPage<T>>;\n pageSize?: number;\n limit?: number;\n signal?: AbortSignal;\n};\n\n/**\n * The `page[after]` cursor `links.next` carries; `undefined` on the last page.\n *\n * - Read from the link, not rebuilt from the last row, so the encoding stays the server's.\n * - Only the query is parsed, so a relative link works too.\n */\nexport const nextCursorOf = (next: string | null): string | undefined => {\n if (next === null) return undefined;\n const queryStart = next.indexOf('?');\n if (queryStart === -1) return undefined;\n const query = next.slice(queryStart + 1).split('#')[0];\n return new URLSearchParams(query).get('page[after]') ?? undefined;\n};\n\n/**\n * Collects items from a cursor-paginated endpoint — up to `limit`, or all when it is omitted.\n *\n * - Calls `fetchFrom` sequentially with the cursor each `links.next` carries, and hands it `pageSize`.\n * - Ends on a `null` `links.next`, or on a link without a `page[after]`.\n * - A cursor seen before means the server is looping; the walk throws rather than spin.\n */\nexport const collectByCursor = async <T>({\n fetchFrom,\n pageSize,\n limit,\n signal,\n}: CollectByCursorOptions<T>): Promise<T[]> => {\n if (signal?.aborted) throw createAbortError(signal.reason);\n if (limit !== undefined && limit < 0) throw new Error('Invalid collectByCursor limit');\n if (pageSize !== undefined && pageSize < 1) throw new Error('Invalid collectByCursor pageSize');\n\n const items: T[] = [];\n\n if (limit === 0) return items;\n\n let after: string | undefined;\n const seen = new Set<string>();\n\n do {\n const page = await fetchFrom(after, pageSize, signal);\n\n items.push(...page.data);\n\n if (limit !== undefined && items.length >= limit) return items.slice(0, limit);\n\n after = nextCursorOf(page.links.next);\n if (after !== undefined) {\n if (seen.has(after)) {\n throw new Error(`collectByCursor: links.next repeats the cursor ${after}`);\n }\n seen.add(after);\n }\n } while (after !== undefined);\n\n return items;\n};\n","import { collectByCursor } from '../../../utils';\nimport type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { GetMeMaintainersQuery, GetMeOrganizationsQuery, GetMeProjectsQuery } from './types';\n\n// Connection's `app.auth.me.page.max_limit` (`config/packages/auth_me.yaml`); above it the request is a 400.\nconst PAGE_LIMIT = 200;\n\n/**\n * The signed-in user and the organizations, maintainers and projects they reach.\n *\n * - Session-only: a PAT bearer answers `403`.\n * - `404` while the stack's `programmatic-auth` feature is off.\n */\nexport const createMe = (client: AuthOpenApiFetchClient) => {\n /** Each collection is a counted preview — its first page; the rest is behind the paged methods. */\n const get = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/me', {}, { signal });\n return data;\n };\n\n const getOrganizations = async (query?: GetMeOrganizationsQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/me/organizations', { query }, { signal });\n return data;\n };\n\n const getMaintainers = async (query?: GetMeMaintainersQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/me/maintainers', { query }, { signal });\n return data;\n };\n\n const getProjects = async (query?: GetMeProjectsQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/me/projects', { query }, { signal });\n return data;\n };\n\n /** Every organization the caller reaches, across all pages. */\n const getAllOrganizations = (signal?: AbortSignal) =>\n collectByCursor({\n pageSize: PAGE_LIMIT,\n signal,\n fetchFrom: (after, limit, pageSignal) =>\n getOrganizations({ page: { limit, after } }, pageSignal),\n });\n\n /** Every project the caller can open, across all pages. */\n const getAllProjects = (signal?: AbortSignal) =>\n collectByCursor({\n pageSize: PAGE_LIMIT,\n signal,\n fetchFrom: (after, limit, pageSignal) => getProjects({ page: { limit, after } }, pageSignal),\n });\n\n return {\n get,\n getOrganizations,\n getMaintainers,\n getProjects,\n getAllOrganizations,\n getAllProjects,\n };\n};\n","import * as z from 'zod';\n\nimport type { VerifyMfaType } from './types';\n\n/**\n * Methods `POST /v1/auth/mfa` accepts, also reported in a challenge's `mfaType` / `allowedMethods`.\n *\n * - `satisfies` fails the build if the generated spec renames or drops one.\n * - A challenge may name a method not listed here, so the wire fields stay `string`.\n */\nexport const MFA_METHOD = {\n totp: 'totp',\n webauthn: 'webauthn',\n recoveryCode: 'recovery_code',\n} as const satisfies Record<string, VerifyMfaType>;\n\nexport type MfaMethod = (typeof MFA_METHOD)[keyof typeof MFA_METHOD];\n\nexport const mfaCodeInputSchema = z.object({\n mfaToken: z.string(),\n type: z.enum([MFA_METHOD.totp, MFA_METHOD.recoveryCode]),\n code: z.string().min(1, 'Required'),\n});\n\nexport const mfaWebauthnInputSchema = z.object({\n mfaToken: z.string(),\n assertion: z.string(),\n});\n\nexport const totpVerifyInputSchema = z.object({\n code: z.string().min(1, 'Required'),\n // Mirrors the backend default; the generated type wrongly marks it required.\n revokeOtherSessions: z.boolean().default(false),\n});\n\nexport type MfaCodeInput = z.infer<typeof mfaCodeInputSchema>;\nexport type MfaWebauthnInput = z.infer<typeof mfaWebauthnInputSchema>;\nexport type TotpVerifyInput = z.input<typeof totpVerifyInputSchema>;\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { MfaCodeInput, MfaWebauthnInput, TotpVerifyInput } from './schemas';\nimport {\n MFA_METHOD,\n mfaCodeInputSchema,\n mfaWebauthnInputSchema,\n totpVerifyInputSchema,\n} from './schemas';\nimport type { DisableTotpPath, VerifyMfaBody } from './types';\n\nexport const createMfa = (client: AuthOpenApiFetchClient) => {\n const _verify = async (body: VerifyMfaBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/mfa', { body }, { signal });\n return data;\n };\n\n const verifyWithCode = async (input: MfaCodeInput, signal?: AbortSignal) => {\n const { mfaToken, type, code } = mfaCodeInputSchema.parse(input);\n // Cast: omit fields outside the type — the backend rejects null.\n return _verify({ mfaToken, type, code } as VerifyMfaBody, signal);\n };\n\n const verifyWithWebauthn = async (input: MfaWebauthnInput, signal?: AbortSignal) => {\n const { mfaToken, assertion } = mfaWebauthnInputSchema.parse(input);\n // Cast: omit fields outside the type — the backend rejects null.\n return _verify({ mfaToken, type: MFA_METHOD.webauthn, assertion } as VerifyMfaBody, signal);\n };\n\n const regenerateRecoveryCodes = async (signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/mfa/recovery-codes', {}, { signal });\n return data;\n };\n\n // TOTP enrollment for the signed-in user (account MFA management). `setup` returns the shared\n // secret + `otpauthUri` to render as a QR; `verify` confirms the first code and hands back the\n // one-time recovery codes plus the new factor `id`; `disable` removes a factor by that `id`.\n const totp = {\n setup: async (signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/mfa/totp', {}, { signal });\n return data;\n },\n verify: async (input: TotpVerifyInput, signal?: AbortSignal) => {\n const body = totpVerifyInputSchema.parse(input);\n const { data } = await client.post('/v1/auth/mfa/totp/verify', { body }, { signal });\n return data;\n },\n disable: async (id: DisableTotpPath['id'], signal?: AbortSignal) => {\n await client.delete('/v1/auth/mfa/totp/{id}', { path: { id } }, { signal });\n },\n };\n\n return { verifyWithCode, verifyWithWebauthn, regenerateRecoveryCodes, totp };\n};\n","import * as z from 'zod';\n\nexport const resetRequestInputSchema = z.object({\n email: z.email(),\n});\n\nexport const resetInputSchema = z.object({\n // The single-use reset token (`kbc_pr_…`) delivered by e-mail.\n token: z.string().min(1, 'Required'),\n newPassword: z.string().min(1, 'Required'),\n // Defaults to true, matching the backend. Password policy is backend-enforced.\n revokeSessions: z.boolean().default(true),\n});\n\nexport const changeInputSchema = z.object({\n currentPassword: z.string().min(1, 'Required'),\n newPassword: z.string().min(1, 'Required'),\n // Defaults to true on parse, so the SDK always sends it (matches the backend default).\n revokeOtherSessions: z.boolean().default(true),\n});\n\nexport type ResetRequestInput = z.infer<typeof resetRequestInputSchema>;\n// `z.input`, not `z.infer`: callers may omit `revokeSessions`.\nexport type ResetInput = z.input<typeof resetInputSchema>;\n// `z.input`: callers may omit `revokeOtherSessions`.\nexport type ChangePasswordInput = z.input<typeof changeInputSchema>;\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { ChangePasswordInput, ResetInput, ResetRequestInput } from './schemas';\nimport { changeInputSchema, resetInputSchema, resetRequestInputSchema } from './schemas';\n\nexport const createPassword = (client: AuthOpenApiFetchClient) => {\n // Fire-and-forget from the caller's view: the backend always answers 202 and reveals nothing about\n // whether the account exists. Resolves on 202; rejects on 429 (rate limited) or 400.\n const resetRequest = async (input: ResetRequestInput, signal?: AbortSignal) => {\n const body = resetRequestInputSchema.parse(input);\n await client.post('/v1/auth/password/reset-request', { body }, { signal });\n };\n\n // Applies the new password for the given reset token. Resolves on 204; rejects on 400 (invalid or\n // expired token, or a password that violates the policy).\n const reset = async (input: ResetInput, signal?: AbortSignal) => {\n // `revokeSessions` is defaulted by the schema, so the parsed body always carries all three\n // fields the endpoint requires — no field omission, no type assertion.\n const body = resetInputSchema.parse(input);\n await client.post('/v1/auth/password/reset', { body }, { signal });\n };\n\n // Changes the password for the signed-in user (bearer session). Resolves on 204; rejects on 400\n // (wrong current password, or a new password that violates the policy). Password policy is\n // backend-enforced.\n const change = async (input: ChangePasswordInput, signal?: AbortSignal) => {\n const body = changeInputSchema.parse(input);\n await client.post('/v1/auth/password/change', { body }, { signal });\n };\n\n return { resetRequest, reset, change };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type {\n CreatePatBodyRaw,\n CreatePatInput,\n ExchangePatBodyRaw,\n ExchangePatInput,\n PatScopeInput,\n RevokePatPath,\n} from './types';\n\n/**\n * Drop the keys whose value is `null` or `undefined`, and only those — an empty array or string is\n * a value the caller meant.\n *\n * The spec documents each optional PAT field as \"Omit (do not send `null`)\". Callers hold nullables\n * either way — an empty expiry picker, an untouched switch — so the rule lives here rather than at\n * every call site, where one of them would forget it.\n */\nconst withoutNullish = (entries: Record<string, unknown>): Record<string, unknown> =>\n Object.fromEntries(Object.entries(entries).filter(([, value]) => value != null));\n\n/** `undefined` for a scope that narrows nothing — which is what an absent `scope` already asks for. */\nconst toScope = (scope: PatScopeInput | null | undefined): Record<string, unknown> | undefined => {\n if (scope == null) return undefined;\n\n const payload = withoutNullish({ projects: scope.projects, readOnly: scope.readOnly });\n return Object.keys(payload).length > 0 ? payload : undefined;\n};\n\n// `as unknown as` at these two boundaries: `CreatePatBodyRaw` and `ExchangePatBodyRaw` both demand\n// the keys the endpoint documents as omittable, so the honest body is not expressible in either.\nconst toCreateBody = ({ name, expiresIn, scope }: CreatePatInput): CreatePatBodyRaw =>\n ({\n name,\n ...withoutNullish({ expiresIn, scope: toScope(scope) }),\n }) as unknown as CreatePatBodyRaw;\n\nconst toExchangeBody = ({ expiresIn, scope }: ExchangePatInput): ExchangePatBodyRaw =>\n withoutNullish({ expiresIn, scope: toScope(scope) }) as unknown as ExchangePatBodyRaw;\n\nexport const createPat = (client: AuthOpenApiFetchClient) => {\n const getAll = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/pat', {}, { signal });\n return data;\n };\n\n const create = async (input: CreatePatInput, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/pat', { body: toCreateBody(input) }, { signal });\n return data;\n };\n\n /**\n * Issue a child token from the one this request is authorized with.\n *\n * A child only ever attenuates its parent, so an empty input is a full-inheritance copy.\n */\n const exchange = async (input: ExchangePatInput = {}, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/v1/auth/pat/exchange',\n { body: toExchangeBody(input) },\n { signal },\n );\n return data;\n };\n\n const revoke = async (id: RevokePatPath['id'], signal?: AbortSignal) => {\n await client.delete('/v1/auth/pat/{id}', { path: { id } }, { signal });\n };\n\n return { create, exchange, revoke, getAll };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { GetPkceTokenBody } from './types';\n\nexport const createPkce = (client: AuthOpenApiFetchClient) => {\n const getToken = async (body: GetPkceTokenBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/pkce/token', { body }, { signal });\n return data;\n };\n\n return { getToken };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { AssertSamlBody, InitiateSamlBody } from './types';\n\nexport const createSaml = (client: AuthOpenApiFetchClient) => {\n const assert = async (body: AssertSamlBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/saml/assert', { body }, { signal });\n return data;\n };\n\n const initiate = async (body?: InitiateSamlBody, signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/saml/initiate', { body }, { signal });\n return data;\n };\n\n return { assert, initiate };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { RevokeSessionPath } from './types';\n\nexport const createSession = (client: AuthOpenApiFetchClient) => {\n const getAll = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/sessions', {}, { signal });\n return data;\n };\n\n const revoke = async (sessionId: RevokeSessionPath['sessionId'], signal?: AbortSignal) => {\n await client.delete('/v1/auth/sessions/{sessionId}', { path: { sessionId } }, { signal });\n };\n\n const revokeAll = async (signal?: AbortSignal) => {\n await client.delete('/v1/auth/sessions', {}, { signal });\n };\n\n return { getAll, revoke, revokeAll };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { SudoBody, SudoBodyRaw } from './types';\n\nexport const createSudo = (client: AuthOpenApiFetchClient) => {\n const verify = async (body: SudoBody, signal?: AbortSignal) => {\n // The generated request body (`SudoBodyRaw`) describes a payload the endpoint rejects — see the\n // `SudoBody` docs. Assert at this one boundary rather than making every caller send the invalid\n // shape; the real fix is the `#[OA\\Schema]`-vs-object mismatch on the backend, upstream of the\n // generated schema. Same pattern as `syncActionsClient`'s `PostActionsBodyRaw`.\n const { data } = await client.post(\n '/v1/auth/sudo',\n { body: body as unknown as SudoBodyRaw },\n { signal },\n );\n return data;\n };\n\n const challenge = async (signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/sudo/challenge', {}, { signal });\n return data;\n };\n\n return { verify, challenge };\n};\n","import * as z from 'zod';\n\nexport const refreshTokenInputSchema = z.object({\n refreshToken: z.string().min(1, 'Required'),\n});\n\nexport const refreshSessionInputSchema = z.object({\n // The session id the login response carried. The refresh token itself stays in a server-side\n // channel bound to the session cookie, so the client never holds it.\n sessionId: z.string().min(1, 'Required'),\n});\n\nexport type RefreshTokenInput = z.infer<typeof refreshTokenInputSchema>;\nexport type RefreshSessionInput = z.infer<typeof refreshSessionInputSchema>;\n","import { HttpHeader } from '../../../fetchClient';\nimport { KeboolaHttpHeader } from '../../../internal';\nimport type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { RefreshSessionInput, RefreshTokenInput } from './schemas';\nimport { refreshSessionInputSchema, refreshTokenInputSchema } from './schemas';\nimport type { RefreshTokenBody, RefreshTokenPartialBody, RevokeTokenBody } from './types';\n\nexport const createToken = (client: AuthOpenApiFetchClient) => {\n const _refresh = async (\n body: RefreshTokenPartialBody,\n { signal, headers }: { signal?: AbortSignal; headers?: Record<string, string> } = {},\n ) => {\n const { data } = await client.post(\n '/v1/auth/token/refresh',\n { body: body as RefreshTokenBody },\n { signal, headers },\n );\n\n return data;\n };\n\n /** API mode: rotates the pair. The response carries the next refresh token. */\n const refreshWithToken = async (input: RefreshTokenInput, signal?: AbortSignal) => {\n const { refreshToken } = refreshTokenInputSchema.parse(input);\n return _refresh({ refreshToken }, { signal });\n };\n\n /**\n * Browser/cookie mode: renews the access token off the session cookie.\n *\n * - The `X-KBC-CSRF` header opts in; without it the request is API mode.\n * - Its value is a constant: its presence is the CSRF proof (custom headers need a preflight).\n * - No refresh token in the response; it stays server-side, bound to the cookie.\n * - Works only from the stack's own origin (fetch's default `same-origin` credentials).\n * - An `Authorization` header rejects the request — use a client with no auth middleware.\n */\n const refreshWithSession = async (input: RefreshSessionInput, signal?: AbortSignal) => {\n const { sessionId } = refreshSessionInputSchema.parse(input);\n return _refresh({ sessionId }, { signal, headers: { [KeboolaHttpHeader.CSRF]: '1' } });\n };\n\n /**\n * Introspects an authenticated session token.\n *\n * @param token - Optional token to introspect (`Authorization: Bearer`); a middleware-set header wins.\n */\n const introspect = async (token?: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/v1/auth/token/introspect',\n {},\n { signal, headers: token ? { [HttpHeader.AUTHORIZATION]: `Bearer ${token}` } : undefined },\n );\n return data;\n };\n\n const revoke = async (body: RevokeTokenBody, signal?: AbortSignal) => {\n await client.post('/v1/auth/token/revoke', { body }, { signal });\n };\n\n return { refreshWithToken, refreshWithSession, introspect, revoke };\n};\n","import type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type {\n RegisterWebauthnInput,\n RegisterWebauthnOptionsResult,\n RemoveWebauthnInput,\n} from './types';\n\nexport const createWebauthn = (client: AuthOpenApiFetchClient) => {\n const getAll = async (signal?: AbortSignal) => {\n const { data } = await client.get('/v1/auth/webauthn', {}, { signal });\n return data;\n };\n\n const registerOptions = async (signal?: AbortSignal) => {\n const { data } = await client.post('/v1/auth/webauthn/register/options', {}, { signal });\n // Cast: the spec types the free-form `options` object as `Record<string, never>`.\n return data as RegisterWebauthnOptionsResult;\n };\n\n const register = async (\n { credential, deviceName = null, revokeOtherSessions = false }: RegisterWebauthnInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/v1/auth/webauthn/register',\n { body: { credential, deviceName, revokeOtherSessions } },\n { signal },\n );\n return data;\n };\n\n // `revokeOtherSessions` signs every other session out along with the credential — the calling\n // session and personal access tokens survive. Omitted means the backend's own `false`.\n const remove = async ({ id, ...query }: RemoveWebauthnInput, signal?: AbortSignal) => {\n await client.delete('/v1/auth/webauthn/{id}', { path: { id }, query }, { signal });\n };\n\n return { getAll, registerOptions, register, remove };\n};\n","import { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\nimport { validateConnectionStatus } from '../validateConnectionStatus';\n\nimport type { paths } from './__generated__/schema';\nimport { createDevice } from './device';\nimport { createLogin } from './login';\nimport { createManageTokens } from './manageTokens';\nimport { createMe } from './me';\nimport { createMfa } from './mfa';\nimport { createPassword } from './password';\nimport { createPat } from './pat';\nimport { createPkce } from './pkce';\nimport { createSaml } from './saml';\nimport { createSession } from './session';\nimport { createSudo } from './sudo';\nimport { createToken } from './token';\nimport { createWebauthn } from './webauthn';\n\nexport type AuthClientInitOptions = Omit<ClientInitOptions, 'auth'>;\n\nexport type AuthOpenApiFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport const createAuthClient = ({ baseUrl, middlewares }: AuthClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n validateStatus: validateConnectionStatus,\n });\n const genericClient = createGenericFetchClient({\n baseUrl,\n middlewares,\n validateStatus: validateConnectionStatus,\n });\n\n // Host-level: Connection serves the storage, management and auth APIs off one baseUrl, so this\n // probes the host, not this API's prefix — `/v2/storage/health-check`, `/manage/health-check`\n // and `/v1/auth/health-check` all 404.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n login: createLogin(client),\n mfa: createMfa(client),\n password: createPassword(client),\n saml: createSaml(client),\n pat: createPat(client),\n manageTokens: createManageTokens(client),\n me: createMe(client),\n device: createDevice(client),\n sudo: createSudo(client),\n pkce: createPkce(client),\n session: createSession(client),\n token: createToken(client),\n webauthn: createWebauthn(client),\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants-HccvU5kx.js","names":[],"sources":["../src/constants/manageErrorCodes.ts","../src/constants/projectFeatures.ts","../src/constants/projectMetrics.ts","../src/constants/stackFeatures.ts","../src/constants/adminFeatures.ts","../src/constants/backends.ts","../src/constants/stacks.ts","../src/constants/index.ts"],"sourcesContent":["export const ManageErrorCode = {\n ProgrammaticProjectInvalidClaim: 'manage.programmaticProjects.invalidClaim',\n ProgrammaticProjectRateLimited: 'manage.programmaticProjects.rateLimited',\n ProgrammaticProjectProvisioningFailed: 'manage.programmaticProjects.provisioningFailed',\n} as const;\n\nexport type ManageErrorCode = (typeof ManageErrorCode)[keyof typeof ManageErrorCode];\n","export const ProjectFeature = {\n SandboxesPythonSpark: 'sandboxes-python-spark',\n GcpMarketplaceByodb: 'gcp-marketplace-byodb',\n GcpMarketplaceByodbEmpty: 'gcp-marketplace-byodb-empty',\n FrontendLogin: 'frontend-login',\n ComponentsMcp: 'ai-components-mcp',\n PayAsYouGo: 'pay-as-you-go',\n ShowVault: 'show-vault',\n DeprecatedGoogleDriveTranspose: 'deprecated-google-drive-transpose',\n SandboxesPersistentVolume: 'sandboxes-persistent-volume',\n WorkspaceSnowflakeDynamicBackendSize: 'workspace-snowflake-dynamic-backend-size',\n DynamicBackendJobs: 'dynamic-backend-jobs',\n HasSimplifiedComponents: 'has-simplified-components',\n FlowMigration: 'flow-migration',\n FlowMigrationBatch1: 'flow-migration-batch1',\n FlowMigrationBatch2: 'flow-migration-batch2',\n FlowMigrationBatch3: 'flow-migration-batch3',\n OracleTransformations: 'oracle-transformations',\n ExternalBuckets: 'external-buckets',\n InputMappingReadOnlyStorage: 'input-mapping-read-only-storage',\n Artifacts: 'artifacts',\n SnowflakePartnerConnect: 'snowflake-partner-connect',\n SnowflakePartnerConnectLimited: 'snowflake-partner-connect-limited',\n NewNativeTypes: 'new-native-types',\n DisableLegacyBucketPrefix: 'disable-legacy-bucket-prefix',\n SoxProtectedDefaultBranch: 'protected-default-branch',\n StorageBranches: 'storage-branches',\n DataStreams: 'data-streams',\n AiLineage: 'ai-lineage',\n AiComponentSuggestion: 'ai-component-suggestion',\n AgentChat: 'agent-chat',\n AgentChatUseKaiAgentUrl: 'agent-chat-use-kai-agent-url',\n AgentChatModelTiers: 'agent-chat-model-tiers',\n BucketExposure: 'bucket-exposure',\n WebMcp: 'webmcp',\n SnowflakeRegisterExternalSecureDataShare: 'snowflake-register-external-secure-data-share',\n DirectGrantOutputMapping: 'direct-grant-output-mapping',\n EditorWithoutReadOnlyStorage: 'editor-without-read-only-storage',\n BranchesMergeRequests: 'branches-merge-requests',\n DenyExternalDatasetInputMapping: 'deny-external-dataset-input-mapping',\n AllowSharedSnowflakeAccess: 'allow-shared-snowflake-access',\n BigqueryDefaultImView: 'bigquery-default-im-view',\n BigqueryPolicyTags: 'bigquery-policy-tags',\n DataAppsDisabled: 'data-apps-disabled',\n RowLevelSecurity: 'row-level-security',\n} as const;\n\nexport type ProjectFeature = (typeof ProjectFeature)[keyof typeof ProjectFeature];\n","/** The metrics Connection snapshots for every project; the keys of a project's `metrics`. */\nexport const ProjectMetric = {\n AdminsCount: 'kbc.adminsCount',\n DataSizeBytes: 'storage.dataSizeBytes',\n RowsCount: 'storage.rowsCount',\n} as const;\n\nexport type ProjectMetric = (typeof ProjectMetric)[keyof typeof ProjectMetric];\n","export const StackFeature = {\n SingleTenant: 'single-tenant',\n CanaryStack: 'canary-stack',\n DisableJuliaAndR: 'disable-julia-and-r',\n SamlRoles: 'saml-roles',\n NewOauthService: 'new-oauth-service-enabled',\n DataAppsEnforceAuth: 'data-apps-enforce-auth',\n AllowAi: 'allow-ai',\n UserWorkspaceDynamicBackendEnabled: 'user-workspace-dynamic-backend-enabled',\n McpEnabled: 'mcp-enabled',\n KaiEnabled: 'kai-enabled',\n AgentProvisioning: 'agent-provisioning',\n SandboxesPythonSpark: 'sandboxes-python-spark',\n} as const;\n\nexport type StackFeature = (typeof StackFeature)[keyof typeof StackFeature];\n","export const AdminFeature = {\n DisableAutosavingInFlows: 'disable-autosaving-in-flows',\n CanUpdateProjectSettings: 'can-update-project-settings',\n CanManageFeatures: 'can-manage-features',\n CanManageUsers: 'can-manage-users',\n CanManageDeletedProjects: 'can-manage-deleted-projects',\n CanManageProjectLimits: 'can-manage-project-limits',\n CanManageMaintainers: 'can-manage-maintainers',\n CanDisableProjects: 'can-disable-projects',\n CanReactivateWorkspaces: 'can-reactivate-workspaces',\n PowerUser: 'power-user',\n MuteSoundNotifications: 'mute-sound-notifications',\n} as const;\n\nexport type AdminFeature = (typeof AdminFeature)[keyof typeof AdminFeature];\n","export const Backend = {\n Snowflake: 'snowflake',\n Bigquery: 'bigquery',\n} as const;\n\nexport type Backend = (typeof Backend)[keyof typeof Backend];\n","export const Provider = {\n Aws: 'aws',\n Azure: 'azure',\n Gcp: 'gcp',\n} as const;\n\nexport type Provider = (typeof Provider)[keyof typeof Provider];\n\nexport const Continent = {\n Us: 'us',\n Europe: 'europe',\n} as const;\n\nexport type Continent = (typeof Continent)[keyof typeof Continent];\n\nexport type KeboolaStack = {\n id: string;\n host: string;\n isSingleTenant?: boolean;\n isTesting?: boolean;\n isPayg?: boolean;\n provider?: Provider;\n continent?: Continent;\n region?: string;\n isCanary?: boolean;\n};\n\nconst stacks = {\n NORTH_EUROPE_AZURE: {\n id: 'com-keboola-azure-north-europe',\n region: 'north-europe',\n host: 'connection.north-europe.azure.keboola.com',\n provider: 'azure',\n continent: 'europe',\n isPayg: true,\n },\n EU_CENTRAL_1_AWS: {\n id: 'kbc-eu-central-1',\n region: 'eu-central-1',\n host: 'connection.eu-central-1.keboola.com',\n provider: 'aws',\n continent: 'europe',\n },\n US_EAST_1_AWS: {\n id: 'kbc-us-east-1',\n region: 'us-east-1',\n host: 'connection.keboola.com',\n provider: 'aws',\n continent: 'us',\n },\n EUROPE_WEST3_GCP: {\n id: 'com-keboola-gcp-europe-west3',\n region: 'europe-west3',\n host: 'connection.europe-west3.gcp.keboola.com',\n provider: 'gcp',\n continent: 'europe',\n },\n US_EAST_4_GCP: {\n id: 'com-keboola-gcp-us-east4',\n region: 'us-east4',\n host: 'connection.us-east4.gcp.keboola.com',\n provider: 'gcp',\n continent: 'us',\n isPayg: true,\n },\n\n /* PRIVATE SINGLE TENANT STACKS\n ---------------------------- */\n HCI: {\n id: 'cloud-keboola-hci',\n host: 'connection.hci.keboola.cloud',\n isSingleTenant: true,\n },\n CSAS_PROD: {\n id: 'cloud-keboola-cs',\n host: 'connection.cs.keboola.cloud',\n isSingleTenant: true,\n },\n CSAS_TEST: {\n id: 'cloud-keboola-cs-test',\n host: 'connection.cs-test.keboola.cloud',\n isSingleTenant: true,\n },\n INNOGY: {\n id: 'cloud-keboola-innogy-hub',\n host: 'connection.innogy-hub.keboola.cloud',\n isSingleTenant: true,\n },\n GROUPON: {\n id: 'cloud-keboola-groupon',\n host: 'connection.groupon.keboola.cloud',\n isSingleTenant: true,\n },\n CREDIT_INFO: {\n id: 'cloud-keboola-creditinfo',\n host: 'connection.creditinfo.keboola.cloud',\n isSingleTenant: true,\n },\n COATES: {\n id: 'cloud-keboola-coates',\n host: 'connection.coates.keboola.cloud',\n isSingleTenant: true,\n },\n SLSP: {\n id: 'cloud-keboola-slsp',\n host: 'connection.slsp.keboola.cloud',\n isSingleTenant: true,\n },\n HCKZ: {\n id: 'cloud-keboola-hckz',\n host: 'connection.hckz.keboola.cloud',\n isSingleTenant: true,\n },\n PASHA: {\n id: 'cloud-keboola-pasha',\n host: 'connection.pasha.keboola.cloud',\n isSingleTenant: true,\n },\n RBI: {\n id: 'cloud-keboola-rbi',\n host: 'connection.rbi.keboola.cloud',\n isSingleTenant: true,\n },\n NAH: {\n id: 'cloud-keboola-nah',\n host: 'connection.nah.keboola.cloud',\n isSingleTenant: true,\n provider: 'azure',\n continent: 'us',\n },\n\n /* DEV STACKS\n ---------------------------- */\n DEV_US_CENTRAL_1_GCP: {\n id: 'dev-keboola-gcp-us-central1',\n region: 'us-central1',\n host: 'connection.us-central1.gcp.keboola.dev',\n provider: 'gcp',\n continent: 'us',\n isTesting: true,\n },\n DEV_EU_WEST_1_AWS: {\n id: 'dev-keboola-aws-eu-west-1',\n region: 'eu-west-1',\n host: 'connection.eu-west-1.aws.keboola.dev',\n provider: 'aws',\n continent: 'europe',\n isTesting: true,\n },\n DEV_US_EAST_1_AWS_E2E: {\n id: 'dev-keboola-aws-us-east-1-e2e',\n region: 'us-east-1',\n host: 'connection.e2e.us-east-1.aws.keboola.dev',\n provider: 'aws',\n continent: 'us',\n isTesting: true,\n },\n DEV_US_EAST_2_AZURE: {\n id: 'kbc-testing-azure-east-us-2',\n region: 'east-us-2',\n host: 'connection.east-us-2.azure.keboola-testing.com',\n provider: 'azure',\n continent: 'us',\n isTesting: true,\n },\n DEV_KEBOOLA_CANARY_ORION: {\n id: 'dev-keboola-canary-orion',\n region: 'europe-west3',\n host: 'connection.canary-orion.keboola.dev',\n provider: 'gcp',\n continent: 'europe',\n isCanary: true,\n },\n} satisfies Record<string, Readonly<KeboolaStack>>;\n\n/**\n * Every stack the platform knows, keyed by name.\n *\n * - The key set is literal, so a name that is not in the object is a compile error at the call site\n * rather than an `undefined` to fall back from.\n * - The value type stays the uniform `KeboolaStack`, so `stack.isCanary` reads on any entry, not\n * only on the ones that carry the flag.\n */\nexport const STACKS: Record<keyof typeof stacks, Readonly<KeboolaStack>> = stacks;\n","export { ComponentId } from './componentId';\nexport { ManageErrorCode } from './manageErrorCodes';\nexport { ProjectFeature } from './projectFeatures';\nexport { ProjectMetric } from './projectMetrics';\nexport { StackFeature } from './stackFeatures';\nexport { AdminFeature } from './adminFeatures';\nexport { Backend } from './backends';\nexport { AdminRole } from './adminRoles';\nexport { ServiceId } from './serviceIds';\nexport { Continent, Provider, STACKS } from './stacks';\nexport type { KeboolaStack } from './stacks';\n\nexport const URLS = {\n USER_DOCUMENTATION: 'https://help.keboola.com',\n COMPONENTS: 'https://components.keboola.com',\n DEVELOPERS_DOCUMENTATION: 'https://developers.keboola.com',\n ACADEMY: 'https://academy.keboola.com',\n SALES_CONTACT_FORM: 'https://keboola.com/contact',\n SNOWFLAKE: 'https://www.snowflake.com',\n SNOWFLAKE_DOCS: 'https://docs.snowflake.com',\n MCP: 'https://www.keboola.com/mcp',\n CLI: 'https://www.keboola.com/cli',\n NODE_JS: 'https://nodejs.org/en',\n CLAUDE_CONNECTORS: 'https://claude.ai/customize/connectors',\n // Vendor \"how do I get this client\" pages linked from the connect surfaces.\n CLIENT_CLAUDE_CODE_QUICKSTART: 'https://code.claude.com/docs/en/quickstart',\n CLIENT_CLAUDE_AI: 'https://claude.ai',\n CLIENT_CLAUDE_DESKTOP_DOWNLOAD: 'https://claude.com/download',\n CLIENT_CURSOR_QUICKSTART: 'https://cursor.com/docs/get-started/quickstart',\n CLIENT_VS_CODE_SETUP: 'https://code.visualstudio.com/docs/setup/setup-overview',\n CLIENT_CODEX_QUICKSTART: 'https://developers.openai.com/codex/cli',\n CLIENT_CHATGPT_DOWNLOAD: 'https://chatgpt.com/download',\n CLIENT_MAKE_GET_STARTED: 'https://help.make.com/get-started',\n CLIENT_DEVIN_DESKTOP: 'https://docs.devin.ai/desktop/getting-started',\n} as const;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants-V9hAyPTo.cjs","names":[],"sources":["../src/constants/manageErrorCodes.ts","../src/constants/projectFeatures.ts","../src/constants/projectMetrics.ts","../src/constants/stackFeatures.ts","../src/constants/adminFeatures.ts","../src/constants/backends.ts","../src/constants/stacks.ts","../src/constants/index.ts"],"sourcesContent":["export const ManageErrorCode = {\n ProgrammaticProjectInvalidClaim: 'manage.programmaticProjects.invalidClaim',\n ProgrammaticProjectRateLimited: 'manage.programmaticProjects.rateLimited',\n ProgrammaticProjectProvisioningFailed: 'manage.programmaticProjects.provisioningFailed',\n} as const;\n\nexport type ManageErrorCode = (typeof ManageErrorCode)[keyof typeof ManageErrorCode];\n","export const ProjectFeature = {\n SandboxesPythonSpark: 'sandboxes-python-spark',\n GcpMarketplaceByodb: 'gcp-marketplace-byodb',\n GcpMarketplaceByodbEmpty: 'gcp-marketplace-byodb-empty',\n FrontendLogin: 'frontend-login',\n ComponentsMcp: 'ai-components-mcp',\n PayAsYouGo: 'pay-as-you-go',\n ShowVault: 'show-vault',\n DeprecatedGoogleDriveTranspose: 'deprecated-google-drive-transpose',\n SandboxesPersistentVolume: 'sandboxes-persistent-volume',\n WorkspaceSnowflakeDynamicBackendSize: 'workspace-snowflake-dynamic-backend-size',\n DynamicBackendJobs: 'dynamic-backend-jobs',\n HasSimplifiedComponents: 'has-simplified-components',\n FlowMigration: 'flow-migration',\n FlowMigrationBatch1: 'flow-migration-batch1',\n FlowMigrationBatch2: 'flow-migration-batch2',\n FlowMigrationBatch3: 'flow-migration-batch3',\n OracleTransformations: 'oracle-transformations',\n ExternalBuckets: 'external-buckets',\n InputMappingReadOnlyStorage: 'input-mapping-read-only-storage',\n Artifacts: 'artifacts',\n SnowflakePartnerConnect: 'snowflake-partner-connect',\n SnowflakePartnerConnectLimited: 'snowflake-partner-connect-limited',\n NewNativeTypes: 'new-native-types',\n DisableLegacyBucketPrefix: 'disable-legacy-bucket-prefix',\n SoxProtectedDefaultBranch: 'protected-default-branch',\n StorageBranches: 'storage-branches',\n DataStreams: 'data-streams',\n AiLineage: 'ai-lineage',\n AiComponentSuggestion: 'ai-component-suggestion',\n AgentChat: 'agent-chat',\n AgentChatUseKaiAgentUrl: 'agent-chat-use-kai-agent-url',\n AgentChatModelTiers: 'agent-chat-model-tiers',\n BucketExposure: 'bucket-exposure',\n WebMcp: 'webmcp',\n SnowflakeRegisterExternalSecureDataShare: 'snowflake-register-external-secure-data-share',\n DirectGrantOutputMapping: 'direct-grant-output-mapping',\n EditorWithoutReadOnlyStorage: 'editor-without-read-only-storage',\n BranchesMergeRequests: 'branches-merge-requests',\n DenyExternalDatasetInputMapping: 'deny-external-dataset-input-mapping',\n AllowSharedSnowflakeAccess: 'allow-shared-snowflake-access',\n BigqueryDefaultImView: 'bigquery-default-im-view',\n BigqueryPolicyTags: 'bigquery-policy-tags',\n DataAppsDisabled: 'data-apps-disabled',\n RowLevelSecurity: 'row-level-security',\n} as const;\n\nexport type ProjectFeature = (typeof ProjectFeature)[keyof typeof ProjectFeature];\n","/** The metrics Connection snapshots for every project; the keys of a project's `metrics`. */\nexport const ProjectMetric = {\n AdminsCount: 'kbc.adminsCount',\n DataSizeBytes: 'storage.dataSizeBytes',\n RowsCount: 'storage.rowsCount',\n} as const;\n\nexport type ProjectMetric = (typeof ProjectMetric)[keyof typeof ProjectMetric];\n","export const StackFeature = {\n SingleTenant: 'single-tenant',\n CanaryStack: 'canary-stack',\n DisableJuliaAndR: 'disable-julia-and-r',\n SamlRoles: 'saml-roles',\n NewOauthService: 'new-oauth-service-enabled',\n DataAppsEnforceAuth: 'data-apps-enforce-auth',\n AllowAi: 'allow-ai',\n UserWorkspaceDynamicBackendEnabled: 'user-workspace-dynamic-backend-enabled',\n McpEnabled: 'mcp-enabled',\n KaiEnabled: 'kai-enabled',\n AgentProvisioning: 'agent-provisioning',\n SandboxesPythonSpark: 'sandboxes-python-spark',\n} as const;\n\nexport type StackFeature = (typeof StackFeature)[keyof typeof StackFeature];\n","export const AdminFeature = {\n DisableAutosavingInFlows: 'disable-autosaving-in-flows',\n CanUpdateProjectSettings: 'can-update-project-settings',\n CanManageFeatures: 'can-manage-features',\n CanManageUsers: 'can-manage-users',\n CanManageDeletedProjects: 'can-manage-deleted-projects',\n CanManageProjectLimits: 'can-manage-project-limits',\n CanManageMaintainers: 'can-manage-maintainers',\n CanDisableProjects: 'can-disable-projects',\n CanReactivateWorkspaces: 'can-reactivate-workspaces',\n PowerUser: 'power-user',\n MuteSoundNotifications: 'mute-sound-notifications',\n} as const;\n\nexport type AdminFeature = (typeof AdminFeature)[keyof typeof AdminFeature];\n","export const Backend = {\n Snowflake: 'snowflake',\n Bigquery: 'bigquery',\n} as const;\n\nexport type Backend = (typeof Backend)[keyof typeof Backend];\n","export const Provider = {\n Aws: 'aws',\n Azure: 'azure',\n Gcp: 'gcp',\n} as const;\n\nexport type Provider = (typeof Provider)[keyof typeof Provider];\n\nexport const Continent = {\n Us: 'us',\n Europe: 'europe',\n} as const;\n\nexport type Continent = (typeof Continent)[keyof typeof Continent];\n\nexport type KeboolaStack = {\n id: string;\n host: string;\n isSingleTenant?: boolean;\n isTesting?: boolean;\n isPayg?: boolean;\n provider?: Provider;\n continent?: Continent;\n region?: string;\n isCanary?: boolean;\n};\n\nconst stacks = {\n NORTH_EUROPE_AZURE: {\n id: 'com-keboola-azure-north-europe',\n region: 'north-europe',\n host: 'connection.north-europe.azure.keboola.com',\n provider: 'azure',\n continent: 'europe',\n isPayg: true,\n },\n EU_CENTRAL_1_AWS: {\n id: 'kbc-eu-central-1',\n region: 'eu-central-1',\n host: 'connection.eu-central-1.keboola.com',\n provider: 'aws',\n continent: 'europe',\n },\n US_EAST_1_AWS: {\n id: 'kbc-us-east-1',\n region: 'us-east-1',\n host: 'connection.keboola.com',\n provider: 'aws',\n continent: 'us',\n },\n EUROPE_WEST3_GCP: {\n id: 'com-keboola-gcp-europe-west3',\n region: 'europe-west3',\n host: 'connection.europe-west3.gcp.keboola.com',\n provider: 'gcp',\n continent: 'europe',\n },\n US_EAST_4_GCP: {\n id: 'com-keboola-gcp-us-east4',\n region: 'us-east4',\n host: 'connection.us-east4.gcp.keboola.com',\n provider: 'gcp',\n continent: 'us',\n isPayg: true,\n },\n\n /* PRIVATE SINGLE TENANT STACKS\n ---------------------------- */\n HCI: {\n id: 'cloud-keboola-hci',\n host: 'connection.hci.keboola.cloud',\n isSingleTenant: true,\n },\n CSAS_PROD: {\n id: 'cloud-keboola-cs',\n host: 'connection.cs.keboola.cloud',\n isSingleTenant: true,\n },\n CSAS_TEST: {\n id: 'cloud-keboola-cs-test',\n host: 'connection.cs-test.keboola.cloud',\n isSingleTenant: true,\n },\n INNOGY: {\n id: 'cloud-keboola-innogy-hub',\n host: 'connection.innogy-hub.keboola.cloud',\n isSingleTenant: true,\n },\n GROUPON: {\n id: 'cloud-keboola-groupon',\n host: 'connection.groupon.keboola.cloud',\n isSingleTenant: true,\n },\n CREDIT_INFO: {\n id: 'cloud-keboola-creditinfo',\n host: 'connection.creditinfo.keboola.cloud',\n isSingleTenant: true,\n },\n COATES: {\n id: 'cloud-keboola-coates',\n host: 'connection.coates.keboola.cloud',\n isSingleTenant: true,\n },\n SLSP: {\n id: 'cloud-keboola-slsp',\n host: 'connection.slsp.keboola.cloud',\n isSingleTenant: true,\n },\n HCKZ: {\n id: 'cloud-keboola-hckz',\n host: 'connection.hckz.keboola.cloud',\n isSingleTenant: true,\n },\n PASHA: {\n id: 'cloud-keboola-pasha',\n host: 'connection.pasha.keboola.cloud',\n isSingleTenant: true,\n },\n RBI: {\n id: 'cloud-keboola-rbi',\n host: 'connection.rbi.keboola.cloud',\n isSingleTenant: true,\n },\n NAH: {\n id: 'cloud-keboola-nah',\n host: 'connection.nah.keboola.cloud',\n isSingleTenant: true,\n provider: 'azure',\n continent: 'us',\n },\n\n /* DEV STACKS\n ---------------------------- */\n DEV_US_CENTRAL_1_GCP: {\n id: 'dev-keboola-gcp-us-central1',\n region: 'us-central1',\n host: 'connection.us-central1.gcp.keboola.dev',\n provider: 'gcp',\n continent: 'us',\n isTesting: true,\n },\n DEV_EU_WEST_1_AWS: {\n id: 'dev-keboola-aws-eu-west-1',\n region: 'eu-west-1',\n host: 'connection.eu-west-1.aws.keboola.dev',\n provider: 'aws',\n continent: 'europe',\n isTesting: true,\n },\n DEV_US_EAST_1_AWS_E2E: {\n id: 'dev-keboola-aws-us-east-1-e2e',\n region: 'us-east-1',\n host: 'connection.e2e.us-east-1.aws.keboola.dev',\n provider: 'aws',\n continent: 'us',\n isTesting: true,\n },\n DEV_US_EAST_2_AZURE: {\n id: 'kbc-testing-azure-east-us-2',\n region: 'east-us-2',\n host: 'connection.east-us-2.azure.keboola-testing.com',\n provider: 'azure',\n continent: 'us',\n isTesting: true,\n },\n DEV_KEBOOLA_CANARY_ORION: {\n id: 'dev-keboola-canary-orion',\n region: 'europe-west3',\n host: 'connection.canary-orion.keboola.dev',\n provider: 'gcp',\n continent: 'europe',\n isCanary: true,\n },\n} satisfies Record<string, Readonly<KeboolaStack>>;\n\n/**\n * Every stack the platform knows, keyed by name.\n *\n * - The key set is literal, so a name that is not in the object is a compile error at the call site\n * rather than an `undefined` to fall back from.\n * - The value type stays the uniform `KeboolaStack`, so `stack.isCanary` reads on any entry, not\n * only on the ones that carry the flag.\n */\nexport const STACKS: Record<keyof typeof stacks, Readonly<KeboolaStack>> = stacks;\n","export { ComponentId } from './componentId';\nexport { ManageErrorCode } from './manageErrorCodes';\nexport { ProjectFeature } from './projectFeatures';\nexport { ProjectMetric } from './projectMetrics';\nexport { StackFeature } from './stackFeatures';\nexport { AdminFeature } from './adminFeatures';\nexport { Backend } from './backends';\nexport { AdminRole } from './adminRoles';\nexport { ServiceId } from './serviceIds';\nexport { Continent, Provider, STACKS } from './stacks';\nexport type { KeboolaStack } from './stacks';\n\nexport const URLS = {\n USER_DOCUMENTATION: 'https://help.keboola.com',\n COMPONENTS: 'https://components.keboola.com',\n DEVELOPERS_DOCUMENTATION: 'https://developers.keboola.com',\n ACADEMY: 'https://academy.keboola.com',\n SALES_CONTACT_FORM: 'https://keboola.com/contact',\n SNOWFLAKE: 'https://www.snowflake.com',\n SNOWFLAKE_DOCS: 'https://docs.snowflake.com',\n MCP: 'https://www.keboola.com/mcp',\n CLI: 'https://www.keboola.com/cli',\n NODE_JS: 'https://nodejs.org/en',\n CLAUDE_CONNECTORS: 'https://claude.ai/customize/connectors',\n // Vendor \"how do I get this client\" pages linked from the connect surfaces.\n CLIENT_CLAUDE_CODE_QUICKSTART: 'https://code.claude.com/docs/en/quickstart',\n CLIENT_CLAUDE_AI: 'https://claude.ai',\n CLIENT_CLAUDE_DESKTOP_DOWNLOAD: 'https://claude.com/download',\n CLIENT_CURSOR_QUICKSTART: 'https://cursor.com/docs/get-started/quickstart',\n CLIENT_VS_CODE_SETUP: 'https://code.visualstudio.com/docs/setup/setup-overview',\n CLIENT_CODEX_QUICKSTART: 'https://developers.openai.com/codex/cli',\n CLIENT_CHATGPT_DOWNLOAD: 'https://chatgpt.com/download',\n CLIENT_MAKE_GET_STARTED: 'https://help.make.com/get-started',\n CLIENT_DEVIN_DESKTOP: 'https://docs.devin.ai/desktop/getting-started',\n} as const;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"developerPortalClient-BcK9F-Fs.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 * Percent-encodes a path parameter, leaving the RFC 3986 segment characters `$&+,;=:@` raw.\n *\n * - apps-api never decodes a path parameter, so `%40` fails its email validation.\n */\nconst encodePathParam = (value: string) =>\n encodeURIComponent(value).replace(/%(24|26|2B|2C|3B|3D|3A|40)/g, (match) =>\n decodeURIComponent(match),\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, encodePathParam });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares: [authMiddleware, ...middlewares],\n encodePathParam,\n })\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"developerPortalClient-CzCJ5sE3.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 * Percent-encodes a path parameter, leaving the RFC 3986 segment characters `$&+,;=:@` raw.\n *\n * - apps-api never decodes a path parameter, so `%40` fails its email validation.\n */\nconst encodePathParam = (value: string) =>\n encodeURIComponent(value).replace(/%(24|26|2B|2C|3B|3D|3A|40)/g, (match) =>\n decodeURIComponent(match),\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, encodePathParam });\n const client = authMiddleware\n ? createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares: [authMiddleware, ...middlewares],\n encodePathParam,\n })\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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"}
|
package/dist/index-BGsP2QBc.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { pt as WorkspaceSqlConnection, rt as WorkspaceConnection } from "./index-FrsEkDvX.js";
|
|
2
|
-
import { Oa as Subscriber } from "./index-CQPs3hrp.js";
|
|
3
|
-
declare const isSqlWorkspaceConnection: (connection: WorkspaceConnection) => connection is WorkspaceSqlConnection;
|
|
4
|
-
/**
|
|
5
|
-
* Encodes subscribers as GCP IAM principals (`user:`/`group:`); `fromBackendSubscribers` decodes.
|
|
6
|
-
*/
|
|
7
|
-
declare const toBackendSubscribers: (subscribers: Subscriber[]) => string[];
|
|
8
|
-
declare const fromBackendSubscribers: (raw: string[]) => Subscriber[];
|
|
9
|
-
export { toBackendSubscribers as n, isSqlWorkspaceConnection as r, fromBackendSubscribers as t };
|
|
10
|
-
//# sourceMappingURL=index-BGsP2QBc.d.ts.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { pt as WorkspaceSqlConnection, rt as WorkspaceConnection } from "./index-FrsEkDvX.cjs";
|
|
2
|
-
import { Oa as Subscriber } from "./index-CmyFWQXn.cjs";
|
|
3
|
-
declare const isSqlWorkspaceConnection: (connection: WorkspaceConnection) => connection is WorkspaceSqlConnection;
|
|
4
|
-
/**
|
|
5
|
-
* Encodes subscribers as GCP IAM principals (`user:`/`group:`); `fromBackendSubscribers` decodes.
|
|
6
|
-
*/
|
|
7
|
-
declare const toBackendSubscribers: (subscribers: Subscriber[]) => string[];
|
|
8
|
-
declare const fromBackendSubscribers: (raw: string[]) => Subscriber[];
|
|
9
|
-
export { toBackendSubscribers as n, isSqlWorkspaceConnection as r, fromBackendSubscribers as t };
|
|
10
|
-
//# sourceMappingURL=index-CWowDl63.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kaiAgent-D0MoKqXe.js","names":[],"sources":["../src/clients/kaiAgent/kaiAgentClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient, isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport type { ProjectToolPolicy, ProjectToolPolicyValue } from '../chat/types';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ArtifactListResponse,\n ArtifactResponse,\n ChatRequest,\n GetArtifactPath,\n GetArtifactsQuery,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n PrepareChatRequest,\n UsageResponse,\n VoteRequest,\n} from './types';\n\nconst projectToolPolicyValueSchema: z.ZodType<ProjectToolPolicyValue> = z.enum([\n 'blocked',\n 'always_ask',\n]);\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n canWriteToolPolicy: z.boolean().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n projectToolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n // Optional on the wire (rollout skew): an older kai-agent omits it, and its default is `auto`.\n memorySaveMode: z.enum(['auto', 'ask']).optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst userMemorySchema = z.object({ id: z.string(), content: z.string(), createdAt: z.string() });\n\nconst userMemoriesSchema = z.object({ memories: z.array(userMemorySchema) });\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst skillInfoSchema = z.object({\n name: z.string(),\n description: z.string().nullable(),\n source: z.enum(['first-party', 'vendored', 'project']),\n});\n\nconst builtInCommandSchema = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nconst skillsListResponseSchema = z.object({\n skills: z.array(skillInfoSchema),\n commands: z.array(builtInCommandSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\n// `userId` only: kai-agent cannot resolve project members. Join it against\n// `api.management.projects.getProjectUsers`.\nconst spendCapMemberSchema = z.object({\n userId: z.string(),\n overrideLimitPpu: z.number().nullable(),\n effectiveLimitPpu: z.number().nullable(),\n usedPpu: z.number(),\n overrideUpdatedAt: z.string().nullable(),\n overrideUpdatedByUserId: z.string().nullable(),\n});\n\nconst spendCapsViewSchema = z.object({\n // `null` = no configured cap, not unlimited — see `effectiveProjectCapPpu`.\n projectCapPpu: z.number().nullable(),\n // The enforced cap (`projectCapPpu` or kai-agent's DEFAULT_PROJECT_CAP_PPU).\n // Render this; `projectCapPpu` only tells configured from default.\n effectiveProjectCapPpu: z.number(),\n // Platform default regardless of what's saved; validates a cleared-but-unsaved field.\n // Optional on the wire (rollout skew); `withDefaultProjectCap` fills it in.\n defaultProjectCapPpu: z.number().optional(),\n defaultUserLimitPpu: z.number().nullable(),\n projectUsedPpu: z.number(),\n canWrite: z.boolean(),\n members: z.array(spendCapMemberSchema),\n updatedAt: z.string().nullable(),\n updatedByUserId: z.string().nullable(),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\nexport type SpendCapMember = z.infer<typeof spendCapMemberSchema>;\n// `defaultProjectCapPpu` is always present here — `getSpendCaps`/`updateSpendCaps` fill it in.\nexport type SpendCapsView = Omit<z.infer<typeof spendCapsViewSchema>, 'defaultProjectCapPpu'> & {\n defaultProjectCapPpu: number;\n};\nexport type AgentSettings = z.infer<typeof agentSettingsSchema>;\nexport type UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\nexport type UserMemory = z.infer<typeof userMemorySchema>;\nexport type MemorySaveMode = NonNullable<UserAgentSettings['memorySaveMode']>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SkillsListResponse = z.infer<typeof skillsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\ntype VotesResponse = z.infer<typeof votesResponseSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n memorySaveMode?: MemorySaveMode;\n};\n\ntype UpdateSpendCapsRequest = {\n projectCapPpu?: number | null;\n defaultUserLimitPpu?: number | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const clientOptions = {\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/api/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<VotesResponse> => {\n const { data } = await client.get('/api/vote', { query: { chatId } });\n\n const result = votesResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid votes response format');\n }\n\n return result.data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/api/vote', { body: params });\n };\n\n /**\n * Every artifact a chat produced, oldest first.\n *\n * - Read-only by design: artifacts are derived server-side at the end of a turn, so there is\n * no write route to pair with this.\n * - The chat is the authorization — a chat the caller cannot read has no artifacts.\n */\n const getArtifacts = async (\n chatId: GetArtifactsQuery['chatId'],\n signal?: AbortSignal,\n ): Promise<ArtifactListResponse> => {\n const { data } = await client.get('/api/artifacts', { query: { chatId } }, { signal });\n return data;\n };\n\n const getArtifact = async (\n artifactId: GetArtifactPath['id'],\n signal?: AbortSignal,\n ): Promise<ArtifactResponse> => {\n const { data } = await client.get(\n '/api/artifacts/{id}',\n { path: { id: artifactId } },\n {\n signal,\n },\n );\n return data;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n // `freeAllowance` is ahead of the generated schema — a guard turns a missing field into `null`.\n const parsed = z\n .object({\n freeAllowance: z\n .object({ grantedPpu: z.number(), remainingPpu: z.number() })\n .nullable()\n .optional(),\n })\n .safeParse(data);\n const freeAllowance = parsed.success ? (parsed.data.freeAllowance ?? null) : null;\n return { ...data, freeAllowance };\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n /**\n * Give the chat's running turn the credential this client now authenticates with.\n *\n * - `updated: false` means no turn of the chat was running; nothing changed.\n */\n const updateTurnCredential = async (chatId: string): Promise<{ updated: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/credential', { path: { id: chatId } });\n return data;\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n /**\n * Ask the engine to build this chat's sandbox before a turn needs one.\n *\n * - The work continues after the response.\n * - A host that does not pre-warm answers 404, returned as `{ started: false }`.\n */\n const prepareChat = async (\n chatId: string,\n signal?: AbortSignal,\n body: PrepareChatRequest = {},\n ): Promise<{ started: boolean }> => {\n try {\n const { data } = await client.post(\n '/api/chat/{id}/prepare',\n { path: { id: chatId }, body },\n { signal },\n );\n return data;\n } catch (error) {\n // 404 = pre-warm not supported here.\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n return { started: false };\n }\n throw error;\n }\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/api/suggestions', { body: request }, { signal });\n return data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateProjectToolPolicy = async (\n toolPermissions: ProjectToolPolicy,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.put<AgentSettings>(\n '/api/settings/tool-permissions',\n { body: { toolPermissions } },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n // Not in `__generated__/schema` yet, hence `genericClient` + zod, like the spend caps below.\n const getUserMemories = async (signal?: AbortSignal): Promise<UserMemory[]> => {\n const { data } = await genericClient.get('/api/settings/user/memories', {}, { signal });\n const result = userMemoriesSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memories response format');\n }\n return result.data.memories;\n };\n\n const updateUserMemory = async (\n memoryId: string,\n content: string,\n signal?: AbortSignal,\n ): Promise<UserMemory> => {\n const { data } = await genericClient.patch(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n { body: { content } },\n { signal },\n );\n const result = userMemorySchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memory response format');\n }\n return result.data;\n };\n\n const deleteUserMemory = async (memoryId: string, signal?: AbortSignal): Promise<void> => {\n await genericClient.delete(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n {},\n { signal },\n );\n };\n\n // An older kai-agent omits `defaultProjectCapPpu`; fall back rather than throw.\n const withDefaultProjectCap = (view: z.infer<typeof spendCapsViewSchema>): SpendCapsView => ({\n ...view,\n defaultProjectCapPpu: view.defaultProjectCapPpu ?? view.effectiveProjectCapPpu,\n });\n\n // Not in `__generated__/schema` yet (see docs/regenerate-api-types.md), hence `genericClient`\n // + zod. Switch to `client.get('/api/settings/spend-caps')` once it regenerates.\n const getSpendCaps = async (signal?: AbortSignal): Promise<SpendCapsView> => {\n const { data } = await genericClient.get<SpendCapsView>(\n '/api/settings/spend-caps',\n {},\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const updateSpendCaps = async (\n request: UpdateSpendCapsRequest,\n signal?: AbortSignal,\n ): Promise<SpendCapsView> => {\n const { data } = await genericClient.patch<SpendCapsView>(\n '/api/settings/spend-caps',\n { body: request },\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const setUserSpendLimit = async (\n userId: string,\n overrideLimitPpu: number | null,\n signal?: AbortSignal,\n ): Promise<SpendCapMember> => {\n const { data } = await genericClient.put<SpendCapMember>(\n `/api/settings/spend-caps/users/${encodeURIComponent(userId)}`,\n { body: { overrideLimitPpu } },\n { signal },\n );\n const result = spendCapMemberSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend cap member response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n const getSkillsList = async (signal?: AbortSignal): Promise<SkillsListResponse> => {\n const { data } = await genericClient.get<SkillsListResponse>('/api/skills', {}, { signal });\n const result = skillsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid skills list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const downloadSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<Blob> => {\n // `parseData` returns a declared octet-stream body as a Blob, bytes intact.\n const { data } = await genericClient.get<Blob>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file/download`,\n { query: { path } },\n { signal },\n );\n if (!(data instanceof Blob)) {\n throw new Error('Invalid sandbox file download response format');\n }\n return data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n // `/health`, not `/ping`: it returns `{\"status\":\"ok\"}` like other services, not a timestamp.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getArtifacts,\n getArtifact,\n approveToolCall,\n submitToolOutput,\n updateTurnCredential,\n stopChat,\n prepareChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n updateProjectToolPolicy,\n getUserAgentSettings,\n updateUserAgentSettings,\n getUserMemories,\n updateUserMemory,\n deleteUserMemory,\n getSpendCaps,\n updateSpendCaps,\n setUserSpendLimit,\n getToolsList,\n getSkillsList,\n listSandboxFiles,\n readSandboxFile,\n downloadSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kaiAgent-De2T6G4G.cjs","names":["z","createAuthHeaders","createOpenapiFetchClient","createGenericFetchClient","isApiError","HttpStatus"],"sources":["../src/clients/kaiAgent/kaiAgentClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient, isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport type { ProjectToolPolicy, ProjectToolPolicyValue } from '../chat/types';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ArtifactListResponse,\n ArtifactResponse,\n ChatRequest,\n GetArtifactPath,\n GetArtifactsQuery,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n PrepareChatRequest,\n UsageResponse,\n VoteRequest,\n} from './types';\n\nconst projectToolPolicyValueSchema: z.ZodType<ProjectToolPolicyValue> = z.enum([\n 'blocked',\n 'always_ask',\n]);\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n canWriteToolPolicy: z.boolean().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n projectToolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n // Optional on the wire (rollout skew): an older kai-agent omits it, and its default is `auto`.\n memorySaveMode: z.enum(['auto', 'ask']).optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst userMemorySchema = z.object({ id: z.string(), content: z.string(), createdAt: z.string() });\n\nconst userMemoriesSchema = z.object({ memories: z.array(userMemorySchema) });\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst skillInfoSchema = z.object({\n name: z.string(),\n description: z.string().nullable(),\n source: z.enum(['first-party', 'vendored', 'project']),\n});\n\nconst builtInCommandSchema = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nconst skillsListResponseSchema = z.object({\n skills: z.array(skillInfoSchema),\n commands: z.array(builtInCommandSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\n// `userId` only: kai-agent cannot resolve project members. Join it against\n// `api.management.projects.getProjectUsers`.\nconst spendCapMemberSchema = z.object({\n userId: z.string(),\n overrideLimitPpu: z.number().nullable(),\n effectiveLimitPpu: z.number().nullable(),\n usedPpu: z.number(),\n overrideUpdatedAt: z.string().nullable(),\n overrideUpdatedByUserId: z.string().nullable(),\n});\n\nconst spendCapsViewSchema = z.object({\n // `null` = no configured cap, not unlimited — see `effectiveProjectCapPpu`.\n projectCapPpu: z.number().nullable(),\n // The enforced cap (`projectCapPpu` or kai-agent's DEFAULT_PROJECT_CAP_PPU).\n // Render this; `projectCapPpu` only tells configured from default.\n effectiveProjectCapPpu: z.number(),\n // Platform default regardless of what's saved; validates a cleared-but-unsaved field.\n // Optional on the wire (rollout skew); `withDefaultProjectCap` fills it in.\n defaultProjectCapPpu: z.number().optional(),\n defaultUserLimitPpu: z.number().nullable(),\n projectUsedPpu: z.number(),\n canWrite: z.boolean(),\n members: z.array(spendCapMemberSchema),\n updatedAt: z.string().nullable(),\n updatedByUserId: z.string().nullable(),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\nexport type SpendCapMember = z.infer<typeof spendCapMemberSchema>;\n// `defaultProjectCapPpu` is always present here — `getSpendCaps`/`updateSpendCaps` fill it in.\nexport type SpendCapsView = Omit<z.infer<typeof spendCapsViewSchema>, 'defaultProjectCapPpu'> & {\n defaultProjectCapPpu: number;\n};\nexport type AgentSettings = z.infer<typeof agentSettingsSchema>;\nexport type UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\nexport type UserMemory = z.infer<typeof userMemorySchema>;\nexport type MemorySaveMode = NonNullable<UserAgentSettings['memorySaveMode']>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SkillsListResponse = z.infer<typeof skillsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\ntype VotesResponse = z.infer<typeof votesResponseSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n memorySaveMode?: MemorySaveMode;\n};\n\ntype UpdateSpendCapsRequest = {\n projectCapPpu?: number | null;\n defaultUserLimitPpu?: number | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const clientOptions = {\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/api/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<VotesResponse> => {\n const { data } = await client.get('/api/vote', { query: { chatId } });\n\n const result = votesResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid votes response format');\n }\n\n return result.data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/api/vote', { body: params });\n };\n\n /**\n * Every artifact a chat produced, oldest first.\n *\n * - Read-only by design: artifacts are derived server-side at the end of a turn, so there is\n * no write route to pair with this.\n * - The chat is the authorization — a chat the caller cannot read has no artifacts.\n */\n const getArtifacts = async (\n chatId: GetArtifactsQuery['chatId'],\n signal?: AbortSignal,\n ): Promise<ArtifactListResponse> => {\n const { data } = await client.get('/api/artifacts', { query: { chatId } }, { signal });\n return data;\n };\n\n const getArtifact = async (\n artifactId: GetArtifactPath['id'],\n signal?: AbortSignal,\n ): Promise<ArtifactResponse> => {\n const { data } = await client.get(\n '/api/artifacts/{id}',\n { path: { id: artifactId } },\n {\n signal,\n },\n );\n return data;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n // `freeAllowance` is ahead of the generated schema — a guard turns a missing field into `null`.\n const parsed = z\n .object({\n freeAllowance: z\n .object({ grantedPpu: z.number(), remainingPpu: z.number() })\n .nullable()\n .optional(),\n })\n .safeParse(data);\n const freeAllowance = parsed.success ? (parsed.data.freeAllowance ?? null) : null;\n return { ...data, freeAllowance };\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n /**\n * Give the chat's running turn the credential this client now authenticates with.\n *\n * - `updated: false` means no turn of the chat was running; nothing changed.\n */\n const updateTurnCredential = async (chatId: string): Promise<{ updated: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/credential', { path: { id: chatId } });\n return data;\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n /**\n * Ask the engine to build this chat's sandbox before a turn needs one.\n *\n * - The work continues after the response.\n * - A host that does not pre-warm answers 404, returned as `{ started: false }`.\n */\n const prepareChat = async (\n chatId: string,\n signal?: AbortSignal,\n body: PrepareChatRequest = {},\n ): Promise<{ started: boolean }> => {\n try {\n const { data } = await client.post(\n '/api/chat/{id}/prepare',\n { path: { id: chatId }, body },\n { signal },\n );\n return data;\n } catch (error) {\n // 404 = pre-warm not supported here.\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n return { started: false };\n }\n throw error;\n }\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/api/suggestions', { body: request }, { signal });\n return data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateProjectToolPolicy = async (\n toolPermissions: ProjectToolPolicy,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.put<AgentSettings>(\n '/api/settings/tool-permissions',\n { body: { toolPermissions } },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n // Not in `__generated__/schema` yet, hence `genericClient` + zod, like the spend caps below.\n const getUserMemories = async (signal?: AbortSignal): Promise<UserMemory[]> => {\n const { data } = await genericClient.get('/api/settings/user/memories', {}, { signal });\n const result = userMemoriesSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memories response format');\n }\n return result.data.memories;\n };\n\n const updateUserMemory = async (\n memoryId: string,\n content: string,\n signal?: AbortSignal,\n ): Promise<UserMemory> => {\n const { data } = await genericClient.patch(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n { body: { content } },\n { signal },\n );\n const result = userMemorySchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memory response format');\n }\n return result.data;\n };\n\n const deleteUserMemory = async (memoryId: string, signal?: AbortSignal): Promise<void> => {\n await genericClient.delete(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n {},\n { signal },\n );\n };\n\n // An older kai-agent omits `defaultProjectCapPpu`; fall back rather than throw.\n const withDefaultProjectCap = (view: z.infer<typeof spendCapsViewSchema>): SpendCapsView => ({\n ...view,\n defaultProjectCapPpu: view.defaultProjectCapPpu ?? view.effectiveProjectCapPpu,\n });\n\n // Not in `__generated__/schema` yet (see docs/regenerate-api-types.md), hence `genericClient`\n // + zod. Switch to `client.get('/api/settings/spend-caps')` once it regenerates.\n const getSpendCaps = async (signal?: AbortSignal): Promise<SpendCapsView> => {\n const { data } = await genericClient.get<SpendCapsView>(\n '/api/settings/spend-caps',\n {},\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const updateSpendCaps = async (\n request: UpdateSpendCapsRequest,\n signal?: AbortSignal,\n ): Promise<SpendCapsView> => {\n const { data } = await genericClient.patch<SpendCapsView>(\n '/api/settings/spend-caps',\n { body: request },\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const setUserSpendLimit = async (\n userId: string,\n overrideLimitPpu: number | null,\n signal?: AbortSignal,\n ): Promise<SpendCapMember> => {\n const { data } = await genericClient.put<SpendCapMember>(\n `/api/settings/spend-caps/users/${encodeURIComponent(userId)}`,\n { body: { overrideLimitPpu } },\n { signal },\n );\n const result = spendCapMemberSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend cap member response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n const getSkillsList = async (signal?: AbortSignal): Promise<SkillsListResponse> => {\n const { data } = await genericClient.get<SkillsListResponse>('/api/skills', {}, { signal });\n const result = skillsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid skills list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const downloadSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<Blob> => {\n // `parseData` returns a declared octet-stream body as a Blob, bytes intact.\n const { data } = await genericClient.get<Blob>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file/download`,\n { query: { path } },\n { signal },\n );\n if (!(data instanceof Blob)) {\n throw new Error('Invalid sandbox file download response format');\n }\n return data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n // `/health`, not `/ping`: it returns `{\"status\":\"ok\"}` like other services, not a timestamp.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getArtifacts,\n getArtifact,\n approveToolCall,\n submitToolOutput,\n updateTurnCredential,\n stopChat,\n prepareChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n updateProjectToolPolicy,\n getUserAgentSettings,\n updateUserAgentSettings,\n getUserMemories,\n updateUserMemory,\n deleteUserMemory,\n getSpendCaps,\n updateSpendCaps,\n setUserSpendLimit,\n getToolsList,\n getSkillsList,\n listSandboxFiles,\n readSandboxFile,\n downloadSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n"],"mappings":"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"}
|