@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
package/dist/index.cjs CHANGED
@@ -1,54 +1,55 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
3
- const require_project = require("./project-BvFi19K_.cjs");
4
- const require_collect = require("./collect-B5TCNiT1.cjs");
3
+ const require_project = require("./project-CpgplgCr.cjs");
4
+ const require_collectByOffset = require("./collectByOffset-DQsqtmJg.cjs");
5
+ const require_authClient = require("./authClient-DfkKlc-2.cjs");
5
6
  const require_concurrent = require("./concurrent-CdVfR1N5.cjs");
6
7
  const require_dedupe = require("./dedupe-OSnnst2u.cjs");
7
- const require_jobStatus = require("./jobStatus-B0E-MZ9I.cjs");
8
+ const require_transientRetries = require("./transientRetries-DdJfH9QK.cjs");
8
9
  const require_store = require("./store-xS-Cu_VS.cjs");
9
- const require_storage = require("./storage-76Sf_z_H.cjs");
10
+ const require_storage = require("./storage-yovv11k6.cjs");
10
11
  const require_tag = require("./tag-DHS_soa7.cjs");
11
12
  const require_generateUUID = require("./generateUUID-C6qKBPIv.cjs");
12
13
  const require_isPlainObject = require("./isPlainObject-BB3iy87C.cjs");
13
14
  const require_configurations = require("./configurations-D_Rbs0Wl.cjs");
14
15
  const require_UserError = require("./UserError-CSGO1qII.cjs");
15
- const require_createFetchClient = require("./createFetchClient-ClWD4ua3.cjs");
16
- const require_validateConnectionStatus = require("./validateConnectionStatus-DR-0h35y.cjs");
17
- const require_ManagementClientAuthError = require("./ManagementClientAuthError-DHuykEPF.cjs");
18
- const require_QueryJobTimeoutError = require("./QueryJobTimeoutError-CVNPdCWX.cjs");
16
+ const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
17
+ const require_validateConnectionStatus = require("./validateConnectionStatus-BalWEyRk.cjs");
18
+ const require_ManagementSessionMintError = require("./ManagementSessionMintError-Cu9beG7j.cjs");
19
+ const require_QueryJobError = require("./QueryJobError-irGiP5zh.cjs");
20
+ const require_QueueJobError = require("./QueueJobError-6qSEizWo.cjs");
19
21
  const require_SyncActionError = require("./SyncActionError-BG0zwchi.cjs");
20
22
  const require_ValidationError = require("./ValidationError-D65QU0uq.cjs");
21
- const require_createGenericFetchClient = require("./createGenericFetchClient-B81Iezpb.cjs");
22
- const require_import = require("./import-B5DcJGMI.cjs");
23
- const require_authClient = require("./authClient-DZcAR-eW.cjs");
24
- const require_management = require("./management-C5lf9nsU.cjs");
25
- const require_constants = require("./constants-BDGRQqij.cjs");
23
+ const require_createGenericFetchClient = require("./createGenericFetchClient-MOx97wi-.cjs");
24
+ const require_import = require("./import-BahNYv91.cjs");
25
+ const require_management = require("./management-BUGPJ1Bu.cjs");
26
+ const require_constants = require("./constants-a0jswUeK.cjs");
26
27
  const require_storageTable = require("./storageTable-BNOR2FCh.cjs");
27
- const require_kaiMemory = require("./kaiMemory-Cf81ghNd.cjs");
28
+ const require_kaiMemory = require("./kaiMemory-Qch09f-m.cjs");
28
29
  const require_semanticLayer = require("./semanticLayer-7BejcMj_.cjs");
29
- const require_sdk_storage_index = require("./sdk/storage/index.cjs");
30
30
  const require_sdk_vault_index = require("./sdk/vault/index.cjs");
31
31
  const require_ai_index = require("./ai/index.cjs");
32
- const require_appLogs = require("./appLogs-BG9ueGxA.cjs");
32
+ const require_appLogs = require("./appLogs-Cix2KWra.cjs");
33
33
  const require_apps_index = require("./apps/index.cjs");
34
34
  const require_billing_index = require("./billing/index.cjs");
35
35
  const require_chat_index = require("./chat/index.cjs");
36
- const require_dataScience = require("./dataScience-Hhoqoql_.cjs");
36
+ const require_componentsMcp = require("./componentsMcp-pG-PcQrg.cjs");
37
+ const require_dataScience = require("./dataScience-BjS1p8WO.cjs");
37
38
  const require_editor_index = require("./editor/index.cjs");
38
39
  const require_encryption_index = require("./encryption/index.cjs");
39
- const require_kaiAgent = require("./kaiAgent-BhcUsBDk.cjs");
40
- const require_metastore = require("./metastore-YPHUK3jJ.cjs");
40
+ const require_kaiAgent = require("./kaiAgent-BmfUG8bB.cjs");
41
+ const require_metastore = require("./metastore-BXHg33ku.cjs");
41
42
  const require_notifications_index = require("./notifications/index.cjs");
42
- const require_oauth = require("./oauth-DyUwTqHJ.cjs");
43
+ const require_oauth = require("./oauth-DKZPuUlt.cjs");
43
44
  const require_omnisearch_index = require("./omnisearch/index.cjs");
44
- const require_queryService = require("./queryService-RlNYw7LG.cjs");
45
- const require_queue = require("./queue-BrgRdtOr.cjs");
45
+ const require_queryService = require("./queryService-CzK53q94.cjs");
46
+ const require_queue = require("./queue-BJvDWriM.cjs");
46
47
  const require_scheduler_index = require("./scheduler/index.cjs");
47
48
  const require_stream_index = require("./stream/index.cjs");
48
- const require_syncActions = require("./syncActions-DlNPhZY4.cjs");
49
+ const require_syncActions = require("./syncActions-C1rE4R3f.cjs");
49
50
  const require_telemetry_index = require("./telemetry/index.cjs");
50
51
  const require_vault_index = require("./vault/index.cjs");
51
- const require_middleware = require("./middleware-D_p5TctO.cjs");
52
+ const require_middleware = require("./middleware-DU_5pFDW.cjs");
52
53
  const require_sdk_queryService_index = require("./sdk/queryService/index.cjs");
53
54
  let zod = require("zod");
54
55
  zod = require_rolldown_runtime.__toESM(zod, 1);
