@keboola/api-client 41.0.0 → 42.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 (320) hide show
  1. package/API-SURFACE.md +43 -3
  2. package/CHANGELOG.md +158 -0
  3. package/README.md +1 -1
  4. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs → ManagementClientAuthError-BFZOtLgj.cjs} +2 -2
  5. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs.map → ManagementClientAuthError-BFZOtLgj.cjs.map} +1 -1
  6. package/dist/{ManagementClientAuthError-H30lti_Q.js → ManagementClientAuthError-DUbXlry2.js} +2 -2
  7. package/dist/{ManagementClientAuthError-H30lti_Q.js.map → ManagementClientAuthError-DUbXlry2.js.map} +1 -1
  8. package/dist/ai/index.cjs +2 -2
  9. package/dist/ai/index.js +2 -2
  10. package/dist/{appLogs-BBkkUOW1.js → appLogs-DfkItQCO.js} +2 -2
  11. package/dist/{appLogs-BBkkUOW1.js.map → appLogs-DfkItQCO.js.map} +1 -1
  12. package/dist/{appLogs-B9zFJIuy.cjs → appLogs-oZvt59mk.cjs} +2 -2
  13. package/dist/{appLogs-B9zFJIuy.cjs.map → appLogs-oZvt59mk.cjs.map} +1 -1
  14. package/dist/apps/index.cjs +3 -3
  15. package/dist/apps/index.js +3 -3
  16. package/dist/assets/index.cjs +1 -1
  17. package/dist/assets/index.js +1 -1
  18. package/dist/auth/index.cjs +1 -1
  19. package/dist/auth/index.d.cts +1 -1
  20. package/dist/auth/index.d.ts +1 -1
  21. package/dist/auth/index.js +1 -1
  22. package/dist/auth/types.d.cts +2 -2
  23. package/dist/auth/types.d.ts +2 -2
  24. package/dist/{auth-DworfoPy.js → auth-DUHTJTwS.js} +2 -2
  25. package/dist/{auth-DworfoPy.js.map → auth-DUHTJTwS.js.map} +1 -1
  26. package/dist/{auth-Dm0F2rOh.cjs → auth-zfI04oj7.cjs} +2 -2
  27. package/dist/{auth-Dm0F2rOh.cjs.map → auth-zfI04oj7.cjs.map} +1 -1
  28. package/dist/{authClient-BmuUo0J4.cjs → authClient-BxqRGR5c.cjs} +39 -5
  29. package/dist/authClient-BxqRGR5c.cjs.map +1 -0
  30. package/dist/{authClient-vEt_7_uk.d.cts → authClient-CBVAT3v9.d.cts} +49 -2
  31. package/dist/{authClient-CHXWJ9x3.d.ts → authClient-CRumc934.d.ts} +49 -2
  32. package/dist/{authClient-CgcDGd30.js → authClient-CX4buUMc.js} +39 -5
  33. package/dist/authClient-CX4buUMc.js.map +1 -0
  34. package/dist/billing/index.cjs +2 -2
  35. package/dist/billing/index.js +2 -2
  36. package/dist/businessWorkspaceApi/index.cjs +1 -1
  37. package/dist/businessWorkspaceApi/index.js +1 -1
  38. package/dist/{businessWorkspaceApi-BLUdefRF.js → businessWorkspaceApi-DFky1k61.js} +3 -3
  39. package/dist/{businessWorkspaceApi-BLUdefRF.js.map → businessWorkspaceApi-DFky1k61.js.map} +1 -1
  40. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs → businessWorkspaceApi-Uzqu0PJM.cjs} +3 -3
  41. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs.map → businessWorkspaceApi-Uzqu0PJM.cjs.map} +1 -1
  42. package/dist/chat/index.cjs +3 -3
  43. package/dist/chat/index.js +3 -3
  44. package/dist/{componentId-_IKXxICq.cjs → componentId-D4jp6a13.cjs} +17 -1
  45. package/dist/componentId-D4jp6a13.cjs.map +1 -0
  46. package/dist/{componentId-BJLfnaGc.js → componentId-DmHwHG5V.js} +17 -1
  47. package/dist/componentId-DmHwHG5V.js.map +1 -0
  48. package/dist/{configurations-VlfQ_37Y.cjs → configurations-D_Rbs0Wl.cjs} +2 -2
  49. package/dist/{configurations-VlfQ_37Y.cjs.map → configurations-D_Rbs0Wl.cjs.map} +1 -1
  50. package/dist/{configurations-CF3xz7RB.js → configurations-DcpUlC8I.js} +2 -2
  51. package/dist/{configurations-CF3xz7RB.js.map → configurations-DcpUlC8I.js.map} +1 -1
  52. package/dist/constants/index.cjs +1 -1
  53. package/dist/constants/index.d.cts +1 -1
  54. package/dist/constants/index.d.ts +1 -1
  55. package/dist/constants/index.js +1 -1
  56. package/dist/{createFetchClient-Cwp8max9.cjs → createFetchClient-BgihytBn.cjs} +2 -1
  57. package/dist/createFetchClient-BgihytBn.cjs.map +1 -0
  58. package/dist/{createFetchClient-DXHQK63w.js → createFetchClient-cgWkwgAQ.js} +2 -1
  59. package/dist/createFetchClient-cgWkwgAQ.js.map +1 -0
  60. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs → createGenericFetchClient-C7Y0YVfc.cjs} +2 -2
  61. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs.map → createGenericFetchClient-C7Y0YVfc.cjs.map} +1 -1
  62. package/dist/{createGenericFetchClient-Dg1rgzmG.js → createGenericFetchClient-CX9Hn3Aq.js} +2 -2
  63. package/dist/{createGenericFetchClient-Dg1rgzmG.js.map → createGenericFetchClient-CX9Hn3Aq.js.map} +1 -1
  64. package/dist/{createOpenapiFetchClient-DZUOVupy.js → createOpenapiFetchClient-BxcLLU_N.js} +2 -2
  65. package/dist/{createOpenapiFetchClient-DZUOVupy.js.map → createOpenapiFetchClient-BxcLLU_N.js.map} +1 -1
  66. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs → createOpenapiFetchClient-DY5s-aH6.cjs} +2 -2
  67. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs.map → createOpenapiFetchClient-DY5s-aH6.cjs.map} +1 -1
  68. package/dist/dataScience/index.cjs +2 -2
  69. package/dist/dataScience/index.js +2 -2
  70. package/dist/{dataScience-B5QxZnvW.cjs → dataScience-BoS8Xfvx.cjs} +5 -5
  71. package/dist/{dataScience-B5QxZnvW.cjs.map → dataScience-BoS8Xfvx.cjs.map} +1 -1
  72. package/dist/{dataScience-OXcwdk1p.js → dataScience-BxRoGfnG.js} +5 -5
  73. package/dist/{dataScience-OXcwdk1p.js.map → dataScience-BxRoGfnG.js.map} +1 -1
  74. package/dist/developerPortal/index.cjs +1 -1
  75. package/dist/developerPortal/index.js +1 -1
  76. package/dist/{developerPortalClient-B1QZ1rYi.js → developerPortalClient-C7s0kpjK.js} +3 -3
  77. package/dist/{developerPortalClient-B1QZ1rYi.js.map → developerPortalClient-C7s0kpjK.js.map} +1 -1
  78. package/dist/{developerPortalClient-CLPpBksD.cjs → developerPortalClient-DFHEsrlt.cjs} +3 -3
  79. package/dist/{developerPortalClient-CLPpBksD.cjs.map → developerPortalClient-DFHEsrlt.cjs.map} +1 -1
  80. package/dist/domain/permissions/index.d.cts +2 -2
  81. package/dist/domain/permissions/index.d.ts +2 -2
  82. package/dist/domain/storageTable/index.cjs +7 -1
  83. package/dist/domain/storageTable/index.d.cts +2 -2
  84. package/dist/domain/storageTable/index.d.ts +2 -2
  85. package/dist/domain/storageTable/index.js +2 -2
  86. package/dist/editor/index.cjs +2 -2
  87. package/dist/editor/index.js +2 -2
  88. package/dist/encryption/index.cjs +1 -1
  89. package/dist/encryption/index.d.cts +1 -1
  90. package/dist/encryption/index.d.ts +1 -1
  91. package/dist/encryption/index.js +1 -1
  92. package/dist/encryption/types.d.cts +1 -1
  93. package/dist/encryption/types.d.ts +1 -1
  94. package/dist/import/index.cjs +1 -1
  95. package/dist/import/index.js +1 -1
  96. package/dist/{import-CNk89mqy.cjs → import-BSYvG3Uy.cjs} +3 -3
  97. package/dist/{import-CNk89mqy.cjs.map → import-BSYvG3Uy.cjs.map} +1 -1
  98. package/dist/{import-DiMQCzLa.js → import-CXBcFVbk.js} +3 -3
  99. package/dist/{import-DiMQCzLa.js.map → import-CXBcFVbk.js.map} +1 -1
  100. package/dist/{index-DCRKjihs.d.ts → index-B03vhWSX.d.ts} +117 -90
  101. package/dist/{index-cWp_V6K5.d.cts → index-B2-7WJ-E.d.cts} +573 -78
  102. package/dist/{index-BDZvaRud.d.ts → index-B72LTF-k.d.ts} +6 -3
  103. package/dist/{index-DOAZmWvh.d.cts → index-BMiZx-4_.d.cts} +6 -3
  104. package/dist/{index--ZpnE3YT.d.cts → index-BUsLHNOA.d.cts} +2 -2
  105. package/dist/{index-D7-o-oGa.d.ts → index-CBWfpd-0.d.ts} +2 -2
  106. package/dist/index-CGCXR_6Q.d.ts +273 -0
  107. package/dist/{index-Cvbjp3jx.d.cts → index-CKENwClW.d.cts} +4 -4
  108. package/dist/{index-CaaTOANF.d.ts → index-CpE_NWuq.d.ts} +573 -78
  109. package/dist/{index-DnQTuc6t.d.ts → index-Cw-d6vV3.d.ts} +4 -4
  110. package/dist/{index-ByRpNVcs.d.cts → index-D3HFMfJJ.d.cts} +117 -90
  111. package/dist/index-DINB7vsV.d.cts +273 -0
  112. package/dist/{index-B5w7WlaU.d.cts → index-DeQDdut6.d.cts} +17 -1
  113. package/dist/{index-B5w7WlaU.d.ts → index-DeQDdut6.d.ts} +17 -1
  114. package/dist/{index-Qb7X6-ph.d.ts → index-DwM1EpnZ.d.ts} +12 -2
  115. package/dist/{index-CXcWpZQ2.d.ts → index-P1vR966i.d.cts} +74 -2
  116. package/dist/{index-CXcWpZQ2.d.cts → index-P1vR966i.d.ts} +74 -2
  117. package/dist/{index-DNThyEej.d.cts → index-VnJCp8IL.d.cts} +12 -2
  118. package/dist/index.cjs +65 -39
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.cts +3 -3
  121. package/dist/index.d.ts +3 -3
  122. package/dist/index.js +65 -40
  123. package/dist/index.js.map +1 -1
  124. package/dist/{isLoginPageRedirect-XPwAOKK3.js → isLoginPageRedirect-CsjF95_P.js} +2 -2
  125. package/dist/{isLoginPageRedirect-XPwAOKK3.js.map → isLoginPageRedirect-CsjF95_P.js.map} +1 -1
  126. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs → isLoginPageRedirect-c451CoWW.cjs} +2 -2
  127. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs.map → isLoginPageRedirect-c451CoWW.cjs.map} +1 -1
  128. package/dist/kaiAgent/index.cjs +1 -1
  129. package/dist/kaiAgent/index.d.cts +2 -2
  130. package/dist/kaiAgent/index.d.ts +2 -2
  131. package/dist/kaiAgent/index.js +1 -1
  132. package/dist/{kaiAgent-QNoeVKPs.cjs → kaiAgent-ph4DRKlT.cjs} +21 -5
  133. package/dist/kaiAgent-ph4DRKlT.cjs.map +1 -0
  134. package/dist/{kaiAgent-Dp20HLTh.js → kaiAgent-xBpUwLeQ.js} +21 -5
  135. package/dist/kaiAgent-xBpUwLeQ.js.map +1 -0
  136. package/dist/{kaiMemory-D0Y_16U4.js → kaiMemory-BAniZZAN.js} +2 -2
  137. package/dist/{kaiMemory-D0Y_16U4.js.map → kaiMemory-BAniZZAN.js.map} +1 -1
  138. package/dist/{kaiMemory-CClSPInt.cjs → kaiMemory-U0DG-CpY.cjs} +2 -2
  139. package/dist/{kaiMemory-CClSPInt.cjs.map → kaiMemory-U0DG-CpY.cjs.map} +1 -1
  140. package/dist/management/index.cjs +1 -1
  141. package/dist/management/index.d.cts +1 -1
  142. package/dist/management/index.d.ts +1 -1
  143. package/dist/management/index.js +1 -1
  144. package/dist/management/types.d.cts +2 -2
  145. package/dist/management/types.d.ts +2 -2
  146. package/dist/{management-CCY0IYnq.cjs → management-5597SiC7.cjs} +79 -11
  147. package/dist/management-5597SiC7.cjs.map +1 -0
  148. package/dist/{management-DvmPiG64.js → management-D46KlXts.js} +79 -11
  149. package/dist/management-D46KlXts.js.map +1 -0
  150. package/dist/metastore/index.cjs +1 -1
  151. package/dist/metastore/index.d.cts +1 -1
  152. package/dist/metastore/index.d.ts +1 -1
  153. package/dist/metastore/index.js +1 -1
  154. package/dist/metastore/types.d.cts +2 -2
  155. package/dist/metastore/types.d.ts +2 -2
  156. package/dist/{metastore-XtWciCZT.cjs → metastore-DwMFlP2d.cjs} +52 -7
  157. package/dist/metastore-DwMFlP2d.cjs.map +1 -0
  158. package/dist/{metastore-BycJxe7A.js → metastore-_OskcLGz.js} +52 -7
  159. package/dist/metastore-_OskcLGz.js.map +1 -0
  160. package/dist/microsoftGraph/index.cjs +2 -2
  161. package/dist/microsoftGraph/index.js +2 -2
  162. package/dist/{middleware-CBwrtgQd.js → middleware-Drbo_UIZ.js} +2 -2
  163. package/dist/{middleware-CBwrtgQd.js.map → middleware-Drbo_UIZ.js.map} +1 -1
  164. package/dist/{middleware-IjYx3d5u.cjs → middleware-xhg2r2fE.cjs} +2 -2
  165. package/dist/{middleware-IjYx3d5u.cjs.map → middleware-xhg2r2fE.cjs.map} +1 -1
  166. package/dist/notifications/index.cjs +3 -3
  167. package/dist/notifications/index.js +3 -3
  168. package/dist/oauth/index.cjs +1 -1
  169. package/dist/oauth/index.js +1 -1
  170. package/dist/{oauth--2p8jkJf.cjs → oauth-L0Uic3YA.cjs} +5 -5
  171. package/dist/{oauth--2p8jkJf.cjs.map → oauth-L0Uic3YA.cjs.map} +1 -1
  172. package/dist/{oauth-l5zE39cD.js → oauth-TWwAv-va.js} +5 -5
  173. package/dist/{oauth-l5zE39cD.js.map → oauth-TWwAv-va.js.map} +1 -1
  174. package/dist/omnisearch/index.cjs +2 -2
  175. package/dist/omnisearch/index.js +2 -2
  176. package/dist/{project-cHKuGvqJ.d.cts → project-B8wtlstY.d.cts} +2 -2
  177. package/dist/{project-B15gStbM.d.ts → project-BCc3mpAy.d.ts} +2 -2
  178. package/dist/queryService/index.cjs +1 -1
  179. package/dist/queryService/index.d.cts +1 -1
  180. package/dist/queryService/index.d.ts +1 -1
  181. package/dist/queryService/index.js +1 -1
  182. package/dist/{queryService-CCOYbRbw.js → queryService-CdtogGr7.js} +5 -5
  183. package/dist/{queryService-CCOYbRbw.js.map → queryService-CdtogGr7.js.map} +1 -1
  184. package/dist/{queryService-CQzclHdL.cjs → queryService-Dx6AdxOl.cjs} +5 -5
  185. package/dist/{queryService-CQzclHdL.cjs.map → queryService-Dx6AdxOl.cjs.map} +1 -1
  186. package/dist/queue/index.cjs +1 -1
  187. package/dist/queue/index.d.cts +1 -1
  188. package/dist/queue/index.d.ts +1 -1
  189. package/dist/queue/index.js +1 -1
  190. package/dist/{queue-Cowbg6bR.js → queue-f2xsjy0o.js} +4 -4
  191. package/dist/{queue-Cowbg6bR.js.map → queue-f2xsjy0o.js.map} +1 -1
  192. package/dist/{queue-UG_BWKIC.cjs → queue-wIdnMtaZ.cjs} +4 -4
  193. package/dist/{queue-UG_BWKIC.cjs.map → queue-wIdnMtaZ.cjs.map} +1 -1
  194. package/dist/scheduler/index.cjs +3 -3
  195. package/dist/scheduler/index.js +3 -3
  196. package/dist/sdk/configurations/index.cjs +1 -1
  197. package/dist/sdk/configurations/index.d.cts +4 -4
  198. package/dist/sdk/configurations/index.d.ts +4 -4
  199. package/dist/sdk/configurations/index.js +1 -1
  200. package/dist/sdk/developerPortal/index.cjs +3 -3
  201. package/dist/sdk/developerPortal/index.js +3 -3
  202. package/dist/sdk/kaiMemory/index.cjs +1 -1
  203. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  204. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  205. package/dist/sdk/kaiMemory/index.js +1 -1
  206. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  207. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  208. package/dist/sdk/queryService/index.d.cts +1 -1
  209. package/dist/sdk/queryService/index.d.ts +1 -1
  210. package/dist/sdk/semanticLayer/index.cjs +2 -1
  211. package/dist/sdk/semanticLayer/index.d.cts +10 -3
  212. package/dist/sdk/semanticLayer/index.d.ts +10 -3
  213. package/dist/sdk/semanticLayer/index.js +2 -2
  214. package/dist/sdk/semanticLayer/types.d.cts +2 -2
  215. package/dist/sdk/semanticLayer/types.d.ts +2 -2
  216. package/dist/sdk/storage/index.cjs +12 -24
  217. package/dist/sdk/storage/index.cjs.map +1 -1
  218. package/dist/sdk/storage/index.d.cts +1 -1
  219. package/dist/sdk/storage/index.d.ts +1 -1
  220. package/dist/sdk/storage/index.js +12 -24
  221. package/dist/sdk/storage/index.js.map +1 -1
  222. package/dist/sdk/tag/index.d.cts +2 -2
  223. package/dist/sdk/tag/index.d.ts +2 -2
  224. package/dist/sdk/tag/types.d.cts +1 -1
  225. package/dist/sdk/tag/types.d.ts +1 -1
  226. package/dist/sdk/vault/index.d.cts +1 -1
  227. package/dist/sdk/vault/index.d.ts +1 -1
  228. package/dist/{semanticLayer-CKDVkU56.cjs → semanticLayer-D3NDh_QH.cjs} +115 -20
  229. package/dist/semanticLayer-D3NDh_QH.cjs.map +1 -0
  230. package/dist/{semanticLayer-pYy082Ju.js → semanticLayer-Ddg0LSnt.js} +110 -21
  231. package/dist/semanticLayer-Ddg0LSnt.js.map +1 -0
  232. package/dist/status/index.cjs +1 -1
  233. package/dist/status/index.js +1 -1
  234. package/dist/storage/index.cjs +4 -4
  235. package/dist/storage/index.d.cts +2 -2
  236. package/dist/storage/index.d.ts +2 -2
  237. package/dist/storage/index.js +4 -4
  238. package/dist/storage/types.d.cts +3 -3
  239. package/dist/storage/types.d.ts +3 -3
  240. package/dist/{storage-CZQHZcXG.js → storage-BkdjgtCU.js} +272 -134
  241. package/dist/storage-BkdjgtCU.js.map +1 -0
  242. package/dist/{storage-JinL1y1s.cjs → storage-CXQTTVXl.cjs} +272 -134
  243. package/dist/storage-CXQTTVXl.cjs.map +1 -0
  244. package/dist/{storageTable-C9crh4Ef.cjs → storageTable-BNOR2FCh.cjs} +137 -5
  245. package/dist/storageTable-BNOR2FCh.cjs.map +1 -0
  246. package/dist/{storageTable-DslXtqNL.js → storageTable-BldTNyEk.js} +102 -6
  247. package/dist/storageTable-BldTNyEk.js.map +1 -0
  248. package/dist/stream/index.cjs +3 -3
  249. package/dist/stream/index.js +3 -3
  250. package/dist/syncActions/index.cjs +4 -1
  251. package/dist/syncActions/index.d.cts +3 -2
  252. package/dist/syncActions/index.d.ts +3 -2
  253. package/dist/syncActions/index.js +2 -2
  254. package/dist/syncActions/types.d.cts +2 -2
  255. package/dist/syncActions/types.d.ts +2 -2
  256. package/dist/syncActions-BQ8kMgL6.js +1191 -0
  257. package/dist/syncActions-BQ8kMgL6.js.map +1 -0
  258. package/dist/syncActions-DyxNmbUR.cjs +1216 -0
  259. package/dist/syncActions-DyxNmbUR.cjs.map +1 -0
  260. package/dist/telemetry/index.cjs +3 -3
  261. package/dist/telemetry/index.js +3 -3
  262. package/dist/{types-DWiLcrxt.d.cts → types-04GTqleJ.d.cts} +3 -3
  263. package/dist/{types-DRCMBt89.d.ts → types-2Do0DZ60.d.ts} +3 -3
  264. package/dist/{types-Dtuvhm3K.d.cts → types-BWmLo73i.d.cts} +749 -186
  265. package/dist/{types-CQFOCQzk.d.ts → types-BaSlU0uo.d.ts} +510 -5
  266. package/dist/{types-DEzW1CfI.d.cts → types-BgHtMe8s.d.cts} +3 -3
  267. package/dist/{types-BiMahEK8.d.cts → types-BgVt8SUY.d.cts} +126 -62
  268. package/dist/{types-BS4jwuMi.d.ts → types-BhEx9iRx.d.ts} +3068 -621
  269. package/dist/{types-CMzQSHAQ.d.cts → types-BzPuxmaR.d.cts} +3 -3
  270. package/dist/{types-CKmTZSPG.d.ts → types-C0rVtqz2.d.ts} +126 -62
  271. package/dist/{types-Bl03Cg2n.d.cts → types-CAAgCRmE.d.cts} +31 -5
  272. package/dist/{types-BIECJYun.d.ts → types-CN6huo55.d.ts} +406 -5
  273. package/dist/{types-Cg14ncdV.d.ts → types-CV7jmgtX.d.ts} +3 -3
  274. package/dist/{types-CqwHP7mN.d.cts → types-CcYxlqtB.d.cts} +510 -5
  275. package/dist/{types-FwRmjsNN.d.ts → types-CigD_EF5.d.ts} +18 -6
  276. package/dist/{types-B_iLJlp4.d.ts → types-CwZgZqrA.d.ts} +31 -5
  277. package/dist/{types-BTK7Bv3n.d.cts → types-DgPt4LY_.d.cts} +406 -5
  278. package/dist/{types-bc-4z_gc.d.cts → types-DyArI_Jq.d.cts} +18 -6
  279. package/dist/{types-DekYAlA-.d.ts → types-QSchmyvO.d.ts} +3 -3
  280. package/dist/{types-DKc1gmd9.d.ts → types-R3AFJD6r.d.ts} +749 -186
  281. package/dist/{types-DDOa07rU.d.cts → types-sV9OaqTI.d.cts} +3068 -621
  282. package/dist/{validateConnectionStatus-BEYkQpu9.cjs → validateConnectionStatus-Ca1uEizv.cjs} +3 -3
  283. package/dist/{validateConnectionStatus-BEYkQpu9.cjs.map → validateConnectionStatus-Ca1uEizv.cjs.map} +1 -1
  284. package/dist/{validateConnectionStatus-BEGu8wXT.js → validateConnectionStatus-gFsBi5FV.js} +3 -3
  285. package/dist/{validateConnectionStatus-BEGu8wXT.js.map → validateConnectionStatus-gFsBi5FV.js.map} +1 -1
  286. package/dist/vault/index.cjs +4 -4
  287. package/dist/vault/index.js +4 -4
  288. package/package.json +7 -7
  289. package/surface/auth.md +7 -0
  290. package/surface/kaiAgent.md +4 -2
  291. package/surface/management.md +28 -13
  292. package/surface/metastore.md +4 -1
  293. package/surface/queue.md +1 -1
  294. package/surface/sdk.md +13 -8
  295. package/surface/storage.md +27 -24
  296. package/surface/syncActions.md +48 -1
  297. package/dist/authClient-BmuUo0J4.cjs.map +0 -1
  298. package/dist/authClient-CgcDGd30.js.map +0 -1
  299. package/dist/componentId-BJLfnaGc.js.map +0 -1
  300. package/dist/componentId-_IKXxICq.cjs.map +0 -1
  301. package/dist/createFetchClient-Cwp8max9.cjs.map +0 -1
  302. package/dist/createFetchClient-DXHQK63w.js.map +0 -1
  303. package/dist/index-DbLFwXgb.d.cts +0 -116
  304. package/dist/index-rwK7GcB2.d.ts +0 -116
  305. package/dist/kaiAgent-Dp20HLTh.js.map +0 -1
  306. package/dist/kaiAgent-QNoeVKPs.cjs.map +0 -1
  307. package/dist/management-CCY0IYnq.cjs.map +0 -1
  308. package/dist/management-DvmPiG64.js.map +0 -1
  309. package/dist/metastore-BycJxe7A.js.map +0 -1
  310. package/dist/metastore-XtWciCZT.cjs.map +0 -1
  311. package/dist/semanticLayer-CKDVkU56.cjs.map +0 -1
  312. package/dist/semanticLayer-pYy082Ju.js.map +0 -1
  313. package/dist/storage-CZQHZcXG.js.map +0 -1
  314. package/dist/storage-JinL1y1s.cjs.map +0 -1
  315. package/dist/storageTable-C9crh4Ef.cjs.map +0 -1
  316. package/dist/storageTable-DslXtqNL.js.map +0 -1
  317. package/dist/syncActions-ChNWuhYA.js +0 -646
  318. package/dist/syncActions-ChNWuhYA.js.map +0 -1
  319. package/dist/syncActions-mFlF16cl.cjs +0 -653
  320. package/dist/syncActions-mFlF16cl.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  const require_jobStatus = require("./jobStatus-BMlsyXWI.cjs");
