@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,5 +1,6 @@
1
1
  import { t as createAbortError } from "./createAbortError-BxupOt-6.js";
2
2
  import { n as createEmitter, t as createStore } from "./store-C9FQCHGe.js";
3
+ import { r as isApiError } from "./createFetchClient-CkHdS_IG.js";
3
4
  //#region src/utils/async/delay.ts
4
5
  const delay = (timeout, signal) => new Promise((resolve, reject) => {
5
6
  if (signal?.aborted) return reject(createAbortError(signal.reason));
@@ -130,6 +131,7 @@ const createBackoff = ({ jitter = "none", maxInterval: _maxInterval = MAX_TIMER_
130
131
  };
131
132
  //#endregion
132
133
  //#region src/utils/async/poll/pollLoop.ts
134
+ /** One constructor per ending, so a result is built the same way wherever a poll ends. */
133
135
  const pollResult = {
134
136
  done: (data, context) => ({
135
137
  state: "done",
@@ -158,7 +160,7 @@ const pollResult = {
158
160
  ...context
159
161
  })
160
162
  };
161
- const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: callerSignal = neverAborts(), backoff: backoffDef = {
163
+ const pollLoop = async ({ pollFn: _pollFn, until: _until, signal: callerSignal = neverAborts(), backoff: backoffDef = {
162
164
  type: "constant",
163
165
  interval: 3e3
164
166
  }, clock = {
@@ -177,9 +179,7 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
177
179
  const startedAt = clock.now();
178
180
  const until = Result.fromThrowable(_until);
179
181
  const isRetryable = Result.fromThrowable(_isRetryable);
180
- const key = pollKey ?? [];
181
- const pollFn = ({ pollKey: key, attempt: at, elapsed }) => Result.tryCatchAsync(() => Promise.race([_pollFn({
182
- pollKey: key,
182
+ const pollFn = ({ attempt: at, elapsed }) => Result.tryCatchAsync(() => Promise.race([_pollFn({
183
183
  attempt: at,
184
184
  elapsed,
185
185
  signal: anySignal
@@ -189,7 +189,6 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
189
189
  let last = null;
190
190
  let lastError;
191
191
  const context = (at = clock.now() - startedAt) => ({
192
- pollKey: key,
193
192
  attempt,
194
193
  elapsed: at,
195
194
  last
@@ -239,6 +238,7 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
239
238
  };
240
239
  //#endregion
241
240
  //#region src/utils/async/poll/poll.ts
241
+ const isRequest = (init) => typeof init === "function";
242
242
  const emitter = createEmitter();
243
243
  const failureOf = (result) => {
244
244
  if ("error" in result && result.error) return result.error;
@@ -248,12 +248,14 @@ const failureOf = (result) => {
248
248
  }
249
249
  return /* @__PURE__ */ new Error(`The poll ${result.state} after ${result.attempt} attempts.`);
250
250
  };
251
- const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
251
+ const poller = ({ pollKey, init, signal, pollFn, until, failed, ...pollLoopOptions }) => {
252
252
  const callerSignal = signal ?? neverAborts();
253
253
  const pollerSignal = new AbortController();
254
254
  const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);
255
+ const keyOf = (from) => typeof pollKey === "function" ? pollKey(from) : pollKey;
256
+ const givenInit = () => init;
255
257
  const snapshot = createStore({
256
- pollKey: pollKey ?? [],
258
+ pollKey: isRequest(init) ? [] : keyOf(givenInit()),
257
259
  state: "idle",
258
260
  attempt: 0,
259
261
  elapsed: 0,
@@ -263,38 +265,73 @@ const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
263
265
  ...snapshot.get(),
264
266
  ...next
265
267
  });
266
- const handleUntil = (context) => {
268
+ const handleUntil = (tick) => {
267
269
  updateSnapshot({
268
- attempt: context.attempt,
269
- elapsed: context.elapsed,
270
- last: context.data
270
+ attempt: tick.attempt,
271
+ elapsed: tick.elapsed,
272
+ last: tick.data
271
273
  });
272
- return until(context);
274
+ return until(tick);
273
275
  };
274
- const start = lazy(async () => {
275
- updateSnapshot({ state: "polling" });
276
- const result = await pollLoop({
277
- ...pollLoopOptions,
278
- pollKey,
279
- until: handleUntil,
280
- signal: anySignal
281
- });
282
- snapshot.set({
283
- pollKey: result.pollKey,
276
+ const settle = (result) => {
277
+ updateSnapshot({
284
278
  state: result.state,
285
279
  attempt: result.attempt,
286
280
  elapsed: result.elapsed,
287
281
  last: result.last
288
282
  });
289
283
  return result;
284
+ };
285
+ const requestInit = (request) => {
286
+ updateSnapshot({ state: "requesting" });
287
+ return Result.tryCatchAsync(() => {
288
+ anySignal.throwIfAborted();
289
+ return request(anySignal);
290
+ });
291
+ };
292
+ const now = () => pollLoopOptions.clock?.now() ?? performance.now();
293
+ const endedBeforePolling = (error, startedAt) => {
294
+ const before = {
295
+ attempt: 0,
296
+ elapsed: now() - startedAt,
297
+ last: null
298
+ };
299
+ return anySignal.aborted ? pollResult.aborted(before, anySignal.reason) : pollResult.errored(error, before);
300
+ };
301
+ const start = lazy(async () => {
302
+ let resolved = givenInit();
303
+ if (isRequest(init)) {
304
+ const startedAt = now();
305
+ const requested = await requestInit(init);
306
+ if (!requested.success) return settle(endedBeforePolling(requested.error, startedAt));
307
+ resolved = requested.data;
308
+ }
309
+ updateSnapshot({
310
+ pollKey: keyOf(resolved),
311
+ state: "polling"
312
+ });
313
+ return settle(await pollLoop({
314
+ ...pollLoopOptions,
315
+ pollFn: (context) => pollFn({
316
+ ...context,
317
+ init: resolved
318
+ }),
319
+ until: handleUntil,
320
+ signal: anySignal
321
+ }));
290
322
  });
291
323
  const stop = (reason) => pollerSignal.abort(reason);
292
324
  const subscribe = (listener) => snapshot.subscribe(() => listener(snapshot.get()));
293
325
  const debug = snapshot.get;
294
- const unwrap = async (onFailure) => {
326
+ const wait = async (onFailure) => {
295
327
  const result = await start();
296
- if (result.state === "done") return result.data;
297
- throw onFailure?.(result) ?? failureOf(result);
328
+ if (result.state === "done") {
329
+ const error = failed?.(result.data);
330
+ if (!error) return result.data;
331
+ throw onFailure?.(result, error) ?? error;
332
+ }
333
+ const error = failureOf(result);
334
+ throw onFailure?.(result, error) ?? error;
298
335
  };
299
336
  const controls = {
300
337
  stop,
@@ -307,19 +344,10 @@ const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
307
344
  get state() {
308
345
  return snapshot.get().state;
309
346
  },
310
- unwrap,
347
+ wait,
311
348
  ...controls
312
349
  };
313
350
  };
314
- const poll = (options) => {
315
- const p = poller(options);
316
- return Object.assign(p.start(), {
317
- unwrap: p.unwrap,
318
- stop: p.stop,
319
- subscribe: p.subscribe,
320
- debug: p.debug
321
- });
322
- };
323
351
  //#endregion
324
352
  //#region src/domain/jobStatus.ts
325
353
  const STORAGE = {
@@ -407,6 +435,20 @@ const jobStatus = {
407
435
  query: forService(QUERY)
408
436
  };
409
437
  //#endregion
410
- export { poller as a, Result as c, delay as d, poll as i, asError as l, emitter as n, clamp as o, failureOf as r, finiteOr as s, jobStatus as t, lazy as u };
438
+ //#region src/clients/transientRetries.ts
439
+ const MAX_CONSECUTIVE_FAILURES = 5;
440
+ const isTransient = (error) => error instanceof TypeError || isApiError(error) && (error.response.status >= 500 || error.response.status === 429);
441
+ /** A job poll's retry rule: a transient read is retried up to five times in a row; one that succeeds resets the count. */
442
+ const transientRetries = () => {
443
+ let failures = 0;
444
+ return {
445
+ reset: () => {
446
+ failures = 0;
447
+ },
448
+ isRetryable: (error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_FAILURES
449
+ };
450
+ };
451
+ //#endregion
452
+ export { poller as a, Result as c, delay as d, failureOf as i, asError as l, jobStatus as n, clamp as o, emitter as r, finiteOr as s, transientRetries as t, lazy as u };
411
453
 
412
- //# sourceMappingURL=jobStatus-BJdbZ72V.js.map
454
+ //# sourceMappingURL=transientRetries-B4iusp69.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transientRetries-B4iusp69.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","../src/clients/transientRetries.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 PollContext = {\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> = PollContext & { last: T | null };\n\nexport type PollResultState = 'done' | 'timedOut' | 'exhausted' | 'aborted' | 'errored';\n\nexport type PollResult<T> = PollTick<T> &\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> = {\n pollFn: (context: PollContext & { signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T> & { 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\n/** One constructor per ending, so a result is built the same way wherever a poll ends. */\nexport const pollResult = {\n done: <T>(data: T, context: PollTick<T>): PollResult<T> => ({\n state: 'done',\n data,\n ...context,\n last: data,\n }),\n errored: <T>(error: Error, context: PollTick<T>): PollResult<T> => ({\n state: 'errored',\n error,\n ...context,\n }),\n exhausted: <T>(context: PollTick<T>, error?: Error): PollResult<T> => ({\n state: 'exhausted',\n error,\n ...context,\n }),\n timedOut: <T>(context: PollTick<T>, error?: Error): PollResult<T> => ({\n state: 'timedOut',\n error,\n ...context,\n }),\n aborted: <T>(context: PollTick<T>, reason: unknown): PollResult<T> => ({\n state: 'aborted',\n reason,\n ...context,\n }),\n};\n\nexport const pollLoop = async <T>({\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>): Promise<PollResult<T>> => {\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 // Only what the context declares: a request is not handed the tick's `last` as well.\n const pollFn = ({ attempt: at, elapsed }: PollContext) =>\n Result.tryCatchAsync(() =>\n Promise.race([_pollFn({ attempt: at, elapsed, signal: anySignal }), anyAborted.promise]),\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> => ({\n attempt,\n elapsed: at,\n last,\n });\n\n if (attempt >= maxAttempts) return pollResult.exhausted<T>(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';\nimport { Result } from '../result';\n\nimport {\n type PollContext,\n pollLoop,\n type PollOptions,\n type PollResult,\n pollResult,\n type PollResultState,\n type PollTick,\n} from './pollLoop';\nimport { neverAborts } from './utils';\n\nexport type PollKey = readonly unknown[];\n\n/** `requesting` is the request the poll starts from, before any attempt; `polling` is the attempts. */\nexport type PollState = 'idle' | 'requesting' | 'polling' | PollResultState;\nexport type PollSnapshot<T = unknown> = PollTick<T> & { pollKey: PollKey; state: PollState };\n\ntype OnFailure<T> = (result: PollResult<T>, error: Error) => Error | undefined;\n\nexport type Poller<T, S = T> = {\n readonly state: PollState;\n start: () => Promise<PollResult<T>>;\n wait: (onFailure?: OnFailure<T>) => Promise<S>;\n stop: (reason?: string) => void;\n subscribe: (listener: (snapshot: PollSnapshot<T>) => void) => () => void;\n debug: () => PollSnapshot<T>;\n};\n\ntype InitRequest<R> = (signal: AbortSignal) => Promise<R>;\n\nconst isRequest = <R>(init: R | InitRequest<R> | undefined): init is InitRequest<R> =>\n typeof init === 'function';\n\n/**\n * The loop's options plus what names the poll and what it starts from.\n *\n * - `pollKey` names the poll; the loop never sees it. Given as a function of `init`, it is what the\n * poll started from that names it, once that is known.\n * - `init` is a value or a request for it (an enqueue), handed to `pollFn`; a request runs first.\n * - `failed` reads a `done` value for `wait`: what it returns, `wait` throws. A client that\n * knows what gets through declares it as `Poller<T, S>` on its own return.\n */\nexport type PollerOptions<T, K extends PollKey = PollKey, R = undefined> = Omit<\n PollOptions<T>,\n 'pollFn' | 'until'\n> & {\n pollKey: K | ((init: R) => K);\n init?: R | InitRequest<R>;\n pollFn: (context: PollContext & { init: R; signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T> & { data: T }) => boolean;\n failed?: (data: T) => Error | undefined;\n};\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, R = undefined>({\n pollKey,\n init,\n signal,\n pollFn,\n until,\n failed,\n ...pollLoopOptions\n}: PollerOptions<T, K, R>): Poller<T> => {\n const callerSignal = signal ?? neverAborts();\n const pollerSignal = new AbortController();\n const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);\n\n const keyOf = (from: R) => (typeof pollKey === 'function' ? pollKey(from) : pollKey);\n // An absent `init` is the `undefined` that `R` defaults to, which the body cannot prove.\n const givenInit = (): R => init as R;\n\n // snapshoting; the key is unknown while a request for `init` is out, so it starts empty then\n const snapshot = createStore<PollSnapshot<T>>({\n pollKey: isRequest(init) ? [] : keyOf(givenInit()),\n state: 'idle',\n attempt: 0,\n elapsed: 0,\n last: null,\n });\n const updateSnapshot = (next: Partial<PollSnapshot<T>>) =>\n snapshot.set({ ...snapshot.get(), ...next });\n\n const handleUntil = (tick: PollTick<T> & { data: T }) => {\n updateSnapshot({ attempt: tick.attempt, elapsed: tick.elapsed, last: tick.data });\n return until(tick);\n };\n\n // The result knows what a tick cannot: attempts that failed, and the time the ending itself took.\n const settle = (result: PollResult<T>) => {\n updateSnapshot({\n state: result.state,\n attempt: result.attempt,\n elapsed: result.elapsed,\n last: result.last,\n });\n return result;\n };\n\n // The request runs under the poller's signal, before the first attempt. The poll's deadline\n // bounds the polling, not this request.\n const requestInit = (request: InitRequest<R>) => {\n updateSnapshot({ state: 'requesting' });\n\n return Result.tryCatchAsync(() => {\n anySignal.throwIfAborted();\n return request(anySignal);\n });\n };\n\n const now = () => pollLoopOptions.clock?.now() ?? performance.now();\n\n // How a poll ends when its request did: no attempt was made, and a stop reads as an abort.\n const endedBeforePolling = (error: Error, startedAt: number) => {\n const before: PollTick<T> = { attempt: 0, elapsed: now() - startedAt, last: null };\n\n return anySignal.aborted\n ? pollResult.aborted(before, anySignal.reason)\n : pollResult.errored(error, before);\n };\n\n const start = lazy(async (): Promise<PollResult<T>> => {\n let resolved = givenInit();\n if (isRequest(init)) {\n const startedAt = now();\n const requested = await requestInit(init);\n if (!requested.success) return settle(endedBeforePolling(requested.error, startedAt));\n resolved = requested.data;\n }\n updateSnapshot({ pollKey: keyOf(resolved), state: 'polling' });\n\n return settle(\n await pollLoop({\n ...pollLoopOptions,\n pollFn: (context) => pollFn({ ...context, init: resolved }),\n until: handleUntil,\n signal: anySignal,\n }),\n );\n });\n\n const stop = (reason?: string) => pollerSignal.abort(reason);\n const subscribe = (listener: (snapshot: PollSnapshot<T>) => void) =>\n snapshot.subscribe(() => listener(snapshot.get()));\n const debug = snapshot.get;\n\n const wait = async (onFailure?: OnFailure<T>) => {\n const result = await start();\n if (result.state === 'done') {\n const error = failed?.(result.data);\n if (!error) return result.data;\n throw onFailure?.(result, error) ?? error;\n }\n const error = failureOf(result);\n throw onFailure?.(result, error) ?? error;\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 wait,\n ...controls,\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","import { isApiError } from '../fetchClient';\n\nconst MAX_CONSECUTIVE_FAILURES = 5;\n\n// A read that failed in transit, or that the service answered with a 5xx or 429. The job runs\n// server-side either way, so a later read can still see it finish.\nconst isTransient = (error: Error) =>\n error instanceof TypeError ||\n (isApiError(error) && (error.response.status >= 500 || error.response.status === 429));\n\n/** A job poll's retry rule: a transient read is retried up to five times in a row; one that succeeds resets the count. */\nexport const transientRetries = () => {\n let failures = 0;\n\n return {\n reset: () => {\n failures = 0;\n },\n isRetryable: (error: Error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_FAILURES,\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  const require_createAbortError = require("./createAbortError-RendOpo7.cjs");
2
2
  const require_store = require("./store-xS-Cu_VS.cjs");
3
+ const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
3
4
  //#region src/utils/async/delay.ts
4
5
  const delay = (timeout, signal) => new Promise((resolve, reject) => {
5
6
  if (signal?.aborted) return reject(require_createAbortError.createAbortError(signal.reason));
@@ -130,6 +131,7 @@ const createBackoff = ({ jitter = "none", maxInterval: _maxInterval = MAX_TIMER_
130
131
  };
131
132
  //#endregion
132
133
  //#region src/utils/async/poll/pollLoop.ts
134
+ /** One constructor per ending, so a result is built the same way wherever a poll ends. */
133
135
  const pollResult = {
134
136
  done: (data, context) => ({
135
137
  state: "done",
@@ -158,7 +160,7 @@ const pollResult = {
158
160
  ...context
159
161
  })
160
162
  };
161
- const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: callerSignal = neverAborts(), backoff: backoffDef = {
163
+ const pollLoop = async ({ pollFn: _pollFn, until: _until, signal: callerSignal = neverAborts(), backoff: backoffDef = {
162
164
  type: "constant",
163
165
  interval: 3e3
164
166
  }, clock = {
@@ -177,9 +179,7 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
177
179
  const startedAt = clock.now();
178
180
  const until = Result.fromThrowable(_until);
179
181
  const isRetryable = Result.fromThrowable(_isRetryable);
180
- const key = pollKey ?? [];
181
- const pollFn = ({ pollKey: key, attempt: at, elapsed }) => Result.tryCatchAsync(() => Promise.race([_pollFn({
182
- pollKey: key,
182
+ const pollFn = ({ attempt: at, elapsed }) => Result.tryCatchAsync(() => Promise.race([_pollFn({
183
183
  attempt: at,
184
184
  elapsed,
185
185
  signal: anySignal
@@ -189,7 +189,6 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
189
189
  let last = null;
190
190
  let lastError;
191
191
  const context = (at = clock.now() - startedAt) => ({
192
- pollKey: key,
193
192
  attempt,
194
193
  elapsed: at,
195
194
  last
@@ -239,6 +238,7 @@ const pollLoop = async ({ pollKey, pollFn: _pollFn, until: _until, signal: calle
239
238
  };
240
239
  //#endregion
241
240
  //#region src/utils/async/poll/poll.ts
241
+ const isRequest = (init) => typeof init === "function";
242
242
  const emitter = require_store.createEmitter();
243
243
  const failureOf = (result) => {
244
244
  if ("error" in result && result.error) return result.error;
@@ -248,12 +248,14 @@ const failureOf = (result) => {
248
248
  }
249
249
  return /* @__PURE__ */ new Error(`The poll ${result.state} after ${result.attempt} attempts.`);
250
250
  };
251
- const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
251
+ const poller = ({ pollKey, init, signal, pollFn, until, failed, ...pollLoopOptions }) => {
252
252
  const callerSignal = signal ?? neverAborts();
253
253
  const pollerSignal = new AbortController();
254
254
  const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);
255
+ const keyOf = (from) => typeof pollKey === "function" ? pollKey(from) : pollKey;
256
+ const givenInit = () => init;
255
257
  const snapshot = require_store.createStore({
256
- pollKey: pollKey ?? [],
258
+ pollKey: isRequest(init) ? [] : keyOf(givenInit()),
257
259
  state: "idle",
258
260
  attempt: 0,
259
261
  elapsed: 0,
@@ -263,38 +265,73 @@ const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
263
265
  ...snapshot.get(),
264
266
  ...next
265
267
  });
266
- const handleUntil = (context) => {
268
+ const handleUntil = (tick) => {
267
269
  updateSnapshot({
268
- attempt: context.attempt,
269
- elapsed: context.elapsed,
270
- last: context.data
270
+ attempt: tick.attempt,
271
+ elapsed: tick.elapsed,
272
+ last: tick.data
271
273
  });
272
- return until(context);
274
+ return until(tick);
273
275
  };
274
- const start = lazy(async () => {
275
- updateSnapshot({ state: "polling" });
276
- const result = await pollLoop({
277
- ...pollLoopOptions,
278
- pollKey,
279
- until: handleUntil,
280
- signal: anySignal
281
- });
282
- snapshot.set({
283
- pollKey: result.pollKey,
276
+ const settle = (result) => {
277
+ updateSnapshot({
284
278
  state: result.state,
285
279
  attempt: result.attempt,
286
280
  elapsed: result.elapsed,
287
281
  last: result.last
288
282
  });
289
283
  return result;
284
+ };
285
+ const requestInit = (request) => {
286
+ updateSnapshot({ state: "requesting" });
287
+ return Result.tryCatchAsync(() => {
288
+ anySignal.throwIfAborted();
289
+ return request(anySignal);
290
+ });
291
+ };
292
+ const now = () => pollLoopOptions.clock?.now() ?? performance.now();
293
+ const endedBeforePolling = (error, startedAt) => {
294
+ const before = {
295
+ attempt: 0,
296
+ elapsed: now() - startedAt,
297
+ last: null
298
+ };
299
+ return anySignal.aborted ? pollResult.aborted(before, anySignal.reason) : pollResult.errored(error, before);
300
+ };
301
+ const start = lazy(async () => {
302
+ let resolved = givenInit();
303
+ if (isRequest(init)) {
304
+ const startedAt = now();
305
+ const requested = await requestInit(init);
306
+ if (!requested.success) return settle(endedBeforePolling(requested.error, startedAt));
307
+ resolved = requested.data;
308
+ }
309
+ updateSnapshot({
310
+ pollKey: keyOf(resolved),
311
+ state: "polling"
312
+ });
313
+ return settle(await pollLoop({
314
+ ...pollLoopOptions,
315
+ pollFn: (context) => pollFn({
316
+ ...context,
317
+ init: resolved
318
+ }),
319
+ until: handleUntil,
320
+ signal: anySignal
321
+ }));
290
322
  });
291
323
  const stop = (reason) => pollerSignal.abort(reason);
292
324
  const subscribe = (listener) => snapshot.subscribe(() => listener(snapshot.get()));
293
325
  const debug = snapshot.get;
294
- const unwrap = async (onFailure) => {
326
+ const wait = async (onFailure) => {
295
327
  const result = await start();
296
- if (result.state === "done") return result.data;
297
- throw onFailure?.(result) ?? failureOf(result);
328
+ if (result.state === "done") {
329
+ const error = failed?.(result.data);
330
+ if (!error) return result.data;
331
+ throw onFailure?.(result, error) ?? error;
332
+ }
333
+ const error = failureOf(result);
334
+ throw onFailure?.(result, error) ?? error;
298
335
  };
299
336
  const controls = {
300
337
  stop,
@@ -307,19 +344,10 @@ const poller = ({ pollKey, signal, until, ...pollLoopOptions }) => {
307
344
  get state() {
308
345
  return snapshot.get().state;
309
346
  },
310
- unwrap,
347
+ wait,
311
348
  ...controls
312
349
  };
313
350
  };
314
- const poll = (options) => {
315
- const p = poller(options);
316
- return Object.assign(p.start(), {
317
- unwrap: p.unwrap,
318
- stop: p.stop,
319
- subscribe: p.subscribe,
320
- debug: p.debug
321
- });
322
- };
323
351
  //#endregion
324
352
  //#region src/domain/jobStatus.ts
325
353
  const STORAGE = {
@@ -407,6 +435,20 @@ const jobStatus = {
407
435
  query: forService(QUERY)
408
436
  };
409
437
  //#endregion
438
+ //#region src/clients/transientRetries.ts
439
+ const MAX_CONSECUTIVE_FAILURES = 5;
440
+ const isTransient = (error) => error instanceof TypeError || require_createFetchClient.isApiError(error) && (error.response.status >= 500 || error.response.status === 429);
441
+ /** A job poll's retry rule: a transient read is retried up to five times in a row; one that succeeds resets the count. */
442
+ const transientRetries = () => {
443
+ let failures = 0;
444
+ return {
445
+ reset: () => {
446
+ failures = 0;
447
+ },
448
+ isRetryable: (error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_FAILURES
449
+ };
450
+ };
451
+ //#endregion
410
452
  Object.defineProperty(exports, "Result", {
411
453
  enumerable: true,
412
454
  get: function() {
@@ -461,17 +503,17 @@ Object.defineProperty(exports, "lazy", {
461
503
  return lazy;
462
504
  }
463
505
  });
464
- Object.defineProperty(exports, "poll", {
506
+ Object.defineProperty(exports, "poller", {
465
507
  enumerable: true,
466
508
  get: function() {
467
- return poll;
509
+ return poller;
468
510
  }
469
511
  });
470
- Object.defineProperty(exports, "poller", {
512
+ Object.defineProperty(exports, "transientRetries", {
471
513
  enumerable: true,
472
514
  get: function() {
473
- return poller;
515
+ return transientRetries;
474
516
  }
475
517
  });
476
518
 
477
- //# sourceMappingURL=jobStatus-B0E-MZ9I.cjs.map
519
+ //# sourceMappingURL=transientRetries-DdJfH9QK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transientRetries-DdJfH9QK.cjs","names":["createAbortError","createEmitter","createAbortError","createStore","isApiError"],"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","../src/clients/transientRetries.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 PollContext = {\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> = PollContext & { last: T | null };\n\nexport type PollResultState = 'done' | 'timedOut' | 'exhausted' | 'aborted' | 'errored';\n\nexport type PollResult<T> = PollTick<T> &\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> = {\n pollFn: (context: PollContext & { signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T> & { 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\n/** One constructor per ending, so a result is built the same way wherever a poll ends. */\nexport const pollResult = {\n done: <T>(data: T, context: PollTick<T>): PollResult<T> => ({\n state: 'done',\n data,\n ...context,\n last: data,\n }),\n errored: <T>(error: Error, context: PollTick<T>): PollResult<T> => ({\n state: 'errored',\n error,\n ...context,\n }),\n exhausted: <T>(context: PollTick<T>, error?: Error): PollResult<T> => ({\n state: 'exhausted',\n error,\n ...context,\n }),\n timedOut: <T>(context: PollTick<T>, error?: Error): PollResult<T> => ({\n state: 'timedOut',\n error,\n ...context,\n }),\n aborted: <T>(context: PollTick<T>, reason: unknown): PollResult<T> => ({\n state: 'aborted',\n reason,\n ...context,\n }),\n};\n\nexport const pollLoop = async <T>({\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>): Promise<PollResult<T>> => {\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 // Only what the context declares: a request is not handed the tick's `last` as well.\n const pollFn = ({ attempt: at, elapsed }: PollContext) =>\n Result.tryCatchAsync(() =>\n Promise.race([_pollFn({ attempt: at, elapsed, signal: anySignal }), anyAborted.promise]),\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> => ({\n attempt,\n elapsed: at,\n last,\n });\n\n if (attempt >= maxAttempts) return pollResult.exhausted<T>(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';\nimport { Result } from '../result';\n\nimport {\n type PollContext,\n pollLoop,\n type PollOptions,\n type PollResult,\n pollResult,\n type PollResultState,\n type PollTick,\n} from './pollLoop';\nimport { neverAborts } from './utils';\n\nexport type PollKey = readonly unknown[];\n\n/** `requesting` is the request the poll starts from, before any attempt; `polling` is the attempts. */\nexport type PollState = 'idle' | 'requesting' | 'polling' | PollResultState;\nexport type PollSnapshot<T = unknown> = PollTick<T> & { pollKey: PollKey; state: PollState };\n\ntype OnFailure<T> = (result: PollResult<T>, error: Error) => Error | undefined;\n\nexport type Poller<T, S = T> = {\n readonly state: PollState;\n start: () => Promise<PollResult<T>>;\n wait: (onFailure?: OnFailure<T>) => Promise<S>;\n stop: (reason?: string) => void;\n subscribe: (listener: (snapshot: PollSnapshot<T>) => void) => () => void;\n debug: () => PollSnapshot<T>;\n};\n\ntype InitRequest<R> = (signal: AbortSignal) => Promise<R>;\n\nconst isRequest = <R>(init: R | InitRequest<R> | undefined): init is InitRequest<R> =>\n typeof init === 'function';\n\n/**\n * The loop's options plus what names the poll and what it starts from.\n *\n * - `pollKey` names the poll; the loop never sees it. Given as a function of `init`, it is what the\n * poll started from that names it, once that is known.\n * - `init` is a value or a request for it (an enqueue), handed to `pollFn`; a request runs first.\n * - `failed` reads a `done` value for `wait`: what it returns, `wait` throws. A client that\n * knows what gets through declares it as `Poller<T, S>` on its own return.\n */\nexport type PollerOptions<T, K extends PollKey = PollKey, R = undefined> = Omit<\n PollOptions<T>,\n 'pollFn' | 'until'\n> & {\n pollKey: K | ((init: R) => K);\n init?: R | InitRequest<R>;\n pollFn: (context: PollContext & { init: R; signal: AbortSignal }) => Promise<T>;\n until: (tick: PollTick<T> & { data: T }) => boolean;\n failed?: (data: T) => Error | undefined;\n};\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, R = undefined>({\n pollKey,\n init,\n signal,\n pollFn,\n until,\n failed,\n ...pollLoopOptions\n}: PollerOptions<T, K, R>): Poller<T> => {\n const callerSignal = signal ?? neverAborts();\n const pollerSignal = new AbortController();\n const anySignal = AbortSignal.any([pollerSignal.signal, callerSignal]);\n\n const keyOf = (from: R) => (typeof pollKey === 'function' ? pollKey(from) : pollKey);\n // An absent `init` is the `undefined` that `R` defaults to, which the body cannot prove.\n const givenInit = (): R => init as R;\n\n // snapshoting; the key is unknown while a request for `init` is out, so it starts empty then\n const snapshot = createStore<PollSnapshot<T>>({\n pollKey: isRequest(init) ? [] : keyOf(givenInit()),\n state: 'idle',\n attempt: 0,\n elapsed: 0,\n last: null,\n });\n const updateSnapshot = (next: Partial<PollSnapshot<T>>) =>\n snapshot.set({ ...snapshot.get(), ...next });\n\n const handleUntil = (tick: PollTick<T> & { data: T }) => {\n updateSnapshot({ attempt: tick.attempt, elapsed: tick.elapsed, last: tick.data });\n return until(tick);\n };\n\n // The result knows what a tick cannot: attempts that failed, and the time the ending itself took.\n const settle = (result: PollResult<T>) => {\n updateSnapshot({\n state: result.state,\n attempt: result.attempt,\n elapsed: result.elapsed,\n last: result.last,\n });\n return result;\n };\n\n // The request runs under the poller's signal, before the first attempt. The poll's deadline\n // bounds the polling, not this request.\n const requestInit = (request: InitRequest<R>) => {\n updateSnapshot({ state: 'requesting' });\n\n return Result.tryCatchAsync(() => {\n anySignal.throwIfAborted();\n return request(anySignal);\n });\n };\n\n const now = () => pollLoopOptions.clock?.now() ?? performance.now();\n\n // How a poll ends when its request did: no attempt was made, and a stop reads as an abort.\n const endedBeforePolling = (error: Error, startedAt: number) => {\n const before: PollTick<T> = { attempt: 0, elapsed: now() - startedAt, last: null };\n\n return anySignal.aborted\n ? pollResult.aborted(before, anySignal.reason)\n : pollResult.errored(error, before);\n };\n\n const start = lazy(async (): Promise<PollResult<T>> => {\n let resolved = givenInit();\n if (isRequest(init)) {\n const startedAt = now();\n const requested = await requestInit(init);\n if (!requested.success) return settle(endedBeforePolling(requested.error, startedAt));\n resolved = requested.data;\n }\n updateSnapshot({ pollKey: keyOf(resolved), state: 'polling' });\n\n return settle(\n await pollLoop({\n ...pollLoopOptions,\n pollFn: (context) => pollFn({ ...context, init: resolved }),\n until: handleUntil,\n signal: anySignal,\n }),\n );\n });\n\n const stop = (reason?: string) => pollerSignal.abort(reason);\n const subscribe = (listener: (snapshot: PollSnapshot<T>) => void) =>\n snapshot.subscribe(() => listener(snapshot.get()));\n const debug = snapshot.get;\n\n const wait = async (onFailure?: OnFailure<T>) => {\n const result = await start();\n if (result.state === 'done') {\n const error = failed?.(result.data);\n if (!error) return result.data;\n throw onFailure?.(result, error) ?? error;\n }\n const error = failureOf(result);\n throw onFailure?.(result, error) ?? error;\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 wait,\n ...controls,\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","import { isApiError } from '../fetchClient';\n\nconst MAX_CONSECUTIVE_FAILURES = 5;\n\n// A read that failed in transit, or that the service answered with a 5xx or 429. The job runs\n// server-side either way, so a later read can still see it finish.\nconst isTransient = (error: Error) =>\n error instanceof TypeError ||\n (isApiError(error) && (error.response.status >= 500 || error.response.status === 429));\n\n/** A job poll's retry rule: a transient read is retried up to five times in a row; one that succeeds resets the count. */\nexport const transientRetries = () => {\n let failures = 0;\n\n return {\n reset: () => {\n failures = 0;\n },\n isRetryable: (error: Error) => isTransient(error) && ++failures < MAX_CONSECUTIVE_FAILURES,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { c as OpenapiReturnType, o as OpenapiPathType, r as OpenapiBodyType, s as OpenapiQueryType } from "./index-BzhLY7el.cjs";
1
+ import { c as OpenapiQueryType, l as OpenapiReturnType, r as OpenapiBodyType, s as OpenapiPathType } from "./index-XaPb6unB.cjs";
2
2
  //#region src/clients/metastore/__generated__/schema.d.ts
3
3
  /**
4
4
  * This file was auto-generated by openapi-typescript.
@@ -1787,4 +1787,4 @@ type GetSchemaPath = OpenapiPathType<paths['/api/v1/schema/{objectType}']['get']
1787
1787
  type GetVersionedSchemaPath = OpenapiPathType<paths['/api/v1/schema/{objectType}/{version}']['get']>;
1788
1788
  //#endregion
1789
1789
  export { ReplaceMetaObjectPath as A, MetaObjectMeta as C, RawMetaObject as D, MetaStoreObjectResponse as E, UpdateMetaObjectBody as F, UpdateMetaObjectInput as I, UpdateMetaObjectPath as L, ReplaceTargetProjectsInput as M, ReplaceTargetProjectsPath as N, ReplaceMetaObjectBody as O, ScopeElevationRequestPath as P, components as R, MetaObject as S, MetaStoreListResponse as T, GetMetaObjectsQuery as _, CreateMetaObjectPath as a, GetOrganizationMetaObjectsQuery as b, DeleteMetaObjectRevisionPath as c, GetMetaObjectRevisionsInput as d, GetMetaObjectRevisionsPath as f, GetMetaObjectsPath as g, GetMetaObjectsInput as h, CreateMetaObjectInput as i, ReplaceTargetProjectsBody as j, ReplaceMetaObjectInput as k, GetMetaObjectPath as l, GetMetaObjectRevisionsSchemaQuery as m, GetVersionedSchemaPath as n, CreateMetaObjectReturn as o, GetMetaObjectRevisionsQuery as p, CreateMetaObjectBody as r, DeleteMetaObjectPath as s, GetSchemaPath as t, GetMetaObjectRevisionPath as u, GetMetaObjectsSchemaQuery as v, MetaObjectScope as w, GetOrganizationMetaObjectsSchemaQuery as x, GetOrganizationMetaObjectsPath as y, paths as z };
1790
- //# sourceMappingURL=types-5HdT1rSH.d.cts.map
1790
+ //# sourceMappingURL=types--qQPfxWt.d.cts.map