@keboola/api-client 46.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 (462) hide show
  1. package/AGENTS.md +86 -21
  2. package/API-SURFACE.md +49 -29
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +47 -37
  5. package/dist/{ManagementSessionMintError-5FFyvBZi.js → ManagementSessionMintError-4Pkn5Oob.js} +2 -2
  6. package/dist/{ManagementSessionMintError-5FFyvBZi.js.map → ManagementSessionMintError-4Pkn5Oob.js.map} +1 -1
  7. package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs → ManagementSessionMintError-Cu9beG7j.cjs} +2 -2
  8. package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs.map → ManagementSessionMintError-Cu9beG7j.cjs.map} +1 -1
  9. package/dist/QueryJobError-ZZZ043Nm.js +22 -0
  10. package/dist/QueryJobError-ZZZ043Nm.js.map +1 -0
  11. package/dist/{QueryJobTimeoutError-CVNPdCWX.cjs → QueryJobError-irGiP5zh.cjs} +1 -29
  12. package/dist/QueryJobError-irGiP5zh.cjs.map +1 -0
  13. package/dist/QueueJobError-6qSEizWo.cjs +30 -0
  14. package/dist/QueueJobError-6qSEizWo.cjs.map +1 -0
  15. package/dist/QueueJobError-8bThS_Mc.js +19 -0
  16. package/dist/QueueJobError-8bThS_Mc.js.map +1 -0
  17. package/dist/adminRoles-B40yBcmq.js.map +1 -1
  18. package/dist/adminRoles-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-Dl0v684o.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-DGIctwbb.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-DSa5t2Ft.d.cts → authClient-Bso5UaXS.d.ts} +22 -4
  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-ZiaKSKpp.d.ts → authClient-aud2dUZd.d.cts} +22 -4
  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.d.cts +1 -2
  130. package/dist/domain/permissions/index.d.ts +1 -2
  131. package/dist/editor/index.cjs +2 -2
  132. package/dist/editor/index.d.cts +2 -2
  133. package/dist/editor/index.d.ts +2 -2
  134. package/dist/editor/index.js +2 -2
  135. package/dist/editor/types.d.cts +1 -1
  136. package/dist/editor/types.d.ts +1 -1
  137. package/dist/encryption/index.cjs +1 -1
  138. package/dist/encryption/index.d.cts +1 -1
  139. package/dist/encryption/index.d.ts +1 -1
  140. package/dist/encryption/index.js +1 -1
  141. package/dist/encryption/types.d.cts +1 -1
  142. package/dist/encryption/types.d.ts +1 -1
  143. package/dist/import/index.cjs +1 -1
  144. package/dist/import/index.d.cts +3 -3
  145. package/dist/import/index.d.ts +3 -3
  146. package/dist/import/index.js +1 -1
  147. package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
  148. package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
  149. package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
  150. package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
  151. package/dist/{index-DeQDdut6.d.cts → index-8ZjY7YD8.d.cts} +34 -2
  152. package/dist/{index-DCxVLGHH.d.ts → index-BGEuaZqI.d.cts} +11 -28
  153. package/dist/{index-se5ee8U1.d.ts → index-BIP0PoMW.d.ts} +4 -4
  154. package/dist/index-B_MzjCeE.d.ts +46 -0
  155. package/dist/{index-DXcTukgn.d.ts → index-BeOd45XE.d.ts} +4 -4
  156. package/dist/{index-DeQDdut6.d.ts → index-BnPmXDVP.d.ts} +34 -2
  157. package/dist/{index-yJ0HrxY6.d.ts → index-C2OAOK0s.d.ts} +4 -4
  158. package/dist/{index-BP3choXr.d.ts → index-CAWy1qjR.d.ts} +19771 -14468
  159. package/dist/{index-syAYY5LC.d.cts → index-CkwZ5x7E.d.cts} +19771 -14468
  160. package/dist/{index-Bt43tKyu.d.cts → index-DTysQ_yn.d.cts} +5 -5
  161. package/dist/{index-CTKC-mwi.d.cts → index-DUB0BwQv.d.cts} +4 -4
  162. package/dist/{index-BnPYPXGQ.d.ts → index-DloFSSj3.d.ts} +3 -3
  163. package/dist/{index-DWFxcmVD.d.ts → index-Dp-a2DdI.d.ts} +4 -4
  164. package/dist/{index-x8ET_BTN.d.cts → index-Ds0tViQS.d.cts} +3 -3
  165. package/dist/{index-DRaVzOLM.d.ts → index-HSkjm3QW.d.ts} +5 -5
  166. package/dist/index-URgNfi5L.d.cts +46 -0
  167. package/dist/{index-BhDxP0x4.d.cts → index-XG5cO-4H.d.cts} +4 -4
  168. package/dist/{types-CESP1ONj.d.ts → index-XaPb6unB.d.cts} +3635 -627
  169. package/dist/{index-D-4TT5yW.d.cts → index-ZYvgoqgW.d.cts} +4 -4
  170. package/dist/{index-GVxpBH6j.d.cts → index-_Va9wynk.d.ts} +11 -28
  171. package/dist/{types-GaOcVZ3d.d.cts → index-r6YSe8B-.d.ts} +3635 -627
  172. package/dist/{index-DS6O4UDB.d.cts → index-x_kS_5x_.d.cts} +4 -4
  173. package/dist/index.cjs +142 -161
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.d.cts +7 -7
  176. package/dist/index.d.ts +7 -7
  177. package/dist/index.js +75 -96
  178. package/dist/index.js.map +1 -1
  179. package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
  180. package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
  181. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
  182. package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
  183. package/dist/kaiAgent/index.cjs +1 -1
  184. package/dist/kaiAgent/index.d.cts +2 -2
  185. package/dist/kaiAgent/index.d.ts +2 -2
  186. package/dist/kaiAgent/index.js +1 -1
  187. package/dist/kaiAgent/types.d.cts +1 -1
  188. package/dist/kaiAgent/types.d.ts +1 -1
  189. package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-BmfUG8bB.cjs} +5 -5
  190. package/dist/{kaiAgent-BhcUsBDk.cjs.map → kaiAgent-BmfUG8bB.cjs.map} +1 -1
  191. package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CBPbMwBh.js} +5 -5
  192. package/dist/{kaiAgent-CUeT53-K.js.map → kaiAgent-CBPbMwBh.js.map} +1 -1
  193. package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
  194. package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
  195. package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
  196. package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
  197. package/dist/management/index.cjs +1 -1
  198. package/dist/management/index.d.cts +1 -1
  199. package/dist/management/index.d.ts +1 -1
  200. package/dist/management/index.js +1 -1
  201. package/dist/management/types.d.cts +2 -2
  202. package/dist/management/types.d.ts +2 -2
  203. package/dist/{management-0cWVLHei.cjs → management-BUGPJ1Bu.cjs} +23 -6
  204. package/dist/{management-0cWVLHei.cjs.map → management-BUGPJ1Bu.cjs.map} +1 -1
  205. package/dist/{management-eg4Ig-Cx.js → management-DAg2obYt.js} +23 -6
  206. package/dist/{management-eg4Ig-Cx.js.map → management-DAg2obYt.js.map} +1 -1
  207. package/dist/metastore/index.cjs +1 -1
  208. package/dist/metastore/index.d.cts +1 -1
  209. package/dist/metastore/index.d.ts +1 -1
  210. package/dist/metastore/index.js +1 -1
  211. package/dist/metastore/types.d.cts +1 -1
  212. package/dist/metastore/types.d.ts +1 -1
  213. package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
  214. package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
  215. package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
  216. package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
  217. package/dist/microsoftGraph/index.cjs +2 -2
  218. package/dist/microsoftGraph/index.d.cts +2 -2
  219. package/dist/microsoftGraph/index.d.ts +2 -2
  220. package/dist/microsoftGraph/index.js +2 -2
  221. package/dist/microsoftGraph/types.d.cts +1 -1
  222. package/dist/microsoftGraph/types.d.ts +1 -1
  223. package/dist/{middleware-DmR6OhTY.js → middleware-CWaLMlG1.js} +2 -2
  224. package/dist/{middleware-DmR6OhTY.js.map → middleware-CWaLMlG1.js.map} +1 -1
  225. package/dist/{middleware-D_p5TctO.cjs → middleware-DU_5pFDW.cjs} +2 -2
  226. package/dist/{middleware-D_p5TctO.cjs.map → middleware-DU_5pFDW.cjs.map} +1 -1
  227. package/dist/notifications/index.cjs +3 -3
  228. package/dist/notifications/index.d.cts +2 -2
  229. package/dist/notifications/index.d.ts +2 -2
  230. package/dist/notifications/index.js +3 -3
  231. package/dist/notifications/types.d.cts +1 -1
  232. package/dist/notifications/types.d.ts +1 -1
  233. package/dist/oauth/index.cjs +1 -1
  234. package/dist/oauth/index.d.cts +6 -2
  235. package/dist/oauth/index.d.ts +6 -2
  236. package/dist/oauth/index.js +1 -1
  237. package/dist/oauth/types.d.cts +2 -2
  238. package/dist/oauth/types.d.ts +2 -2
  239. package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
  240. package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
  241. package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
  242. package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
  243. package/dist/omnisearch/index.cjs +2 -2
  244. package/dist/omnisearch/index.d.cts +2 -2
  245. package/dist/omnisearch/index.d.ts +2 -2
  246. package/dist/omnisearch/index.js +2 -2
  247. package/dist/omnisearch/types.d.cts +1 -1
  248. package/dist/omnisearch/types.d.ts +1 -1
  249. package/dist/project-BMmfPhXg.d.ts +74 -0
  250. package/dist/project-dxCJbFay.d.cts +74 -0
  251. package/dist/queryService/index.cjs +1 -1
  252. package/dist/queryService/index.d.cts +1 -1
  253. package/dist/queryService/index.d.ts +1 -1
  254. package/dist/queryService/index.js +1 -1
  255. package/dist/queryService/types.d.cts +2 -2
  256. package/dist/queryService/types.d.ts +2 -2
  257. package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
  258. package/dist/queryService-C-pZha5p.js.map +1 -0
  259. package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
  260. package/dist/queryService-CzK53q94.cjs.map +1 -0
  261. package/dist/queue/index.cjs +1 -1
  262. package/dist/queue/index.d.cts +75 -7
  263. package/dist/queue/index.d.ts +75 -7
  264. package/dist/queue/index.js +1 -1
  265. package/dist/queue/types.d.cts +1 -1
  266. package/dist/queue/types.d.ts +1 -1
  267. package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
  268. package/dist/queue-BJvDWriM.cjs.map +1 -0
  269. package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
  270. package/dist/queue-D6-x4OGF.js.map +1 -0
  271. package/dist/scheduler/index.cjs +3 -3
  272. package/dist/scheduler/index.d.cts +2 -2
  273. package/dist/scheduler/index.d.ts +2 -2
  274. package/dist/scheduler/index.js +3 -3
  275. package/dist/scheduler/types.d.cts +1 -1
  276. package/dist/scheduler/types.d.ts +1 -1
  277. package/dist/sdk/configurations/index.d.cts +2 -4
  278. package/dist/sdk/configurations/index.d.ts +2 -4
  279. package/dist/sdk/developerPortal/index.cjs +3 -3
  280. package/dist/sdk/developerPortal/index.d.cts +3 -3
  281. package/dist/sdk/developerPortal/index.d.ts +3 -3
  282. package/dist/sdk/developerPortal/index.js +3 -3
  283. package/dist/sdk/kaiMemory/index.cjs +1 -1
  284. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  285. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  286. package/dist/sdk/kaiMemory/index.js +1 -1
  287. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  288. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  289. package/dist/sdk/queryService/index.cjs +34 -55
  290. package/dist/sdk/queryService/index.cjs.map +1 -1
  291. package/dist/sdk/queryService/index.d.cts +2 -2
  292. package/dist/sdk/queryService/index.d.ts +2 -2
  293. package/dist/sdk/queryService/index.js +34 -55
  294. package/dist/sdk/queryService/index.js.map +1 -1
  295. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  296. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  297. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  298. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  299. package/dist/sdk/storage/index.cjs +0 -119
  300. package/dist/sdk/storage/index.cjs.map +1 -1
  301. package/dist/sdk/storage/index.d.cts +103 -2
  302. package/dist/sdk/storage/index.d.ts +103 -2
  303. package/dist/sdk/storage/index.js +1 -119
  304. package/dist/sdk/storage/index.js.map +1 -1
  305. package/dist/sdk/tag/index.d.cts +2 -2
  306. package/dist/sdk/tag/index.d.ts +2 -2
  307. package/dist/sdk/tag/types.d.cts +1 -1
  308. package/dist/sdk/tag/types.d.ts +1 -1
  309. package/dist/sdk/vault/index.d.cts +1 -1
  310. package/dist/sdk/vault/index.d.ts +1 -1
  311. package/dist/status/index.cjs +1 -1
  312. package/dist/status/index.d.cts +1 -1
  313. package/dist/status/index.d.ts +1 -1
  314. package/dist/status/index.js +1 -1
  315. package/dist/storage/index.cjs +13 -9
  316. package/dist/storage/index.d.cts +3 -3
  317. package/dist/storage/index.d.ts +3 -3
  318. package/dist/storage/index.js +7 -6
  319. package/dist/storage/types.d.cts +6 -5
  320. package/dist/storage/types.d.ts +6 -5
  321. package/dist/{storage-RkNaOFJ-.js → storage-DyR7hDdv.js} +347 -168
  322. package/dist/storage-DyR7hDdv.js.map +1 -0
  323. package/dist/{storage-76Sf_z_H.cjs → storage-yovv11k6.cjs} +366 -169
  324. package/dist/storage-yovv11k6.cjs.map +1 -0
  325. package/dist/stream/index.cjs +3 -3
  326. package/dist/stream/index.d.cts +2 -2
  327. package/dist/stream/index.d.ts +2 -2
  328. package/dist/stream/index.js +3 -3
  329. package/dist/stream/types.d.cts +1 -1
  330. package/dist/stream/types.d.ts +1 -1
  331. package/dist/syncActions/index.cjs +1 -1
  332. package/dist/syncActions/index.d.cts +2 -2
  333. package/dist/syncActions/index.d.ts +2 -2
  334. package/dist/syncActions/index.js +1 -1
  335. package/dist/syncActions/types.d.cts +1 -1
  336. package/dist/syncActions/types.d.ts +1 -1
  337. package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
  338. package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
  339. package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
  340. package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
  341. package/dist/telemetry/index.cjs +3 -6
  342. package/dist/telemetry/index.cjs.map +1 -1
  343. package/dist/telemetry/index.d.cts +2 -5
  344. package/dist/telemetry/index.d.ts +2 -5
  345. package/dist/telemetry/index.js +3 -6
  346. package/dist/telemetry/index.js.map +1 -1
  347. package/dist/telemetry/types.d.cts +1 -1
  348. package/dist/telemetry/types.d.ts +1 -1
  349. package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
  350. package/dist/transientRetries-B4iusp69.js.map +1 -0
  351. package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
  352. package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
  353. package/dist/{types-5HdT1rSH.d.cts → types--qQPfxWt.d.cts} +2 -2
  354. package/dist/{types-sg2xnYlr.d.cts → types-4CjbcUdD.d.cts} +95 -26
  355. package/dist/{types-B1GN_I06.d.ts → types-4HmtNuJf.d.ts} +2 -2
  356. package/dist/types-4bSZLxq3.d.cts +1973 -0
  357. package/dist/{types-BHxsCu0f.d.ts → types-7DBpH7Rf.d.ts} +2 -2
  358. package/dist/{types-Btb8r9iw.d.ts → types-B2ZLjagf.d.ts} +95 -26
  359. package/dist/{types--owScV0r.d.cts → types-B6ozaDkl.d.cts} +11 -3
  360. package/dist/{types-DUDQg4ry.d.cts → types-BBbzWczQ.d.cts} +2 -2
  361. package/dist/{types-CyO8qCKl.d.cts → types-BG0oWq8u.d.cts} +2 -2
  362. package/dist/types-BIDKSQdc.d.ts +1973 -0
  363. package/dist/{types-CFurl1xe.d.cts → types-BKIcow3B.d.cts} +2 -2
  364. package/dist/{types-Nwq1QtYe.d.ts → types-BNPvFLgC.d.ts} +2 -2
  365. package/dist/{types-DDjp9lXD.d.ts → types-BXgINefw.d.ts} +2 -2
  366. package/dist/{types-C05ALlV6.d.cts → types-BZBU3mwz.d.cts} +3 -3
  367. package/dist/{types-LxDyOfdY.d.cts → types-B_1plf0y.d.cts} +2 -2
  368. package/dist/{types-DHdXufVf.d.cts → types-B_3zoXA1.d.cts} +3 -3
  369. package/dist/{types-BE7mRarT.d.ts → types-BcQ3j8xK.d.ts} +2 -2
  370. package/dist/{types-tJLoKlMX.d.cts → types-BdF6NDvo.d.cts} +2 -2
  371. package/dist/{types-DiE081mn.d.ts → types-BiBBKcin.d.ts} +3 -3
  372. package/dist/{types-fAqPUl-a.d.ts → types-BiTn_JVW.d.cts} +233 -37
  373. package/dist/{types-BtII5RSD.d.ts → types-BjEiUOL6.d.ts} +11 -3
  374. package/dist/{types-BMWeCO5M.d.ts → types-BoH7NFCh.d.ts} +3 -3
  375. package/dist/{types-BGICH80a.d.cts → types-BwsE-pFo.d.cts} +2 -2
  376. package/dist/{types-B5kkD7h4.d.cts → types-Bx0TSdwF.d.cts} +2 -2
  377. package/dist/{types-sI3K5t3w.d.cts → types-C2JMisvL.d.ts} +233 -37
  378. package/dist/{types-CaBhH99H.d.ts → types-C2j6Jsie.d.ts} +3 -3
  379. package/dist/{types-DSv1XS7s.d.ts → types-C3IQu1gV.d.ts} +3 -3
  380. package/dist/{types-DQauEri3.d.ts → types-C7t_6FLh.d.ts} +2 -2
  381. package/dist/{types-UI2aZ74n.d.ts → types-CBrNIgEy.d.ts} +3 -3
  382. package/dist/{types-Dvysi2Eo.d.ts → types-CEw2IzWk.d.ts} +2 -2
  383. package/dist/{types-C8oZX0oP.d.cts → types-CMKIdreQ.d.cts} +3 -3
  384. package/dist/{types-qGMVZGSB.d.ts → types-COQOzyac.d.ts} +45 -2
  385. package/dist/{types-Csmy6qFk.d.cts → types-CZCPdPqv.d.cts} +2 -2
  386. package/dist/{types-BksK2Eo0.d.cts → types-Cw9UISvM.d.ts} +2 -2
  387. package/dist/{types-YdE2VJzw.d.cts → types-D51g4h9w.d.cts} +2 -2
  388. package/dist/{types-DGu-wPPm.d.cts → types-D8w9lyb8.d.cts} +45 -2
  389. package/dist/{types-XHNJRi3-.d.cts → types-DBJ8c3hN.d.cts} +2 -2
  390. package/dist/{types-C4yryy-R.d.ts → types-DHlXKVEM.d.ts} +2 -2
  391. package/dist/{types-ggpJFEWZ.d.cts → types-DPDq8C4q.d.cts} +2 -2
  392. package/dist/{types-qWA5iU0j.d.ts → types-DWJVbskE.d.ts} +2 -2
  393. package/dist/{types-Br04cEri.d.ts → types-Dg8a7m7f.d.ts} +2 -2
  394. package/dist/{types-CoQET4Ep.d.ts → types-DgIzXY-Y.d.ts} +2 -2
  395. package/dist/{types-QroFANIW.d.cts → types-L50Y6ATu.d.cts} +3 -3
  396. package/dist/{types-BuKviWct.d.ts → types-OkQWmonU.d.cts} +2 -2
  397. package/dist/{types-DMWfdZ5C.d.cts → types-TRJiPqJr.d.cts} +2 -2
  398. package/dist/{types-BTqxM-IN.d.ts → types-ij6BpTzR.d.ts} +2 -2
  399. package/dist/{types-BoNqe_Lz.d.ts → types-ituiCs8g.d.ts} +2 -2
  400. package/dist/{types-BRvs3fXN.d.cts → types-kbyIaA7p.d.cts} +3 -3
  401. package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
  402. package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
  403. package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
  404. package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
  405. package/dist/vault/index.cjs +6 -6
  406. package/dist/vault/index.cjs.map +1 -1
  407. package/dist/vault/index.d.cts +1 -1
  408. package/dist/vault/index.d.ts +1 -1
  409. package/dist/vault/index.js +6 -6
  410. package/dist/vault/index.js.map +1 -1
  411. package/dist/vault/types.d.cts +1 -1
  412. package/dist/vault/types.d.ts +1 -1
  413. package/package.json +27 -1
  414. package/surface/apps.md +5 -5
  415. package/surface/auth.md +2 -0
  416. package/surface/chat.md +2 -2
  417. package/surface/componentsMcp.md +9 -0
  418. package/surface/dataScience.md +2 -2
  419. package/surface/kaiAgent.md +2 -2
  420. package/surface/management.md +4 -2
  421. package/surface/oauth.md +1 -0
  422. package/surface/queryService.md +4 -4
  423. package/surface/queue.md +2 -2
  424. package/surface/sdk.md +0 -24
  425. package/surface/storage.md +87 -57
  426. package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
  427. package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
  428. package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
  429. package/dist/authClient-CACOwVt0.js.map +0 -1
  430. package/dist/authClient-DZcAR-eW.cjs.map +0 -1
  431. package/dist/collect-97WhfEpt.js.map +0 -1
  432. package/dist/collect-B5TCNiT1.cjs.map +0 -1
  433. package/dist/constants-BDGRQqij.cjs.map +0 -1
  434. package/dist/constants-Cifrqsls.js.map +0 -1
  435. package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
  436. package/dist/createFetchClient-DITkTV2k.js.map +0 -1
  437. package/dist/index-BzhLY7el.d.cts +0 -254
  438. package/dist/index-CH5Sg3rk.d.ts +0 -77
  439. package/dist/index-CiwWDu-q.d.cts +0 -16
  440. package/dist/index-DCAnnlcL.d.ts +0 -16
  441. package/dist/index-DQwjlSJi.d.cts +0 -77
  442. package/dist/index-PyTPrtaL.d.ts +0 -254
  443. package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
  444. package/dist/jobStatus-BJdbZ72V.js.map +0 -1
  445. package/dist/project-BN7YRWFS.d.cts +0 -24
  446. package/dist/project-BpWTnoQ_.d.ts +0 -24
  447. package/dist/queryService-Blfz59Ms.js.map +0 -1
  448. package/dist/queryService-RlNYw7LG.cjs.map +0 -1
  449. package/dist/queue-BrgRdtOr.cjs.map +0 -1
  450. package/dist/queue-CNvR-M23.js.map +0 -1
  451. package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
  452. package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
  453. package/dist/storage-76Sf_z_H.cjs.map +0 -1
  454. package/dist/storage-RkNaOFJ-.js.map +0 -1
  455. package/dist/types-1B3ioN33.d.cts +0 -1868
  456. package/dist/types-BjIuVrAZ.d.ts +0 -66
  457. package/dist/types-CGhu0tID.d.cts +0 -1298
  458. package/dist/types-CclheyE7.d.cts +0 -66
  459. package/dist/types-M9vU_ONp.d.ts +0 -1868
  460. package/dist/types-P_61P9Nd.d.ts +0 -1298
  461. package/dist/types-j30rKMe6.d.ts +0 -957
  462. package/dist/types-q5lgElyc.d.cts +0 -957
