@keboola/api-client 45.0.0 → 47.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/AGENTS.md +86 -21
  2. package/API-SURFACE.md +49 -29
  3. package/CHANGELOG.md +69 -0
  4. package/README.md +47 -37
  5. package/dist/ManagementSessionMintError-4Pkn5Oob.js +36 -0
  6. package/dist/ManagementSessionMintError-4Pkn5Oob.js.map +1 -0
  7. package/dist/ManagementSessionMintError-Cu9beG7j.cjs +47 -0
  8. package/dist/ManagementSessionMintError-Cu9beG7j.cjs.map +1 -0
  9. package/dist/QueryJobError-ZZZ043Nm.js +22 -0
  10. package/dist/QueryJobError-ZZZ043Nm.js.map +1 -0
  11. package/dist/{QueryJobTimeoutError-CVNPdCWX.cjs → QueryJobError-irGiP5zh.cjs} +1 -29
  12. package/dist/QueryJobError-irGiP5zh.cjs.map +1 -0
  13. package/dist/QueueJobError-6qSEizWo.cjs +30 -0
  14. package/dist/QueueJobError-6qSEizWo.cjs.map +1 -0
  15. package/dist/QueueJobError-8bThS_Mc.js +19 -0
  16. package/dist/QueueJobError-8bThS_Mc.js.map +1 -0
  17. package/dist/adminRoles-B40yBcmq.js.map +1 -1
  18. package/dist/adminRoles-CO7J5qAy.cjs.map +1 -1
  19. package/dist/{adminRoles-C696kD_U.d.cts → adminRoles-CvdIUkiC.d.ts} +4 -2
  20. package/dist/{adminRoles-C696kD_U.d.ts → adminRoles-DGM8SuuF.d.cts} +4 -2
  21. package/dist/ai/index.cjs +2 -2
  22. package/dist/ai/index.d.cts +2 -2
  23. package/dist/ai/index.d.ts +2 -2
  24. package/dist/ai/index.js +2 -2
  25. package/dist/ai/types.d.cts +1 -1
  26. package/dist/ai/types.d.ts +1 -1
  27. package/dist/{appLogs-BG9ueGxA.cjs → appLogs-Cix2KWra.cjs} +2 -2
  28. package/dist/{appLogs-BG9ueGxA.cjs.map → appLogs-Cix2KWra.cjs.map} +1 -1
  29. package/dist/{appLogs-C9YlJ2g8.d.cts → appLogs-Cxhm2Rkn.d.cts} +2 -2
  30. package/dist/{appLogs-CEKz68bE.js → appLogs-KslK7qHr.js} +2 -2
  31. package/dist/{appLogs-CEKz68bE.js.map → appLogs-KslK7qHr.js.map} +1 -1
  32. package/dist/{appLogs-BS6ViVGR.d.ts → appLogs-xW0-JQXg.d.ts} +2 -2
  33. package/dist/apps/index.cjs +3 -3
  34. package/dist/apps/index.d.cts +3 -3
  35. package/dist/apps/index.d.ts +3 -3
  36. package/dist/apps/index.js +3 -3
  37. package/dist/apps/types.d.cts +2 -2
  38. package/dist/apps/types.d.ts +2 -2
  39. package/dist/assets/index.cjs +1 -1
  40. package/dist/assets/index.d.cts +1 -1
  41. package/dist/assets/index.d.ts +1 -1
  42. package/dist/assets/index.js +1 -1
  43. package/dist/auth/index.cjs +1 -1
  44. package/dist/auth/index.d.cts +1 -1
  45. package/dist/auth/index.d.ts +1 -1
  46. package/dist/auth/index.js +1 -1
  47. package/dist/auth/types.d.cts +2 -2
  48. package/dist/auth/types.d.ts +2 -2
  49. package/dist/{auth-C6cHWIWx.js → auth-4coY1uwo.js} +2 -2
  50. package/dist/{auth-C6cHWIWx.js.map → auth-4coY1uwo.js.map} +1 -1
  51. package/dist/{auth-C9o_0bft.cjs → auth-C8Pjl0Mu.cjs} +2 -2
  52. package/dist/{auth-C9o_0bft.cjs.map → auth-C8Pjl0Mu.cjs.map} +1 -1
  53. package/dist/{authClient-CACOwVt0.js → authClient-2e8ZmzSP.js} +71 -7
  54. package/dist/authClient-2e8ZmzSP.js.map +1 -0
  55. package/dist/{authClient-CBVAT3v9.d.cts → authClient-Bso5UaXS.d.ts} +45 -33
  56. package/dist/{authClient-DZcAR-eW.cjs → authClient-DfkKlc-2.cjs} +82 -6
  57. package/dist/authClient-DfkKlc-2.cjs.map +1 -0
  58. package/dist/{authClient-CRumc934.d.ts → authClient-aud2dUZd.d.cts} +45 -33
  59. package/dist/billing/index.cjs +2 -2
  60. package/dist/billing/index.d.cts +1 -1
  61. package/dist/billing/index.d.ts +1 -1
  62. package/dist/billing/index.js +2 -2
  63. package/dist/billing/types.d.cts +1 -1
  64. package/dist/billing/types.d.ts +1 -1
  65. package/dist/chat/index.cjs +3 -3
  66. package/dist/chat/index.d.cts +2 -2
  67. package/dist/chat/index.d.ts +2 -2
  68. package/dist/chat/index.js +3 -3
  69. package/dist/chat/types.d.cts +1 -1
  70. package/dist/chat/types.d.ts +1 -1
  71. package/dist/{collect-97WhfEpt.js → collectByOffset-2XzJqmvr.js} +6 -6
  72. package/dist/collectByOffset-2XzJqmvr.js.map +1 -0
  73. package/dist/{collect-B5TCNiT1.cjs → collectByOffset-DQsqtmJg.cjs} +7 -7
  74. package/dist/collectByOffset-DQsqtmJg.cjs.map +1 -0
  75. package/dist/componentsMcp/index.cjs +3 -0
  76. package/dist/componentsMcp/index.d.cts +2 -0
  77. package/dist/componentsMcp/index.d.ts +2 -0
  78. package/dist/componentsMcp/index.js +2 -0
  79. package/dist/componentsMcp/types.cjs +0 -0
  80. package/dist/componentsMcp/types.d.cts +2 -0
  81. package/dist/componentsMcp/types.d.ts +2 -0
  82. package/dist/componentsMcp/types.js +1 -0
  83. package/dist/componentsMcp-CHobIsuU.js +57 -0
  84. package/dist/componentsMcp-CHobIsuU.js.map +1 -0
  85. package/dist/componentsMcp-pG-PcQrg.cjs +62 -0
  86. package/dist/componentsMcp-pG-PcQrg.cjs.map +1 -0
  87. package/dist/configurations-BTRHVSRq.cjs.map +1 -1
  88. package/dist/configurations-Chg_JwJ1.js.map +1 -1
  89. package/dist/constants/index.cjs +1 -1
  90. package/dist/constants/index.d.cts +2 -3
  91. package/dist/constants/index.d.ts +2 -3
  92. package/dist/constants/index.js +1 -1
  93. package/dist/{constants-Cifrqsls.js → constants-CA4UN2Xv.js} +11 -10
  94. package/dist/constants-CA4UN2Xv.js.map +1 -0
  95. package/dist/{constants-BDGRQqij.cjs → constants-a0jswUeK.cjs} +10 -9
  96. package/dist/constants-a0jswUeK.cjs.map +1 -0
  97. package/dist/{createFetchClient-DITkTV2k.js → createFetchClient-CkHdS_IG.js} +5 -5
  98. package/dist/createFetchClient-CkHdS_IG.js.map +1 -0
  99. package/dist/{createFetchClient-ClWD4ua3.cjs → createFetchClient-lZ_93Yrb.cjs} +5 -5
  100. package/dist/createFetchClient-lZ_93Yrb.cjs.map +1 -0
  101. package/dist/{createGenericFetchClient-KqiJhw8G.js → createGenericFetchClient-CQdNcPC3.js} +2 -2
  102. package/dist/{createGenericFetchClient-KqiJhw8G.js.map → createGenericFetchClient-CQdNcPC3.js.map} +1 -1
  103. package/dist/{createGenericFetchClient-B81Iezpb.cjs → createGenericFetchClient-MOx97wi-.cjs} +2 -2
  104. package/dist/{createGenericFetchClient-B81Iezpb.cjs.map → createGenericFetchClient-MOx97wi-.cjs.map} +1 -1
  105. package/dist/{createOpenapiFetchClient-CioTX11-.cjs → createOpenapiFetchClient-DHYo_k3t.cjs} +2 -2
  106. package/dist/{createOpenapiFetchClient-CioTX11-.cjs.map → createOpenapiFetchClient-DHYo_k3t.cjs.map} +1 -1
  107. package/dist/{createOpenapiFetchClient-wq8iGLZM.js → createOpenapiFetchClient-DXiMv9WL.js} +2 -2
  108. package/dist/{createOpenapiFetchClient-wq8iGLZM.js.map → createOpenapiFetchClient-DXiMv9WL.js.map} +1 -1
  109. package/dist/dataScience/index.cjs +2 -2
  110. package/dist/dataScience/index.d.cts +2 -2
  111. package/dist/dataScience/index.d.ts +2 -2
  112. package/dist/dataScience/index.js +2 -2
  113. package/dist/dataScience/types.d.cts +2 -2
  114. package/dist/dataScience/types.d.ts +2 -2
  115. package/dist/{dataScience-BwHmDoQb.js → dataScience-AwPMeGfz.js} +5 -5
  116. package/dist/{dataScience-BwHmDoQb.js.map → dataScience-AwPMeGfz.js.map} +1 -1
  117. package/dist/{dataScience-Hhoqoql_.cjs → dataScience-BjS1p8WO.cjs} +5 -5
  118. package/dist/{dataScience-Hhoqoql_.cjs.map → dataScience-BjS1p8WO.cjs.map} +1 -1
  119. package/dist/developerPortal/index.cjs +1 -1
  120. package/dist/developerPortal/index.d.cts +2 -2
  121. package/dist/developerPortal/index.d.ts +2 -2
  122. package/dist/developerPortal/index.js +1 -1
  123. package/dist/developerPortal/types.d.cts +1 -1
  124. package/dist/developerPortal/types.d.ts +1 -1
  125. package/dist/{developerPortalClient-loKq7X_U.js → developerPortalClient-Bb2suezr.js} +13 -5
  126. package/dist/{developerPortalClient-loKq7X_U.js.map → developerPortalClient-Bb2suezr.js.map} +1 -1
  127. package/dist/{developerPortalClient-COm7wJxS.cjs → developerPortalClient-DUerKw-7.cjs} +13 -5
  128. package/dist/{developerPortalClient-COm7wJxS.cjs.map → developerPortalClient-DUerKw-7.cjs.map} +1 -1
  129. package/dist/domain/permissions/index.cjs +1 -1
  130. package/dist/domain/permissions/index.d.cts +1 -2
  131. package/dist/domain/permissions/index.d.ts +1 -2
  132. package/dist/domain/permissions/index.js +1 -1
  133. package/dist/editor/index.cjs +2 -2
  134. package/dist/editor/index.d.cts +2 -2
  135. package/dist/editor/index.d.ts +2 -2
  136. package/dist/editor/index.js +2 -2
  137. package/dist/editor/types.d.cts +1 -1
  138. package/dist/editor/types.d.ts +1 -1
  139. package/dist/encryption/index.cjs +1 -1
  140. package/dist/encryption/index.d.cts +1 -1
  141. package/dist/encryption/index.d.ts +1 -1
  142. package/dist/encryption/index.js +1 -1
  143. package/dist/encryption/types.d.cts +1 -1
  144. package/dist/encryption/types.d.ts +1 -1
  145. package/dist/import/index.cjs +1 -1
  146. package/dist/import/index.d.cts +3 -3
  147. package/dist/import/index.d.ts +3 -3
  148. package/dist/import/index.js +1 -1
  149. package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
  150. package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
  151. package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
  152. package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
  153. package/dist/{index-DeQDdut6.d.ts → index-8ZjY7YD8.d.cts} +34 -2
  154. package/dist/{index-CA6QxbhZ.d.ts → index-BGEuaZqI.d.cts} +238 -252
  155. package/dist/{index-R-w0Zncz.d.ts → index-BIP0PoMW.d.ts} +4 -4
  156. package/dist/index-B_MzjCeE.d.ts +46 -0
  157. package/dist/{index-CGCXR_6Q.d.ts → index-BeOd45XE.d.ts} +4 -4
  158. package/dist/{index-DeQDdut6.d.cts → index-BnPmXDVP.d.ts} +34 -2
  159. package/dist/{index-Cvkrjh--.d.cts → index-C2OAOK0s.d.ts} +30 -4
  160. package/dist/{index-Bl2EloC0.d.ts → index-CAWy1qjR.d.ts} +22482 -17133
  161. package/dist/{index-CGFGd3tF.d.cts → index-CkwZ5x7E.d.cts} +22482 -17133
  162. package/dist/{index-D9UsQOuT.d.cts → index-DTysQ_yn.d.cts} +5 -5
  163. package/dist/{index-CX8GAP2g.d.ts → index-DUB0BwQv.d.cts} +30 -4
  164. package/dist/{index-zyxZVJnd.d.ts → index-DloFSSj3.d.ts} +3 -3
  165. package/dist/{index-DtuwWYDR.d.ts → index-Dp-a2DdI.d.ts} +4 -4
  166. package/dist/{index-BHWTa4YN.d.cts → index-Ds0tViQS.d.cts} +3 -3
  167. package/dist/{index-BCgmwncs.d.ts → index-HSkjm3QW.d.ts} +5 -5
  168. package/dist/index-URgNfi5L.d.cts +46 -0
  169. package/dist/{index-04pgr-EO.d.cts → index-XG5cO-4H.d.cts} +4 -4
  170. package/dist/{types-BhEx9iRx.d.ts → index-XaPb6unB.d.cts} +4813 -1757
  171. package/dist/{index-DINB7vsV.d.cts → index-ZYvgoqgW.d.cts} +4 -4
  172. package/dist/{index-DkvrbR2i.d.cts → index-_Va9wynk.d.ts} +238 -252
  173. package/dist/{types-sV9OaqTI.d.cts → index-r6YSe8B-.d.ts} +4813 -1757
  174. package/dist/{index-BKOFRmTB.d.cts → index-x_kS_5x_.d.cts} +4 -4
  175. package/dist/index.cjs +171 -163
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.cts +7 -7
  178. package/dist/index.d.ts +7 -7
  179. package/dist/index.js +100 -97
  180. package/dist/index.js.map +1 -1
  181. package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
  182. package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
  183. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
  184. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
  185. package/dist/kaiAgent/index.cjs +1 -1
  186. package/dist/kaiAgent/index.d.cts +2 -2
  187. package/dist/kaiAgent/index.d.ts +2 -2
  188. package/dist/kaiAgent/index.js +1 -1
  189. package/dist/kaiAgent/types.d.cts +1 -1
  190. package/dist/kaiAgent/types.d.ts +1 -1
  191. package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-BmfUG8bB.cjs} +5 -5
  192. package/dist/{kaiAgent-BhcUsBDk.cjs.map → kaiAgent-BmfUG8bB.cjs.map} +1 -1
  193. package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CBPbMwBh.js} +5 -5
  194. package/dist/{kaiAgent-CUeT53-K.js.map → kaiAgent-CBPbMwBh.js.map} +1 -1
  195. package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
  196. package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
  197. package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
  198. package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
  199. package/dist/management/index.cjs +2 -1
  200. package/dist/management/index.d.cts +2 -2
  201. package/dist/management/index.d.ts +2 -2
  202. package/dist/management/index.js +2 -2
  203. package/dist/management/types.d.cts +2 -2
  204. package/dist/management/types.d.ts +2 -2
  205. package/dist/{management-C5lf9nsU.cjs → management-BUGPJ1Bu.cjs} +46 -10
  206. package/dist/management-BUGPJ1Bu.cjs.map +1 -0
  207. package/dist/{management-WAtKH6Tu.js → management-DAg2obYt.js} +39 -9
  208. package/dist/management-DAg2obYt.js.map +1 -0
  209. package/dist/metastore/index.cjs +1 -1
  210. package/dist/metastore/index.d.cts +1 -1
  211. package/dist/metastore/index.d.ts +1 -1
  212. package/dist/metastore/index.js +1 -1
  213. package/dist/metastore/types.d.cts +1 -1
  214. package/dist/metastore/types.d.ts +1 -1
  215. package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
  216. package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
  217. package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
  218. package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
  219. package/dist/microsoftGraph/index.cjs +2 -2
  220. package/dist/microsoftGraph/index.d.cts +3 -3
  221. package/dist/microsoftGraph/index.d.ts +3 -3
  222. package/dist/microsoftGraph/index.js +2 -2
  223. package/dist/microsoftGraph/types.d.cts +2 -2
  224. package/dist/microsoftGraph/types.d.ts +2 -2
  225. package/dist/{middleware-DmR6OhTY.js → middleware-CWaLMlG1.js} +2 -2
  226. package/dist/{middleware-DmR6OhTY.js.map → middleware-CWaLMlG1.js.map} +1 -1
  227. package/dist/{middleware-D_p5TctO.cjs → middleware-DU_5pFDW.cjs} +2 -2
  228. package/dist/{middleware-D_p5TctO.cjs.map → middleware-DU_5pFDW.cjs.map} +1 -1
  229. package/dist/notifications/index.cjs +3 -3
  230. package/dist/notifications/index.d.cts +2 -2
  231. package/dist/notifications/index.d.ts +2 -2
  232. package/dist/notifications/index.js +3 -3
  233. package/dist/notifications/types.d.cts +1 -1
  234. package/dist/notifications/types.d.ts +1 -1
  235. package/dist/oauth/index.cjs +1 -1
  236. package/dist/oauth/index.d.cts +6 -2
  237. package/dist/oauth/index.d.ts +6 -2
  238. package/dist/oauth/index.js +1 -1
  239. package/dist/oauth/types.d.cts +2 -2
  240. package/dist/oauth/types.d.ts +2 -2
  241. package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
  242. package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
  243. package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
  244. package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
  245. package/dist/omnisearch/index.cjs +2 -2
  246. package/dist/omnisearch/index.d.cts +2 -2
  247. package/dist/omnisearch/index.d.ts +2 -2
  248. package/dist/omnisearch/index.js +2 -2
  249. package/dist/omnisearch/types.d.cts +1 -1
  250. package/dist/omnisearch/types.d.ts +1 -1
  251. package/dist/project-BMmfPhXg.d.ts +74 -0
  252. package/dist/{project-DWwZv66D.js → project-BXLFrWJ6.js} +7 -1
  253. package/dist/project-BXLFrWJ6.js.map +1 -0
  254. package/dist/{project-BvFi19K_.cjs → project-CpgplgCr.cjs} +7 -1
  255. package/dist/project-CpgplgCr.cjs.map +1 -0
  256. package/dist/project-dxCJbFay.d.cts +74 -0
  257. package/dist/queryService/index.cjs +1 -1
  258. package/dist/queryService/index.d.cts +1 -1
  259. package/dist/queryService/index.d.ts +1 -1
  260. package/dist/queryService/index.js +1 -1
  261. package/dist/queryService/types.d.cts +2 -2
  262. package/dist/queryService/types.d.ts +2 -2
  263. package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
  264. package/dist/queryService-C-pZha5p.js.map +1 -0
  265. package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
  266. package/dist/queryService-CzK53q94.cjs.map +1 -0
  267. package/dist/queue/index.cjs +1 -1
  268. package/dist/queue/index.d.cts +75 -7
  269. package/dist/queue/index.d.ts +75 -7
  270. package/dist/queue/index.js +1 -1
  271. package/dist/queue/types.d.cts +1 -1
  272. package/dist/queue/types.d.ts +1 -1
  273. package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
  274. package/dist/queue-BJvDWriM.cjs.map +1 -0
  275. package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
  276. package/dist/queue-D6-x4OGF.js.map +1 -0
  277. package/dist/scheduler/index.cjs +3 -3
  278. package/dist/scheduler/index.d.cts +2 -2
  279. package/dist/scheduler/index.d.ts +2 -2
  280. package/dist/scheduler/index.js +3 -3
  281. package/dist/scheduler/types.d.cts +1 -1
  282. package/dist/scheduler/types.d.ts +1 -1
  283. package/dist/{schema-DJa9WBjR.d.cts → schema-BUyMwQnM.d.cts} +7 -1
  284. package/dist/{schema-DJa9WBjR.d.ts → schema-BUyMwQnM.d.ts} +7 -1
  285. package/dist/sdk/configurations/index.d.cts +2 -4
  286. package/dist/sdk/configurations/index.d.ts +2 -4
  287. package/dist/sdk/developerPortal/index.cjs +3 -3
  288. package/dist/sdk/developerPortal/index.d.cts +29 -3
  289. package/dist/sdk/developerPortal/index.d.ts +29 -3
  290. package/dist/sdk/developerPortal/index.js +3 -3
  291. package/dist/sdk/kaiMemory/index.cjs +1 -1
  292. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  293. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  294. package/dist/sdk/kaiMemory/index.js +1 -1
  295. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  296. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  297. package/dist/sdk/queryService/index.cjs +34 -55
  298. package/dist/sdk/queryService/index.cjs.map +1 -1
  299. package/dist/sdk/queryService/index.d.cts +2 -2
  300. package/dist/sdk/queryService/index.d.ts +2 -2
  301. package/dist/sdk/queryService/index.js +34 -55
  302. package/dist/sdk/queryService/index.js.map +1 -1
  303. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  304. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  305. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  306. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  307. package/dist/sdk/storage/index.cjs +0 -119
  308. package/dist/sdk/storage/index.cjs.map +1 -1
  309. package/dist/sdk/storage/index.d.cts +103 -2
  310. package/dist/sdk/storage/index.d.ts +103 -2
  311. package/dist/sdk/storage/index.js +1 -119
  312. package/dist/sdk/storage/index.js.map +1 -1
  313. package/dist/sdk/tag/index.d.cts +2 -2
  314. package/dist/sdk/tag/index.d.ts +2 -2
  315. package/dist/sdk/tag/types.d.cts +1 -1
  316. package/dist/sdk/tag/types.d.ts +1 -1
  317. package/dist/sdk/vault/index.d.cts +1 -1
  318. package/dist/sdk/vault/index.d.ts +1 -1
  319. package/dist/status/index.cjs +1 -1
  320. package/dist/status/index.d.cts +1 -1
  321. package/dist/status/index.d.ts +1 -1
  322. package/dist/status/index.js +1 -1
  323. package/dist/storage/index.cjs +15 -10
  324. package/dist/storage/index.d.cts +3 -3
  325. package/dist/storage/index.d.ts +3 -3
  326. package/dist/storage/index.js +7 -6
  327. package/dist/storage/types.d.cts +6 -5
  328. package/dist/storage/types.d.ts +6 -5
  329. package/dist/{storage-RkNaOFJ-.js → storage-DyR7hDdv.js} +347 -168
  330. package/dist/storage-DyR7hDdv.js.map +1 -0
  331. package/dist/{storage-76Sf_z_H.cjs → storage-yovv11k6.cjs} +366 -169
  332. package/dist/storage-yovv11k6.cjs.map +1 -0
  333. package/dist/stream/index.cjs +3 -3
  334. package/dist/stream/index.d.cts +2 -2
  335. package/dist/stream/index.d.ts +2 -2
  336. package/dist/stream/index.js +3 -3
  337. package/dist/stream/types.d.cts +1 -1
  338. package/dist/stream/types.d.ts +1 -1
  339. package/dist/syncActions/index.cjs +1 -1
  340. package/dist/syncActions/index.d.cts +2 -2
  341. package/dist/syncActions/index.d.ts +2 -2
  342. package/dist/syncActions/index.js +1 -1
  343. package/dist/syncActions/types.d.cts +1 -1
  344. package/dist/syncActions/types.d.ts +1 -1
  345. package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
  346. package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
  347. package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
  348. package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
  349. package/dist/telemetry/index.cjs +3 -6
  350. package/dist/telemetry/index.cjs.map +1 -1
  351. package/dist/telemetry/index.d.cts +2 -5
  352. package/dist/telemetry/index.d.ts +2 -5
  353. package/dist/telemetry/index.js +3 -6
  354. package/dist/telemetry/index.js.map +1 -1
  355. package/dist/telemetry/types.d.cts +1 -1
  356. package/dist/telemetry/types.d.ts +1 -1
  357. package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
  358. package/dist/transientRetries-B4iusp69.js.map +1 -0
  359. package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
  360. package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
  361. package/dist/{types-tgU8XvPs.d.cts → types--qQPfxWt.d.cts} +2 -2
  362. package/dist/types-4CjbcUdD.d.cts +1536 -0
  363. package/dist/{types-DaMmgW-O.d.ts → types-4HmtNuJf.d.ts} +2 -2
  364. package/dist/types-4bSZLxq3.d.cts +1973 -0
  365. package/dist/{types-BaSlU0uo.d.ts → types-7DBpH7Rf.d.ts} +2 -2
  366. package/dist/types-B2ZLjagf.d.ts +1536 -0
  367. package/dist/{types-DgPt4LY_.d.cts → types-B6ozaDkl.d.cts} +192 -78
  368. package/dist/{types-YHUEArkR.d.cts → types-BBbzWczQ.d.cts} +2 -2
  369. package/dist/{types-CgBzm1YR.d.cts → types-BG0oWq8u.d.cts} +2 -2
  370. package/dist/types-BIDKSQdc.d.ts +1973 -0
  371. package/dist/{types-ByLH46Dt.d.cts → types-BKIcow3B.d.cts} +2 -2
  372. package/dist/{types-CfwqVkEA.d.ts → types-BNPvFLgC.d.ts} +2 -2
  373. package/dist/{types-DlQw6FCi.d.ts → types-BXgINefw.d.ts} +2 -2
  374. package/dist/{types-CalDJHCX.d.cts → types-BZBU3mwz.d.cts} +3 -3
  375. package/dist/{types-Bydx6ga_.d.cts → types-B_1plf0y.d.cts} +2 -2
  376. package/dist/{types-Ccd9O6ca.d.cts → types-B_3zoXA1.d.cts} +3 -3
  377. package/dist/{types-BBUZ9EHs.d.ts → types-BcQ3j8xK.d.ts} +8 -2
  378. package/dist/{types-B8N_k79M.d.cts → types-BdF6NDvo.d.cts} +2 -2
  379. package/dist/{types-CABWhTa9.d.ts → types-BiBBKcin.d.ts} +3 -3
  380. package/dist/{types-DVt0qlzI.d.cts → types-BiTn_JVW.d.cts} +736 -289
  381. package/dist/{types-CN6huo55.d.ts → types-BjEiUOL6.d.ts} +192 -78
  382. package/dist/{types-z82gSTx8.d.ts → types-BoH7NFCh.d.ts} +3 -3
  383. package/dist/{types-CcYxlqtB.d.cts → types-BwsE-pFo.d.cts} +2 -2
  384. package/dist/{types-DrvKfXXd.d.cts → types-Bx0TSdwF.d.cts} +2 -2
  385. package/dist/{types-DazRtukc.d.ts → types-C2JMisvL.d.ts} +736 -289
  386. package/dist/{types-DVZpKGBJ.d.ts → types-C2j6Jsie.d.ts} +3 -3
  387. package/dist/{types-BZDV8DZk.d.ts → types-C3IQu1gV.d.ts} +11 -6
  388. package/dist/{types-WZBztugL.d.ts → types-C7t_6FLh.d.ts} +2 -2
  389. package/dist/{types-Fs4a3mVs.d.ts → types-CBrNIgEy.d.ts} +64 -5
  390. package/dist/{types-CZJlLCbA.d.ts → types-CEw2IzWk.d.ts} +2 -2
  391. package/dist/{types-DdsYv2WG.d.cts → types-CMKIdreQ.d.cts} +3 -3
  392. package/dist/{types-AYX7VtS6.d.ts → types-COQOzyac.d.ts} +212 -2
  393. package/dist/{types-BiEh5c_t.d.cts → types-CZCPdPqv.d.cts} +132 -5
  394. package/dist/{types-B2w2TtSA.d.ts → types-Cw9UISvM.d.ts} +2 -2
  395. package/dist/{types-D9axmt5o.d.cts → types-D51g4h9w.d.cts} +8 -2
  396. package/dist/{types-CBPKpLTf.d.cts → types-D8w9lyb8.d.cts} +212 -2
  397. package/dist/{types-Dd31Lw4S.d.cts → types-DBJ8c3hN.d.cts} +2 -2
  398. package/dist/{types-DzV6LaZq.d.ts → types-DHlXKVEM.d.ts} +132 -5
  399. package/dist/{types-c_bsDkV6.d.cts → types-DPDq8C4q.d.cts} +16 -4
  400. package/dist/{types-D3wcs4tp.d.ts → types-DWJVbskE.d.ts} +2 -2
  401. package/dist/{types-CAp1VexS.d.ts → types-Dg8a7m7f.d.ts} +16 -4
  402. package/dist/{types-CoJVrRAD.d.ts → types-DgIzXY-Y.d.ts} +2 -2
  403. package/dist/{types-pvQzbgNE.d.cts → types-L50Y6ATu.d.cts} +11 -6
  404. package/dist/{types-DoZtE9tz.d.cts → types-OkQWmonU.d.cts} +2 -2
  405. package/dist/{types-BPy5Ozee.d.cts → types-TRJiPqJr.d.cts} +2 -2
  406. package/dist/{types-B-5ya_L5.d.ts → types-ij6BpTzR.d.ts} +2 -2
  407. package/dist/{types-DicSaNwq.d.ts → types-ituiCs8g.d.ts} +2 -2
  408. package/dist/{types-CGm2fQKK.d.cts → types-kbyIaA7p.d.cts} +64 -5
  409. package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
  410. package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
  411. package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
  412. package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
  413. package/dist/vault/index.cjs +6 -6
  414. package/dist/vault/index.cjs.map +1 -1
  415. package/dist/vault/index.d.cts +1 -1
  416. package/dist/vault/index.d.ts +1 -1
  417. package/dist/vault/index.js +6 -6
  418. package/dist/vault/index.js.map +1 -1
  419. package/dist/vault/types.d.cts +1 -1
  420. package/dist/vault/types.d.ts +1 -1
  421. package/package.json +27 -1
  422. package/surface/apps.md +5 -5
  423. package/surface/auth.md +21 -19
  424. package/surface/chat.md +2 -2
  425. package/surface/componentsMcp.md +9 -0
  426. package/surface/dataScience.md +2 -2
  427. package/surface/kaiAgent.md +2 -2
  428. package/surface/management.md +43 -41
  429. package/surface/oauth.md +1 -0
  430. package/surface/queryService.md +4 -4
  431. package/surface/queue.md +2 -2
  432. package/surface/sdk.md +0 -24
  433. package/surface/storage.md +101 -71
  434. package/dist/ManagementClientAuthError-BcPYxAWZ.js +0 -16
  435. package/dist/ManagementClientAuthError-BcPYxAWZ.js.map +0 -1
  436. package/dist/ManagementClientAuthError-DHuykEPF.cjs +0 -21
  437. package/dist/ManagementClientAuthError-DHuykEPF.cjs.map +0 -1
  438. package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
  439. package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
  440. package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
  441. package/dist/authClient-CACOwVt0.js.map +0 -1
  442. package/dist/authClient-DZcAR-eW.cjs.map +0 -1
  443. package/dist/collect-97WhfEpt.js.map +0 -1
  444. package/dist/collect-B5TCNiT1.cjs.map +0 -1
  445. package/dist/constants-BDGRQqij.cjs.map +0 -1
  446. package/dist/constants-Cifrqsls.js.map +0 -1
  447. package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
  448. package/dist/createFetchClient-DITkTV2k.js.map +0 -1
  449. package/dist/index-BVhHt5lx.d.cts +0 -241
  450. package/dist/index-Bf8dr2KQ.d.ts +0 -16
  451. package/dist/index-BgR5zcjJ.d.ts +0 -241
  452. package/dist/index-CWPi7lBF.d.ts +0 -77
  453. package/dist/index-Dd40ojPr.d.cts +0 -77
  454. package/dist/index-DkCXaYsn.d.cts +0 -16
  455. package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
  456. package/dist/jobStatus-BJdbZ72V.js.map +0 -1
  457. package/dist/management-C5lf9nsU.cjs.map +0 -1
  458. package/dist/management-WAtKH6Tu.js.map +0 -1
  459. package/dist/project-B8wtlstY.d.cts +0 -18
  460. package/dist/project-BCc3mpAy.d.ts +0 -18
  461. package/dist/project-BvFi19K_.cjs.map +0 -1
  462. package/dist/project-DWwZv66D.js.map +0 -1
  463. package/dist/queryService-Blfz59Ms.js.map +0 -1
  464. package/dist/queryService-RlNYw7LG.cjs.map +0 -1
  465. package/dist/queue-BrgRdtOr.cjs.map +0 -1
  466. package/dist/queue-CNvR-M23.js.map +0 -1
  467. package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
  468. package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
  469. package/dist/storage-76Sf_z_H.cjs.map +0 -1
  470. package/dist/storage-RkNaOFJ-.js.map +0 -1
  471. package/dist/types-9SEE4icc.d.ts +0 -1298
  472. package/dist/types-BhOUS9j1.d.cts +0 -749
  473. package/dist/types-BjR8Yodc.d.cts +0 -1298
  474. package/dist/types-CLHaZv9f.d.cts +0 -1868
  475. package/dist/types-CaOtNjSZ.d.ts +0 -957
  476. package/dist/types-D1A4mAG0.d.cts +0 -66
  477. package/dist/types-D8pGSkRe.d.ts +0 -1868
  478. package/dist/types-DxN2siRW.d.ts +0 -66
  479. package/dist/types-ePSqbXRr.d.cts +0 -957
  480. package/dist/types-gcAb6olM.d.ts +0 -749
