@keboola/api-client 46.0.0 → 48.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 (485) hide show
  1. package/AGENTS.md +95 -24
  2. package/API-SURFACE.md +52 -30
  3. package/CHANGELOG.md +85 -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-C696kD_U.d.ts → adminRoles-BgpaBE7h.d.cts} +4 -2
  19. package/dist/adminRoles-CO7J5qAy.cjs.map +1 -1
  20. package/dist/{adminRoles-C696kD_U.d.cts → adminRoles-DsoGQipO.d.ts} +4 -2
  21. package/dist/ai/index.cjs +2 -7
  22. package/dist/ai/index.cjs.map +1 -1
  23. package/dist/ai/index.d.cts +2 -3
  24. package/dist/ai/index.d.ts +2 -3
  25. package/dist/ai/index.js +2 -7
  26. package/dist/ai/index.js.map +1 -1
  27. package/dist/ai/types.d.cts +2 -2
  28. package/dist/ai/types.d.ts +2 -2
  29. package/dist/{appLogs-BG9ueGxA.cjs → appLogs-Cix2KWra.cjs} +2 -2
  30. package/dist/{appLogs-BG9ueGxA.cjs.map → appLogs-Cix2KWra.cjs.map} +1 -1
  31. package/dist/{appLogs-DGIctwbb.d.ts → appLogs-DpcqeOe5.d.ts} +2 -2
  32. package/dist/{appLogs-CEKz68bE.js → appLogs-KslK7qHr.js} +2 -2
  33. package/dist/{appLogs-CEKz68bE.js.map → appLogs-KslK7qHr.js.map} +1 -1
  34. package/dist/{appLogs-Dl0v684o.d.cts → appLogs-SjrflOHk.d.cts} +2 -2
  35. package/dist/apps/index.cjs +5 -5
  36. package/dist/apps/index.cjs.map +1 -1
  37. package/dist/apps/index.d.cts +3 -3
  38. package/dist/apps/index.d.ts +3 -3
  39. package/dist/apps/index.js +5 -5
  40. package/dist/apps/index.js.map +1 -1
  41. package/dist/apps/types.d.cts +2 -2
  42. package/dist/apps/types.d.ts +2 -2
  43. package/dist/assets/index.cjs +1 -1
  44. package/dist/assets/index.d.cts +1 -1
  45. package/dist/assets/index.d.ts +1 -1
  46. package/dist/assets/index.js +1 -1
  47. package/dist/auth/index.cjs +1 -1
  48. package/dist/auth/index.d.cts +1 -1
  49. package/dist/auth/index.d.ts +1 -1
  50. package/dist/auth/index.js +1 -1
  51. package/dist/auth/types.d.cts +2 -2
  52. package/dist/auth/types.d.ts +2 -2
  53. package/dist/{auth-C6cHWIWx.js → auth-4coY1uwo.js} +2 -2
  54. package/dist/{auth-C6cHWIWx.js.map → auth-4coY1uwo.js.map} +1 -1
  55. package/dist/{auth-C9o_0bft.cjs → auth-C8Pjl0Mu.cjs} +2 -2
  56. package/dist/{auth-C9o_0bft.cjs.map → auth-C8Pjl0Mu.cjs.map} +1 -1
  57. package/dist/{authClient-CACOwVt0.js → authClient-2e8ZmzSP.js} +71 -7
  58. package/dist/authClient-2e8ZmzSP.js.map +1 -0
  59. package/dist/{authClient-DSa5t2Ft.d.cts → authClient-BYIGzL_u.d.ts} +22 -4
  60. package/dist/{authClient-ZiaKSKpp.d.ts → authClient-D06srBQE.d.cts} +22 -4
  61. package/dist/{authClient-DZcAR-eW.cjs → authClient-DfkKlc-2.cjs} +82 -6
  62. package/dist/authClient-DfkKlc-2.cjs.map +1 -0
  63. package/dist/billing/index.cjs +2 -2
  64. package/dist/billing/index.d.cts +1 -1
  65. package/dist/billing/index.d.ts +1 -1
  66. package/dist/billing/index.js +2 -2
  67. package/dist/billing/types.d.cts +1 -1
  68. package/dist/billing/types.d.ts +1 -1
  69. package/dist/chat/index.cjs +3 -3
  70. package/dist/chat/index.d.cts +2 -2
  71. package/dist/chat/index.d.ts +2 -2
  72. package/dist/chat/index.js +3 -3
  73. package/dist/chat/types.d.cts +1 -1
  74. package/dist/chat/types.d.ts +1 -1
  75. package/dist/{collect-97WhfEpt.js → collectByOffset-2XzJqmvr.js} +6 -6
  76. package/dist/collectByOffset-2XzJqmvr.js.map +1 -0
  77. package/dist/{collect-B5TCNiT1.cjs → collectByOffset-DQsqtmJg.cjs} +7 -7
  78. package/dist/collectByOffset-DQsqtmJg.cjs.map +1 -0
  79. package/dist/componentsMcp/index.cjs +3 -0
  80. package/dist/componentsMcp/index.d.cts +2 -0
  81. package/dist/componentsMcp/index.d.ts +2 -0
  82. package/dist/componentsMcp/index.js +2 -0
  83. package/dist/componentsMcp/types.cjs +0 -0
  84. package/dist/componentsMcp/types.d.cts +2 -0
  85. package/dist/componentsMcp/types.d.ts +2 -0
  86. package/dist/componentsMcp/types.js +1 -0
  87. package/dist/componentsMcp-CHobIsuU.js +57 -0
  88. package/dist/componentsMcp-CHobIsuU.js.map +1 -0
  89. package/dist/componentsMcp-pG-PcQrg.cjs +62 -0
  90. package/dist/componentsMcp-pG-PcQrg.cjs.map +1 -0
  91. package/dist/{configurations-D_Rbs0Wl.cjs → configurations-B2O8AAy0.cjs} +2 -2
  92. package/dist/{configurations-D_Rbs0Wl.cjs.map → configurations-B2O8AAy0.cjs.map} +1 -1
  93. package/dist/{configurations-Chg_JwJ1.js → configurations-CL0ouUMa.js} +3 -3
  94. package/dist/configurations-CL0ouUMa.js.map +1 -0
  95. package/dist/{configurations-BTRHVSRq.cjs → configurations-D9J3jh3g.cjs} +3 -3
  96. package/dist/configurations-D9J3jh3g.cjs.map +1 -0
  97. package/dist/{configurations-DcpUlC8I.js → configurations-DKINmjA3.js} +2 -2
  98. package/dist/{configurations-DcpUlC8I.js.map → configurations-DKINmjA3.js.map} +1 -1
  99. package/dist/constants/index.cjs +1 -1
  100. package/dist/constants/index.d.cts +2 -3
  101. package/dist/constants/index.d.ts +2 -3
  102. package/dist/constants/index.js +1 -1
  103. package/dist/{constants-Cifrqsls.js → constants-CA4UN2Xv.js} +11 -10
  104. package/dist/constants-CA4UN2Xv.js.map +1 -0
  105. package/dist/{constants-BDGRQqij.cjs → constants-a0jswUeK.cjs} +10 -9
  106. package/dist/constants-a0jswUeK.cjs.map +1 -0
  107. package/dist/{createFetchClient-DITkTV2k.js → createFetchClient-CkHdS_IG.js} +5 -5
  108. package/dist/createFetchClient-CkHdS_IG.js.map +1 -0
  109. package/dist/{createFetchClient-ClWD4ua3.cjs → createFetchClient-lZ_93Yrb.cjs} +5 -5
  110. package/dist/createFetchClient-lZ_93Yrb.cjs.map +1 -0
  111. package/dist/{createGenericFetchClient-KqiJhw8G.js → createGenericFetchClient-CQdNcPC3.js} +2 -2
  112. package/dist/{createGenericFetchClient-KqiJhw8G.js.map → createGenericFetchClient-CQdNcPC3.js.map} +1 -1
  113. package/dist/{createGenericFetchClient-B81Iezpb.cjs → createGenericFetchClient-MOx97wi-.cjs} +2 -2
  114. package/dist/{createGenericFetchClient-B81Iezpb.cjs.map → createGenericFetchClient-MOx97wi-.cjs.map} +1 -1
  115. package/dist/{createOpenapiFetchClient-CioTX11-.cjs → createOpenapiFetchClient-DHYo_k3t.cjs} +2 -2
  116. package/dist/{createOpenapiFetchClient-CioTX11-.cjs.map → createOpenapiFetchClient-DHYo_k3t.cjs.map} +1 -1
  117. package/dist/{createOpenapiFetchClient-wq8iGLZM.js → createOpenapiFetchClient-DXiMv9WL.js} +2 -2
  118. package/dist/{createOpenapiFetchClient-wq8iGLZM.js.map → createOpenapiFetchClient-DXiMv9WL.js.map} +1 -1
  119. package/dist/dataScience/index.cjs +2 -2
  120. package/dist/dataScience/index.d.cts +2 -2
  121. package/dist/dataScience/index.d.ts +2 -2
  122. package/dist/dataScience/index.js +2 -2
  123. package/dist/dataScience/types.d.cts +2 -2
  124. package/dist/dataScience/types.d.ts +2 -2
  125. package/dist/{dataScience-BwHmDoQb.js → dataScience-AwPMeGfz.js} +5 -5
  126. package/dist/{dataScience-BwHmDoQb.js.map → dataScience-AwPMeGfz.js.map} +1 -1
  127. package/dist/{dataScience-Hhoqoql_.cjs → dataScience-BjS1p8WO.cjs} +5 -5
  128. package/dist/{dataScience-Hhoqoql_.cjs.map → dataScience-BjS1p8WO.cjs.map} +1 -1
  129. package/dist/developerPortal/index.cjs +1 -1
  130. package/dist/developerPortal/index.d.cts +2 -2
  131. package/dist/developerPortal/index.d.ts +2 -2
  132. package/dist/developerPortal/index.js +1 -1
  133. package/dist/developerPortal/types.d.cts +1 -1
  134. package/dist/developerPortal/types.d.ts +1 -1
  135. package/dist/{developerPortalClient-loKq7X_U.js → developerPortalClient-Bb2suezr.js} +13 -5
  136. package/dist/{developerPortalClient-loKq7X_U.js.map → developerPortalClient-Bb2suezr.js.map} +1 -1
  137. package/dist/{developerPortalClient-COm7wJxS.cjs → developerPortalClient-DUerKw-7.cjs} +13 -5
  138. package/dist/{developerPortalClient-COm7wJxS.cjs.map → developerPortalClient-DUerKw-7.cjs.map} +1 -1
  139. package/dist/domain/permissions/index.cjs +1 -1
  140. package/dist/domain/permissions/index.d.cts +2 -3
  141. package/dist/domain/permissions/index.d.ts +2 -3
  142. package/dist/domain/permissions/index.js +1 -1
  143. package/dist/editor/index.cjs +2 -2
  144. package/dist/editor/index.d.cts +2 -2
  145. package/dist/editor/index.d.ts +2 -2
  146. package/dist/editor/index.js +2 -2
  147. package/dist/editor/types.d.cts +1 -1
  148. package/dist/editor/types.d.ts +1 -1
  149. package/dist/encryption/index.cjs +1 -1
  150. package/dist/encryption/index.d.cts +1 -1
  151. package/dist/encryption/index.d.ts +1 -1
  152. package/dist/encryption/index.js +1 -1
  153. package/dist/encryption/types.d.cts +1 -1
  154. package/dist/encryption/types.d.ts +1 -1
  155. package/dist/import/index.cjs +1 -1
  156. package/dist/import/index.d.cts +3 -3
  157. package/dist/import/index.d.ts +3 -3
  158. package/dist/import/index.js +1 -1
  159. package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
  160. package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
  161. package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
  162. package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
  163. package/dist/{index-BP3choXr.d.ts → index-B3QTeqfL.d.ts} +19976 -14513
  164. package/dist/{index-x8ET_BTN.d.cts → index-BCjU-g9t.d.cts} +3 -3
  165. package/dist/{index-DCxVLGHH.d.ts → index-BHiJu8LF.d.cts} +16 -28
  166. package/dist/{index-DXcTukgn.d.ts → index-BIldED4N.d.ts} +4 -4
  167. package/dist/index-BLvmyehw.d.ts +46 -0
  168. package/dist/{index-BnPYPXGQ.d.ts → index-BTrxCk90.d.ts} +3 -3
  169. package/dist/{index-DS6O4UDB.d.cts → index-ByLCYBaw.d.cts} +4 -4
  170. package/dist/{index-syAYY5LC.d.cts → index-C40Fbj-6.d.cts} +19976 -14513
  171. package/dist/{index-DWFxcmVD.d.ts → index-CIqWOEWD.d.ts} +4 -4
  172. package/dist/{index-Bt43tKyu.d.cts → index-Cc5wSIRJ.d.cts} +5 -5
  173. package/dist/{types-CESP1ONj.d.ts → index-ChDl6ig5.d.cts} +3780 -549
  174. package/dist/index-Co2Cd-nw.d.cts +46 -0
  175. package/dist/{index-CTKC-mwi.d.cts → index-CpGmmJbt.d.cts} +4 -4
  176. package/dist/{index-D-4TT5yW.d.cts → index-CpUYVB-d.d.cts} +4 -4
  177. package/dist/{index-DeQDdut6.d.ts → index-CzHrIfZS.d.ts} +34 -2
  178. package/dist/{index-BhDxP0x4.d.cts → index-D91RxB_S.d.cts} +18 -13
  179. package/dist/{index-GVxpBH6j.d.cts → index-DlZiWfQb.d.ts} +16 -28
  180. package/dist/{index-DRaVzOLM.d.ts → index-DzLXtE4Q.d.ts} +5 -5
  181. package/dist/{index-DeQDdut6.d.cts → index-VlzlOBkc.d.cts} +34 -2
  182. package/dist/{index-se5ee8U1.d.ts → index-avzO5sLa.d.ts} +18 -13
  183. package/dist/{index-yJ0HrxY6.d.ts → index-m7fX76x3.d.ts} +4 -4
  184. package/dist/{types-GaOcVZ3d.d.cts → index-sDHBkJhU.d.ts} +3780 -549
  185. package/dist/index.cjs +551 -375
  186. package/dist/index.cjs.map +1 -1
  187. package/dist/index.d.cts +7 -7
  188. package/dist/index.d.ts +7 -7
  189. package/dist/index.js +493 -320
  190. package/dist/index.js.map +1 -1
  191. package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
  192. package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
  193. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
  194. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
  195. package/dist/kaiAgent/index.cjs +1 -1
  196. package/dist/kaiAgent/index.d.cts +3 -3
  197. package/dist/kaiAgent/index.d.ts +3 -3
  198. package/dist/kaiAgent/index.js +1 -1
  199. package/dist/kaiAgent/types.d.cts +1 -1
  200. package/dist/kaiAgent/types.d.ts +1 -1
  201. package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CYvrS8oZ.js} +16 -7
  202. package/dist/kaiAgent-CYvrS8oZ.js.map +1 -0
  203. package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-N2qbUFZm.cjs} +16 -7
  204. package/dist/kaiAgent-N2qbUFZm.cjs.map +1 -0
  205. package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
  206. package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
  207. package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
  208. package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
  209. package/dist/management/index.cjs +1 -1
  210. package/dist/management/index.d.cts +1 -1
  211. package/dist/management/index.d.ts +1 -1
  212. package/dist/management/index.js +1 -1
  213. package/dist/management/types.d.cts +2 -2
  214. package/dist/management/types.d.ts +2 -2
  215. package/dist/{management-0cWVLHei.cjs → management-CXHnxVaZ.cjs} +34 -10
  216. package/dist/management-CXHnxVaZ.cjs.map +1 -0
  217. package/dist/{management-eg4Ig-Cx.js → management-NYAD6ej4.js} +34 -10
  218. package/dist/management-NYAD6ej4.js.map +1 -0
  219. package/dist/metastore/index.cjs +1 -1
  220. package/dist/metastore/index.d.cts +1 -1
  221. package/dist/metastore/index.d.ts +1 -1
  222. package/dist/metastore/index.js +1 -1
  223. package/dist/metastore/types.d.cts +1 -1
  224. package/dist/metastore/types.d.ts +1 -1
  225. package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
  226. package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
  227. package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
  228. package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
  229. package/dist/microsoftGraph/index.cjs +2 -2
  230. package/dist/microsoftGraph/index.d.cts +2 -2
  231. package/dist/microsoftGraph/index.d.ts +2 -2
  232. package/dist/microsoftGraph/index.js +2 -2
  233. package/dist/microsoftGraph/types.d.cts +1 -1
  234. package/dist/microsoftGraph/types.d.ts +1 -1
  235. package/dist/{middleware-D_p5TctO.cjs → middleware-CEP6uu_D.cjs} +5 -5
  236. package/dist/middleware-CEP6uu_D.cjs.map +1 -0
  237. package/dist/{middleware-DmR6OhTY.js → middleware-GOfx8Apu.js} +5 -5
  238. package/dist/middleware-GOfx8Apu.js.map +1 -0
  239. package/dist/notifications/index.cjs +3 -3
  240. package/dist/notifications/index.d.cts +2 -2
  241. package/dist/notifications/index.d.ts +2 -2
  242. package/dist/notifications/index.js +3 -3
  243. package/dist/notifications/types.d.cts +1 -1
  244. package/dist/notifications/types.d.ts +1 -1
  245. package/dist/oauth/index.cjs +1 -1
  246. package/dist/oauth/index.d.cts +6 -2
  247. package/dist/oauth/index.d.ts +6 -2
  248. package/dist/oauth/index.js +1 -1
  249. package/dist/oauth/types.d.cts +2 -2
  250. package/dist/oauth/types.d.ts +2 -2
  251. package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
  252. package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
  253. package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
  254. package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
  255. package/dist/omnisearch/index.cjs +2 -2
  256. package/dist/omnisearch/index.d.cts +2 -2
  257. package/dist/omnisearch/index.d.ts +2 -2
  258. package/dist/omnisearch/index.js +2 -2
  259. package/dist/omnisearch/types.d.cts +1 -1
  260. package/dist/omnisearch/types.d.ts +1 -1
  261. package/dist/project-Dzu85cqr.d.cts +74 -0
  262. package/dist/project-nbv9yjpl.d.ts +74 -0
  263. package/dist/queryService/index.cjs +1 -1
  264. package/dist/queryService/index.d.cts +1 -1
  265. package/dist/queryService/index.d.ts +1 -1
  266. package/dist/queryService/index.js +1 -1
  267. package/dist/queryService/types.d.cts +2 -2
  268. package/dist/queryService/types.d.ts +2 -2
  269. package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
  270. package/dist/queryService-C-pZha5p.js.map +1 -0
  271. package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
  272. package/dist/queryService-CzK53q94.cjs.map +1 -0
  273. package/dist/queue/index.cjs +1 -1
  274. package/dist/queue/index.d.cts +75 -7
  275. package/dist/queue/index.d.ts +75 -7
  276. package/dist/queue/index.js +1 -1
  277. package/dist/queue/types.d.cts +1 -1
  278. package/dist/queue/types.d.ts +1 -1
  279. package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
  280. package/dist/queue-BJvDWriM.cjs.map +1 -0
  281. package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
  282. package/dist/queue-D6-x4OGF.js.map +1 -0
  283. package/dist/scheduler/index.cjs +3 -3
  284. package/dist/scheduler/index.d.cts +2 -2
  285. package/dist/scheduler/index.d.ts +2 -2
  286. package/dist/scheduler/index.js +3 -3
  287. package/dist/scheduler/types.d.cts +1 -1
  288. package/dist/scheduler/types.d.ts +1 -1
  289. package/dist/sdk/configurations/index.cjs +1 -1
  290. package/dist/sdk/configurations/index.d.cts +2 -4
  291. package/dist/sdk/configurations/index.d.ts +2 -4
  292. package/dist/sdk/configurations/index.js +1 -1
  293. package/dist/sdk/developerPortal/index.cjs +3 -3
  294. package/dist/sdk/developerPortal/index.d.cts +3 -3
  295. package/dist/sdk/developerPortal/index.d.ts +3 -3
  296. package/dist/sdk/developerPortal/index.js +3 -3
  297. package/dist/sdk/kaiMemory/index.cjs +1 -1
  298. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  299. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  300. package/dist/sdk/kaiMemory/index.js +1 -1
  301. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  302. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  303. package/dist/sdk/queryService/index.cjs +34 -55
  304. package/dist/sdk/queryService/index.cjs.map +1 -1
  305. package/dist/sdk/queryService/index.d.cts +2 -2
  306. package/dist/sdk/queryService/index.d.ts +2 -2
  307. package/dist/sdk/queryService/index.js +34 -55
  308. package/dist/sdk/queryService/index.js.map +1 -1
  309. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  310. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  311. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  312. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  313. package/dist/sdk/storage/index.cjs +0 -119
  314. package/dist/sdk/storage/index.cjs.map +1 -1
  315. package/dist/sdk/storage/index.d.cts +103 -2
  316. package/dist/sdk/storage/index.d.ts +103 -2
  317. package/dist/sdk/storage/index.js +1 -119
  318. package/dist/sdk/storage/index.js.map +1 -1
  319. package/dist/sdk/tag/index.d.cts +2 -2
  320. package/dist/sdk/tag/index.d.ts +2 -2
  321. package/dist/sdk/tag/types.d.cts +1 -1
  322. package/dist/sdk/tag/types.d.ts +1 -1
  323. package/dist/sdk/vault/index.d.cts +1 -1
  324. package/dist/sdk/vault/index.d.ts +1 -1
  325. package/dist/status/index.cjs +1 -1
  326. package/dist/status/index.d.cts +1 -1
  327. package/dist/status/index.d.ts +1 -1
  328. package/dist/status/index.js +1 -1
  329. package/dist/storage/index.cjs +13 -9
  330. package/dist/storage/index.d.cts +3 -3
  331. package/dist/storage/index.d.ts +3 -3
  332. package/dist/storage/index.js +7 -6
  333. package/dist/storage/types.d.cts +6 -5
  334. package/dist/storage/types.d.ts +6 -5
  335. package/dist/{storage-RkNaOFJ-.js → storage-BR-Kgi-6.js} +353 -169
  336. package/dist/storage-BR-Kgi-6.js.map +1 -0
  337. package/dist/{storage-76Sf_z_H.cjs → storage-CVBXivpB.cjs} +372 -170
  338. package/dist/storage-CVBXivpB.cjs.map +1 -0
  339. package/dist/stream/index.cjs +3 -3
  340. package/dist/stream/index.d.cts +2 -2
  341. package/dist/stream/index.d.ts +2 -2
  342. package/dist/stream/index.js +3 -3
  343. package/dist/stream/types.d.cts +1 -1
  344. package/dist/stream/types.d.ts +1 -1
  345. package/dist/syncActions/index.cjs +1 -1
  346. package/dist/syncActions/index.d.cts +2 -2
  347. package/dist/syncActions/index.d.ts +2 -2
  348. package/dist/syncActions/index.js +1 -1
  349. package/dist/syncActions/types.d.cts +1 -1
  350. package/dist/syncActions/types.d.ts +1 -1
  351. package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
  352. package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
  353. package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
  354. package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
  355. package/dist/telemetry/index.cjs +3 -6
  356. package/dist/telemetry/index.cjs.map +1 -1
  357. package/dist/telemetry/index.d.cts +2 -5
  358. package/dist/telemetry/index.d.ts +2 -5
  359. package/dist/telemetry/index.js +3 -6
  360. package/dist/telemetry/index.js.map +1 -1
  361. package/dist/telemetry/types.d.cts +1 -1
  362. package/dist/telemetry/types.d.ts +1 -1
  363. package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
  364. package/dist/transientRetries-B4iusp69.js.map +1 -0
  365. package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
  366. package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
  367. package/dist/{types-QroFANIW.d.cts → types-0ZAMQhva.d.cts} +3 -3
  368. package/dist/{types-BMWeCO5M.d.ts → types-1LENlL5h.d.ts} +3 -3
  369. package/dist/{types-BRvs3fXN.d.cts → types-6KabdIyO.d.cts} +3 -3
  370. package/dist/{types-B5kkD7h4.d.cts → types-9d8ihjZh.d.cts} +2 -2
  371. package/dist/{types-qGMVZGSB.d.ts → types-B7L6uSYb.d.ts} +50 -3
  372. package/dist/{types-qWA5iU0j.d.ts → types-BTy_FFSu.d.ts} +2 -2
  373. package/dist/{types-B1GN_I06.d.ts → types-BWYtQkHu.d.ts} +2 -2
  374. package/dist/types-BXHZQvGy.d.ts +2111 -0
  375. package/dist/{types-Btb8r9iw.d.ts → types-BYFU_6Iz.d.ts} +95 -26
  376. package/dist/{types-Nwq1QtYe.d.ts → types-BaqdM92a.d.ts} +3 -4
  377. package/dist/{types-CFurl1xe.d.cts → types-BbwrMl0Q.d.cts} +2 -2
  378. package/dist/{types-Br04cEri.d.ts → types-Bt8CEZ6K.d.ts} +2 -2
  379. package/dist/types-BtS3DhGu.d.cts +2111 -0
  380. package/dist/{types-CaBhH99H.d.ts → types-C-GSYDTN.d.ts} +3 -3
  381. package/dist/{types-BGICH80a.d.cts → types-C4eQ-Zcx.d.cts} +2 -2
  382. package/dist/{types-BTqxM-IN.d.ts → types-C9VaQSqV.d.ts} +2 -2
  383. package/dist/{types-C05ALlV6.d.cts → types-CNkQuWnO.d.cts} +3 -3
  384. package/dist/{types-DMWfdZ5C.d.cts → types-CXv_e6xC.d.cts} +2 -2
  385. package/dist/{types-C8oZX0oP.d.cts → types-C_raqbl-.d.cts} +3 -3
  386. package/dist/{types-BtII5RSD.d.ts → types-Cc4yTEdK.d.ts} +11 -3
  387. package/dist/{types-BoNqe_Lz.d.ts → types-Ce5Blzhg.d.ts} +2 -2
  388. package/dist/{types-UI2aZ74n.d.ts → types-CfZLdfAL.d.ts} +3 -3
  389. package/dist/{types-sg2xnYlr.d.cts → types-Cfc-fYbq.d.cts} +95 -26
  390. package/dist/{types-C4yryy-R.d.ts → types-Cn8I0vcr.d.ts} +3 -3
  391. package/dist/{types-DQauEri3.d.ts → types-CpWE6Yg2.d.ts} +2 -2
  392. package/dist/{types-XHNJRi3-.d.cts → types-CrJIILXf.d.cts} +2 -2
  393. package/dist/{types-DHdXufVf.d.cts → types-CwGbiMF-.d.cts} +3 -3
  394. package/dist/{types-fAqPUl-a.d.ts → types-CwQ8_n8q.d.ts} +320 -43
  395. package/dist/{types-BksK2Eo0.d.cts → types-D3H3EAre.d.ts} +2 -2
  396. package/dist/{types-CyO8qCKl.d.cts → types-D3mj56iq.d.cts} +2 -2
  397. package/dist/{types-YdE2VJzw.d.cts → types-D8d5tyGi.d.cts} +2 -2
  398. package/dist/{types-Csmy6qFk.d.cts → types-DMpiG2q4.d.cts} +3 -3
  399. package/dist/{types-ggpJFEWZ.d.cts → types-DSBrhK_K.d.cts} +2 -2
  400. package/dist/{types-5HdT1rSH.d.cts → types-DXF6faow.d.cts} +2 -2
  401. package/dist/{types-DDjp9lXD.d.ts → types-DfJP6Dti.d.ts} +2 -2
  402. package/dist/{types-DSv1XS7s.d.ts → types-DgOLSRiy.d.ts} +3 -3
  403. package/dist/{types-tJLoKlMX.d.cts → types-DlgqPU_4.d.cts} +2 -2
  404. package/dist/{types-sI3K5t3w.d.cts → types-Dn1G-qv4.d.cts} +320 -43
  405. package/dist/{types--owScV0r.d.cts → types-EkyQ0_10.d.cts} +11 -3
  406. package/dist/{types-LxDyOfdY.d.cts → types-EmIcG-8K.d.cts} +2 -2
  407. package/dist/{types-DGu-wPPm.d.cts → types-NSxpnYW5.d.cts} +50 -3
  408. package/dist/{types-Dvysi2Eo.d.ts → types-QPW-7dPm.d.ts} +2 -2
  409. package/dist/{types-BE7mRarT.d.ts → types-UySfduQo.d.ts} +2 -2
  410. package/dist/{types-BHxsCu0f.d.ts → types-VehpPOQX.d.ts} +2 -2
  411. package/dist/{types-DiE081mn.d.ts → types-Vu09EUZs.d.ts} +3 -3
  412. package/dist/{types-CoQET4Ep.d.ts → types-c4h2YDMC.d.ts} +2 -2
  413. package/dist/{types-BuKviWct.d.ts → types-sOM2_KPc.d.cts} +2 -2
  414. package/dist/{types-DUDQg4ry.d.cts → types-wNuJUhco.d.cts} +3 -4
  415. package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
  416. package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
  417. package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
  418. package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
  419. package/dist/vault/index.cjs +6 -6
  420. package/dist/vault/index.cjs.map +1 -1
  421. package/dist/vault/index.d.cts +1 -1
  422. package/dist/vault/index.d.ts +1 -1
  423. package/dist/vault/index.js +6 -6
  424. package/dist/vault/index.js.map +1 -1
  425. package/dist/vault/types.d.cts +1 -1
  426. package/dist/vault/types.d.ts +1 -1
  427. package/package.json +27 -1
  428. package/surface/ai.md +0 -1
  429. package/surface/apps.md +5 -5
  430. package/surface/auth.md +2 -0
  431. package/surface/chat.md +2 -2
  432. package/surface/componentsMcp.md +9 -0
  433. package/surface/dataScience.md +2 -2
  434. package/surface/kaiAgent.md +5 -4
  435. package/surface/management.md +5 -2
  436. package/surface/oauth.md +1 -0
  437. package/surface/queryService.md +4 -4
  438. package/surface/queue.md +2 -2
  439. package/surface/sdk.md +0 -24
  440. package/surface/storage.md +88 -57
  441. package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
  442. package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
  443. package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
  444. package/dist/authClient-CACOwVt0.js.map +0 -1
  445. package/dist/authClient-DZcAR-eW.cjs.map +0 -1
  446. package/dist/collect-97WhfEpt.js.map +0 -1
  447. package/dist/collect-B5TCNiT1.cjs.map +0 -1
  448. package/dist/configurations-BTRHVSRq.cjs.map +0 -1
  449. package/dist/configurations-Chg_JwJ1.js.map +0 -1
  450. package/dist/constants-BDGRQqij.cjs.map +0 -1
  451. package/dist/constants-Cifrqsls.js.map +0 -1
  452. package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
  453. package/dist/createFetchClient-DITkTV2k.js.map +0 -1
  454. package/dist/index-BzhLY7el.d.cts +0 -254
  455. package/dist/index-CH5Sg3rk.d.ts +0 -77
  456. package/dist/index-CiwWDu-q.d.cts +0 -16
  457. package/dist/index-DCAnnlcL.d.ts +0 -16
  458. package/dist/index-DQwjlSJi.d.cts +0 -77
  459. package/dist/index-PyTPrtaL.d.ts +0 -254
  460. package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
  461. package/dist/jobStatus-BJdbZ72V.js.map +0 -1
  462. package/dist/kaiAgent-BhcUsBDk.cjs.map +0 -1
  463. package/dist/kaiAgent-CUeT53-K.js.map +0 -1
  464. package/dist/management-0cWVLHei.cjs.map +0 -1
  465. package/dist/management-eg4Ig-Cx.js.map +0 -1
  466. package/dist/middleware-D_p5TctO.cjs.map +0 -1
  467. package/dist/middleware-DmR6OhTY.js.map +0 -1
  468. package/dist/project-BN7YRWFS.d.cts +0 -24
  469. package/dist/project-BpWTnoQ_.d.ts +0 -24
  470. package/dist/queryService-Blfz59Ms.js.map +0 -1
  471. package/dist/queryService-RlNYw7LG.cjs.map +0 -1
  472. package/dist/queue-BrgRdtOr.cjs.map +0 -1
  473. package/dist/queue-CNvR-M23.js.map +0 -1
  474. package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
  475. package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
  476. package/dist/storage-76Sf_z_H.cjs.map +0 -1
  477. package/dist/storage-RkNaOFJ-.js.map +0 -1
  478. package/dist/types-1B3ioN33.d.cts +0 -1868
  479. package/dist/types-BjIuVrAZ.d.ts +0 -66
  480. package/dist/types-CGhu0tID.d.cts +0 -1298
  481. package/dist/types-CclheyE7.d.cts +0 -66
  482. package/dist/types-M9vU_ONp.d.ts +0 -1868
  483. package/dist/types-P_61P9Nd.d.ts +0 -1298
  484. package/dist/types-j30rKMe6.d.ts +0 -957
  485. package/dist/types-q5lgElyc.d.cts +0 -957
