@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
package/README.md
CHANGED
|
@@ -14,133 +14,28 @@ npm install @keboola/api-client
|
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
|
-
The SDK exposes two flow-specific factories — pick the one that matches how you authenticate.
|
|
18
|
-
**Both return `{ api, session }`** and work the same in browser and Node:
|
|
19
|
-
|
|
20
|
-
- `createLegacyKeboola()` — legacy **Storage API token** (SAPI) flow.
|
|
21
|
-
- `createKeboola()` — **bearer / OAuth** flow.
|
|
22
|
-
|
|
23
|
-
`session` is the lifecycle — you drive it to _ready_. `api` is the product surface, gated by state:
|
|
24
|
-
|
|
25
|
-
| Tier | Live once… | Example |
|
|
26
|
-
| --------------------------------------------- | --------------------------------------- | ---------------------------------- |
|
|
27
|
-
| `api.auth.*` | a `baseUrl` is configured | `api.auth.login.withPassword(...)` |
|
|
28
|
-
| `api.management.*` | the management realm authenticates | `api.management.projects.*` |
|
|
29
|
-
| `api.storage` / `api.queue` / `api.stack` / … | the async storage build reaches `ready` | `api.storage.getStackInfo()` |
|
|
30
|
-
|
|
31
|
-
Touching a product namespace before _ready_ throws a `KeboolaError`. `session.isStorageReady()` and
|
|
32
|
-
`session.subscribe(cb)` observe the transition; the `…Async` verbs below await it for you.
|
|
33
|
-
|
|
34
|
-
> Options are identical for both factories: `{ baseUrl?, middlewares?, clientServiceUrls? }`. There is
|
|
35
|
-
> **no built-in token persistence** — a browser app that must survive a reload re-authenticates on boot;
|
|
36
|
-
> a Node process keeps the credential wherever it already stores secrets.
|
|
37
|
-
|
|
38
|
-
### Legacy (SAPI token) — Node
|
|
39
|
-
|
|
40
|
-
You already hold a Storage API token (env var, secret store). One step to _ready_:
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
import { createLegacyKeboola } from '@keboola/api-client';
|
|
44
|
-
|
|
45
|
-
const { api, session } = createLegacyKeboola({ baseUrl: process.env.KEBOOLA_STACK_URL! });
|
|
46
|
-
await session.authenticateStorageAsync(process.env.KEBOOLA_STORAGE_TOKEN!);
|
|
47
|
-
|
|
48
|
-
const stack = api.stack; // synchronous once ready
|
|
49
|
-
const token = await api.storage.tokens.verify();
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Optionally add the management realm with `session.authenticateManagement(manageToken)` → `api.management.*`.
|
|
53
|
-
|
|
54
|
-
### Legacy (SAPI token) — Browser
|
|
55
|
-
|
|
56
|
-
Identical calls; the token is whatever the host hands the app (e.g. kbc-ui's boot payload). Use the
|
|
57
|
-
fire-and-forget `authenticateStorage` and observe readiness instead of awaiting:
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import { createLegacyKeboola } from '@keboola/api-client';
|
|
61
|
-
|
|
62
|
-
const { api, session } = createLegacyKeboola({ baseUrl });
|
|
63
|
-
session.authenticateStorage(sapiToken);
|
|
64
|
-
session.subscribe((snapshot) => {
|
|
65
|
-
if (snapshot.storage === 'ready') {
|
|
66
|
-
/* render the app — api.storage.* is now live */
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
> **React:** don't wire this by hand — `LegacyAuthProvider` + `useProjectApi()` from
|
|
72
|
-
> [`@keboola/api-client-react`](../api-client-react) drive the singleton session to ready and hand you `api`.
|
|
73
|
-
|
|
74
|
-
### Bearer (OAuth) — Browser
|
|
75
|
-
|
|
76
|
-
Interactive login, then a project:
|
|
77
|
-
|
|
78
17
|
```typescript
|
|
79
18
|
import { createKeboola } from '@keboola/api-client';
|
|
80
19
|
|
|
81
|
-
const { session,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const result = await getStackApi().auth.login.withPassword({ email, password });
|
|
85
|
-
if (result.mfaRequired) {
|
|
86
|
-
// result is an MFA challenge — verify via getStackApi().auth.mfa.* to obtain the LoginSuccess
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
session.auth.authenticate({ type: 'token', ...result }); // → `management` is now live
|
|
90
|
-
const api = getProjectApi(projectId); // projectId from your project picker
|
|
20
|
+
const { session, stackApi, projectApi } = createKeboola({ defaultBaseUrl: baseUrl });
|
|
21
|
+
const result = await stackApi.auth.login.withPassword({ email, password });
|
|
22
|
+
if (!result.mfaRequired) session.auth.authenticate({ type: 'token', ...result });
|
|
91
23
|
|
|
92
|
-
const buckets = await
|
|
93
|
-
const other = getProjectApi(otherProjectId); // another project, the same sign-in
|
|
24
|
+
const buckets = await projectApi(projectId).storage.buckets.getBuckets({ branchId: 'default' });
|
|
94
25
|
```
|
|
95
26
|
|
|
96
|
-
|
|
97
|
-
> `useProjectApi()` the project the app is in.
|
|
98
|
-
|
|
99
|
-
### Bearer (OAuth) — Node
|
|
100
|
-
|
|
101
|
-
Same shape. Either run `api.auth.login.withPassword(...)` headlessly, or, if you already hold a
|
|
102
|
-
credential, hand a `LoginSuccess`-shaped object straight to `session.authenticate`:
|
|
103
|
-
|
|
104
|
-
```typescript
|
|
105
|
-
import { createKeboola } from '@keboola/api-client';
|
|
106
|
-
|
|
107
|
-
const { api, session } = createKeboola({ defaultBaseUrl: process.env.KEBOOLA_STACK_URL! });
|
|
108
|
-
|
|
109
|
-
session.authenticate({
|
|
110
|
-
mfaRequired: false,
|
|
111
|
-
accessToken: process.env.KBC_ACCESS_TOKEN!,
|
|
112
|
-
refreshToken: process.env.KBC_REFRESH_TOKEN!,
|
|
113
|
-
tokenType: 'Bearer',
|
|
114
|
-
expiresIn: 3600,
|
|
115
|
-
sessionId: '',
|
|
116
|
-
user: { id: 0, email: '', name: '' },
|
|
117
|
-
});
|
|
118
|
-
await session.setProjectAsync(Number(process.env.KBC_PROJECT_ID));
|
|
119
|
-
|
|
120
|
-
const stackInfo = await api.storage.getStackInfo();
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
> The SDK refreshes the access token in-band; persisting the rotated refresh token across process
|
|
124
|
-
> restarts is the caller's responsibility (there is no storage adapter).
|
|
125
|
-
|
|
126
|
-
### Single-service client (when you only need one service)
|
|
127
|
-
|
|
128
|
-
For a single service — including a **browser SPA that only talks to Storage** — use the per-service
|
|
129
|
-
factory. It needs only `baseUrl` + `auth` and skips the stack-info round-trip. Reach for a full client
|
|
130
|
-
above only when you need multiple stack services.
|
|
27
|
+
Holding only a Storage API token, use the per-service clients:
|
|
131
28
|
|
|
132
29
|
```typescript
|
|
133
30
|
import { createStorageClient } from '@keboola/api-client/storage';
|
|
134
31
|
|
|
135
|
-
const storage = createStorageClient({
|
|
136
|
-
|
|
137
|
-
auth: { type: 'sapi-token', token: 'your-storage-token' },
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
const stackInfo = await storage.getStackInfo();
|
|
141
|
-
const token = await storage.tokens.verify();
|
|
32
|
+
const storage = createStorageClient({ baseUrl, auth: { type: 'sapi-token', token } });
|
|
33
|
+
const tables = await storage.tables.getTables();
|
|
142
34
|
```
|
|
143
35
|
|
|
36
|
+
Sessions, expiry, persistence, and a token's other services:
|
|
37
|
+
[`AGENTS.md` → Getting a client](./AGENTS.md#getting-a-client).
|
|
38
|
+
|
|
144
39
|
### Type imports
|
|
145
40
|
|
|
146
41
|
```typescript
|
|
@@ -156,10 +51,9 @@ import type { VariableWithHash } from '@keboola/api-client/vault/types';
|
|
|
156
51
|
src/
|
|
157
52
|
index.ts # package entry — re-exports keboola/ factories, errors, utils
|
|
158
53
|
keboola/
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
createApi.ts # flow-agnostic, state-gating `api` proxy
|
|
54
|
+
keboola.ts # createKeboola() — bearer/OAuth flow → { session, stackApi, projectApi }
|
|
55
|
+
context.ts # per-stack index, fetched once (pending→ready|errored)
|
|
56
|
+
types.ts # options, and the `StackApi` / `ProjectApi` types
|
|
163
57
|
internal.ts # HTTP headers, prefixes
|
|
164
58
|
fetchClient/
|
|
165
59
|
createFetchClient/ # Core fetch wrapper, middleware composition
|
|
@@ -210,7 +104,7 @@ src/
|
|
|
210
104
|
|
|
211
105
|
## Service Clients
|
|
212
106
|
|
|
213
|
-
On
|
|
107
|
+
On a `ProjectApi` from `createKeboola(...).projectApi(projectId)`, the following clients are available.
|
|
214
108
|
Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the generic fetch client.
|
|
215
109
|
|
|
216
110
|
| Accessor | Service | Key methods |
|
|
@@ -234,24 +128,17 @@ Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the gene
|
|
|
234
128
|
|
|
235
129
|
Additional accessors on the ready client:
|
|
236
130
|
|
|
237
|
-
| Accessor
|
|
238
|
-
|
|
|
239
|
-
| `api.stack`
|
|
240
|
-
| `api.baseUrl`
|
|
241
|
-
| `api.
|
|
242
|
-
| `api.sdk.tag` | Tag SDK: `getTags()`, `getTagsByObjectId()`, `createTag()`, `updateTag()`, `deleteTag()`, `assignTags()`, `unassignTags()`, `createAndAssignTag()` |
|
|
131
|
+
| Accessor | Purpose |
|
|
132
|
+
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
133
|
+
| `api.stack` | Stack info: `hasFeature()`, `hasService()`, `getServiceUrl()`, `hasComponent()`, `getComponent()`, `services`, `features`, `components` |
|
|
134
|
+
| `api.baseUrl` | Canonical stack URL every request is built on |
|
|
135
|
+
| `api.sdk.tag` | Tag SDK: `getTags()`, `getTagsByObjectId()`, `createTag()`, `updateTag()`, `deleteTag()`, `assignTags()`, `unassignTags()`, `createAndAssignTag()` |
|
|
243
136
|
|
|
244
137
|
## Entry Points
|
|
245
138
|
|
|
246
139
|
```typescript
|
|
247
140
|
// Main entry — SDK factories + all exports
|
|
248
|
-
import {
|
|
249
|
-
createKeboola,
|
|
250
|
-
createLegacyKeboola,
|
|
251
|
-
isApiError,
|
|
252
|
-
concurrent,
|
|
253
|
-
poll,
|
|
254
|
-
} from '@keboola/api-client';
|
|
141
|
+
import { createKeboola, isApiError, concurrent, poll } from '@keboola/api-client';
|
|
255
142
|
|
|
256
143
|
// Per-client imports — individual client factories
|
|
257
144
|
import { createStorageClient } from '@keboola/api-client/storage';
|
package/dist/{ManagementSessionMintError-Bc9bc7Ai.cjs → ManagementSessionMintError-BCOLLaJi.cjs}
RENAMED
|
@@ -15,7 +15,8 @@ var ManagementClientAuthError = class extends require_createFetchClient.ApiError
|
|
|
15
15
|
* The Manage client has no credential of its own and could not mint a session token from the
|
|
16
16
|
* login cookie.
|
|
17
17
|
*
|
|
18
|
-
* - Only
|
|
18
|
+
* - Only a `management-token` client with `mintSessionToken` (control-ui) mints; a bearer client
|
|
19
|
+
* never raises it.
|
|
19
20
|
* - The login page in place of the token: the session expired, or there is no cookie (off the
|
|
20
21
|
* stack host).
|
|
21
22
|
*/
|
|
@@ -42,4 +43,4 @@ Object.defineProperty(exports, "ManagementSessionMintError", {
|
|
|
42
43
|
}
|
|
43
44
|
});
|
|
44
45
|
|
|
45
|
-
//# sourceMappingURL=ManagementSessionMintError-
|
|
46
|
+
//# sourceMappingURL=ManagementSessionMintError-BCOLLaJi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagementSessionMintError-BCOLLaJi.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only a `management-token` client with `mintSessionToken` (control-ui) mints; a bearer client\n * never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACFA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
|
package/dist/{ManagementSessionMintError-BMHDcEqV.js → ManagementSessionMintError-KUX3utTV.js}
RENAMED
|
@@ -15,7 +15,8 @@ var ManagementClientAuthError = class extends ApiError {
|
|
|
15
15
|
* The Manage client has no credential of its own and could not mint a session token from the
|
|
16
16
|
* login cookie.
|
|
17
17
|
*
|
|
18
|
-
* - Only
|
|
18
|
+
* - Only a `management-token` client with `mintSessionToken` (control-ui) mints; a bearer client
|
|
19
|
+
* never raises it.
|
|
19
20
|
* - The login page in place of the token: the session expired, or there is no cookie (off the
|
|
20
21
|
* stack host).
|
|
21
22
|
*/
|
|
@@ -31,4 +32,4 @@ var ManagementSessionMintError = class extends ManagementClientAuthError {
|
|
|
31
32
|
};
|
|
32
33
|
export { ManagementClientAuthError as n, ManagementSessionMintError as t };
|
|
33
34
|
|
|
34
|
-
//# sourceMappingURL=ManagementSessionMintError-
|
|
35
|
+
//# sourceMappingURL=ManagementSessionMintError-KUX3utTV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagementSessionMintError-KUX3utTV.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only a `management-token` client with `mintSessionToken` (control-ui) mints; a bearer client\n * never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACFA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Rr as paths, l as OpenapiReturnType } from "./index-9p4O-clX.js";
|
|
2
2
|
type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
|
|
3
3
|
declare const AdminRole: {
|
|
4
4
|
readonly Admin: 'admin';
|
|
@@ -11,4 +11,4 @@ declare const AdminRole: {
|
|
|
11
11
|
};
|
|
12
12
|
type AdminRole = SpecAdminRole;
|
|
13
13
|
export { AdminRole as t };
|
|
14
|
-
//# sourceMappingURL=adminRoles-
|
|
14
|
+
//# sourceMappingURL=adminRoles-CnfGDvjN.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Rr as paths, l as OpenapiReturnType } from "./index-9p4O-clX.cjs";
|
|
2
2
|
type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
|
|
3
3
|
declare const AdminRole: {
|
|
4
4
|
readonly Admin: 'admin';
|
|
@@ -11,4 +11,4 @@ declare const AdminRole: {
|
|
|
11
11
|
};
|
|
12
12
|
type AdminRole = SpecAdminRole;
|
|
13
13
|
export { AdminRole as t };
|
|
14
|
-
//# sourceMappingURL=adminRoles-
|
|
14
|
+
//# sourceMappingURL=adminRoles-D6AS9Bzx.d.cts.map
|
package/dist/ai/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-CH1uguug.cjs";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-CbM2MApW.cjs";
|
|
3
3
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
4
4
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
5
5
|
status: 'ok';
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-Vw-tduOH.js";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-CP8-CssY.js";
|
|
3
3
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
4
4
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
5
5
|
status: 'ok';
|
package/dist/ai/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-CH1uguug.cjs";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-Vw-tduOH.js";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
|
package/dist/apps/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_apps = require("../apps-
|
|
2
|
+
const require_apps = require("../apps-BA9JRLAZ.cjs");
|
|
3
3
|
exports.createAppsClient = require_apps.createAppsClient;
|
|
4
4
|
exports.parseLogLines = require_apps.parseLogLines;
|
package/dist/apps/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as createAppsClient } from "../index-
|
|
1
|
+
import { j as parseLogLines } from "../types-K-JISUUI.cjs";
|
|
2
|
+
import { t as createAppsClient } from "../index-CGUPsu_R.cjs";
|
|
3
3
|
export { createAppsClient, parseLogLines };
|
package/dist/apps/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as createAppsClient } from "../index-
|
|
1
|
+
import { j as parseLogLines } from "../types-Dteot3tT.js";
|
|
2
|
+
import { t as createAppsClient } from "../index-Btft3BFn.js";
|
|
3
3
|
export { createAppsClient, parseLogLines };
|
package/dist/apps/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as createAppsClient, n as parseLogLines } from "../apps-
|
|
1
|
+
export { t as createAppsClient, n as parseLogLines } from "../apps-DDcguJ1i.js";
|
package/dist/apps/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppGitEntrypointsQuery, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetLogsTailQuery, type LogEntry, RunId };
|
|
1
|
+
import { A as LogEntry, C as GetAppGitEntrypointsQuery, D as GetDraftsQuery, E as GetDeploymentsQuery, O as GetLogsTailQuery, S as DraftRunState, T as GetAppsQuery, _ as DeploymentId, a as AppRun, b as DraftId, c as CreateCredentialBody, d as CreatedCredential, f as Credential, g as DeploymentBuildState, h as Deployment, i as AppPassword, k as RunId, l as CreateDeploymentBody, m as CredentialList, n as AppGitRepo, o as AppState, p as CredentialId, r as AppId, s as CreateAppBody, t as App, u as CreateDraftBody, v as DeploymentRunState, w as GetAppRunsQuery, x as DraftPreviewLink, y as Draft } from "../types-K-JISUUI.cjs";
|
|
2
|
+
export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreateDraftBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, Draft, DraftId, DraftPreviewLink, DraftRunState, GetAppGitEntrypointsQuery, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetDraftsQuery, GetLogsTailQuery, type LogEntry, RunId };
|
package/dist/apps/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppGitEntrypointsQuery, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetLogsTailQuery, type LogEntry, RunId };
|
|
1
|
+
import { A as LogEntry, C as GetAppGitEntrypointsQuery, D as GetDraftsQuery, E as GetDeploymentsQuery, O as GetLogsTailQuery, S as DraftRunState, T as GetAppsQuery, _ as DeploymentId, a as AppRun, b as DraftId, c as CreateCredentialBody, d as CreatedCredential, f as Credential, g as DeploymentBuildState, h as Deployment, i as AppPassword, k as RunId, l as CreateDeploymentBody, m as CredentialList, n as AppGitRepo, o as AppState, p as CredentialId, r as AppId, s as CreateAppBody, t as App, u as CreateDraftBody, v as DeploymentRunState, w as GetAppRunsQuery, x as DraftPreviewLink, y as Draft } from "../types-Dteot3tT.js";
|
|
2
|
+
export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreateDraftBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, Draft, DraftId, DraftPreviewLink, DraftRunState, GetAppGitEntrypointsQuery, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetDraftsQuery, GetLogsTailQuery, type LogEntry, RunId };
|
|
@@ -259,6 +259,55 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
259
259
|
} }, { signal });
|
|
260
260
|
return data;
|
|
261
261
|
};
|
|
262
|
+
/**
|
|
263
|
+
* Starts a draft that live-syncs an existing branch of the app's Git repository on its own host.
|
|
264
|
+
*
|
|
265
|
+
* - `400` when `body.gitBranch` does not exist; a draft never creates a branch.
|
|
266
|
+
* - `409` until the app has been deployed once.
|
|
267
|
+
* - Not idempotent: a retried request starts a second draft.
|
|
268
|
+
*/
|
|
269
|
+
const createDraft = async (appId, body, options = {}) => {
|
|
270
|
+
const { data } = await client.post("/apps/{appId}/drafts", {
|
|
271
|
+
path: { appId },
|
|
272
|
+
body
|
|
273
|
+
}, writeOptions(options));
|
|
274
|
+
return data;
|
|
275
|
+
};
|
|
276
|
+
/** Live drafts, newest first. */
|
|
277
|
+
const getDrafts = async (appId, query = {}, signal) => {
|
|
278
|
+
const { data } = await client.get("/apps/{appId}/drafts", {
|
|
279
|
+
path: { appId },
|
|
280
|
+
query
|
|
281
|
+
}, { signal });
|
|
282
|
+
return data;
|
|
283
|
+
};
|
|
284
|
+
const getDraft = async (appId, draftId, signal) => {
|
|
285
|
+
const { data } = await client.get("/apps/{appId}/drafts/{draftId}", { path: {
|
|
286
|
+
appId,
|
|
287
|
+
draftId
|
|
288
|
+
} }, { signal });
|
|
289
|
+
return data;
|
|
290
|
+
};
|
|
291
|
+
/** Stops and removes the draft; its Git branch is untouched. */
|
|
292
|
+
const deleteDraft = async (appId, draftId, signal) => {
|
|
293
|
+
await client.delete("/apps/{appId}/drafts/{draftId}", { path: {
|
|
294
|
+
appId,
|
|
295
|
+
draftId
|
|
296
|
+
} }, { signal });
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* A 60-second link that opens the draft's own `url` without the app's authentication.
|
|
300
|
+
*
|
|
301
|
+
* - `400` while the draft has no `url` yet; retry once it reports one.
|
|
302
|
+
* - `503` on a stack without preview links.
|
|
303
|
+
*/
|
|
304
|
+
const createDraftPreviewLink = async (appId, draftId, signal) => {
|
|
305
|
+
const { data } = await client.post("/apps/{appId}/drafts/{draftId}/preview-link", { path: {
|
|
306
|
+
appId,
|
|
307
|
+
draftId
|
|
308
|
+
} }, { signal });
|
|
309
|
+
return data;
|
|
310
|
+
};
|
|
262
311
|
/** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */
|
|
263
312
|
const getAppLogsTail = (appId, { query, signal } = {}) => readAppLogsTail(() => client.get("/apps/{appId}/logs/tail", {
|
|
264
313
|
path: { appId },
|
|
@@ -347,6 +396,11 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
347
396
|
getDeployment,
|
|
348
397
|
deleteDeployment,
|
|
349
398
|
promoteDeployment,
|
|
399
|
+
createDraft,
|
|
400
|
+
getDrafts,
|
|
401
|
+
getDraft,
|
|
402
|
+
deleteDraft,
|
|
403
|
+
createDraftPreviewLink,
|
|
350
404
|
getAppLogsTail,
|
|
351
405
|
getAppLogsDownload,
|
|
352
406
|
getDeploymentLogsTail,
|
|
@@ -373,4 +427,4 @@ Object.defineProperty(exports, "parseLogLines", {
|
|
|
373
427
|
}
|
|
374
428
|
});
|
|
375
429
|
|
|
376
|
-
//# sourceMappingURL=apps-
|
|
430
|
+
//# sourceMappingURL=apps-BA9JRLAZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps-BA9JRLAZ.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader","createOpenapiFetchClient","createAuthHeaders"],"sources":["../src/domain/appLogs.ts","../src/clients/apps/appsClient.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output, as the `apps` client serves it.\n *\n * - The tail contract lives here: how a line is parsed, where the next poll resumes, and that an\n * idle app is not an error.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n","import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CreateDraftBody,\n CredentialId,\n DeploymentId,\n DraftId,\n GetAppGitEntrypointsQuery,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetDraftsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app now; the next visitor wakes it, as after an idle auto-suspend. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app now and clears a failure stop (`disabled`). A stopped app comes back `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Live deployment history, newest first; `query.archived: true` lists the deleted ones instead. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Starts a draft that live-syncs an existing branch of the app's Git repository on its own host.\n *\n * - `400` when `body.gitBranch` does not exist; a draft never creates a branch.\n * - `409` until the app has been deployed once.\n * - Not idempotent: a retried request starts a second draft.\n */\n const createDraft = async (appId: AppId, body: CreateDraftBody, options: WriteOptions = {}) => {\n const { data } = await client.post(\n '/apps/{appId}/drafts',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Live drafts, newest first. */\n const getDrafts = async (appId: AppId, query: GetDraftsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/drafts',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDraft = async (appId: AppId, draftId: DraftId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/drafts/{draftId}',\n { path: { appId, draftId } },\n { signal },\n );\n\n return data;\n };\n\n /** Stops and removes the draft; its Git branch is untouched. */\n const deleteDraft = async (appId: AppId, draftId: DraftId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}/drafts/{draftId}', { path: { appId, draftId } }, { signal });\n };\n\n /**\n * A 60-second link that opens the draft's own `url` without the app's authentication.\n *\n * - `400` while the draft has no `url` yet; retry once it reports one.\n * - `503` on a stack without preview links.\n */\n const createDraftPreviewLink = async (appId: AppId, draftId: DraftId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/drafts/{draftId}/preview-link',\n { path: { appId, draftId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * The branches of the app's repository, read with the credentials in its saved configuration.\n *\n * - The request carries no credentials: changes to the Git settings count only once saved.\n * - `409` when the app has no Git repository, or the saved credentials cannot read it.\n */\n const getAppGitRepoBranches = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/branches',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * The Streamlit entrypoint candidates in the repository root, read like `getAppGitRepoBranches`.\n *\n * - `query.ref` omitted means the saved branch, then the repository default.\n */\n const getAppGitRepoEntrypoints = async (\n appId: AppId,\n query: GetAppGitEntrypointsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/entrypoints',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n createDraft,\n getDrafts,\n getDraft,\n deleteDraft,\n createDraftPreviewLink,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoBranches,\n getAppGitRepoEntrypoints,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
|
|
@@ -255,6 +255,55 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
255
255
|
} }, { signal });
|
|
256
256
|
return data;
|
|
257
257
|
};
|
|
258
|
+
/**
|
|
259
|
+
* Starts a draft that live-syncs an existing branch of the app's Git repository on its own host.
|
|
260
|
+
*
|
|
261
|
+
* - `400` when `body.gitBranch` does not exist; a draft never creates a branch.
|
|
262
|
+
* - `409` until the app has been deployed once.
|
|
263
|
+
* - Not idempotent: a retried request starts a second draft.
|
|
264
|
+
*/
|
|
265
|
+
const createDraft = async (appId, body, options = {}) => {
|
|
266
|
+
const { data } = await client.post("/apps/{appId}/drafts", {
|
|
267
|
+
path: { appId },
|
|
268
|
+
body
|
|
269
|
+
}, writeOptions(options));
|
|
270
|
+
return data;
|
|
271
|
+
};
|
|
272
|
+
/** Live drafts, newest first. */
|
|
273
|
+
const getDrafts = async (appId, query = {}, signal) => {
|
|
274
|
+
const { data } = await client.get("/apps/{appId}/drafts", {
|
|
275
|
+
path: { appId },
|
|
276
|
+
query
|
|
277
|
+
}, { signal });
|
|
278
|
+
return data;
|
|
279
|
+
};
|
|
280
|
+
const getDraft = async (appId, draftId, signal) => {
|
|
281
|
+
const { data } = await client.get("/apps/{appId}/drafts/{draftId}", { path: {
|
|
282
|
+
appId,
|
|
283
|
+
draftId
|
|
284
|
+
} }, { signal });
|
|
285
|
+
return data;
|
|
286
|
+
};
|
|
287
|
+
/** Stops and removes the draft; its Git branch is untouched. */
|
|
288
|
+
const deleteDraft = async (appId, draftId, signal) => {
|
|
289
|
+
await client.delete("/apps/{appId}/drafts/{draftId}", { path: {
|
|
290
|
+
appId,
|
|
291
|
+
draftId
|
|
292
|
+
} }, { signal });
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* A 60-second link that opens the draft's own `url` without the app's authentication.
|
|
296
|
+
*
|
|
297
|
+
* - `400` while the draft has no `url` yet; retry once it reports one.
|
|
298
|
+
* - `503` on a stack without preview links.
|
|
299
|
+
*/
|
|
300
|
+
const createDraftPreviewLink = async (appId, draftId, signal) => {
|
|
301
|
+
const { data } = await client.post("/apps/{appId}/drafts/{draftId}/preview-link", { path: {
|
|
302
|
+
appId,
|
|
303
|
+
draftId
|
|
304
|
+
} }, { signal });
|
|
305
|
+
return data;
|
|
306
|
+
};
|
|
258
307
|
/** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */
|
|
259
308
|
const getAppLogsTail = (appId, { query, signal } = {}) => readAppLogsTail(() => client.get("/apps/{appId}/logs/tail", {
|
|
260
309
|
path: { appId },
|
|
@@ -343,6 +392,11 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
343
392
|
getDeployment,
|
|
344
393
|
deleteDeployment,
|
|
345
394
|
promoteDeployment,
|
|
395
|
+
createDraft,
|
|
396
|
+
getDrafts,
|
|
397
|
+
getDraft,
|
|
398
|
+
deleteDraft,
|
|
399
|
+
createDraftPreviewLink,
|
|
346
400
|
getAppLogsTail,
|
|
347
401
|
getAppLogsDownload,
|
|
348
402
|
getDeploymentLogsTail,
|
|
@@ -358,4 +412,4 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
358
412
|
};
|
|
359
413
|
export { parseLogLines as n, createAppsClient as t };
|
|
360
414
|
|
|
361
|
-
//# sourceMappingURL=apps-
|
|
415
|
+
//# sourceMappingURL=apps-DDcguJ1i.js.map
|