@@ -1,91 +1,70 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_jobStatus = require("../../jobStatus-B0E-MZ9I.cjs");
3
- const require_QueryJobTimeoutError = require("../../QueryJobTimeoutError-CVNPdCWX.cjs");
2
+ const require_collectByOffset = require("../../collectByOffset-DQsqtmJg.cjs");
4
3
  const require_ValidationError = require("../../ValidationError-D65QU0uq.cjs");
5
4
  //#region src/sdks/queryService/queryServiceSdk.ts
6
- const DEFAULT_WAIT_FOR_JOB_INTERVAL = 500;
7
- const DEFAULT_MAX_WAIT_TIME = 3e5;
8
5
  const DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5e3;
6
+ const DEFAULT_POLL_INTERVAL = 500;
7
+ const DEFAULT_TIMEOUT = 3e5;
9
8
  const assertPositiveInteger = (name, value) => {
10
9
  if (!Number.isInteger(value) || value <= 0) throw new require_ValidationError.ValidationError(`${name} must be a positive integer, got ${value}`);
11
10
  };
12
11
  /**
13
12
  * Higher-level SDK composing queryService client calls with job polling and result-page
14
- * auto-pagination for orchestrated workflows — mirrors sdks/storage's `createStorageSdk`.
13
+ * auto-pagination for orchestrated workflows.
15
14
  */