@@ -1,16 +0,0 @@
1
- import { n as ClientInitOptions } from "./types-BuKviWct.js";
2
- import { a as EncryptQuery, s as ScopedSecrets } from "./types-BjIuVrAZ.js";
3
- //#region src/clients/encryption/encryptionClient.d.ts
4
- declare const createEncryptionClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
5
- healthCheck: (signal?: AbortSignal) => Promise<unknown>;
6
- encryptSecrets: <T extends Record<string, unknown>>(data: EncryptQuery & {
7
- data: T;
8
- }, signal?: AbortSignal) => Promise<T>;
9
- encryptScopedSecrets: <T extends Record<string, unknown>>({ scope, ...params }: ScopedSecrets<T>, signal?: AbortSignal) => Promise<T>;
10
- encrypt: (data: EncryptQuery & {
11
- data: string;
12
- }, signal?: AbortSignal) => Promise<string>;
13
- };
14
- //#endregion
15
- export { createEncryptionClient as t };
16
- //# sourceMappingURL=index-DCAnnlcL.d.ts.map
@@ -1,77 +0,0 @@
1
- import { a as ProjectId } from "./types-GaOcVZ3d.cjs";
2
- import "./types-1B3ioN33.cjs";
3
- import { t as createEncryptionClient } from "./index-CiwWDu-q.cjs";
4
- import { n as CreateVariableBody, o as VariableWithHash, t as AnyVariable } from "./types-YdE2VJzw.cjs";
5
- import { t as createVaultClient } from "./index-x8ET_BTN.cjs";
6
- //#region src/sdks/vault/types.d.ts
7
- type VaultClient = ReturnType<typeof createVaultClient>;
8
- type EncryptionClient = ReturnType<typeof createEncryptionClient>;
9
- type EncryptionCtx = {
10
- projectId: ProjectId;
11
- defaultBranchId: string;
12
- };
13
- //#endregion
14
- //#region src/sdks/vault/vaultSdk.d.ts
15
- type Options = {
16
- vaultClient: VaultClient;
17
- encryptionClient: EncryptionClient;
18
- };
19
- declare const createVaultSdk: ({ vaultClient, encryptionClient }: Options) => {
20
- createVariable: (variable: CreateVariableBody, encryption: EncryptionCtx) => Promise<{
21
- key: string;
22
- value: string;
23
- flags: ('encrypted' | 'oauthCredentialsId')[];
24
- group?: string;
25
- attributes: {
26
- branchId?: string;
27
- } & {
28
- [key: string]: string;
29
- };
30
- } & {
31
- hash?: string;
32
- }>;
33
- deleteVariable: (variable: VariableWithHash, signal?: AbortSignal) => Promise<void>;
34
- updateVariable: (variable: VariableWithHash, encryption: EncryptionCtx, signal?: AbortSignal) => Promise<{
35
- key: string;
36
- value: string;
37
- flags: ('encrypted' | 'oauthCredentialsId')[];
38
- group?: string;
39
- attributes: {
40
- branchId?: string;
41
- } & {
42
- [key: string]: string;
43
- };
44
- } & {
45
- hash?: string;
46
- }>;
47
- setVariablesGroup: (group: string, variables: VariableWithHash[], encryption: EncryptionCtx, signal?: AbortSignal) => Promise<({
48
- key: string;
49
- value: string;
50
- flags: ('encrypted' | 'oauthCredentialsId')[];
51
- group?: string;
52
- attributes: {
53
- branchId?: string;
54
- } & {
55
- [key: string]: string;
56
- };
57
- } & {
58
- hash?: string;
59
- })[]>;
60
- };
61
- //#endregion
62
- //#region src/sdks/vault/helpers.d.ts
63
- declare const isVariableEncryptionRequired: (variable: AnyVariable) => boolean;
64
- declare const isVariableOauth: (variable: AnyVariable) => boolean;
65
- declare const isSameVariable: (a: AnyVariable, b: AnyVariable) => boolean;
66
- declare const vaultRef: {
67
- encode: (key: string) => string;
68
- decode: (s: string) => string | null;
69
- isMatch: (s: string) => boolean;
70
- };
71
- declare const partitionByOauth: <T extends AnyVariable>(variables: T[]) => {
72
- oauth: T[];
73
- regular: T[];
74
- };
75
- //#endregion
76
- export { vaultRef as a, partitionByOauth as i, isVariableEncryptionRequired as n, createVaultSdk as o, isVariableOauth as r, EncryptionCtx as s, isSameVariable as t };
77
- //# sourceMappingURL=index-DQwjlSJi.d.cts.map
@@ -1,254 +0,0 @@
1
- import * as z$1 from "zod";
2
- import { IStringifyOptions } from "qs";
3
- //#region src/errors/ApiError.d.ts
4
- declare class ApiError extends Error {
5
- response: Response;
6
- request: Request;
7
- data: unknown;
8
- constructor({ response, request, data }: ApiResponse);
9
- }
10
- //#endregion
11
- //#region src/fetchClient/createFetchClient/types.d.ts
12
- type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'options';
13
- type PathParam = Record<string, string | number>;
14
- type QueryParam = Record<string, unknown>;
15
- type BodyParam = Record<string, unknown> | FormData | string | undefined | null | Record<string, unknown>[];
16
- type ParseAs = 'auto' | 'text' | 'json' | 'blob';
17
- type ValidateStatusFn = (options: ApiResponse) => boolean | ApiError;
18
- type CustomRequestInit = Omit<RequestInit, 'method' | 'body'>;
19
- type FetchFn = typeof fetch;
20
- type BaseUrlFn = () => Promise<string>;
21
- type BaseUrl = string | BaseUrlFn;
22
- type CreateFetchClientOptions = {
23
- baseUrl: BaseUrl;
24
- validateStatus?: ValidateStatusFn;
25
- middlewares?: MiddlewareFn[];
26
- fetchFn?: FetchFn;
27
- } & CustomRequestInit;
28
- type FetchClientOptions = {
29
- validateStatus?: ValidateStatusFn;
30
- queryArrayFormat?: IStringifyOptions['arrayFormat'];
31
- parseAs?: ParseAs;
32
- middlewares?: MiddlewareFn[];
33
- fetchFn?: FetchFn;
34
- } & CustomRequestInit;
35
- type ApiResponse<Data = unknown> = {
36
- data: Data;
37
- response: Response;
38
- request: Request;
39
- };
40
- type FetchRequest = {
41
- request: Request;
42
- validateStatus: ValidateStatusFn;
43
- fetchFn?: FetchFn;
44
- parseAs?: ParseAs;
45
- };
46
- type CoreFetchFn = (request: FetchRequest) => Promise<ApiResponse>;
47
- type MiddlewareFn = (next: CoreFetchFn) => CoreFetchFn;
48
- //#endregion
49
- //#region src/errors/HtmlResponseError.d.ts
50
- /**
51
- * A successful response that carried an HTML page instead of the endpoint's payload.
52
- *
53
- * - An expired session 302s to the login page; `fetch` follows it to `200 text/html`.
54
- * - Constant message so Sentry groups it; `request`/`response` carry the detail.
55
- * - Opt-in per client: some APIs serve HTML from a 200 on purpose.
56
- */
57
- declare class HtmlResponseError extends ApiError {
58
- constructor(res: ApiResponse);
59
- }
60
- declare const isHtmlResponseError: (error: unknown) => error is HtmlResponseError;
61
- //#endregion
62
- //#region src/errors/ManagementClientAuthError.d.ts
63
- declare class ManagementClientAuthError extends ApiError {
64
- title: string;
65
- message: string;
66
- constructor(title: string, message: string, res: ApiResponse);
67
- }
68
- //#endregion
69
- //#region src/errors/ManagementSessionMintError.d.ts
70
- /**
71
- * The Manage client has no credential of its own and could not mint a session token from the
72
- * login cookie.
73
- *
74
- * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.
75
- * - The login page in place of the token: the session expired, or there is no cookie (off the
76
- * stack host).
77
- */
78
- declare class ManagementSessionMintError extends ManagementClientAuthError {
79
- constructor({ title, message, response, request, data }: ManagementClientAuthError);
80
- }
81
- //#endregion
82
- //#region src/errors/ValidationError.d.ts
83
- /**
84
- * A rejected SDK input or a response not matching its documented shape.
85
- *
86
- * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.
87
- * - `issues` keeps the structured detail.
88
- */
89
- declare class ValidationError extends Error {
90
- issues: z$1.core.$ZodIssue[];
91
- constructor(message: string, issues?: z$1.core.$ZodIssue[]);
92
- }
93
- declare const isValidationError: (error: unknown) => error is ValidationError;
94
- /**
95
- * One line per issue, prefixed by the field it belongs to.
96
- *
97
- * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.
98
- * - Exported for boundaries that drop malformed elements instead of throwing.
99
- * - Never includes the value, so it is safe to log.
100
- */
101
- declare const formatValidationIssues: (issues: readonly z$1.core.$ZodIssue[]) => string;
102
- /**
103
- * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.
104
- *
105
- * - Use instead of `schema.parse()` for every client input and response body.
106
- */
107
- declare const parseOrThrow: <T extends z$1.ZodType>(schema: T, value: unknown) => z$1.output<T>;
108
- //#endregion
109
- //#region src/fetchClient/createFetchClient/createFetchClient.d.ts
110
- type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;
111
- declare const isApiError: (error: unknown) => error is ApiError;
112
- declare const isAbortError: (error: unknown) => error is DOMException;
113
- declare const isTimeoutError: (error: unknown) => error is DOMException;
114
- declare const isFetchClientError: (error: unknown) => error is FetchClientError;
115
- //#endregion
116
- //#region src/fetchClient/createFetchClient/utils.d.ts
117
- declare const HttpHeader: {
118
- CONTENT_TYPE: string;
119
- CONTENT_DISPOSITION: string;
120
- AUTHORIZATION: string;
121
- IDEMPOTENCY_KEY: string;
122
- IF_MATCH: string;
123
- };
124
- declare const HttpContentType: {
125
- JSON: string;
126
- TEXT_PLAIN: string;
127
- FORM_DATA: string;
128
- TEXT_HTML: string;
129
- };
130
- //#endregion
131
- //#region src/fetchClient/createGenericFetchClient.d.ts
132
- type FetchParams<Path = PathParam, Query = QueryParam, Body = BodyParam> = {
133
- path?: Path;
134
- query?: Query;
135
- body?: Body;
136
- };
137
- type FetchMethod$1 = <Data, Path = PathParam, Query = QueryParam, Body = BodyParam>(url: string, params: FetchParams<Path, Query, Body>, options?: FetchClientOptions) => Promise<ApiResponse<Data>>;
138
- type FetchClient$1 = {
139
- get: FetchMethod$1;
140
- post: FetchMethod$1;
141
- put: FetchMethod$1;
142
- patch: FetchMethod$1;
143
- delete: FetchMethod$1;
144
- };
145
- declare const createGenericFetchClient: (defaultOptions: CreateFetchClientOptions) => FetchClient$1;
146
- //#endregion
147
- //#region src/fetchClient/xhrFetch.d.ts
148
- type UploadProgress = {
149
- loaded: number;
150
- total: number;
151
- percent: number;
152
- };
153
- //#endregion
154
- //#region src/fetchClient/types.d.ts
155
- type OpenapiQueryType<Operation> = Operation extends {
156
- parameters?: {
157
- query?: infer Query;
158
- };
159
- } ? Query : never;
160
- type OpenapiPathType<Operation> = Operation extends {
161
- parameters?: {
162
- path?: infer Path;
163
- };
164
- } ? Path : never;
165
- type HasRequestBody<Operation> = Operation extends {
166
- requestBody?: never;
167
- } ? false : true;
168
- type HasOptionalBody<Operation> = Operation extends {
169
- requestBody: unknown;
170
- } ? false : true;
171
- type OpenapiBodyType<Operation> = HasRequestBody<Operation> extends true ? Operation extends {
172
- requestBody?: {
173
- content: {
174
- 'application/json': infer RequestBody;
175
- };
176
- };
177
- } ? RequestBody : Operation extends {
178
- requestBody: {
179
- content: {
180
- 'application/json': infer RequestBody;
181
- };
182
- };
183
- } ? RequestBody : Operation extends {
184
- requestBody: {
185
- content: {
186
- 'application/vnd.api+json': infer RequestBody;
187
- };
188
- };
189
- } ? RequestBody : Operation extends {
190
- requestBody?: {
191
- content: {
192
- 'multipart/form-data': unknown;
193
- };
194
- };
195
- } ? FormData : Operation extends {
196
- requestBody: {
197
- content: {
198
- 'application/x-www-form-urlencoded': infer RequestBody;
199
- };
200
- };
201
- } ? RequestBody : never : never;
202
- /**
203
- * The per-field shape of a `multipart/form-data` body — the complement of `OpenapiBodyType`, which
204
- * resolves such an operation to the `FormData` that goes on the wire and so cannot report the
205
- * fields inside it. Clients derive their input types from this rather than restating the field list.
206
- */
207
- type OpenapiFormDataType<Operation> = Operation extends {
208
- requestBody?: {
209
- content: {
210
- 'multipart/form-data': infer Fields;
211
- };
212
- };
213
- } ? { [Key in keyof Fields as Key extends `${infer Name}[]` ? Name : Key]: Fields[Key]; } : never;
214
- type OpenapiBodyParam<Operation> = OpenapiBodyType<Operation> extends never ? {
215
- body?: never;
216
- } : HasOptionalBody<Operation> extends true ? {
217
- body?: OpenapiBodyType<Operation>;
218
- } : {
219
- body: OpenapiBodyType<Operation>;
220
- };
221
- type InferOpenapiParametersType<Operation> = Operation extends {
222
- parameters?: infer P;
223
- } ? P : never;
224
- type OpenapiParametersType<Operation> = Omit<InferOpenapiParametersType<Operation>, 'cookie' | 'header'> & OpenapiBodyParam<Operation>;
225
- type OpenapiResponseTypes<OP> = OP extends {
226
- responses: infer R;
227
- } ? { [S in keyof R]: R[S] extends {
228
- content: {
229
- 'text/plain': infer S;
230
- };
231
- } ? S : R[S] extends {
232
- content: {
233
- 'application/json': infer C;
234
- };
235
- } ? C : S extends 'default' ? R[S] : never; } : never;
236
- type OpenapiSuccessType<T> = 200 extends keyof T ? T[200] : 201 extends keyof T ? T[201] : 202 extends keyof T ? T[202] : 204 extends keyof T ? T[204] : '2XX' extends keyof T ? T['2XX'] : 'default' extends keyof T ? T['default'] : unknown;
237
- type OpenapiReturnType<OP> = OpenapiSuccessType<OpenapiResponseTypes<OP>>;
238
- type ArrayElement<T> = T extends (infer U)[] ? U : never;
239
- //#endregion
240
- //#region src/fetchClient/createOpenapiFetchClient.d.ts
241
- type OpenapiPaths<Paths> = { [P in keyof Paths]: { [M in HttpMethod]?: unknown; }; };
242
- type PathsWithMethod<Paths extends OpenapiPaths<Paths>, PathnameMethod extends HttpMethod> = { [Pathname in keyof Paths]: Paths[Pathname] extends { [K in PathnameMethod]: any; } ? Pathname : never; }[keyof Paths];
243
- type FetchMethod<Paths extends OpenapiPaths<Paths>, Method extends HttpMethod> = <Path extends PathsWithMethod<Paths, Method>>(url: Path, params: OpenapiParametersType<Paths[Path][Method]>, options?: FetchClientOptions) => Promise<ApiResponse<OpenapiReturnType<Paths[Path][Method]>>>;
244
- type FetchClient<Paths extends OpenapiPaths<Paths>> = {
245
- get: FetchMethod<Paths, 'get'>;
246
- post: FetchMethod<Paths, 'post'>;
247
- put: FetchMethod<Paths, 'put'>;
248
- patch: FetchMethod<Paths, 'patch'>;
249
- delete: FetchMethod<Paths, 'delete'>;
250
- };
251
- declare const createOpenapiFetchClient: <Paths extends OpenapiPaths<Paths>>(defaultOptions: CreateFetchClientOptions) => FetchClient<Paths>;
252
- //#endregion
253
- export { ValidateStatusFn as A, ManagementClientAuthError as C, BaseUrl as D, ApiResponse as E, HttpMethod as O, ManagementSessionMintError as S, isHtmlResponseError as T, isTimeoutError as _, OpenapiParametersType as a, isValidationError as b, OpenapiReturnType as c, HttpContentType as d, HttpHeader as f, isFetchClientError as g, isApiError as h, OpenapiFormDataType as i, ApiError as j, MiddlewareFn as k, UploadProgress as l, isAbortError as m, ArrayElement as n, OpenapiPathType as o, FetchClientError as p, OpenapiBodyType as r, OpenapiQueryType as s, createOpenapiFetchClient as t, createGenericFetchClient as u, ValidationError as v, HtmlResponseError as w, parseOrThrow as x, formatValidationIssues as y };
254
- //# sourceMappingURL=index-PyTPrtaL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jobStatus-B0E-MZ9I.cjs","names":["createAbortError","createEmitter","createAbortError","createStore"],"sources":["../src/utils/async/delay.ts","../src/utils/async/lazy.ts","../src/utils/async/result.ts","../src/utils/async/poll/utils.ts","../src/utils/async/poll/backoff.ts","../src/utils/async/poll/pollLoop.ts","../src/utils/async/poll/poll.ts","../src/domain/jobStatus.ts"],"sourcesContent":["import { createAbortError } from '../createAbortError';\n\nexport const delay = (timeout: number, signal?: AbortSignal) =>\n new Promise<void>((resolve, reject) => {\n if (signal?.aborted) return reject(createAbortError(signal.reason));\n\n const onAbort = () => {\n clearTimeout(timeoutId);\n reject(createAbortError(signal?.reason));\n };\n\n // `once: true` only detaches the listener once the event fires, so the timeout path has to\n // detach it explicitly — a caller reusing one signal across many delays (`poll` does) would\n // otherwise pile up a listener per delay for as long as the signal is alive.\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, timeout);\n\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n","import type { TaskFn } from './types';\n\n/**\n * Runs `task` once and replays its promise to every later caller.\n *\n * - A rejection is not cached: the next call retries, so a transient failure never sticks.\n * - Callers that joined the failed run reject with its error.\n */\nexport const lazy = <T>(task: TaskFn<T>): (() => Promise<Awaited<T>>) => {\n let value: Promise<Awaited<T>> | null = null;\n\n // async wrapper so a synchronous throw from `task` rejects rather than throws.\n const runTask = async (): Promise<Awaited<T>> => await task();\n\n return () => {\n value ??= runTask().catch((error: unknown) => {\n value = null;\n throw error;\n });\n return value;\n };\n};\n","export type Success<T> = { success: true; data: T };\nexport type Failure<E extends Error> = { success: false; error: E };\nexport type Result<T, E extends Error = Error> = Success<T> | Failure<E>;\n\n// A task that returns a promise is a type error: the wrapper would report success before it\n// settles, and the rejection would go unhandled. Use the `*Async` sibling.\ntype NotPromise<T> = T extends PromiseLike<unknown> ? never : T;\n\nexport const asError = (thrown: unknown) =>\n thrown instanceof Error ? thrown : new Error(String(thrown), { cause: thrown });\n\nconst success = <T>(data: T): Result<T, never> => ({ success: true, data });\nconst failure = <E extends Error>(error: E): Result<never, E> => ({ success: false, error });\nconst isSuccess = <T, E extends Error>(result: Result<T, E>): result is Success<T> =>\n result.success;\nconst isFailure = <T, E extends Error>(result: Result<T, E>): result is Failure<E> =>\n !result.success;\n\nconst map = <T, E extends Error, U>(result: Result<T, E>, fn: (data: T) => U): Result<U, E> =>\n result.success ? success(fn(result.data)) : result;\n\nconst mapError = <T, E extends Error, F extends Error>(\n result: Result<T, E>,\n fn: (error: E) => F,\n): Result<T, F> => (result.success ? result : failure(fn(result.error)));\n\nconst andThen = <T, E extends Error, U, F extends Error>(\n result: Result<T, E>,\n fn: (data: T) => Result<U, F>,\n): Result<U, E | F> => (result.success ? fn(result.data) : result);\n\nconst match = <T, E extends Error, R>(\n result: Result<T, E>,\n onSuccess: (data: T) => R,\n onFailure: (error: E) => R,\n): R => (result.success ? onSuccess(result.data) : onFailure(result.error));\n\n// A side effect on a success; the result itself passes through untouched, same instance.\nconst tap = <T, E extends Error>(result: Result<T, E>, fn: (data: T) => void): Result<T, E> => {\n if (result.success) fn(result.data);\n return result;\n};\n\nconst unwrap = <T, E extends Error>(result: Result<T, E>): T => {\n if (result.success) return result.data;\n throw result.error;\n};\n\nconst unwrapOr = <T, E extends Error, U>(result: Result<T, E>, fallback: U): T | U =>\n result.success ? result.data : fallback;\n\nconst tryCatch = <T>(task: () => NotPromise<T>): Result<T> => {\n try {\n return success(task());\n } catch (thrown) {\n return failure(asError(thrown));\n }\n};\n\nconst tryCatchAsync = async <T>(task: () => T | PromiseLike<T>): Promise<Result<T>> => {\n try {\n return success(await task());\n } catch (thrown) {\n return failure(asError(thrown));\n }\n};\n\nconst fromThrowable =\n <A extends unknown[], R>(fn: (...args: A) => NotPromise<R>) =>\n (...args: A): Result<R> =>\n tryCatch(() => fn(...args));\n\nconst fromThrowableAsync =\n <A extends unknown[], R>(fn: (...args: A) => R | PromiseLike<R>) =>\n (...args: A): Promise<Result<R>> =>\n tryCatchAsync(() => fn(...args));\n\nexport const Result = {\n success,\n failure,\n isSuccess,\n isFailure,\n map,\n mapError,\n andThen,\n match,\n tap,\n unwrap,\n unwrapOr,\n tryCatch,\n tryCatchAsync,\n fromThrowable,\n fromThrowableAsync,\n};\n","/**\n * The longest delay a timer can hold: `setTimeout` takes a 32-bit signed number of milliseconds,\n * about 24.9 days.\n *\n * - Above it the delay wraps: Node warns and fires after 1 ms, so a long wait becomes a busy loop.\n * - It bounds a backoff curve and a poll's timeout alike, since both end up in a timer.\n */\nexport const MAX_TIMER_DELAY = 2 ** 31 - 1;\n\nexport const clamp = (value: number, min: number, max = Infinity) =>\n Math.min(Math.max(value, min), max);\n\nexport const finiteOr = (value: number, fallback: number) =>\n Number.isFinite(value) ? value : fallback;\n\n/** A signal that never aborts, so an input nobody gave costs no branch of its own. */\nexport const neverAborts = () => new AbortController().signal;\n","import { clamp, finiteOr, MAX_TIMER_DELAY } from './utils';\n\nexport type Jitter =\n | 'none' // delay\n | 'full' // [0, delay)\n | 'equal'; // [delay / 2, delay)\n\ntype Backoff =\n | { type: 'constant'; interval: number } // 3000, 3000, 3000, ...\n | { type: 'linear'; initialInterval: number; step: number } // 1000, 2000, 3000, …\n | { type: 'exponential'; initialInterval: number; factor?: number }; // 1000, 2000, 4000, 8000, …\n\ntype RandomFn = () => number;\ntype JitterFn = (delay: number) => number;\ntype BackoffFn = (attempt: number) => number;\n\nexport type BackoffDef = {\n jitter?: Jitter;\n maxInterval?: number;\n random?: RandomFn;\n} & Backoff;\n\nconst MIN_STEP = 500;\nconst MIN_FACTOR = 2;\nconst MIN_INTERVAL = 500;\n\nexport const createBackoff = ({\n jitter = 'none',\n maxInterval: _maxInterval = MAX_TIMER_DELAY,\n random = Math.random,\n ...backoff\n}: BackoffDef): BackoffFn => {\n const backoffFn: BackoffFn = (attempt) => {\n if (backoff.type === 'linear') {\n const interval = clamp(finiteOr(backoff.initialInterval, MIN_INTERVAL), MIN_INTERVAL);\n const step = clamp(finiteOr(backoff.step, MIN_STEP), MIN_STEP);\n\n return interval + step * (attempt - 1);\n }\n if (backoff.type === 'exponential') {\n const interval = clamp(finiteOr(backoff.initialInterval, MIN_INTERVAL), MIN_INTERVAL);\n const factor = clamp(finiteOr(backoff.factor ?? MIN_FACTOR, MIN_FACTOR), MIN_FACTOR);\n\n return interval * factor ** (attempt - 1);\n }\n\n return clamp(finiteOr(backoff.interval, MIN_INTERVAL), MIN_INTERVAL);\n };\n\n const jitterFn: JitterFn = (delay) => {\n if (jitter === 'none') return delay;\n if (jitter === 'full') return delay * random();\n return delay / 2 + (delay / 2) * random(); // equal\n };\n\n const maxInterval = clamp(finiteOr(_maxInterval, MAX_TIMER_DELAY), MIN_INTERVAL, MAX_TIMER_DELAY);\n return (_attempt) => {\n const attempt = clamp(finiteOr(Math.trunc(_attempt), 1), 1);\n const capped = Math.min(backoffFn(attempt), maxInterval);\n // Floored after the jitter, not before: `full` jitter multiplies by a random fraction, so a floor\n // applied to the curve alone leaves sub-millisecond gaps between attempts.\n return clamp(finiteOr(jitterFn(capped), MIN_INTERVAL), MIN_INTERVAL, maxInterval);\n };\n};\n","import { delay } from '../delay';\nimport { Result } from '../result';\n\nimport { type BackoffDef, createBackoff } from './backoff';\nimport { clamp, finiteOr, MAX_TIMER_DELAY, neverAborts } from './utils';\n\ntype Clock = {\n wait: (ms: number, signal?: AbortSignal) => Promise<void>;\n now: () => number;\n};\n\nexport type PollKey = readonly unknown[];\n\nexport type PollContext<K extends PollKey = PollKey> = {\n pollKey: K;\n attempt: number;\n elapsed: number;\n};\n\n/** The context plus the answer it is about: what `until` decides on, and what an ending reports. */\nexport type PollTick<T, K extends PollKey = PollKey> = PollContext<K> & { last: T | null };\n\nexport type PollResultState = 'done' | 'timedOut' | 'exhausted' | 'aborted' | 'errored';\n\nexport type PollResult<T, K extends PollKey = PollKey> = PollTick<T, K> &\n (\n | { state: 'done'; data: T }\n | { state: 'timedOut' | 'exhausted'; error?: Error }\n | { state: 'aborted'; reason?: unknown }\n | { state: 'errored'; error: Error }\n );\n\nexport type PollOptions<T, K extends PollKey = PollKey> = {\n pollKey?: K;\n pollFn: (context: PollContext<K> & { signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T, K> & { data: T }) => boolean;\n signal?: AbortSignal;\n backoff?: BackoffDef;\n isRetryable?: (error: Error) => boolean;\n maxAttempts?: number;\n timeout?: number;\n clock?: Clock;\n};\n\nconst pollResult = {\n done: <T, K extends PollKey>(data: T, context: PollTick<T, K>): PollResult<T, K> => ({\n state: 'done',\n data,\n ...context,\n last: data,\n }),\n errored: <T, K extends PollKey>(error: Error, context: PollTick<T, K>): PollResult<T, K> => ({\n state: 'errored',\n error,\n ...context,\n }),\n exhausted: <T, K extends PollKey>(context: PollTick<T, K>, error?: Error): PollResult<T, K> => ({\n state: 'exhausted',\n error,\n ...context,\n }),\n timedOut: <T, K extends PollKey>(context: PollTick<T, K>, error?: Error): PollResult<T, K> => ({\n state: 'timedOut',\n error,\n ...context,\n }),\n aborted: <T, K extends PollKey>(context: PollTick<T, K>, reason: unknown): PollResult<T, K> => ({\n state: 'aborted',\n reason,\n ...context,\n }),\n};\n\nexport const pollLoop = async <T, K extends PollKey = PollKey>({\n pollKey,\n pollFn: _pollFn,\n until: _until,\n signal: callerSignal = neverAborts(),\n backoff: backoffDef = { type: 'constant', interval: 3000 },\n clock = { wait: (ms, signal) => delay(ms, signal), now: () => performance.now() },\n isRetryable: _isRetryable = () => false,\n maxAttempts: _maxAttempts = Infinity,\n timeout: _timeout = Infinity,\n}: PollOptions<T, K>): Promise<PollResult<T, K>> => {\n // A deadline ends up in a timer, so a finite one is bounded by what a timer can hold. `Infinity`\n // is answered before the clamp: it means no deadline, and clamping would make it the longest one.\n const requested = finiteOr(_timeout, Infinity);\n const timeout = requested === Infinity ? Infinity : clamp(requested, 0, MAX_TIMER_DELAY);\n const maxAttempts = Math.trunc(clamp(finiteOr(_maxAttempts, Infinity), 0));\n\n const timeoutSignal = timeout === Infinity ? neverAborts() : AbortSignal.timeout(timeout);\n const anySignal = AbortSignal.any([callerSignal, timeoutSignal]);\n const anyAborted = Promise.withResolvers<never>();\n\n anySignal.addEventListener('abort', () => anyAborted.reject(anySignal.reason), {\n once: true,\n });\n void anyAborted.promise.catch(() => undefined);\n\n const backoffFn = createBackoff(backoffDef);\n const startedAt = clock.now();\n\n const until = Result.fromThrowable(_until);\n const isRetryable = Result.fromThrowable(_isRetryable);\n // A poll without a key has an empty one, and `K` is opaque in here — the one place the absent\n // case is materialised is the one place it has to be asserted.\n const key = pollKey ?? ([] as unknown as K);\n // Only what the context declares: a request is not handed the tick's `last` as well.\n const pollFn = ({ pollKey: key, attempt: at, elapsed }: PollContext<K>) =>\n Result.tryCatchAsync(() =>\n Promise.race([\n _pollFn({ pollKey: key, attempt: at, elapsed, signal: anySignal }),\n anyAborted.promise,\n ]),\n );\n const sleep = Result.fromThrowableAsync((ms: number) => clock.wait(ms, anySignal));\n\n let attempt = 0;\n // What a retry swallowed: the poll carries it to whichever ending runs out first.\n let last: T | null = null;\n let lastError: Error | undefined;\n const context = (at = clock.now() - startedAt): PollTick<T, K> => ({\n pollKey: key,\n attempt,\n elapsed: at,\n last,\n });\n\n if (attempt >= maxAttempts) return pollResult.exhausted<T, K>(context());\n\n while (true) {\n const before = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(before, lastError);\n if (callerSignal.aborted) return pollResult.aborted(before, callerSignal.reason);\n\n attempt++;\n // The attempt it is, not the one before it — `before` was read to decide whether to make it.\n const poll = await pollFn({ ...before, attempt });\n\n // What the attempt produced, recorded before the tick that reports it: on any ending but `done`\n // these two are the only account of what the poll saw, and reading them one attempt behind is\n // reading the wrong answer.\n if (poll.success) last = poll.data;\n else lastError = poll.error;\n\n const after = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(after, lastError);\n if (callerSignal.aborted) return pollResult.aborted(after, callerSignal.reason);\n\n if (!poll.success) {\n const canRetry = isRetryable(poll.error);\n\n // A predicate that throws cannot ask for a retry. The request's own failure stays the reported\n // one — it is the type a caller's guards expect — and the predicate's rides along as its cause.\n if (!canRetry.success) {\n poll.error.cause ??= canRetry.error;\n return pollResult.errored(poll.error, after);\n }\n if (!canRetry.data) return pollResult.errored(poll.error, after);\n }\n\n if (poll.success) {\n const isDone = until({ ...after, data: poll.data });\n if (!isDone.success) return pollResult.errored(isDone.error, after);\n if (isDone.data) return pollResult.done(poll.data, after);\n }\n\n // exhausted\n if (attempt >= maxAttempts) return pollResult.exhausted(after, lastError);\n\n // sleep\n const backoff = backoffFn(attempt);\n if (after.elapsed + backoff >= timeout) return pollResult.timedOut(after, lastError);\n\n const slept = await sleep(backoff);\n if (!slept.success) {\n const afterSleep = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(afterSleep, lastError);\n if (callerSignal.aborted) return pollResult.aborted(afterSleep, callerSignal.reason);\n\n return pollResult.errored(slept.error, afterSleep);\n }\n }\n};\n","import { createAbortError } from '../../createAbortError';\nimport { createEmitter, createStore } from '../../store';\nimport { lazy } from '../lazy';\n\nimport {\n type PollKey,\n pollLoop,\n type PollOptions,\n type PollResult,\n type PollResultState,\n type PollTick,\n} from './pollLoop';\nimport { neverAborts } from './utils';\n\nexport type PollState = 'idle' | 'polling' | PollResultState;\nexport type PollSnapshot = PollTick<unknown> & { state: PollState };\n\ntype OnFailure<T> = (result: PollResult<T>) => Error | undefined;\n\nexport type PollerStartFn<T> = () => Promise<PollResult<T>>;\nexport type PollerStopFn = (reason?: string) => void;\ntype PollerSubscribeFn = (listener: (snapshot: PollSnapshot) => void) => () => void;\ntype PollerDebugFn = () => PollSnapshot;\ntype PollerUnwrapFn<T> = (onFailure?: OnFailure<T>) => Promise<T>;\nexport type Poller<T> = {\n readonly state: PollState;\n start: PollerStartFn<T>;\n unwrap: PollerUnwrapFn<T>;\n stop: PollerStopFn;\n subscribe: PollerSubscribeFn;\n debug: PollerDebugFn;\n};\n\nexport type PollTask<T> = Promise<PollResult<T>> &\n Pick<Poller<T>, 'unwrap' | 'stop' | 'subscribe' | 'debug'>;\n\nexport type ObservedPoller = Pick<Poller<unknown>, 'stop' | 'subscribe' | 'debug' | 'start'>;\n\nexport const emitter = createEmitter<ObservedPoller>();\n\nexport const failureOf = (result: PollResult<unknown>): Error => {\n if ('error' in result && result.error) return result.error;\n\n if (result.state === 'aborted') {\n if (result.reason instanceof Error) return result.reason;\n\n return createAbortError(\n typeof result.reason === 'string' ? result.reason : 'The poll was stopped.',\n );\n }\n\n return new Error(`The poll ${result.state} after ${result.attempt} attempts.`);\n};\n\nexport const poller = <T, K extends PollKey = PollKey>({\n pollKey,\n signal,\n until,\n ...pollLoopOptions\n}: PollOptions<T, K>): Poller<T> => {\n const callerSignal = signal ?? neverAborts();\n const pollerSignal = new AbortController();\n const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);\n\n // snapshoting\n const snapshot = createStore<PollSnapshot>({\n pollKey: pollKey ?? [],\n state: 'idle',\n attempt: 0,\n elapsed: 0,\n last: null,\n });\n const updateSnapshot = (next: Partial<PollSnapshot>) =>\n snapshot.set({ ...snapshot.get(), ...next });\n\n const handleUntil = (context: PollTick<T, K> & { data: T }) => {\n updateSnapshot({ attempt: context.attempt, elapsed: context.elapsed, last: context.data });\n return until(context);\n };\n\n const start: PollerStartFn<T> = lazy(async () => {\n updateSnapshot({ state: 'polling' });\n const result = await pollLoop({\n ...pollLoopOptions,\n pollKey,\n until: handleUntil,\n signal: anySignal,\n });\n // The result knows what a tick cannot: attempts that failed, and the time the ending itself took.\n snapshot.set({\n pollKey: result.pollKey,\n state: result.state,\n attempt: result.attempt,\n elapsed: result.elapsed,\n last: result.last,\n });\n return result;\n });\n\n const stop: PollerStopFn = (reason) => pollerSignal.abort(reason);\n const subscribe: PollerSubscribeFn = (listener) =>\n snapshot.subscribe(() => listener(snapshot.get()));\n const debug: PollerDebugFn = snapshot.get;\n\n const unwrap: PollerUnwrapFn<T> = async (onFailure) => {\n const result = await start();\n if (result.state === 'done') return result.data;\n throw onFailure?.(result) ?? failureOf(result);\n };\n\n const controls = {\n stop,\n subscribe,\n debug,\n start,\n };\n\n emitter.emit(controls);\n\n return {\n get state() {\n return snapshot.get().state;\n },\n unwrap,\n ...controls,\n };\n};\n\nexport const poll = <T, K extends PollKey = PollKey>(options: PollOptions<T, K>): PollTask<T> => {\n const p = poller(options);\n\n return Object.assign(p.start(), {\n unwrap: p.unwrap,\n stop: p.stop,\n subscribe: p.subscribe,\n debug: p.debug,\n });\n};\n","import type { QueryJobStatus } from '../clients/queryService/types';\nimport type { QueueJobStatus } from '../clients/queue/types';\nimport type { StorageJobStatus } from '../clients/storage/jobs/types';\n\n/**\n * One service's statuses split by what the job is doing.\n *\n * - Groups are disjoint and cover the vocabulary; terminal = successful + failed.\n * - The annotation makes a renamed generated status fail the build here.\n */\ntype StatusGroups<Status extends string> = {\n running: readonly Status[];\n successful: readonly Status[];\n failed: readonly Status[];\n};\n\n/** A service's statuses as named constants — `SUCCESS: 'success'`. */\ntype StatusNames<Status extends string> = { [K in Status as Uppercase<K>]: K };\n\n// Mirrors `StorageJobStatus` in `connection`.\nconst STORAGE: StatusGroups<StorageJobStatus> = {\n running: ['waiting', 'processing'],\n successful: ['success'],\n failed: ['error'],\n};\n\n/**\n * Mirrors `PlainJobInterface` in `job-queue-internal-api-php-client`.\n *\n * - `terminating` is running until `terminated`.\n * - The split mirrors the job's `isSuccess`; with a job in hand, read `job.isSuccess` instead.\n */\nconst QUEUE: StatusGroups<QueueJobStatus> = {\n running: ['created', 'waiting', 'processing', 'terminating'],\n successful: ['success', 'warning'],\n failed: ['error', 'cancelled', 'terminated'],\n};\n\n// Mirrors `JobState` in `go-monorepo` (`services/query/internal/repository/models`).\n// `canceled` with one `l`, unlike the other services.\nconst QUERY: StatusGroups<QueryJobStatus> = {\n running: ['created', 'enqueued', 'processing'],\n successful: ['completed'],\n failed: ['failed', 'canceled'],\n};\n\n/**\n * One service's status predicates, sets and named constants.\n *\n * - `isSuccessful` / `isFailed` are `false` while running.\n * - `isKnown` narrows an untyped string.\n * - `named` is asserted: `Object.fromEntries` can't prove the key mapping.\n */\nconst forService = <Status extends string>(groups: StatusGroups<Status>) => {\n const all = [...groups.running, ...groups.successful, ...groups.failed];\n\n const running: ReadonlySet<Status> = new Set(groups.running);\n const successful: ReadonlySet<Status> = new Set(groups.successful);\n const failed: ReadonlySet<Status> = new Set(groups.failed);\n const terminal: ReadonlySet<Status> = new Set([...groups.successful, ...groups.failed]);\n const known: ReadonlySet<string> = new Set<string>(all);\n\n return {\n isRunning: (status: Status) => running.has(status),\n isTerminal: (status: Status) => terminal.has(status),\n isSuccessful: (status: Status) => successful.has(status),\n isFailed: (status: Status) => failed.has(status),\n isKnown: (value: string): value is Status => known.has(value),\n describe: (status: Status) => ({\n isRunning: running.has(status),\n isTerminal: terminal.has(status),\n isSuccessful: successful.has(status),\n isFailed: failed.has(status),\n }),\n statuses: { running, successful, failed, terminal },\n named: Object.fromEntries(\n all.map((status) => [status.toUpperCase(), status]),\n ) as StatusNames<Status>,\n };\n};\n\n/**\n * Job statuses per service, e.g. `jobStatus.queue.isFailed(status)`.\n *\n * - Never merge services: labels overlap but their meaning differs.\n * - `query` covers the query job, not its statements (which have `notExecuted`).\n */\nexport const jobStatus = {\n storage: forService(STORAGE),\n queue: forService(QUEUE),\n query: forService(QUERY),\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jobStatus-BJdbZ72V.js","names":[],"sources":["../src/utils/async/delay.ts","../src/utils/async/lazy.ts","../src/utils/async/result.ts","../src/utils/async/poll/utils.ts","../src/utils/async/poll/backoff.ts","../src/utils/async/poll/pollLoop.ts","../src/utils/async/poll/poll.ts","../src/domain/jobStatus.ts"],"sourcesContent":["import { createAbortError } from '../createAbortError';\n\nexport const delay = (timeout: number, signal?: AbortSignal) =>\n new Promise<void>((resolve, reject) => {\n if (signal?.aborted) return reject(createAbortError(signal.reason));\n\n const onAbort = () => {\n clearTimeout(timeoutId);\n reject(createAbortError(signal?.reason));\n };\n\n // `once: true` only detaches the listener once the event fires, so the timeout path has to\n // detach it explicitly — a caller reusing one signal across many delays (`poll` does) would\n // otherwise pile up a listener per delay for as long as the signal is alive.\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, timeout);\n\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n","import type { TaskFn } from './types';\n\n/**\n * Runs `task` once and replays its promise to every later caller.\n *\n * - A rejection is not cached: the next call retries, so a transient failure never sticks.\n * - Callers that joined the failed run reject with its error.\n */\nexport const lazy = <T>(task: TaskFn<T>): (() => Promise<Awaited<T>>) => {\n let value: Promise<Awaited<T>> | null = null;\n\n // async wrapper so a synchronous throw from `task` rejects rather than throws.\n const runTask = async (): Promise<Awaited<T>> => await task();\n\n return () => {\n value ??= runTask().catch((error: unknown) => {\n value = null;\n throw error;\n });\n return value;\n };\n};\n","export type Success<T> = { success: true; data: T };\nexport type Failure<E extends Error> = { success: false; error: E };\nexport type Result<T, E extends Error = Error> = Success<T> | Failure<E>;\n\n// A task that returns a promise is a type error: the wrapper would report success before it\n// settles, and the rejection would go unhandled. Use the `*Async` sibling.\ntype NotPromise<T> = T extends PromiseLike<unknown> ? never : T;\n\nexport const asError = (thrown: unknown) =>\n thrown instanceof Error ? thrown : new Error(String(thrown), { cause: thrown });\n\nconst success = <T>(data: T): Result<T, never> => ({ success: true, data });\nconst failure = <E extends Error>(error: E): Result<never, E> => ({ success: false, error });\nconst isSuccess = <T, E extends Error>(result: Result<T, E>): result is Success<T> =>\n result.success;\nconst isFailure = <T, E extends Error>(result: Result<T, E>): result is Failure<E> =>\n !result.success;\n\nconst map = <T, E extends Error, U>(result: Result<T, E>, fn: (data: T) => U): Result<U, E> =>\n result.success ? success(fn(result.data)) : result;\n\nconst mapError = <T, E extends Error, F extends Error>(\n result: Result<T, E>,\n fn: (error: E) => F,\n): Result<T, F> => (result.success ? result : failure(fn(result.error)));\n\nconst andThen = <T, E extends Error, U, F extends Error>(\n result: Result<T, E>,\n fn: (data: T) => Result<U, F>,\n): Result<U, E | F> => (result.success ? fn(result.data) : result);\n\nconst match = <T, E extends Error, R>(\n result: Result<T, E>,\n onSuccess: (data: T) => R,\n onFailure: (error: E) => R,\n): R => (result.success ? onSuccess(result.data) : onFailure(result.error));\n\n// A side effect on a success; the result itself passes through untouched, same instance.\nconst tap = <T, E extends Error>(result: Result<T, E>, fn: (data: T) => void): Result<T, E> => {\n if (result.success) fn(result.data);\n return result;\n};\n\nconst unwrap = <T, E extends Error>(result: Result<T, E>): T => {\n if (result.success) return result.data;\n throw result.error;\n};\n\nconst unwrapOr = <T, E extends Error, U>(result: Result<T, E>, fallback: U): T | U =>\n result.success ? result.data : fallback;\n\nconst tryCatch = <T>(task: () => NotPromise<T>): Result<T> => {\n try {\n return success(task());\n } catch (thrown) {\n return failure(asError(thrown));\n }\n};\n\nconst tryCatchAsync = async <T>(task: () => T | PromiseLike<T>): Promise<Result<T>> => {\n try {\n return success(await task());\n } catch (thrown) {\n return failure(asError(thrown));\n }\n};\n\nconst fromThrowable =\n <A extends unknown[], R>(fn: (...args: A) => NotPromise<R>) =>\n (...args: A): Result<R> =>\n tryCatch(() => fn(...args));\n\nconst fromThrowableAsync =\n <A extends unknown[], R>(fn: (...args: A) => R | PromiseLike<R>) =>\n (...args: A): Promise<Result<R>> =>\n tryCatchAsync(() => fn(...args));\n\nexport const Result = {\n success,\n failure,\n isSuccess,\n isFailure,\n map,\n mapError,\n andThen,\n match,\n tap,\n unwrap,\n unwrapOr,\n tryCatch,\n tryCatchAsync,\n fromThrowable,\n fromThrowableAsync,\n};\n","/**\n * The longest delay a timer can hold: `setTimeout` takes a 32-bit signed number of milliseconds,\n * about 24.9 days.\n *\n * - Above it the delay wraps: Node warns and fires after 1 ms, so a long wait becomes a busy loop.\n * - It bounds a backoff curve and a poll's timeout alike, since both end up in a timer.\n */\nexport const MAX_TIMER_DELAY = 2 ** 31 - 1;\n\nexport const clamp = (value: number, min: number, max = Infinity) =>\n Math.min(Math.max(value, min), max);\n\nexport const finiteOr = (value: number, fallback: number) =>\n Number.isFinite(value) ? value : fallback;\n\n/** A signal that never aborts, so an input nobody gave costs no branch of its own. */\nexport const neverAborts = () => new AbortController().signal;\n","import { clamp, finiteOr, MAX_TIMER_DELAY } from './utils';\n\nexport type Jitter =\n | 'none' // delay\n | 'full' // [0, delay)\n | 'equal'; // [delay / 2, delay)\n\ntype Backoff =\n | { type: 'constant'; interval: number } // 3000, 3000, 3000, ...\n | { type: 'linear'; initialInterval: number; step: number } // 1000, 2000, 3000, …\n | { type: 'exponential'; initialInterval: number; factor?: number }; // 1000, 2000, 4000, 8000, …\n\ntype RandomFn = () => number;\ntype JitterFn = (delay: number) => number;\ntype BackoffFn = (attempt: number) => number;\n\nexport type BackoffDef = {\n jitter?: Jitter;\n maxInterval?: number;\n random?: RandomFn;\n} & Backoff;\n\nconst MIN_STEP = 500;\nconst MIN_FACTOR = 2;\nconst MIN_INTERVAL = 500;\n\nexport const createBackoff = ({\n jitter = 'none',\n maxInterval: _maxInterval = MAX_TIMER_DELAY,\n random = Math.random,\n ...backoff\n}: BackoffDef): BackoffFn => {\n const backoffFn: BackoffFn = (attempt) => {\n if (backoff.type === 'linear') {\n const interval = clamp(finiteOr(backoff.initialInterval, MIN_INTERVAL), MIN_INTERVAL);\n const step = clamp(finiteOr(backoff.step, MIN_STEP), MIN_STEP);\n\n return interval + step * (attempt - 1);\n }\n if (backoff.type === 'exponential') {\n const interval = clamp(finiteOr(backoff.initialInterval, MIN_INTERVAL), MIN_INTERVAL);\n const factor = clamp(finiteOr(backoff.factor ?? MIN_FACTOR, MIN_FACTOR), MIN_FACTOR);\n\n return interval * factor ** (attempt - 1);\n }\n\n return clamp(finiteOr(backoff.interval, MIN_INTERVAL), MIN_INTERVAL);\n };\n\n const jitterFn: JitterFn = (delay) => {\n if (jitter === 'none') return delay;\n if (jitter === 'full') return delay * random();\n return delay / 2 + (delay / 2) * random(); // equal\n };\n\n const maxInterval = clamp(finiteOr(_maxInterval, MAX_TIMER_DELAY), MIN_INTERVAL, MAX_TIMER_DELAY);\n return (_attempt) => {\n const attempt = clamp(finiteOr(Math.trunc(_attempt), 1), 1);\n const capped = Math.min(backoffFn(attempt), maxInterval);\n // Floored after the jitter, not before: `full` jitter multiplies by a random fraction, so a floor\n // applied to the curve alone leaves sub-millisecond gaps between attempts.\n return clamp(finiteOr(jitterFn(capped), MIN_INTERVAL), MIN_INTERVAL, maxInterval);\n };\n};\n","import { delay } from '../delay';\nimport { Result } from '../result';\n\nimport { type BackoffDef, createBackoff } from './backoff';\nimport { clamp, finiteOr, MAX_TIMER_DELAY, neverAborts } from './utils';\n\ntype Clock = {\n wait: (ms: number, signal?: AbortSignal) => Promise<void>;\n now: () => number;\n};\n\nexport type PollKey = readonly unknown[];\n\nexport type PollContext<K extends PollKey = PollKey> = {\n pollKey: K;\n attempt: number;\n elapsed: number;\n};\n\n/** The context plus the answer it is about: what `until` decides on, and what an ending reports. */\nexport type PollTick<T, K extends PollKey = PollKey> = PollContext<K> & { last: T | null };\n\nexport type PollResultState = 'done' | 'timedOut' | 'exhausted' | 'aborted' | 'errored';\n\nexport type PollResult<T, K extends PollKey = PollKey> = PollTick<T, K> &\n (\n | { state: 'done'; data: T }\n | { state: 'timedOut' | 'exhausted'; error?: Error }\n | { state: 'aborted'; reason?: unknown }\n | { state: 'errored'; error: Error }\n );\n\nexport type PollOptions<T, K extends PollKey = PollKey> = {\n pollKey?: K;\n pollFn: (context: PollContext<K> & { signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T, K> & { data: T }) => boolean;\n signal?: AbortSignal;\n backoff?: BackoffDef;\n isRetryable?: (error: Error) => boolean;\n maxAttempts?: number;\n timeout?: number;\n clock?: Clock;\n};\n\nconst pollResult = {\n done: <T, K extends PollKey>(data: T, context: PollTick<T, K>): PollResult<T, K> => ({\n state: 'done',\n data,\n ...context,\n last: data,\n }),\n errored: <T, K extends PollKey>(error: Error, context: PollTick<T, K>): PollResult<T, K> => ({\n state: 'errored',\n error,\n ...context,\n }),\n exhausted: <T, K extends PollKey>(context: PollTick<T, K>, error?: Error): PollResult<T, K> => ({\n state: 'exhausted',\n error,\n ...context,\n }),\n timedOut: <T, K extends PollKey>(context: PollTick<T, K>, error?: Error): PollResult<T, K> => ({\n state: 'timedOut',\n error,\n ...context,\n }),\n aborted: <T, K extends PollKey>(context: PollTick<T, K>, reason: unknown): PollResult<T, K> => ({\n state: 'aborted',\n reason,\n ...context,\n }),\n};\n\nexport const pollLoop = async <T, K extends PollKey = PollKey>({\n pollKey,\n pollFn: _pollFn,\n until: _until,\n signal: callerSignal = neverAborts(),\n backoff: backoffDef = { type: 'constant', interval: 3000 },\n clock = { wait: (ms, signal) => delay(ms, signal), now: () => performance.now() },\n isRetryable: _isRetryable = () => false,\n maxAttempts: _maxAttempts = Infinity,\n timeout: _timeout = Infinity,\n}: PollOptions<T, K>): Promise<PollResult<T, K>> => {\n // A deadline ends up in a timer, so a finite one is bounded by what a timer can hold. `Infinity`\n // is answered before the clamp: it means no deadline, and clamping would make it the longest one.\n const requested = finiteOr(_timeout, Infinity);\n const timeout = requested === Infinity ? Infinity : clamp(requested, 0, MAX_TIMER_DELAY);\n const maxAttempts = Math.trunc(clamp(finiteOr(_maxAttempts, Infinity), 0));\n\n const timeoutSignal = timeout === Infinity ? neverAborts() : AbortSignal.timeout(timeout);\n const anySignal = AbortSignal.any([callerSignal, timeoutSignal]);\n const anyAborted = Promise.withResolvers<never>();\n\n anySignal.addEventListener('abort', () => anyAborted.reject(anySignal.reason), {\n once: true,\n });\n void anyAborted.promise.catch(() => undefined);\n\n const backoffFn = createBackoff(backoffDef);\n const startedAt = clock.now();\n\n const until = Result.fromThrowable(_until);\n const isRetryable = Result.fromThrowable(_isRetryable);\n // A poll without a key has an empty one, and `K` is opaque in here — the one place the absent\n // case is materialised is the one place it has to be asserted.\n const key = pollKey ?? ([] as unknown as K);\n // Only what the context declares: a request is not handed the tick's `last` as well.\n const pollFn = ({ pollKey: key, attempt: at, elapsed }: PollContext<K>) =>\n Result.tryCatchAsync(() =>\n Promise.race([\n _pollFn({ pollKey: key, attempt: at, elapsed, signal: anySignal }),\n anyAborted.promise,\n ]),\n );\n const sleep = Result.fromThrowableAsync((ms: number) => clock.wait(ms, anySignal));\n\n let attempt = 0;\n // What a retry swallowed: the poll carries it to whichever ending runs out first.\n let last: T | null = null;\n let lastError: Error | undefined;\n const context = (at = clock.now() - startedAt): PollTick<T, K> => ({\n pollKey: key,\n attempt,\n elapsed: at,\n last,\n });\n\n if (attempt >= maxAttempts) return pollResult.exhausted<T, K>(context());\n\n while (true) {\n const before = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(before, lastError);\n if (callerSignal.aborted) return pollResult.aborted(before, callerSignal.reason);\n\n attempt++;\n // The attempt it is, not the one before it — `before` was read to decide whether to make it.\n const poll = await pollFn({ ...before, attempt });\n\n // What the attempt produced, recorded before the tick that reports it: on any ending but `done`\n // these two are the only account of what the poll saw, and reading them one attempt behind is\n // reading the wrong answer.\n if (poll.success) last = poll.data;\n else lastError = poll.error;\n\n const after = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(after, lastError);\n if (callerSignal.aborted) return pollResult.aborted(after, callerSignal.reason);\n\n if (!poll.success) {\n const canRetry = isRetryable(poll.error);\n\n // A predicate that throws cannot ask for a retry. The request's own failure stays the reported\n // one — it is the type a caller's guards expect — and the predicate's rides along as its cause.\n if (!canRetry.success) {\n poll.error.cause ??= canRetry.error;\n return pollResult.errored(poll.error, after);\n }\n if (!canRetry.data) return pollResult.errored(poll.error, after);\n }\n\n if (poll.success) {\n const isDone = until({ ...after, data: poll.data });\n if (!isDone.success) return pollResult.errored(isDone.error, after);\n if (isDone.data) return pollResult.done(poll.data, after);\n }\n\n // exhausted\n if (attempt >= maxAttempts) return pollResult.exhausted(after, lastError);\n\n // sleep\n const backoff = backoffFn(attempt);\n if (after.elapsed + backoff >= timeout) return pollResult.timedOut(after, lastError);\n\n const slept = await sleep(backoff);\n if (!slept.success) {\n const afterSleep = context();\n if (timeoutSignal.aborted) return pollResult.timedOut(afterSleep, lastError);\n if (callerSignal.aborted) return pollResult.aborted(afterSleep, callerSignal.reason);\n\n return pollResult.errored(slept.error, afterSleep);\n }\n }\n};\n","import { createAbortError } from '../../createAbortError';\nimport { createEmitter, createStore } from '../../store';\nimport { lazy } from '../lazy';\n\nimport {\n type PollKey,\n pollLoop,\n type PollOptions,\n type PollResult,\n type PollResultState,\n type PollTick,\n} from './pollLoop';\nimport { neverAborts } from './utils';\n\nexport type PollState = 'idle' | 'polling' | PollResultState;\nexport type PollSnapshot = PollTick<unknown> & { state: PollState };\n\ntype OnFailure<T> = (result: PollResult<T>) => Error | undefined;\n\nexport type PollerStartFn<T> = () => Promise<PollResult<T>>;\nexport type PollerStopFn = (reason?: string) => void;\ntype PollerSubscribeFn = (listener: (snapshot: PollSnapshot) => void) => () => void;\ntype PollerDebugFn = () => PollSnapshot;\ntype PollerUnwrapFn<T> = (onFailure?: OnFailure<T>) => Promise<T>;\nexport type Poller<T> = {\n readonly state: PollState;\n start: PollerStartFn<T>;\n unwrap: PollerUnwrapFn<T>;\n stop: PollerStopFn;\n subscribe: PollerSubscribeFn;\n debug: PollerDebugFn;\n};\n\nexport type PollTask<T> = Promise<PollResult<T>> &\n Pick<Poller<T>, 'unwrap' | 'stop' | 'subscribe' | 'debug'>;\n\nexport type ObservedPoller = Pick<Poller<unknown>, 'stop' | 'subscribe' | 'debug' | 'start'>;\n\nexport const emitter = createEmitter<ObservedPoller>();\n\nexport const failureOf = (result: PollResult<unknown>): Error => {\n if ('error' in result && result.error) return result.error;\n\n if (result.state === 'aborted') {\n if (result.reason instanceof Error) return result.reason;\n\n return createAbortError(\n typeof result.reason === 'string' ? result.reason : 'The poll was stopped.',\n );\n }\n\n return new Error(`The poll ${result.state} after ${result.attempt} attempts.`);\n};\n\nexport const poller = <T, K extends PollKey = PollKey>({\n pollKey,\n signal,\n until,\n ...pollLoopOptions\n}: PollOptions<T, K>): Poller<T> => {\n const callerSignal = signal ?? neverAborts();\n const pollerSignal = new AbortController();\n const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);\n\n // snapshoting\n const snapshot = createStore<PollSnapshot>({\n pollKey: pollKey ?? [],\n state: 'idle',\n attempt: 0,\n elapsed: 0,\n last: null,\n });\n const updateSnapshot = (next: Partial<PollSnapshot>) =>\n snapshot.set({ ...snapshot.get(), ...next });\n\n const handleUntil = (context: PollTick<T, K> & { data: T }) => {\n updateSnapshot({ attempt: context.attempt, elapsed: context.elapsed, last: context.data });\n return until(context);\n };\n\n const start: PollerStartFn<T> = lazy(async () => {\n updateSnapshot({ state: 'polling' });\n const result = await pollLoop({\n ...pollLoopOptions,\n pollKey,\n until: handleUntil,\n signal: anySignal,\n });\n // The result knows what a tick cannot: attempts that failed, and the time the ending itself took.\n snapshot.set({\n pollKey: result.pollKey,\n state: result.state,\n attempt: result.attempt,\n elapsed: result.elapsed,\n last: result.last,\n });\n return result;\n });\n\n const stop: PollerStopFn = (reason) => pollerSignal.abort(reason);\n const subscribe: PollerSubscribeFn = (listener) =>\n snapshot.subscribe(() => listener(snapshot.get()));\n const debug: PollerDebugFn = snapshot.get;\n\n const unwrap: PollerUnwrapFn<T> = async (onFailure) => {\n const result = await start();\n if (result.state === 'done') return result.data;\n throw onFailure?.(result) ?? failureOf(result);\n };\n\n const controls = {\n stop,\n subscribe,\n debug,\n start,\n };\n\n emitter.emit(controls);\n\n return {\n get state() {\n return snapshot.get().state;\n },\n unwrap,\n ...controls,\n };\n};\n\nexport const poll = <T, K extends PollKey = PollKey>(options: PollOptions<T, K>): PollTask<T> => {\n const p = poller(options);\n\n return Object.assign(p.start(), {\n unwrap: p.unwrap,\n stop: p.stop,\n subscribe: p.subscribe,\n debug: p.debug,\n });\n};\n","import type { QueryJobStatus } from '../clients/queryService/types';\nimport type { QueueJobStatus } from '../clients/queue/types';\nimport type { StorageJobStatus } from '../clients/storage/jobs/types';\n\n/**\n * One service's statuses split by what the job is doing.\n *\n * - Groups are disjoint and cover the vocabulary; terminal = successful + failed.\n * - The annotation makes a renamed generated status fail the build here.\n */\ntype StatusGroups<Status extends string> = {\n running: readonly Status[];\n successful: readonly Status[];\n failed: readonly Status[];\n};\n\n/** A service's statuses as named constants — `SUCCESS: 'success'`. */\ntype StatusNames<Status extends string> = { [K in Status as Uppercase<K>]: K };\n\n// Mirrors `StorageJobStatus` in `connection`.\nconst STORAGE: StatusGroups<StorageJobStatus> = {\n running: ['waiting', 'processing'],\n successful: ['success'],\n failed: ['error'],\n};\n\n/**\n * Mirrors `PlainJobInterface` in `job-queue-internal-api-php-client`.\n *\n * - `terminating` is running until `terminated`.\n * - The split mirrors the job's `isSuccess`; with a job in hand, read `job.isSuccess` instead.\n */\nconst QUEUE: StatusGroups<QueueJobStatus> = {\n running: ['created', 'waiting', 'processing', 'terminating'],\n successful: ['success', 'warning'],\n failed: ['error', 'cancelled', 'terminated'],\n};\n\n// Mirrors `JobState` in `go-monorepo` (`services/query/internal/repository/models`).\n// `canceled` with one `l`, unlike the other services.\nconst QUERY: StatusGroups<QueryJobStatus> = {\n running: ['created', 'enqueued', 'processing'],\n successful: ['completed'],\n failed: ['failed', 'canceled'],\n};\n\n/**\n * One service's status predicates, sets and named constants.\n *\n * - `isSuccessful` / `isFailed` are `false` while running.\n * - `isKnown` narrows an untyped string.\n * - `named` is asserted: `Object.fromEntries` can't prove the key mapping.\n */\nconst forService = <Status extends string>(groups: StatusGroups<Status>) => {\n const all = [...groups.running, ...groups.successful, ...groups.failed];\n\n const running: ReadonlySet<Status> = new Set(groups.running);\n const successful: ReadonlySet<Status> = new Set(groups.successful);\n const failed: ReadonlySet<Status> = new Set(groups.failed);\n const terminal: ReadonlySet<Status> = new Set([...groups.successful, ...groups.failed]);\n const known: ReadonlySet<string> = new Set<string>(all);\n\n return {\n isRunning: (status: Status) => running.has(status),\n isTerminal: (status: Status) => terminal.has(status),\n isSuccessful: (status: Status) => successful.has(status),\n isFailed: (status: Status) => failed.has(status),\n isKnown: (value: string): value is Status => known.has(value),\n describe: (status: Status) => ({\n isRunning: running.has(status),\n isTerminal: terminal.has(status),\n isSuccessful: successful.has(status),\n isFailed: failed.has(status),\n }),\n statuses: { running, successful, failed, terminal },\n named: Object.fromEntries(\n all.map((status) => [status.toUpperCase(), status]),\n ) as StatusNames<Status>,\n };\n};\n\n/**\n * Job statuses per service, e.g. `jobStatus.queue.isFailed(status)`.\n *\n * - Never merge services: labels overlap but their meaning differs.\n * - `query` covers the query job, not its statements (which have `notExecuted`).\n */\nexport const jobStatus = {\n storage: forService(STORAGE),\n queue: forService(QUEUE),\n query: forService(QUERY),\n};\n"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { l as StorageToken } from "./types-GaOcVZ3d.cjs";
2
- import { t as Backend } from "./backends-DKBz5OxE.cjs";
3
- //#region src/domain/project.d.ts
4
- type Options = {
5
- sapiToken: StorageToken;
6
- };
7
- declare const hasFeature: (token: StorageToken, ...feature: string[]) => boolean;
8
- /**
9
- * The admin's features as the Storage token carries them.
10
- *
11
- * - The same list `createAdminAccount` reads from the Manage token: Connection serialises both
12
- * from the admin row, so prefer the account where one is at hand — it also knows `isSuperAdmin`.
13
- */
14
- declare const hasAdminFeature: (token: StorageToken, ...feature: string[]) => boolean;
15
- declare const createProject: ({ sapiToken }: Options) => {
16
- hasFeature: (...feature: string[]) => boolean;
17
- hasAdminFeature: (...feature: string[]) => boolean;
18
- hasBackend: (backend: Backend) => boolean;
19
- sapiToken: StorageToken;
20
- };
21
- type Project = ReturnType<typeof createProject>;
22
- //#endregion
23
- export { hasAdminFeature as n, hasFeature as r, Project as t };
24
- //# sourceMappingURL=project-BN7YRWFS.d.cts.map
@@ -1,24 +0,0 @@
1
- import { l as StorageToken } from "./types-CESP1ONj.js";
2
- import { t as Backend } from "./backends-DKBz5OxE.js";
3
- //#region src/domain/project.d.ts
4
- type Options = {
5
- sapiToken: StorageToken;
6
- };
7
- declare const hasFeature: (token: StorageToken, ...feature: string[]) => boolean;
8
- /**
9
- * The admin's features as the Storage token carries them.
10
- *
11
- * - The same list `createAdminAccount` reads from the Manage token: Connection serialises both
12
- * from the admin row, so prefer the account where one is at hand — it also knows `isSuperAdmin`.
13
- */
14
- declare const hasAdminFeature: (token: StorageToken, ...feature: string[]) => boolean;
15
- declare const createProject: ({ sapiToken }: Options) => {
16
- hasFeature: (...feature: string[]) => boolean;
17
- hasAdminFeature: (...feature: string[]) => boolean;
18
- hasBackend: (backend: Backend) => boolean;
19
- sapiToken: StorageToken;
20
- };
21
- type Project = ReturnType<typeof createProject>;
22
- //#endregion
23
- export { hasAdminFeature as n, hasFeature as r, Project as t };
24
- //# sourceMappingURL=project-BpWTnoQ_.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryService-Blfz59Ms.js","names":[],"sources":["../src/clients/queryService/poller.ts","../src/clients/queryService/queryServiceClient.ts"],"sourcesContent":["import { jobStatus } from '../../domain/jobStatus';\nimport { poller } from '../../utils/async';\n\nimport type { GetQueryJobPath, JobStatusResponse } from './types';\n\nconst DEFAULT_POLL_INTERVAL = 2000;\n\ntype QueryJobPollOptions = {\n interval?: number;\n maxAttempts?: number;\n timeout?: number;\n signal?: AbortSignal;\n};\n\ntype GetQueryJob = (\n queryJobId: GetQueryJobPath['queryJobId'],\n signal?: AbortSignal,\n) => Promise<JobStatusResponse>;\n\n/**\n * Waits on a query job.\n *\n * - Takes the job rather than its id, so a caller hands over what `createQueryJob` gave it.\n * - The request reads the id off the key rather than out of a closure, which is what makes the key\n * the whole input.\n * - Terminal is the job's own terminal set, not its statements': a `completed` job can still hold a\n * statement that failed, and what that means is the caller's business.\n */\nexport const createJobPoller =\n ({ getQueryJob }: { getQueryJob: GetQueryJob }) =>\n (\n { id }: { id: GetQueryJobPath['queryJobId'] },\n { interval, maxAttempts, timeout, signal }: QueryJobPollOptions = {},\n ) =>\n poller({\n pollKey: ['queryService.job', { queryJobId: id }] as const,\n pollFn: ({ pollKey: [, params], signal: pollSignal }) =>\n getQueryJob(params.queryJobId, pollSignal),\n until: ({ data }) => jobStatus.query.isTerminal(data.status),\n backoff: { type: 'constant', interval: interval ?? DEFAULT_POLL_INTERVAL },\n maxAttempts,\n timeout,\n signal,\n });\n","import {\n createGenericFetchClient,\n createOpenapiFetchClient,\n HttpHeader,\n parseContentDispositionHeader,\n} from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createJobPoller } from './poller';\nimport type {\n ExportResultsResponse,\n GetExportResultsQuery,\n GetQueriesHistoryQuery,\n GetQueriesPath,\n GetQueryJobPath,\n GetQueryResultsPath,\n GetQueryResutsQuery,\n PostCancelQueryJobPath,\n PostQueryBody,\n PostQueryPath,\n} from './types';\n\nexport const createQueryServiceClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const createQueryJob = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n ) => {\n const { data } = await client.post(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n { path: { branchId, workspaceId }, body },\n );\n\n return data;\n };\n\n const cancelQueryJob = async (queryJobId: PostCancelQueryJobPath['queryJobId']) => {\n const { data } = await client.post('/api/v1/queries/{queryJobId}/cancel', {\n path: { queryJobId },\n body: { reason: 'Cancelled by user' },\n });\n\n return data;\n };\n\n const getQueryJob = async (queryJobId: GetQueryJobPath['queryJobId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/queries/{queryJobId}',\n { path: { queryJobId } },\n { signal },\n );\n\n return data;\n };\n\n const getQueryResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query?: GetQueryResutsQuery,\n ) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}/{statementId}/results', {\n path: { queryJobId, statementId },\n query,\n });\n\n return data;\n };\n\n const getQueryHistory = async (\n branchId: GetQueriesPath['branchId'],\n workspaceId: GetQueriesPath['workspaceId'],\n query?: GetQueriesHistoryQuery,\n ) => {\n const { data } = await client.get(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n {\n path: { branchId, workspaceId },\n query,\n },\n );\n\n return data;\n };\n\n const exportResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query: GetExportResultsQuery,\n signal?: AbortSignal,\n ): Promise<ExportResultsResponse> => {\n const { data, response } = await client.get(\n '/api/v1/queries/{queryJobId}/{statementId}/export',\n {\n path: { queryJobId, statementId },\n query,\n },\n { signal },\n );\n\n const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? 'text/csv';\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n mimeType,\n content: data,\n fileName: contentDisposition?.filename ?? 'export.csv',\n };\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n // Every wait on a query job is the same wait, so it is the client's rather than a caller's.\n const poller = createJobPoller({ getQueryJob });\n\n return {\n healthCheck,\n poller,\n createQueryJob,\n cancelQueryJob,\n getQueryJob,\n getQueryResults,\n getQueryHistory,\n exportResults,\n };\n};\n"],"mappings":";;;;;;AAKA,MAAM,wBAAwB;;;;;;;;;;AAuB9B,MAAa,mBACV,EAAE,mBAED,EAAE,MACF,EAAE,UAAU,aAAa,SAAS,WAAgC,CAAC,MAEnE,OAAO;CACL,SAAS,CAAC,oBAAoB,EAAE,YAAY,GAAG,CAAC;CAChD,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,iBACtC,YAAY,OAAO,YAAY,UAAU;CAC3C,QAAQ,EAAE,WAAW,UAAU,MAAM,WAAW,KAAK,MAAM;CAC3D,SAAS;EAAE,MAAM;EAAY,UAAU,YAAY;CAAsB;CACzE;CACA;CACA;AACF,CAAC;;;ACnBL,MAAa,4BAA4B,EAAE,SAAS,aAAa,WAA8B;CAC7F,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgB,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,iBAAiB,OACrB,UACA,aACA,SACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,gEACA;GAAE,MAAM;IAAE;IAAU;GAAY;GAAG;EAAK,CAC1C;EAEA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAAO,eAAqD;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uCAAuC;GACxE,MAAM,EAAE,WAAW;GACnB,MAAM,EAAE,QAAQ,oBAAoB;EACtC,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,YAA2C,WAAyB;EAC7F,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gCACA,EAAE,MAAM,EAAE,WAAW,EAAE,GACvB,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,YACA,aACA,UACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,sDAAsD;GACtF,MAAM;IAAE;IAAY;GAAY;GAChC;EACF,CAAC;EAED,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,UACA,aACA,UACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gEACA;GACE,MAAM;IAAE;IAAU;GAAY;GAC9B;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OACpB,YACA,aACA,OACA,WACmC;EACnC,MAAM,EAAE,MAAM,aAAa,MAAM,OAAO,IACtC,qDACA;GACE,MAAM;IAAE;IAAY;GAAY;GAChC;EACF,GACA,EAAE,OAAO,CACX;EAOA,OAAO;GACL,UANe,SAAS,QAAQ,IAAI,WAAW,YAAY,KAAK;GAOhE,SAAS;GACT,UAPyB,8BACzB,SAAS,QAAQ,IAAI,WAAW,mBAAmB,CAMxB,CAAC,EAAE,YAAY;EAC5C;CACF;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAKA,OAAO;EACL;EACA,QAJa,gBAAgB,EAAE,YAAY,CAItC;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryService-RlNYw7LG.cjs","names":["poller","jobStatus","createOpenapiFetchClient","createAuthHeaders","createGenericFetchClient","HttpHeader","parseContentDispositionHeader"],"sources":["../src/clients/queryService/poller.ts","../src/clients/queryService/queryServiceClient.ts"],"sourcesContent":["import { jobStatus } from '../../domain/jobStatus';\nimport { poller } from '../../utils/async';\n\nimport type { GetQueryJobPath, JobStatusResponse } from './types';\n\nconst DEFAULT_POLL_INTERVAL = 2000;\n\ntype QueryJobPollOptions = {\n interval?: number;\n maxAttempts?: number;\n timeout?: number;\n signal?: AbortSignal;\n};\n\ntype GetQueryJob = (\n queryJobId: GetQueryJobPath['queryJobId'],\n signal?: AbortSignal,\n) => Promise<JobStatusResponse>;\n\n/**\n * Waits on a query job.\n *\n * - Takes the job rather than its id, so a caller hands over what `createQueryJob` gave it.\n * - The request reads the id off the key rather than out of a closure, which is what makes the key\n * the whole input.\n * - Terminal is the job's own terminal set, not its statements': a `completed` job can still hold a\n * statement that failed, and what that means is the caller's business.\n */\nexport const createJobPoller =\n ({ getQueryJob }: { getQueryJob: GetQueryJob }) =>\n (\n { id }: { id: GetQueryJobPath['queryJobId'] },\n { interval, maxAttempts, timeout, signal }: QueryJobPollOptions = {},\n ) =>\n poller({\n pollKey: ['queryService.job', { queryJobId: id }] as const,\n pollFn: ({ pollKey: [, params], signal: pollSignal }) =>\n getQueryJob(params.queryJobId, pollSignal),\n until: ({ data }) => jobStatus.query.isTerminal(data.status),\n backoff: { type: 'constant', interval: interval ?? DEFAULT_POLL_INTERVAL },\n maxAttempts,\n timeout,\n signal,\n });\n","import {\n createGenericFetchClient,\n createOpenapiFetchClient,\n HttpHeader,\n parseContentDispositionHeader,\n} from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createJobPoller } from './poller';\nimport type {\n ExportResultsResponse,\n GetExportResultsQuery,\n GetQueriesHistoryQuery,\n GetQueriesPath,\n GetQueryJobPath,\n GetQueryResultsPath,\n GetQueryResutsQuery,\n PostCancelQueryJobPath,\n PostQueryBody,\n PostQueryPath,\n} from './types';\n\nexport const createQueryServiceClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const createQueryJob = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n ) => {\n const { data } = await client.post(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n { path: { branchId, workspaceId }, body },\n );\n\n return data;\n };\n\n const cancelQueryJob = async (queryJobId: PostCancelQueryJobPath['queryJobId']) => {\n const { data } = await client.post('/api/v1/queries/{queryJobId}/cancel', {\n path: { queryJobId },\n body: { reason: 'Cancelled by user' },\n });\n\n return data;\n };\n\n const getQueryJob = async (queryJobId: GetQueryJobPath['queryJobId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/queries/{queryJobId}',\n { path: { queryJobId } },\n { signal },\n );\n\n return data;\n };\n\n const getQueryResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query?: GetQueryResutsQuery,\n ) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}/{statementId}/results', {\n path: { queryJobId, statementId },\n query,\n });\n\n return data;\n };\n\n const getQueryHistory = async (\n branchId: GetQueriesPath['branchId'],\n workspaceId: GetQueriesPath['workspaceId'],\n query?: GetQueriesHistoryQuery,\n ) => {\n const { data } = await client.get(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n {\n path: { branchId, workspaceId },\n query,\n },\n );\n\n return data;\n };\n\n const exportResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query: GetExportResultsQuery,\n signal?: AbortSignal,\n ): Promise<ExportResultsResponse> => {\n const { data, response } = await client.get(\n '/api/v1/queries/{queryJobId}/{statementId}/export',\n {\n path: { queryJobId, statementId },\n query,\n },\n { signal },\n );\n\n const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? 'text/csv';\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n mimeType,\n content: data,\n fileName: contentDisposition?.filename ?? 'export.csv',\n };\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n // Every wait on a query job is the same wait, so it is the client's rather than a caller's.\n const poller = createJobPoller({ getQueryJob });\n\n return {\n healthCheck,\n poller,\n createQueryJob,\n cancelQueryJob,\n getQueryJob,\n getQueryResults,\n getQueryHistory,\n exportResults,\n };\n};\n"],"mappings":";;;;;;AAKA,MAAM,wBAAwB;;;;;;;;;;AAuB9B,MAAa,mBACV,EAAE,mBAED,EAAE,MACF,EAAE,UAAU,aAAa,SAAS,WAAgC,CAAC,MAEnEA,kBAAAA,OAAO;CACL,SAAS,CAAC,oBAAoB,EAAE,YAAY,GAAG,CAAC;CAChD,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,iBACtC,YAAY,OAAO,YAAY,UAAU;CAC3C,QAAQ,EAAE,WAAWC,kBAAAA,UAAU,MAAM,WAAW,KAAK,MAAM;CAC3D,SAAS;EAAE,MAAM;EAAY,UAAU,YAAY;CAAsB;CACzE;CACA;CACA;AACF,CAAC;;;ACnBL,MAAa,4BAA4B,EAAE,SAAS,aAAa,WAA8B;CAC7F,MAAM,SAASC,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgBC,iCAAAA,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,iBAAiB,OACrB,UACA,aACA,SACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,gEACA;GAAE,MAAM;IAAE;IAAU;GAAY;GAAG;EAAK,CAC1C;EAEA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAAO,eAAqD;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uCAAuC;GACxE,MAAM,EAAE,WAAW;GACnB,MAAM,EAAE,QAAQ,oBAAoB;EACtC,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,YAA2C,WAAyB;EAC7F,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gCACA,EAAE,MAAM,EAAE,WAAW,EAAE,GACvB,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,YACA,aACA,UACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,sDAAsD;GACtF,MAAM;IAAE;IAAY;GAAY;GAChC;EACF,CAAC;EAED,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,UACA,aACA,UACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gEACA;GACE,MAAM;IAAE;IAAU;GAAY;GAC9B;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OACpB,YACA,aACA,OACA,WACmC;EACnC,MAAM,EAAE,MAAM,aAAa,MAAM,OAAO,IACtC,qDACA;GACE,MAAM;IAAE;IAAY;GAAY;GAChC;EACF,GACA,EAAE,OAAO,CACX;EAOA,OAAO;GACL,UANe,SAAS,QAAQ,IAAIC,0BAAAA,WAAW,YAAY,KAAK;GAOhE,SAAS;GACT,UAPyBC,0BAAAA,8BACzB,SAAS,QAAQ,IAAID,0BAAAA,WAAW,mBAAmB,CAMxB,CAAC,EAAE,YAAY;EAC5C;CACF;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAKA,OAAO;EACL;EACA,QAJa,gBAAgB,EAAE,YAAY,CAItC;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-BrgRdtOr.cjs","names":["poller","jobStatus","createOpenapiFetchClient","createAuthHeaders","createGenericFetchClient","collect"],"sources":["../src/clients/queue/poller.ts","../src/clients/queue/queueClient.ts"],"sourcesContent":["import { jobStatus } from '../../domain/jobStatus';\nimport { poller } from '../../utils/async';\n\nimport type { GetQueueJobPath, QueueJob } from './types';\n\nconst DEFAULT_POLL_INTERVAL = 2000;\n\ntype QueueJobPollOptions = {\n interval?: number;\n maxAttempts?: number;\n timeout?: number;\n signal?: AbortSignal;\n};\n\ntype GetJob = (jobId: GetQueueJobPath['jobId'], signal?: AbortSignal) => Promise<QueueJob>;\n\n/**\n * Waits on a queue job.\n *\n * - Takes the job, not its id: the component makes the poll legible in dev tools.\n * - `pollFn` reads the id off the key, so the key is the whole input.\n * - A job that ended as `error` is a `done` poll; interpreting it is the caller's job.\n */\nexport const createJobPoller =\n ({ getJob }: { getJob: GetJob }) =>\n (\n { id, component }: { id: GetQueueJobPath['jobId']; component: string },\n { interval, maxAttempts, timeout, signal }: QueueJobPollOptions = {},\n ) =>\n poller({\n pollKey: ['queue.job', { jobId: id, component }] as const,\n pollFn: ({ pollKey: [, params], signal: pollSignal }) => getJob(params.jobId, pollSignal),\n until: ({ data }) => jobStatus.queue.isTerminal(data.status),\n backoff: { type: 'constant', interval: interval ?? DEFAULT_POLL_INTERVAL },\n maxAttempts,\n timeout,\n signal,\n });\n","import { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { collect } from '../../utils';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createJobPoller } from './poller';\nimport type {\n CreateJobBody,\n GetQueueJobPath,\n KillJobPath,\n OrchestrationRerunPlanPath,\n SearchAllJobsQuery,\n SearchGroupedJobsQuery,\n SearchJobsQuery,\n} from './types';\n\nexport const createQueueClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const getJob = async (jobId: GetQueueJobPath['jobId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/jobs/{jobId}',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const searchJobs = async (query?: SearchJobsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/search/jobs',\n {\n query,\n },\n { signal },\n );\n\n return data;\n };\n\n const searchAllJobs = (query: SearchAllJobsQuery, signal?: AbortSignal) => {\n return collect({\n pageSize: query.limit,\n signal,\n fetchFrom: (offset, pageSize, batchSignal) => {\n return searchJobs({ ...query, limit: pageSize, offset }, batchSignal);\n },\n });\n };\n\n const createJob = async (body: CreateJobBody, signal?: AbortSignal) => {\n const { data } = await client.post('/jobs', { body }, { signal });\n\n return data;\n };\n\n const killJob = async (jobId: KillJobPath['jobId'], signal?: AbortSignal) => {\n const { data } = await client.post(\n '/jobs/{jobId}/kill',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const searchGroupedJobs = async (query: SearchGroupedJobsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/search/grouped-jobs',\n {\n query,\n },\n { signal },\n );\n\n return data;\n };\n\n const getOrchestrationRerunPlan = async (\n jobId: OrchestrationRerunPlanPath['jobId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/orchestration-rerun-plan/{jobId}',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n // Every wait on a queue job is the same wait, so it is the client's rather than a caller's.\n const poller = createJobPoller({ getJob });\n\n return {\n healthCheck,\n poller,\n getJob,\n searchJobs,\n searchAllJobs,\n createJob,\n killJob,\n searchGroupedJobs,\n getOrchestrationRerunPlan,\n };\n};\n"],"mappings":";;;;;;AAKA,MAAM,wBAAwB;;;;;;;;AAkB9B,MAAa,mBACV,EAAE,cAED,EAAE,IAAI,aACN,EAAE,UAAU,aAAa,SAAS,WAAgC,CAAC,MAEnEA,kBAAAA,OAAO;CACL,SAAS,CAAC,aAAa;EAAE,OAAO;EAAI;CAAU,CAAC;CAC/C,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,iBAAiB,OAAO,OAAO,OAAO,UAAU;CACxF,QAAQ,EAAE,WAAWC,kBAAAA,UAAU,MAAM,WAAW,KAAK,MAAM;CAC3D,SAAS;EAAE,MAAM;EAAY,UAAU,YAAY;CAAsB;CACzE;CACA;CACA;AACF,CAAC;;;ACpBL,MAAa,qBAAqB,EAAE,SAAS,aAAa,WAA8B;CACtF,MAAM,SAASC,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgBC,iCAAAA,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,SAAS,OAAO,OAAiC,WAAyB;EAC9E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,iBACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,aAAa,OAAO,OAAyB,WAAyB;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gBACA,EACE,MACF,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAA2B,WAAyB;EACzE,OAAOC,gBAAAA,QAAQ;GACb,UAAU,MAAM;GAChB;GACA,YAAY,QAAQ,UAAU,gBAAgB;IAC5C,OAAO,WAAW;KAAE,GAAG;KAAO,OAAO;KAAU;IAAO,GAAG,WAAW;GACtE;EACF,CAAC;CACH;CAEA,MAAM,YAAY,OAAO,MAAqB,WAAyB;EACrE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,OAAO,CAAC;EAEhE,OAAO;CACT;CAEA,MAAM,UAAU,OAAO,OAA6B,WAAyB;EAC3E,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,sBACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,OAA+B,WAAyB;EACvF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,wBACA,EACE,MACF,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAChC,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,qCACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAKA,OAAO;EACL;EACA,QAJa,gBAAgB,EAAE,OAAO,CAIjC;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-CNvR-M23.js","names":[],"sources":["../src/clients/queue/poller.ts","../src/clients/queue/queueClient.ts"],"sourcesContent":["import { jobStatus } from '../../domain/jobStatus';\nimport { poller } from '../../utils/async';\n\nimport type { GetQueueJobPath, QueueJob } from './types';\n\nconst DEFAULT_POLL_INTERVAL = 2000;\n\ntype QueueJobPollOptions = {\n interval?: number;\n maxAttempts?: number;\n timeout?: number;\n signal?: AbortSignal;\n};\n\ntype GetJob = (jobId: GetQueueJobPath['jobId'], signal?: AbortSignal) => Promise<QueueJob>;\n\n/**\n * Waits on a queue job.\n *\n * - Takes the job, not its id: the component makes the poll legible in dev tools.\n * - `pollFn` reads the id off the key, so the key is the whole input.\n * - A job that ended as `error` is a `done` poll; interpreting it is the caller's job.\n */\nexport const createJobPoller =\n ({ getJob }: { getJob: GetJob }) =>\n (\n { id, component }: { id: GetQueueJobPath['jobId']; component: string },\n { interval, maxAttempts, timeout, signal }: QueueJobPollOptions = {},\n ) =>\n poller({\n pollKey: ['queue.job', { jobId: id, component }] as const,\n pollFn: ({ pollKey: [, params], signal: pollSignal }) => getJob(params.jobId, pollSignal),\n until: ({ data }) => jobStatus.queue.isTerminal(data.status),\n backoff: { type: 'constant', interval: interval ?? DEFAULT_POLL_INTERVAL },\n maxAttempts,\n timeout,\n signal,\n });\n","import { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { collect } from '../../utils';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createJobPoller } from './poller';\nimport type {\n CreateJobBody,\n GetQueueJobPath,\n KillJobPath,\n OrchestrationRerunPlanPath,\n SearchAllJobsQuery,\n SearchGroupedJobsQuery,\n SearchJobsQuery,\n} from './types';\n\nexport const createQueueClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const getJob = async (jobId: GetQueueJobPath['jobId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/jobs/{jobId}',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const searchJobs = async (query?: SearchJobsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/search/jobs',\n {\n query,\n },\n { signal },\n );\n\n return data;\n };\n\n const searchAllJobs = (query: SearchAllJobsQuery, signal?: AbortSignal) => {\n return collect({\n pageSize: query.limit,\n signal,\n fetchFrom: (offset, pageSize, batchSignal) => {\n return searchJobs({ ...query, limit: pageSize, offset }, batchSignal);\n },\n });\n };\n\n const createJob = async (body: CreateJobBody, signal?: AbortSignal) => {\n const { data } = await client.post('/jobs', { body }, { signal });\n\n return data;\n };\n\n const killJob = async (jobId: KillJobPath['jobId'], signal?: AbortSignal) => {\n const { data } = await client.post(\n '/jobs/{jobId}/kill',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const searchGroupedJobs = async (query: SearchGroupedJobsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/search/grouped-jobs',\n {\n query,\n },\n { signal },\n );\n\n return data;\n };\n\n const getOrchestrationRerunPlan = async (\n jobId: OrchestrationRerunPlanPath['jobId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/orchestration-rerun-plan/{jobId}',\n {\n path: { jobId },\n },\n { signal },\n );\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n // Every wait on a queue job is the same wait, so it is the client's rather than a caller's.\n const poller = createJobPoller({ getJob });\n\n return {\n healthCheck,\n poller,\n getJob,\n searchJobs,\n searchAllJobs,\n createJob,\n killJob,\n searchGroupedJobs,\n getOrchestrationRerunPlan,\n };\n};\n"],"mappings":";;;;;;AAKA,MAAM,wBAAwB;;;;;;;;AAkB9B,MAAa,mBACV,EAAE,cAED,EAAE,IAAI,aACN,EAAE,UAAU,aAAa,SAAS,WAAgC,CAAC,MAEnE,OAAO;CACL,SAAS,CAAC,aAAa;EAAE,OAAO;EAAI;CAAU,CAAC;CAC/C,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,iBAAiB,OAAO,OAAO,OAAO,UAAU;CACxF,QAAQ,EAAE,WAAW,UAAU,MAAM,WAAW,KAAK,MAAM;CAC3D,SAAS;EAAE,MAAM;EAAY,UAAU,YAAY;CAAsB;CACzE;CACA;CACA;AACF,CAAC;;;ACpBL,MAAa,qBAAqB,EAAE,SAAS,aAAa,WAA8B;CACtF,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgB,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,SAAS,OAAO,OAAiC,WAAyB;EAC9E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,iBACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,aAAa,OAAO,OAAyB,WAAyB;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gBACA,EACE,MACF,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAA2B,WAAyB;EACzE,OAAO,QAAQ;GACb,UAAU,MAAM;GAChB;GACA,YAAY,QAAQ,UAAU,gBAAgB;IAC5C,OAAO,WAAW;KAAE,GAAG;KAAO,OAAO;KAAU;IAAO,GAAG,WAAW;GACtE;EACF,CAAC;CACH;CAEA,MAAM,YAAY,OAAO,MAAqB,WAAyB;EACrE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,OAAO,CAAC;EAEhE,OAAO;CACT;CAEA,MAAM,UAAU,OAAO,OAA6B,WAAyB;EAC3E,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,sBACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,OAA+B,WAAyB;EACvF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,wBACA,EACE,MACF,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAChC,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,qCACA,EACE,MAAM,EAAE,MAAM,EAChB,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAKA,OAAO;EACL;EACA,QAJa,gBAAgB,EAAE,OAAO,CAIjC;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}