@keboola/api-client 45.0.0 → 47.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/AGENTS.md +86 -21
  2. package/API-SURFACE.md +49 -29
  3. package/CHANGELOG.md +69 -0
  4. package/README.md +47 -37
  5. package/dist/ManagementSessionMintError-4Pkn5Oob.js +36 -0
  6. package/dist/ManagementSessionMintError-4Pkn5Oob.js.map +1 -0
  7. package/dist/ManagementSessionMintError-Cu9beG7j.cjs +47 -0
  8. package/dist/ManagementSessionMintError-Cu9beG7j.cjs.map +1 -0
  9. package/dist/QueryJobError-ZZZ043Nm.js +22 -0
  10. package/dist/QueryJobError-ZZZ043Nm.js.map +1 -0
  11. package/dist/{QueryJobTimeoutError-CVNPdCWX.cjs → QueryJobError-irGiP5zh.cjs} +1 -29
  12. package/dist/QueryJobError-irGiP5zh.cjs.map +1 -0
  13. package/dist/QueueJobError-6qSEizWo.cjs +30 -0
  14. package/dist/QueueJobError-6qSEizWo.cjs.map +1 -0
  15. package/dist/QueueJobError-8bThS_Mc.js +19 -0
  16. package/dist/QueueJobError-8bThS_Mc.js.map +1 -0
  17. package/dist/adminRoles-B40yBcmq.js.map +1 -1
  18. package/dist/adminRoles-CO7J5qAy.cjs.map +1 -1
  19. package/dist/{adminRoles-C696kD_U.d.cts → adminRoles-CvdIUkiC.d.ts} +4 -2
  20. package/dist/{adminRoles-C696kD_U.d.ts → adminRoles-DGM8SuuF.d.cts} +4 -2
  21. package/dist/ai/index.cjs +2 -2
  22. package/dist/ai/index.d.cts +2 -2
  23. package/dist/ai/index.d.ts +2 -2
  24. package/dist/ai/index.js +2 -2
  25. package/dist/ai/types.d.cts +1 -1
  26. package/dist/ai/types.d.ts +1 -1
  27. package/dist/{appLogs-BG9ueGxA.cjs → appLogs-Cix2KWra.cjs} +2 -2
  28. package/dist/{appLogs-BG9ueGxA.cjs.map → appLogs-Cix2KWra.cjs.map} +1 -1
  29. package/dist/{appLogs-C9YlJ2g8.d.cts → appLogs-Cxhm2Rkn.d.cts} +2 -2
  30. package/dist/{appLogs-CEKz68bE.js → appLogs-KslK7qHr.js} +2 -2
  31. package/dist/{appLogs-CEKz68bE.js.map → appLogs-KslK7qHr.js.map} +1 -1
  32. package/dist/{appLogs-BS6ViVGR.d.ts → appLogs-xW0-JQXg.d.ts} +2 -2
  33. package/dist/apps/index.cjs +3 -3
  34. package/dist/apps/index.d.cts +3 -3
  35. package/dist/apps/index.d.ts +3 -3
  36. package/dist/apps/index.js +3 -3
  37. package/dist/apps/types.d.cts +2 -2
  38. package/dist/apps/types.d.ts +2 -2
  39. package/dist/assets/index.cjs +1 -1
  40. package/dist/assets/index.d.cts +1 -1
  41. package/dist/assets/index.d.ts +1 -1
  42. package/dist/assets/index.js +1 -1
  43. package/dist/auth/index.cjs +1 -1
  44. package/dist/auth/index.d.cts +1 -1
  45. package/dist/auth/index.d.ts +1 -1
  46. package/dist/auth/index.js +1 -1
  47. package/dist/auth/types.d.cts +2 -2
  48. package/dist/auth/types.d.ts +2 -2
  49. package/dist/{auth-C6cHWIWx.js → auth-4coY1uwo.js} +2 -2
  50. package/dist/{auth-C6cHWIWx.js.map → auth-4coY1uwo.js.map} +1 -1
  51. package/dist/{auth-C9o_0bft.cjs → auth-C8Pjl0Mu.cjs} +2 -2
  52. package/dist/{auth-C9o_0bft.cjs.map → auth-C8Pjl0Mu.cjs.map} +1 -1
  53. package/dist/{authClient-CACOwVt0.js → authClient-2e8ZmzSP.js} +71 -7
  54. package/dist/authClient-2e8ZmzSP.js.map +1 -0
  55. package/dist/{authClient-CBVAT3v9.d.cts → authClient-Bso5UaXS.d.ts} +45 -33
  56. package/dist/{authClient-DZcAR-eW.cjs → authClient-DfkKlc-2.cjs} +82 -6
  57. package/dist/authClient-DfkKlc-2.cjs.map +1 -0
  58. package/dist/{authClient-CRumc934.d.ts → authClient-aud2dUZd.d.cts} +45 -33
  59. package/dist/billing/index.cjs +2 -2
  60. package/dist/billing/index.d.cts +1 -1
  61. package/dist/billing/index.d.ts +1 -1
  62. package/dist/billing/index.js +2 -2
  63. package/dist/billing/types.d.cts +1 -1
  64. package/dist/billing/types.d.ts +1 -1
  65. package/dist/chat/index.cjs +3 -3
  66. package/dist/chat/index.d.cts +2 -2
  67. package/dist/chat/index.d.ts +2 -2
  68. package/dist/chat/index.js +3 -3
  69. package/dist/chat/types.d.cts +1 -1
  70. package/dist/chat/types.d.ts +1 -1
  71. package/dist/{collect-97WhfEpt.js → collectByOffset-2XzJqmvr.js} +6 -6
  72. package/dist/collectByOffset-2XzJqmvr.js.map +1 -0
  73. package/dist/{collect-B5TCNiT1.cjs → collectByOffset-DQsqtmJg.cjs} +7 -7
  74. package/dist/collectByOffset-DQsqtmJg.cjs.map +1 -0
  75. package/dist/componentsMcp/index.cjs +3 -0
  76. package/dist/componentsMcp/index.d.cts +2 -0
  77. package/dist/componentsMcp/index.d.ts +2 -0
  78. package/dist/componentsMcp/index.js +2 -0
  79. package/dist/componentsMcp/types.cjs +0 -0
  80. package/dist/componentsMcp/types.d.cts +2 -0
  81. package/dist/componentsMcp/types.d.ts +2 -0
  82. package/dist/componentsMcp/types.js +1 -0
  83. package/dist/componentsMcp-CHobIsuU.js +57 -0
  84. package/dist/componentsMcp-CHobIsuU.js.map +1 -0
  85. package/dist/componentsMcp-pG-PcQrg.cjs +62 -0
  86. package/dist/componentsMcp-pG-PcQrg.cjs.map +1 -0
  87. package/dist/configurations-BTRHVSRq.cjs.map +1 -1
  88. package/dist/configurations-Chg_JwJ1.js.map +1 -1
  89. package/dist/constants/index.cjs +1 -1
  90. package/dist/constants/index.d.cts +2 -3
  91. package/dist/constants/index.d.ts +2 -3
  92. package/dist/constants/index.js +1 -1
  93. package/dist/{constants-Cifrqsls.js → constants-CA4UN2Xv.js} +11 -10
  94. package/dist/constants-CA4UN2Xv.js.map +1 -0
  95. package/dist/{constants-BDGRQqij.cjs → constants-a0jswUeK.cjs} +10 -9
  96. package/dist/constants-a0jswUeK.cjs.map +1 -0
  97. package/dist/{createFetchClient-DITkTV2k.js → createFetchClient-CkHdS_IG.js} +5 -5
  98. package/dist/createFetchClient-CkHdS_IG.js.map +1 -0
  99. package/dist/{createFetchClient-ClWD4ua3.cjs → createFetchClient-lZ_93Yrb.cjs} +5 -5
  100. package/dist/createFetchClient-lZ_93Yrb.cjs.map +1 -0
  101. package/dist/{createGenericFetchClient-KqiJhw8G.js → createGenericFetchClient-CQdNcPC3.js} +2 -2
  102. package/dist/{createGenericFetchClient-KqiJhw8G.js.map → createGenericFetchClient-CQdNcPC3.js.map} +1 -1
  103. package/dist/{createGenericFetchClient-B81Iezpb.cjs → createGenericFetchClient-MOx97wi-.cjs} +2 -2
  104. package/dist/{createGenericFetchClient-B81Iezpb.cjs.map → createGenericFetchClient-MOx97wi-.cjs.map} +1 -1
  105. package/dist/{createOpenapiFetchClient-CioTX11-.cjs → createOpenapiFetchClient-DHYo_k3t.cjs} +2 -2
  106. package/dist/{createOpenapiFetchClient-CioTX11-.cjs.map → createOpenapiFetchClient-DHYo_k3t.cjs.map} +1 -1
  107. package/dist/{createOpenapiFetchClient-wq8iGLZM.js → createOpenapiFetchClient-DXiMv9WL.js} +2 -2
  108. package/dist/{createOpenapiFetchClient-wq8iGLZM.js.map → createOpenapiFetchClient-DXiMv9WL.js.map} +1 -1
  109. package/dist/dataScience/index.cjs +2 -2
  110. package/dist/dataScience/index.d.cts +2 -2
  111. package/dist/dataScience/index.d.ts +2 -2
  112. package/dist/dataScience/index.js +2 -2
  113. package/dist/dataScience/types.d.cts +2 -2
  114. package/dist/dataScience/types.d.ts +2 -2
  115. package/dist/{dataScience-BwHmDoQb.js → dataScience-AwPMeGfz.js} +5 -5
  116. package/dist/{dataScience-BwHmDoQb.js.map → dataScience-AwPMeGfz.js.map} +1 -1
  117. package/dist/{dataScience-Hhoqoql_.cjs → dataScience-BjS1p8WO.cjs} +5 -5
  118. package/dist/{dataScience-Hhoqoql_.cjs.map → dataScience-BjS1p8WO.cjs.map} +1 -1
  119. package/dist/developerPortal/index.cjs +1 -1
  120. package/dist/developerPortal/index.d.cts +2 -2
  121. package/dist/developerPortal/index.d.ts +2 -2
  122. package/dist/developerPortal/index.js +1 -1
  123. package/dist/developerPortal/types.d.cts +1 -1
  124. package/dist/developerPortal/types.d.ts +1 -1
  125. package/dist/{developerPortalClient-loKq7X_U.js → developerPortalClient-Bb2suezr.js} +13 -5
  126. package/dist/{developerPortalClient-loKq7X_U.js.map → developerPortalClient-Bb2suezr.js.map} +1 -1
  127. package/dist/{developerPortalClient-COm7wJxS.cjs → developerPortalClient-DUerKw-7.cjs} +13 -5
  128. package/dist/{developerPortalClient-COm7wJxS.cjs.map → developerPortalClient-DUerKw-7.cjs.map} +1 -1
  129. package/dist/domain/permissions/index.cjs +1 -1
  130. package/dist/domain/permissions/index.d.cts +1 -2
  131. package/dist/domain/permissions/index.d.ts +1 -2
  132. package/dist/domain/permissions/index.js +1 -1
  133. package/dist/editor/index.cjs +2 -2
  134. package/dist/editor/index.d.cts +2 -2
  135. package/dist/editor/index.d.ts +2 -2
  136. package/dist/editor/index.js +2 -2
  137. package/dist/editor/types.d.cts +1 -1
  138. package/dist/editor/types.d.ts +1 -1
  139. package/dist/encryption/index.cjs +1 -1
  140. package/dist/encryption/index.d.cts +1 -1
  141. package/dist/encryption/index.d.ts +1 -1
  142. package/dist/encryption/index.js +1 -1
  143. package/dist/encryption/types.d.cts +1 -1
  144. package/dist/encryption/types.d.ts +1 -1
  145. package/dist/import/index.cjs +1 -1
  146. package/dist/import/index.d.cts +3 -3
  147. package/dist/import/index.d.ts +3 -3
  148. package/dist/import/index.js +1 -1
  149. package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
  150. package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
  151. package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
  152. package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
  153. package/dist/{index-DeQDdut6.d.ts → index-8ZjY7YD8.d.cts} +34 -2
  154. package/dist/{index-CA6QxbhZ.d.ts → index-BGEuaZqI.d.cts} +238 -252
  155. package/dist/{index-R-w0Zncz.d.ts → index-BIP0PoMW.d.ts} +4 -4
  156. package/dist/index-B_MzjCeE.d.ts +46 -0
  157. package/dist/{index-CGCXR_6Q.d.ts → index-BeOd45XE.d.ts} +4 -4
  158. package/dist/{index-DeQDdut6.d.cts → index-BnPmXDVP.d.ts} +34 -2
  159. package/dist/{index-Cvkrjh--.d.cts → index-C2OAOK0s.d.ts} +30 -4
  160. package/dist/{index-Bl2EloC0.d.ts → index-CAWy1qjR.d.ts} +22482 -17133
  161. package/dist/{index-CGFGd3tF.d.cts → index-CkwZ5x7E.d.cts} +22482 -17133
  162. package/dist/{index-D9UsQOuT.d.cts → index-DTysQ_yn.d.cts} +5 -5
  163. package/dist/{index-CX8GAP2g.d.ts → index-DUB0BwQv.d.cts} +30 -4
  164. package/dist/{index-zyxZVJnd.d.ts → index-DloFSSj3.d.ts} +3 -3
  165. package/dist/{index-DtuwWYDR.d.ts → index-Dp-a2DdI.d.ts} +4 -4
  166. package/dist/{index-BHWTa4YN.d.cts → index-Ds0tViQS.d.cts} +3 -3
  167. package/dist/{index-BCgmwncs.d.ts → index-HSkjm3QW.d.ts} +5 -5
  168. package/dist/index-URgNfi5L.d.cts +46 -0
  169. package/dist/{index-04pgr-EO.d.cts → index-XG5cO-4H.d.cts} +4 -4
  170. package/dist/{types-BhEx9iRx.d.ts → index-XaPb6unB.d.cts} +4813 -1757
  171. package/dist/{index-DINB7vsV.d.cts → index-ZYvgoqgW.d.cts} +4 -4
  172. package/dist/{index-DkvrbR2i.d.cts → index-_Va9wynk.d.ts} +238 -252
  173. package/dist/{types-sV9OaqTI.d.cts → index-r6YSe8B-.d.ts} +4813 -1757
  174. package/dist/{index-BKOFRmTB.d.cts → index-x_kS_5x_.d.cts} +4 -4
  175. package/dist/index.cjs +171 -163
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.cts +7 -7
  178. package/dist/index.d.ts +7 -7
  179. package/dist/index.js +100 -97
  180. package/dist/index.js.map +1 -1
  181. package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
  182. package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
  183. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
  184. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
  185. package/dist/kaiAgent/index.cjs +1 -1
  186. package/dist/kaiAgent/index.d.cts +2 -2
  187. package/dist/kaiAgent/index.d.ts +2 -2
  188. package/dist/kaiAgent/index.js +1 -1
  189. package/dist/kaiAgent/types.d.cts +1 -1
  190. package/dist/kaiAgent/types.d.ts +1 -1
  191. package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-BmfUG8bB.cjs} +5 -5
  192. package/dist/{kaiAgent-BhcUsBDk.cjs.map → kaiAgent-BmfUG8bB.cjs.map} +1 -1
  193. package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CBPbMwBh.js} +5 -5
  194. package/dist/{kaiAgent-CUeT53-K.js.map → kaiAgent-CBPbMwBh.js.map} +1 -1
  195. package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
  196. package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
  197. package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
  198. package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
  199. package/dist/management/index.cjs +2 -1
  200. package/dist/management/index.d.cts +2 -2
  201. package/dist/management/index.d.ts +2 -2
  202. package/dist/management/index.js +2 -2
  203. package/dist/management/types.d.cts +2 -2
  204. package/dist/management/types.d.ts +2 -2
  205. package/dist/{management-C5lf9nsU.cjs → management-BUGPJ1Bu.cjs} +46 -10
  206. package/dist/management-BUGPJ1Bu.cjs.map +1 -0
  207. package/dist/{management-WAtKH6Tu.js → management-DAg2obYt.js} +39 -9
  208. package/dist/management-DAg2obYt.js.map +1 -0
  209. package/dist/metastore/index.cjs +1 -1
  210. package/dist/metastore/index.d.cts +1 -1
  211. package/dist/metastore/index.d.ts +1 -1
  212. package/dist/metastore/index.js +1 -1
  213. package/dist/metastore/types.d.cts +1 -1
  214. package/dist/metastore/types.d.ts +1 -1
  215. package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
  216. package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
  217. package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
  218. package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
  219. package/dist/microsoftGraph/index.cjs +2 -2
  220. package/dist/microsoftGraph/index.d.cts +3 -3
  221. package/dist/microsoftGraph/index.d.ts +3 -3
  222. package/dist/microsoftGraph/index.js +2 -2
  223. package/dist/microsoftGraph/types.d.cts +2 -2
  224. package/dist/microsoftGraph/types.d.ts +2 -2
  225. package/dist/{middleware-DmR6OhTY.js → middleware-CWaLMlG1.js} +2 -2
  226. package/dist/{middleware-DmR6OhTY.js.map → middleware-CWaLMlG1.js.map} +1 -1
  227. package/dist/{middleware-D_p5TctO.cjs → middleware-DU_5pFDW.cjs} +2 -2
  228. package/dist/{middleware-D_p5TctO.cjs.map → middleware-DU_5pFDW.cjs.map} +1 -1
  229. package/dist/notifications/index.cjs +3 -3
  230. package/dist/notifications/index.d.cts +2 -2
  231. package/dist/notifications/index.d.ts +2 -2
  232. package/dist/notifications/index.js +3 -3
  233. package/dist/notifications/types.d.cts +1 -1
  234. package/dist/notifications/types.d.ts +1 -1
  235. package/dist/oauth/index.cjs +1 -1
  236. package/dist/oauth/index.d.cts +6 -2
  237. package/dist/oauth/index.d.ts +6 -2
  238. package/dist/oauth/index.js +1 -1
  239. package/dist/oauth/types.d.cts +2 -2
  240. package/dist/oauth/types.d.ts +2 -2
  241. package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
  242. package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
  243. package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
  244. package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
  245. package/dist/omnisearch/index.cjs +2 -2
  246. package/dist/omnisearch/index.d.cts +2 -2
  247. package/dist/omnisearch/index.d.ts +2 -2
  248. package/dist/omnisearch/index.js +2 -2
  249. package/dist/omnisearch/types.d.cts +1 -1
  250. package/dist/omnisearch/types.d.ts +1 -1
  251. package/dist/project-BMmfPhXg.d.ts +74 -0
  252. package/dist/{project-DWwZv66D.js → project-BXLFrWJ6.js} +7 -1
  253. package/dist/project-BXLFrWJ6.js.map +1 -0
  254. package/dist/{project-BvFi19K_.cjs → project-CpgplgCr.cjs} +7 -1
  255. package/dist/project-CpgplgCr.cjs.map +1 -0
  256. package/dist/project-dxCJbFay.d.cts +74 -0
  257. package/dist/queryService/index.cjs +1 -1
  258. package/dist/queryService/index.d.cts +1 -1
  259. package/dist/queryService/index.d.ts +1 -1
  260. package/dist/queryService/index.js +1 -1
  261. package/dist/queryService/types.d.cts +2 -2
  262. package/dist/queryService/types.d.ts +2 -2
  263. package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
  264. package/dist/queryService-C-pZha5p.js.map +1 -0
  265. package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
  266. package/dist/queryService-CzK53q94.cjs.map +1 -0
  267. package/dist/queue/index.cjs +1 -1
  268. package/dist/queue/index.d.cts +75 -7
  269. package/dist/queue/index.d.ts +75 -7
  270. package/dist/queue/index.js +1 -1
  271. package/dist/queue/types.d.cts +1 -1
  272. package/dist/queue/types.d.ts +1 -1
  273. package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
  274. package/dist/queue-BJvDWriM.cjs.map +1 -0
  275. package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
  276. package/dist/queue-D6-x4OGF.js.map +1 -0
  277. package/dist/scheduler/index.cjs +3 -3
  278. package/dist/scheduler/index.d.cts +2 -2
  279. package/dist/scheduler/index.d.ts +2 -2
  280. package/dist/scheduler/index.js +3 -3
  281. package/dist/scheduler/types.d.cts +1 -1
  282. package/dist/scheduler/types.d.ts +1 -1
  283. package/dist/{schema-DJa9WBjR.d.cts → schema-BUyMwQnM.d.cts} +7 -1
  284. package/dist/{schema-DJa9WBjR.d.ts → schema-BUyMwQnM.d.ts} +7 -1
  285. package/dist/sdk/configurations/index.d.cts +2 -4
  286. package/dist/sdk/configurations/index.d.ts +2 -4
  287. package/dist/sdk/developerPortal/index.cjs +3 -3
  288. package/dist/sdk/developerPortal/index.d.cts +29 -3
  289. package/dist/sdk/developerPortal/index.d.ts +29 -3
  290. package/dist/sdk/developerPortal/index.js +3 -3
  291. package/dist/sdk/kaiMemory/index.cjs +1 -1
  292. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  293. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  294. package/dist/sdk/kaiMemory/index.js +1 -1
  295. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  296. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  297. package/dist/sdk/queryService/index.cjs +34 -55
  298. package/dist/sdk/queryService/index.cjs.map +1 -1
  299. package/dist/sdk/queryService/index.d.cts +2 -2
  300. package/dist/sdk/queryService/index.d.ts +2 -2
  301. package/dist/sdk/queryService/index.js +34 -55
  302. package/dist/sdk/queryService/index.js.map +1 -1
  303. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  304. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  305. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  306. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  307. package/dist/sdk/storage/index.cjs +0 -119
  308. package/dist/sdk/storage/index.cjs.map +1 -1
  309. package/dist/sdk/storage/index.d.cts +103 -2
  310. package/dist/sdk/storage/index.d.ts +103 -2
  311. package/dist/sdk/storage/index.js +1 -119
  312. package/dist/sdk/storage/index.js.map +1 -1
  313. package/dist/sdk/tag/index.d.cts +2 -2
  314. package/dist/sdk/tag/index.d.ts +2 -2
  315. package/dist/sdk/tag/types.d.cts +1 -1
  316. package/dist/sdk/tag/types.d.ts +1 -1
  317. package/dist/sdk/vault/index.d.cts +1 -1
  318. package/dist/sdk/vault/index.d.ts +1 -1
  319. package/dist/status/index.cjs +1 -1
  320. package/dist/status/index.d.cts +1 -1
  321. package/dist/status/index.d.ts +1 -1
  322. package/dist/status/index.js +1 -1
  323. package/dist/storage/index.cjs +15 -10
  324. package/dist/storage/index.d.cts +3 -3
  325. package/dist/storage/index.d.ts +3 -3
  326. package/dist/storage/index.js +7 -6
  327. package/dist/storage/types.d.cts +6 -5
  328. package/dist/storage/types.d.ts +6 -5
  329. package/dist/{storage-RkNaOFJ-.js → storage-DyR7hDdv.js} +347 -168
  330. package/dist/storage-DyR7hDdv.js.map +1 -0
  331. package/dist/{storage-76Sf_z_H.cjs → storage-yovv11k6.cjs} +366 -169
  332. package/dist/storage-yovv11k6.cjs.map +1 -0
  333. package/dist/stream/index.cjs +3 -3
  334. package/dist/stream/index.d.cts +2 -2
  335. package/dist/stream/index.d.ts +2 -2
  336. package/dist/stream/index.js +3 -3
  337. package/dist/stream/types.d.cts +1 -1
  338. package/dist/stream/types.d.ts +1 -1
  339. package/dist/syncActions/index.cjs +1 -1
  340. package/dist/syncActions/index.d.cts +2 -2
  341. package/dist/syncActions/index.d.ts +2 -2
  342. package/dist/syncActions/index.js +1 -1
  343. package/dist/syncActions/types.d.cts +1 -1
  344. package/dist/syncActions/types.d.ts +1 -1
  345. package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
  346. package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
  347. package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
  348. package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
  349. package/dist/telemetry/index.cjs +3 -6
  350. package/dist/telemetry/index.cjs.map +1 -1
  351. package/dist/telemetry/index.d.cts +2 -5
  352. package/dist/telemetry/index.d.ts +2 -5
  353. package/dist/telemetry/index.js +3 -6
  354. package/dist/telemetry/index.js.map +1 -1
  355. package/dist/telemetry/types.d.cts +1 -1
  356. package/dist/telemetry/types.d.ts +1 -1
  357. package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
  358. package/dist/transientRetries-B4iusp69.js.map +1 -0
  359. package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
  360. package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
  361. package/dist/{types-tgU8XvPs.d.cts → types--qQPfxWt.d.cts} +2 -2
  362. package/dist/types-4CjbcUdD.d.cts +1536 -0
  363. package/dist/{types-DaMmgW-O.d.ts → types-4HmtNuJf.d.ts} +2 -2
  364. package/dist/types-4bSZLxq3.d.cts +1973 -0
  365. package/dist/{types-BaSlU0uo.d.ts → types-7DBpH7Rf.d.ts} +2 -2
  366. package/dist/types-B2ZLjagf.d.ts +1536 -0
  367. package/dist/{types-DgPt4LY_.d.cts → types-B6ozaDkl.d.cts} +192 -78
  368. package/dist/{types-YHUEArkR.d.cts → types-BBbzWczQ.d.cts} +2 -2
  369. package/dist/{types-CgBzm1YR.d.cts → types-BG0oWq8u.d.cts} +2 -2
  370. package/dist/types-BIDKSQdc.d.ts +1973 -0
  371. package/dist/{types-ByLH46Dt.d.cts → types-BKIcow3B.d.cts} +2 -2
  372. package/dist/{types-CfwqVkEA.d.ts → types-BNPvFLgC.d.ts} +2 -2
  373. package/dist/{types-DlQw6FCi.d.ts → types-BXgINefw.d.ts} +2 -2
  374. package/dist/{types-CalDJHCX.d.cts → types-BZBU3mwz.d.cts} +3 -3
  375. package/dist/{types-Bydx6ga_.d.cts → types-B_1plf0y.d.cts} +2 -2
  376. package/dist/{types-Ccd9O6ca.d.cts → types-B_3zoXA1.d.cts} +3 -3
  377. package/dist/{types-BBUZ9EHs.d.ts → types-BcQ3j8xK.d.ts} +8 -2
  378. package/dist/{types-B8N_k79M.d.cts → types-BdF6NDvo.d.cts} +2 -2
  379. package/dist/{types-CABWhTa9.d.ts → types-BiBBKcin.d.ts} +3 -3
  380. package/dist/{types-DVt0qlzI.d.cts → types-BiTn_JVW.d.cts} +736 -289
  381. package/dist/{types-CN6huo55.d.ts → types-BjEiUOL6.d.ts} +192 -78
  382. package/dist/{types-z82gSTx8.d.ts → types-BoH7NFCh.d.ts} +3 -3
  383. package/dist/{types-CcYxlqtB.d.cts → types-BwsE-pFo.d.cts} +2 -2
  384. package/dist/{types-DrvKfXXd.d.cts → types-Bx0TSdwF.d.cts} +2 -2
  385. package/dist/{types-DazRtukc.d.ts → types-C2JMisvL.d.ts} +736 -289
  386. package/dist/{types-DVZpKGBJ.d.ts → types-C2j6Jsie.d.ts} +3 -3
  387. package/dist/{types-BZDV8DZk.d.ts → types-C3IQu1gV.d.ts} +11 -6
  388. package/dist/{types-WZBztugL.d.ts → types-C7t_6FLh.d.ts} +2 -2
  389. package/dist/{types-Fs4a3mVs.d.ts → types-CBrNIgEy.d.ts} +64 -5
  390. package/dist/{types-CZJlLCbA.d.ts → types-CEw2IzWk.d.ts} +2 -2
  391. package/dist/{types-DdsYv2WG.d.cts → types-CMKIdreQ.d.cts} +3 -3
  392. package/dist/{types-AYX7VtS6.d.ts → types-COQOzyac.d.ts} +212 -2
  393. package/dist/{types-BiEh5c_t.d.cts → types-CZCPdPqv.d.cts} +132 -5
  394. package/dist/{types-B2w2TtSA.d.ts → types-Cw9UISvM.d.ts} +2 -2
  395. package/dist/{types-D9axmt5o.d.cts → types-D51g4h9w.d.cts} +8 -2
  396. package/dist/{types-CBPKpLTf.d.cts → types-D8w9lyb8.d.cts} +212 -2
  397. package/dist/{types-Dd31Lw4S.d.cts → types-DBJ8c3hN.d.cts} +2 -2
  398. package/dist/{types-DzV6LaZq.d.ts → types-DHlXKVEM.d.ts} +132 -5
  399. package/dist/{types-c_bsDkV6.d.cts → types-DPDq8C4q.d.cts} +16 -4
  400. package/dist/{types-D3wcs4tp.d.ts → types-DWJVbskE.d.ts} +2 -2
  401. package/dist/{types-CAp1VexS.d.ts → types-Dg8a7m7f.d.ts} +16 -4
  402. package/dist/{types-CoJVrRAD.d.ts → types-DgIzXY-Y.d.ts} +2 -2
  403. package/dist/{types-pvQzbgNE.d.cts → types-L50Y6ATu.d.cts} +11 -6
  404. package/dist/{types-DoZtE9tz.d.cts → types-OkQWmonU.d.cts} +2 -2
  405. package/dist/{types-BPy5Ozee.d.cts → types-TRJiPqJr.d.cts} +2 -2
  406. package/dist/{types-B-5ya_L5.d.ts → types-ij6BpTzR.d.ts} +2 -2
  407. package/dist/{types-DicSaNwq.d.ts → types-ituiCs8g.d.ts} +2 -2
  408. package/dist/{types-CGm2fQKK.d.cts → types-kbyIaA7p.d.cts} +64 -5
  409. package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
  410. package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
  411. package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
  412. package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
  413. package/dist/vault/index.cjs +6 -6
  414. package/dist/vault/index.cjs.map +1 -1
  415. package/dist/vault/index.d.cts +1 -1
  416. package/dist/vault/index.d.ts +1 -1
  417. package/dist/vault/index.js +6 -6
  418. package/dist/vault/index.js.map +1 -1
  419. package/dist/vault/types.d.cts +1 -1
  420. package/dist/vault/types.d.ts +1 -1
  421. package/package.json +27 -1
  422. package/surface/apps.md +5 -5
  423. package/surface/auth.md +21 -19
  424. package/surface/chat.md +2 -2
  425. package/surface/componentsMcp.md +9 -0
  426. package/surface/dataScience.md +2 -2
  427. package/surface/kaiAgent.md +2 -2
  428. package/surface/management.md +43 -41
  429. package/surface/oauth.md +1 -0
  430. package/surface/queryService.md +4 -4
  431. package/surface/queue.md +2 -2
  432. package/surface/sdk.md +0 -24
  433. package/surface/storage.md +101 -71
  434. package/dist/ManagementClientAuthError-BcPYxAWZ.js +0 -16
  435. package/dist/ManagementClientAuthError-BcPYxAWZ.js.map +0 -1
  436. package/dist/ManagementClientAuthError-DHuykEPF.cjs +0 -21
  437. package/dist/ManagementClientAuthError-DHuykEPF.cjs.map +0 -1
  438. package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
  439. package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
  440. package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
  441. package/dist/authClient-CACOwVt0.js.map +0 -1
  442. package/dist/authClient-DZcAR-eW.cjs.map +0 -1
  443. package/dist/collect-97WhfEpt.js.map +0 -1
  444. package/dist/collect-B5TCNiT1.cjs.map +0 -1
  445. package/dist/constants-BDGRQqij.cjs.map +0 -1
  446. package/dist/constants-Cifrqsls.js.map +0 -1
  447. package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
  448. package/dist/createFetchClient-DITkTV2k.js.map +0 -1
  449. package/dist/index-BVhHt5lx.d.cts +0 -241
  450. package/dist/index-Bf8dr2KQ.d.ts +0 -16
  451. package/dist/index-BgR5zcjJ.d.ts +0 -241
  452. package/dist/index-CWPi7lBF.d.ts +0 -77
  453. package/dist/index-Dd40ojPr.d.cts +0 -77
  454. package/dist/index-DkCXaYsn.d.cts +0 -16
  455. package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
  456. package/dist/jobStatus-BJdbZ72V.js.map +0 -1
  457. package/dist/management-C5lf9nsU.cjs.map +0 -1
  458. package/dist/management-WAtKH6Tu.js.map +0 -1
  459. package/dist/project-B8wtlstY.d.cts +0 -18
  460. package/dist/project-BCc3mpAy.d.ts +0 -18
  461. package/dist/project-BvFi19K_.cjs.map +0 -1
  462. package/dist/project-DWwZv66D.js.map +0 -1
  463. package/dist/queryService-Blfz59Ms.js.map +0 -1
  464. package/dist/queryService-RlNYw7LG.cjs.map +0 -1
  465. package/dist/queue-BrgRdtOr.cjs.map +0 -1
  466. package/dist/queue-CNvR-M23.js.map +0 -1
  467. package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
  468. package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
  469. package/dist/storage-76Sf_z_H.cjs.map +0 -1
  470. package/dist/storage-RkNaOFJ-.js.map +0 -1
  471. package/dist/types-9SEE4icc.d.ts +0 -1298
  472. package/dist/types-BhOUS9j1.d.cts +0 -749
  473. package/dist/types-BjR8Yodc.d.cts +0 -1298
  474. package/dist/types-CLHaZv9f.d.cts +0 -1868
  475. package/dist/types-CaOtNjSZ.d.ts +0 -957
  476. package/dist/types-D1A4mAG0.d.cts +0 -66
  477. package/dist/types-D8pGSkRe.d.ts +0 -1868
  478. package/dist/types-DxN2siRW.d.ts +0 -66
  479. package/dist/types-ePSqbXRr.d.cts +0 -957
  480. package/dist/types-gcAb6olM.d.ts +0 -749