16
15
  const createQueryServiceSdk = ({ queryServiceClient }) => {
17
16
  /**
18
- * Polls a job until it reaches a terminal state (`completed`, `failed`, `canceled`).
19
- * Throws {@link QueryJobError} if the job fails, {@link QueryJobTimeoutError} if it doesn't reach
20
- * a terminal state within `maxWaitTime`.
17
+ * Fetches every page of a statement's results, merging them into a single {@link QueryResult}.
18
+ *
19
+ * - `columns`, `status`, `rowsAffected` and `message` describe the statement, so they are read off
20
+ * the first page; `collectByOffset` hands back only the rows.
21
+ * - A second consumer that needs the envelope back is the cue for a `collectPagesByOffset`
22
+ * sibling resolving `{ first, items }`, not for widening this closure.
21
23
  */
22
- const waitForJob = async (queryJobId, { interval = DEFAULT_WAIT_FOR_JOB_INTERVAL, maxWaitTime = DEFAULT_MAX_WAIT_TIME, signal } = {}) => {
23
- assertPositiveInteger("interval", interval);
24
- assertPositiveInteger("maxWaitTime", maxWaitTime);
25
- const status = await require_jobStatus.poll({
26
- pollFn: () => queryServiceClient.getQueryJob(queryJobId),
27
- until: ({ data }) => require_jobStatus.jobStatus.query.isTerminal(data.status),
28
- backoff: {
29
- type: "constant",
30
- interval
31
- },
32
- timeout: maxWaitTime,
33
- signal
34
- }).unwrap((result) => result.state === "errored" || result.state === "aborted" ? void 0 : new require_QueryJobTimeoutError.QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId));
35
- if (status.status === "failed") {
36
- const failedStatements = status.statements.filter((statement) => statement.status === "failed").map((statement) => ({
37
- id: statement.id,
38
- error: statement.error
39
- }));
40
- throw new require_QueryJobTimeoutError.QueryJobError(failedStatements[0]?.error ?? "Job failed", queryJobId, { failedStatements });
41
- }
42
- return status;
43
- };
44
- /** Fetches every page of a statement's results, merging them into a single {@link QueryResult}. */
45
24
  const fetchAllResultPages = async (queryJobId, statementId, pageSize, maxRows) => {
46
- const allData = [];
47
- let offset = 0;
48
25
  let firstPage;
49
- while (true) {
50
- const remaining = maxRows !== void 0 ? maxRows - allData.length : void 0;
51
- if (remaining !== void 0 && remaining <= 0) break;
52
- const currentPageSize = remaining !== void 0 ? Math.min(pageSize, remaining) : pageSize;
53
- const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {
54
- offset,
55
- pageSize: currentPageSize
56
- });
57
- firstPage ??= page;
58
- const pageData = page.data ?? [];
59
- allData.push(...pageData);
60
- if (pageData.length < currentPageSize) break;
61
- offset += pageData.length;
62
- if (firstPage.numberOfRows !== void 0 && allData.length >= firstPage.numberOfRows) break;
63
- }
26
+ const data = await require_collectByOffset.collectByOffset({
27
+ pageSize,
28
+ limit: maxRows,
29
+ fetchFrom: async (offset, pageSize) => {
30
+ const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {
31
+ offset,
32
+ pageSize
33
+ });
34
+ firstPage ??= page;
35
+ return page.data ?? [];
36
+ }
37
+ });
64
38
  if (!firstPage) throw new Error(`No result pages returned for statement ${statementId}`);
65
39
  return {
66
40
  ...firstPage,
67
- data: allData
41
+ data
68
42
  };
69
43
  };