@@ -211,11 +212,11 @@ const createDerivedAsyncStore = ({ source, dependsOn, build, keyEquals = shallow
211
212
  //#endregion
212
213
  //#region src/utils/async/poll/registry.ts
213
214
  const DEFAULT_LIMIT = 50;
214
- const isFinished = ({ snapshot }) => snapshot.state !== "idle" && snapshot.state !== "polling";
215
+ const isFinished = ({ snapshot }) => snapshot.state !== "idle" && snapshot.state !== "requesting" && snapshot.state !== "polling";
215
216
  const createPollRegistry = ({ limit = DEFAULT_LIMIT } = {}) => {
216
217
  const entries = require_store.createStore([]);
217
218
  const unsubscribes = /* @__PURE__ */ new Map();
218
- const maxEntries = require_jobStatus.clamp(require_jobStatus.finiteOr(limit, DEFAULT_LIMIT), 1);
219
+ const maxEntries = require_transientRetries.clamp(require_transientRetries.finiteOr(limit, DEFAULT_LIMIT), 1);
219
220
  let nextKey = 1;
220
221
  const forget = (key) => {
221
222
  unsubscribes.get(key)?.();
@@ -248,7 +249,7 @@ const createPollRegistry = ({ limit = DEFAULT_LIMIT } = {}) => {
248
249
  entries.set(trim([entry, ...entries.get()]));
249
250
  };
250
251
  const collect = () => {
251
- require_jobStatus.emitter.subscribe(register);
252
+ require_transientRetries.emitter.subscribe(register);
252
253
  };
253
254
  return {
254
255
  list: entries.get,
@@ -430,8 +431,7 @@ const KeboolaErrorType = {
430
431
  NotBearer: "not-bearer",
431
432
  NotReady: "not-ready",
432
433
  InvalidBuildTransition: "invalid-build-transition",
433
- StackActive: "stack-active",
434
- CredentialKindMismatch: "credential-kind-mismatch"
434
+ StackActive: "stack-active"
435
435
  };
436
436
  const MESSAGES = {
437
437
  [KeboolaErrorType.Unconfigured]: "The session is not configured — set a baseUrl first.",
@@ -444,8 +444,7 @@ const MESSAGES = {
444
444
  [KeboolaErrorType.NotBearer]: "This operation requires a bearer (OAuth) session.",
445
445
  [KeboolaErrorType.NotReady]: "The client is not ready — authenticate the storage realm first.",
446
446
  [KeboolaErrorType.InvalidBuildTransition]: "Invalid storage build transition — the build goes idle → initializing → ready | failed.",
447
- [KeboolaErrorType.StackActive]: "The active stack cannot be closed — select another first.",
448
- [KeboolaErrorType.CredentialKindMismatch]: "This client renews the other credential kind — log in the way its `credentials` mode expects."
447
+ [KeboolaErrorType.StackActive]: "The active stack cannot be closed — select another first."
449
448
  };
450
449
  var KeboolaError = class KeboolaError extends Error {
451
450
  type;
@@ -606,10 +605,12 @@ const createDefaultBranch = ({ devBranches }) => {
606
605
  };
607
606
  //#endregion
608
607
  //#region src/domain/stack.ts
608
+ const isServiceId = (id) => Object.values(require_constants.ServiceId).includes(id);
609
609
  const SERVICE_URL_OVERRIDES = { "kai-assistant": (url) => `${url}/api` };
610
610
  const createStack = ({ stackInfo, clientServiceUrls }) => {
611
611
  const { services, components, features, ...infoRest } = stackInfo;
612
612
  const serviceMap = new Map(services.map((service) => {
613
+ if (!isServiceId(service.id)) return [service.id, service.url];
613
614
  const devOverride = clientServiceUrls?.[service.id]?.(service.url);
614
615
  const prodOverride = SERVICE_URL_OVERRIDES[service.id]?.(service.url);
615
616
  const url = devOverride ?? prodOverride ?? service.url;
@@ -733,7 +734,6 @@ const createSdk = ({ storage, services, context }) => ({
733
734
  tag: require_tag.createTagSdk({ metastoreClient: services.metastore }),
734
735
  semanticLayer: require_semanticLayer.createSemanticLayerSdk({ metastoreClient: services.metastore }),
735
736
  kaiMemory: require_kaiMemory.createKaiMemorySdk({ metastoreClient: services.metastore }),
736
- storage: require_sdk_storage_index.createStorageSdk({ storageClient: storage }),
737
737
  vault: require_sdk_vault_index.createVaultSdk({
738
738
  vaultClient: services.vault,
739
739
  encryptionClient: services.encryption
@@ -860,6 +860,14 @@ const createServiceClients = ({ baseUrl, auth, getServiceBaseUrl, middlewareFor,
860
860
  middlewares: middlewareFor("kaiAgent", [attachTokenMiddleware]),
861
861
  auth
862
862
  })
863
+ }).add({
864
+ serviceId: "components-mcp",
865
+ clientName: "componentsMcp",
866
+ clientFn: (serviceBaseUrl) => require_componentsMcp.createComponentsMcpClient({
867
+ baseUrl: serviceBaseUrl,
868
+ middlewares: middlewareFor("componentsMcp", [attachTokenMiddleware]),
869
+ auth
870
+ })
863
871
  }).add({
864
872
  serviceId: "oauth",
865
873
  clientName: "oauth",
@@ -1098,7 +1106,12 @@ const renew = async (client, grant) => {
1098
1106
  //#region src/keboola/bearer/credentials/credentials.ts
1099
1107
  const DEFAULT_REFRESH_THRESHOLD = .9;
1100
1108
  const signInEnded = () => new KeboolaError(KeboolaErrorType.SignInEnded);
1101
- const createCredentials = ({ state, persistor, middlewares, mode = "token", refreshThreshold = DEFAULT_REFRESH_THRESHOLD, onSignedOut }) => {
1109
+ const toRestoreStatus = (outcome) => {
1110
+ if (outcome === void 0 || outcome === "skipped") return "empty";
1111
+ if (outcome === "refused") return "expired";
1112
+ return outcome;
1113
+ };
1114
+ const createCredentials = ({ state, persistor, middlewares, refreshThreshold = DEFAULT_REFRESH_THRESHOLD, onSignedOut, onExpired }) => {
1102
1115
  const rotationMap = /* @__PURE__ */ new Map();
1103
1116
  const generations = /* @__PURE__ */ new Map();
1104
1117
  const generationOf = (baseUrl) => generations.get(baseUrl) ?? 0;
@@ -1107,10 +1120,10 @@ const createCredentials = ({ state, persistor, middlewares, mode = "token", refr
1107
1120
  baseUrl,
1108
1121
  middlewares
1109
1122
  });
1110
- const epochBefore = require_jobStatus.Result.unwrap(state.auth.getEpoch(baseUrl));
1123
+ const epochBefore = require_transientRetries.Result.unwrap(state.auth.getEpoch(baseUrl));
1111
1124
  const generationBefore = generationOf(baseUrl);
1112
- const refreshed = await require_jobStatus.Result.tryCatchAsync(() => renew(client, grant));
1113
- return require_jobStatus.Result.unwrapOr(state.auth.getEpoch(baseUrl), -1) === epochBefore && generationOf(baseUrl) === generationBefore ? refreshed : require_jobStatus.Result.failure(signInEnded());
1125
+ const refreshed = await require_transientRetries.Result.tryCatchAsync(() => renew(client, grant));
1126
+ return require_transientRetries.Result.unwrapOr(state.auth.getEpoch(baseUrl), -1) === epochBefore && generationOf(baseUrl) === generationBefore ? refreshed : require_transientRetries.Result.failure(signInEnded());
1114
1127
  };
1115
1128
  /**
1116
1129
  * A stack's teardown, from the credential's side.
@@ -1125,18 +1138,19 @@ const createCredentials = ({ state, persistor, middlewares, mode = "token", refr
1125
1138
  /**
1126
1139
  * The rotation, and the one place a credential is declared dead.
1127
1140
  *
1141
+ * - Renews by the credential's own kind: the refresh token, or the session id with the cookie.
1128
1142
  * - A refused refresh token or session is unambiguous.
1129
1143
  * - The triggering 401 is not (an unreachable project answers the same), so never sign out on a replay.
1130
1144
  */
1131
1145
  const rotateOnce = async (baseUrl) => {
1132
- const credential = state.auth.requireCredentialOf(baseUrl, mode);
1146
+ const credential = state.auth.requireCredential(baseUrl);
1133
1147
  if (!credential.success) return credential;
1134
1148
  const refreshed = await refresh(baseUrl, renewalGrant(credential.data));
1135
1149
  if (!refreshed.success) {
1136
1150
  if (require_middleware.isUnauthorized(refreshed.error)) expire(baseUrl);
1137
1151
  return refreshed;
1138
1152
  }
1139
- return require_jobStatus.Result.map(state.auth.applyRefresh(baseUrl, refreshed.data), () => refreshed.data.accessToken);
1153
+ return require_transientRetries.Result.map(state.auth.applyRefresh(baseUrl, refreshed.data), () => refreshed.data.accessToken);
1140
1154
  };
1141
1155
  const rotate = (baseUrl) => ensure(rotationMap, baseUrl, () => require_dedupe.dedupe(() => rotateOnce(baseUrl)))();
1142
1156
  const restoreStack = async (baseUrl, grant) => {
@@ -1161,31 +1175,26 @@ const createCredentials = ({ state, persistor, middlewares, mode = "token", refr
1161
1175
  * when persistence may start.
1162
1176
  */
1163
1177
  const restore = async () => {
1164
- const hydrated = persistor.hydrate();
1165
- const stacks = hydrated.stacks.map((stack) => stack.credential && stack.credential.type !== "static" && stack.credential.type !== mode ? {
1166
- ...stack,
1167
- credential: null
1168
- } : stack);
1169
- const { current } = hydrated;
1178
+ const { stacks, current } = persistor.hydrate();
1170
1179
  const scoped = stacks.find(({ baseUrl }) => baseUrl === current?.baseUrl);
1171
1180
  const restored = stacks.map(async ({ baseUrl, credential, projects }) => {
1172
1181
  state.stacks.ensure(baseUrl);
1173
1182
  if (!credential) return "unreachable";
1174
- if (require_jobStatus.Result.unwrapOr(state.auth.getEpoch(baseUrl), 0) > 0) return "skipped";
1175
- const outcome = credential.type === "static" ? state.auth.authenticate(baseUrl, credential).success ? "restored" : "refused" : await restoreStack(baseUrl, credential);
1183
+ if (require_transientRetries.Result.unwrapOr(state.auth.getEpoch(baseUrl), 0) > 0) return "skipped";
1184
+ const outcome = await restoreStack(baseUrl, credential);
1176
1185
  if (outcome === "restored") restoreProjects(baseUrl, projects);
1177
1186
  return outcome;
1178
1187
  });
1179
1188
  const results = await Promise.all(restored);
1180
- const outcome = scoped?.credential ? results[stacks.indexOf(scoped)] : void 0;
1189
+ const scopedOutcome = scoped?.credential ? results[stacks.indexOf(scoped)] : void 0;
1181
1190
  return {
1182
1191
  lastActive: current,
1183
- status: outcome === void 0 || outcome === "skipped" ? "empty" : outcome === "restored" ? "restored" : outcome === "unreachable" ? "unreachable" : "expired"
1192
+ status: toRestoreStatus(scopedOutcome)
1184
1193
  };
1185
1194
  };
1186
1195
  const isStale = (baseUrl) => {
1187
- const ageing = require_jobStatus.Result.map(state.auth.requireCredentialOf(baseUrl, mode), ({ issuedAt, expiresIn }) => Date.now() >= issuedAt + expiresIn * 1e3 * refreshThreshold);
1188
- return require_jobStatus.Result.unwrapOr(ageing, false);
1196
+ const ageing = require_transientRetries.Result.map(state.auth.requireCredential(baseUrl), ({ issuedAt, expiresIn }) => Date.now() >= issuedAt + expiresIn * 1e3 * refreshThreshold);
1197
+ return require_transientRetries.Result.unwrapOr(ageing, false);
1189
1198
  };
1190
1199
  const signOut = (baseUrl) => {
1191
1200
  rotationMap.delete(baseUrl);
@@ -1194,14 +1203,18 @@ const createCredentials = ({ state, persistor, middlewares, mode = "token", refr
1194
1203
  return signedOut;
1195
1204
  };
1196
1205
  const expire = (baseUrl) => {
1197
- if (state.auth.notifyExpired(baseUrl)) signOut(baseUrl);
1206
+ if (!state.auth.notifyExpired(baseUrl)) return;
1207
+ signOut(baseUrl);
1208
+ onExpired?.(baseUrl);
1198
1209
  };
1199
- const canRefresh = (baseUrl) => state.auth.requireCredentialOf(baseUrl, mode).success;
1200
1210
  const renewIfStale = async (baseUrl) => {
1201
1211
  if (isStale(baseUrl)) await rotate(baseUrl);
1202
1212
  };
1203
1213
  const middleware = (baseUrl) => require_middleware.createBearerAuthMiddleware({ getAccessToken: async ({ forceRefresh = false } = {}) => {
1204
- if (forceRefresh) return canRefresh(baseUrl) ? require_jobStatus.Result.unwrap(await rotate(baseUrl)) : null;
1214
+ if (forceRefresh) {
1215
+ if (!state.auth.requireCredential(baseUrl).success) return null;
1216
+ return require_transientRetries.Result.unwrap(await rotate(baseUrl));
1217
+ }
1205
1218
  await renewIfStale(baseUrl);
1206
1219
  return state.auth.getAccessToken(baseUrl);
1207
1220
  } });
@@ -1232,10 +1245,10 @@ const authenticatedAuth = (credential) => ({
1232
1245
  status: "authenticated",
1233
1246
  credential
1234
1247
  });
1235
- const bearerCredential = (input) => input.type === "static" ? input : {
1248
+ const bearerCredential = (input) => ({
1236
1249
  ...input,
1237
1250
  issuedAt: Date.now()
1238
- };
1251
+ });
1239
1252
  const expiredCredential = (credential) => ({
1240
1253
  ...credential,
1241
1254
  issuedAt: Date.now() - credential.expiresIn * 1e3
@@ -1294,12 +1307,10 @@ const Errors = {
1294
1307
  notReady: () => new KeboolaError(KeboolaErrorType.NotReady),
1295
1308
  alreadyRestoring: (baseUrl) => /* @__PURE__ */ new Error(`Stack "${baseUrl}" is already being restored`),
1296
1309
  notRestoring: (baseUrl) => /* @__PURE__ */ new Error(`Stack "${baseUrl}" is not being restored`),
1297
- unexpectedCredentialKind: (baseUrl, kind) => /* @__PURE__ */ new Error(`Stack "${baseUrl}" holds a ${kind} credential`),
1298
- notRotatingCredential: (baseUrl) => /* @__PURE__ */ new Error(`Stack "${baseUrl}" holds a static credential`),
1299
1310
  credentialKindChanged: (from, to) => /* @__PURE__ */ new Error(`A ${from} credential cannot become ${to}`),
1300
1311
  missingProject: (id) => /* @__PURE__ */ new Error(`No project "${id}"`)
1301
1312
  };
1302
- const authenticated = (auth) => auth.status === "authenticated" ? require_jobStatus.Result.success(auth.credential) : require_jobStatus.Result.failure(Errors.notAuthenticated());
1313
+ const authenticated = (auth) => auth.status === "authenticated" ? require_transientRetries.Result.success(auth.credential) : require_transientRetries.Result.failure(Errors.notAuthenticated());
1303
1314
  //#endregion
1304
1315
  //#region src/keboola/bearer/state/auth.ts
1305
1316
  /**
@@ -1325,20 +1336,18 @@ const createExpiryLatch = () => {
1325
1336
  * sign-in is this" — what an in-flight exchange compares itself against.
1326
1337
  */
1327
1338
  const createAuth = ({ stacks, projects, expiry }) => {
1328
- const requireUnauthenticated = (baseUrl) => require_jobStatus.Result.andThen(stacks.get(baseUrl), (stack) => stack.auth.status === "authenticated" ? require_jobStatus.Result.failure(Errors.alreadyAuthenticated()) : require_jobStatus.Result.success(stack));
1329
- const requireAnonymous = (baseUrl) => require_jobStatus.Result.andThen(requireUnauthenticated(baseUrl), (stack) => stack.auth.status === "restoring" ? require_jobStatus.Result.failure(Errors.alreadyRestoring(baseUrl)) : require_jobStatus.Result.success(stack));
1330
- const requireRestoring = (baseUrl) => require_jobStatus.Result.andThen(stacks.get(baseUrl), (stack) => stack.auth.status === "restoring" ? require_jobStatus.Result.success(stack) : require_jobStatus.Result.failure(Errors.notRestoring(baseUrl)));
1331
- const requireRotatingCredential = (baseUrl) => require_jobStatus.Result.andThen(stacks.requireCredential(baseUrl), (credential) => credential.type === "static" ? require_jobStatus.Result.failure(Errors.notRotatingCredential(baseUrl)) : require_jobStatus.Result.success(credential));
1332
- const requireCredentialOf = (baseUrl, mode) => require_jobStatus.Result.andThen(requireRotatingCredential(baseUrl), (credential) => credential.type === mode ? require_jobStatus.Result.success(credential) : require_jobStatus.Result.failure(Errors.unexpectedCredentialKind(baseUrl, credential.type)));
1333
- const startRestore = (baseUrl) => require_jobStatus.Result.map(requireAnonymous(baseUrl), (stack) => stacks.set({
1339
+ const requireUnauthenticated = (baseUrl) => require_transientRetries.Result.andThen(stacks.get(baseUrl), (stack) => stack.auth.status === "authenticated" ? require_transientRetries.Result.failure(Errors.alreadyAuthenticated()) : require_transientRetries.Result.success(stack));
1340
+ const requireAnonymous = (baseUrl) => require_transientRetries.Result.andThen(requireUnauthenticated(baseUrl), (stack) => stack.auth.status === "restoring" ? require_transientRetries.Result.failure(Errors.alreadyRestoring(baseUrl)) : require_transientRetries.Result.success(stack));
1341
+ const requireRestoring = (baseUrl) => require_transientRetries.Result.andThen(stacks.get(baseUrl), (stack) => stack.auth.status === "restoring" ? require_transientRetries.Result.success(stack) : require_transientRetries.Result.failure(Errors.notRestoring(baseUrl)));
1342
+ const startRestore = (baseUrl) => require_transientRetries.Result.map(requireAnonymous(baseUrl), (stack) => stacks.set({
1334
1343
  ...stack,
1335
1344
  auth: Entry.restoringAuth()
1336
1345
  }));
1337
- const cancelRestore = (baseUrl) => require_jobStatus.Result.map(requireRestoring(baseUrl), (stack) => stacks.set({
1346
+ const cancelRestore = (baseUrl) => require_transientRetries.Result.map(requireRestoring(baseUrl), (stack) => stacks.set({
1338
1347
  ...stack,
1339
1348
  auth: Entry.anonymousAuth()
1340
1349
  }));
1341
- const authenticate = (baseUrl, input) => require_jobStatus.Result.map(requireUnauthenticated(baseUrl), (stack) => {
1350
+ const authenticate = (baseUrl, input) => require_transientRetries.Result.map(requireUnauthenticated(baseUrl), (stack) => {
1342
1351
  expiry.arm(baseUrl);
1343
1352
  return stacks.set({
1344
1353
  ...stack,
@@ -1346,15 +1355,15 @@ const createAuth = ({ stacks, projects, expiry }) => {
1346
1355
  auth: Entry.authenticatedAuth(Entry.bearerCredential(input))
1347
1356
  });
1348
1357
  });
1349
- const applyRefresh = (baseUrl, input) => require_jobStatus.Result.andThen(requireRotatingCredential(baseUrl), (credential) => credential.type !== input.type ? require_jobStatus.Result.failure(Errors.credentialKindChanged(credential.type, input.type)) : require_jobStatus.Result.map(stacks.get(baseUrl), (stack) => stacks.set({
1358
+ const applyRefresh = (baseUrl, input) => require_transientRetries.Result.andThen(stacks.requireCredential(baseUrl), (credential) => credential.type !== input.type ? require_transientRetries.Result.failure(Errors.credentialKindChanged(credential.type, input.type)) : require_transientRetries.Result.map(stacks.get(baseUrl), (stack) => stacks.set({
1350
1359
  ...stack,
1351
1360
  auth: Entry.authenticatedAuth(Entry.bearerCredential(input))
1352
1361
  })));
1353
- const forceExpire = (baseUrl) => require_jobStatus.Result.andThen(requireRotatingCredential(baseUrl), (credential) => require_jobStatus.Result.map(stacks.get(baseUrl), (stack) => stacks.set({
1362
+ const forceExpire = (baseUrl) => require_transientRetries.Result.andThen(stacks.requireCredential(baseUrl), (credential) => require_transientRetries.Result.map(stacks.get(baseUrl), (stack) => stacks.set({
1354
1363
  ...stack,
1355
1364
  auth: Entry.authenticatedAuth(Entry.expiredCredential(credential))
1356
1365
  })));
1357
- const signOut = (baseUrl) => require_jobStatus.Result.map(stacks.get(baseUrl), (stack) => {
1366
+ const signOut = (baseUrl) => require_transientRetries.Result.map(stacks.get(baseUrl), (stack) => {
1358
1367
  projects.closeAll(baseUrl);
1359
1368
  return stacks.set({
1360
1369
  ...stack,
@@ -1362,8 +1371,8 @@ const createAuth = ({ stacks, projects, expiry }) => {
1362
1371
  auth: Entry.anonymousAuth()
1363
1372
  });
1364
1373
  });
1365
- const getEpoch = (baseUrl) => require_jobStatus.Result.map(stacks.get(baseUrl), (stack) => stack.epoch);
1366
- const getAccessToken = (baseUrl) => require_jobStatus.Result.unwrapOr(require_jobStatus.Result.map(stacks.requireCredential(baseUrl), ({ accessToken }) => accessToken), null);
1374
+ const getEpoch = (baseUrl) => require_transientRetries.Result.map(stacks.get(baseUrl), (stack) => stack.epoch);
1375
+ const getAccessToken = (baseUrl) => require_transientRetries.Result.unwrapOr(require_transientRetries.Result.map(stacks.requireCredential(baseUrl), ({ accessToken }) => accessToken), null);
1367
1376
  return {
1368
1377
  startRestore,
1369
1378
  cancelRestore,
@@ -1373,8 +1382,6 @@ const createAuth = ({ stacks, projects, expiry }) => {
1373
1382
  signOut,
1374
1383
  notifyExpired: expiry.report,
1375
1384
  requireCredential: stacks.requireCredential,
1376
- requireRotatingCredential,
1377
- requireCredentialOf,
1378
1385
  getEpoch,
1379
1386
  getAccessToken
1380
1387
  };
@@ -1386,7 +1393,7 @@ const createProjects = ({ store, stacks }) => {
1386
1393
  const has = (id) => id in store.get().projects;
1387
1394
  const get = (id) => {
1388
1395
  const project = store.get().projects[id];
1389
- return project ? require_jobStatus.Result.success(project) : require_jobStatus.Result.failure(Errors.missingProject(id));
1396
+ return project ? require_transientRetries.Result.success(project) : require_transientRetries.Result.failure(Errors.missingProject(id));
1390
1397
  };
1391
1398
  const list = (baseUrl) => Object.values(store.get().projects).filter((project) => project.baseUrl === baseUrl);
1392
1399
  /** Every open project with this id, whatever stack it sits on — a project number is not unique. */
@@ -1402,7 +1409,7 @@ const createProjects = ({ store, stacks }) => {
1402
1409
  });
1403
1410
  return project;
1404
1411
  };
1405
- const update = (id, updater) => require_jobStatus.Result.map(get(id), (project) => set(updater(project)));
1412
+ const update = (id, updater) => require_transientRetries.Result.map(get(id), (project) => set(updater(project)));
1406
1413
  const removeMany = (ids, nextActive) => {
1407
1414
  const state = store.get();
1408
1415
  const projects = { ...state.projects };
@@ -1413,13 +1420,13 @@ const createProjects = ({ store, stacks }) => {
1413
1420
  projects
1414
1421
  });
1415
1422
  };
1416
- const requireCredential = (id) => require_jobStatus.Result.andThen(get(id), (project) => stacks.requireCredential(project.baseUrl));
1423
+ const requireCredential = (id) => require_transientRetries.Result.andThen(get(id), (project) => stacks.requireCredential(project.baseUrl));
1417
1424
  const open = (baseUrl, projectId) => {
1418
1425
  const id = Entry.projectEntryId(baseUrl, projectId);
1419
1426
  if (has(id)) return get(id);
1420
- return require_jobStatus.Result.map(stacks.requireCredential(baseUrl), () => set(Entry.project(baseUrl, projectId)));
1427
+ return require_transientRetries.Result.map(stacks.requireCredential(baseUrl), () => set(Entry.project(baseUrl, projectId)));
1421
1428
  };
1422
- const close = (id) => require_jobStatus.Result.tap(get(id), ({ baseUrl, projectId }) => {
1429
+ const close = (id) => require_transientRetries.Result.tap(get(id), ({ baseUrl, projectId }) => {
1423
1430
  const { active } = store.get();
1424
1431
  const isScoped = active.baseUrl === baseUrl && active.projectId === projectId;
1425
1432
  removeMany([id], isScoped ? Entry.stackAddress(baseUrl) : active);
@@ -1487,25 +1494,25 @@ const createScope = ({ store, stacks, projects }) => {
1487
1494
  return location;
1488
1495
  };
1489
1496
  const getActiveStack = () => getActive().stack;
1490
- const activateStack = (baseUrl) => require_jobStatus.Result.map(stacks.get(baseUrl), (stack) => {
1497
+ const activateStack = (baseUrl) => require_transientRetries.Result.map(stacks.get(baseUrl), (stack) => {
1491
1498
  const next = Entry.stackAddress(stack.baseUrl);
1492
1499
  set(next);
1493
1500
  return next;
1494
1501
  });
1495
- const activateProject = (baseUrl, projectId) => require_jobStatus.Result.map(projects.requireCredential(Entry.projectEntryId(baseUrl, projectId)), () => {
1502
+ const activateProject = (baseUrl, projectId) => require_transientRetries.Result.map(projects.requireCredential(Entry.projectEntryId(baseUrl, projectId)), () => {
1496
1503
  const next = Entry.projectAddress(baseUrl, projectId);
1497
1504
  set(next);
1498
1505
  return next;
1499
1506
  });
1500
1507
  const selectStack = (baseUrl) => {
1501
1508
  const stack = stacks.ensure(baseUrl);
1502
- return require_jobStatus.Result.map(activateStack(stack.baseUrl), () => stack);
1509
+ return require_transientRetries.Result.map(activateStack(stack.baseUrl), () => stack);
1503
1510
  };
1504
1511
  const selectProject = (projectId) => {
1505
1512
  const { baseUrl } = getActiveStack();
1506
1513
  const project = projects.open(baseUrl, projectId);
1507
1514
  if (!project.success) return project;
1508
- return require_jobStatus.Result.map(activateProject(baseUrl, projectId), () => project.data);
1515
+ return require_transientRetries.Result.map(activateProject(baseUrl, projectId), () => project.data);
1509
1516
  };
1510
1517
  const deactivate = () => {
1511
1518
  const active = get();
@@ -1514,7 +1521,7 @@ const createScope = ({ store, stacks, projects }) => {
1514
1521
  };
1515
1522
  const requireActiveProject = () => {
1516
1523
  const { project } = getActive();
1517
- return project ? require_jobStatus.Result.success(project) : require_jobStatus.Result.failure(Errors.notReady());
1524
+ return project ? require_transientRetries.Result.success(project) : require_transientRetries.Result.failure(Errors.notReady());
1518
1525
  };
1519
1526
  return {
1520
1527
  get,
@@ -1535,7 +1542,7 @@ const createStacks = ({ store, forgetExpiry }) => {
1535
1542
  const has = (baseUrl) => baseUrl in store.get().stacks;
1536
1543
  const get = (baseUrl) => {
1537
1544
  const stack = store.get().stacks[baseUrl];
1538
- return stack ? require_jobStatus.Result.success(stack) : require_jobStatus.Result.failure(Errors.unconfigured());
1545
+ return stack ? require_transientRetries.Result.success(stack) : require_transientRetries.Result.failure(Errors.unconfigured());
1539
1546
  };
1540
1547
  const list = () => Object.values(store.get().stacks);
1541
1548
  const set = (stack) => {
@@ -1549,8 +1556,8 @@ const createStacks = ({ store, forgetExpiry }) => {
1549
1556
  });
1550
1557
  return stack;
1551
1558
  };
1552
- const update = (baseUrl, updater) => require_jobStatus.Result.map(get(baseUrl), (stack) => set(updater(stack)));
1553
- const requireCredential = (baseUrl) => require_jobStatus.Result.andThen(get(baseUrl), (stack) => authenticated(stack.auth));
1559
+ const update = (baseUrl, updater) => require_transientRetries.Result.map(get(baseUrl), (stack) => set(updater(stack)));
1560
+ const requireCredential = (baseUrl) => require_transientRetries.Result.andThen(get(baseUrl), (stack) => authenticated(stack.auth));
1554
1561
  const ensure = (baseUrl) => {
1555
1562
  const existing = get(baseUrl);
1556
1563
  if (existing.success) return existing.data;
@@ -1560,7 +1567,7 @@ const createStacks = ({ store, forgetExpiry }) => {
1560
1567
  const stack = get(baseUrl);
1561
1568
  if (!stack.success) return stack;
1562
1569
  const state = store.get();
1563
- if (state.active.baseUrl === baseUrl) return require_jobStatus.Result.failure(Errors.stackActive());
1570
+ if (state.active.baseUrl === baseUrl) return require_transientRetries.Result.failure(Errors.stackActive());
1564
1571
  const stacks = { ...state.stacks };
1565
1572
  delete stacks[baseUrl];
1566
1573
  const projects = Object.fromEntries(Object.entries(state.projects).filter(([, project]) => project.baseUrl !== baseUrl));
@@ -1946,24 +1953,16 @@ const SESSION_STORAGE_KEY = "keboola:session";
1946
1953
  *
1947
1954
  * - `token`: the refresh token. It rotates, is single-use and is server-revocable, so a leaked
1948
1955
  * snapshot has limited and revocable value. The access token is never written.
1949
- * - `static`: the token itself — a long-lived PAT the user pasted, which nothing can re-mint.
1950
1956
  * - `cookie`: the session id. The session cookie is the durable half and the browser keeps it;
1951
1957
  * the id alone renews nothing.
1952
1958
  */
1953
- const persistedCredentialSchema = zod.discriminatedUnion("type", [
1954
- zod.object({
1955
- type: zod.literal("token"),
1956
- refreshToken: zod.string()
1957
- }),
1958
- zod.object({
1959
- type: zod.literal("cookie"),
1960
- sessionId: zod.string()
1961
- }),
1962
- zod.object({
1963
- type: zod.literal("static"),
1964
- accessToken: zod.string()
1965
- })
1966
- ]);
1959
+ const persistedCredentialSchema = zod.discriminatedUnion("type", [zod.object({
1960
+ type: zod.literal("token"),
1961
+ refreshToken: zod.string()
1962
+ }), zod.object({
1963
+ type: zod.literal("cookie"),
1964
+ sessionId: zod.string()
1965
+ })]);
1967
1966
  /** A record per project rather than a bare id, so a project can grow a field without a migration. */
1968
1967
  const persistedProjectSchema = zod.object({ projectId: zod.number() });
1969
1968
  const persistedSessionSchema = zod.object({
@@ -1973,7 +1972,7 @@ const persistedSessionSchema = zod.object({
1973
1972
  }).nullable(),
1974
1973
  stacks: zod.array(zod.object({
1975
1974
  baseUrl: zod.string(),
1976
- credential: persistedCredentialSchema.nullable(),
1975
+ credential: persistedCredentialSchema.nullable().catch(null),
1977
1976
  projects: zod.array(persistedProjectSchema)
1978
1977
  }))
1979
1978
  });
@@ -1984,18 +1983,13 @@ const EMPTY_PERSISTED_SESSION = {
1984
1983
  const durableCredential = (stack) => {
1985
1984
  if (stack.auth.status !== "authenticated") return null;
1986
1985
  const { credential } = stack.auth;
1987
- if (credential.type === "token") return {
1986
+ return credential.type === "token" ? {
1988
1987
  type: "token",
1989
1988
  refreshToken: credential.refreshToken
1990
- };
1991
- if (credential.type === "cookie") return {
1989
+ } : {
1992
1990
  type: "cookie",
1993
1991
  sessionId: credential.sessionId
1994
1992
  };
1995
- return {
1996
- type: "static",
1997
- accessToken: credential.accessToken
1998
- };
1999
1993
  };
2000
1994
  const createSessionPersistor = (storage) => {
2001
1995
  const persistor = createPersistor({
@@ -2062,7 +2056,7 @@ const createPerStack = ({ state, credentials, middlewareFor }) => {
2062
2056
  *
2063
2057
  * - Credential-derived state is owned by the scope whose end ends it (`perStack`, `perProject`).
2064
2058
  */
2065
- const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls, credentials: mode = "token" }) => {
2059
+ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls, onExpired }) => {
2066
2060
  const state = createState(require_createFetchClient.normalizeBaseUrl(defaultBaseUrl));
2067
2061
  const persistor = createSessionPersistor(storage);
2068
2062
  const middlewareFor = createMiddlewareFor(middlewares);
@@ -2070,8 +2064,8 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2070
2064
  state,
2071
2065
  persistor,
2072
2066
  middlewares: middlewareFor("auth"),
2073
- mode,
2074
- onSignedOut: (baseUrl) => perProject.forgetUnder(baseUrl)
2067
+ onSignedOut: (baseUrl) => perProject.forgetUnder(baseUrl),
2068
+ onExpired
2075
2069
  });
2076
2070
  const perStack = createPerStack({
2077
2071
  state,
@@ -2086,33 +2080,33 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2086
2080
  clientServiceUrls,
2087
2081
  buildApi: (project) => createApiFor({
2088
2082
  stackUrl: () => project.baseUrl,
2089
- project: () => require_jobStatus.Result.unwrap(state.projects.get(project.id)),
2083
+ project: () => require_transientRetries.Result.unwrap(state.projects.get(project.id)),
2090
2084
  pinned: true
2091
2085
  })
2092
2086
  });
2093
2087
  state.store.subscribe(perStack.context.subscriber);
2094
2088
  perStack.context.subscriber(state.store.get());
2095
2089
  state.store.subscribe(perProject.context.subscriber);
2096
- const selectStack = (baseUrl) => require_jobStatus.Result.unwrap(state.scope.selectStack(require_createFetchClient.normalizeBaseUrl(baseUrl)));
2097
- const selectProject = (projectId) => require_jobStatus.Result.unwrap(state.scope.selectProject(projectId));
2090
+ const selectStack = (baseUrl) => require_transientRetries.Result.unwrap(state.scope.selectStack(require_createFetchClient.normalizeBaseUrl(baseUrl)));
2091
+ const selectProject = (projectId) => require_transientRetries.Result.unwrap(state.scope.selectProject(projectId));
2098
2092
  /** The scoped stack, or a named one — normalised to key like `select`. */
2099
2093
  const requireStackUrl = (baseUrl) => baseUrl === void 0 ? state.scope.getActiveStack().baseUrl : require_createFetchClient.normalizeBaseUrl(baseUrl);
2100
2094
  /** The scoped project, or the row a table id names — on whichever stack that is. */
2101
- const requireProjectEntry = (id) => id === void 0 ? require_jobStatus.Result.unwrap(state.scope.requireActiveProject()) : require_jobStatus.Result.unwrap(state.projects.get(id));
2095
+ const requireProjectEntry = (id) => id === void 0 ? require_transientRetries.Result.unwrap(state.scope.requireActiveProject()) : require_transientRetries.Result.unwrap(state.projects.get(id));
2102
2096
  /**
2103
2097
  * The scoped project, or a named open one.
2104
2098
  *
2105
2099
  * - An id is ambiguous across stacks: the active stack decides, else the single one open elsewhere.
2106
2100
  */
2107
2101
  const requireProject = (projectId) => {
2108
- if (projectId === void 0) return require_jobStatus.Result.unwrap(state.scope.requireActiveProject());
2102
+ if (projectId === void 0) return require_transientRetries.Result.unwrap(state.scope.requireActiveProject());
2109
2103
  const scoped = state.projects.get(Entry.projectEntryId(requireStackUrl(), projectId));
2110
2104
  if (scoped.success) return scoped.data;
2111
2105
  const [only, ...rest] = state.projects.findAll(projectId);
2112
- return only !== void 0 && rest.length === 0 ? only : require_jobStatus.Result.unwrap(scoped);
2106
+ return only !== void 0 && rest.length === 0 ? only : require_transientRetries.Result.unwrap(scoped);
2113
2107
  };
2114
2108
  const headersFor = (project) => {
2115
- const credential = require_jobStatus.Result.unwrap(state.auth.requireCredential(project.baseUrl));
2109
+ const credential = require_transientRetries.Result.unwrap(state.auth.requireCredential(project.baseUrl));
2116
2110
  return {
2117
2111
  [require_createFetchClient.HttpHeader.AUTHORIZATION]: `Bearer ${credential.accessToken}`,
2118
2112
  [require_createFetchClient.KeboolaHttpHeader.PROJECT_ID]: String(project.projectId)
@@ -2133,15 +2127,14 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2133
2127
  const getAuthHeadersAsync = async (projectId) => {
2134
2128
  const project = requireProject(projectId);
2135
2129
  await credentials.renewIfStale(project.baseUrl);
2136
- return headersFor(require_jobStatus.Result.unwrap(state.projects.get(project.id)));
2130
+ return headersFor(require_transientRetries.Result.unwrap(state.projects.get(project.id)));
2137
2131
  };
2138
2132
  const authenticate = (input) => {
2139
2133
  const stack = state.scope.getActiveStack();
2140
- if (input.type !== "static" && input.type !== mode) throw new KeboolaError(KeboolaErrorType.CredentialKindMismatch);
2141
- if (input.type !== "token") return require_jobStatus.Result.unwrap(state.auth.authenticate(stack.baseUrl, input));
2134
+ if (input.type !== "token") return require_transientRetries.Result.unwrap(state.auth.authenticate(stack.baseUrl, input));
2142
2135
  const { refreshToken } = input;
2143
2136
  if (!refreshToken) throw new KeboolaError(KeboolaErrorType.NotAuthenticated);
2144
- return require_jobStatus.Result.unwrap(state.auth.authenticate(stack.baseUrl, {
2137
+ return require_transientRetries.Result.unwrap(state.auth.authenticate(stack.baseUrl, {
2145
2138
  ...input,
2146
2139
  refreshToken
2147
2140
  }));
@@ -2168,7 +2161,7 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2168
2161
  } });
2169
2162
  const activeApi = createApiFor({
2170
2163
  stackUrl: () => state.scope.getActiveStack().baseUrl,
2171
- project: () => require_jobStatus.Result.unwrap(state.scope.requireActiveProject())
2164
+ project: () => require_transientRetries.Result.unwrap(state.scope.requireActiveProject())
2172
2165
  });
2173
2166
  /** The scoped project's surface. Re-points when the scope moves. */
2174
2167
  const getActiveApi = () => activeApi;
@@ -2181,13 +2174,13 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2181
2174
  const getApi = (projectId) => {
2182
2175
  const { baseUrl } = state.scope.getActiveStack();
2183
2176
  const project = Entry.project(baseUrl, projectId);
2184
- require_jobStatus.Result.unwrapOr(state.projects.open(baseUrl, projectId), null);
2177
+ require_transientRetries.Result.unwrapOr(state.projects.open(baseUrl, projectId), null);
2185
2178
  return perProject.get(project).api;
2186
2179
  };
2187
2180
  /** The scope's sign-in, or a named stack's — and everything that sign-in derived. */
2188
2181
  const signOut = (baseUrl) => {
2189
2182
  const target = requireStackUrl(baseUrl);
2190
- return require_jobStatus.Result.unwrap(credentials.signOut(target));
2183
+ return require_transientRetries.Result.unwrap(credentials.signOut(target));
2191
2184
  };
2192
2185
  /**
2193
2186
  * `input` replaces the active stack's sign-in, whatever it holds.
@@ -2200,26 +2193,13 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2200
2193
  return authenticate(input);
2201
2194
  };
2202
2195
  /**
2203
- * A server-injected `token` credential, adopted whatever this client's mode.
2204
- *
2205
- * @deprecated Temporary, for the agent-project claim page only: Connection injects an API-mode
2206
- * session through `UiConfig.programmaticAuth`. Remove together with that injection.
2207
- *
2208
- * - Replaces the active stack's sign-in, like `replace`.
2209
- * - A cookie-mode client never rotates it, so it lasts as long as its access token.
2210
- */
2211
- const adoptInjected = (input) => {
2212
- signOut();
2213
- return require_jobStatus.Result.unwrap(state.auth.authenticate(getActiveStack().baseUrl, input));
2214
- };
2215
- /**
2216
2196
  * Leave one project: its row and everything built for it; its handles stop answering.
2217
2197
  *
2218
2198
  * - Counterpart of `getApi(projectId)`; without it the project is held and persisted until sign-out.
2219
2199
  */
2220
2200
  const closeProject = (projectId) => {
2221
2201
  const id = Entry.projectEntryId(requireStackUrl(), projectId);
2222
- const closed = require_jobStatus.Result.unwrapOr(state.projects.close(id), null);
2202
+ const closed = require_transientRetries.Result.unwrapOr(state.projects.close(id), null);
2223
2203
  if (closed === null) return null;
2224
2204
  perProject.forget(id);
2225
2205
  return closed;
@@ -2227,7 +2207,7 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2227
2207
  const closeStack = (baseUrl) => {
2228
2208
  const target = require_createFetchClient.normalizeBaseUrl(baseUrl);
2229
2209
  if (state.scope.get().baseUrl === target) throw new KeboolaError(KeboolaErrorType.StackActive);
2230
- const closed = require_jobStatus.Result.unwrapOr(state.stacks.close(target), null);
2210
+ const closed = require_transientRetries.Result.unwrapOr(state.stacks.close(target), null);
2231
2211
  if (closed === null) return null;
2232
2212
  perProject.forgetUnder(target);
2233
2213
  perStack.forget(target);
@@ -2261,7 +2241,7 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2261
2241
  enablePersistence();
2262
2242
  });
2263
2243
  };
2264
- const restore = require_jobStatus.lazy(() => credentials.restore().then((restored) => {
2244
+ const restore = require_transientRetries.lazy(() => credentials.restore().then((restored) => {
2265
2245
  if (restored.status === "unreachable") enablePersistenceOnSignIn();
2266
2246
  else enablePersistence();
2267
2247
  return restored;
@@ -2281,7 +2261,7 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2281
2261
  * - Resolves with the stored credential's fate — only this tells `expired` from `empty`.
2282
2262
  * - Other stacks still come back, persistence still starts; repeat calls share one promise.
2283
2263
  */
2284
- const resume = require_jobStatus.lazy(() => restore().then(({ lastActive, status }) => {
2264
+ const resume = require_transientRetries.lazy(() => restore().then(({ lastActive, status }) => {
2285
2265
  if (!lastActive || callerScoped) return status;
2286
2266
  const stack = selectStack(lastActive.baseUrl);
2287
2267
  if (lastActive.projectId !== null && stack.auth.status === "authenticated") selectProject(lastActive.projectId);
@@ -2318,12 +2298,11 @@ const createKeboola = ({ defaultBaseUrl, storage, middlewares, clientServiceUrls
2318
2298
  auth: {
2319
2299
  authenticate: byCaller(authenticate),
2320
2300
  replace: byCaller(replace),
2321
- adoptInjected: byCaller(adoptInjected),
2322
2301
  signOut: byCaller(signOut),
2323
2302
  /** Whether the active stack holds a credential — `restoring` is not one yet. */
2324
2303
  isAuthenticated,
2325
2304
  isAuthenticatedAsync: () => resume().then(isAuthenticated),
2326
- rotate: (baseUrl) => credentials.rotate(baseUrl).then(require_jobStatus.Result.unwrap),
2305
+ rotate: (baseUrl) => credentials.rotate(baseUrl).then(require_transientRetries.Result.unwrap),
2327
2306
  getHeaders: getAuthHeaders,
2328
2307
  getHeadersAsync: getAuthHeadersAsync
2329
2308
  }
@@ -2473,7 +2452,7 @@ const createRetryMiddleware = (options) => {
2473
2452
  } catch (error) {
2474
2453
  if (attempt === maxRetries || !shouldRetry(error, attempt)) throw error;
2475
2454
  const delayMs = backoffFactor * 1e3 * Math.pow(2, attempt);
2476
- await require_jobStatus.delay(delayMs, request.request.signal ?? void 0);
2455
+ await require_transientRetries.delay(delayMs, request.request.signal ?? void 0);
2477
2456
  }
2478
2457
  throw new Error("unreachable");
2479
2458
  };
@@ -2489,6 +2468,30 @@ const createUiVersionMiddleware = (uiVersion) => {
2489
2468
  };
2490
2469
  };
2491
2470
  //#endregion
2471
+ //#region src/domain/adminAccount.ts
2472
+ /**
2473
+ * The admin behind a Manage token: `GET /manage/tokens/verify`, with the admin-level helpers.
2474
+ *
2475
+ * - `user` is absent for a token with no admin behind it (an application token) and for no token
2476
+ * at all (a session the Manage API refused); every helper then answers `false`.
2477
+ */
2478
+ const createAdminAccount = ({ managementToken }) => {
2479
+ const user = managementToken?.user;
2480
+ const adminFeatureSet = new Set(user?.features ?? []);
2481
+ const hasAdminFeature = (...feature) => {
2482
+ if (feature.length === 0) return false;
2483
+ return feature.every((x) => adminFeatureSet.has(x));
2484
+ };
2485
+ const hasAnyAdminFeature = (...feature) => feature.some((x) => adminFeatureSet.has(x));
2486
+ return {
2487
+ isSuperAdmin: user?.isSuperAdmin ?? false,
2488
+ hasAdminFeature,
2489
+ hasAnyAdminFeature,
2490
+ user,
2491
+ managementToken
2492
+ };
2493
+ };
2494
+ //#endregion
2492
2495
  exports.ApiError = require_createFetchClient.ApiError;
2493
2496
  exports.HtmlResponseError = require_validateConnectionStatus.HtmlResponseError;
2494
2497
  exports.HttpContentType = require_createFetchClient.HttpContentType;
@@ -2496,20 +2499,24 @@ exports.HttpHeader = require_createFetchClient.HttpHeader;
2496
2499
  exports.KeboolaError = KeboolaError;
2497
2500
  exports.KeboolaErrorType = KeboolaErrorType;
2498
2501
  exports.KeboolaHttpHeader = require_createFetchClient.KeboolaHttpHeader;
2499
- exports.ManagementClientAuthError = require_ManagementClientAuthError.ManagementClientAuthError;
2500
- exports.QueryJobError = require_QueryJobTimeoutError.QueryJobError;
2501
- exports.QueryJobTimeoutError = require_QueryJobTimeoutError.QueryJobTimeoutError;
2502
- exports.Result = require_jobStatus.Result;
2502
+ exports.ManagementClientAuthError = require_ManagementSessionMintError.ManagementClientAuthError;
2503
+ exports.ManagementSessionMintError = require_ManagementSessionMintError.ManagementSessionMintError;
2504
+ exports.QueryJobError = require_QueryJobError.QueryJobError;
2505
+ exports.QueueJobError = require_QueueJobError.QueueJobError;
2506
+ exports.Result = require_transientRetries.Result;
2503
2507
  exports.SESSION_STORAGE_KEY = SESSION_STORAGE_KEY;
2504
2508
  exports.ServiceUnavailableError = require_storage.ServiceUnavailableError;
2509
+ exports.StorageJobError = require_storage.StorageJobError;
2505
2510
  exports.SyncActionError = require_SyncActionError.SyncActionError;
2506
2511
  exports.UserError = require_UserError.UserError;
2507
2512
  exports.ValidationError = require_ValidationError.ValidationError;
2508
- exports.asError = require_jobStatus.asError;
2513
+ exports.asError = require_transientRetries.asError;
2509
2514
  exports.assert = assert;
2510
2515
  exports.coalesce = coalesce;
2511
- exports.collect = require_collect.collect;
2516
+ exports.collectByCursor = require_authClient.collectByCursor;
2517
+ exports.collectByOffset = require_collectByOffset.collectByOffset;
2512
2518
  exports.concurrent = require_concurrent.concurrent;
2519
+ exports.createAdminAccount = createAdminAccount;
2513
2520
  exports.createDerivedAsyncStore = createDerivedAsyncStore;
2514
2521
  exports.createDerivedStore = createDerivedStore;
2515
2522
  exports.createEmitter = require_store.createEmitter;
@@ -2525,15 +2532,14 @@ exports.createPollRegistry = createPollRegistry;
2525
2532
  exports.createQueryServiceSdk = require_sdk_queryService_index.createQueryServiceSdk;
2526
2533
  exports.createRetryMiddleware = createRetryMiddleware;
2527
2534
  exports.createSessionStorage = createSessionStorage;
2528
- exports.createStorageSdk = require_sdk_storage_index.createStorageSdk;
2529
2535
  exports.createStore = require_store.createStore;
2530
2536
  exports.createUiVersionMiddleware = createUiVersionMiddleware;
2531
2537
  exports.dedupe = require_dedupe.dedupe;
2532
2538
  exports.deepMerge = deepMerge;
2533
- exports.delay = require_jobStatus.delay;
2534
- exports.emitter = require_jobStatus.emitter;
2539
+ exports.delay = require_transientRetries.delay;
2540
+ exports.emitter = require_transientRetries.emitter;
2535
2541
  exports.ensure = ensure;
2536
- exports.failureOf = require_jobStatus.failureOf;
2542
+ exports.failureOf = require_transientRetries.failureOf;
2537
2543
  exports.formatValidationIssues = require_ValidationError.formatValidationIssues;
2538
2544
  exports.generateUUID = require_generateUUID.generateUUID;
2539
2545
  exports.isAbortError = require_createFetchClient.isAbortError;
@@ -2543,20 +2549,22 @@ exports.isFetchClientError = require_createFetchClient.isFetchClientError;
2543
2549
  exports.isHtmlResponseError = require_validateConnectionStatus.isHtmlResponseError;
2544
2550
  exports.isKeboolaError = isKeboolaError;
2545
2551
  exports.isManagementClientAuthError = require_management.isManagementClientAuthError;
2552
+ exports.isManagementSessionMintError = require_management.isManagementSessionMintError;
2546
2553
  exports.isPlainObject = require_isPlainObject.isPlainObject;
2547
- exports.isQueryJobError = require_QueryJobTimeoutError.isQueryJobError;
2548
- exports.isQueryJobTimeoutError = require_QueryJobTimeoutError.isQueryJobTimeoutError;
2554
+ exports.isQueryJobError = require_QueryJobError.isQueryJobError;
2555
+ exports.isQueueJobError = require_QueueJobError.isQueueJobError;
2556
+ exports.isStorageJobError = require_storage.isStorageJobError;
2549
2557
  exports.isStorageTokenMutatingRequest = isStorageTokenMutatingRequest;
2550
2558
  exports.isSyncActionError = require_SyncActionError.isSyncActionError;
2551
2559
  exports.isTimeoutError = require_createFetchClient.isTimeoutError;
2552
2560
  exports.isValidationError = require_ValidationError.isValidationError;
2553
- exports.jobStatus = require_jobStatus.jobStatus;
2561
+ exports.jobStatus = require_transientRetries.jobStatus;
2554
2562
  exports.keboolaUID = require_tag.keboolaUID;
2555
- exports.lazy = require_jobStatus.lazy;
2563
+ exports.lazy = require_transientRetries.lazy;
2564
+ exports.nextCursorOf = require_authClient.nextCursorOf;
2556
2565
  exports.parseLogLines = require_appLogs.parseLogLines;
2557
2566
  exports.parseOrThrow = require_ValidationError.parseOrThrow;
2558
- exports.poll = require_jobStatus.poll;
2559
- exports.poller = require_jobStatus.poller;
2567
+ exports.poller = require_transientRetries.poller;
2560
2568
  exports.readableReason = require_storage.readableReason;
2561
2569
  exports.schemaGuidedMerge = require_configurations.schemaGuidedMerge;
2562
2570
  exports.series = require_storage.series;