@@ -1,10 +1,10 @@
1
1
  import { t as concurrent } from "./concurrent-BacWxPwi.js";
2
- import { a as poller, t as jobStatus } from "./jobStatus-BJdbZ72V.js";
3
- import { _ as KeboolaHttpHeader, p as ApiError, r as isApiError, s as HttpHeader } from "./createFetchClient-DITkTV2k.js";
4
- import { t as validateConnectionStatus } from "./validateConnectionStatus-CdTV3gsP.js";
5
- import { t as createGenericFetchClient } from "./createGenericFetchClient-KqiJhw8G.js";
6
- import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-wq8iGLZM.js";
7
- import { t as createAuthHeaders } from "./auth-C6cHWIWx.js";
2
+ import { a as poller, n as jobStatus, t as transientRetries } from "./transientRetries-B4iusp69.js";
3
+ import { _ as KeboolaHttpHeader, p as ApiError, r as isApiError, s as HttpHeader } from "./createFetchClient-CkHdS_IG.js";
4
+ import { t as validateConnectionStatus } from "./validateConnectionStatus-DyrYpn0G.js";
5
+ import { t as createGenericFetchClient } from "./createGenericFetchClient-CQdNcPC3.js";
6
+ import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-DXiMv9WL.js";
7
+ import { t as createAuthHeaders } from "./auth-4coY1uwo.js";
8
8
  //#region src/utils/async/series.ts