70
44
  /**
71
45
  * Submits a query job, waits for completion, and fetches results for every statement —
72
46
  * auto-paginating each statement's results so sets larger than `pageSize` come back in full
73
47
  * instead of being truncated at the API's default page size.
48
+ *
49
+ * - Throws {@link QueryJobError} when the job ended `failed`, carrying the failed statements.
50
+ * - Throws the poll's failure when the wait timed out, was aborted or ran out of attempts.
74
51
  */
75
52
  const executeQuery = async (branchId, workspaceId, body, options = {}) => {
76
- const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;
53
+ const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, interval = DEFAULT_POLL_INTERVAL, timeout = DEFAULT_TIMEOUT, ...pollOptions } = options;
77
54
  assertPositiveInteger("pageSize", pageSize);
78
55
  if (maxRows !== void 0) assertPositiveInteger("maxRows", maxRows);
79
56
  const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);
80
- const status = await waitForJob(queryJobId, waitOptions);
57
+ const status = await queryServiceClient.poller({
58
+ init: { id: queryJobId },
59
+ interval,
60
+ timeout,
61
+ ...pollOptions
62
+ }).wait();
81
63
  const results = [];
82
64
  for (const statement of status.statements) results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));
83
65
  return results;
84
66
  };
85
- return {
86
- waitForJob,
87
- executeQuery
88
- };
67
+ return { executeQuery };
89
68
  };
90
69
  //#endregion
91
70
  exports.createQueryServiceSdk = createQueryServiceSdk;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["ValidationError","poll","jobStatus","QueryJobTimeoutError","QueryJobError"],"sources":["../../../src/sdks/queryService/queryServiceSdk.ts"],"sourcesContent":["import type { createQueryServiceClient } from '../../clients/queryService';\nimport type {\n GetQueryJobPath,\n JobStatusResponse,\n PostQueryBody,\n PostQueryPath,\n QueryResult,\n} from '../../clients/queryService/types';\nimport { jobStatus } from '../../domain/jobStatus';\nimport { QueryJobError, QueryJobTimeoutError, ValidationError } from '../../errors';\nimport { poll } from '../../utils/async';\n\nconst DEFAULT_WAIT_FOR_JOB_INTERVAL = 500; // ms, the shortest wait the poll engine takes\nconst DEFAULT_MAX_WAIT_TIME = 300_000; // 5 minutes\nconst DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5000;\n\nconst assertPositiveInteger = (name: string, value: number) => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new ValidationError(`${name} must be a positive integer, got ${value}`);\n }\n};\n\nexport type WaitForJobOptions = {\n /** Poll interval in ms, floored at 500 by the poll engine. Default: 500. */\n interval?: number;\n /** Give up and throw {@link QueryJobTimeoutError} after this many ms. Default: 300_000 (5 min). */\n maxWaitTime?: number;\n signal?: AbortSignal;\n};\n\nexport type ExecuteQueryOptions = WaitForJobOptions & {\n /** Page size used internally while auto-paginating each statement's results. Default: 5000. */\n pageSize?: number;\n /**\n * Caps the number of rows fetched per statement. Pagination stops once this many rows have been\n * collected. Default: unlimited (fetch every row).\n */\n maxRows?: number;\n};\n\ntype QueryServiceSdkOptions = {\n queryServiceClient: ReturnType<typeof createQueryServiceClient>;\n};\n\n/**\n * Higher-level SDK composing queryService client calls with job polling and result-page\n * auto-pagination for orchestrated workflows — mirrors sdks/storage's `createStorageSdk`.\n */\nexport const createQueryServiceSdk = ({ queryServiceClient }: QueryServiceSdkOptions) => {\n /**\n * Polls a job until it reaches a terminal state (`completed`, `failed`, `canceled`).\n * Throws {@link QueryJobError} if the job fails, {@link QueryJobTimeoutError} if it doesn't reach\n * a terminal state within `maxWaitTime`.\n */\n const waitForJob = async (\n queryJobId: GetQueryJobPath['queryJobId'],\n {\n interval = DEFAULT_WAIT_FOR_JOB_INTERVAL,\n maxWaitTime = DEFAULT_MAX_WAIT_TIME,\n signal,\n }: WaitForJobOptions = {},\n ): Promise<JobStatusResponse> => {\n assertPositiveInteger('interval', interval);\n assertPositiveInteger('maxWaitTime', maxWaitTime);\n\n const status = await poll({\n pollFn: () => queryServiceClient.getQueryJob(queryJobId),\n until: ({ data }) => jobStatus.query.isTerminal(data.status),\n backoff: { type: 'constant', interval },\n timeout: maxWaitTime,\n signal,\n }).unwrap((result) =>\n result.state === 'errored' || result.state === 'aborted'\n ? undefined\n : new QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId),\n );\n if (status.status === 'failed') {\n const failedStatements = status.statements\n .filter((statement) => statement.status === 'failed')\n .map((statement) => ({ id: statement.id, error: statement.error }));\n\n throw new QueryJobError(failedStatements[0]?.error ?? 'Job failed', queryJobId, {\n failedStatements,\n });\n }\n\n return status;\n };\n\n /** Fetches every page of a statement's results, merging them into a single {@link QueryResult}. */\n const fetchAllResultPages = async (\n queryJobId: string,\n statementId: string,\n pageSize: number,\n maxRows: number | undefined,\n ): Promise<QueryResult> => {\n const allData: NonNullable<QueryResult['data']> = [];\n let offset = 0;\n let firstPage: QueryResult | undefined;\n\n while (true) {\n const remaining = maxRows !== undefined ? maxRows - allData.length : undefined;\n if (remaining !== undefined && remaining <= 0) break;\n\n const currentPageSize = remaining !== undefined ? Math.min(pageSize, remaining) : pageSize;\n\n const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {\n offset,\n pageSize: currentPageSize,\n });\n firstPage ??= page;\n\n const pageData = page.data ?? [];\n allData.push(...pageData);\n\n // Stop once a page is shorter than requested (end of the result set, or a statement like DDL\n // that has no rows at all) or once `numberOfRows` — known from the first page — is reached.\n if (pageData.length < currentPageSize) break;\n offset += pageData.length;\n if (firstPage.numberOfRows !== undefined && allData.length >= firstPage.numberOfRows) break;\n }\n\n if (!firstPage) {\n // Unreachable: the loop always issues at least one request (pageSize/maxRows are validated as\n // positive integers by executeQuery), assigning firstPage on the first iteration.\n throw new Error(`No result pages returned for statement ${statementId}`);\n }\n\n return { ...firstPage, data: allData };\n };\n\n /**\n * Submits a query job, waits for completion, and fetches results for every statement —\n * auto-paginating each statement's results so sets larger than `pageSize` come back in full\n * instead of being truncated at the API's default page size.\n */\n const executeQuery = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n options: ExecuteQueryOptions = {},\n ): Promise<QueryResult[]> => {\n const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;\n assertPositiveInteger('pageSize', pageSize);\n if (maxRows !== undefined) assertPositiveInteger('maxRows', maxRows);\n\n const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);\n const status = await waitForJob(queryJobId, waitOptions);\n\n const results: QueryResult[] = [];\n for (const statement of status.statements) {\n results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));\n }\n\n return results;\n };\n\n return {\n waitForJob,\n executeQuery,\n };\n};\n"],"mappings":";;;;;AAYA,MAAM,gCAAgC;AACtC,MAAM,wBAAwB;AAC9B,MAAM,kCAAkC;AAExC,MAAM,yBAAyB,MAAc,UAAkB;CAC7D,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,SAAS,GACvC,MAAM,IAAIA,wBAAAA,gBAAgB,GAAG,KAAK,mCAAmC,OAAO;AAEhF;;;;;AA4BA,MAAa,yBAAyB,EAAE,yBAAiD;;;;;;CAMvF,MAAM,aAAa,OACjB,YACA,EACE,WAAW,+BACX,cAAc,uBACd,WACqB,CAAC,MACO;EAC/B,sBAAsB,YAAY,QAAQ;EAC1C,sBAAsB,eAAe,WAAW;EAEhD,MAAM,SAAS,MAAMC,kBAAAA,KAAK;GACxB,cAAc,mBAAmB,YAAY,UAAU;GACvD,QAAQ,EAAE,WAAWC,kBAAAA,UAAU,MAAM,WAAW,KAAK,MAAM;GAC3D,SAAS;IAAE,MAAM;IAAY;GAAS;GACtC,SAAS;GACT;EACF,CAAC,CAAC,CAAC,QAAQ,WACT,OAAO,UAAU,aAAa,OAAO,UAAU,YAC3C,KAAA,IACA,IAAIC,6BAAAA,qBAAqB,+BAA+B,YAAY,KAAK,UAAU,CACzF;EACA,IAAI,OAAO,WAAW,UAAU;GAC9B,MAAM,mBAAmB,OAAO,WAC7B,QAAQ,cAAc,UAAU,WAAW,QAAQ,CAAC,CACpD,KAAK,eAAe;IAAE,IAAI,UAAU;IAAI,OAAO,UAAU;GAAM,EAAE;GAEpE,MAAM,IAAIC,6BAAAA,cAAc,iBAAiB,EAAE,EAAE,SAAS,cAAc,YAAY,EAC9E,iBACF,CAAC;EACH;EAEA,OAAO;CACT;;CAGA,MAAM,sBAAsB,OAC1B,YACA,aACA,UACA,YACyB;EACzB,MAAM,UAA4C,CAAC;EACnD,IAAI,SAAS;EACb,IAAI;EAEJ,OAAO,MAAM;GACX,MAAM,YAAY,YAAY,KAAA,IAAY,UAAU,QAAQ,SAAS,KAAA;GACrE,IAAI,cAAc,KAAA,KAAa,aAAa,GAAG;GAE/C,MAAM,kBAAkB,cAAc,KAAA,IAAY,KAAK,IAAI,UAAU,SAAS,IAAI;GAElF,MAAM,OAAO,MAAM,mBAAmB,gBAAgB,YAAY,aAAa;IAC7E;IACA,UAAU;GACZ,CAAC;GACD,cAAc;GAEd,MAAM,WAAW,KAAK,QAAQ,CAAC;GAC/B,QAAQ,KAAK,GAAG,QAAQ;GAIxB,IAAI,SAAS,SAAS,iBAAiB;GACvC,UAAU,SAAS;GACnB,IAAI,UAAU,iBAAiB,KAAA,KAAa,QAAQ,UAAU,UAAU,cAAc;EACxF;EAEA,IAAI,CAAC,WAGH,MAAM,IAAI,MAAM,0CAA0C,aAAa;EAGzE,OAAO;GAAE,GAAG;GAAW,MAAM;EAAQ;CACvC;;;;;;CAOA,MAAM,eAAe,OACnB,UACA,aACA,MACA,UAA+B,CAAC,MACL;EAC3B,MAAM,EAAE,WAAW,iCAAiC,SAAS,GAAG,gBAAgB;EAChF,sBAAsB,YAAY,QAAQ;EAC1C,IAAI,YAAY,KAAA,GAAW,sBAAsB,WAAW,OAAO;EAEnE,MAAM,EAAE,eAAe,MAAM,mBAAmB,eAAe,UAAU,aAAa,IAAI;EAC1F,MAAM,SAAS,MAAM,WAAW,YAAY,WAAW;EAEvD,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,aAAa,OAAO,YAC7B,QAAQ,KAAK,MAAM,oBAAoB,YAAY,UAAU,IAAI,UAAU,OAAO,CAAC;EAGrF,OAAO;CACT;CAEA,OAAO;EACL;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["ValidationError","collectByOffset"],"sources":["../../../src/sdks/queryService/queryServiceSdk.ts"],"sourcesContent":["import type { createQueryServiceClient } from '../../clients/queryService';\nimport type {\n PostQueryBody,\n PostQueryPath,\n QueryJobPollOptions,\n QueryResult,\n} from '../../clients/queryService/types';\nimport { ValidationError } from '../../errors';\nimport { collectByOffset } from '../../utils/async';\n\nconst DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5000;\nconst DEFAULT_POLL_INTERVAL = 500;\nconst DEFAULT_TIMEOUT = 300_000;\n\nconst assertPositiveInteger = (name: string, value: number) => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new ValidationError(`${name} must be a positive integer, got ${value}`);\n }\n};\n\nexport type ExecuteQueryOptions = Omit<QueryJobPollOptions, 'interval' | 'timeout'> & {\n /** Poll interval in ms. Default: 500. */\n interval?: number;\n /** Give up after this many ms. Default: 300_000 (5 min). */\n timeout?: number;\n /** Page size used internally while auto-paginating each statement's results. Default: 5000. */\n pageSize?: number;\n /**\n * Caps the number of rows fetched per statement. Pagination stops once this many rows have been\n * collected. Default: unlimited (fetch every row).\n */\n maxRows?: number;\n};\n\ntype QueryServiceSdkOptions = {\n queryServiceClient: ReturnType<typeof createQueryServiceClient>;\n};\n\n/**\n * Higher-level SDK composing queryService client calls with job polling and result-page\n * auto-pagination for orchestrated workflows.\n */\nexport const createQueryServiceSdk = ({ queryServiceClient }: QueryServiceSdkOptions) => {\n /**\n * Fetches every page of a statement's results, merging them into a single {@link QueryResult}.\n *\n * - `columns`, `status`, `rowsAffected` and `message` describe the statement, so they are read off\n * the first page; `collectByOffset` hands back only the rows.\n * - A second consumer that needs the envelope back is the cue for a `collectPagesByOffset`\n * sibling resolving `{ first, items }`, not for widening this closure.\n */\n const fetchAllResultPages = async (\n queryJobId: string,\n statementId: string,\n pageSize: number,\n maxRows: number | undefined,\n ): Promise<QueryResult> => {\n let firstPage: QueryResult | undefined;\n\n const data = await collectByOffset({\n pageSize,\n limit: maxRows,\n fetchFrom: async (offset, pageSize) => {\n const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {\n offset,\n pageSize,\n });\n firstPage ??= page;\n\n return page.data ?? [];\n },\n });\n\n if (!firstPage) throw new Error(`No result pages returned for statement ${statementId}`);\n\n return { ...firstPage, data };\n };\n\n /**\n * Submits a query job, waits for completion, and fetches results for every statement —\n * auto-paginating each statement's results so sets larger than `pageSize` come back in full\n * instead of being truncated at the API's default page size.\n *\n * - Throws {@link QueryJobError} when the job ended `failed`, carrying the failed statements.\n * - Throws the poll's failure when the wait timed out, was aborted or ran out of attempts.\n */\n const executeQuery = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n options: ExecuteQueryOptions = {},\n ): Promise<QueryResult[]> => {\n const {\n pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE,\n maxRows,\n interval = DEFAULT_POLL_INTERVAL,\n timeout = DEFAULT_TIMEOUT,\n ...pollOptions\n } = options;\n assertPositiveInteger('pageSize', pageSize);\n if (maxRows !== undefined) assertPositiveInteger('maxRows', maxRows);\n\n const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);\n const status = await queryServiceClient\n .poller({ init: { id: queryJobId }, interval, timeout, ...pollOptions })\n .wait();\n const results: QueryResult[] = [];\n for (const statement of status.statements) {\n results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));\n }\n\n return results;\n };\n\n return {\n executeQuery,\n };\n};\n"],"mappings":";;;;AAUA,MAAM,kCAAkC;AACxC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AAExB,MAAM,yBAAyB,MAAc,UAAkB;CAC7D,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,SAAS,GACvC,MAAM,IAAIA,wBAAAA,gBAAgB,GAAG,KAAK,mCAAmC,OAAO;AAEhF;;;;;AAwBA,MAAa,yBAAyB,EAAE,yBAAiD;;;;;;;;;CASvF,MAAM,sBAAsB,OAC1B,YACA,aACA,UACA,YACyB;EACzB,IAAI;EAEJ,MAAM,OAAO,MAAMC,wBAAAA,gBAAgB;GACjC;GACA,OAAO;GACP,WAAW,OAAO,QAAQ,aAAa;IACrC,MAAM,OAAO,MAAM,mBAAmB,gBAAgB,YAAY,aAAa;KAC7E;KACA;IACF,CAAC;IACD,cAAc;IAEd,OAAO,KAAK,QAAQ,CAAC;GACvB;EACF,CAAC;EAED,IAAI,CAAC,WAAW,MAAM,IAAI,MAAM,0CAA0C,aAAa;EAEvF,OAAO;GAAE,GAAG;GAAW;EAAK;CAC9B;;;;;;;;;CAUA,MAAM,eAAe,OACnB,UACA,aACA,MACA,UAA+B,CAAC,MACL;EAC3B,MAAM,EACJ,WAAW,iCACX,SACA,WAAW,uBACX,UAAU,iBACV,GAAG,gBACD;EACJ,sBAAsB,YAAY,QAAQ;EAC1C,IAAI,YAAY,KAAA,GAAW,sBAAsB,WAAW,OAAO;EAEnE,MAAM,EAAE,eAAe,MAAM,mBAAmB,eAAe,UAAU,aAAa,IAAI;EAC1F,MAAM,SAAS,MAAM,mBAClB,OAAO;GAAE,MAAM,EAAE,IAAI,WAAW;GAAG;GAAU;GAAS,GAAG;EAAY,CAAC,CAAC,CACvE,KAAK;EACR,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,aAAa,OAAO,YAC7B,QAAQ,KAAK,MAAM,oBAAoB,YAAY,UAAU,IAAI,UAAU,OAAO,CAAC;EAGrF,OAAO;CACT;CAEA,OAAO,EACL,aACF;AACF"}