package/README.md CHANGED
@@ -176,6 +176,7 @@ src/
176
176
  oauth/ # OAuth credentials
177
177
  chat/ # Kai Assistant chat
178
178
  kaiAgent/ # Kai Agent (agentic assistant)
179
+ componentsMcp/ # Components MCP connector vault
179
180
  ai/ # AI describe/explain/suggest
180
181
  queue/ # Job Queue
181
182
  queryService/ # SQL query service
@@ -211,23 +212,24 @@ src/
211
212
  On the `api` object returned by `createKeboola()` / `createLegacyKeboola()` — once the session reaches `ready` — the following clients are available.
212
213
  Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the generic fetch client.
213
214
 
214
- | Accessor | Service | Key methods |
215
- | ------------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
216
- | `api.storage` | Storage API | `buckets.*`, `tables.*`, `files.*`, `branches.*`, `workspaces.*`, `mergeRequests.*`, `jobs.*`, `components.*`, `configurations.*`, `configurationRows.*`, `configurationWorkspaces.*`, `tokens.*`, `getStackInfo()` |
217
- | `api.management` | Management API | `projects.*`, `features.*`, `users.*` |
218
- | `api.vault` | Vault (OpenAPI) | `getVariables()`, `createVariable()`, `deleteVariable()`, `getVariablesByBranchId()`, `getProjectWideVariables()` |
219
- | `api.oauth` | OAuth | `getCredentials()`, `getCredential()`, `createCredential()`, `deleteCredential()` |
220
- | `api.dataScience` | Data Science (OpenAPI) | `getApps()`, `getApp()`, `createApp()`, `patchApp()`, `deleteApp()`, `getAppRuns()`, `getAppRun()`, `getAppLogsTail()`, `getAppLogsDownload()`, `getRuntimes()`, `getSandbox()` |
221
- | `api.editor` | SQL Editor (OpenAPI) | `createSession()`, `getSession()`, `getSessions()`, `getSessionSchema()`, `createQueryJob()`, `tablePreview()`, `tableDefinition()`, `load()`, `unload()` |
222
- | `api.encryption` | Encryption | `encrypt()`, `encryptSecrets()` |
223
- | `api.chat` | Kai Assistant (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `getVotes()`, `submitVote()`, `getUsage()`, `getSuggestions()`, `getAgentSettings()`, `getToolsList()` |
224
- | `api.kaiAgent` | Kai Agent (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `approveToolCall()`, `submitToolOutput()`, `getSuggestions()`, `getAgentSettings()` |
225
- | `api.ai` | AI Service (OpenAPI) | `describeConfiguration()`, `describeConfigurationVersion()`, `describeConfigurationMerge()`, `explainError()`, `suggestComponent()`, `feedback()` |
226
- | `api.queue` | Job Queue (OpenAPI) | `getJob()`, `searchJobs()` |
227
- | `api.queryService` | Query Service (OpenAPI) | `createQueryJob()`, `cancelQueryJob()`, `getQueryJob()`, `getQueryResults()`, `getQueryHistory()`, `exportResults()` |
228
- | `api.syncActions` | Sync Actions (OpenAPI) | `sendSyncAction()` + one namespace per component; see [`surface/syncActions.md`](./surface/syncActions.md) |
229
- | `api.telemetry` | Telemetry | `provisioning.*` |
230
- | `api.import` | Import (OpenAPI) | `uploadFile()`, `writeTable()` |
215
+ | Accessor | Service | Key methods |
216
+ | ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
217
+ | `api.storage` | Storage API | `buckets.*`, `tables.*`, `files.*`, `branches.*`, `workspaces.*`, `mergeRequests.*`, `jobs.*`, `components.*`, `configurations.*`, `configurationRows.*`, `configurationWorkspaces.*`, `tokens.*`, `getStackInfo()` |
218
+ | `api.management` | Management API | `projects.*`, `features.*`, `users.*` |
219
+ | `api.vault` | Vault (OpenAPI) | `getVariables()`, `createVariable()`, `deleteVariable()`, `getVariablesByBranchId()`, `getProjectWideVariables()` |
220
+ | `api.oauth` | OAuth | `getCredentials()`, `getCredential()`, `createCredential()`, `deleteCredential()` |
221
+ | `api.dataScience` | Data Science (OpenAPI) | `getApps()`, `getApp()`, `createApp()`, `patchApp()`, `deleteApp()`, `getAppRuns()`, `getAppRun()`, `getAppLogsTail()`, `getAppLogsDownload()`, `getRuntimes()`, `getSandbox()` |
222
+ | `api.editor` | SQL Editor (OpenAPI) | `createSession()`, `getSession()`, `getSessions()`, `getSessionSchema()`, `createQueryJob()`, `tablePreview()`, `tableDefinition()`, `load()`, `unload()` |
223
+ | `api.encryption` | Encryption | `encrypt()`, `encryptSecrets()` |
224
+ | `api.chat` | Kai Assistant (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `getVotes()`, `submitVote()`, `getUsage()`, `getSuggestions()`, `getAgentSettings()`, `getToolsList()` |
225
+ | `api.kaiAgent` | Kai Agent (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `approveToolCall()`, `submitToolOutput()`, `getSuggestions()`, `getAgentSettings()` |
226
+ | `api.componentsMcp` | Components MCP (OpenAPI) | `getConnectors()`, `setConnectorCredentials()` |
227
+ | `api.ai` | AI Service (OpenAPI) | `describeConfiguration()`, `describeConfigurationVersion()`, `describeConfigurationMerge()`, `explainError()`, `suggestComponent()` |
228
+ | `api.queue` | Job Queue (OpenAPI) | `getJob()`, `searchJobs()` |
229
+ | `api.queryService` | Query Service (OpenAPI) | `createQueryJob()`, `cancelQueryJob()`, `getQueryJob()`, `getQueryResults()`, `getQueryHistory()`, `exportResults()` |
230
+ | `api.syncActions` | Sync Actions (OpenAPI) | `sendSyncAction()` + one namespace per component; see [`surface/syncActions.md`](./surface/syncActions.md) |
231
+ | `api.telemetry` | Telemetry | `provisioning.*` |
232
+ | `api.import` | Import (OpenAPI) | `uploadFile()`, `writeTable()` |
231
233
 
232
234
  Additional accessors on the ready client:
233
235
 
@@ -361,37 +363,44 @@ const ordered = await series({
361
363
  });
362
364
  ```
363
365
 
364
- ### poll
366
+ ### poller
365
367
 
366
368
  A poll **returns** how it ended — `done`, `timedOut`, `exhausted`, `aborted`, `errored` — so nothing is
367
- thrown at a caller that wants to branch. `unwrap()` is the shortcut for the caller that doesn't: it
368
- resolves the value or throws.
369
+ thrown at a caller that wants to branch. `wait()` is the shortcut for the caller that doesn't: it
370
+ resolves the succeeded value or throws.
369
371
 
370
372
  ```typescript
371
- import { poll } from '@keboola/api-client';
373
+ import { poller } from '@keboola/api-client';
372
374
 
373
- // `pollKey` is the poll's identity, in the shape of a TanStack query key. It is handed to `pollFn`
374
- // the way a `queryFn` gets its key, and dev tools name a running poll from it.
375
+ // `pollKey` names the poll, in the shape of a TanStack query key; dev tools show a running poll by it.
376
+ // `init` is what the poll starts from, handed to `pollFn`: a value, or a request for it (an enqueue),
377
+ // which runs on `start()` before the first attempt.
375
378
  // `backoff` names the curve by the field it starts from: `interval` for `constant`, `initialInterval`
376
379
  // for `linear` and `exponential`. Add `jitter: 'full' | 'equal'` to spread a herd of polls apart.
377
- const result = await poll({
378
- pollKey: ['queue.job', { jobId }] as const,
379
- pollFn: ({ pollKey: [, params], signal }) => api.queue.getJob(params.jobId, signal),
380
+ const handle = poller({
381
+ pollKey: ({ id }) => ['queue.job', { id }] as const,
382
+ init: { id: jobId },
383
+ pollFn: ({ init, signal }) => api.queue.getJob(init.id, signal),
380
384
  until: ({ data }) => data.status === 'success' || data.status === 'error',
385
+ failed: (job) => (job.status === 'error' ? new Error(job.result?.message) : undefined),
381
386
  backoff: { type: 'exponential', initialInterval: 1000, factor: 2, maxInterval: 30_000 },
382
387
  maxAttempts: 30,
383
388
  timeout: 5 * 60_000,
384
389
  });
385
390
 
391
+ // Nothing runs until one of these. `start()` resolves how the poll ended; `wait()` resolves the
392
+ // value, or throws: the poll's failure, or what `failed` reads off a value that ended badly.
393
+ const result = await handle.start();
386
394
  if (result.state === 'done') console.log(result.data.status);
387
395
 
388
- // Or: resolve the value, throw on anything else. `stop()` ends the poll from outside.
389
- const task = poll({ pollFn, until });
390
- const job = await task.unwrap();
396
+ const job = await handle.wait();
397
+
398
+ // `subscribe()` watches the attempts as they happen, `stop()` ends the poll from outside.
391
399
  ```
392
400
 
393
- `poller(options)` is the same thing cold — it polls only once `start()` is called, and adds
394
- `subscribe()` / `debug()` for watching a poll's attempts as they happen.
401
+ The job clients wrap this: `api.storage.poller({ init: job })`, `api.queue.poller({ init: job })` and
402
+ `api.queryService.poller({ init: job })`, and every `*Poller` method hands back the handle for the
403
+ job it enqueues, `api.storage.tables.createTablePoller(input).wait()`.
395
404
 
396
405
  ### keboolaUID
397
406
 
@@ -459,13 +468,14 @@ Internal guide for adding new service clients to this package.
459
468
 
460
469
  ### Method naming conventions
461
470
 
462
- A method's name states what the call does, so a call site can tell whether the work is finished once the promise settles. Clients expose the endpoint methods plus — where the endpoint enqueues a job — a wait-variant suffixed `AndWait`.
471
+ A method's name states what the call does, so a call site can tell whether the work is finished once the promise settles. Clients expose the endpoint methods plus — where the endpoint enqueues a job — a `*Poller` twin that hands back the poller for the job.
463
472
 
464
- | What the call does | Name shape | Example |
465
- | ------------------------------------------------ | ---------- | ----------------------------- |
466
- | returns the finished resource in one request | bare verb | `buckets.getBucket()` |
467
- | enqueues the work and hands back a `Job` to poll | `*Async` | `tables.createTableAsync()` |
468
- | enqueues the work and polls it to completion | `*AndWait` | `tables.createTableAndWait()` |
473
+ | What the call does | Name shape | Example |
474
+ | ------------------------------------------------ | ---------- | --------------------------------------------- |
475
+ | returns the finished resource in one request | bare verb | `buckets.getBucket()` |
476
+ | enqueues the work and hands back a `Job` to poll | `*Async` | `tables.createTableAsync()` |
477
+ | hands back the poller for the enqueue | `*Poller` | `tables.createTablePoller()` |
478
+ | runs a batch to completion and reports it | `*AndWait` | `configurations.purgeConfigurationsAndWait()` |
469
479
 
470
480
  The suffix is a suffix on purpose: a wait-variant shares its sibling's prefix, so the two sort together in autocomplete.
471
481
 
@@ -1,4 +1,4 @@
1
- import { p as ApiError } from "./createFetchClient-DITkTV2k.js";
1
+ import { p as ApiError } from "./createFetchClient-CkHdS_IG.js";
2
2
  //#region src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends ApiError {
4
4
  title;
@@ -33,4 +33,4 @@ var ManagementSessionMintError = class extends ManagementClientAuthError {
33
33
  //#endregion
34
34
  export { ManagementClientAuthError as n, ManagementSessionMintError as t };
35
35
 
36
- //# sourceMappingURL=ManagementSessionMintError-5FFyvBZi.js.map
36
+ //# sourceMappingURL=ManagementSessionMintError-4Pkn5Oob.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementSessionMintError-5FFyvBZi.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"ManagementSessionMintError-4Pkn5Oob.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
@@ -1,4 +1,4 @@
1
- const require_createFetchClient = require("./createFetchClient-ClWD4ua3.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
2
2
  //#region src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends require_createFetchClient.ApiError {
4
4
  title;
@@ -44,4 +44,4 @@ Object.defineProperty(exports, "ManagementSessionMintError", {
44
44
  }
45
45
  });
46
46
 
47
- //# sourceMappingURL=ManagementSessionMintError-Bm8s6yDB.cjs.map
47
+ //# sourceMappingURL=ManagementSessionMintError-Cu9beG7j.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementSessionMintError-Bm8s6yDB.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"ManagementSessionMintError-Cu9beG7j.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
@@ -0,0 +1,22 @@
1
+ //#region src/errors/QueryJobError.ts
2
+ /**
3
+ * A query job that reached the API's terminal `failed` state — the submit/poll round-trip
4
+ * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure
5
+ * of the submit/poll/results requests themselves.
6
+ */
7
+ var QueryJobError = class QueryJobError extends Error {
8
+ queryJobId;
9
+ failedStatements;
10
+ constructor(message, queryJobId, { failedStatements }) {
11
+ super(message);
12
+ this.name = "QueryJobError";
13
+ this.queryJobId = queryJobId;
14
+ this.failedStatements = failedStatements;
15
+ Object.setPrototypeOf(this, QueryJobError.prototype);
16
+ }
17
+ };
18
+ const isQueryJobError = (error) => error instanceof QueryJobError;
19
+ //#endregion
20
+ export { isQueryJobError as n, QueryJobError as t };
21
+
22
+ //# sourceMappingURL=QueryJobError-ZZZ043Nm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryJobError-ZZZ043Nm.js","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -17,45 +17,17 @@ var QueryJobError = class QueryJobError extends Error {
17
17
  };
18
18
  const isQueryJobError = (error) => error instanceof QueryJobError;
19
19
  //#endregion
20
- //#region src/errors/QueryJobTimeoutError.ts
21
- /**
22
- * A query job that never reached a terminal state within the caller's `maxWaitTime` — the job may
23
- * still complete later; this only means `waitForJob`/`executeQuery` gave up watching it.
24
- */
25
- var QueryJobTimeoutError = class QueryJobTimeoutError extends Error {
26
- queryJobId;
27
- constructor(message, queryJobId) {
28
- super(message);
29
- this.name = "QueryJobTimeoutError";
30
- this.queryJobId = queryJobId;
31
- Object.setPrototypeOf(this, QueryJobTimeoutError.prototype);
32
- }
33
- };
34
- const isQueryJobTimeoutError = (error) => error instanceof QueryJobTimeoutError;
35
- //#endregion
36
20
  Object.defineProperty(exports, "QueryJobError", {
37
21
  enumerable: true,
38
22
  get: function() {
39
23
  return QueryJobError;
40
24
  }
41
25
  });
42
- Object.defineProperty(exports, "QueryJobTimeoutError", {
43
- enumerable: true,
44
- get: function() {
45
- return QueryJobTimeoutError;
46
- }
47
- });
48
26
  Object.defineProperty(exports, "isQueryJobError", {
49
27
  enumerable: true,
50
28
  get: function() {
51
29
  return isQueryJobError;
52
30
  }
53
31
  });
54
- Object.defineProperty(exports, "isQueryJobTimeoutError", {
55
- enumerable: true,
56
- get: function() {
57
- return isQueryJobTimeoutError;
58
- }
59
- });
60
32
 
61
- //# sourceMappingURL=QueryJobTimeoutError-CVNPdCWX.cjs.map
33
+ //# sourceMappingURL=QueryJobError-irGiP5zh.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryJobError-irGiP5zh.cjs","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -0,0 +1,30 @@
1
+ //#region src/errors/QueueJobError.ts
2
+ /** A queue job that ended `error`: the wait finished, the job did not succeed. */
3
+ var QueueJobError = class QueueJobError extends Error {
4
+ exceptionId;
5
+ job;
6
+ constructor(job) {
7
+ super(job.result?.message ?? "The job failed.");
8
+ this.name = "QueueJobError";
9
+ const exceptionId = job.result && "exceptionId" in job.result ? job.result.exceptionId : void 0;
10
+ this.exceptionId = typeof exceptionId === "string" ? exceptionId : void 0;
11
+ this.job = job;
12
+ Object.setPrototypeOf(this, QueueJobError.prototype);
13
+ }
14
+ };
15
+ const isQueueJobError = (error) => error instanceof QueueJobError;
16
+ //#endregion
17
+ Object.defineProperty(exports, "QueueJobError", {
18
+ enumerable: true,
19
+ get: function() {
20
+ return QueueJobError;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "isQueueJobError", {
24
+ enumerable: true,
25
+ get: function() {
26
+ return isQueueJobError;
27
+ }
28
+ });
29
+
30
+ //# sourceMappingURL=QueueJobError-6qSEizWo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueJobError-6qSEizWo.cjs","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -0,0 +1,19 @@
1
+ //#region src/errors/QueueJobError.ts
2
+ /** A queue job that ended `error`: the wait finished, the job did not succeed. */
3
+ var QueueJobError = class QueueJobError extends Error {
4
+ exceptionId;
5
+ job;
6
+ constructor(job) {
7
+ super(job.result?.message ?? "The job failed.");
8
+ this.name = "QueueJobError";
9
+ const exceptionId = job.result && "exceptionId" in job.result ? job.result.exceptionId : void 0;
10
+ this.exceptionId = typeof exceptionId === "string" ? exceptionId : void 0;
11
+ this.job = job;
12
+ Object.setPrototypeOf(this, QueueJobError.prototype);
13
+ }
14
+ };
15
+ const isQueueJobError = (error) => error instanceof QueueJobError;
16
+ //#endregion
17
+ export { isQueueJobError as n, QueueJobError as t };
18
+
19
+ //# sourceMappingURL=QueueJobError-8bThS_Mc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueJobError-8bThS_Mc.js","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"adminRoles-B40yBcmq.js","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["export const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const;\n\nexport type AdminRole = (typeof AdminRole)[keyof typeof AdminRole];\n"],"mappings":";AAAA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
1
+ {"version":3,"file":"adminRoles-B40yBcmq.js","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
@@ -1,4 +1,6 @@
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-ChDl6ig5.cjs";
1
2
  //#region src/constants/adminRoles.d.ts
3
+ type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
2
4
  declare const AdminRole: {
3
5
  readonly Admin: 'admin';
4
6
  readonly Share: 'share';
@@ -8,7 +10,7 @@ declare const AdminRole: {
8
10
  readonly ReadOnly: 'readOnly';
9
11
  readonly Guest: 'guest';
10
12
  };
11
- type AdminRole = (typeof AdminRole)[keyof typeof AdminRole];
13
+ type AdminRole = SpecAdminRole;
12
14
  //#endregion
13
15
  export { AdminRole as t };
14
- //# sourceMappingURL=adminRoles-C696kD_U.d.ts.map
16
+ //# sourceMappingURL=adminRoles-BgpaBE7h.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminRoles-CO7J5qAy.cjs","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["export const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const;\n\nexport type AdminRole = (typeof AdminRole)[keyof typeof AdminRole];\n"],"mappings":";AAAA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
1
+ {"version":3,"file":"adminRoles-CO7J5qAy.cjs","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
@@ -1,4 +1,6 @@
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-sDHBkJhU.js";
1
2
  //#region src/constants/adminRoles.d.ts
3
+ type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
2
4
  declare const AdminRole: {
3
5
  readonly Admin: 'admin';
4
6
  readonly Share: 'share';
@@ -8,7 +10,7 @@ declare const AdminRole: {
8
10
  readonly ReadOnly: 'readOnly';
9
11
  readonly Guest: 'guest';
10
12
  };
11
- type AdminRole = (typeof AdminRole)[keyof typeof AdminRole];
13
+ type AdminRole = SpecAdminRole;
12
14
  //#endregion
13
15
  export { AdminRole as t };
14
- //# sourceMappingURL=adminRoles-C696kD_U.d.cts.map
16
+ //# sourceMappingURL=adminRoles-DsoGQipO.d.ts.map
package/dist/ai/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-CioTX11-.cjs");
3
- const require_auth = require("../auth-C9o_0bft.cjs");
2
+ const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-DHYo_k3t.cjs");
3
+ const require_auth = require("../auth-C8Pjl0Mu.cjs");
4
4
  //#region src/clients/ai/aiClient.ts
5
5
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
6
6
  const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
@@ -28,10 +28,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
28
28
  const { data } = await client.post("/suggest/component", { body });
29
29
  return data;
30
30
  };
31
- const feedback = async (body) => {
32
- const { data } = await client.post("/feedback", { body });
33
- return data;
34
- };
35
31
  /** Answers a question using the Keboola documentation as a source. */
36
32
  const docsQuestion = async (body) => {
37
33
  const { data } = await client.post("/docs/question", { body });
@@ -53,7 +49,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
53
49
  explainError,
54
50
  describeConfiguration,
55
51
  suggestComponent,
56
- feedback,
57
52
  docsQuestion,
58
53
  getComponentDetail
59
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n FeedbackBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n const feedback = async (body: FeedbackBody) => {\n const { data } = await client.post('/feedback', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n feedback,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;;AAeA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,SAAuB;EAC7C,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,aAAa,EAAE,KAAK,CAAC;EAExD,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;;AAcA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1,5 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-DUDQg4ry.cjs";
2
- import { n as ClientInitOptions } from "../types-BksK2Eo0.cjs";
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-wNuJUhco.cjs";
2
+ import { n as ClientInitOptions } from "../types-sOM2_KPc.cjs";
3
3
  //#region src/clients/ai/aiClient.d.ts
4
4
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
5
  healthCheck: (signal?: AbortSignal) => Promise<{
@@ -25,7 +25,6 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
25
25
  components: components['schemas']['SuggestedComponent'][];
26
26
  correlationId: string;
27
27
  }>;
28
- feedback: (body: FeedbackBody) => Promise<never>;
29
28
  docsQuestion: (body: DocsQuestionBody) => Promise<{
30
29
  response: string;
31
30
  metadata: {
@@ -1,5 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-Nwq1QtYe.js";
2
- import { n as ClientInitOptions } from "../types-BuKviWct.js";
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-BaqdM92a.js";
2
+ import { n as ClientInitOptions } from "../types-D3H3EAre.js";
3
3
  //#region src/clients/ai/aiClient.d.ts
4
4
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
5
  healthCheck: (signal?: AbortSignal) => Promise<{
@@ -25,7 +25,6 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
25
25
  components: components['schemas']['SuggestedComponent'][];
26
26
  correlationId: string;
27
27
  }>;
28
- feedback: (body: FeedbackBody) => Promise<never>;
29
28
  docsQuestion: (body: DocsQuestionBody) => Promise<{
30
29
  response: string;
31
30
  metadata: {
package/dist/ai/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-wq8iGLZM.js";
2
- import { t as createAuthHeaders } from "../auth-C6cHWIWx.js";
1
+ import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-DXiMv9WL.js";
2
+ import { t as createAuthHeaders } from "../auth-4coY1uwo.js";
3
3
  //#region src/clients/ai/aiClient.ts
4
4
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
5
5
  const client = createOpenapiFetchClient({
@@ -27,10 +27,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
27
27
  const { data } = await client.post("/suggest/component", { body });
28
28
  return data;
29
29
  };
30
- const feedback = async (body) => {
31
- const { data } = await client.post("/feedback", { body });
32
- return data;
33
- };
34
30
  /** Answers a question using the Keboola documentation as a source. */
35
31
  const docsQuestion = async (body) => {
36
32
  const { data } = await client.post("/docs/question", { body });
@@ -52,7 +48,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
52
48
  explainError,
53
49
  describeConfiguration,
54
50
  suggestComponent,
55
- feedback,
56
51
  docsQuestion,
57
52
  getComponentDetail
58
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n FeedbackBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n const feedback = async (body: FeedbackBody) => {\n const { data } = await client.post('/feedback', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n feedback,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;AAeA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,SAAuB;EAC7C,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,aAAa,EAAE,KAAK,CAAC;EAExD,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;AAcA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-DUDQg4ry.cjs";
2
- export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-wNuJUhco.cjs";
2
+ export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-Nwq1QtYe.js";
2
- export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-BaqdM92a.js";
2
+ export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
2
2
  const require_isPlainObject = require("./isPlainObject-BB3iy87C.cjs");
3
- const require_createFetchClient = require("./createFetchClient-ClWD4ua3.cjs");
3
+ const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
4
4
  let zod = require("zod");
5
5
  zod = require_rolldown_runtime.__toESM(zod, 1);
6
6
  let dayjs = require("dayjs");
@@ -150,4 +150,4 @@ Object.defineProperty(exports, "readAppLogsTail", {
150
150
  }
151
151
  });
152
152
 
153
- //# sourceMappingURL=appLogs-BG9ueGxA.cjs.map
153
+ //# sourceMappingURL=appLogs-Cix2KWra.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLogs-BG9ueGxA.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"appLogs-Cix2KWra.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}