9
9
  /**
10
10
  * Executes a callback function on an array of items in series (one at a time).
@@ -50,26 +50,42 @@ var ServiceUnavailableError = class ServiceUnavailableError extends Error {
50
50
  }
51
51
  };
52
52
  //#endregion
53
+ //#region src/errors/StorageJobError.ts
54
+ /** A storage job that ended `error`: the wait finished, the job did not succeed. */
55
+ var StorageJobError = class StorageJobError extends Error {
56
+ code;
57
+ exceptionId;
58
+ job;
59
+ constructor(job) {
60
+ super(job.error.message);
61
+ this.name = "StorageJobError";
62
+ this.code = job.error.code;
63
+ this.exceptionId = job.error.exceptionId;
64
+ this.job = job;
65
+ Object.setPrototypeOf(this, StorageJobError.prototype);
66
+ }
67
+ };
68
+ const isStorageJobError = (error) => error instanceof StorageJobError;
69
+ //#endregion
53
70
  //#region src/clients/storage/mergeRequests/mergeRequests.ts
54
71
  /**
55
- * Both write bodies are asserted in: the spec declares every field of them required and nullable,
56
- * while the API defaults the ones a caller omits — and an explicit `null` is not the same request as
72
+ * Both write bodies are asserted in: the generator marks every defaulted field required, while
73
+ * Connection defaults the ones a caller omits — and an explicit `null` is not the same request as
57
74
  * an absent key. `./types` narrows each body to what a caller really has to send.
58
75
  */
