@keboola/api-client 46.0.0 → 47.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.
Files changed (462) hide show
  1. package/AGENTS.md +86 -21
  2. package/API-SURFACE.md +49 -29
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +47 -37
  5. package/dist/{ManagementSessionMintError-5FFyvBZi.js → ManagementSessionMintError-4Pkn5Oob.js} +2 -2
  6. package/dist/{ManagementSessionMintError-5FFyvBZi.js.map → ManagementSessionMintError-4Pkn5Oob.js.map} +1 -1
  7. package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs → ManagementSessionMintError-Cu9beG7j.cjs} +2 -2
  8. package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs.map → ManagementSessionMintError-Cu9beG7j.cjs.map} +1 -1
  9. package/dist/QueryJobError-ZZZ043Nm.js +22 -0
  10. package/dist/QueryJobError-ZZZ043Nm.js.map +1 -0
  11. package/dist/{QueryJobTimeoutError-CVNPdCWX.cjs → QueryJobError-irGiP5zh.cjs} +1 -29
  12. package/dist/QueryJobError-irGiP5zh.cjs.map +1 -0
  13. package/dist/QueueJobError-6qSEizWo.cjs +30 -0
  14. package/dist/QueueJobError-6qSEizWo.cjs.map +1 -0
  15. package/dist/QueueJobError-8bThS_Mc.js +19 -0
  16. package/dist/QueueJobError-8bThS_Mc.js.map +1 -0
  17. package/dist/adminRoles-B40yBcmq.js.map +1 -1
  18. package/dist/adminRoles-CO7J5qAy.cjs.map +1 -1
  19. package/dist/{adminRoles-C696kD_U.d.cts → adminRoles-CvdIUkiC.d.ts} +4 -2
  20. package/dist/{adminRoles-C696kD_U.d.ts → adminRoles-DGM8SuuF.d.cts} +4 -2
  21. package/dist/ai/index.cjs +2 -2
  22. package/dist/ai/index.d.cts +2 -2
  23. package/dist/ai/index.d.ts +2 -2
  24. package/dist/ai/index.js +2 -2
  25. package/dist/ai/types.d.cts +1 -1
  26. package/dist/ai/types.d.ts +1 -1
  27. package/dist/{appLogs-BG9ueGxA.cjs → appLogs-Cix2KWra.cjs} +2 -2
  28. package/dist/{appLogs-BG9ueGxA.cjs.map → appLogs-Cix2KWra.cjs.map} +1 -1
  29. package/dist/{appLogs-Dl0v684o.d.cts → appLogs-Cxhm2Rkn.d.cts} +2 -2
  30. package/dist/{appLogs-CEKz68bE.js → appLogs-KslK7qHr.js} +2 -2
  31. package/dist/{appLogs-CEKz68bE.js.map → appLogs-KslK7qHr.js.map} +1 -1
  32. package/dist/{appLogs-DGIctwbb.d.ts → appLogs-xW0-JQXg.d.ts} +2 -2
  33. package/dist/apps/index.cjs +3 -3
  34. package/dist/apps/index.d.cts +3 -3
  35. package/dist/apps/index.d.ts +3 -3
  36. package/dist/apps/index.js +3 -3
  37. package/dist/apps/types.d.cts +2 -2
  38. package/dist/apps/types.d.ts +2 -2
  39. package/dist/assets/index.cjs +1 -1
  40. package/dist/assets/index.d.cts +1 -1
  41. package/dist/assets/index.d.ts +1 -1
  42. package/dist/assets/index.js +1 -1
  43. package/dist/auth/index.cjs +1 -1
  44. package/dist/auth/index.d.cts +1 -1
  45. package/dist/auth/index.d.ts +1 -1
  46. package/dist/auth/index.js +1 -1
  47. package/dist/auth/types.d.cts +2 -2
  48. package/dist/auth/types.d.ts +2 -2
  49. package/dist/{auth-C6cHWIWx.js → auth-4coY1uwo.js} +2 -2
  50. package/dist/{auth-C6cHWIWx.js.map → auth-4coY1uwo.js.map} +1 -1
  51. package/dist/{auth-C9o_0bft.cjs → auth-C8Pjl0Mu.cjs} +2 -2
  52. package/dist/{auth-C9o_0bft.cjs.map → auth-C8Pjl0Mu.cjs.map} +1 -1
  53. package/dist/{authClient-CACOwVt0.js → authClient-2e8ZmzSP.js} +71 -7
  54. package/dist/authClient-2e8ZmzSP.js.map +1 -0
  55. package/dist/{authClient-DSa5t2Ft.d.cts → authClient-Bso5UaXS.d.ts} +22 -4
  56. package/dist/{authClient-DZcAR-eW.cjs → authClient-DfkKlc-2.cjs} +82 -6
  57. package/dist/authClient-DfkKlc-2.cjs.map +1 -0
  58. package/dist/{authClient-ZiaKSKpp.d.ts → authClient-aud2dUZd.d.cts} +22 -4
  59. package/dist/billing/index.cjs +2 -2
  60. package/dist/billing/index.d.cts +1 -1
  61. package/dist/billing/index.d.ts +1 -1
  62. package/dist/billing/index.js +2 -2
  63. package/dist/billing/types.d.cts +1 -1
  64. package/dist/billing/types.d.ts +1 -1
  65. package/dist/chat/index.cjs +3 -3
  66. package/dist/chat/index.d.cts +2 -2
  67. package/dist/chat/index.d.ts +2 -2
  68. package/dist/chat/index.js +3 -3
  69. package/dist/chat/types.d.cts +1 -1
  70. package/dist/chat/types.d.ts +1 -1
  71. package/dist/{collect-97WhfEpt.js → collectByOffset-2XzJqmvr.js} +6 -6
  72. package/dist/collectByOffset-2XzJqmvr.js.map +1 -0
  73. package/dist/{collect-B5TCNiT1.cjs → collectByOffset-DQsqtmJg.cjs} +7 -7
  74. package/dist/collectByOffset-DQsqtmJg.cjs.map +1 -0
  75. package/dist/componentsMcp/index.cjs +3 -0
  76. package/dist/componentsMcp/index.d.cts +2 -0
  77. package/dist/componentsMcp/index.d.ts +2 -0
  78. package/dist/componentsMcp/index.js +2 -0
  79. package/dist/componentsMcp/types.cjs +0 -0
  80. package/dist/componentsMcp/types.d.cts +2 -0
  81. package/dist/componentsMcp/types.d.ts +2 -0
  82. package/dist/componentsMcp/types.js +1 -0
  83. package/dist/componentsMcp-CHobIsuU.js +57 -0
  84. package/dist/componentsMcp-CHobIsuU.js.map +1 -0
  85. package/dist/componentsMcp-pG-PcQrg.cjs +62 -0
  86. package/dist/componentsMcp-pG-PcQrg.cjs.map +1 -0
  87. package/dist/configurations-BTRHVSRq.cjs.map +1 -1
  88. package/dist/configurations-Chg_JwJ1.js.map +1 -1
  89. package/dist/constants/index.cjs +1 -1
  90. package/dist/constants/index.d.cts +2 -3
  91. package/dist/constants/index.d.ts +2 -3
  92. package/dist/constants/index.js +1 -1
  93. package/dist/{constants-Cifrqsls.js → constants-CA4UN2Xv.js} +11 -10
  94. package/dist/constants-CA4UN2Xv.js.map +1 -0
  95. package/dist/{constants-BDGRQqij.cjs → constants-a0jswUeK.cjs} +10 -9
  96. package/dist/constants-a0jswUeK.cjs.map +1 -0
  97. package/dist/{createFetchClient-DITkTV2k.js → createFetchClient-CkHdS_IG.js} +5 -5
  98. package/dist/createFetchClient-CkHdS_IG.js.map +1 -0
  99. package/dist/{createFetchClient-ClWD4ua3.cjs → createFetchClient-lZ_93Yrb.cjs} +5 -5
  100. package/dist/createFetchClient-lZ_93Yrb.cjs.map +1 -0
  101. package/dist/{createGenericFetchClient-KqiJhw8G.js → createGenericFetchClient-CQdNcPC3.js} +2 -2
  102. package/dist/{createGenericFetchClient-KqiJhw8G.js.map → createGenericFetchClient-CQdNcPC3.js.map} +1 -1
  103. package/dist/{createGenericFetchClient-B81Iezpb.cjs → createGenericFetchClient-MOx97wi-.cjs} +2 -2
  104. package/dist/{createGenericFetchClient-B81Iezpb.cjs.map → createGenericFetchClient-MOx97wi-.cjs.map} +1 -1
  105. package/dist/{createOpenapiFetchClient-CioTX11-.cjs → createOpenapiFetchClient-DHYo_k3t.cjs} +2 -2
  106. package/dist/{createOpenapiFetchClient-CioTX11-.cjs.map → createOpenapiFetchClient-DHYo_k3t.cjs.map} +1 -1
  107. package/dist/{createOpenapiFetchClient-wq8iGLZM.js → createOpenapiFetchClient-DXiMv9WL.js} +2 -2
  108. package/dist/{createOpenapiFetchClient-wq8iGLZM.js.map → createOpenapiFetchClient-DXiMv9WL.js.map} +1 -1
  109. package/dist/dataScience/index.cjs +2 -2
  110. package/dist/dataScience/index.d.cts +2 -2
  111. package/dist/dataScience/index.d.ts +2 -2
  112. package/dist/dataScience/index.js +2 -2
  113. package/dist/dataScience/types.d.cts +2 -2
  114. package/dist/dataScience/types.d.ts +2 -2
  115. package/dist/{dataScience-BwHmDoQb.js → dataScience-AwPMeGfz.js} +5 -5
  116. package/dist/{dataScience-BwHmDoQb.js.map → dataScience-AwPMeGfz.js.map} +1 -1
  117. package/dist/{dataScience-Hhoqoql_.cjs → dataScience-BjS1p8WO.cjs} +5 -5
  118. package/dist/{dataScience-Hhoqoql_.cjs.map → dataScience-BjS1p8WO.cjs.map} +1 -1
  119. package/dist/developerPortal/index.cjs +1 -1
  120. package/dist/developerPortal/index.d.cts +2 -2
  121. package/dist/developerPortal/index.d.ts +2 -2
  122. package/dist/developerPortal/index.js +1 -1
  123. package/dist/developerPortal/types.d.cts +1 -1
  124. package/dist/developerPortal/types.d.ts +1 -1
  125. package/dist/{developerPortalClient-loKq7X_U.js → developerPortalClient-Bb2suezr.js} +13 -5
  126. package/dist/{developerPortalClient-loKq7X_U.js.map → developerPortalClient-Bb2suezr.js.map} +1 -1
  127. package/dist/{developerPortalClient-COm7wJxS.cjs → developerPortalClient-DUerKw-7.cjs} +13 -5
  128. package/dist/{developerPortalClient-COm7wJxS.cjs.map → developerPortalClient-DUerKw-7.cjs.map} +1 -1
  129. package/dist/domain/permissions/index.d.cts +1 -2
  130. package/dist/domain/permissions/index.d.ts +1 -2
  131. package/dist/editor/index.cjs +2 -2
  132. package/dist/editor/index.d.cts +2 -2
  133. package/dist/editor/index.d.ts +2 -2
  134. package/dist/editor/index.js +2 -2
  135. package/dist/editor/types.d.cts +1 -1
  136. package/dist/editor/types.d.ts +1 -1
  137. package/dist/encryption/index.cjs +1 -1
  138. package/dist/encryption/index.d.cts +1 -1
  139. package/dist/encryption/index.d.ts +1 -1
  140. package/dist/encryption/index.js +1 -1
  141. package/dist/encryption/types.d.cts +1 -1
  142. package/dist/encryption/types.d.ts +1 -1
  143. package/dist/import/index.cjs +1 -1
  144. package/dist/import/index.d.cts +3 -3
  145. package/dist/import/index.d.ts +3 -3
  146. package/dist/import/index.js +1 -1
  147. package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
  148. package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
  149. package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
  150. package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
  151. package/dist/{index-DeQDdut6.d.cts → index-8ZjY7YD8.d.cts} +34 -2
  152. package/dist/{index-DCxVLGHH.d.ts → index-BGEuaZqI.d.cts} +11 -28
  153. package/dist/{index-se5ee8U1.d.ts → index-BIP0PoMW.d.ts} +4 -4
  154. package/dist/index-B_MzjCeE.d.ts +46 -0
  155. package/dist/{index-DXcTukgn.d.ts → index-BeOd45XE.d.ts} +4 -4
  156. package/dist/{index-DeQDdut6.d.ts → index-BnPmXDVP.d.ts} +34 -2
  157. package/dist/{index-yJ0HrxY6.d.ts → index-C2OAOK0s.d.ts} +4 -4
  158. package/dist/{index-BP3choXr.d.ts → index-CAWy1qjR.d.ts} +19771 -14468
  159. package/dist/{index-syAYY5LC.d.cts → index-CkwZ5x7E.d.cts} +19771 -14468
  160. package/dist/{index-Bt43tKyu.d.cts → index-DTysQ_yn.d.cts} +5 -5
  161. package/dist/{index-CTKC-mwi.d.cts → index-DUB0BwQv.d.cts} +4 -4
  162. package/dist/{index-BnPYPXGQ.d.ts → index-DloFSSj3.d.ts} +3 -3
  163. package/dist/{index-DWFxcmVD.d.ts → index-Dp-a2DdI.d.ts} +4 -4
  164. package/dist/{index-x8ET_BTN.d.cts → index-Ds0tViQS.d.cts} +3 -3
  165. package/dist/{index-DRaVzOLM.d.ts → index-HSkjm3QW.d.ts} +5 -5
  166. package/dist/index-URgNfi5L.d.cts +46 -0
  167. package/dist/{index-BhDxP0x4.d.cts → index-XG5cO-4H.d.cts} +4 -4
  168. package/dist/{types-CESP1ONj.d.ts → index-XaPb6unB.d.cts} +3635 -627
  169. package/dist/{index-D-4TT5yW.d.cts → index-ZYvgoqgW.d.cts} +4 -4
  170. package/dist/{index-GVxpBH6j.d.cts → index-_Va9wynk.d.ts} +11 -28
  171. package/dist/{types-GaOcVZ3d.d.cts → index-r6YSe8B-.d.ts} +3635 -627
  172. package/dist/{index-DS6O4UDB.d.cts → index-x_kS_5x_.d.cts} +4 -4
  173. package/dist/index.cjs +142 -161
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.d.cts +7 -7
  176. package/dist/index.d.ts +7 -7
  177. package/dist/index.js +75 -96
  178. package/dist/index.js.map +1 -1
  179. package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
  180. package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
  181. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
  182. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
  183. package/dist/kaiAgent/index.cjs +1 -1
  184. package/dist/kaiAgent/index.d.cts +2 -2
  185. package/dist/kaiAgent/index.d.ts +2 -2
  186. package/dist/kaiAgent/index.js +1 -1
  187. package/dist/kaiAgent/types.d.cts +1 -1
  188. package/dist/kaiAgent/types.d.ts +1 -1
  189. package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-BmfUG8bB.cjs} +5 -5
  190. package/dist/{kaiAgent-BhcUsBDk.cjs.map → kaiAgent-BmfUG8bB.cjs.map} +1 -1
  191. package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CBPbMwBh.js} +5 -5
  192. package/dist/{kaiAgent-CUeT53-K.js.map → kaiAgent-CBPbMwBh.js.map} +1 -1
  193. package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
  194. package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
  195. package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
  196. package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
  197. package/dist/management/index.cjs +1 -1
  198. package/dist/management/index.d.cts +1 -1
  199. package/dist/management/index.d.ts +1 -1
  200. package/dist/management/index.js +1 -1
  201. package/dist/management/types.d.cts +2 -2
  202. package/dist/management/types.d.ts +2 -2
  203. package/dist/{management-0cWVLHei.cjs → management-BUGPJ1Bu.cjs} +23 -6
  204. package/dist/{management-0cWVLHei.cjs.map → management-BUGPJ1Bu.cjs.map} +1 -1
  205. package/dist/{management-eg4Ig-Cx.js → management-DAg2obYt.js} +23 -6
  206. package/dist/{management-eg4Ig-Cx.js.map → management-DAg2obYt.js.map} +1 -1
  207. package/dist/metastore/index.cjs +1 -1
  208. package/dist/metastore/index.d.cts +1 -1
  209. package/dist/metastore/index.d.ts +1 -1
  210. package/dist/metastore/index.js +1 -1
  211. package/dist/metastore/types.d.cts +1 -1
  212. package/dist/metastore/types.d.ts +1 -1
  213. package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
  214. package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
  215. package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
  216. package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
  217. package/dist/microsoftGraph/index.cjs +2 -2
  218. package/dist/microsoftGraph/index.d.cts +2 -2
  219. package/dist/microsoftGraph/index.d.ts +2 -2
  220. package/dist/microsoftGraph/index.js +2 -2
  221. package/dist/microsoftGraph/types.d.cts +1 -1
  222. package/dist/microsoftGraph/types.d.ts +1 -1
  223. package/dist/{middleware-DmR6OhTY.js → middleware-CWaLMlG1.js} +2 -2
  224. package/dist/{middleware-DmR6OhTY.js.map → middleware-CWaLMlG1.js.map} +1 -1
  225. package/dist/{middleware-D_p5TctO.cjs → middleware-DU_5pFDW.cjs} +2 -2
  226. package/dist/{middleware-D_p5TctO.cjs.map → middleware-DU_5pFDW.cjs.map} +1 -1
  227. package/dist/notifications/index.cjs +3 -3
  228. package/dist/notifications/index.d.cts +2 -2
  229. package/dist/notifications/index.d.ts +2 -2
  230. package/dist/notifications/index.js +3 -3
  231. package/dist/notifications/types.d.cts +1 -1
  232. package/dist/notifications/types.d.ts +1 -1
  233. package/dist/oauth/index.cjs +1 -1
  234. package/dist/oauth/index.d.cts +6 -2
  235. package/dist/oauth/index.d.ts +6 -2
  236. package/dist/oauth/index.js +1 -1
  237. package/dist/oauth/types.d.cts +2 -2
  238. package/dist/oauth/types.d.ts +2 -2
  239. package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
  240. package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
  241. package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
  242. package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
  243. package/dist/omnisearch/index.cjs +2 -2
  244. package/dist/omnisearch/index.d.cts +2 -2
  245. package/dist/omnisearch/index.d.ts +2 -2
  246. package/dist/omnisearch/index.js +2 -2
  247. package/dist/omnisearch/types.d.cts +1 -1
  248. package/dist/omnisearch/types.d.ts +1 -1
  249. package/dist/project-BMmfPhXg.d.ts +74 -0
  250. package/dist/project-dxCJbFay.d.cts +74 -0
  251. package/dist/queryService/index.cjs +1 -1
  252. package/dist/queryService/index.d.cts +1 -1
  253. package/dist/queryService/index.d.ts +1 -1
  254. package/dist/queryService/index.js +1 -1
  255. package/dist/queryService/types.d.cts +2 -2
  256. package/dist/queryService/types.d.ts +2 -2
  257. package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
  258. package/dist/queryService-C-pZha5p.js.map +1 -0
  259. package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
  260. package/dist/queryService-CzK53q94.cjs.map +1 -0
  261. package/dist/queue/index.cjs +1 -1
  262. package/dist/queue/index.d.cts +75 -7
  263. package/dist/queue/index.d.ts +75 -7
  264. package/dist/queue/index.js +1 -1
  265. package/dist/queue/types.d.cts +1 -1
  266. package/dist/queue/types.d.ts +1 -1
  267. package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
  268. package/dist/queue-BJvDWriM.cjs.map +1 -0
  269. package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
  270. package/dist/queue-D6-x4OGF.js.map +1 -0
  271. package/dist/scheduler/index.cjs +3 -3
  272. package/dist/scheduler/index.d.cts +2 -2
  273. package/dist/scheduler/index.d.ts +2 -2
  274. package/dist/scheduler/index.js +3 -3
  275. package/dist/scheduler/types.d.cts +1 -1
  276. package/dist/scheduler/types.d.ts +1 -1
  277. package/dist/sdk/configurations/index.d.cts +2 -4
  278. package/dist/sdk/configurations/index.d.ts +2 -4
  279. package/dist/sdk/developerPortal/index.cjs +3 -3
  280. package/dist/sdk/developerPortal/index.d.cts +3 -3
  281. package/dist/sdk/developerPortal/index.d.ts +3 -3
  282. package/dist/sdk/developerPortal/index.js +3 -3
  283. package/dist/sdk/kaiMemory/index.cjs +1 -1
  284. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  285. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  286. package/dist/sdk/kaiMemory/index.js +1 -1
  287. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  288. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  289. package/dist/sdk/queryService/index.cjs +34 -55
  290. package/dist/sdk/queryService/index.cjs.map +1 -1
  291. package/dist/sdk/queryService/index.d.cts +2 -2
  292. package/dist/sdk/queryService/index.d.ts +2 -2
  293. package/dist/sdk/queryService/index.js +34 -55
  294. package/dist/sdk/queryService/index.js.map +1 -1
  295. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  296. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  297. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  298. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  299. package/dist/sdk/storage/index.cjs +0 -119
  300. package/dist/sdk/storage/index.cjs.map +1 -1
  301. package/dist/sdk/storage/index.d.cts +103 -2
  302. package/dist/sdk/storage/index.d.ts +103 -2
  303. package/dist/sdk/storage/index.js +1 -119
  304. package/dist/sdk/storage/index.js.map +1 -1
  305. package/dist/sdk/tag/index.d.cts +2 -2
  306. package/dist/sdk/tag/index.d.ts +2 -2
  307. package/dist/sdk/tag/types.d.cts +1 -1
  308. package/dist/sdk/tag/types.d.ts +1 -1
  309. package/dist/sdk/vault/index.d.cts +1 -1
  310. package/dist/sdk/vault/index.d.ts +1 -1
  311. package/dist/status/index.cjs +1 -1
  312. package/dist/status/index.d.cts +1 -1
  313. package/dist/status/index.d.ts +1 -1
  314. package/dist/status/index.js +1 -1
  315. package/dist/storage/index.cjs +13 -9
  316. package/dist/storage/index.d.cts +3 -3
  317. package/dist/storage/index.d.ts +3 -3
  318. package/dist/storage/index.js +7 -6
  319. package/dist/storage/types.d.cts +6 -5
  320. package/dist/storage/types.d.ts +6 -5
  321. package/dist/{storage-RkNaOFJ-.js → storage-DyR7hDdv.js} +347 -168
  322. package/dist/storage-DyR7hDdv.js.map +1 -0
  323. package/dist/{storage-76Sf_z_H.cjs → storage-yovv11k6.cjs} +366 -169
  324. package/dist/storage-yovv11k6.cjs.map +1 -0
  325. package/dist/stream/index.cjs +3 -3
  326. package/dist/stream/index.d.cts +2 -2
  327. package/dist/stream/index.d.ts +2 -2
  328. package/dist/stream/index.js +3 -3
  329. package/dist/stream/types.d.cts +1 -1
  330. package/dist/stream/types.d.ts +1 -1
  331. package/dist/syncActions/index.cjs +1 -1
  332. package/dist/syncActions/index.d.cts +2 -2
  333. package/dist/syncActions/index.d.ts +2 -2
  334. package/dist/syncActions/index.js +1 -1
  335. package/dist/syncActions/types.d.cts +1 -1
  336. package/dist/syncActions/types.d.ts +1 -1
  337. package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
  338. package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
  339. package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
  340. package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
  341. package/dist/telemetry/index.cjs +3 -6
  342. package/dist/telemetry/index.cjs.map +1 -1
  343. package/dist/telemetry/index.d.cts +2 -5
  344. package/dist/telemetry/index.d.ts +2 -5
  345. package/dist/telemetry/index.js +3 -6
  346. package/dist/telemetry/index.js.map +1 -1
  347. package/dist/telemetry/types.d.cts +1 -1
  348. package/dist/telemetry/types.d.ts +1 -1
  349. package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
  350. package/dist/transientRetries-B4iusp69.js.map +1 -0
  351. package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
  352. package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
  353. package/dist/{types-5HdT1rSH.d.cts → types--qQPfxWt.d.cts} +2 -2
  354. package/dist/{types-sg2xnYlr.d.cts → types-4CjbcUdD.d.cts} +95 -26
  355. package/dist/{types-B1GN_I06.d.ts → types-4HmtNuJf.d.ts} +2 -2
  356. package/dist/types-4bSZLxq3.d.cts +1973 -0
  357. package/dist/{types-BHxsCu0f.d.ts → types-7DBpH7Rf.d.ts} +2 -2
  358. package/dist/{types-Btb8r9iw.d.ts → types-B2ZLjagf.d.ts} +95 -26
  359. package/dist/{types--owScV0r.d.cts → types-B6ozaDkl.d.cts} +11 -3
  360. package/dist/{types-DUDQg4ry.d.cts → types-BBbzWczQ.d.cts} +2 -2
  361. package/dist/{types-CyO8qCKl.d.cts → types-BG0oWq8u.d.cts} +2 -2
  362. package/dist/types-BIDKSQdc.d.ts +1973 -0
  363. package/dist/{types-CFurl1xe.d.cts → types-BKIcow3B.d.cts} +2 -2
  364. package/dist/{types-Nwq1QtYe.d.ts → types-BNPvFLgC.d.ts} +2 -2
  365. package/dist/{types-DDjp9lXD.d.ts → types-BXgINefw.d.ts} +2 -2
  366. package/dist/{types-C05ALlV6.d.cts → types-BZBU3mwz.d.cts} +3 -3
  367. package/dist/{types-LxDyOfdY.d.cts → types-B_1plf0y.d.cts} +2 -2
  368. package/dist/{types-DHdXufVf.d.cts → types-B_3zoXA1.d.cts} +3 -3
  369. package/dist/{types-BE7mRarT.d.ts → types-BcQ3j8xK.d.ts} +2 -2
  370. package/dist/{types-tJLoKlMX.d.cts → types-BdF6NDvo.d.cts} +2 -2
  371. package/dist/{types-DiE081mn.d.ts → types-BiBBKcin.d.ts} +3 -3
  372. package/dist/{types-fAqPUl-a.d.ts → types-BiTn_JVW.d.cts} +233 -37
  373. package/dist/{types-BtII5RSD.d.ts → types-BjEiUOL6.d.ts} +11 -3
  374. package/dist/{types-BMWeCO5M.d.ts → types-BoH7NFCh.d.ts} +3 -3
  375. package/dist/{types-BGICH80a.d.cts → types-BwsE-pFo.d.cts} +2 -2
  376. package/dist/{types-B5kkD7h4.d.cts → types-Bx0TSdwF.d.cts} +2 -2
  377. package/dist/{types-sI3K5t3w.d.cts → types-C2JMisvL.d.ts} +233 -37
  378. package/dist/{types-CaBhH99H.d.ts → types-C2j6Jsie.d.ts} +3 -3
  379. package/dist/{types-DSv1XS7s.d.ts → types-C3IQu1gV.d.ts} +3 -3
  380. package/dist/{types-DQauEri3.d.ts → types-C7t_6FLh.d.ts} +2 -2
  381. package/dist/{types-UI2aZ74n.d.ts → types-CBrNIgEy.d.ts} +3 -3
  382. package/dist/{types-Dvysi2Eo.d.ts → types-CEw2IzWk.d.ts} +2 -2
  383. package/dist/{types-C8oZX0oP.d.cts → types-CMKIdreQ.d.cts} +3 -3
  384. package/dist/{types-qGMVZGSB.d.ts → types-COQOzyac.d.ts} +45 -2
  385. package/dist/{types-Csmy6qFk.d.cts → types-CZCPdPqv.d.cts} +2 -2
  386. package/dist/{types-BksK2Eo0.d.cts → types-Cw9UISvM.d.ts} +2 -2
  387. package/dist/{types-YdE2VJzw.d.cts → types-D51g4h9w.d.cts} +2 -2
  388. package/dist/{types-DGu-wPPm.d.cts → types-D8w9lyb8.d.cts} +45 -2
  389. package/dist/{types-XHNJRi3-.d.cts → types-DBJ8c3hN.d.cts} +2 -2
  390. package/dist/{types-C4yryy-R.d.ts → types-DHlXKVEM.d.ts} +2 -2
  391. package/dist/{types-ggpJFEWZ.d.cts → types-DPDq8C4q.d.cts} +2 -2
  392. package/dist/{types-qWA5iU0j.d.ts → types-DWJVbskE.d.ts} +2 -2
  393. package/dist/{types-Br04cEri.d.ts → types-Dg8a7m7f.d.ts} +2 -2
  394. package/dist/{types-CoQET4Ep.d.ts → types-DgIzXY-Y.d.ts} +2 -2
  395. package/dist/{types-QroFANIW.d.cts → types-L50Y6ATu.d.cts} +3 -3
  396. package/dist/{types-BuKviWct.d.ts → types-OkQWmonU.d.cts} +2 -2
  397. package/dist/{types-DMWfdZ5C.d.cts → types-TRJiPqJr.d.cts} +2 -2
  398. package/dist/{types-BTqxM-IN.d.ts → types-ij6BpTzR.d.ts} +2 -2
  399. package/dist/{types-BoNqe_Lz.d.ts → types-ituiCs8g.d.ts} +2 -2
  400. package/dist/{types-BRvs3fXN.d.cts → types-kbyIaA7p.d.cts} +3 -3
  401. package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
  402. package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
  403. package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
  404. package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
  405. package/dist/vault/index.cjs +6 -6
  406. package/dist/vault/index.cjs.map +1 -1
  407. package/dist/vault/index.d.cts +1 -1
  408. package/dist/vault/index.d.ts +1 -1
  409. package/dist/vault/index.js +6 -6
  410. package/dist/vault/index.js.map +1 -1
  411. package/dist/vault/types.d.cts +1 -1
  412. package/dist/vault/types.d.ts +1 -1
  413. package/package.json +27 -1
  414. package/surface/apps.md +5 -5
  415. package/surface/auth.md +2 -0
  416. package/surface/chat.md +2 -2
  417. package/surface/componentsMcp.md +9 -0
  418. package/surface/dataScience.md +2 -2
  419. package/surface/kaiAgent.md +2 -2
  420. package/surface/management.md +4 -2
  421. package/surface/oauth.md +1 -0
  422. package/surface/queryService.md +4 -4
  423. package/surface/queue.md +2 -2
  424. package/surface/sdk.md +0 -24
  425. package/surface/storage.md +87 -57
  426. package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
  427. package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
  428. package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
  429. package/dist/authClient-CACOwVt0.js.map +0 -1
  430. package/dist/authClient-DZcAR-eW.cjs.map +0 -1
  431. package/dist/collect-97WhfEpt.js.map +0 -1
  432. package/dist/collect-B5TCNiT1.cjs.map +0 -1
  433. package/dist/constants-BDGRQqij.cjs.map +0 -1
  434. package/dist/constants-Cifrqsls.js.map +0 -1
  435. package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
  436. package/dist/createFetchClient-DITkTV2k.js.map +0 -1
  437. package/dist/index-BzhLY7el.d.cts +0 -254
  438. package/dist/index-CH5Sg3rk.d.ts +0 -77
  439. package/dist/index-CiwWDu-q.d.cts +0 -16
  440. package/dist/index-DCAnnlcL.d.ts +0 -16
  441. package/dist/index-DQwjlSJi.d.cts +0 -77
  442. package/dist/index-PyTPrtaL.d.ts +0 -254
  443. package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
  444. package/dist/jobStatus-BJdbZ72V.js.map +0 -1
  445. package/dist/project-BN7YRWFS.d.cts +0 -24
  446. package/dist/project-BpWTnoQ_.d.ts +0 -24
  447. package/dist/queryService-Blfz59Ms.js.map +0 -1
  448. package/dist/queryService-RlNYw7LG.cjs.map +0 -1
  449. package/dist/queue-BrgRdtOr.cjs.map +0 -1
  450. package/dist/queue-CNvR-M23.js.map +0 -1
  451. package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
  452. package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
  453. package/dist/storage-76Sf_z_H.cjs.map +0 -1
  454. package/dist/storage-RkNaOFJ-.js.map +0 -1
  455. package/dist/types-1B3ioN33.d.cts +0 -1868
  456. package/dist/types-BjIuVrAZ.d.ts +0 -66
  457. package/dist/types-CGhu0tID.d.cts +0 -1298
  458. package/dist/types-CclheyE7.d.cts +0 -66
  459. package/dist/types-M9vU_ONp.d.ts +0 -1868
  460. package/dist/types-P_61P9Nd.d.ts +0 -1298
  461. package/dist/types-j30rKMe6.d.ts +0 -957
  462. package/dist/types-q5lgElyc.d.cts +0 -957