@@ -1,2 +1,2 @@
1
- import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-CGFGd3tF.cjs";
2
- export { ExecuteQueryOptions, WaitForJobOptions, createQueryServiceSdk };
1
+ import { b as ExecuteQueryOptions, x as createQueryServiceSdk } from "../../index-CkwZ5x7E.cjs";
2
+ export { ExecuteQueryOptions, createQueryServiceSdk };
@@ -1,2 +1,2 @@
1
- import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-Bl2EloC0.js";
2
- export { ExecuteQueryOptions, WaitForJobOptions, createQueryServiceSdk };
1
+ import { b as ExecuteQueryOptions, x as createQueryServiceSdk } from "../../index-CAWy1qjR.js";
2
+ export { ExecuteQueryOptions, createQueryServiceSdk };
@@ -1,90 +1,69 @@
1
- import { i as poll, t as jobStatus } from "../../jobStatus-BJdbZ72V.js";
2
- import { r as QueryJobError, t as QueryJobTimeoutError } from "../../QueryJobTimeoutError-C7JbNGOM.js";
1
+ import { t as collectByOffset } from "../../collectByOffset-2XzJqmvr.js";
3
2
  import { t as ValidationError } from "../../ValidationError-DjhtNMfZ.js";
4
3
  //#region src/sdks/queryService/queryServiceSdk.ts
5
- const DEFAULT_WAIT_FOR_JOB_INTERVAL = 500;
6
- const DEFAULT_MAX_WAIT_TIME = 3e5;
7
4
  const DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5e3;
5
+ const DEFAULT_POLL_INTERVAL = 500;
6
+ const DEFAULT_TIMEOUT = 3e5;
8
7
  const assertPositiveInteger = (name, value) => {
9
8
  if (!Number.isInteger(value) || value <= 0) throw new ValidationError(`${name} must be a positive integer, got ${value}`);
10
9
  };
11
10
  /**
12
11
  * Higher-level SDK composing queryService client calls with job polling and result-page
13
- * auto-pagination for orchestrated workflows — mirrors sdks/storage's `createStorageSdk`.
12
+ * auto-pagination for orchestrated workflows.
14
13
  */
15
14
  const createQueryServiceSdk = ({ queryServiceClient }) => {
16
15
  /**
17
- * Polls a job until it reaches a terminal state (`completed`, `failed`, `canceled`).
18
- * Throws {@link QueryJobError} if the job fails, {@link QueryJobTimeoutError} if it doesn't reach
19
- * a terminal state within `maxWaitTime`.
16
+ * Fetches every page of a statement's results, merging them into a single {@link QueryResult}.
17
+ *
18
+ * - `columns`, `status`, `rowsAffected` and `message` describe the statement, so they are read off
19
+ * the first page; `collectByOffset` hands back only the rows.
20
+ * - A second consumer that needs the envelope back is the cue for a `collectPagesByOffset`
21
+ * sibling resolving `{ first, items }`, not for widening this closure.
20
22
  */
21
- const waitForJob = async (queryJobId, { interval = DEFAULT_WAIT_FOR_JOB_INTERVAL, maxWaitTime = DEFAULT_MAX_WAIT_TIME, signal } = {}) => {
22
- assertPositiveInteger("interval", interval);
23
- assertPositiveInteger("maxWaitTime", maxWaitTime);
24
- const status = await poll({
25
- pollFn: () => queryServiceClient.getQueryJob(queryJobId),
26
- until: ({ data }) => jobStatus.query.isTerminal(data.status),
27
- backoff: {
28
- type: "constant",
29
- interval
30
- },
31
- timeout: maxWaitTime,
32
- signal
33
- }).unwrap((result) => result.state === "errored" || result.state === "aborted" ? void 0 : new QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId));
34
- if (status.status === "failed") {
35
- const failedStatements = status.statements.filter((statement) => statement.status === "failed").map((statement) => ({
36
- id: statement.id,
37
- error: statement.error
38
- }));
39
- throw new QueryJobError(failedStatements[0]?.error ?? "Job failed", queryJobId, { failedStatements });
40
- }
41
- return status;
42
- };
43
- /** Fetches every page of a statement's results, merging them into a single {@link QueryResult}. */
44
23
  const fetchAllResultPages = async (queryJobId, statementId, pageSize, maxRows) => {
45
- const allData = [];
46
- let offset = 0;
47
24
  let firstPage;
48
- while (true) {
49
- const remaining = maxRows !== void 0 ? maxRows - allData.length : void 0;
50
- if (remaining !== void 0 && remaining <= 0) break;
51
- const currentPageSize = remaining !== void 0 ? Math.min(pageSize, remaining) : pageSize;
52
- const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {
53
- offset,
54
- pageSize: currentPageSize
55
- });
56
- firstPage ??= page;
57
- const pageData = page.data ?? [];
58
- allData.push(...pageData);
59
- if (pageData.length < currentPageSize) break;
60
- offset += pageData.length;
61
- if (firstPage.numberOfRows !== void 0 && allData.length >= firstPage.numberOfRows) break;
62
- }
25
+ const data = await collectByOffset({
26
+ pageSize,
27
+ limit: maxRows,
28
+ fetchFrom: async (offset, pageSize) => {
29
+ const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {
30
+ offset,
31
+ pageSize
32
+ });
33
+ firstPage ??= page;
34
+ return page.data ?? [];
35
+ }
36
+ });
63
37
  if (!firstPage) throw new Error(`No result pages returned for statement ${statementId}`);
64
38
  return {
65
39
  ...firstPage,
66
- data: allData
40
+ data
67
41
  };
68
42
  };
69
43
  /**
70
44
  * Submits a query job, waits for completion, and fetches results for every statement —
71
45
  * auto-paginating each statement's results so sets larger than `pageSize` come back in full
72
46
  * instead of being truncated at the API's default page size.
47
+ *
48
+ * - Throws {@link QueryJobError} when the job ended `failed`, carrying the failed statements.
49
+ * - Throws the poll's failure when the wait timed out, was aborted or ran out of attempts.
73
50
  */
74
51
  const executeQuery = async (branchId, workspaceId, body, options = {}) => {
75
- const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;
52
+ const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, interval = DEFAULT_POLL_INTERVAL, timeout = DEFAULT_TIMEOUT, ...pollOptions } = options;
76
53
  assertPositiveInteger("pageSize", pageSize);
77
54
  if (maxRows !== void 0) assertPositiveInteger("maxRows", maxRows);
78
55
  const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);
79
- const status = await waitForJob(queryJobId, waitOptions);
56
+ const status = await queryServiceClient.poller({
57
+ init: { id: queryJobId },
58
+ interval,
59
+ timeout,
60
+ ...pollOptions
61
+ }).wait();
80
62
  const results = [];
81
63
  for (const statement of status.statements) results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));
82
64
  return results;
83
65
  };
84
- return {
85
- waitForJob,
86
- executeQuery
87
- };
66
+ return { executeQuery };
88
67
  };
89
68
  //#endregion