59
- const createMergeRequests = (client) => {
76
+ const createMergeRequests = (client, poller) => {
60
77
  const getMergeRequests = async (signal) => {
61
78
  const { data } = await client.get("/v2/storage/merge-request", {}, { signal });
62
79
  return data;
63
80
  };
64
- const getMergeRequest = async (id, signal) => {
65
- const { data } = await client.get("/v2/storage/merge-request/{id}", { path: { id } }, { signal });
66
- return data;
67
- };
68
- const getMergeRequestWithActivityLog = async (id, signal) => {
81
+ const getMergeRequest = async ({ id, ...query }, signal) => {
69
82
  const { data } = await client.get("/v2/storage/merge-request/{id}", {
70
83
  path: { id },
71
- query: { include: "activityLog" }
72
- }, { signal });
84
+ query
85
+ }, {
86
+ signal,
87
+ queryArrayFormat: "comma"
88
+ });
73
89
  return data;
74
90
  };
75
91
  const createMergeRequest = async (body) => {
@@ -103,10 +119,14 @@ const createMergeRequests = (client) => {
103
119
  *
104
120
  * @link https://api.keboola.com/?service=storage#storage/tag/merge-requests/PUT/v2/storage/merge-request/{id}/merge
105
121
  */
106
- const mergeMergeRequest = async (id) => {
107
- const { data } = await client.put("/v2/storage/merge-request/{id}/merge", { path: { id } });
122
+ const mergeMergeRequestAsync = async (id, signal) => {
123
+ const { data } = await client.put("/v2/storage/merge-request/{id}/merge", { path: { id } }, { signal });
108
124
  return data;
109
125
  };
126
+ const mergeMergeRequestPoller = (id, options) => poller({
127
+ init: (signal) => mergeMergeRequestAsync(id, signal),
128
+ ...options
129
+ });
110
130
  const getMergeRequestConflicts = async (id, signal) => {
111
131
  const { data } = await client.get("/v2/storage/merge-request/{id}/conflicts", { path: { id } }, { signal });
112
132
  return data;
@@ -114,22 +134,22 @@ const createMergeRequests = (client) => {
114
134
  return {
115
135
  getMergeRequests,
116
136
  getMergeRequest,
117
- getMergeRequestWithActivityLog,
118
137
  createMergeRequest,
119
138
  updateMergeRequest,
120
139
  requestReview,
121
140
  approveMergeRequest,
122
141
  requestChangesMergeRequest,
123
- mergeMergeRequest,
142
+ mergeMergeRequestAsync,
143
+ mergeMergeRequestPoller,
124
144
  getMergeRequestConflicts
125
145
  };
126
146
  };
127
147
  //#endregion
128
148
  //#region src/clients/storage/branches/branches.ts
129
149
  /**
130
- * Dev-branches client; the spec has three defects.
150
+ * Dev-branches client.
131
151
  *
132
- * - `creatorToken` is a bare `object`, so `DevBranch` re-types it and reads are asserted.
152
+ * - Reads are asserted to `DevBranch`, which ties the spec's `[]` creator arm to `isDefault`.
133
153
  * - Create and delete answer a flat `JobResponse`, not the `Job<T>` union, so jobs are asserted.
134
154
  * - The create is also declared on `/dev-branches/` (trailing slash); drop it.
135
155
  */
@@ -144,34 +164,32 @@ const createBranches = (client, poller) => {
144
164
  /**
145
165
  * @link https://api.keboola.com/?service=storage#storage/tag/dev-branches/POST/v2/storage/dev-branches
146
166
  */
147
- const createDevBranchAsync = async (body) => {
148
- const { data } = await client.post("/v2/storage/dev-branches", { body });
167
+ const createDevBranchAsync = async (body, signal) => {
168
+ const { data } = await client.post("/v2/storage/dev-branches", { body }, { signal });
149
169
  return data;
150
170
  };
151
171
  /**
152
172
  * @link https://api.keboola.com/?service=storage#storage/tag/dev-branches/POST/v2/storage/dev-branches
153
173
  */
154
- const createDevBranchAndWait = async (body, options) => {
155
- return poller(await createDevBranchAsync(body), options).start();
156
- };
174
+ const createDevBranchPoller = (body, options) => poller({
175
+ init: (signal) => createDevBranchAsync(body, signal),
176
+ ...options
177
+ });
157
178
  /**
158
179
  * @link https://api.keboola.com/?service=storage#storage/tag/dev-branches/PUT/v2/storage/dev-branches/{id}
159
180
  */
160
- const updateDevBranch = async ({ id, name, description }) => {
181
+ const updateDevBranch = async ({ id, ...body }) => {
161
182
  const { data } = await client.put("/v2/storage/dev-branches/{id}", {
162
183
  path: { id },
163
- body: {
164
- name,
165
- description
166
- }
184
+ body
167
185
  });
168
186
  return data;
169
187
  };
170
188
  /**
171
189
  * @link https://api.keboola.com/?service=storage#storage/tag/dev-branches/DELETE/v2/storage/dev-branches/{id}
172
190
  */
173
- const deleteDevBranchAsync = async (id) => {
174
- const { data } = await client.delete("/v2/storage/dev-branches/{id}", { path: { id } });
191
+ const deleteDevBranchAsync = async (id, signal) => {
192
+ const { data } = await client.delete("/v2/storage/dev-branches/{id}", { path: { id } }, { signal });
175
193
  return data;
176
194
  };
177
195
  /**
@@ -181,9 +199,10 @@ const createBranches = (client, poller) => {
181
199
  *
182
200
  * @link https://api.keboola.com/?service=storage#storage/tag/dev-branches/DELETE/v2/storage/dev-branches/{id}
183
201
  */
184
- const deleteDevBranchAndWait = async (id, options) => {
185
- return poller(await deleteDevBranchAsync(id), options).start();
186
- };
202
+ const deleteDevBranchPoller = (id, options) => poller({
203
+ init: (signal) => deleteDevBranchAsync(id, signal),
204
+ ...options
205
+ });
187
206
  /**
188
207
  * `branchId` is the branch the metadata is on, not a request scope.
189
208
  *
@@ -216,9 +235,9 @@ const createBranches = (client, poller) => {
216
235
  getDevBranches,
217
236
  updateDevBranch,
218
237
  createDevBranchAsync,
219
- createDevBranchAndWait,
238
+ createDevBranchPoller,
220
239
  deleteDevBranchAsync,
221
- deleteDevBranchAndWait,
240
+ deleteDevBranchPoller,
222
241
  getDevBranchMetadata,
223
242
  saveDevBranchMetadata,
224
243
  deleteDevBranchMetadata
@@ -234,7 +253,7 @@ const createBranches = (client, poller) => {
234
253
  * - The `POST /buckets/register` spec lacks the `bucketRegister` job response.
235
254
  * - Registration and its guide work in the default branch only.
236
255
  */
237
- const createBucketExternal = (client) => {
256
+ const createBucketExternal = (client, poller) => {
238
257
  /**
239
258
  * @link https://api.keboola.com/?service=storage#storage/POST/v2/storage/branch/{branchId}/buckets/register
240
259
  */
@@ -245,6 +264,10 @@ const createBucketExternal = (client) => {
245
264
  }, { signal });
246
265
  return data;
247
266
  };
267
+ const registerBucketPoller = (input, options) => poller({
268
+ init: (signal) => registerBucketAsync(input, signal),
269
+ ...options
270
+ });
248
271
  /**
249
272
  * Returns markdown.
250
273
  *
@@ -273,6 +296,10 @@ const createBucketExternal = (client) => {
273
296
  }, { signal });
274
297
  return data;
275
298
  };
299
+ const refreshExternalBucketPoller = (input, options) => poller({
300
+ init: (signal) => refreshExternalBucketAsync(input, signal),
301
+ ...options
302
+ });
276
303
  const createScheduledRefresh = async ({ branchId, bucketId, ...body }) => {
277
304
  const { data } = await client.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/scheduled-tasks/refresh", {
278
305
  path: {
@@ -283,13 +310,15 @@ const createBucketExternal = (client) => {
283
310
  });
284
311
  return data;
285
312
  };
286
- const deleteScheduledTask = async (taskId) => {
313
+ const deleteScheduledTask = async ({ taskId }) => {
287
314
  await client.delete("/v2/storage/scheduled-tasks/{taskId}", { path: { taskId } });
288
315
  };
289
316
  return {
290
317
  registerBucketAsync,
318
+ registerBucketPoller,
291
319
  getBucketRegistrationGuide,
292
320
  refreshExternalBucketAsync,
321
+ refreshExternalBucketPoller,
293
322
  createScheduledRefresh,
294
323
  deleteScheduledTask
295
324
  };
@@ -339,7 +368,7 @@ const toUpdateListingBody = (input) => {
339
368
  * - BigQuery Analytics Hub is the only backend, hence the `bigquery` key on every write.
340
369
  * - Write jobs are asserted: the spec's flat `JobResponse` is not the `Job<T>` union.
341
370
  */
342
- const createBucketListings = (openApiClient) => {
371
+ const createBucketListings = (openApiClient, client, poller) => {
343
372
  /**
344
373
  * Returns `null` on 404: no bucket or no listing.
345
374
  *
@@ -375,6 +404,10 @@ const createBucketListings = (openApiClient) => {
375
404
  }, { signal });
376
405
  return data;
377
406
  };
407
+ const createListingPoller = (input, options) => poller({
408
+ init: (signal) => createListingAsync(input, signal),
409
+ ...options
410
+ });
378
411
  /**
379
412
  * Rejects when `name`, `description` and `subscribers` are all absent; gate on the form's dirty state.
380
413
  */
@@ -388,6 +421,10 @@ const createBucketListings = (openApiClient) => {
388
421
  }, { signal });
389
422
  return data;
390
423
  };
424
+ const updateListingPoller = (input, options) => poller({
425
+ init: (signal) => updateListingAsync(input, signal),
426
+ ...options
427
+ });
391
428
  const deleteListingAsync = async ({ branchId, bucketId }, signal) => {
392
429
  const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/listing", { path: {
393
430
  branchId,
@@ -395,16 +432,42 @@ const createBucketListings = (openApiClient) => {
395
432
  } }, { signal });
396
433
  return data;
397
434
  };
435
+ const deleteListingPoller = (input, options) => poller({
436
+ init: (signal) => deleteListingAsync(input, signal),
437
+ ...options
438
+ });
398
439
  /** Every listing the token can manage. Rows carry `bucketId`, unlike the detail response. */
399
440
  const getListings = async (signal) => {
400
441
  const { data } = await openApiClient.get("/v2/storage/listings", {}, { signal });
401
442
  return data;
402
443
  };
444
+ /**
445
+ * Consumers that currently subscribe to a bucket's exposure.
446
+ *
447
+ * - Read live from BigQuery Analytics Hub, so it can fail on its own (503) while the exposure is fine.
448
+ * - Returns `null` on 404: no bucket or no exposure.
449
+ * - Goes through the generic client because the route is not in the generated spec yet; the spec is
450
+ * built from the deployed stack and this endpoint has not shipped. Move it onto `openApiClient`
451
+ * once a regenerated `schema.d.ts` carries the path.
452
+ */
453
+ const getListingSubscriptions = async ({ branchId, bucketId }, signal) => {
454
+ try {
455
+ const { data } = await client.get(`/v2/storage/branch/${encodeURIComponent(branchId)}/buckets/${encodeURIComponent(bucketId)}/listing/subscriptions`, {}, { signal });
456
+ return data.subscriptions;
457
+ } catch (error) {
458
+ if (isApiError(error) && error.response.status === 404) return null;
459
+ throw error;
460
+ }
461
+ };
403
462
  return {
404
463
  getListing,
464
+ getListingSubscriptions,
405
465
  createListingAsync,
466
+ createListingPoller,
406
467
  updateListingAsync,
468
+ updateListingPoller,
407
469
  deleteListingAsync,
470
+ deleteListingPoller,
408
471
  getListings
409
472
  };
410
473
  };
@@ -413,10 +476,9 @@ const createBucketListings = (openApiClient) => {
413
476
  /**
414
477
  * Spec mismatches behind the assertions below:
415
478
  * - Job returns: the spec's flat `JobResponse` vs the `Job<T>` union; on delete, 204 shadows the 202.
416
- * - List/create responses are really `Bucket[]` / a bucket detail; list `include` is comma-joined.
417
- * - Update body requires `displayName`; the API accepts any subset.
479
+ * - Reads narrow `backend` and `sharingParameters` (see `Bucket`); list `include` is comma-joined.
418
480
  */
419
- const createBuckets = (openApiClient) => {
481
+ const createBuckets = (openApiClient, poller) => {
420
482
  const getBuckets = async ({ branchId, ...query }, signal) => {
421
483
  const { data } = await openApiClient.get("/v2/storage/branch/{branchId}/buckets", {
422
484
  path: { branchId },
@@ -479,7 +541,7 @@ const createBuckets = (openApiClient) => {
479
541
  *
480
542
  * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/branch/{branchId}/buckets/{bucketId}
481
543
  */
482
- const deleteBucketAsync = async ({ branchId, bucketId, ...query }) => {
544
+ const deleteBucketAsync = async ({ branchId, bucketId, ...query }, signal) => {
483
545
  const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}", {
484
546
  path: {
485
547
  branchId,
@@ -489,9 +551,13 @@ const createBuckets = (openApiClient) => {
489
551
  async: true,
490
552
  ...query
491
553
  }
492
- });
554
+ }, { signal });
493
555
  return data;
494
556
  };
557
+ const deleteBucketPoller = (input, options) => poller({
558
+ init: (signal) => deleteBucketAsync(input, signal),
559
+ ...options
560
+ });
495
561
  /**
496
562
  * Returns the owner of a bucket in the given branch.
497
563
  *
@@ -555,6 +621,7 @@ const createBuckets = (openApiClient) => {
555
621
  updateBucket,
556
622
  deleteBucket,
557
623
  deleteBucketAsync,
624
+ deleteBucketPoller,
558
625
  getBucketOwner,
559
626
  updateBucketOwner,
560
627
  saveBucketMetadata,
@@ -564,12 +631,9 @@ const createBuckets = (openApiClient) => {
564
631
  //#endregion
565
632
  //#region src/clients/storage/bucketSharing/bucketSharing.ts
566
633
  /**
567
- * Spec mismatches behind the assertions below:
568
- * - Job returns: the spec's flat `JobResponse` (or no body) vs the `Job<T>` union.
569
- * - Share-to-projects/users bodies are stubbed.
570
- * - `sharedBuckets` is not asserted, so it returns the spec's `Record<string, never>[]`.
634
+ * Job returns are asserted: the spec's flat `JobResponse` (or no body) vs the `Job<T>` union.
571
635
  */
572
- const createBucketSharing = (openApiClient) => {
636
+ const createBucketSharing = (openApiClient, poller) => {
573
637
  /**
574
638
  * Shares a bucket with everyone in the organization. Async — returns a job to poll.
575
639
  *
@@ -582,6 +646,10 @@ const createBucketSharing = (openApiClient) => {
582
646
  } }, { signal });
583
647
  return data;
584
648
  };
649
+ const shareBucketToOrganizationPoller = (input, options) => poller({
650
+ init: (signal) => shareBucketToOrganizationAsync(input, signal),
651
+ ...options
652
+ });
585
653
  /**
586
654
  * Shares a bucket with every project in the organization. Async — returns a job to poll.
587
655
  *
@@ -594,6 +662,10 @@ const createBucketSharing = (openApiClient) => {
594
662
  } }, { signal });
595
663
  return data;
596
664
  };
665
+ const shareBucketToOrganizationProjectPoller = (input, options) => poller({
666
+ init: (signal) => shareBucketToOrganizationProjectAsync(input, signal),
667
+ ...options
668
+ });
597
669
  /**
598
670
  * Shares a bucket with specific projects. Async — returns a job to poll.
599
671
  *
@@ -609,6 +681,10 @@ const createBucketSharing = (openApiClient) => {
609
681
  }, { signal });
610
682
  return data;
611
683
  };
684
+ const shareBucketToProjectsPoller = (input, options) => poller({
685
+ init: (signal) => shareBucketToProjectsAsync(input, signal),
686
+ ...options
687
+ });
612
688
  /**
613
689
  * Shares a bucket with specific users (by ID or e-mail). Async — returns a job to poll.
614
690
  *
@@ -624,6 +700,10 @@ const createBucketSharing = (openApiClient) => {
624
700
  }, { signal });
625
701
  return data;
626
702
  };
703
+ const shareBucketToUsersPoller = (input, options) => poller({
704
+ init: (signal) => shareBucketToUsersAsync(input, signal),
705
+ ...options
706
+ });
627
707
  /**
628
708
  * Stops sharing a bucket. Async — returns a job to poll.
629
709
  *
@@ -636,6 +716,10 @@ const createBucketSharing = (openApiClient) => {
636
716
  } }, { signal });
637
717
  return data;
638
718
  };
719
+ const unshareBucketPoller = (input, options) => poller({
720
+ init: (signal) => unshareBucketAsync(input, signal),
721
+ ...options
722
+ });
639
723
  /**
640
724
  * Force-unlinks a bucket from a linked project. Async — returns a job to poll.
641
725
  *
@@ -649,6 +733,10 @@ const createBucketSharing = (openApiClient) => {
649
733
  } }, { signal });
650
734
  return data;
651
735
  };
736
+ const forceUnlinkBucketPoller = (input, options) => poller({
737
+ init: (signal) => forceUnlinkBucketAsync(input, signal),
738
+ ...options
739
+ });
652
740
  /**
653
741
  * Links a bucket shared with this project into it. Async — returns a job to poll, whose `results`
654
742
  * is the new bucket.
@@ -663,23 +751,37 @@ const createBucketSharing = (openApiClient) => {
663
751
  }, { signal });
664
752
  return data;
665
753
  };
754
+ const linkBucketPoller = (input, options) => poller({
755
+ init: (signal) => linkBucketAsync(input, signal),
756
+ ...options
757
+ });
666
758
  /**
667
759
  * Lists buckets shared with the current project.
668
760
  *
669
761
  * @link https://api.keboola.com/?service=storage#storage/tag/shared-buckets/GET/v2/storage/shared-buckets
670
762
  */
671
763
  const sharedBuckets = async (query, signal) => {
672
- const { data } = await openApiClient.get("/v2/storage/shared-buckets", { query }, { signal });
764
+ const { data } = await openApiClient.get("/v2/storage/shared-buckets", { query }, {
765
+ signal,
766
+ queryArrayFormat: "comma"
767
+ });
673
768
  return data;
674
769
  };
675
770
  return {
676
771
  shareBucketToOrganizationAsync,
772
+ shareBucketToOrganizationPoller,
677
773
  shareBucketToOrganizationProjectAsync,
774
+ shareBucketToOrganizationProjectPoller,
678
775
  shareBucketToProjectsAsync,
776
+ shareBucketToProjectsPoller,
679
777
  shareBucketToUsersAsync,
778
+ shareBucketToUsersPoller,
680
779
  unshareBucketAsync,
780
+ unshareBucketPoller,
681
781
  forceUnlinkBucketAsync,
782
+ forceUnlinkBucketPoller,
682
783
  linkBucketAsync,
784
+ linkBucketPoller,
683
785
  sharedBuckets
684
786
  };
685
787
  };
@@ -688,10 +790,9 @@ const createBucketSharing = (openApiClient) => {
688
790
  /**
689
791
  * Spec mismatches behind the assertions below:
690
792
  * - Job returns: the spec's flat `JobResponse` (or no body) vs the `Job<T>` union.
691
- * - Add-column body lacks `basetype`; `definition.length` is really a string (`'38,0'`).
692
793
  * - Primary-key `skipDuplicatesCheck` is really optional (defaults to `false`).
693
794
  */
694
- const createColumns = (client) => {
795
+ const createColumns = (client, poller) => {
695
796
  /**
696
797
  * Adds a column to a table. Async — returns a job.
697
798
  *
@@ -707,6 +808,10 @@ const createColumns = (client) => {
707
808
  }, { signal });
708
809
  return data;
709
810
  };
811
+ const addTableColumnPoller = (input, options) => poller({
812
+ init: (signal) => addTableColumnAsync(input, signal),
813
+ ...options
814
+ });
710
815
  /**
711
816
  * Drops a column from a table. Async — returns a job.
712
817
  *
@@ -723,6 +828,10 @@ const createColumns = (client) => {
723
828
  }, { signal });
724
829
  return data;
725
830
  };
831
+ const deleteTableColumnPoller = (input, options) => poller({
832
+ init: (signal) => deleteTableColumnAsync(input, signal),
833
+ ...options
834
+ });
726
835
  /**
727
836
  * Sets the primary key of a table. Async — returns a job.
728
837
  *
@@ -738,6 +847,10 @@ const createColumns = (client) => {
738
847
  }, { signal });
739
848
  return data;
740
849
  };
850
+ const createTablePrimaryKeyPoller = (input, options) => poller({
851
+ init: (signal) => createTablePrimaryKeyAsync(input, signal),
852
+ ...options
853
+ });
741
854
  /**
742
855
  * Removes the primary key of a table. Async — returns a job.
743
856
  *
@@ -750,16 +863,20 @@ const createColumns = (client) => {
750
863
  } }, { signal });
751
864
  return data;
752
865
  };
866
+ const removeTablePrimaryKeyPoller = (input, options) => poller({
867
+ init: (signal) => removeTablePrimaryKeyAsync(input, signal),
868
+ ...options
869
+ });
753
870
  /**
754
871
  * Adds or updates metadata on a column in the given branch.
755
872
  *
756
873
  * @link https://api.keboola.com/?service=storage#storage/tag/columns/POST/v2/storage/branch/{branchId}/columns/{id}/metadata
757
874
  */
758
- const saveColumnMetadata = async ({ branchId, columnId, ...body }, signal) => {
875
+ const saveColumnMetadata = async ({ branchId, id, ...body }, signal) => {
759
876
  const { data } = await client.post("/v2/storage/branch/{branchId}/columns/{id}/metadata", {
760
877
  path: {
761
878
  branchId,
762
- id: columnId
879
+ id
763
880
  },
764
881
  body
765
882
  }, { signal });
@@ -770,18 +887,22 @@ const createColumns = (client) => {
770
887
  *
771
888
  * @link https://api.keboola.com/?service=storage#storage/tag/columns/DELETE/v2/storage/branch/{branchId}/columns/{id}/metadata/{metadataId}
772
889
  */
773
- const deleteColumnMetadata = async ({ branchId, columnId, metadataId }, signal) => {
890
+ const deleteColumnMetadata = async ({ branchId, id, metadataId }, signal) => {
774
891
  await client.delete("/v2/storage/branch/{branchId}/columns/{id}/metadata/{metadataId}", { path: {
775
892
  branchId,
776
- id: columnId,
893
+ id,
777
894
  metadataId
778
895
  } }, { signal });
779
896
  };
780
897
  return {
781
898
  addTableColumnAsync,
899
+ addTableColumnPoller,
782
900
  deleteTableColumnAsync,
901
+ deleteTableColumnPoller,
783
902
  createTablePrimaryKeyAsync,
903
+ createTablePrimaryKeyPoller,
784
904
  removeTablePrimaryKeyAsync,
905
+ removeTablePrimaryKeyPoller,
785
906
  saveColumnMetadata,
786
907
  deleteColumnMetadata
787
908
  };
@@ -1173,10 +1294,13 @@ const createConfigurations = (client, poller) => {
1173
1294
  * - Rejects only when the first job cannot be enqueued, so a rejection means nothing was purged.
1174
1295
  */
1175
1296
  const purgeConfigurationsAndWait = ({ branchId, configs }, options) => runInChunks(configs, async (chunk) => {
1176
- const end = await poller(await purgeConfigurationsAsync({
1177
- branchId,
1178
- configs: chunk
1179
- }, options?.signal), options).start();
1297
+ const end = await poller({
1298
+ init: await purgeConfigurationsAsync({
1299
+ branchId,
1300
+ configs: chunk
1301
+ }, options?.signal),
1302
+ ...options
1303
+ }).start();
1180
1304
  return settleBatchJob("purge", end);
1181
1305
  }, (all, next) => ({
1182
1306
  purged: [...all.purged, ...next.purged],
@@ -1208,10 +1332,13 @@ const createConfigurations = (client, poller) => {
1208
1332
  * - Resolves with every job's `restored` / `failed` merged, and `error` when it stopped early.
1209
1333
  */
1210
1334
  const restoreConfigurationsAndWait = ({ branchId, configs }, options) => runInChunks(configs, async (chunk) => {
1211
- const end = await poller(await restoreConfigurationsAsync({
1212
- branchId,
1213
- configs: chunk
1214
- }, options?.signal), options).start();
1335
+ const end = await poller({
1336
+ init: await restoreConfigurationsAsync({
1337
+ branchId,
1338
+ configs: chunk
1339
+ }, options?.signal),
1340
+ ...options
1341
+ }).start();
1215
1342
  return settleBatchJob("restore", end);
1216
1343
  }, (all, next) => ({
1217
1344
  restored: [...all.restored, ...next.restored],
@@ -1291,12 +1418,18 @@ const createConfigurations = (client, poller) => {
1291
1418
  //#endregion
1292
1419
  //#region src/clients/storage/configurationVersions/configurationVersions.ts
1293
1420
  const createConfigurationVersions = (client) => {
1294
- const getConfigurationVersions = async ({ branchId, componentId, configurationId }, signal) => {
1295
- const { data } = await client.get("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/versions", { path: {
1296
- branchId,
1297
- componentId,
1298
- configurationId
1299
- } }, { signal });
1421
+ const getConfigurationVersions = async ({ branchId, componentId, configurationId, ...query }, signal) => {
1422
+ const { data } = await client.get("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/versions", {
1423
+ path: {
1424
+ branchId,
1425
+ componentId,
1426
+ configurationId
1427
+ },
1428
+ query
1429
+ }, {
1430
+ signal,
1431
+ queryArrayFormat: "comma"
1432
+ });
1300
1433
  return data;
1301
1434
  };
1302
1435
  const getConfigurationVersion = async ({ branchId, componentId, configurationId, versionId }, signal) => {
@@ -1345,13 +1478,19 @@ const createConfigurationVersions = (client) => {
1345
1478
  });
1346
1479
  return data;
1347
1480
  };
1348
- const getConfigurationRowVersions = async ({ branchId, componentId, configurationId, rowId }, signal) => {
1349
- const { data } = await client.get("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/rows/{rowId}/versions", { path: {
1350
- branchId,
1351
- componentId,
1352
- configurationId,
1353
- rowId
1354
- } }, { signal });
1481
+ const getConfigurationRowVersions = async ({ branchId, componentId, configurationId, rowId, ...query }, signal) => {
1482
+ const { data } = await client.get("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/rows/{rowId}/versions", {
1483
+ path: {
1484
+ branchId,
1485
+ componentId,
1486
+ configurationId,
1487
+ rowId
1488
+ },
1489
+ query
1490
+ }, {
1491
+ signal,
1492
+ queryArrayFormat: "comma"
1493
+ });
1355
1494
  return data;
1356
1495
  };
1357
1496
  const getConfigurationRowVersion = async ({ branchId, componentId, configurationId, rowId, versionId }, signal) => {
@@ -1409,7 +1548,7 @@ const createConfigurationVersions = (client) => {
1409
1548
  };
1410
1549
  //#endregion
1411
1550
  //#region src/clients/storage/configurationWorkspaces/configurationWorkspaces.ts
1412
- const createConfigurationWorkspaces = (client) => {
1551
+ const createConfigurationWorkspaces = (client, poller) => {
1413
1552
  /**
1414
1553
  * @link https://api.keboola.com/?service=storage#storage/tag/component-configurations/GET/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/workspaces
1415
1554
  */
@@ -1432,7 +1571,7 @@ const createConfigurationWorkspaces = (client) => {
1432
1571
  });
1433
1572
  return data;
1434
1573
  };
1435
- const createConfigurationWorkspaceJob = async ({ componentId, branchId, configurationId, ...body }) => {
1574
+ const createConfigurationWorkspaceAsync = async ({ componentId, branchId, configurationId, ...body }, signal) => {
1436
1575
  const { data } = await client.post("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/workspaces", {
1437
1576
  path: {
1438
1577
  componentId,
@@ -1441,12 +1580,17 @@ const createConfigurationWorkspaces = (client) => {
1441
1580
  },
1442
1581
  body,
1443
1582
  query: { async: true }
1444
- });
1583
+ }, { signal });
1445
1584
  return data;
1446
1585
  };
1586
+ const createConfigurationWorkspacePoller = (input, options) => poller({
1587
+ init: (signal) => createConfigurationWorkspaceAsync(input, signal),
1588
+ ...options
1589
+ });
1447
1590
  return {
1448
1591
  createConfigurationWorkspace,
1449
- createConfigurationWorkspaceJob,
1592
+ createConfigurationWorkspaceAsync,
1593
+ createConfigurationWorkspacePoller,
1450
1594
  getConfigurationWorkspaces
1451
1595
  };
1452
1596
  };
@@ -1457,9 +1601,7 @@ const createConfigurationWorkspaces = (client) => {
1457
1601
  *
1458
1602
  * - The unbranched twins (`/v2/storage/events`, `/v2/storage/events/{eventId}`) answer the same
1459
1603
  * payloads; addressing one branch is the narrower request and the one every caller wants.
1460
- * - Each response is asserted in. The spec declares the shape now, but types `params`, `results` and
1461
- * `performance` as bare objects, and `StorageEvent` re-tightens the fields the table feed marks
1462
- * required that the project feed and the detail read cannot be checked against.
1604
+ * - Reads are asserted to `StorageEvent`, which types `results` and `performance`.
1463
1605
  */
1464
1606
  const createEvents = (client) => {
1465
1607
  /**
@@ -1539,13 +1681,6 @@ const createEvents = (client) => {
1539
1681
  };
1540
1682
  //#endregion
1541
1683
  //#region src/clients/storage/files/files.ts
1542
- /**
1543
- * The reads are spec-derived; two defects remain.
1544
- *
1545
- * - `File` adds `isExpired`, which Storage never sends — hence the assertion on the two reads.
1546
- * - The list is a GET the spec gives a required `ListFilesRequest` body; the API reads the query
1547
- * instead, so its parameters object is asserted in.
1548
- */
1549
1684
  const createFiles = (client) => {
1550
1685
  const getFile = async (path, signal) => {
1551
1686
  const { data } = await client.get("/v2/storage/branch/{branchId}/files/{fileId}", { path }, { signal });
@@ -1580,7 +1715,6 @@ const createFiles = (client) => {
1580
1715
  * the extension), so a `.json` file arrives as `application/json`. `parseAs: 'text'` keeps the
1581
1716
  * client from parsing it — the exact bytes are the point of a preview, and a malformed `.json`
1582
1717
  * file must render rather than throw a `SyntaxError`.
1583
- * - The spec declares the 200 contentless, so the string is asserted in.
1584
1718
  */
1585
1719
  const getFileContent = async (path, signal) => {
1586
1720
  const { data } = await client.get("/v2/storage/branch/{branchId}/files/{fileId}/content", { path }, {
@@ -1638,22 +1772,28 @@ const createJobs = (openApiClient) => {
1638
1772
  //#endregion
1639
1773
  //#region src/clients/storage/poller.ts
1640
1774
  const DEFAULT_POLL_INTERVAL = 2e3;
1641
- const MAX_CONSECUTIVE_POLL_FAILURES = 5;
1642
- const isTransient = (error) => error instanceof TypeError || isApiError(error) && (error.response.status >= 500 || error.response.status === 429);
1643
- const createJobPoller = ({ getJob }) => ({ id, operationName }, { interval, maxAttempts, timeout, signal } = {}) => {
1644
- let failures = 0;
1775
+ /** `init` is the job, or the enqueue that yields it: the poll then starts with the request. */
1776
+ const createJobPoller = ({ getJob }) => ({ init, interval, maxAttempts, timeout, signal }) => {
1777
+ const retries = transientRetries();
1645
1778
  return poller({
1646
- pollKey: ["storage.job", {
1647
- jobId: id,
1648
- operation: operationName
1779
+ pollKey: ({ id, operationName }) => ["storage.job", {
1780
+ id,
1781
+ operationName
1649
1782
  }],
1650
- pollFn: async ({ pollKey: [, params], signal: pollSignal }) => {
1651
- const job = await getJob(params.jobId, pollSignal);
1652
- failures = 0;
1783
+ init,
1784
+ pollFn: async ({ init: { id }, signal: pollSignal }) => {
1785
+ const job = await getJob(id, pollSignal);
1786
+ retries.reset();
1653
1787
  return job;
1654
1788
  },
1655
- isRetryable: (error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_POLL_FAILURES,
1789
+ isRetryable: retries.isRetryable,
1656
1790
  until: ({ data }) => jobStatus.storage.isTerminal(data.status),
1791
+ failed: (data) => {
1792
+ const job = data;
1793
+ const status = job.status;
1794
+ if (job.status === "error") return new StorageJobError(job);
1795
+ return status === "success" ? void 0 : /* @__PURE__ */ new Error(`The storage job ended as ${status}.`);
1796
+ },
1657
1797
  backoff: {
1658
1798
  type: "constant",
1659
1799
  interval: interval ?? DEFAULT_POLL_INTERVAL
@@ -1692,7 +1832,7 @@ const createRefreshTokenMiddlware = ({ accessToken, onRefresh }) => {
1692
1832
  /**
1693
1833
  * Search endpoints.
1694
1834
  *
1695
- * - Both responses are asserted in: the spec stubs them.
1835
+ * - Both responses are asserted in: `./types` widens the hit's `type` and drops PHP's `[]` arms.
1696
1836
  * - Query casts are type-only: `global-search` filters go out with bare names (`types`, not
1697
1837
  * `types[]`); renaming them to match the spec would change what Storage receives.
1698
1838
  */
@@ -1725,54 +1865,60 @@ const createSearch = (client) => {
1725
1865
  };
1726
1866
  //#endregion
1727
1867
  //#region src/clients/storage/snapshots/snapshots.ts
1728
- const createSnapshots = (client) => {
1868
+ const createSnapshots = (client, poller) => {
1729
1869
  /**
1730
1870
  * Creates a snapshot of a table in the given branch. Async — returns a job.
1731
1871
  *
1732
1872
  * @link https://api.keboola.com/?service=storage#storage/tag/tables/POST/v2/storage/branch/{branchId}/tables/{id}/snapshots
1733
1873
  */
1734
- const createSnapshotAsync = async ({ branchId, tableId, ...body }, signal) => {
1874
+ const createSnapshotAsync = async ({ branchId, id, ...body }, signal) => {
1735
1875
  const { data } = await client.post("/v2/storage/branch/{branchId}/tables/{id}/snapshots", {
1736
1876
  path: {
1737
1877
  branchId,
1738
- id: tableId
1878
+ id
1739
1879
  },
1740
1880
  body
1741
1881
  }, { signal });
1742
1882
  return data;
1743
1883
  };
1884
+ const createSnapshotPoller = (input, options) => poller({
1885
+ init: (signal) => createSnapshotAsync(input, signal),
1886
+ ...options
1887
+ });
1744
1888
  /**
1745
1889
  * Reads a single snapshot. Not branch-scoped — a snapshot id is unique across branches.
1746
1890
  *
1747
- * Asserted in: the spec names the timestamp `createdTime`, the API returns `created`.
1748
- *
1749
1891
  * @link https://api.keboola.com/?service=storage#storage/GET/v2/storage/snapshots/{snapshotId}
1750
1892
  */
1751
- const getSnapshot = async (snapshotId, signal) => {
1893
+ const getSnapshot = async ({ snapshotId }, signal) => {
1752
1894
  const { data } = await client.get("/v2/storage/snapshots/{snapshotId}", { path: { snapshotId } }, { signal });
1753
1895
  return data;
1754
1896
  };
1755
1897
  /**
1756
- * Deletes a snapshot; returns its storage job, or `null` on no content. Not branch-scoped.
1898
+ * Deletes a snapshot. Async — returns a job. Not branch-scoped.
1757
1899
  *
1758
- * Asserted in: the spec's flat `JobResponse` is not the discriminated `Job`, and omits no-content.
1900
+ * Asserted in: the spec's flat `JobResponse` is not the discriminated `Job`.
1759
1901
  *
1760
1902
  * @link https://api.keboola.com/?service=storage#storage/DELETE/v2/storage/snapshots/{snapshotId}
1761
1903
  */
1762
- const deleteSnapshotAsync = async (snapshotId, signal) => {
1904
+ const deleteSnapshotAsync = async ({ snapshotId }, signal) => {
1763
1905
  const { data } = await client.delete("/v2/storage/snapshots/{snapshotId}", { path: { snapshotId } }, { signal });
1764
1906
  return data;
1765
1907
  };
1908
+ const deleteSnapshotPoller = (input, options) => poller({
1909
+ init: (signal) => deleteSnapshotAsync(input, signal),
1910
+ ...options
1911
+ });
1766
1912
  /**
1767
1913
  * Lists the snapshots of a table in the given branch.
1768
1914
  *
1769
1915
  * @link https://api.keboola.com/?service=storage#storage/tag/tables/GET/v2/storage/branch/{branchId}/tables/{id}/snapshots
1770
1916
  */
1771
- const getTableSnapshots = async ({ branchId, tableId, ...query }, signal) => {
1917
+ const getTableSnapshots = async ({ branchId, id, ...query }, signal) => {
1772
1918
  const { data } = await client.get("/v2/storage/branch/{branchId}/tables/{id}/snapshots", {
1773
1919
  path: {
1774
1920
  branchId,
1775
- id: tableId
1921
+ id
1776
1922
  },
1777
1923
  query
1778
1924
  }, { signal });
@@ -1780,46 +1926,40 @@ const createSnapshots = (client) => {
1780
1926
  };
1781
1927
  return {
1782
1928
  createSnapshotAsync,
1929
+ createSnapshotPoller,
1783
1930
  deleteSnapshotAsync,
1931
+ deleteSnapshotPoller,
1784
1932
  getSnapshot,
1785
1933
  getTableSnapshots
1786
1934
  };
1787
1935
  };
1788
1936
  //#endregion
1789
1937
  //#region src/clients/storage/stats/stats.ts
1790
- /**
1791
- * `GET /v2/storage/stats` (`StatsListAction`) declares a single contentless `default` response, so the
1792
- * generated return type is the response envelope (`{ headers, content?: never }`) rather than a
1793
- * payload — hence the assertion to the hand-authored `RunIdStats`. The `runId` query is spec-derived.
1794
- */
1795
1938
  const createStats = (client) => {
1796
1939
  /**
1797
1940
  * Returns import/export table stats for a job run, identified by its runId.
1798
1941
  *
1799
1942
  * @link https://api.keboola.com/?service=storage#storage/GET/v2/storage/stats
1800
1943
  */
1801
- const getRunIdStats = async (runId, signal) => {
1802
- const { data } = await client.get("/v2/storage/stats", { query: { runId } }, { signal });
1944
+ const getRunIdStats = async (query, signal) => {
1945
+ const { data } = await client.get("/v2/storage/stats", { query }, { signal });
1803
1946
  return data;
1804
1947
  };
1805
1948
  return { getRunIdStats };
1806
1949
  };
1807
1950
  //#endregion
1808
1951
  //#region src/clients/storage/tables/tables.ts
1809
- const createTables = (client) => {
1952
+ const createTables = (client, poller) => {
1810
1953
  /**
1811
1954
  * Returns every table in the given branch. Filter by bucket client-side: `table.bucket?.id`
1812
1955
  * (needs `include: ['buckets']`) or the `{bucketId}.` prefix of `table.id`.
1813
1956
  *
1814
1957
  * @link https://api.keboola.com/?service=storage#storage/GET/v2/storage/branch/{branchId}/tables
1815
1958
  */
1816
- const getTables = async ({ branchId, include = [], ...query }, signal) => {
1959
+ const getTables = async ({ branchId, ...query }, signal) => {
1817
1960
  const { data } = await client.get("/v2/storage/branch/{branchId}/tables", {
1818
1961
  path: { branchId },
1819
- query: {
1820
- include,
1821
- ...query
1822
- }
1962
+ query
1823
1963
  }, {
1824
1964
  signal,
1825
1965
  queryArrayFormat: "comma"
@@ -1864,7 +2004,7 @@ const createTables = (client) => {
1864
2004
  })
1865
2005
  });
1866
2006
  };
1867
- const deleteTableRows = async ({ branchId, id, ...query }, signal) => {
2007
+ const deleteTableRowsAsync = async ({ branchId, id, ...query }, signal) => {
1868
2008
  const { data } = await client.delete("/v2/storage/branch/{branchId}/tables/{id}/rows", {
1869
2009
  path: {
1870
2010
  branchId,
@@ -1874,10 +2014,15 @@ const createTables = (client) => {
1874
2014
  }, { signal });
1875
2015
  return data;
1876
2016
  };
2017
+ const deleteTableRowsPoller = (input, options) => poller({
2018
+ init: (signal) => deleteTableRowsAsync(input, signal),
2019
+ ...options
2020
+ });
1877
2021
  /**
1878
2022
  * Returns the first rows of a table in the given branch.
1879
2023
  *
1880
- * The spec declares `query?: never`, so the query is the hand-written `GetDataPreviewQuery`.
2024
+ * The query is the hand-written `GetDataPreviewQuery`: the spec spells every repeatable filter with
2025
+ * a `[]` suffix.
1881
2026
  *
1882
2027
  * @link https://api.keboola.com/?service=storage#storage/tag/tables/GET/v2/storage/branch/{branchId}/tables/{tableId}/data-preview
1883
2028
  */
@@ -1909,6 +2054,10 @@ const createTables = (client) => {
1909
2054
  }, { signal });
1910
2055
  return data;
1911
2056
  };
2057
+ const exportPoller = (input, options) => poller({
2058
+ init: (signal) => exportAsync(input, signal),
2059
+ ...options
2060
+ });
1912
2061
  const createTableAsync = async ({ branchId, id, ...body }, signal) => {
1913
2062
  const { data } = await client.post("/v2/storage/branch/{branchId}/buckets/{id}/tables-async", {
1914
2063
  path: {
@@ -1919,6 +2068,10 @@ const createTables = (client) => {
1919
2068
  }, { signal });
1920
2069
  return data;
1921
2070
  };
2071
+ const createTablePoller = (input, options) => poller({
2072
+ init: (signal) => createTableAsync(input, signal),
2073
+ ...options
2074
+ });
1922
2075
  /**
1923
2076
  * Creates a typed table from an explicit column definition (no data) in the given bucket.
1924
2077
  * Async — returns a `tableDefinitionCreate` job.
@@ -1935,6 +2088,10 @@ const createTables = (client) => {
1935
2088
  }, { signal });
1936
2089
  return data;
1937
2090
  };
2091
+ const createTableDefinitionPoller = (input, options) => poller({
2092
+ init: (signal) => createTableDefinitionAsync(input, signal),
2093
+ ...options
2094
+ });
1938
2095
  const importAsync = async ({ branchId, id, ...body }, signal) => {
1939
2096
  const { data } = await client.post("/v2/storage/branch/{branchId}/tables/{id}/import-async", {
1940
2097
  path: {
@@ -1945,6 +2102,10 @@ const createTables = (client) => {
1945
2102
  }, { signal });
1946
2103
  return data;
1947
2104
  };
2105
+ const importPoller = (input, options) => poller({
2106
+ init: (signal) => importAsync(input, signal),
2107
+ ...options
2108
+ });
1948
2109
  /**
1949
2110
  * Updates a table's definition in place. Async — returns a `tableDefinitionUpdate` job.
1950
2111
  *
@@ -1953,7 +2114,7 @@ const createTables = (client) => {
1953
2114
  *
1954
2115
  * @link https://api.keboola.com/?service=storage#storage/tag/tables/PUT/v2/storage/branch/{branchId}/tables/{tableId}/definition
1955
2116
  */
1956
- const updateTableDefinition = async ({ branchId, tableId, ...body }, signal) => {
2117
+ const updateTableDefinitionAsync = async ({ branchId, tableId, ...body }, signal) => {
1957
2118
  const { data } = await client.put("/v2/storage/branch/{branchId}/tables/{tableId}/definition", {
1958
2119
  path: {
1959
2120
  branchId,
@@ -1963,8 +2124,12 @@ const createTables = (client) => {
1963
2124
  }, { signal });
1964
2125
  return data;
1965
2126
  };
2127
+ const updateTableDefinitionPoller = (input, options) => poller({
2128
+ init: (signal) => updateTableDefinitionAsync(input, signal),
2129
+ ...options
2130
+ });
1966
2131
  /**
1967
- * Updates a table's display name (synchronous). Use `updateTableDefinition` for typed tables.
2132
+ * Updates a table's display name (synchronous). Use `updateTableDefinitionAsync` for typed tables.
1968
2133
  *
1969
2134
  * - The synchronous form is deprecated backend-side; `?async=true` returns a `tableUpdate` job.
1970
2135
  *
@@ -1994,6 +2159,10 @@ const createTables = (client) => {
1994
2159
  } }, { signal });
1995
2160
  return data;
1996
2161
  };
2162
+ const pullTablePoller = (input, options) => poller({
2163
+ init: (signal) => pullTableAsync(input, signal),
2164
+ ...options
2165
+ });
1997
2166
  /**
1998
2167
  * Creates an alias table in the given bucket.
1999
2168
  *
@@ -2066,14 +2235,21 @@ const createTables = (client) => {
2066
2235
  getDataPreview,
2067
2236
  deleteTable,
2068
2237
  deleteTables,
2069
- deleteTableRows,
2238
+ deleteTableRowsAsync,
2239
+ deleteTableRowsPoller,
2070
2240
  exportAsync,
2241
+ exportPoller,
2071
2242
  createTableAsync,
2243
+ createTablePoller,
2072
2244
  createTableDefinitionAsync,
2245
+ createTableDefinitionPoller,
2073
2246
  importAsync,
2074
- updateTableDefinition,
2247
+ importPoller,
2248
+ updateTableDefinitionAsync,
2249
+ updateTableDefinitionPoller,
2075
2250
  updateTable,
2076
2251
  pullTableAsync,
2252
+ pullTablePoller,
2077
2253
  createAliasTable,
2078
2254
  setAliasTableFilter,
2079
2255
  removeAliasTableFilter,
@@ -2084,14 +2260,8 @@ const createTables = (client) => {
2084
2260
  //#endregion
2085
2261
  //#region src/clients/storage/tokens/tokens.ts
2086
2262
  /**
2087
- * The `as` casts below work around a broken generated schema, not our own types:
2088
- *
2089
- * - id path params typed `number`; every id the API returns is a `string`
2090
- * - `UpdateTokenRequest` / `ShareTokenRequest` modelled as empty objects
2091
- * - update `200` declares no body, but returns the updated token
2092
- * - create body marks fields required that the API defaults
2093
- *
2094
- * `./types` holds the real contracts. Drop each cast as the backend fixes the schema.
2263
+ * `StorageToken` tightens the spec's token shape (`owner.assignedBackends`, `admin.role`,
2264
+ * `adminOwner`), so every method that answers a token asserts into it.
2095
2265
  */
2096
2266
  const createTokens = (client) => {
2097
2267
  const verify = async (signal) => {
@@ -2212,7 +2382,7 @@ const createTriggers = (client) => {
2212
2382
  *
2213
2383
  * @link https://api.keboola.com/?service=storage#storage/tag/triggers/DELETE/v2/storage/triggers/{triggerId}
2214
2384
  */
2215
- const deleteTrigger = async (triggerId, signal) => {
2385
+ const deleteTrigger = async ({ triggerId }, signal) => {
2216
2386
  await client.delete("/v2/storage/triggers/{triggerId}", { path: { triggerId } }, { signal });
2217
2387
  };
2218
2388
  return {
@@ -2224,15 +2394,14 @@ const createTriggers = (client) => {
2224
2394
  };
2225
2395
  //#endregion
2226
2396
  //#region src/clients/storage/workspaces/workspaces.ts
2397
+ const isSqlWorkspaceConnection = (connection) => "loginType" in connection;
2227
2398
  /**
2228
- * Paths, queries and bodies come from the spec; only the returns are asserted.
2399
+ * Paths, queries and bodies come from the spec; only the job returns are asserted.
2229
2400
  *
2230
- * - `Workspace` is corrected in `./types`: the spec's connection is narrower than callers get.
2231
- * - The password, SSO and delete operations answer a contentless `default`.
2232
2401
  * - `Job<T>` is a union over `status` with typed `results`; the spec's `JobResponse` is flat.
2233
2402
  * - `workspaceId` is a `number` in every input, stringified where the spec wants a string.
2234
2403
  */
2235
- const createWorkspaces = (client) => {
2404
+ const createWorkspaces = (client, poller) => {
2236
2405
  const getWorkspaces = async (path, signal) => {
2237
2406
  const { data } = await client.get("/v2/storage/branch/{branchId}/workspaces", { path }, { signal });
2238
2407
  return data;
@@ -2257,16 +2426,20 @@ const createWorkspaces = (client) => {
2257
2426
  concurrency: 5
2258
2427
  });
2259
2428
  };
2260
- const deleteWorkspaceAsync = async ({ branchId, workspaceId }) => {
2429
+ const deleteWorkspaceAsync = async ({ branchId, workspaceId }, signal) => {
2261
2430
  const { data } = await client.delete("/v2/storage/branch/{branchId}/workspaces/{workspaceId}", {
2262
2431
  path: {
2263
2432
  branchId,
2264
2433
  workspaceId
2265
2434
  },
2266
2435
  query: { async: true }
2267
- });
2436
+ }, { signal });
2268
2437
  return data;
2269
2438
  };
2439
+ const deleteWorkspacePoller = (input, options) => poller({
2440
+ init: (signal) => deleteWorkspaceAsync(input, signal),
2441
+ ...options
2442
+ });
2270
2443
  const resetWorkspacePassword = async ({ branchId, workspaceId }) => {
2271
2444
  const { data } = await client.post("/v2/storage/branch/{branchId}/workspaces/{workspaceId}/password", { path: {
2272
2445
  branchId,
@@ -2295,16 +2468,20 @@ const createWorkspaces = (client) => {
2295
2468
  const { data } = await client.get("/v2/storage/branch/{branchId}/workspaces/{workspaceId}/objects", { path }, { signal });
2296
2469
  return data;
2297
2470
  };
2298
- const deleteWorkspaceObjectsAsync = async ({ branchId, workspaceId, ...body }) => {
2471
+ const deleteWorkspaceObjectsAsync = async ({ branchId, workspaceId, ...body }, signal) => {
2299
2472
  const { data } = await client.post("/v2/storage/branch/{branchId}/workspaces/{workspaceId}/objects/batch-delete", {
2300
2473
  path: {
2301
2474
  branchId,
2302
2475
  workspaceId
2303
2476
  },
2304
2477
  body
2305
- });
2478
+ }, { signal });
2306
2479
  return data;
2307
2480
  };
2481
+ const deleteWorkspaceObjectsPoller = (input, options) => poller({
2482
+ init: (signal) => deleteWorkspaceObjectsAsync(input, signal),
2483
+ ...options
2484
+ });
2308
2485
  const unloadWorkspace = async ({ branchId, workspaceId, ...query }) => {
2309
2486
  const { data } = await client.post("/v2/storage/branch/{branchId}/workspaces/{workspaceId}/unload", {
2310
2487
  path: {
@@ -2320,10 +2497,10 @@ const createWorkspaces = (client) => {
2320
2497
  *
2321
2498
  * - Backend order: the item's `backend`, then the `backend` argument, then the project default.
2322
2499
  */
2323
- const inputMappingLoadPreview = async ({ branchId, body, backend }, signal) => {
2500
+ const inputMappingLoadPreview = async ({ branchId, body, ...query }, signal) => {
2324
2501
  const { data } = await client.post("/v2/storage/branch/{branchId}/input-mapping-load/preview", {
2325
2502
  path: { branchId },
2326
- query: backend ? { backend } : void 0,
2503
+ query,
2327
2504
  body
2328
2505
  }, { signal });
2329
2506
  return data;
@@ -2335,10 +2512,12 @@ const createWorkspaces = (client) => {
2335
2512
  resetWorkspacePassword,
2336
2513
  deleteWorkspaces,
2337
2514
  deleteWorkspaceAsync,
2515
+ deleteWorkspacePoller,
2338
2516
  setWorkspacePublicKey,
2339
2517
  getWorkspaceSaml2Login,
2340
2518
  getWorkspaceObjects,
2341
2519
  deleteWorkspaceObjectsAsync,
2520
+ deleteWorkspaceObjectsPoller,
2342
2521
  unloadWorkspace,
2343
2522
  inputMappingLoadPreview
2344
2523
  };
@@ -2378,18 +2557,18 @@ const createStorageClient = ({ baseUrl, auth, middlewares = [], onRefreshToken }
2378
2557
  healthCheck,
2379
2558
  getStackInfo,
2380
2559
  jobs,
2381
- buckets: createBuckets(client),
2382
- bucketSharing: createBucketSharing(client),
2383
- bucketListings: createBucketListings(client),
2384
- bucketExternal: createBucketExternal(client),
2385
- tables: createTables(client),
2386
- columns: createColumns(client),
2387
- snapshots: createSnapshots(client),
2560
+ buckets: createBuckets(client, poller),
2561
+ bucketSharing: createBucketSharing(client, poller),
2562
+ bucketListings: createBucketListings(client, genericClient, poller),
2563
+ bucketExternal: createBucketExternal(client, poller),
2564
+ tables: createTables(client, poller),
2565
+ columns: createColumns(client, poller),
2566
+ snapshots: createSnapshots(client, poller),
2388
2567
  branches: createBranches(client, poller),
2389
- mergeRequests: createMergeRequests(client),
2568
+ mergeRequests: createMergeRequests(client, poller),
2390
2569
  events: createEvents(client),
2391
2570
  files: createFiles(client),
2392
- workspaces: createWorkspaces(client),
2571
+ workspaces: createWorkspaces(client, poller),
2393
2572
  tokens: createTokens(client),
2394
2573
  triggers: createTriggers(client),
2395
2574
  search: createSearch(client),
@@ -2397,12 +2576,12 @@ const createStorageClient = ({ baseUrl, auth, middlewares = [], onRefreshToken }
2397
2576
  components: createComponents(client),
2398
2577
  configurations: createConfigurations(client, poller),
2399
2578
  configurationRows: createConfigurationRows(client),
2400
- configurationWorkspaces: createConfigurationWorkspaces(client),
2579
+ configurationWorkspaces: createConfigurationWorkspaces(client, poller),
2401
2580
  configurationMetadata: createConfigurationMetadata(client),
2402
2581
  configurationVersions: createConfigurationVersions(client)
2403
2582
  };
2404
2583
  };
2405
2584
  //#endregion
2406
- export { readableReason as a, ServiceUnavailableError as i, fromBackendSubscribers as n, series as o, toBackendSubscribers as r, createStorageClient as t };
2585
+ export { StorageJobError as a, readableReason as c, toBackendSubscribers as i, series as l, isSqlWorkspaceConnection as n, isStorageJobError as o, fromBackendSubscribers as r, ServiceUnavailableError as s, createStorageClient as t };
2407
2586
 
2408
- //# sourceMappingURL=storage-RkNaOFJ-.js.map
2587
+ //# sourceMappingURL=storage-DyR7hDdv.js.map