2
2
  const require_concurrent = require("./concurrent-CdVfR1N5.cjs");
3
- const require_createFetchClient = require("./createFetchClient-Cwp8max9.cjs");
4
- const require_validateConnectionStatus = require("./validateConnectionStatus-BEYkQpu9.cjs");
5
- const require_createGenericFetchClient = require("./createGenericFetchClient-Dl9cqTvR.cjs");
6
- const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-BYqW-9tm.cjs");
7
- const require_auth = require("./auth-Dm0F2rOh.cjs");
3
+ const require_createFetchClient = require("./createFetchClient-BgihytBn.cjs");
4
+ const require_validateConnectionStatus = require("./validateConnectionStatus-Ca1uEizv.cjs");
5
+ const require_createGenericFetchClient = require("./createGenericFetchClient-C7Y0YVfc.cjs");
6
+ const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-DY5s-aH6.cjs");
7
+ const require_auth = require("./auth-zfI04oj7.cjs");
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).
@@ -229,15 +229,16 @@ const createBranches = (client, poller) => {
229
229
  *
230
230
  * - Only they need table metadata refreshed, manually or on a cron.
231
231
  * - Job returns are asserted: the spec's flat `JobResponse` is not the `Job<T>` union.
232
- * - The `POST /buckets/register` spec lacks the `async` query and the `bucketRegister` job response.
232
+ * - The `POST /buckets/register` spec lacks the `bucketRegister` job response.
233
+ * - Registration and its guide work in the default branch only.
233
234
  */
234
235
  const createBucketExternal = (client) => {
235
236
  /**
236
- * @link https://api.keboola.com/?service=storage#storage/POST/v2/storage/buckets/register
237
+ * @link https://api.keboola.com/?service=storage#storage/POST/v2/storage/branch/{branchId}/buckets/register
237
238
  */
238
- const registerBucketAsync = async (body, signal) => {
239
- const { data } = await client.post("/v2/storage/buckets/register", {
240
- query: { async: true },
239
+ const registerBucketAsync = async ({ branchId, ...body }, signal) => {
240
+ const { data } = await client.post("/v2/storage/branch/{branchId}/buckets/register", {
241
+ path: { branchId },
241
242
  body
242
243
  }, { signal });
243
244
  return data;
@@ -245,21 +246,27 @@ const createBucketExternal = (client) => {
245
246
  /**
246
247
  * Returns markdown.
247
248
  *
248
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/GET/v2/storage/buckets/register-guide
249
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/GET/v2/storage/branch/{branchId}/buckets/register-guide
249
250
  */
250
- const getBucketRegistrationGuide = async (query, signal) => {
251
- const { data } = await client.get("/v2/storage/buckets/register-guide", { query }, {
251
+ const getBucketRegistrationGuide = async ({ branchId, ...query }, signal) => {
252
+ const { data } = await client.get("/v2/storage/branch/{branchId}/buckets/register-guide", {
253
+ path: { branchId },
254
+ query
255
+ }, {
252
256
  signal,
253
257
  queryArrayFormat: "brackets"
254
258
  });
255
259
  return data;
256
260
  };
257
261
  /**
258
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/PUT/v2/storage/buckets/{bucketId}/refresh
262
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/PUT/v2/storage/branch/{branchId}/buckets/{bucketId}/refresh
259
263
  */
260
- const refreshExternalBucketAsync = async ({ bucketId, ...query }, signal) => {
261
- const { data } = await client.put("/v2/storage/buckets/{bucketId}/refresh", {
262
- path: { bucketId },
264
+ const refreshExternalBucketAsync = async ({ branchId, bucketId, ...query }, signal) => {
265
+ const { data } = await client.put("/v2/storage/branch/{branchId}/buckets/{bucketId}/refresh", {
266
+ path: {
267
+ branchId,
268
+ bucketId
269
+ },
263
270
  query
264
271
  }, { signal });
265
272
  return data;
@@ -337,18 +344,24 @@ const createBucketListings = (openApiClient) => {
337
344
  * - `bigquery` is present only for a BigQuery bucket.
338
345
  * - Its `subscribers` are raw `user:`/`group:` principals; decode with `fromBackendSubscribers`.
339
346
  */
340
- const getListing = async (bucketId, signal) => {
347
+ const getListing = async ({ branchId, bucketId }, signal) => {
341
348
  try {
342
- const { data } = await openApiClient.get("/v2/storage/buckets/{bucketId}/listing", { path: { bucketId } }, { signal });
349
+ const { data } = await openApiClient.get("/v2/storage/branch/{branchId}/buckets/{bucketId}/listing", { path: {
350
+ branchId,
351
+ bucketId
352
+ } }, { signal });
343
353
  return data;
344
354
  } catch (error) {
345
355
  if (require_createFetchClient.isApiError(error) && error.response.status === 404) return null;
346
356
  throw error;
347
357
  }
348
358
  };
349
- const createListingAsync = async ({ bucketId, ...input }, signal) => {
350
- const { data } = await openApiClient.post("/v2/storage/buckets/{bucketId}/listing", {
351
- path: { bucketId },
359
+ const createListingAsync = async ({ branchId, bucketId, ...input }, signal) => {
360
+ const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/listing", {
361
+ path: {
362
+ branchId,
363
+ bucketId
364
+ },
352
365
  body: {
353
366
  listingName: input.name,
354
367
  listingDescription: input.description?.trim() || null,
@@ -363,15 +376,21 @@ const createBucketListings = (openApiClient) => {
363
376
  /**
364
377
  * Rejects when `name`, `description` and `subscribers` are all absent; gate on the form's dirty state.
365
378
  */
366
- const updateListingAsync = async ({ bucketId, ...input }, signal) => {
367
- const { data } = await openApiClient.patch("/v2/storage/buckets/{bucketId}/listing", {
368
- path: { bucketId },
379
+ const updateListingAsync = async ({ branchId, bucketId, ...input }, signal) => {
380
+ const { data } = await openApiClient.patch("/v2/storage/branch/{branchId}/buckets/{bucketId}/listing", {
381
+ path: {
382
+ branchId,
383
+ bucketId
384
+ },
369
385
  body: toUpdateListingBody(input)
370
386
  }, { signal });
371
387
  return data;
372
388
  };
373
- const deleteListingAsync = async (bucketId, signal) => {
374
- const { data } = await openApiClient.delete("/v2/storage/buckets/{bucketId}/listing", { path: { bucketId } }, { signal });
389
+ const deleteListingAsync = async ({ branchId, bucketId }, signal) => {
390
+ const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/listing", { path: {
391
+ branchId,
392
+ bucketId
393
+ } }, { signal });
375
394
  return data;
376
395
  };
377
396
  /** Every listing the token can manage. Rows carry `bucketId`, unlike the detail response. */
@@ -393,9 +412,9 @@ const createBucketListings = (openApiClient) => {
393
412
  * Spec mismatches behind the assertions below:
394
413
  * - Job returns: the spec's flat `JobResponse` vs the `Job<T>` union; on delete, 204 shadows the 202.
395
414
  * - List/create responses are really `Bucket[]` / a bucket detail; list `include` is comma-joined.
396
- * - Owner-update body is stubbed; really `{ email } | { id }`.
415
+ * - Update body requires `displayName`; the API accepts any subset.
397
416
  */
398
- const createBuckets = (openApiClient, client) => {
417
+ const createBuckets = (openApiClient) => {
399
418
  const getBuckets = async ({ branchId, ...query }, signal) => {
400
419
  const { data } = await openApiClient.get("/v2/storage/branch/{branchId}/buckets", {
401
420
  path: { branchId },
@@ -422,13 +441,19 @@ const createBuckets = (openApiClient, client) => {
422
441
  }, { signal });
423
442
  return data;
424
443
  };
425
- const createBucket = async (body) => {
426
- const { data } = await openApiClient.post("/v2/storage/buckets", { body });
444
+ const createBucket = async ({ branchId, ...body }) => {
445
+ const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets", {
446
+ path: { branchId },
447
+ body
448
+ });
427
449
  return data;
428
450
  };
429
- const updateBucket = async ({ bucketId, ...body }) => {
430
- const { data } = await client.put(`/v2/storage/buckets/{id}`, {
431
- path: { id: bucketId },
451
+ const updateBucket = async ({ branchId, bucketId, ...body }) => {
452
+ const { data } = await openApiClient.put("/v2/storage/branch/{branchId}/buckets/{bucketId}", {
453
+ path: {
454
+ branchId,
455
+ bucketId
456
+ },
432
457
  body
433
458
  });
434
459
  return data;
@@ -439,19 +464,25 @@ const createBuckets = (openApiClient, client) => {
439
464
  * - Refused on the stacks we test against (`400 storage.buckets.syncDeleteDisabled`); prefer
440
465
  * `deleteBucketAsync`.
441
466
  *
442
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/buckets/{bucketId}
467
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/branch/{branchId}/buckets/{bucketId}
443
468
  */
444
- const deleteBucket = async (id) => {
445
- await openApiClient.delete("/v2/storage/buckets/{bucketId}", { path: { bucketId: id } });
469
+ const deleteBucket = async ({ branchId, bucketId }) => {
470
+ await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}", { path: {
471
+ branchId,
472
+ bucketId
473
+ } });
446
474
  };
447
475
  /**
448
476
  * Deletes a bucket asynchronously and returns a job to poll. Required on GCP stacks.
449
477
  *
450
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/buckets/{bucketId}
478
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/branch/{branchId}/buckets/{bucketId}
451
479
  */
452
- const deleteBucketAsync = async ({ bucketId, ...query }) => {
453
- const { data } = await openApiClient.delete("/v2/storage/buckets/{bucketId}", {
454
- path: { bucketId },
480
+ const deleteBucketAsync = async ({ branchId, bucketId, ...query }) => {
481
+ const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}", {
482
+ path: {
483
+ branchId,
484
+ bucketId
485
+ },
455
486
  query: {
456
487
  async: true,
457
488
  ...query
@@ -477,11 +508,14 @@ const createBuckets = (openApiClient, client) => {
477
508
  /**
478
509
  * Changes the owner of a bucket (by `id` or `email`).
479
510
  *
480
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/buckets/{bucketId}/owner
511
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/branch/{branchId}/buckets/{bucketId}/owner
481
512
  */
482
- const updateBucketOwner = async ({ bucketId, ...body }, signal) => {
483
- await openApiClient.post("/v2/storage/buckets/{bucketId}/owner", {
484
- path: { bucketId },
513
+ const updateBucketOwner = async ({ branchId, bucketId, ...body }, signal) => {
514
+ await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/owner", {
515
+ path: {
516
+ branchId,
517
+ bucketId
518
+ },
485
519
  body
486
520
  }, { signal });
487
521
  };
@@ -530,8 +564,7 @@ const createBuckets = (openApiClient, client) => {
530
564
  /**
531
565
  * Spec mismatches behind the assertions below:
532
566
  * - Job returns: the spec's flat `JobResponse` (or no body) vs the `Job<T>` union.
533
- * - Share/unshare declare `query: never`, but accept `async`.
534
- * - Share-to-projects/users bodies are stubbed; force-unlink `linkedProjectId` is really a string.
567
+ * - Share-to-projects/users bodies are stubbed.
535
568
  * - `sharedBuckets` is not asserted, so it returns the spec's `Record<string, never>[]`.
536
569
  */
537
570
  const createBucketSharing = (openApiClient) => {
@@ -541,13 +574,10 @@ const createBucketSharing = (openApiClient) => {
541
574
  * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization
542
575
  */
543
576
  const shareBucketToOrganizationAsync = async ({ branchId, bucketId }, signal) => {
544
- const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization", {
545
- path: {
546
- branchId,
547
- bucketId
548
- },
549
- query: { async: true }
550
- }, { signal });
577
+ const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization", { path: {
578
+ branchId,
579
+ bucketId
580
+ } }, { signal });
551
581
  return data;
552
582
  };
553
583
  /**
@@ -556,13 +586,10 @@ const createBucketSharing = (openApiClient) => {
556
586
  * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization-project
557
587
  */
558
588
  const shareBucketToOrganizationProjectAsync = async ({ branchId, bucketId }, signal) => {
559
- const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization-project", {
560
- path: {
561
- branchId,
562
- bucketId
563
- },
564
- query: { async: true }
565
- }, { signal });
589
+ const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/share-organization-project", { path: {
590
+ branchId,
591
+ bucketId
592
+ } }, { signal });
566
593
  return data;
567
594
  };
568
595
  /**
@@ -576,7 +603,6 @@ const createBucketSharing = (openApiClient) => {
576
603
  branchId,
577
604
  bucketId
578
605
  },
579
- query: { async: true },
580
606
  body
581
607
  }, { signal });
582
608
  return data;
@@ -592,7 +618,6 @@ const createBucketSharing = (openApiClient) => {
592
618
  branchId,
593
619
  bucketId
594
620
  },
595
- query: { async: true },
596
621
  body
597
622
  }, { signal });
598
623
  return data;
@@ -603,13 +628,10 @@ const createBucketSharing = (openApiClient) => {
603
628
  * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/branch/{branchId}/buckets/{bucketId}/share
604
629
  */
605
630
  const unshareBucketAsync = async ({ branchId, bucketId }, signal) => {
606
- const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/share", {
607
- path: {
608
- branchId,
609
- bucketId
610
- },
611
- query: { async: true }
612
- }, { signal });
631
+ const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/share", { path: {
632
+ branchId,
633
+ bucketId
634
+ } }, { signal });
613
635
  return data;
614
636
  };
615
637
  /**
@@ -618,24 +640,22 @@ const createBucketSharing = (openApiClient) => {
618
640
  * @link https://api.keboola.com/?service=storage#storage/tag/buckets/DELETE/v2/storage/branch/{branchId}/buckets/{bucketId}/links/{linkedProjectId}
619
641
  */
620
642
  const forceUnlinkBucketAsync = async ({ branchId, bucketId, linkedProjectId }, signal) => {
621
- const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/links/{linkedProjectId}", {
622
- path: {
623
- branchId,
624
- bucketId,
625
- linkedProjectId
626
- },
627
- query: { async: true }
628
- }, { signal });
643
+ const { data } = await openApiClient.delete("/v2/storage/branch/{branchId}/buckets/{bucketId}/links/{linkedProjectId}", { path: {
644
+ branchId,
645
+ bucketId,
646
+ linkedProjectId
647
+ } }, { signal });
629
648
  return data;
630
649
  };
631
650
  /**
632
651
  * Links a bucket shared with this project into it. Async — returns a job to poll, whose `results`
633
652
  * is the new bucket.
634
653
  *
635
- * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/buckets
654
+ * @link https://api.keboola.com/?service=storage#storage/tag/buckets/POST/v2/storage/branch/{branchId}/buckets
636
655
  */
637
- const linkBucketAsync = async (body, signal) => {
638
- const { data } = await openApiClient.post("/v2/storage/buckets", {
656
+ const linkBucketAsync = async ({ branchId, ...body }, signal) => {
657
+ const { data } = await openApiClient.post("/v2/storage/branch/{branchId}/buckets", {
658
+ path: { branchId },
639
659
  query: { async: true },
640
660
  body
641
661
  }, { signal });
@@ -931,6 +951,49 @@ const createConfigurationRows = (client) => {
931
951
  };
932
952
  };
933
953
  //#endregion
954
+ //#region src/clients/storage/configurations/batch.ts
955
+ const BATCH_LIMIT = 1e3;
956
+ const inChunks = (items) => Array.from({ length: Math.ceil(items.length / BATCH_LIMIT) }, (_, index) => items.slice(index * BATCH_LIMIT, (index + 1) * BATCH_LIMIT));
957
+ const asError = (reason, fallback) => reason instanceof Error ? reason : new Error(fallback, { cause: reason });
958
+ /**
959
+ * The per-item results one batch job's wait ended with, or why there are none.
960
+ *
961
+ * - A wait that did not finish carries the poll's own error.
962
+ * - A job that failed as a whole carries its `error` and no results.
963
+ */
964
+ const settleBatchJob = (operation, end) => {
965
+ if (end.state === "aborted") return { error: asError(end.reason, `The ${operation} job wait was aborted.`) };
966
+ if (end.state !== "done") return { error: end.error ?? /* @__PURE__ */ new Error(`The ${operation} job ${end.state} after ${end.attempt} attempts.`) };
967
+ const job = end.data;
968
+ if (job.status === "success") return { results: job.results };
969
+ if (job.status === "error") return job.results ? { results: job.results } : { error: new Error(job.error.message, { cause: job.error }) };
970
+ return { error: /* @__PURE__ */ new Error(`The ${operation} job ended as ${job.status}.`) };
971
+ };
972
+ /**
973
+ * Runs a batch as one job per `BATCH_LIMIT` items, in order, merging what each job reports.
974
+ *
975
+ * - Rejects only when the first job cannot be enqueued: nothing has been processed then.
976
+ * - Stops at the first job that reports no per-item results; `error` says why.
977
+ */
978
+ const runInChunks = async (items, runJob, merge, empty) => {
979
+ let results = empty;
980
+ for (const [index, chunk] of inChunks(items).entries()) {
981
+ const settled = await runJob(chunk).catch((reason) => {
982
+ if (index === 0) throw reason;
983
+ return { error: asError(reason, "A batch job could not be enqueued.") };
984
+ });
985
+ if (settled.error) return {
986
+ ...results,
987
+ error: settled.error
988
+ };
989
+ results = merge(results, settled.results);
990
+ }
991
+ return {
992
+ ...results,
993
+ error: null
994
+ };
995
+ };
996
+ //#endregion
934
997
  //#region src/clients/storage/configurations/utils.ts
935
998
  /**
936
999
  * Sends `expectedVersion` as `If-Match`. Storage answers:
@@ -960,7 +1023,7 @@ const parseSyncJobId = (headers) => {
960
1023
  * - `BaseComponentConfig` re-tightens and re-types spec fields, so the shapes never fully overlap.
961
1024
  * - `ComponentConfig<T>` is a conditional over an unresolved `T`, which TS won't convert against.
962
1025
  */
963
- const createConfigurations = (client) => {
1026
+ const createConfigurations = (client, poller) => {
964
1027
  const getConfiguration = async ({ componentId, configId, branchId }, signal) => {
965
1028
  const { data } = await client.get("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}", { path: {
966
1029
  componentId,
@@ -1084,21 +1147,77 @@ const createConfigurations = (client) => {
1084
1147
  } }, { headers: { ...createVersionPrecondition(expectedVersion) } });
1085
1148
  };
1086
1149
  /**
1087
- * Purge configurations across components in one bounded fan-out.
1150
+ * Purge every listed configuration in one request. Async — returns a job to poll.
1088
1151
  *
1089
- * - Stops at the first rejection: a stale `expectedVersion` (412) abandons the rest of the queue,
1090
- * so re-read the trash before retrying.
1152
+ * - At most `BATCH_LIMIT` (1000) items; `purgeConfigurationsAndWait` splits a longer list.
1153
+ * - A job that ends `error` still purged everything in `results.purged`; purging cannot be undone.
1154
+ * - Default branch only, and the token needs `canPurgeTrash`.
1091
1155
  */
1092
- const purgeConfigurations = async ({ branchId, configs }) => {
1093
- await require_concurrent.concurrent({
1094
- items: configs,
1095
- concurrency: 10,
1096
- process: (config) => purgeConfiguration({
1097
- branchId,
1098
- ...config
1099
- })
1100
- });
1156
+ const purgeConfigurationsAsync = async ({ branchId, configs }, signal) => {
1157
+ const { data } = await client.post("/v2/storage/branch/{branchId}/components/configs/batch-purge", {
1158
+ path: { branchId },
1159
+ body: { configurations: configs.map(({ componentId, configId, expectedVersion }) => ({
1160
+ componentId,
1161
+ configurationId: configId,
1162
+ version: expectedVersion
1163
+ })) }
1164
+ }, { signal });
1165
+ return data;
1101
1166
  };
1167
+ /**
1168
+ * Purges every listed configuration, one job per 1000, and waits for each to finish.
1169
+ *
1170
+ * - Resolves with every job's `purged` / `failed` merged, and `error` when it stopped early.
1171
+ * - Rejects only when the first job cannot be enqueued, so a rejection means nothing was purged.
1172
+ */
1173
+ const purgeConfigurationsAndWait = ({ branchId, configs }, options) => runInChunks(configs, async (chunk) => {
1174
+ const end = await poller(await purgeConfigurationsAsync({
1175
+ branchId,
1176
+ configs: chunk
1177
+ }, options?.signal), options).start();
1178
+ return settleBatchJob("purge", end);
1179
+ }, (all, next) => ({
1180
+ purged: [...all.purged, ...next.purged],
1181
+ failed: [...all.failed, ...next.failed]
1182
+ }), {
1183
+ purged: [],
1184
+ failed: []
1185
+ });
1186
+ /**
1187
+ * Restore every listed configuration in one request. Async — returns a job to poll.
1188
+ *
1189
+ * - Items carry no version: restoring is reversible and makes a new version rather than
1190
+ * destroying one. The finished job reports that new version per restored item.
1191
+ * - At most `BATCH_LIMIT` (1000) items; `restoreConfigurationsAndWait` splits a longer list.
1192
+ */
1193
+ const restoreConfigurationsAsync = async ({ branchId, configs }, signal) => {
1194
+ const { data } = await client.post("/v2/storage/branch/{branchId}/components/configs/batch-restore", {
1195
+ path: { branchId },
1196
+ body: { configurations: configs.map(({ componentId, configId }) => ({
1197
+ componentId,
1198
+ configurationId: configId
1199
+ })) }
1200
+ }, { signal });
1201
+ return data;
1202
+ };
1203
+ /**
1204
+ * Restores every listed configuration, one job per 1000, and waits for each to finish.
1205
+ *
1206
+ * - Resolves with every job's `restored` / `failed` merged, and `error` when it stopped early.
1207
+ */
1208
+ const restoreConfigurationsAndWait = ({ branchId, configs }, options) => runInChunks(configs, async (chunk) => {
1209
+ const end = await poller(await restoreConfigurationsAsync({
1210
+ branchId,
1211
+ configs: chunk
1212
+ }, options?.signal), options).start();
1213
+ return settleBatchJob("restore", end);
1214
+ }, (all, next) => ({
1215
+ restored: [...all.restored, ...next.restored],
1216
+ failed: [...all.failed, ...next.failed]
1217
+ }), {
1218
+ restored: [],
1219
+ failed: []
1220
+ });
1102
1221
  const restoreConfiguration = async ({ branchId, componentId, configId }) => {
1103
1222
  const { data } = await client.post("/v2/storage/branch/{branchId}/components/{componentId}/configs/{configurationId}/restore", { path: {
1104
1223
  branchId,
@@ -1157,9 +1276,12 @@ const createConfigurations = (client) => {
1157
1276
  deleteConfiguration,
1158
1277
  deleteConfigurations,
1159
1278
  purgeConfiguration,
1160
- purgeConfigurations,
1279
+ purgeConfigurationsAsync,
1280
+ purgeConfigurationsAndWait,
1161
1281
  getConfigurations,
1162
1282
  restoreConfiguration,
1283
+ restoreConfigurationsAsync,
1284
+ restoreConfigurationsAndWait,
1163
1285
  resetConfigurationToDefault,
1164
1286
  searchComponentConfigurations
1165
1287
  };
@@ -1505,21 +1627,31 @@ const createJobs = (openApiClient) => {
1505
1627
  //#endregion
1506
1628
  //#region src/clients/storage/poller.ts
1507
1629
  const DEFAULT_POLL_INTERVAL = 2e3;
1508
- const createJobPoller = ({ getJob }) => ({ id, operationName }, { interval, maxAttempts, timeout, signal } = {}) => require_jobStatus.poller({
1509
- pollKey: ["storage.job", {
1510
- jobId: id,
1511
- operation: operationName
1512
- }],
1513
- pollFn: ({ pollKey: [, params], signal: pollSignal }) => getJob(params.jobId, pollSignal),
1514
- until: ({ data }) => require_jobStatus.jobStatus.storage.isTerminal(data.status),
1515
- backoff: {
1516
- type: "constant",
1517
- interval: interval ?? DEFAULT_POLL_INTERVAL
1518
- },
1519
- maxAttempts,
1520
- timeout,
1521
- signal
1522
- });
1630
+ const MAX_CONSECUTIVE_POLL_FAILURES = 5;
1631
+ const isTransient = (error) => error instanceof TypeError || require_createFetchClient.isApiError(error) && (error.response.status >= 500 || error.response.status === 429);
1632
+ const createJobPoller = ({ getJob }) => ({ id, operationName }, { interval, maxAttempts, timeout, signal } = {}) => {
1633
+ let failures = 0;
1634
+ return require_jobStatus.poller({
1635
+ pollKey: ["storage.job", {
1636
+ jobId: id,
1637
+ operation: operationName
1638
+ }],
1639
+ pollFn: async ({ pollKey: [, params], signal: pollSignal }) => {
1640
+ const job = await getJob(params.jobId, pollSignal);
1641
+ failures = 0;
1642
+ return job;
1643
+ },
1644
+ isRetryable: (error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_POLL_FAILURES,
1645
+ until: ({ data }) => require_jobStatus.jobStatus.storage.isTerminal(data.status),
1646
+ backoff: {
1647
+ type: "constant",
1648
+ interval: interval ?? DEFAULT_POLL_INTERVAL
1649
+ },
1650
+ maxAttempts,
1651
+ timeout,
1652
+ signal
1653
+ });
1654
+ };
1523
1655
  //#endregion
1524
1656
  //#region src/clients/storage/refreshTokenMiddleware.ts
1525
1657
  const isTokenRefreshEndpoint = (request) => {
@@ -1663,7 +1795,7 @@ const createStats = (client) => {
1663
1795
  };
1664
1796
  //#endregion
1665
1797
  //#region src/clients/storage/tables/tables.ts
1666
- const createTables = (client, genericClient) => {
1798
+ const createTables = (client) => {
1667
1799
  /**
1668
1800
  * Returns every table in the given branch. Filter by bucket client-side: `table.bucket?.id`
1669
1801
  * (needs `include: ['buckets']`) or the `{bucketId}.` prefix of `table.id`.
@@ -1754,13 +1886,14 @@ const createTables = (client, genericClient) => {
1754
1886
  /**
1755
1887
  * Exports a table to a file. Async — returns a job.
1756
1888
  *
1757
- * Unbranched, though a branch-scoped `export-async` exists.
1758
- *
1759
- * @link https://api.keboola.com/?service=storage#storage/tag/tables/POST/v2/storage/tables/{tableId}/export-async
1889
+ * @link https://api.keboola.com/?service=storage#storage/tag/tables/POST/v2/storage/branch/{branchId}/tables/{tableId}/export-async
1760
1890
  */
1761
- const exportAsync = async ({ tableId, ...body }, signal) => {
1762
- const { data } = await client.post("/v2/storage/tables/{tableId}/export-async", {
1763
- path: { tableId },
1891
+ const exportAsync = async ({ branchId, tableId, ...body }, signal) => {
1892
+ const { data } = await client.post("/v2/storage/branch/{branchId}/tables/{tableId}/export-async", {
1893
+ path: {
1894
+ branchId,
1895
+ tableId
1896
+ },
1764
1897
  body
1765
1898
  }, { signal });
1766
1899
  return data;
@@ -1822,15 +1955,16 @@ const createTables = (client, genericClient) => {
1822
1955
  /**
1823
1956
  * Updates a table's display name (synchronous). Use `updateTableDefinition` for typed tables.
1824
1957
  *
1825
- * - Generic client, unbranched: the spec has no path for it; the caller's middleware adds the
1826
- * branch prefix.
1827
1958
  * - The synchronous form is deprecated backend-side; `?async=true` returns a `tableUpdate` job.
1828
1959
  *
1829
- * @link https://api.keboola.com/?service=storage#storage/tag/tables
1960
+ * @link https://api.keboola.com/?service=storage#storage/tag/tables/PUT/v2/storage/branch/{branchId}/tables/{tableId}
1830
1961
  */
1831
- const updateTable = async ({ tableId, ...body }, signal) => {
1832
- const { data } = await genericClient.put("/v2/storage/tables/{id}", {
1833
- path: { id: tableId },
1962
+ const updateTable = async ({ branchId, tableId, ...body }, signal) => {
1963
+ const { data } = await client.put("/v2/storage/branch/{branchId}/tables/{tableId}", {
1964
+ path: {
1965
+ branchId,
1966
+ tableId
1967
+ },
1834
1968
  body
1835
1969
  }, { signal });
1836
1970
  return data;
@@ -1850,15 +1984,19 @@ const createTables = (client, genericClient) => {
1850
1984
  return data;
1851
1985
  };
1852
1986
  /**
1853
- * Creates an alias table in the given bucket. Usually returns the created alias `Table`
1854
- * synchronously; for BigQuery VIEW-persisted aliases the API instead returns an `aliasCreate`
1855
- * storage job, so the response is typed as a union — narrow on `operationName` before use.
1987
+ * Creates an alias table in the given bucket.
1856
1988
  *
1857
- * @link https://api.keboola.com/?service=storage#storage/tag/tables
1989
+ * - Returns the alias `Table` (201), or an `aliasCreate` job (202) when the destination backend
1990
+ * persists alias VIEWs (driver support plus a project feature flag) — narrow on `operationName`.
1991
+ *
1992
+ * @link https://api.keboola.com/?service=storage#storage/tag/tables/POST/v2/storage/branch/{branchId}/buckets/{bucketId}/table-aliases
1858
1993
  */
1859
- const createAliasTable = async ({ bucketId, ...body }, signal) => {
1860
- const { data } = await genericClient.post("/v2/storage/buckets/{bucketId}/table-aliases", {
1861
- path: { bucketId },
1994
+ const createAliasTable = async ({ branchId, bucketId, ...body }, signal) => {
1995
+ const { data } = await client.post("/v2/storage/branch/{branchId}/buckets/{bucketId}/table-aliases", {
1996
+ path: {
1997
+ branchId,
1998
+ bucketId
1999
+ },
1862
2000
  body
1863
2001
  }, { signal });
1864
2002
  return data;
@@ -2229,11 +2367,11 @@ const createStorageClient = ({ baseUrl, auth, middlewares = [], onRefreshToken }
2229
2367
  healthCheck,
2230
2368
  getStackInfo,
2231
2369
  jobs,
2232
- buckets: createBuckets(client, genericClient),
2370
+ buckets: createBuckets(client),
2233
2371
  bucketSharing: createBucketSharing(client),
2234
2372
  bucketListings: createBucketListings(client),
2235
2373
  bucketExternal: createBucketExternal(client),
2236
- tables: createTables(client, genericClient),
2374
+ tables: createTables(client),
2237
2375
  columns: createColumns(client),
2238
2376
  snapshots: createSnapshots(client),
2239
2377
  branches: createBranches(client, poller),
@@ -2246,7 +2384,7 @@ const createStorageClient = ({ baseUrl, auth, middlewares = [], onRefreshToken }
2246
2384
  search: createSearch(client),
2247
2385
  stats: createStats(client),
2248
2386
  components: createComponents(client),
2249
- configurations: createConfigurations(client),
2387
+ configurations: createConfigurations(client, poller),
2250
2388
  configurationRows: createConfigurationRows(client),
2251
2389
  configurationWorkspaces: createConfigurationWorkspaces(client),
2252
2390
  configurationMetadata: createConfigurationMetadata(client),
@@ -2291,4 +2429,4 @@ Object.defineProperty(exports, "toBackendSubscribers", {
2291
2429
  }
2292
2430
  });
2293
2431
 
2294
- //# sourceMappingURL=storage-JinL1y1s.cjs.map
2432
+ //# sourceMappingURL=storage-CXQTTVXl.cjs.map