90
69
  export { createQueryServiceSdk };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/sdks/queryService/queryServiceSdk.ts"],"sourcesContent":["import type { createQueryServiceClient } from '../../clients/queryService';\nimport type {\n GetQueryJobPath,\n JobStatusResponse,\n PostQueryBody,\n PostQueryPath,\n QueryResult,\n} from '../../clients/queryService/types';\nimport { jobStatus } from '../../domain/jobStatus';\nimport { QueryJobError, QueryJobTimeoutError, ValidationError } from '../../errors';\nimport { poll } from '../../utils/async';\n\nconst DEFAULT_WAIT_FOR_JOB_INTERVAL = 500; // ms, the shortest wait the poll engine takes\nconst DEFAULT_MAX_WAIT_TIME = 300_000; // 5 minutes\nconst DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5000;\n\nconst assertPositiveInteger = (name: string, value: number) => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new ValidationError(`${name} must be a positive integer, got ${value}`);\n }\n};\n\nexport type WaitForJobOptions = {\n /** Poll interval in ms, floored at 500 by the poll engine. Default: 500. */\n interval?: number;\n /** Give up and throw {@link QueryJobTimeoutError} after this many ms. Default: 300_000 (5 min). */\n maxWaitTime?: number;\n signal?: AbortSignal;\n};\n\nexport type ExecuteQueryOptions = WaitForJobOptions & {\n /** Page size used internally while auto-paginating each statement's results. Default: 5000. */\n pageSize?: number;\n /**\n * Caps the number of rows fetched per statement. Pagination stops once this many rows have been\n * collected. Default: unlimited (fetch every row).\n */\n maxRows?: number;\n};\n\ntype QueryServiceSdkOptions = {\n queryServiceClient: ReturnType<typeof createQueryServiceClient>;\n};\n\n/**\n * Higher-level SDK composing queryService client calls with job polling and result-page\n * auto-pagination for orchestrated workflows — mirrors sdks/storage's `createStorageSdk`.\n */\nexport const createQueryServiceSdk = ({ queryServiceClient }: QueryServiceSdkOptions) => {\n /**\n * Polls a job until it reaches a terminal state (`completed`, `failed`, `canceled`).\n * Throws {@link QueryJobError} if the job fails, {@link QueryJobTimeoutError} if it doesn't reach\n * a terminal state within `maxWaitTime`.\n */\n const waitForJob = async (\n queryJobId: GetQueryJobPath['queryJobId'],\n {\n interval = DEFAULT_WAIT_FOR_JOB_INTERVAL,\n maxWaitTime = DEFAULT_MAX_WAIT_TIME,\n signal,\n }: WaitForJobOptions = {},\n ): Promise<JobStatusResponse> => {\n assertPositiveInteger('interval', interval);\n assertPositiveInteger('maxWaitTime', maxWaitTime);\n\n const status = await poll({\n pollFn: () => queryServiceClient.getQueryJob(queryJobId),\n until: ({ data }) => jobStatus.query.isTerminal(data.status),\n backoff: { type: 'constant', interval },\n timeout: maxWaitTime,\n signal,\n }).unwrap((result) =>\n result.state === 'errored' || result.state === 'aborted'\n ? undefined\n : new QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId),\n );\n if (status.status === 'failed') {\n const failedStatements = status.statements\n .filter((statement) => statement.status === 'failed')\n .map((statement) => ({ id: statement.id, error: statement.error }));\n\n throw new QueryJobError(failedStatements[0]?.error ?? 'Job failed', queryJobId, {\n failedStatements,\n });\n }\n\n return status;\n };\n\n /** Fetches every page of a statement's results, merging them into a single {@link QueryResult}. */\n const fetchAllResultPages = async (\n queryJobId: string,\n statementId: string,\n pageSize: number,\n maxRows: number | undefined,\n ): Promise<QueryResult> => {\n const allData: NonNullable<QueryResult['data']> = [];\n let offset = 0;\n let firstPage: QueryResult | undefined;\n\n while (true) {\n const remaining = maxRows !== undefined ? maxRows - allData.length : undefined;\n if (remaining !== undefined && remaining <= 0) break;\n\n const currentPageSize = remaining !== undefined ? Math.min(pageSize, remaining) : pageSize;\n\n const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {\n offset,\n pageSize: currentPageSize,\n });\n firstPage ??= page;\n\n const pageData = page.data ?? [];\n allData.push(...pageData);\n\n // Stop once a page is shorter than requested (end of the result set, or a statement like DDL\n // that has no rows at all) or once `numberOfRows` — known from the first page — is reached.\n if (pageData.length < currentPageSize) break;\n offset += pageData.length;\n if (firstPage.numberOfRows !== undefined && allData.length >= firstPage.numberOfRows) break;\n }\n\n if (!firstPage) {\n // Unreachable: the loop always issues at least one request (pageSize/maxRows are validated as\n // positive integers by executeQuery), assigning firstPage on the first iteration.\n throw new Error(`No result pages returned for statement ${statementId}`);\n }\n\n return { ...firstPage, data: allData };\n };\n\n /**\n * Submits a query job, waits for completion, and fetches results for every statement —\n * auto-paginating each statement's results so sets larger than `pageSize` come back in full\n * instead of being truncated at the API's default page size.\n */\n const executeQuery = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n options: ExecuteQueryOptions = {},\n ): Promise<QueryResult[]> => {\n const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;\n assertPositiveInteger('pageSize', pageSize);\n if (maxRows !== undefined) assertPositiveInteger('maxRows', maxRows);\n\n const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);\n const status = await waitForJob(queryJobId, waitOptions);\n\n const results: QueryResult[] = [];\n for (const statement of status.statements) {\n results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));\n }\n\n return results;\n };\n\n return {\n waitForJob,\n executeQuery,\n };\n};\n"],"mappings":";;;;AAYA,MAAM,gCAAgC;AACtC,MAAM,wBAAwB;AAC9B,MAAM,kCAAkC;AAExC,MAAM,yBAAyB,MAAc,UAAkB;CAC7D,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,SAAS,GACvC,MAAM,IAAI,gBAAgB,GAAG,KAAK,mCAAmC,OAAO;AAEhF;;;;;AA4BA,MAAa,yBAAyB,EAAE,yBAAiD;;;;;;CAMvF,MAAM,aAAa,OACjB,YACA,EACE,WAAW,+BACX,cAAc,uBACd,WACqB,CAAC,MACO;EAC/B,sBAAsB,YAAY,QAAQ;EAC1C,sBAAsB,eAAe,WAAW;EAEhD,MAAM,SAAS,MAAM,KAAK;GACxB,cAAc,mBAAmB,YAAY,UAAU;GACvD,QAAQ,EAAE,WAAW,UAAU,MAAM,WAAW,KAAK,MAAM;GAC3D,SAAS;IAAE,MAAM;IAAY;GAAS;GACtC,SAAS;GACT;EACF,CAAC,CAAC,CAAC,QAAQ,WACT,OAAO,UAAU,aAAa,OAAO,UAAU,YAC3C,KAAA,IACA,IAAI,qBAAqB,+BAA+B,YAAY,KAAK,UAAU,CACzF;EACA,IAAI,OAAO,WAAW,UAAU;GAC9B,MAAM,mBAAmB,OAAO,WAC7B,QAAQ,cAAc,UAAU,WAAW,QAAQ,CAAC,CACpD,KAAK,eAAe;IAAE,IAAI,UAAU;IAAI,OAAO,UAAU;GAAM,EAAE;GAEpE,MAAM,IAAI,cAAc,iBAAiB,EAAE,EAAE,SAAS,cAAc,YAAY,EAC9E,iBACF,CAAC;EACH;EAEA,OAAO;CACT;;CAGA,MAAM,sBAAsB,OAC1B,YACA,aACA,UACA,YACyB;EACzB,MAAM,UAA4C,CAAC;EACnD,IAAI,SAAS;EACb,IAAI;EAEJ,OAAO,MAAM;GACX,MAAM,YAAY,YAAY,KAAA,IAAY,UAAU,QAAQ,SAAS,KAAA;GACrE,IAAI,cAAc,KAAA,KAAa,aAAa,GAAG;GAE/C,MAAM,kBAAkB,cAAc,KAAA,IAAY,KAAK,IAAI,UAAU,SAAS,IAAI;GAElF,MAAM,OAAO,MAAM,mBAAmB,gBAAgB,YAAY,aAAa;IAC7E;IACA,UAAU;GACZ,CAAC;GACD,cAAc;GAEd,MAAM,WAAW,KAAK,QAAQ,CAAC;GAC/B,QAAQ,KAAK,GAAG,QAAQ;GAIxB,IAAI,SAAS,SAAS,iBAAiB;GACvC,UAAU,SAAS;GACnB,IAAI,UAAU,iBAAiB,KAAA,KAAa,QAAQ,UAAU,UAAU,cAAc;EACxF;EAEA,IAAI,CAAC,WAGH,MAAM,IAAI,MAAM,0CAA0C,aAAa;EAGzE,OAAO;GAAE,GAAG;GAAW,MAAM;EAAQ;CACvC;;;;;;CAOA,MAAM,eAAe,OACnB,UACA,aACA,MACA,UAA+B,CAAC,MACL;EAC3B,MAAM,EAAE,WAAW,iCAAiC,SAAS,GAAG,gBAAgB;EAChF,sBAAsB,YAAY,QAAQ;EAC1C,IAAI,YAAY,KAAA,GAAW,sBAAsB,WAAW,OAAO;EAEnE,MAAM,EAAE,eAAe,MAAM,mBAAmB,eAAe,UAAU,aAAa,IAAI;EAC1F,MAAM,SAAS,MAAM,WAAW,YAAY,WAAW;EAEvD,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,aAAa,OAAO,YAC7B,QAAQ,KAAK,MAAM,oBAAoB,YAAY,UAAU,IAAI,UAAU,OAAO,CAAC;EAGrF,OAAO;CACT;CAEA,OAAO;EACL;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/sdks/queryService/queryServiceSdk.ts"],"sourcesContent":["import type { createQueryServiceClient } from '../../clients/queryService';\nimport type {\n PostQueryBody,\n PostQueryPath,\n QueryJobPollOptions,\n QueryResult,\n} from '../../clients/queryService/types';\nimport { ValidationError } from '../../errors';\nimport { collectByOffset } from '../../utils/async';\n\nconst DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5000;\nconst DEFAULT_POLL_INTERVAL = 500;\nconst DEFAULT_TIMEOUT = 300_000;\n\nconst assertPositiveInteger = (name: string, value: number) => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new ValidationError(`${name} must be a positive integer, got ${value}`);\n }\n};\n\nexport type ExecuteQueryOptions = Omit<QueryJobPollOptions, 'interval' | 'timeout'> & {\n /** Poll interval in ms. Default: 500. */\n interval?: number;\n /** Give up after this many ms. Default: 300_000 (5 min). */\n timeout?: number;\n /** Page size used internally while auto-paginating each statement's results. Default: 5000. */\n pageSize?: number;\n /**\n * Caps the number of rows fetched per statement. Pagination stops once this many rows have been\n * collected. Default: unlimited (fetch every row).\n */\n maxRows?: number;\n};\n\ntype QueryServiceSdkOptions = {\n queryServiceClient: ReturnType<typeof createQueryServiceClient>;\n};\n\n/**\n * Higher-level SDK composing queryService client calls with job polling and result-page\n * auto-pagination for orchestrated workflows.\n */\nexport const createQueryServiceSdk = ({ queryServiceClient }: QueryServiceSdkOptions) => {\n /**\n * Fetches every page of a statement's results, merging them into a single {@link QueryResult}.\n *\n * - `columns`, `status`, `rowsAffected` and `message` describe the statement, so they are read off\n * the first page; `collectByOffset` hands back only the rows.\n * - A second consumer that needs the envelope back is the cue for a `collectPagesByOffset`\n * sibling resolving `{ first, items }`, not for widening this closure.\n */\n const fetchAllResultPages = async (\n queryJobId: string,\n statementId: string,\n pageSize: number,\n maxRows: number | undefined,\n ): Promise<QueryResult> => {\n let firstPage: QueryResult | undefined;\n\n const data = await collectByOffset({\n pageSize,\n limit: maxRows,\n fetchFrom: async (offset, pageSize) => {\n const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {\n offset,\n pageSize,\n });\n firstPage ??= page;\n\n return page.data ?? [];\n },\n });\n\n if (!firstPage) throw new Error(`No result pages returned for statement ${statementId}`);\n\n return { ...firstPage, data };\n };\n\n /**\n * Submits a query job, waits for completion, and fetches results for every statement —\n * auto-paginating each statement's results so sets larger than `pageSize` come back in full\n * instead of being truncated at the API's default page size.\n *\n * - Throws {@link QueryJobError} when the job ended `failed`, carrying the failed statements.\n * - Throws the poll's failure when the wait timed out, was aborted or ran out of attempts.\n */\n const executeQuery = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n options: ExecuteQueryOptions = {},\n ): Promise<QueryResult[]> => {\n const {\n pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE,\n maxRows,\n interval = DEFAULT_POLL_INTERVAL,\n timeout = DEFAULT_TIMEOUT,\n ...pollOptions\n } = options;\n assertPositiveInteger('pageSize', pageSize);\n if (maxRows !== undefined) assertPositiveInteger('maxRows', maxRows);\n\n const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);\n const status = await queryServiceClient\n .poller({ init: { id: queryJobId }, interval, timeout, ...pollOptions })\n .wait();\n const results: QueryResult[] = [];\n for (const statement of status.statements) {\n results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));\n }\n\n return results;\n };\n\n return {\n executeQuery,\n };\n};\n"],"mappings":";;;AAUA,MAAM,kCAAkC;AACxC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AAExB,MAAM,yBAAyB,MAAc,UAAkB;CAC7D,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,SAAS,GACvC,MAAM,IAAI,gBAAgB,GAAG,KAAK,mCAAmC,OAAO;AAEhF;;;;;AAwBA,MAAa,yBAAyB,EAAE,yBAAiD;;;;;;;;;CASvF,MAAM,sBAAsB,OAC1B,YACA,aACA,UACA,YACyB;EACzB,IAAI;EAEJ,MAAM,OAAO,MAAM,gBAAgB;GACjC;GACA,OAAO;GACP,WAAW,OAAO,QAAQ,aAAa;IACrC,MAAM,OAAO,MAAM,mBAAmB,gBAAgB,YAAY,aAAa;KAC7E;KACA;IACF,CAAC;IACD,cAAc;IAEd,OAAO,KAAK,QAAQ,CAAC;GACvB;EACF,CAAC;EAED,IAAI,CAAC,WAAW,MAAM,IAAI,MAAM,0CAA0C,aAAa;EAEvF,OAAO;GAAE,GAAG;GAAW;EAAK;CAC9B;;;;;;;;;CAUA,MAAM,eAAe,OACnB,UACA,aACA,MACA,UAA+B,CAAC,MACL;EAC3B,MAAM,EACJ,WAAW,iCACX,SACA,WAAW,uBACX,UAAU,iBACV,GAAG,gBACD;EACJ,sBAAsB,YAAY,QAAQ;EAC1C,IAAI,YAAY,KAAA,GAAW,sBAAsB,WAAW,OAAO;EAEnE,MAAM,EAAE,eAAe,MAAM,mBAAmB,eAAe,UAAU,aAAa,IAAI;EAC1F,MAAM,SAAS,MAAM,mBAClB,OAAO;GAAE,MAAM,EAAE,IAAI,WAAW;GAAG;GAAU;GAAS,GAAG;EAAY,CAAC,CAAC,CACvE,KAAK;EACR,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,aAAa,OAAO,YAC7B,QAAQ,KAAK,MAAM,oBAAoB,YAAY,UAAU,IAAI,UAAU,OAAO,CAAC;EAGrF,OAAO;CACT;CAEA,OAAO,EACL,aACF;AACF"}