@@ -1 +0,0 @@
1
- {"version":3,"file":"authClient-DZcAR-eW.cjs","names":["z","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/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 type { AuthOpenApiFetchClient } from '../authClient';\n\nimport type { GetMeMaintainersQuery, GetMeOrganizationsQuery, GetMeProjectsQuery } from './types';\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 return { get, getOrganizations, getMaintainers, getProjects };\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":"collect-97WhfEpt.js","names":[],"sources":["../src/utils/async/collect.ts"],"sourcesContent":["import { createAbortError } from '../createAbortError';\n\nexport type CollectOptions<T> = {\n fetchFrom: (offset: number, pageSize?: number, signal?: AbortSignal) => Promise<T[]>;\n pageSize?: number;\n limit?: number;\n signal?: AbortSignal;\n};\n\n/**\n * Collects items from an offset-paginated endpoint — up to `limit` of them, or all of them when\n * `limit` is omitted. Calls `fetchFrom` sequentially with the offset advancing by the number of\n * items received, and hands it `pageSize` so the request and the traversal agree on one value.\n *\n * Traversal ends on a page shorter than `pageSize`, or — when `pageSize` is omitted — only on an\n * empty page. Passing it therefore saves the trailing request, at the cost of stopping early if the\n * endpoint returns fewer items per page than asked for.\n */\nexport const collect = async <T>({\n fetchFrom,\n pageSize,\n limit,\n signal,\n}: CollectOptions<T>): Promise<T[]> => {\n if (signal?.aborted) throw createAbortError(signal.reason);\n if (limit !== undefined && limit < 0) throw new Error('Invalid collect limit');\n if (pageSize !== undefined && pageSize < 1) throw new Error('Invalid collect pageSize');\n\n const items: T[] = [];\n\n if (limit === 0) return items;\n\n let offset = 0;\n\n while (true) {\n const batch = await fetchFrom(offset, pageSize, signal);\n\n items.push(...batch);\n offset += batch.length;\n\n if (limit !== undefined && items.length >= limit) return items.slice(0, limit);\n if (pageSize === undefined ? batch.length === 0 : batch.length < pageSize) return items;\n }\n};\n"],"mappings":";;;;;;;;;;;AAkBA,MAAa,UAAU,OAAU,EAC/B,WACA,UACA,OACA,aACqC;CACrC,IAAI,QAAQ,SAAS,MAAM,iBAAiB,OAAO,MAAM;CACzD,IAAI,UAAU,KAAA,KAAa,QAAQ,GAAG,MAAM,IAAI,MAAM,uBAAuB;CAC7E,IAAI,aAAa,KAAA,KAAa,WAAW,GAAG,MAAM,IAAI,MAAM,0BAA0B;CAEtF,MAAM,QAAa,CAAC;CAEpB,IAAI,UAAU,GAAG,OAAO;CAExB,IAAI,SAAS;CAEb,OAAO,MAAM;EACX,MAAM,QAAQ,MAAM,UAAU,QAAQ,UAAU,MAAM;EAEtD,MAAM,KAAK,GAAG,KAAK;EACnB,UAAU,MAAM;EAEhB,IAAI,UAAU,KAAA,KAAa,MAAM,UAAU,OAAO,OAAO,MAAM,MAAM,GAAG,KAAK;EAC7E,IAAI,aAAa,KAAA,IAAY,MAAM,WAAW,IAAI,MAAM,SAAS,UAAU,OAAO;CACpF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"collect-B5TCNiT1.cjs","names":["createAbortError"],"sources":["../src/utils/async/collect.ts"],"sourcesContent":["import { createAbortError } from '../createAbortError';\n\nexport type CollectOptions<T> = {\n fetchFrom: (offset: number, pageSize?: number, signal?: AbortSignal) => Promise<T[]>;\n pageSize?: number;\n limit?: number;\n signal?: AbortSignal;\n};\n\n/**\n * Collects items from an offset-paginated endpoint — up to `limit` of them, or all of them when\n * `limit` is omitted. Calls `fetchFrom` sequentially with the offset advancing by the number of\n * items received, and hands it `pageSize` so the request and the traversal agree on one value.\n *\n * Traversal ends on a page shorter than `pageSize`, or — when `pageSize` is omitted — only on an\n * empty page. Passing it therefore saves the trailing request, at the cost of stopping early if the\n * endpoint returns fewer items per page than asked for.\n */\nexport const collect = async <T>({\n fetchFrom,\n pageSize,\n limit,\n signal,\n}: CollectOptions<T>): Promise<T[]> => {\n if (signal?.aborted) throw createAbortError(signal.reason);\n if (limit !== undefined && limit < 0) throw new Error('Invalid collect limit');\n if (pageSize !== undefined && pageSize < 1) throw new Error('Invalid collect pageSize');\n\n const items: T[] = [];\n\n if (limit === 0) return items;\n\n let offset = 0;\n\n while (true) {\n const batch = await fetchFrom(offset, pageSize, signal);\n\n items.push(...batch);\n offset += batch.length;\n\n if (limit !== undefined && items.length >= limit) return items.slice(0, limit);\n if (pageSize === undefined ? batch.length === 0 : batch.length < pageSize) return items;\n }\n};\n"],"mappings":";;;;;;;;;;;AAkBA,MAAa,UAAU,OAAU,EAC/B,WACA,UACA,OACA,aACqC;CACrC,IAAI,QAAQ,SAAS,MAAMA,yBAAAA,iBAAiB,OAAO,MAAM;CACzD,IAAI,UAAU,KAAA,KAAa,QAAQ,GAAG,MAAM,IAAI,MAAM,uBAAuB;CAC7E,IAAI,aAAa,KAAA,KAAa,WAAW,GAAG,MAAM,IAAI,MAAM,0BAA0B;CAEtF,MAAM,QAAa,CAAC;CAEpB,IAAI,UAAU,GAAG,OAAO;CAExB,IAAI,SAAS;CAEb,OAAO,MAAM;EACX,MAAM,QAAQ,MAAM,UAAU,QAAQ,UAAU,MAAM;EAEtD,MAAM,KAAK,GAAG,KAAK;EACnB,UAAU,MAAM;EAEhB,IAAI,UAAU,KAAA,KAAa,MAAM,UAAU,OAAO,OAAO,MAAM,MAAM,GAAG,KAAK;EAC7E,IAAI,aAAa,KAAA,IAAY,MAAM,WAAW,IAAI,MAAM,SAAS,UAAU,OAAO;CACpF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-BDGRQqij.cjs","names":[],"sources":["../src/constants/projectFeatures.ts","../src/constants/backends.ts","../src/constants/serviceIds.ts","../src/constants/stacks.ts","../src/constants/index.ts"],"sourcesContent":["export const ProjectFeature = {\n DisableLegacyBucketPrefix: 'disable-legacy-bucket-prefix',\n SoxProtectedDefaultBranch: 'protected-default-branch',\n StorageBranches: 'storage-branches',\n} as const;\n\nexport type ProjectFeature = (typeof ProjectFeature)[keyof typeof ProjectFeature];\n","export const Backend = {\n Snowflake: 'snowflake',\n Bigquery: 'bigquery',\n} as const;\n\nexport type Backend = (typeof Backend)[keyof typeof Backend];\n","/**\n * Every service a Keboola stack can announce in its `GET /v2/storage` index.\n *\n * - The values are the `id`s the stack reports; `Service['id']` and the service-client registry\n * both narrow on them.\n * - Callers enumerate them at runtime — a test double announcing every service, for one.\n */\nexport const ServiceId = {\n Vault: 'vault',\n DataScience: 'data-science',\n Encryption: 'encryption',\n Telemetry: 'telemetry',\n Ai: 'ai',\n Editor: 'editor',\n Import: 'import',\n Oauth: 'oauth',\n Query: 'query',\n Queue: 'queue',\n KaiAssistant: 'kai-assistant',\n KaiAgent: 'kai-agent',\n SyncActions: 'sync-actions',\n Stream: 'stream',\n Notification: 'notification',\n Scheduler: 'scheduler',\n Metastore: 'metastore',\n Billing: 'billing',\n} as const;\n\nexport type ServiceId = (typeof ServiceId)[keyof typeof ServiceId];\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 { ProjectFeature } from './projectFeatures';\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-Cifrqsls.js","names":[],"sources":["../src/constants/projectFeatures.ts","../src/constants/backends.ts","../src/constants/serviceIds.ts","../src/constants/stacks.ts","../src/constants/index.ts"],"sourcesContent":["export const ProjectFeature = {\n DisableLegacyBucketPrefix: 'disable-legacy-bucket-prefix',\n SoxProtectedDefaultBranch: 'protected-default-branch',\n StorageBranches: 'storage-branches',\n} as const;\n\nexport type ProjectFeature = (typeof ProjectFeature)[keyof typeof ProjectFeature];\n","export const Backend = {\n Snowflake: 'snowflake',\n Bigquery: 'bigquery',\n} as const;\n\nexport type Backend = (typeof Backend)[keyof typeof Backend];\n","/**\n * Every service a Keboola stack can announce in its `GET /v2/storage` index.\n *\n * - The values are the `id`s the stack reports; `Service['id']` and the service-client registry\n * both narrow on them.\n * - Callers enumerate them at runtime — a test double announcing every service, for one.\n */\nexport const ServiceId = {\n Vault: 'vault',\n DataScience: 'data-science',\n Encryption: 'encryption',\n Telemetry: 'telemetry',\n Ai: 'ai',\n Editor: 'editor',\n Import: 'import',\n Oauth: 'oauth',\n Query: 'query',\n Queue: 'queue',\n KaiAssistant: 'kai-assistant',\n KaiAgent: 'kai-agent',\n SyncActions: 'sync-actions',\n Stream: 'stream',\n Notification: 'notification',\n Scheduler: 'scheduler',\n Metastore: 'metastore',\n Billing: 'billing',\n} as const;\n\nexport type ServiceId = (typeof ServiceId)[keyof typeof ServiceId];\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 { ProjectFeature } from './projectFeatures';\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":"createFetchClient-ClWD4ua3.cjs","names":[],"sources":["../src/internal.ts","../src/errors/ApiError.ts","../src/fetchClient/createFetchClient/utils.ts","../src/fetchClient/createFetchClient/createFetchClient.ts"],"sourcesContent":["// Package-internal constants. Not part of the public\n// `@keboola/api-client/constants` sub-path (that is the `constants/` directory).\n\nexport const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n PROJECT_ID: 'X-KBC-ProjectId',\n UI_VERSION: 'X-KBC-Ui-Version',\n /** Storage job a request enqueued, reported on the response rather than in its body. */\n STORAGE_API_JOB_ID: 'X-StorageApi-Job-Id',\n /** Set to \"1\" to opt an auth call into browser/cookie mode. */\n CSRF: 'X-KBC-CSRF',\n} as const;\n\n/** Request headers that carry a credential — never kept on an error or written to a log. */\nexport const CREDENTIAL_HEADERS = [\n KeboolaHttpHeader.STORAGE_API_TOKEN,\n KeboolaHttpHeader.MANAGEMENT_API_TOKEN,\n 'authorization',\n 'cookie',\n];\n\nexport const REDACTED = '[REDACTED]';\n\n/** The headers as a record, each one named in `redacted` (any case) set to `[REDACTED]`. */\nexport const redactHeaders = (headers: Headers, redacted: readonly string[]) => {\n const redactedSet = new Set(redacted.map((name) => name.toLowerCase()));\n const result: Record<string, string> = {};\n headers.forEach((value, name) => {\n result[name] = redactedSet.has(name.toLowerCase()) ? REDACTED : value;\n });\n return result;\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\nimport { CREDENTIAL_HEADERS, redactHeaders } from '../internal';\n\n/**\n * The status line, as a message an error reporter can group on.\n *\n * - `statusText` is empty on every HTTP/2 response: the protocol dropped the reason phrase, and\n * `fetch` reports that as `''` rather than synthesising one.\n * - So the status number leads, and `statusText` only decorates it where a server sent one.\n * - Without this an HTTP/2 failure reaches Sentry as `Error:` with an empty message, and the\n * status — the one field that says what went wrong — is absent from the report.\n */\nconst statusLine = (response: Response) =>\n response.statusText ? `${response.status} ${response.statusText}` : `${response.status}`;\n\n/**\n * A body-less copy of the request with every credential header masked.\n *\n * - Keeps the method, URL and the remaining headers for whoever handles the error.\n * - A masked header still appears, as `[REDACTED]`, so a reader sees it was sent.\n * - A copy, not an edit: the original request may still be retried with its token.\n */\nconst withoutCredentials = (request: Request) =>\n new Request(request.url, {\n method: request.method,\n headers: redactHeaders(request.headers, CREDENTIAL_HEADERS),\n });\n\nexport class ApiError extends Error {\n response: Response;\n request: Request;\n data: unknown;\n\n constructor({ response, request, data }: ApiResponse) {\n super(statusLine(response));\n this.name = 'ApiError';\n this.response = response;\n this.request = withoutCredentials(request);\n this.data = data;\n }\n}\n","import type { IStringifyOptions } from 'qs';\nimport qs from 'qs';\n\nimport { HttpStatus } from '../../internal';\n\nimport type {\n ApiResponse,\n BodyParam,\n CreateFetchRequestFn,\n ParseAs,\n PathParam,\n ValidateStatusFn,\n} from './types';\n\n/**\n * Strips trailing slashes from a base URL so concatenating a leading-slash\n * path (e.g. `/v2/storage`) never produces a double slash.\n *\n * Without this, callers that pass `https://connection.keboola.com/` end up\n * issuing requests to `https://connection.keboola.com//v2/storage/...`, which\n * the Storage API rejects with a 404.\n */\nexport const normalizeBaseUrl = (baseUrl: string): string => baseUrl.replace(/\\/+$/, '');\n\nexport const HttpHeader = {\n CONTENT_TYPE: 'content-type',\n CONTENT_DISPOSITION: 'content-disposition',\n AUTHORIZATION: 'Authorization',\n IDEMPOTENCY_KEY: 'Idempotency-Key',\n IF_MATCH: 'If-Match',\n};\n\nexport const HttpContentType = {\n JSON: 'application/json',\n TEXT_PLAIN: 'text/plain',\n FORM_DATA: 'multipart/form-data',\n TEXT_HTML: 'text/html',\n};\n\nexport const defaultValidateStatus: ValidateStatusFn = ({ response }) =>\n response.status >= 200 && response.status <= 299;\n\n/**\n * Whether a response declares HTML.\n *\n * - Media types are case-insensitive, so `Text/HTML` counts.\n * - A header fact only: a `text/html` response may still carry no body at all.\n */\nexport const isHtmlResponse = ({ response }: ApiResponse) =>\n !!response.headers\n .get(HttpHeader.CONTENT_TYPE)\n ?.toLowerCase()\n .includes(HttpContentType.TEXT_HTML);\n\n/**\n * Whether a response carried no payload, across every shape `parseData` produces for one:\n *\n * 1. `null` — a `204`, or a JSON body that was empty or whitespace.\n * 2. `''` — any other media type with an empty body, read as text.\n *\n * Whitespace-only text counts as empty, matching how `parseJson` already treats it.\n */\nexport const isContentEmpty = ({ data }: ApiResponse) =>\n data === null || data === undefined || (typeof data === 'string' && data.trim() === '');\n\nfunction removeUndefined(obj: Record<string, string>) {\n const objCopy = { ...obj };\n for (const [key, value] of Object.entries(objCopy)) {\n if (value == null) delete objCopy[key];\n }\n return objCopy;\n}\n\n// `application/json`, but also `application/json; charset=utf-8` and the `+json` suffix family.\n// Comparing the raw header for equality misses every response that carries a charset.\nconst JSON_MEDIA_TYPE = /^application\\/([\\w.-]+\\+)?json$/;\n\nconst getMediaType = (response: Response) =>\n response.headers.get(HttpHeader.CONTENT_TYPE)?.split(';')[0]?.trim().toLowerCase() ?? '';\n\n// Declared JSON is parsed strictly: a body that doesn't parse is a broken response, not a text\n// payload, and `JSON.parse` throwing is the right answer. Read it as text first only so an empty\n// body can resolve to `null` like a 204 — matching the charset form brings `application/json;\n// charset=utf-8` onto this path, where `response.json()` would turn a 200-with-no-body into a\n// `SyntaxError` it never used to be.\nconst parseJson = async (response: Response) => {\n const text = await response.text();\n return text.trim() === '' ? null : JSON.parse(text);\n};\n\nexport const parseData = async (response: Response, parseAs: ParseAs = 'auto') => {\n // No body to read, whatever the caller asked for.\n if (response.status === HttpStatus.NO_CONTENT) return null;\n\n // Per-method-call override\n if (parseAs === 'text') return response.text();\n if (parseAs === 'blob') return response.blob();\n if (parseAs === 'json') return parseJson(response);\n\n const mediaType = getMediaType(response);\n if (JSON_MEDIA_TYPE.test(mediaType)) return parseJson(response);\n\n // A declared binary payload must come back as bytes — `text()` would decode it as UTF-8 and\n // corrupt it. `application/octet-stream` is the only binary type an endpoint declares today\n // (kai-agent's sandbox file download); widen deliberately, never by sniffing.\n if (mediaType === 'application/octet-stream') return response.blob();\n\n // Any other declared type describes its own payload — the query-service CSV export, the\n // data-science `text/plain` endpoints — so hand back the exact bytes instead of sniffing them.\n return response.text();\n};\n\n// Header instance serialize undefined value as `undefined`, we do not want that\nconst cleanHeadersInit = (headersInit: HeadersInit | undefined) => {\n if (Array.isArray(headersInit)) return headersInit;\n if (headersInit instanceof Headers) return headersInit;\n if (headersInit == null) return headersInit;\n\n return removeUndefined(headersInit);\n};\n\nconst createHeaders = (\n headersInitA: HeadersInit | undefined,\n headersInitB: HeadersInit | undefined,\n) => {\n const headersA = new Headers(cleanHeadersInit(headersInitA));\n const headersB = new Headers(cleanHeadersInit(headersInitB));\n\n headersB.forEach((value, key) => {\n headersA.set(key, value);\n });\n\n return headersA;\n};\n\nexport const createPath = (path: string, pathParam: PathParam = {}) =>\n path.replace(/\\{([^}]+)}/g, (_, key) => {\n if (!(key in pathParam))\n throw new Error(`Path parameter \"${key}\" is missing in the path \"${path}\"`);\n\n return encodeURIComponent(pathParam[key]!);\n });\n\nexport const createSearch = (\n query: Record<string, unknown>,\n options: Pick<IStringifyOptions, 'arrayFormat'> = {},\n) => {\n return qs.stringify(query, {\n encodeValuesOnly: true,\n skipNulls: true,\n ...options,\n });\n};\n\nexport const createBody = (body: BodyParam, headers: Headers) => {\n if (body == null) return null;\n if (body instanceof FormData) return body; // fetch automatically sets content-type header\n if (typeof body === 'string') return body; // fetch automatically sets content-type header\n\n const stringifyBody = JSON.stringify(body);\n const stringBody = stringifyBody === '{}' ? null : stringifyBody;\n if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);\n\n return stringBody;\n};\n\nexport const parseContentDispositionHeader = (contentDisposition?: string | null) => {\n // extract the type ('inline' or 'attachment'), default the type to 'unknown'\n const type = (() => {\n const typeMatch = contentDisposition?.match(/^\\s*(inline|attachment)\\s*;/i);\n return (typeMatch?.[1]?.toLowerCase() ?? 'unknown') as 'inline' | 'attachment' | 'unknown';\n })();\n\n // extract the filename, default the type to null\n const filename = (() => {\n const filenameMatch = contentDisposition?.match(/filename=\"([^\"]+)\"/i);\n if (filenameMatch) return filenameMatch[1];\n\n // If no filename=\"...\", check for encoded filename*=UTF-8''\n const encodedFilenameMatch = contentDisposition?.match(/filename\\*=(?:UTF-8'')?([^;]+)/i);\n if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);\n\n // Check for unquoted filenames (rare but possible)\n const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);\n return unquotedFilenameMatch?.[1] ?? null;\n })();\n\n // Return the parsed result\n return { type, filename };\n};\n\nexport const createFetchRequest: CreateFetchRequestFn = ({\n url,\n method,\n params,\n options = {},\n defaultOptions,\n}) => {\n const {\n baseUrl,\n validateStatus: defValidateStatus = defaultValidateStatus,\n headers: defaultHeaders,\n fetchFn: defaultFetchFn,\n ...restDefaultOptions\n } = defaultOptions;\n const {\n validateStatus,\n queryArrayFormat,\n headers: endpointHeaders,\n fetchFn,\n parseAs,\n ...restOptions\n } = options;\n\n const headers = createHeaders(defaultHeaders, endpointHeaders);\n const path = createPath(url, params.path);\n const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });\n const body = createBody(params.body, headers);\n\n const urlInstance = new URL(normalizeBaseUrl(baseUrl) + path);\n urlInstance.search = search;\n\n const request = new Request(urlInstance, {\n ...restDefaultOptions,\n ...restOptions,\n headers,\n method: method.toUpperCase(),\n body,\n });\n\n return {\n request,\n validateStatus: validateStatus ?? defValidateStatus,\n fetchFn: fetchFn ?? defaultFetchFn,\n parseAs,\n };\n};\n","import { ApiError } from '../../errors';\n\nimport type {\n BaseFetchParams,\n CoreFetchFn,\n CreateFetchClientOptions,\n FetchClientOptions,\n HttpMethod,\n} from './types';\nimport { createFetchRequest, parseData } from './utils';\n\nexport type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;\n\nexport const isApiError = (error: unknown): error is ApiError => error instanceof ApiError;\n\nexport const isAbortError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'AbortError';\n\nexport const isTimeoutError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'TimeoutError';\n\nexport const isFetchClientError = (error: unknown): error is FetchClientError =>\n error instanceof TypeError || error instanceof SyntaxError || isApiError(error);\n\n// `fetchFn` is resolved per request by `createFetchRequest` (endpoint option beats client option),\n// so a single request can swap the transport without rebuilding the client.\nconst coreFetch: CoreFetchFn = async ({ request, validateStatus, fetchFn = fetch, parseAs }) => {\n const response = await fetchFn(request);\n const data = await parseData(response, parseAs);\n\n const apiResponse = {\n request,\n response,\n data,\n };\n\n const boolOrError = validateStatus(apiResponse);\n if (isApiError(boolOrError)) throw boolOrError;\n if (!boolOrError) throw new ApiError(apiResponse);\n\n return apiResponse;\n};\n\nexport const createFetchClient = ({\n middlewares = [],\n baseUrl: _baseUrl,\n ...defaultOptions\n}: CreateFetchClientOptions) => {\n const fetchWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n coreFetch,\n );\n const resolveBaseUrl = async () => (typeof _baseUrl === 'function' ? _baseUrl() : _baseUrl);\n\n const createFetchMethod =\n (method: HttpMethod) =>\n async (url: string, params: BaseFetchParams, options: FetchClientOptions = {}) => {\n const baseUrl = await resolveBaseUrl();\n const request = createFetchRequest({\n url,\n method,\n params,\n defaultOptions: { ...defaultOptions, baseUrl: baseUrl },\n options,\n });\n\n const methodMiddlewares = options?.middlewares ?? [];\n\n return methodMiddlewares.reduceRight(\n (next, middleware) => middleware(next),\n fetchWithMiddlewares,\n )(request);\n };\n\n return {\n get: createFetchMethod('get'),\n post: createFetchMethod('post'),\n put: createFetchMethod('put'),\n patch: createFetchMethod('patch'),\n delete: createFetchMethod('delete'),\n };\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createFetchClient-DITkTV2k.js","names":[],"sources":["../src/internal.ts","../src/errors/ApiError.ts","../src/fetchClient/createFetchClient/utils.ts","../src/fetchClient/createFetchClient/createFetchClient.ts"],"sourcesContent":["// Package-internal constants. Not part of the public\n// `@keboola/api-client/constants` sub-path (that is the `constants/` directory).\n\nexport const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n PROJECT_ID: 'X-KBC-ProjectId',\n UI_VERSION: 'X-KBC-Ui-Version',\n /** Storage job a request enqueued, reported on the response rather than in its body. */\n STORAGE_API_JOB_ID: 'X-StorageApi-Job-Id',\n /** Set to \"1\" to opt an auth call into browser/cookie mode. */\n CSRF: 'X-KBC-CSRF',\n} as const;\n\n/** Request headers that carry a credential — never kept on an error or written to a log. */\nexport const CREDENTIAL_HEADERS = [\n KeboolaHttpHeader.STORAGE_API_TOKEN,\n KeboolaHttpHeader.MANAGEMENT_API_TOKEN,\n 'authorization',\n 'cookie',\n];\n\nexport const REDACTED = '[REDACTED]';\n\n/** The headers as a record, each one named in `redacted` (any case) set to `[REDACTED]`. */\nexport const redactHeaders = (headers: Headers, redacted: readonly string[]) => {\n const redactedSet = new Set(redacted.map((name) => name.toLowerCase()));\n const result: Record<string, string> = {};\n headers.forEach((value, name) => {\n result[name] = redactedSet.has(name.toLowerCase()) ? REDACTED : value;\n });\n return result;\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\nimport { CREDENTIAL_HEADERS, redactHeaders } from '../internal';\n\n/**\n * The status line, as a message an error reporter can group on.\n *\n * - `statusText` is empty on every HTTP/2 response: the protocol dropped the reason phrase, and\n * `fetch` reports that as `''` rather than synthesising one.\n * - So the status number leads, and `statusText` only decorates it where a server sent one.\n * - Without this an HTTP/2 failure reaches Sentry as `Error:` with an empty message, and the\n * status — the one field that says what went wrong — is absent from the report.\n */\nconst statusLine = (response: Response) =>\n response.statusText ? `${response.status} ${response.statusText}` : `${response.status}`;\n\n/**\n * A body-less copy of the request with every credential header masked.\n *\n * - Keeps the method, URL and the remaining headers for whoever handles the error.\n * - A masked header still appears, as `[REDACTED]`, so a reader sees it was sent.\n * - A copy, not an edit: the original request may still be retried with its token.\n */\nconst withoutCredentials = (request: Request) =>\n new Request(request.url, {\n method: request.method,\n headers: redactHeaders(request.headers, CREDENTIAL_HEADERS),\n });\n\nexport class ApiError extends Error {\n response: Response;\n request: Request;\n data: unknown;\n\n constructor({ response, request, data }: ApiResponse) {\n super(statusLine(response));\n this.name = 'ApiError';\n this.response = response;\n this.request = withoutCredentials(request);\n this.data = data;\n }\n}\n","import type { IStringifyOptions } from 'qs';\nimport qs from 'qs';\n\nimport { HttpStatus } from '../../internal';\n\nimport type {\n ApiResponse,\n BodyParam,\n CreateFetchRequestFn,\n ParseAs,\n PathParam,\n ValidateStatusFn,\n} from './types';\n\n/**\n * Strips trailing slashes from a base URL so concatenating a leading-slash\n * path (e.g. `/v2/storage`) never produces a double slash.\n *\n * Without this, callers that pass `https://connection.keboola.com/` end up\n * issuing requests to `https://connection.keboola.com//v2/storage/...`, which\n * the Storage API rejects with a 404.\n */\nexport const normalizeBaseUrl = (baseUrl: string): string => baseUrl.replace(/\\/+$/, '');\n\nexport const HttpHeader = {\n CONTENT_TYPE: 'content-type',\n CONTENT_DISPOSITION: 'content-disposition',\n AUTHORIZATION: 'Authorization',\n IDEMPOTENCY_KEY: 'Idempotency-Key',\n IF_MATCH: 'If-Match',\n};\n\nexport const HttpContentType = {\n JSON: 'application/json',\n TEXT_PLAIN: 'text/plain',\n FORM_DATA: 'multipart/form-data',\n TEXT_HTML: 'text/html',\n};\n\nexport const defaultValidateStatus: ValidateStatusFn = ({ response }) =>\n response.status >= 200 && response.status <= 299;\n\n/**\n * Whether a response declares HTML.\n *\n * - Media types are case-insensitive, so `Text/HTML` counts.\n * - A header fact only: a `text/html` response may still carry no body at all.\n */\nexport const isHtmlResponse = ({ response }: ApiResponse) =>\n !!response.headers\n .get(HttpHeader.CONTENT_TYPE)\n ?.toLowerCase()\n .includes(HttpContentType.TEXT_HTML);\n\n/**\n * Whether a response carried no payload, across every shape `parseData` produces for one:\n *\n * 1. `null` — a `204`, or a JSON body that was empty or whitespace.\n * 2. `''` — any other media type with an empty body, read as text.\n *\n * Whitespace-only text counts as empty, matching how `parseJson` already treats it.\n */\nexport const isContentEmpty = ({ data }: ApiResponse) =>\n data === null || data === undefined || (typeof data === 'string' && data.trim() === '');\n\nfunction removeUndefined(obj: Record<string, string>) {\n const objCopy = { ...obj };\n for (const [key, value] of Object.entries(objCopy)) {\n if (value == null) delete objCopy[key];\n }\n return objCopy;\n}\n\n// `application/json`, but also `application/json; charset=utf-8` and the `+json` suffix family.\n// Comparing the raw header for equality misses every response that carries a charset.\nconst JSON_MEDIA_TYPE = /^application\\/([\\w.-]+\\+)?json$/;\n\nconst getMediaType = (response: Response) =>\n response.headers.get(HttpHeader.CONTENT_TYPE)?.split(';')[0]?.trim().toLowerCase() ?? '';\n\n// Declared JSON is parsed strictly: a body that doesn't parse is a broken response, not a text\n// payload, and `JSON.parse` throwing is the right answer. Read it as text first only so an empty\n// body can resolve to `null` like a 204 — matching the charset form brings `application/json;\n// charset=utf-8` onto this path, where `response.json()` would turn a 200-with-no-body into a\n// `SyntaxError` it never used to be.\nconst parseJson = async (response: Response) => {\n const text = await response.text();\n return text.trim() === '' ? null : JSON.parse(text);\n};\n\nexport const parseData = async (response: Response, parseAs: ParseAs = 'auto') => {\n // No body to read, whatever the caller asked for.\n if (response.status === HttpStatus.NO_CONTENT) return null;\n\n // Per-method-call override\n if (parseAs === 'text') return response.text();\n if (parseAs === 'blob') return response.blob();\n if (parseAs === 'json') return parseJson(response);\n\n const mediaType = getMediaType(response);\n if (JSON_MEDIA_TYPE.test(mediaType)) return parseJson(response);\n\n // A declared binary payload must come back as bytes — `text()` would decode it as UTF-8 and\n // corrupt it. `application/octet-stream` is the only binary type an endpoint declares today\n // (kai-agent's sandbox file download); widen deliberately, never by sniffing.\n if (mediaType === 'application/octet-stream') return response.blob();\n\n // Any other declared type describes its own payload — the query-service CSV export, the\n // data-science `text/plain` endpoints — so hand back the exact bytes instead of sniffing them.\n return response.text();\n};\n\n// Header instance serialize undefined value as `undefined`, we do not want that\nconst cleanHeadersInit = (headersInit: HeadersInit | undefined) => {\n if (Array.isArray(headersInit)) return headersInit;\n if (headersInit instanceof Headers) return headersInit;\n if (headersInit == null) return headersInit;\n\n return removeUndefined(headersInit);\n};\n\nconst createHeaders = (\n headersInitA: HeadersInit | undefined,\n headersInitB: HeadersInit | undefined,\n) => {\n const headersA = new Headers(cleanHeadersInit(headersInitA));\n const headersB = new Headers(cleanHeadersInit(headersInitB));\n\n headersB.forEach((value, key) => {\n headersA.set(key, value);\n });\n\n return headersA;\n};\n\nexport const createPath = (path: string, pathParam: PathParam = {}) =>\n path.replace(/\\{([^}]+)}/g, (_, key) => {\n if (!(key in pathParam))\n throw new Error(`Path parameter \"${key}\" is missing in the path \"${path}\"`);\n\n return encodeURIComponent(pathParam[key]!);\n });\n\nexport const createSearch = (\n query: Record<string, unknown>,\n options: Pick<IStringifyOptions, 'arrayFormat'> = {},\n) => {\n return qs.stringify(query, {\n encodeValuesOnly: true,\n skipNulls: true,\n ...options,\n });\n};\n\nexport const createBody = (body: BodyParam, headers: Headers) => {\n if (body == null) return null;\n if (body instanceof FormData) return body; // fetch automatically sets content-type header\n if (typeof body === 'string') return body; // fetch automatically sets content-type header\n\n const stringifyBody = JSON.stringify(body);\n const stringBody = stringifyBody === '{}' ? null : stringifyBody;\n if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);\n\n return stringBody;\n};\n\nexport const parseContentDispositionHeader = (contentDisposition?: string | null) => {\n // extract the type ('inline' or 'attachment'), default the type to 'unknown'\n const type = (() => {\n const typeMatch = contentDisposition?.match(/^\\s*(inline|attachment)\\s*;/i);\n return (typeMatch?.[1]?.toLowerCase() ?? 'unknown') as 'inline' | 'attachment' | 'unknown';\n })();\n\n // extract the filename, default the type to null\n const filename = (() => {\n const filenameMatch = contentDisposition?.match(/filename=\"([^\"]+)\"/i);\n if (filenameMatch) return filenameMatch[1];\n\n // If no filename=\"...\", check for encoded filename*=UTF-8''\n const encodedFilenameMatch = contentDisposition?.match(/filename\\*=(?:UTF-8'')?([^;]+)/i);\n if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);\n\n // Check for unquoted filenames (rare but possible)\n const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);\n return unquotedFilenameMatch?.[1] ?? null;\n })();\n\n // Return the parsed result\n return { type, filename };\n};\n\nexport const createFetchRequest: CreateFetchRequestFn = ({\n url,\n method,\n params,\n options = {},\n defaultOptions,\n}) => {\n const {\n baseUrl,\n validateStatus: defValidateStatus = defaultValidateStatus,\n headers: defaultHeaders,\n fetchFn: defaultFetchFn,\n ...restDefaultOptions\n } = defaultOptions;\n const {\n validateStatus,\n queryArrayFormat,\n headers: endpointHeaders,\n fetchFn,\n parseAs,\n ...restOptions\n } = options;\n\n const headers = createHeaders(defaultHeaders, endpointHeaders);\n const path = createPath(url, params.path);\n const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });\n const body = createBody(params.body, headers);\n\n const urlInstance = new URL(normalizeBaseUrl(baseUrl) + path);\n urlInstance.search = search;\n\n const request = new Request(urlInstance, {\n ...restDefaultOptions,\n ...restOptions,\n headers,\n method: method.toUpperCase(),\n body,\n });\n\n return {\n request,\n validateStatus: validateStatus ?? defValidateStatus,\n fetchFn: fetchFn ?? defaultFetchFn,\n parseAs,\n };\n};\n","import { ApiError } from '../../errors';\n\nimport type {\n BaseFetchParams,\n CoreFetchFn,\n CreateFetchClientOptions,\n FetchClientOptions,\n HttpMethod,\n} from './types';\nimport { createFetchRequest, parseData } from './utils';\n\nexport type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;\n\nexport const isApiError = (error: unknown): error is ApiError => error instanceof ApiError;\n\nexport const isAbortError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'AbortError';\n\nexport const isTimeoutError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'TimeoutError';\n\nexport const isFetchClientError = (error: unknown): error is FetchClientError =>\n error instanceof TypeError || error instanceof SyntaxError || isApiError(error);\n\n// `fetchFn` is resolved per request by `createFetchRequest` (endpoint option beats client option),\n// so a single request can swap the transport without rebuilding the client.\nconst coreFetch: CoreFetchFn = async ({ request, validateStatus, fetchFn = fetch, parseAs }) => {\n const response = await fetchFn(request);\n const data = await parseData(response, parseAs);\n\n const apiResponse = {\n request,\n response,\n data,\n };\n\n const boolOrError = validateStatus(apiResponse);\n if (isApiError(boolOrError)) throw boolOrError;\n if (!boolOrError) throw new ApiError(apiResponse);\n\n return apiResponse;\n};\n\nexport const createFetchClient = ({\n middlewares = [],\n baseUrl: _baseUrl,\n ...defaultOptions\n}: CreateFetchClientOptions) => {\n const fetchWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n coreFetch,\n );\n const resolveBaseUrl = async () => (typeof _baseUrl === 'function' ? _baseUrl() : _baseUrl);\n\n const createFetchMethod =\n (method: HttpMethod) =>\n async (url: string, params: BaseFetchParams, options: FetchClientOptions = {}) => {\n const baseUrl = await resolveBaseUrl();\n const request = createFetchRequest({\n url,\n method,\n params,\n defaultOptions: { ...defaultOptions, baseUrl: baseUrl },\n options,\n });\n\n const methodMiddlewares = options?.middlewares ?? [];\n\n return methodMiddlewares.reduceRight(\n (next, middleware) => middleware(next),\n fetchWithMiddlewares,\n )(request);\n };\n\n return {\n get: createFetchMethod('get'),\n post: createFetchMethod('post'),\n put: createFetchMethod('put'),\n patch: createFetchMethod('patch'),\n delete: createFetchMethod('delete'),\n };\n};\n"],"mappings":"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"}
@@ -1,254 +0,0 @@
1
- import { IStringifyOptions } from "qs";
2
- import * as z$1 from "zod";
3
- //#region src/errors/ApiError.d.ts
4
- declare class ApiError extends Error {
5
- response: Response;
6
- request: Request;
7
- data: unknown;
8
- constructor({ response, request, data }: ApiResponse);
9
- }
10
- //#endregion
11
- //#region src/fetchClient/createFetchClient/types.d.ts
12
- type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'options';
13
- type PathParam = Record<string, string | number>;
14
- type QueryParam = Record<string, unknown>;
15
- type BodyParam = Record<string, unknown> | FormData | string | undefined | null | Record<string, unknown>[];
16
- type ParseAs = 'auto' | 'text' | 'json' | 'blob';
17
- type ValidateStatusFn = (options: ApiResponse) => boolean | ApiError;
18
- type CustomRequestInit = Omit<RequestInit, 'method' | 'body'>;
19
- type FetchFn = typeof fetch;
20
- type BaseUrlFn = () => Promise<string>;
21
- type BaseUrl = string | BaseUrlFn;
22
- type CreateFetchClientOptions = {
23
- baseUrl: BaseUrl;
24
- validateStatus?: ValidateStatusFn;
25
- middlewares?: MiddlewareFn[];
26
- fetchFn?: FetchFn;
27
- } & CustomRequestInit;
28
- type FetchClientOptions = {
29
- validateStatus?: ValidateStatusFn;
30
- queryArrayFormat?: IStringifyOptions['arrayFormat'];
31
- parseAs?: ParseAs;
32
- middlewares?: MiddlewareFn[];
33
- fetchFn?: FetchFn;
34
- } & CustomRequestInit;
35
- type ApiResponse<Data = unknown> = {
36
- data: Data;
37
- response: Response;
38
- request: Request;
39
- };
40
- type FetchRequest = {
41
- request: Request;
42
- validateStatus: ValidateStatusFn;
43
- fetchFn?: FetchFn;
44
- parseAs?: ParseAs;
45
- };
46
- type CoreFetchFn = (request: FetchRequest) => Promise<ApiResponse>;
47
- type MiddlewareFn = (next: CoreFetchFn) => CoreFetchFn;
48
- //#endregion
49
- //#region src/errors/HtmlResponseError.d.ts
50
- /**
51
- * A successful response that carried an HTML page instead of the endpoint's payload.
52
- *
53
- * - An expired session 302s to the login page; `fetch` follows it to `200 text/html`.
54
- * - Constant message so Sentry groups it; `request`/`response` carry the detail.
55
- * - Opt-in per client: some APIs serve HTML from a 200 on purpose.
56
- */
57
- declare class HtmlResponseError extends ApiError {
58
- constructor(res: ApiResponse);
59
- }
60
- declare const isHtmlResponseError: (error: unknown) => error is HtmlResponseError;
61
- //#endregion
62
- //#region src/errors/ManagementClientAuthError.d.ts
63
- declare class ManagementClientAuthError extends ApiError {
64
- title: string;
65
- message: string;
66
- constructor(title: string, message: string, res: ApiResponse);
67
- }
68
- //#endregion
69
- //#region src/errors/ManagementSessionMintError.d.ts
70
- /**
71
- * The Manage client has no credential of its own and could not mint a session token from the
72
- * login cookie.
73
- *
74
- * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.
75
- * - The login page in place of the token: the session expired, or there is no cookie (off the
76
- * stack host).
77
- */
78
- declare class ManagementSessionMintError extends ManagementClientAuthError {
79
- constructor({ title, message, response, request, data }: ManagementClientAuthError);
80
- }
81
- //#endregion
82
- //#region src/errors/ValidationError.d.ts
83
- /**
84
- * A rejected SDK input or a response not matching its documented shape.
85
- *
86
- * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.
87
- * - `issues` keeps the structured detail.
88
- */
89
- declare class ValidationError extends Error {
90
- issues: z$1.core.$ZodIssue[];
91
- constructor(message: string, issues?: z$1.core.$ZodIssue[]);
92
- }
93
- declare const isValidationError: (error: unknown) => error is ValidationError;
94
- /**
95
- * One line per issue, prefixed by the field it belongs to.
96
- *
97
- * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.
98
- * - Exported for boundaries that drop malformed elements instead of throwing.
99
- * - Never includes the value, so it is safe to log.
100
- */
101
- declare const formatValidationIssues: (issues: readonly z$1.core.$ZodIssue[]) => string;
102
- /**
103
- * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.
104
- *
105
- * - Use instead of `schema.parse()` for every client input and response body.
106
- */
107
- declare const parseOrThrow: <T extends z$1.ZodType>(schema: T, value: unknown) => z$1.output<T>;
108
- //#endregion
109
- //#region src/fetchClient/createFetchClient/createFetchClient.d.ts
110
- type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;
111
- declare const isApiError: (error: unknown) => error is ApiError;
112
- declare const isAbortError: (error: unknown) => error is DOMException;
113
- declare const isTimeoutError: (error: unknown) => error is DOMException;
114
- declare const isFetchClientError: (error: unknown) => error is FetchClientError;
115
- //#endregion
116
- //#region src/fetchClient/createFetchClient/utils.d.ts
117
- declare const HttpHeader: {
118
- CONTENT_TYPE: string;
119
- CONTENT_DISPOSITION: string;
120
- AUTHORIZATION: string;
121
- IDEMPOTENCY_KEY: string;
122
- IF_MATCH: string;
123
- };
124
- declare const HttpContentType: {
125
- JSON: string;
126
- TEXT_PLAIN: string;
127
- FORM_DATA: string;
128
- TEXT_HTML: string;
129
- };
130
- //#endregion
131
- //#region src/fetchClient/createGenericFetchClient.d.ts
132
- type FetchParams<Path = PathParam, Query = QueryParam, Body = BodyParam> = {
133
- path?: Path;
134
- query?: Query;
135
- body?: Body;
136
- };
137
- type FetchMethod$1 = <Data, Path = PathParam, Query = QueryParam, Body = BodyParam>(url: string, params: FetchParams<Path, Query, Body>, options?: FetchClientOptions) => Promise<ApiResponse<Data>>;
138
- type FetchClient$1 = {
139
- get: FetchMethod$1;
140
- post: FetchMethod$1;
141
- put: FetchMethod$1;
142
- patch: FetchMethod$1;
143
- delete: FetchMethod$1;
144
- };
145
- declare const createGenericFetchClient: (defaultOptions: CreateFetchClientOptions) => FetchClient$1;
146
- //#endregion
147
- //#region src/fetchClient/xhrFetch.d.ts
148
- type UploadProgress = {
149
- loaded: number;
150
- total: number;
151
- percent: number;
152
- };
153
- //#endregion
154
- //#region src/fetchClient/types.d.ts
155
- type OpenapiQueryType<Operation> = Operation extends {
156
- parameters?: {
157
- query?: infer Query;
158
- };
159
- } ? Query : never;
160
- type OpenapiPathType<Operation> = Operation extends {
161
- parameters?: {
162
- path?: infer Path;
163
- };
164
- } ? Path : never;
165
- type HasRequestBody<Operation> = Operation extends {
166
- requestBody?: never;
167
- } ? false : true;
168
- type HasOptionalBody<Operation> = Operation extends {
169
- requestBody: unknown;
170
- } ? false : true;
171
- type OpenapiBodyType<Operation> = HasRequestBody<Operation> extends true ? Operation extends {
172
- requestBody?: {
173
- content: {
174
- 'application/json': infer RequestBody;
175
- };
176
- };
177
- } ? RequestBody : Operation extends {
178
- requestBody: {
179
- content: {
180
- 'application/json': infer RequestBody;
181
- };
182
- };
183
- } ? RequestBody : Operation extends {
184
- requestBody: {
185
- content: {
186
- 'application/vnd.api+json': infer RequestBody;
187
- };
188
- };
189
- } ? RequestBody : Operation extends {
190
- requestBody?: {
191
- content: {
192
- 'multipart/form-data': unknown;
193
- };
194
- };
195
- } ? FormData : Operation extends {
196
- requestBody: {
197
- content: {
198
- 'application/x-www-form-urlencoded': infer RequestBody;
199
- };
200
- };
201
- } ? RequestBody : never : never;
202
- /**
203
- * The per-field shape of a `multipart/form-data` body — the complement of `OpenapiBodyType`, which
204
- * resolves such an operation to the `FormData` that goes on the wire and so cannot report the
205
- * fields inside it. Clients derive their input types from this rather than restating the field list.
206
- */
207
- type OpenapiFormDataType<Operation> = Operation extends {
208
- requestBody?: {
209
- content: {
210
- 'multipart/form-data': infer Fields;
211
- };
212
- };
213
- } ? { [Key in keyof Fields as Key extends `${infer Name}[]` ? Name : Key]: Fields[Key]; } : never;
214
- type OpenapiBodyParam<Operation> = OpenapiBodyType<Operation> extends never ? {
215
- body?: never;
216
- } : HasOptionalBody<Operation> extends true ? {
217
- body?: OpenapiBodyType<Operation>;
218
- } : {
219
- body: OpenapiBodyType<Operation>;
220
- };
221
- type InferOpenapiParametersType<Operation> = Operation extends {
222
- parameters?: infer P;
223
- } ? P : never;
224
- type OpenapiParametersType<Operation> = Omit<InferOpenapiParametersType<Operation>, 'cookie' | 'header'> & OpenapiBodyParam<Operation>;
225
- type OpenapiResponseTypes<OP> = OP extends {
226
- responses: infer R;
227
- } ? { [S in keyof R]: R[S] extends {
228
- content: {
229
- 'text/plain': infer S;
230
- };
231
- } ? S : R[S] extends {
232
- content: {
233
- 'application/json': infer C;
234
- };
235
- } ? C : S extends 'default' ? R[S] : never; } : never;
236
- type OpenapiSuccessType<T> = 200 extends keyof T ? T[200] : 201 extends keyof T ? T[201] : 202 extends keyof T ? T[202] : 204 extends keyof T ? T[204] : '2XX' extends keyof T ? T['2XX'] : 'default' extends keyof T ? T['default'] : unknown;
237
- type OpenapiReturnType<OP> = OpenapiSuccessType<OpenapiResponseTypes<OP>>;
238
- type ArrayElement<T> = T extends (infer U)[] ? U : never;
239
- //#endregion
240
- //#region src/fetchClient/createOpenapiFetchClient.d.ts
241
- type OpenapiPaths<Paths> = { [P in keyof Paths]: { [M in HttpMethod]?: unknown; }; };
242
- type PathsWithMethod<Paths extends OpenapiPaths<Paths>, PathnameMethod extends HttpMethod> = { [Pathname in keyof Paths]: Paths[Pathname] extends { [K in PathnameMethod]: any; } ? Pathname : never; }[keyof Paths];
243
- type FetchMethod<Paths extends OpenapiPaths<Paths>, Method extends HttpMethod> = <Path extends PathsWithMethod<Paths, Method>>(url: Path, params: OpenapiParametersType<Paths[Path][Method]>, options?: FetchClientOptions) => Promise<ApiResponse<OpenapiReturnType<Paths[Path][Method]>>>;
244
- type FetchClient<Paths extends OpenapiPaths<Paths>> = {
245
- get: FetchMethod<Paths, 'get'>;
246
- post: FetchMethod<Paths, 'post'>;
247
- put: FetchMethod<Paths, 'put'>;
248
- patch: FetchMethod<Paths, 'patch'>;
249
- delete: FetchMethod<Paths, 'delete'>;
250
- };
251
- declare const createOpenapiFetchClient: <Paths extends OpenapiPaths<Paths>>(defaultOptions: CreateFetchClientOptions) => FetchClient<Paths>;
252
- //#endregion
253
- export { ValidateStatusFn as A, ManagementClientAuthError as C, BaseUrl as D, ApiResponse as E, HttpMethod as O, ManagementSessionMintError as S, isHtmlResponseError as T, isTimeoutError as _, OpenapiParametersType as a, isValidationError as b, OpenapiReturnType as c, HttpContentType as d, HttpHeader as f, isFetchClientError as g, isApiError as h, OpenapiFormDataType as i, ApiError as j, MiddlewareFn as k, UploadProgress as l, isAbortError as m, ArrayElement as n, OpenapiPathType as o, FetchClientError as p, OpenapiBodyType as r, OpenapiQueryType as s, createOpenapiFetchClient as t, createGenericFetchClient as u, ValidationError as v, HtmlResponseError as w, parseOrThrow as x, formatValidationIssues as y };
254
- //# sourceMappingURL=index-BzhLY7el.d.cts.map
@@ -1,77 +0,0 @@
1
- import { a as ProjectId } from "./types-CESP1ONj.js";
2
- import "./types-M9vU_ONp.js";
3
- import { t as createEncryptionClient } from "./index-DCAnnlcL.js";
4
- import { n as CreateVariableBody, o as VariableWithHash, t as AnyVariable } from "./types-BE7mRarT.js";
5
- import { t as createVaultClient } from "./index-BnPYPXGQ.js";
6
- //#region src/sdks/vault/types.d.ts
7
- type VaultClient = ReturnType<typeof createVaultClient>;
8
- type EncryptionClient = ReturnType<typeof createEncryptionClient>;
9
- type EncryptionCtx = {
10
- projectId: ProjectId;
11
- defaultBranchId: string;
12
- };
13
- //#endregion
14
- //#region src/sdks/vault/vaultSdk.d.ts
15
- type Options = {
16
- vaultClient: VaultClient;
17
- encryptionClient: EncryptionClient;
18
- };
19
- declare const createVaultSdk: ({ vaultClient, encryptionClient }: Options) => {
20
- createVariable: (variable: CreateVariableBody, encryption: EncryptionCtx) => Promise<{
21
- key: string;
22
- value: string;
23
- flags: ('encrypted' | 'oauthCredentialsId')[];
24
- group?: string;
25
- attributes: {
26
- branchId?: string;
27
- } & {
28
- [key: string]: string;
29
- };
30
- } & {
31
- hash?: string;
32
- }>;
33
- deleteVariable: (variable: VariableWithHash, signal?: AbortSignal) => Promise<void>;
34
- updateVariable: (variable: VariableWithHash, encryption: EncryptionCtx, signal?: AbortSignal) => Promise<{
35
- key: string;
36
- value: string;
37
- flags: ('encrypted' | 'oauthCredentialsId')[];
38
- group?: string;
39
- attributes: {
40
- branchId?: string;
41
- } & {
42
- [key: string]: string;
43
- };
44
- } & {
45
- hash?: string;
46
- }>;
47
- setVariablesGroup: (group: string, variables: VariableWithHash[], encryption: EncryptionCtx, signal?: AbortSignal) => Promise<({
48
- key: string;
49
- value: string;
50
- flags: ('encrypted' | 'oauthCredentialsId')[];
51
- group?: string;
52
- attributes: {
53
- branchId?: string;
54
- } & {
55
- [key: string]: string;
56
- };
57
- } & {
58
- hash?: string;
59
- })[]>;
60
- };
61
- //#endregion
62
- //#region src/sdks/vault/helpers.d.ts
63
- declare const isVariableEncryptionRequired: (variable: AnyVariable) => boolean;
64
- declare const isVariableOauth: (variable: AnyVariable) => boolean;
65
- declare const isSameVariable: (a: AnyVariable, b: AnyVariable) => boolean;
66
- declare const vaultRef: {
67
- encode: (key: string) => string;
68
- decode: (s: string) => string | null;
69
- isMatch: (s: string) => boolean;
70
- };
71
- declare const partitionByOauth: <T extends AnyVariable>(variables: T[]) => {
72
- oauth: T[];
73
- regular: T[];
74
- };
75
- //#endregion
76
- export { vaultRef as a, partitionByOauth as i, isVariableEncryptionRequired as n, createVaultSdk as o, isVariableOauth as r, EncryptionCtx as s, isSameVariable as t };
77
- //# sourceMappingURL=index-CH5Sg3rk.d.ts.map
@@ -1,16 +0,0 @@
1
- import { n as ClientInitOptions } from "./types-BksK2Eo0.cjs";
2
- import { a as EncryptQuery, s as ScopedSecrets } from "./types-CclheyE7.cjs";
3
- //#region src/clients/encryption/encryptionClient.d.ts
4
- declare const createEncryptionClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
5
- healthCheck: (signal?: AbortSignal) => Promise<unknown>;
6
- encryptSecrets: <T extends Record<string, unknown>>(data: EncryptQuery & {
7
- data: T;
8
- }, signal?: AbortSignal) => Promise<T>;
9
- encryptScopedSecrets: <T extends Record<string, unknown>>({ scope, ...params }: ScopedSecrets<T>, signal?: AbortSignal) => Promise<T>;
10
- encrypt: (data: EncryptQuery & {
11
- data: string;
12
- }, signal?: AbortSignal) => Promise<string>;
13
- };
14
- //#endregion
15
- export { createEncryptionClient as t };
16
- //# sourceMappingURL=index-CiwWDu-q.d.cts.map