@@ -1,4 +1,4 @@
1
- import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-DdsYv2WG.cjs";
1
+ import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-CMKIdreQ.cjs";
2
2
  import { z } from "zod";
3
3
  //#region src/sdks/semanticLayer/errorMessage.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-CABWhTa9.js";
1
+ import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-BiBBKcin.js";
2
2
  import { z } from "zod";
3
3
  //#region src/sdks/semanticLayer/errorMessage.d.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-DdsYv2WG.cjs";
1
+ import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-CMKIdreQ.cjs";
2
2
  export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData, SemanticModelChildRef, SemanticModelData, SemanticObject, SemanticObjectMeta, SemanticObjectScope, SemanticObjectType, SemanticRelationshipData, SemanticRelationshipJoinType, SemanticRuleExpression, SemanticRuleOperator, SemanticUnreadableObjectRef, SemanticValidationQuery, UpdateSemanticObjectMeta };
@@ -1,2 +1,2 @@
1
- import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-CABWhTa9.js";
1
+ import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-BiBBKcin.js";
2
2
  export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData, SemanticModelChildRef, SemanticModelData, SemanticObject, SemanticObjectMeta, SemanticObjectScope, SemanticObjectType, SemanticRelationshipData, SemanticRelationshipJoinType, SemanticRuleExpression, SemanticRuleOperator, SemanticUnreadableObjectRef, SemanticValidationQuery, UpdateSemanticObjectMeta };
@@ -1,122 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/sdks/storage/storageSdk.ts
3
- const createStorageSdk = ({ storageClient }) => {
4
- const waitForJob = async (job, options) => {
5
- return storageClient.poller(job, {
6
- interval: options?.interval,
7
- maxAttempts: options?.maxAttempts,
8
- signal: options?.abortSignal
9
- }).unwrap();
10
- };
11
- const createTable = async (input, options) => {
12
- const job = await storageClient.tables.createTableAsync(input, options?.abortSignal);
13
- return waitForJob(job, options);
14
- };
15
- const createTableDefinition = async (input, options) => {
16
- const job = await storageClient.tables.createTableDefinitionAsync(input, options?.abortSignal);
17
- return waitForJob(job, options);
18
- };
19
- const importFromFile = async (input, options) => {
20
- const job = await storageClient.tables.importAsync(input, options?.abortSignal);
21
- return waitForJob(job, options);
22
- };
23
- const exportToFile = async (input, options) => {
24
- const job = await storageClient.tables.exportAsync(input, options?.abortSignal);
25
- return waitForJob(job, options);
26
- };
27
- const createBucketListing = async (input, options) => {
28
- const job = await storageClient.bucketListings.createListingAsync(input, options?.abortSignal);
29
- return waitForJob(job, options);
30
- };
31
- const updateBucketListing = async (input, options) => {
32
- const job = await storageClient.bucketListings.updateListingAsync(input, options?.abortSignal);
33
- return waitForJob(job, options);
34
- };
35
- const deleteBucketListing = async (input, options) => {
36
- const job = await storageClient.bucketListings.deleteListingAsync(input, options?.abortSignal);
37
- return waitForJob(job, options);
38
- };
39
- const shareBucketToOrganization = async (input, options) => {
40
- const job = await storageClient.bucketSharing.shareBucketToOrganizationAsync(input, options?.abortSignal);
41
- return waitForJob(job, options);
42
- };
43
- const shareBucketToOrganizationProject = async (input, options) => {
44
- const job = await storageClient.bucketSharing.shareBucketToOrganizationProjectAsync(input, options?.abortSignal);
45
- return waitForJob(job, options);
46
- };
47
- const shareBucketToProjects = async (input, options) => {
48
- const job = await storageClient.bucketSharing.shareBucketToProjectsAsync(input, options?.abortSignal);
49
- return waitForJob(job, options);
50
- };
51
- const shareBucketToUsers = async (input, options) => {
52
- const job = await storageClient.bucketSharing.shareBucketToUsersAsync(input, options?.abortSignal);
53
- return waitForJob(job, options);
54
- };
55
- const unshareBucket = async (input, options) => {
56
- const job = await storageClient.bucketSharing.unshareBucketAsync(input, options?.abortSignal);
57
- return waitForJob(job, options);
58
- };
59
- const forceUnlinkBucket = async (input, options) => {
60
- const job = await storageClient.bucketSharing.forceUnlinkBucketAsync(input, options?.abortSignal);
61
- return waitForJob(job, options);
62
- };
63
- const registerBucket = async (input, options) => {
64
- const job = await storageClient.bucketExternal.registerBucketAsync(input, options?.abortSignal);
65
- return waitForJob(job, options);
66
- };
67
- const refreshExternalBucket = async (input, options) => {
68
- const job = await storageClient.bucketExternal.refreshExternalBucketAsync(input, options?.abortSignal);
69
- return waitForJob(job, options);
70
- };
71
- const createSnapshot = async (input, options) => {
72
- const job = await storageClient.snapshots.createSnapshotAsync(input, options?.abortSignal);
73
- return waitForJob(job, options);
74
- };
75
- const pullTable = async (input, options) => {
76
- const job = await storageClient.tables.pullTableAsync(input, options?.abortSignal);
77
- return waitForJob(job, options);
78
- };
79
- const addTableColumn = async (input, options) => {
80
- const job = await storageClient.columns.addTableColumnAsync(input, options?.abortSignal);
81
- return waitForJob(job, options);
82
- };
83
- const deleteTableColumn = async (input, options) => {
84
- const job = await storageClient.columns.deleteTableColumnAsync(input, options?.abortSignal);
85
- return waitForJob(job, options);
86
- };
87
- const createTablePrimaryKey = async (input, options) => {
88
- const job = await storageClient.columns.createTablePrimaryKeyAsync(input, options?.abortSignal);
89
- return waitForJob(job, options);
90
- };
91
- const removeTablePrimaryKey = async (input, options) => {
92
- const job = await storageClient.columns.removeTablePrimaryKeyAsync(input, options?.abortSignal);
93
- return waitForJob(job, options);
94
- };
95
- return {
96
- createTable,
97
- createTableDefinition,
98
- importFromFile,
99
- exportToFile,
100
- createBucketListing,
101
- updateBucketListing,
102
- deleteBucketListing,
103
- shareBucketToOrganization,
104
- shareBucketToOrganizationProject,
105
- shareBucketToProjects,
106
- shareBucketToUsers,
107
- unshareBucket,
108
- forceUnlinkBucket,
109
- registerBucket,
110
- refreshExternalBucket,
111
- createSnapshot,
112
- pullTable,
113
- addTableColumn,
114
- deleteTableColumn,
115
- createTablePrimaryKey,
116
- removeTablePrimaryKey
117
- };
118
- };
119
- //#endregion
120
2
  //#region src/sdks/storage/tableIdParser.ts
121
3
  function parseTableId(tableId, defaultStage, defaultBucket) {
122
4
  const parts = tableId.match(/^(in|out)?\.(.+)?\.(.+)?$/);
@@ -241,7 +123,6 @@ const prefixTagsWithDevBranchId = (tags, branchId = null, options = {}) => {
241
123
  //#endregion
242
124
  exports.FQID_TYPES = FQID_TYPES;
243
125
  exports.constructFQID = constructFQID;
244
- exports.createStorageSdk = createStorageSdk;
245
126
  exports.parse = parse;
246
127
  exports.parseCurrentDevBranchIdFromUrl = parseCurrentDevBranchIdFromUrl;
247
128
  exports.parseDevBranchId = parseDevBranchId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/sdks/storage/storageSdk.ts","../../../src/sdks/storage/tableIdParser.ts","../../../src/sdks/storage/fqid.ts","../../../src/sdks/storage/devBranch.ts"],"sourcesContent":["import type { createStorageClient } from '../../clients/storage';\nimport type {\n RefreshExternalBucketInput,\n RegisterBucketInput,\n} from '../../clients/storage/bucketExternal/types';\nimport type {\n CreateBucketListingInput,\n DeleteBucketListingInput,\n UpdateBucketListingInput,\n} from '../../clients/storage/bucketListings/types';\nimport type {\n ForceUnlinkBucketInput,\n ShareBucketToOrganizationInput,\n ShareBucketToOrganizationProjectInput,\n ShareBucketToProjectsInput,\n ShareBucketToUsersInput,\n UnshareBucketInput,\n} from '../../clients/storage/bucketSharing/types';\nimport type {\n AddTableColumnInput,\n CreateTablePrimaryKeyInput,\n DeleteTableColumnInput,\n RemoveTablePrimaryKeyInput,\n} from '../../clients/storage/columns/types';\nimport type { Job, JobOperation } from '../../clients/storage/jobs/types';\nimport type { CreateSnapshotInput } from '../../clients/storage/snapshots/types';\nimport type {\n CreateTableAsyncInput,\n CreateTableDefinitionInput,\n ExportAsyncInput,\n ImportAsyncInput,\n PullTableAsyncInput,\n} from '../../clients/storage/tables/types';\n\ntype Options = {\n interval?: number;\n maxAttempts?: number;\n abortSignal?: AbortSignal;\n};\n\ntype StorageSdkOptions = {\n storageClient: ReturnType<typeof createStorageClient>;\n};\n\nexport const createStorageSdk = ({ storageClient }: StorageSdkOptions) => {\n const waitForJob = async <Operation extends JobOperation | string>(\n job: Job<Operation> & { operationName: Operation },\n options?: Options,\n ) => {\n // A poll reports its ending; this SDK throws, so a caller can keep awaiting the job it asked for.\n return storageClient\n .poller<Operation>(job, {\n interval: options?.interval,\n maxAttempts: options?.maxAttempts,\n signal: options?.abortSignal,\n })\n .unwrap();\n };\n\n const createTable = async (input: CreateTableAsyncInput, options?: Options) => {\n const job = await storageClient.tables.createTableAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const createTableDefinition = async (input: CreateTableDefinitionInput, options?: Options) => {\n const job = await storageClient.tables.createTableDefinitionAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const importFromFile = async (input: ImportAsyncInput, options?: Options) => {\n const job = await storageClient.tables.importAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const exportToFile = async (input: ExportAsyncInput, options?: Options) => {\n const job = await storageClient.tables.exportAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const createBucketListing = async (input: CreateBucketListingInput, options?: Options) => {\n const job = await storageClient.bucketListings.createListingAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const updateBucketListing = async (input: UpdateBucketListingInput, options?: Options) => {\n const job = await storageClient.bucketListings.updateListingAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const deleteBucketListing = async (input: DeleteBucketListingInput, options?: Options) => {\n const job = await storageClient.bucketListings.deleteListingAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const shareBucketToOrganization = async (\n input: ShareBucketToOrganizationInput,\n options?: Options,\n ) => {\n const job = await storageClient.bucketSharing.shareBucketToOrganizationAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToOrganizationProject = async (\n input: ShareBucketToOrganizationProjectInput,\n options?: Options,\n ) => {\n const job = await storageClient.bucketSharing.shareBucketToOrganizationProjectAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToProjects = async (input: ShareBucketToProjectsInput, options?: Options) => {\n const job = await storageClient.bucketSharing.shareBucketToProjectsAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToUsers = async (input: ShareBucketToUsersInput, options?: Options) => {\n const job = await storageClient.bucketSharing.shareBucketToUsersAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const unshareBucket = async (input: UnshareBucketInput, options?: Options) => {\n const job = await storageClient.bucketSharing.unshareBucketAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const forceUnlinkBucket = async (input: ForceUnlinkBucketInput, options?: Options) => {\n const job = await storageClient.bucketSharing.forceUnlinkBucketAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const registerBucket = async (input: RegisterBucketInput, options?: Options) => {\n const job = await storageClient.bucketExternal.registerBucketAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const refreshExternalBucket = async (input: RefreshExternalBucketInput, options?: Options) => {\n const job = await storageClient.bucketExternal.refreshExternalBucketAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const createSnapshot = async (input: CreateSnapshotInput, options?: Options) => {\n const job = await storageClient.snapshots.createSnapshotAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const pullTable = async (input: PullTableAsyncInput, options?: Options) => {\n const job = await storageClient.tables.pullTableAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const addTableColumn = async (input: AddTableColumnInput, options?: Options) => {\n const job = await storageClient.columns.addTableColumnAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const deleteTableColumn = async (input: DeleteTableColumnInput, options?: Options) => {\n const job = await storageClient.columns.deleteTableColumnAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const createTablePrimaryKey = async (input: CreateTablePrimaryKeyInput, options?: Options) => {\n const job = await storageClient.columns.createTablePrimaryKeyAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const removeTablePrimaryKey = async (input: RemoveTablePrimaryKeyInput, options?: Options) => {\n const job = await storageClient.columns.removeTablePrimaryKeyAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n return {\n createTable,\n createTableDefinition,\n importFromFile,\n exportToFile,\n createBucketListing,\n updateBucketListing,\n deleteBucketListing,\n shareBucketToOrganization,\n shareBucketToOrganizationProject,\n shareBucketToProjects,\n shareBucketToUsers,\n unshareBucket,\n forceUnlinkBucket,\n registerBucket,\n refreshExternalBucket,\n createSnapshot,\n pullTable,\n addTableColumn,\n deleteTableColumn,\n createTablePrimaryKey,\n removeTablePrimaryKey,\n };\n};\n","function parseTableId(tableId: string, defaultStage: string, defaultBucket: string) {\n const parts = tableId.match(/^(in|out)?\\.(.+)?\\.(.+)?$/);\n\n return {\n stage: parts ? parts[1] || defaultStage : defaultStage,\n bucket: parts ? parts[2] || defaultBucket : defaultBucket,\n table: parts ? parts[3] || '' : '',\n };\n}\n\nexport function parse(\n tableId: string | null,\n options: { defaultStage?: string; defaultBucket?: string } = {},\n) {\n const parts = parseTableId(\n tableId || '',\n options.defaultStage || '',\n options.defaultBucket || '',\n );\n\n const { stage, bucket, table } = parts;\n return {\n tableId: `${stage}.${bucket}.${table}`,\n parts,\n setPart: (partNameToSet: string, value: string) => {\n const result = (['stage', 'bucket', 'table'] as const)\n .reduce(\n (memo, partName) =>\n partName === partNameToSet ? `${memo}.${value}` : `${memo}.${parts[partName]}`,\n '',\n )\n .slice(1);\n return parse(result);\n },\n };\n}\n\nexport const tableIdParser = { parse };\n","export const FQID_TYPES = {\n organization: 'ORG',\n maintainer: 'MTR',\n project: 'PRJ',\n bucket: 'BCT',\n table: 'TBL',\n column: 'COL',\n config: 'CFG',\n component: 'CMP',\n externalTable: 'EX_TBL',\n externalColumn: 'EX_COL',\n} as const;\n\ntype FQIDTypes = typeof FQID_TYPES;\n\nexport type ParsedFQID = {\n type?: (typeof FQID_TYPES)[keyof typeof FQID_TYPES];\n organizationId?: string;\n maintainerId?: string;\n projectId?: string;\n bucketId?: string;\n tableId?: string;\n componentId?: string;\n configId?: string;\n column?: string;\n};\n\nconst isFQIDType = (value: string): value is FQIDTypes[keyof FQIDTypes] => {\n return Object.values(FQID_TYPES).includes(value as FQIDTypes[keyof FQIDTypes]);\n};\n\nconst parseFQID = (fqid?: string): ParsedFQID | Record<string, never> => {\n if (!fqid?.trim()) return {};\n\n const firstSegment = fqid.split(' ')[0] ?? '';\n const [type, ...rest] = firstSegment.split('/');\n\n if (!type || !isFQIDType(type)) return {};\n\n switch (type) {\n case 'ORG':\n return { type, organizationId: rest[0] };\n case 'MTR':\n return { type, maintainerId: rest[0] };\n case 'PRJ':\n return { type, projectId: rest[0] };\n case 'BCT':\n return { type, projectId: rest[0], bucketId: rest[1] };\n case 'TBL':\n return { type, projectId: rest[0], tableId: rest[1] };\n case 'COL':\n return { type, projectId: rest[0], tableId: rest[1], column: rest[2] };\n case 'CMP':\n return { type, projectId: rest[0], componentId: rest[1] };\n case 'CFG':\n return { type, projectId: rest[0], componentId: rest[1], configId: rest[2] };\n default:\n return {};\n }\n};\n\ntype FQIDData =\n | {\n type: FQIDTypes['organization'];\n data: { organizationId: string };\n }\n | {\n type: FQIDTypes['maintainer'];\n data: { maintainerId: string };\n }\n | {\n type: FQIDTypes['project'];\n data: { projectId: string };\n }\n | {\n type: FQIDTypes['bucket'];\n data: { projectId: string; bucketId: string };\n }\n | {\n type: FQIDTypes['table'];\n data: { projectId: string; tableId: string };\n }\n | {\n type: FQIDTypes['column'];\n data: { projectId: string; tableId: string; column: string };\n }\n | {\n type: FQIDTypes['component'];\n data: { projectId: string; componentId: string };\n }\n | {\n type: FQIDTypes['config'];\n data: { projectId: string; componentId: string; configId: string };\n };\n\nconst constructFQID = ({ type, data }: FQIDData) => {\n switch (type) {\n case FQID_TYPES.organization:\n return `ORG/${data.organizationId}`;\n case FQID_TYPES.maintainer:\n return `MTR/${data.maintainerId}`;\n case FQID_TYPES.project:\n return `PRJ/${data.projectId}`;\n case FQID_TYPES.bucket:\n return `BCT/${data.projectId}/${data.bucketId}`;\n case FQID_TYPES.table:\n return `TBL/${data.projectId}/${data.tableId}`;\n case FQID_TYPES.column:\n return `COL/${data.projectId}/${data.tableId}/${data.column}`;\n case FQID_TYPES.component:\n return `CMP/${data.projectId}/${data.componentId}`;\n case FQID_TYPES.config:\n return `CFG/${data.projectId}/${data.componentId}/${data.configId}`;\n }\n};\n\nexport { parseFQID, constructFQID };\n","export const parseDevBranchId = (path: string): number | null => {\n const pathParts = path.split('/');\n const branchKeywordIndex = pathParts.findIndex((pathPart) => pathPart === 'branch');\n if (branchKeywordIndex === -1) {\n return null;\n }\n const branchId = pathParts[branchKeywordIndex + 1];\n if (!branchId) {\n return null;\n }\n const branchIdInt = parseInt(branchId, 10);\n if (/^\\d+$/.test(branchId) && branchIdInt > 0) {\n return branchIdInt;\n }\n return null;\n};\n\nexport const parseCurrentDevBranchIdFromUrl = (): number | null => {\n if (typeof location === 'undefined') {\n return null;\n }\n return parseDevBranchId(location.pathname);\n};\n\ntype PrefixTagsOptions = {\n hasStorageBranches?: boolean;\n};\n\nexport const prefixTagsWithDevBranchId = (\n tags: string[],\n branchId: number | string | null = null,\n options: PrefixTagsOptions = {},\n): string[] => {\n if (!branchId || options.hasStorageBranches) {\n return tags;\n }\n\n return tags.map((tag) => `${branchId}-${tag}`);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/sdks/storage/tableIdParser.ts","../../../src/sdks/storage/fqid.ts","../../../src/sdks/storage/devBranch.ts"],"sourcesContent":["function parseTableId(tableId: string, defaultStage: string, defaultBucket: string) {\n const parts = tableId.match(/^(in|out)?\\.(.+)?\\.(.+)?$/);\n\n return {\n stage: parts ? parts[1] || defaultStage : defaultStage,\n bucket: parts ? parts[2] || defaultBucket : defaultBucket,\n table: parts ? parts[3] || '' : '',\n };\n}\n\nexport function parse(\n tableId: string | null,\n options: { defaultStage?: string; defaultBucket?: string } = {},\n) {\n const parts = parseTableId(\n tableId || '',\n options.defaultStage || '',\n options.defaultBucket || '',\n );\n\n const { stage, bucket, table } = parts;\n return {\n tableId: `${stage}.${bucket}.${table}`,\n parts,\n setPart: (partNameToSet: string, value: string) => {\n const result = (['stage', 'bucket', 'table'] as const)\n .reduce(\n (memo, partName) =>\n partName === partNameToSet ? `${memo}.${value}` : `${memo}.${parts[partName]}`,\n '',\n )\n .slice(1);\n return parse(result);\n },\n };\n}\n\nexport const tableIdParser = { parse };\n","export const FQID_TYPES = {\n organization: 'ORG',\n maintainer: 'MTR',\n project: 'PRJ',\n bucket: 'BCT',\n table: 'TBL',\n column: 'COL',\n config: 'CFG',\n component: 'CMP',\n externalTable: 'EX_TBL',\n externalColumn: 'EX_COL',\n} as const;\n\ntype FQIDTypes = typeof FQID_TYPES;\n\nexport type ParsedFQID = {\n type?: (typeof FQID_TYPES)[keyof typeof FQID_TYPES];\n organizationId?: string;\n maintainerId?: string;\n projectId?: string;\n bucketId?: string;\n tableId?: string;\n componentId?: string;\n configId?: string;\n column?: string;\n};\n\nconst isFQIDType = (value: string): value is FQIDTypes[keyof FQIDTypes] => {\n return Object.values(FQID_TYPES).includes(value as FQIDTypes[keyof FQIDTypes]);\n};\n\nconst parseFQID = (fqid?: string): ParsedFQID | Record<string, never> => {\n if (!fqid?.trim()) return {};\n\n const firstSegment = fqid.split(' ')[0] ?? '';\n const [type, ...rest] = firstSegment.split('/');\n\n if (!type || !isFQIDType(type)) return {};\n\n switch (type) {\n case 'ORG':\n return { type, organizationId: rest[0] };\n case 'MTR':\n return { type, maintainerId: rest[0] };\n case 'PRJ':\n return { type, projectId: rest[0] };\n case 'BCT':\n return { type, projectId: rest[0], bucketId: rest[1] };\n case 'TBL':\n return { type, projectId: rest[0], tableId: rest[1] };\n case 'COL':\n return { type, projectId: rest[0], tableId: rest[1], column: rest[2] };\n case 'CMP':\n return { type, projectId: rest[0], componentId: rest[1] };\n case 'CFG':\n return { type, projectId: rest[0], componentId: rest[1], configId: rest[2] };\n default:\n return {};\n }\n};\n\ntype FQIDData =\n | {\n type: FQIDTypes['organization'];\n data: { organizationId: string };\n }\n | {\n type: FQIDTypes['maintainer'];\n data: { maintainerId: string };\n }\n | {\n type: FQIDTypes['project'];\n data: { projectId: string };\n }\n | {\n type: FQIDTypes['bucket'];\n data: { projectId: string; bucketId: string };\n }\n | {\n type: FQIDTypes['table'];\n data: { projectId: string; tableId: string };\n }\n | {\n type: FQIDTypes['column'];\n data: { projectId: string; tableId: string; column: string };\n }\n | {\n type: FQIDTypes['component'];\n data: { projectId: string; componentId: string };\n }\n | {\n type: FQIDTypes['config'];\n data: { projectId: string; componentId: string; configId: string };\n };\n\nconst constructFQID = ({ type, data }: FQIDData) => {\n switch (type) {\n case FQID_TYPES.organization:\n return `ORG/${data.organizationId}`;\n case FQID_TYPES.maintainer:\n return `MTR/${data.maintainerId}`;\n case FQID_TYPES.project:\n return `PRJ/${data.projectId}`;\n case FQID_TYPES.bucket:\n return `BCT/${data.projectId}/${data.bucketId}`;\n case FQID_TYPES.table:\n return `TBL/${data.projectId}/${data.tableId}`;\n case FQID_TYPES.column:\n return `COL/${data.projectId}/${data.tableId}/${data.column}`;\n case FQID_TYPES.component:\n return `CMP/${data.projectId}/${data.componentId}`;\n case FQID_TYPES.config:\n return `CFG/${data.projectId}/${data.componentId}/${data.configId}`;\n }\n};\n\nexport { parseFQID, constructFQID };\n","export const parseDevBranchId = (path: string): number | null => {\n const pathParts = path.split('/');\n const branchKeywordIndex = pathParts.findIndex((pathPart) => pathPart === 'branch');\n if (branchKeywordIndex === -1) {\n return null;\n }\n const branchId = pathParts[branchKeywordIndex + 1];\n if (!branchId) {\n return null;\n }\n const branchIdInt = parseInt(branchId, 10);\n if (/^\\d+$/.test(branchId) && branchIdInt > 0) {\n return branchIdInt;\n }\n return null;\n};\n\nexport const parseCurrentDevBranchIdFromUrl = (): number | null => {\n if (typeof location === 'undefined') {\n return null;\n }\n return parseDevBranchId(location.pathname);\n};\n\ntype PrefixTagsOptions = {\n hasStorageBranches?: boolean;\n};\n\nexport const prefixTagsWithDevBranchId = (\n tags: string[],\n branchId: number | string | null = null,\n options: PrefixTagsOptions = {},\n): string[] => {\n if (!branchId || options.hasStorageBranches) {\n return tags;\n }\n\n return tags.map((tag) => `${branchId}-${tag}`);\n};\n"],"mappings":"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"}