@keboola/api-client 29.0.0 → 31.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 (344) hide show
  1. package/API-SURFACE.md +6 -1
  2. package/CHANGELOG.md +1785 -0
  3. package/dist/{ManagementClientAuthError-B97OtOQ7.js → ManagementClientAuthError-90pvsej0.js} +2 -2
  4. package/dist/{ManagementClientAuthError-B97OtOQ7.js.map → ManagementClientAuthError-90pvsej0.js.map} +1 -1
  5. package/dist/{ManagementClientAuthError-ZJ2-RoKT.cjs → ManagementClientAuthError-DFhi5yxe.cjs} +2 -2
  6. package/dist/{ManagementClientAuthError-ZJ2-RoKT.cjs.map → ManagementClientAuthError-DFhi5yxe.cjs.map} +1 -1
  7. package/dist/ai/index.cjs +2 -2
  8. package/dist/ai/index.d.cts +2 -2
  9. package/dist/ai/index.d.ts +2 -2
  10. package/dist/ai/index.js +2 -2
  11. package/dist/ai/types.d.cts +1 -1
  12. package/dist/ai/types.d.ts +1 -1
  13. package/dist/{appLogs-CNG3yby-.cjs → appLogs-BCCi02w6.cjs} +2 -2
  14. package/dist/{appLogs-CNG3yby-.cjs.map → appLogs-BCCi02w6.cjs.map} +1 -1
  15. package/dist/{appLogs-VdgP08aX.d.ts → appLogs-BdMG6Cvn.d.ts} +2 -2
  16. package/dist/{appLogs-enL9XR9r.js → appLogs-CLHhkQJn.js} +2 -2
  17. package/dist/{appLogs-enL9XR9r.js.map → appLogs-CLHhkQJn.js.map} +1 -1
  18. package/dist/{appLogs-Dl5BcCSD.d.cts → appLogs-hQdKt_8J.d.cts} +2 -2
  19. package/dist/apps/index.cjs +3 -3
  20. package/dist/apps/index.d.cts +3 -3
  21. package/dist/apps/index.d.ts +3 -3
  22. package/dist/apps/index.js +3 -3
  23. package/dist/apps/types.d.cts +2 -2
  24. package/dist/apps/types.d.ts +2 -2
  25. package/dist/assets/index.cjs +1 -1
  26. package/dist/assets/index.d.cts +1 -1
  27. package/dist/assets/index.d.ts +1 -1
  28. package/dist/assets/index.js +1 -1
  29. package/dist/auth/index.cjs +2 -1
  30. package/dist/auth/index.d.cts +2 -2
  31. package/dist/auth/index.d.ts +2 -2
  32. package/dist/auth/index.js +2 -2
  33. package/dist/auth/types.d.cts +2 -2
  34. package/dist/auth/types.d.ts +2 -2
  35. package/dist/{auth-D2jfNlpX.js → auth-CE6Hlc9W.js} +2 -2
  36. package/dist/{auth-D2jfNlpX.js.map → auth-CE6Hlc9W.js.map} +1 -1
  37. package/dist/{auth-5HCvCsZO.cjs → auth-DmgTH0uY.cjs} +2 -2
  38. package/dist/{auth-5HCvCsZO.cjs.map → auth-DmgTH0uY.cjs.map} +1 -1
  39. package/dist/{authClient-Bgj2Ay7h.d.cts → authClient-BL6h78Q1.d.cts} +52 -5
  40. package/dist/{authClient-Dsd7W99W.d.ts → authClient-Bc_bDisO.d.ts} +52 -5
  41. package/dist/{authClient-Z8Eg8rlN.cjs → authClient-Cixa8_L1.cjs} +81 -10
  42. package/dist/authClient-Cixa8_L1.cjs.map +1 -0
  43. package/dist/{authClient-DOk6VKdV.js → authClient-XBAUz9g-.js} +76 -11
  44. package/dist/authClient-XBAUz9g-.js.map +1 -0
  45. package/dist/chat/index.cjs +3 -3
  46. package/dist/chat/index.d.cts +2 -2
  47. package/dist/chat/index.d.ts +2 -2
  48. package/dist/chat/index.js +3 -3
  49. package/dist/chat/types.d.cts +1 -1
  50. package/dist/chat/types.d.ts +1 -1
  51. package/dist/constants/index.cjs +3 -1
  52. package/dist/constants/index.d.cts +2 -2
  53. package/dist/constants/index.d.ts +2 -2
  54. package/dist/constants/index.js +2 -2
  55. package/dist/{constants-CqyyBkXW.cjs → constants-CkAVvuUq.cjs} +23 -1
  56. package/dist/constants-CkAVvuUq.cjs.map +1 -0
  57. package/dist/{constants-_HhqKvBg.js → constants-qeWGfk_7.js} +12 -2
  58. package/dist/constants-qeWGfk_7.js.map +1 -0
  59. package/dist/{createFetchClient-BK0TZK-U.js → createFetchClient-B1h3-p65.js} +10 -2
  60. package/dist/createFetchClient-B1h3-p65.js.map +1 -0
  61. package/dist/{createFetchClient-BsG719K1.cjs → createFetchClient-B9Cv0W9f.cjs} +15 -1
  62. package/dist/createFetchClient-B9Cv0W9f.cjs.map +1 -0
  63. package/dist/{createGenericFetchClient-DLbjX0eM.cjs → createGenericFetchClient-BWoSkTki.cjs} +2 -2
  64. package/dist/{createGenericFetchClient-DLbjX0eM.cjs.map → createGenericFetchClient-BWoSkTki.cjs.map} +1 -1
  65. package/dist/{createGenericFetchClient-CVZYekDk.js → createGenericFetchClient-DhpvUSlX.js} +2 -2
  66. package/dist/{createGenericFetchClient-CVZYekDk.js.map → createGenericFetchClient-DhpvUSlX.js.map} +1 -1
  67. package/dist/{createOpenapiFetchClient-B5U1fCHS.js → createOpenapiFetchClient-0_oqhdPv.js} +2 -2
  68. package/dist/{createOpenapiFetchClient-B5U1fCHS.js.map → createOpenapiFetchClient-0_oqhdPv.js.map} +1 -1
  69. package/dist/{createOpenapiFetchClient-Cr90VXY4.cjs → createOpenapiFetchClient-yirrW6Tg.cjs} +2 -2
  70. package/dist/{createOpenapiFetchClient-Cr90VXY4.cjs.map → createOpenapiFetchClient-yirrW6Tg.cjs.map} +1 -1
  71. package/dist/{credential-0c6yFwtp.cjs → credential-D-tX9gP4.cjs} +2 -2
  72. package/dist/{credential-0c6yFwtp.cjs.map → credential-D-tX9gP4.cjs.map} +1 -1
  73. package/dist/{credential-kEGLnVez.js → credential-dKxArMic.js} +2 -2
  74. package/dist/{credential-kEGLnVez.js.map → credential-dKxArMic.js.map} +1 -1
  75. package/dist/dataScience/index.cjs +2 -2
  76. package/dist/dataScience/index.d.cts +2 -2
  77. package/dist/dataScience/index.d.ts +2 -2
  78. package/dist/dataScience/index.js +2 -2
  79. package/dist/dataScience/types.d.cts +2 -2
  80. package/dist/dataScience/types.d.ts +2 -2
  81. package/dist/{dataScience-C-JrA0Uk.cjs → dataScience-BqNWX-Gr.cjs} +5 -5
  82. package/dist/{dataScience-C-JrA0Uk.cjs.map → dataScience-BqNWX-Gr.cjs.map} +1 -1
  83. package/dist/{dataScience-CE0pSWbl.js → dataScience-jdbSSPYF.js} +5 -5
  84. package/dist/{dataScience-CE0pSWbl.js.map → dataScience-jdbSSPYF.js.map} +1 -1
  85. package/dist/developerPortal/index.cjs +1 -1
  86. package/dist/developerPortal/index.d.cts +2 -2
  87. package/dist/developerPortal/index.d.ts +2 -2
  88. package/dist/developerPortal/index.js +1 -1
  89. package/dist/developerPortal/types.d.cts +1 -1
  90. package/dist/developerPortal/types.d.ts +1 -1
  91. package/dist/{developerPortalClient-BPPEAdJW.js → developerPortalClient-5ABcxz1U.js} +3 -3
  92. package/dist/{developerPortalClient-BPPEAdJW.js.map → developerPortalClient-5ABcxz1U.js.map} +1 -1
  93. package/dist/{developerPortalClient-C8oq48xW.cjs → developerPortalClient-B7lNR5q0.cjs} +3 -3
  94. package/dist/{developerPortalClient-C8oq48xW.cjs.map → developerPortalClient-B7lNR5q0.cjs.map} +1 -1
  95. package/dist/domain/permissions/index.d.cts +2 -2
  96. package/dist/domain/permissions/index.d.ts +2 -2
  97. package/dist/editor/index.cjs +2 -2
  98. package/dist/editor/index.d.cts +2 -2
  99. package/dist/editor/index.d.ts +2 -2
  100. package/dist/editor/index.js +2 -2
  101. package/dist/editor/types.d.cts +1 -1
  102. package/dist/editor/types.d.ts +1 -1
  103. package/dist/encryption/index.cjs +1 -1
  104. package/dist/encryption/index.d.cts +1 -1
  105. package/dist/encryption/index.d.ts +1 -1
  106. package/dist/encryption/index.js +1 -1
  107. package/dist/encryption/types.d.cts +1 -1
  108. package/dist/encryption/types.d.ts +1 -1
  109. package/dist/import/index.cjs +1 -1
  110. package/dist/import/index.d.cts +3 -3
  111. package/dist/import/index.d.ts +3 -3
  112. package/dist/import/index.js +1 -1
  113. package/dist/{import-Cf0W-7YD.js → import-CExRbskw.js} +3 -3
  114. package/dist/{import-Cf0W-7YD.js.map → import-CExRbskw.js.map} +1 -1
  115. package/dist/{import-KLH1uRtx.cjs → import-CXHppAxd.cjs} +3 -3
  116. package/dist/{import-KLH1uRtx.cjs.map → import-CXHppAxd.cjs.map} +1 -1
  117. package/dist/{index-vb9Rfqca.d.cts → index--pxLseaw.d.cts} +13 -3
  118. package/dist/{index-vb9Rfqca.d.ts → index--pxLseaw.d.ts} +13 -3
  119. package/dist/{index-DYQt4zxC.d.ts → index-7RvXnXmd.d.ts} +6 -6
  120. package/dist/{index-CLPrlyIz.d.cts → index-B-frWtGW.d.cts} +19 -2
  121. package/dist/{index-WQkVzx5e.d.cts → index-B6q7HxKJ.d.cts} +4 -4
  122. package/dist/{index-Dwp8tF6O.d.ts → index-BR2Fu-Wo.d.ts} +32 -31
  123. package/dist/{index-IN0qzs52.d.cts → index-BSjfVDTr.d.cts} +5 -5
  124. package/dist/{index-BEKaJ7Cc.d.cts → index-BfVv8isU.d.cts} +4 -4
  125. package/dist/{index-DXi6wsr5.d.cts → index-C9mAoXF6.d.cts} +6 -6
  126. package/dist/{index-KKJkrxjx.d.ts → index-CMb0ygwb.d.ts} +3 -3
  127. package/dist/{index-DVsnxZap.d.cts → index-CR9LsDaG.d.cts} +4 -4
  128. package/dist/{index-Cfrl7sd5.d.ts → index-CW4VC9oN.d.ts} +4 -4
  129. package/dist/{index-CeistZnj.d.ts → index-CYMAwD3E.d.ts} +4 -4
  130. package/dist/{index-CXQRvZ-f.d.cts → index-Cpjh05sx.d.cts} +4 -4
  131. package/dist/{index-eEBVG5s3.d.cts → index-CwJE18PJ.d.cts} +3 -3
  132. package/dist/{index-DIM8KZly.d.ts → index-D_TnbEtp.d.cts} +3 -3
  133. package/dist/{index-BthgbVdd.d.ts → index-Daks5CeX.d.ts} +4 -4
  134. package/dist/{index-BmjeNd9u.d.ts → index-DeMDxHTz.d.ts} +4 -4
  135. package/dist/{index-8pN6Emos.d.ts → index-Ds8e0l7-.d.ts} +19 -2
  136. package/dist/{index-DNlX-H1V.d.ts → index-J1I2HlSm.d.ts} +5 -5
  137. package/dist/{index-BWBScAYc.d.cts → index-NicJZIzu.d.ts} +3 -3
  138. package/dist/{index-DplMbm9E.d.cts → index-cu8THqZV.d.cts} +32 -31
  139. package/dist/index.cjs +28 -19
  140. package/dist/index.cjs.map +1 -1
  141. package/dist/index.d.cts +6 -6
  142. package/dist/index.d.ts +6 -6
  143. package/dist/index.js +27 -20
  144. package/dist/index.js.map +1 -1
  145. package/dist/management/index.cjs +1 -1
  146. package/dist/management/index.d.cts +1 -1
  147. package/dist/management/index.d.ts +1 -1
  148. package/dist/management/index.js +1 -1
  149. package/dist/management/types.d.cts +1 -1
  150. package/dist/management/types.d.ts +1 -1
  151. package/dist/{management-DqwQcDCx.js → management-Cc8mKfnf.js} +6 -7
  152. package/dist/management-Cc8mKfnf.js.map +1 -0
  153. package/dist/{management-WOmlBt6H.cjs → management-DlVdxzPw.cjs} +6 -7
  154. package/dist/management-DlVdxzPw.cjs.map +1 -0
  155. package/dist/metastore/index.cjs +1 -1
  156. package/dist/metastore/index.d.cts +1 -1
  157. package/dist/metastore/index.d.ts +1 -1
  158. package/dist/metastore/index.js +1 -1
  159. package/dist/metastore/types.d.cts +1 -1
  160. package/dist/metastore/types.d.ts +1 -1
  161. package/dist/{metastore-CNEhL66f.js → metastore-CNf1412Z.js} +4 -4
  162. package/dist/{metastore-CNEhL66f.js.map → metastore-CNf1412Z.js.map} +1 -1
  163. package/dist/{metastore-CkQluyX1.cjs → metastore-DbsxqjhS.cjs} +4 -4
  164. package/dist/{metastore-CkQluyX1.cjs.map → metastore-DbsxqjhS.cjs.map} +1 -1
  165. package/dist/notifications/index.cjs +3 -3
  166. package/dist/notifications/index.d.cts +2 -2
  167. package/dist/notifications/index.d.ts +2 -2
  168. package/dist/notifications/index.js +3 -3
  169. package/dist/notifications/types.d.cts +1 -1
  170. package/dist/notifications/types.d.ts +1 -1
  171. package/dist/oauth/index.cjs +1 -1
  172. package/dist/oauth/index.d.cts +2 -2
  173. package/dist/oauth/index.d.ts +2 -2
  174. package/dist/oauth/index.js +1 -1
  175. package/dist/oauth/types.d.cts +1 -1
  176. package/dist/oauth/types.d.ts +1 -1
  177. package/dist/{oauth-DYDObUX9.js → oauth-ClksaYRY.js} +5 -5
  178. package/dist/{oauth-DYDObUX9.js.map → oauth-ClksaYRY.js.map} +1 -1
  179. package/dist/{oauth-DTvrqe6P.cjs → oauth-DsZgmtPj.cjs} +5 -5
  180. package/dist/{oauth-DTvrqe6P.cjs.map → oauth-DsZgmtPj.cjs.map} +1 -1
  181. package/dist/omnisearch/index.cjs +2 -2
  182. package/dist/omnisearch/index.d.cts +2 -2
  183. package/dist/omnisearch/index.d.ts +2 -2
  184. package/dist/omnisearch/index.js +2 -2
  185. package/dist/omnisearch/types.d.cts +1 -1
  186. package/dist/omnisearch/types.d.ts +1 -1
  187. package/dist/{project-io1pY-hW.d.ts → project-5SLw86eZ.d.ts} +2 -2
  188. package/dist/{project-CcGxXIW_.d.cts → project-CRrsxSAK.d.cts} +2 -2
  189. package/dist/queryService/index.cjs +1 -1
  190. package/dist/queryService/index.d.cts +1 -1
  191. package/dist/queryService/index.d.ts +1 -1
  192. package/dist/queryService/index.js +1 -1
  193. package/dist/queryService/types.d.cts +1 -1
  194. package/dist/queryService/types.d.ts +1 -1
  195. package/dist/{queryService-BHV_OZI2.js → queryService-BlyAcBxP.js} +5 -5
  196. package/dist/{queryService-BHV_OZI2.js.map → queryService-BlyAcBxP.js.map} +1 -1
  197. package/dist/{queryService-CvqDqigW.cjs → queryService-DxUUkTcy.cjs} +5 -5
  198. package/dist/{queryService-CvqDqigW.cjs.map → queryService-DxUUkTcy.cjs.map} +1 -1
  199. package/dist/queue/index.cjs +1 -1
  200. package/dist/queue/index.d.cts +3 -3
  201. package/dist/queue/index.d.ts +3 -3
  202. package/dist/queue/index.js +1 -1
  203. package/dist/queue/types.d.cts +1 -1
  204. package/dist/queue/types.d.ts +1 -1
  205. package/dist/{queue-CUHKupTA.cjs → queue-CpcqeMPz.cjs} +4 -4
  206. package/dist/{queue-CUHKupTA.cjs.map → queue-CpcqeMPz.cjs.map} +1 -1
  207. package/dist/{queue-uofE4Eu6.js → queue-DpZTm7U7.js} +4 -4
  208. package/dist/{queue-uofE4Eu6.js.map → queue-DpZTm7U7.js.map} +1 -1
  209. package/dist/scheduler/index.cjs +3 -3
  210. package/dist/scheduler/index.d.cts +2 -2
  211. package/dist/scheduler/index.d.ts +2 -2
  212. package/dist/scheduler/index.js +3 -3
  213. package/dist/scheduler/types.d.cts +1 -1
  214. package/dist/scheduler/types.d.ts +1 -1
  215. package/dist/sdk/configurations/index.d.cts +4 -4
  216. package/dist/sdk/configurations/index.d.ts +4 -4
  217. package/dist/sdk/developerPortal/index.cjs +3 -3
  218. package/dist/sdk/developerPortal/index.d.cts +3 -3
  219. package/dist/sdk/developerPortal/index.d.ts +3 -3
  220. package/dist/sdk/developerPortal/index.js +3 -3
  221. package/dist/sdk/queryService/index.d.cts +1 -1
  222. package/dist/sdk/queryService/index.d.ts +1 -1
  223. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  224. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  225. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  226. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  227. package/dist/sdk/storage/index.d.cts +1 -1
  228. package/dist/sdk/storage/index.d.ts +1 -1
  229. package/dist/sdk/tag/index.d.cts +2 -2
  230. package/dist/sdk/tag/index.d.ts +2 -2
  231. package/dist/sdk/tag/types.d.cts +1 -1
  232. package/dist/sdk/tag/types.d.ts +1 -1
  233. package/dist/sdk/vault/index.d.cts +1 -1
  234. package/dist/sdk/vault/index.d.ts +1 -1
  235. package/dist/status/index.cjs +1 -1
  236. package/dist/status/index.d.cts +1 -1
  237. package/dist/status/index.d.ts +1 -1
  238. package/dist/status/index.js +1 -1
  239. package/dist/storage/index.cjs +6 -3
  240. package/dist/storage/index.d.cts +3 -3
  241. package/dist/storage/index.d.ts +3 -3
  242. package/dist/storage/index.js +5 -4
  243. package/dist/storage/types.d.cts +2 -2
  244. package/dist/storage/types.d.ts +2 -2
  245. package/dist/{storage-luq7YBZF.js → storage-CQxu0EY3.js} +10 -7
  246. package/dist/{storage-luq7YBZF.js.map → storage-CQxu0EY3.js.map} +1 -1
  247. package/dist/{storage-DbyNnkIJ.cjs → storage-vnH64B_Q.cjs} +10 -7
  248. package/dist/storage-vnH64B_Q.cjs.map +1 -0
  249. package/dist/stream/index.cjs +3 -3
  250. package/dist/stream/index.d.cts +2 -2
  251. package/dist/stream/index.d.ts +2 -2
  252. package/dist/stream/index.js +3 -3
  253. package/dist/stream/types.d.cts +1 -1
  254. package/dist/stream/types.d.ts +1 -1
  255. package/dist/syncActions/index.cjs +1 -1
  256. package/dist/syncActions/index.d.cts +1 -1
  257. package/dist/syncActions/index.d.ts +1 -1
  258. package/dist/syncActions/index.js +1 -1
  259. package/dist/syncActions/types.d.cts +1 -1
  260. package/dist/syncActions/types.d.ts +1 -1
  261. package/dist/{syncActions-ssWWVN_4.js → syncActions-AgFiMjRS.js} +5 -5
  262. package/dist/{syncActions-ssWWVN_4.js.map → syncActions-AgFiMjRS.js.map} +1 -1
  263. package/dist/{syncActions-DKWeJ8GH.cjs → syncActions-DPcAPYgJ.cjs} +5 -5
  264. package/dist/{syncActions-DKWeJ8GH.cjs.map → syncActions-DPcAPYgJ.cjs.map} +1 -1
  265. package/dist/telemetry/index.cjs +1 -1
  266. package/dist/telemetry/index.d.cts +2 -2
  267. package/dist/telemetry/index.d.ts +2 -2
  268. package/dist/telemetry/index.js +1 -1
  269. package/dist/{telemetry-2IrE8HaZ.cjs → telemetry-BLgaYEvi.cjs} +3 -3
  270. package/dist/{telemetry-2IrE8HaZ.cjs.map → telemetry-BLgaYEvi.cjs.map} +1 -1
  271. package/dist/{telemetry-yQfQxBBI.js → telemetry-CPiGWpLi.js} +3 -3
  272. package/dist/{telemetry-yQfQxBBI.js.map → telemetry-CPiGWpLi.js.map} +1 -1
  273. package/dist/{types-DCBKso0t.d.cts → types-056giLrn.d.cts} +2 -2
  274. package/dist/{types-B1S2H7q1.d.ts → types-B1S60aS2.d.ts} +2 -2
  275. package/dist/{types-DwX1uxp_.d.ts → types-B2Al1BNh.d.ts} +2 -2
  276. package/dist/{types--T-vBqdd.d.cts → types-B2El99VY.d.cts} +2 -2
  277. package/dist/{types-BXK6Ebtm.d.ts → types-BHCigZFc.d.ts} +3 -3
  278. package/dist/{types-CtdyAkzI.d.cts → types-BIAP4CYp.d.cts} +2 -2
  279. package/dist/{types-B1glyy_Q.d.ts → types-BJLRgXw0.d.ts} +2 -2
  280. package/dist/{types-h9TTimS_.d.ts → types-BMsK6T5k.d.ts} +2 -2
  281. package/dist/{types-DebL68-g.d.ts → types-BV74LS5r.d.ts} +3 -3
  282. package/dist/{types-V8rC5if7.d.cts → types-BXnUqdBB.d.cts} +2 -2
  283. package/dist/{types-BREBK0xX.d.ts → types-Bc3-a3DT.d.cts} +2 -2
  284. package/dist/{types-C8XiTXxi.d.cts → types-BdKtW2Ml.d.cts} +2 -2
  285. package/dist/{types-DgaYUtu_.d.cts → types-Bv5vw2dc.d.cts} +2 -2
  286. package/dist/{types-D2n3h1gp.d.ts → types-BvXODdf5.d.ts} +2 -2
  287. package/dist/{types-CyRK5z-E.d.cts → types-By47HWwB.d.cts} +2 -2
  288. package/dist/{types-DeApSCzx.d.cts → types-C0bGZqFI.d.cts} +2 -2
  289. package/dist/{types-BefwoXik.d.cts → types-C2p7JYQ3.d.cts} +2 -2
  290. package/dist/{types-QOIQ-dZU.d.cts → types-CFhAduFK.d.cts} +3 -3
  291. package/dist/{types-ISUNM_BR.d.cts → types-CIJAtX8q.d.cts} +2 -2
  292. package/dist/{types-DvsGS8By.d.cts → types-CIybfUJ9.d.cts} +3 -3
  293. package/dist/{types-x4xPlrr0.d.ts → types-COFrOmuO.d.ts} +2 -2
  294. package/dist/{types-CexuN7Mw.d.cts → types-CQd9PuKY.d.cts} +7 -5
  295. package/dist/{types-CvADp-x-.d.ts → types-CgF9R0Na.d.ts} +2 -2
  296. package/dist/{types-BCt0EMiO.d.ts → types-Co8WobOo.d.ts} +3 -3
  297. package/dist/{types-DMvU4kZ2.d.cts → types-CuAoZH8w.d.cts} +2 -2
  298. package/dist/{types-SGuvOEV8.d.ts → types-Culr5v8R.d.ts} +3 -3
  299. package/dist/{types-BD6czYPH.d.ts → types-D5VvEdOv.d.ts} +7 -5
  300. package/dist/{types-DEKF5pbg.d.cts → types-D7YGPUsm.d.ts} +2 -2
  301. package/dist/{types-CwvOcTOm.d.cts → types-DG_FlLJt.d.cts} +3 -3
  302. package/dist/{types-B06L4-WE.d.cts → types-DLazCdFR.d.cts} +3 -3
  303. package/dist/{types-CC0wymfG.d.ts → types-DMMMQuNt.d.ts} +3 -3
  304. package/dist/{types-bws2RtKq.d.ts → types-DN7RWWBw.d.ts} +2 -2
  305. package/dist/{types-BhBvnvqe.d.ts → types-DQOOWgLt.d.cts} +2 -2
  306. package/dist/{types-CAOvDtMC.d.cts → types-DSBNqF1J.d.cts} +2 -2
  307. package/dist/{types-Z-vUwgym.d.ts → types-DWUd__fe.d.ts} +2 -2
  308. package/dist/{types-CjAia48k.d.ts → types-DdeZK3BO.d.ts} +2 -2
  309. package/dist/{types-BpWqpMkL.d.ts → types-Dirp9mni.d.ts} +3 -3
  310. package/dist/{types-DkbfBOBr.d.cts → types-DkoyCUqv.d.ts} +2 -2
  311. package/dist/{types-BmFyDKe6.d.ts → types-DnOGCb-p.d.cts} +24 -3
  312. package/dist/{types-CSmttcZ_.d.ts → types-Drk7PEhk.d.ts} +2 -2
  313. package/dist/{types-n4FFKqa4.d.ts → types-DyIKgbGB.d.ts} +2 -2
  314. package/dist/{types-2mHlPakp.d.cts → types-RmbvQimP.d.ts} +24 -3
  315. package/dist/{types-7H6Dnz0Y.d.ts → types-SX78XZZ0.d.ts} +2 -2
  316. package/dist/{types-CRYtdj5w.d.ts → types-X-gQF8F8.d.ts} +2 -2
  317. package/dist/{types-DBOEA7l0.d.cts → types-ca-YNg1r.d.cts} +3 -3
  318. package/dist/{types-BO-mTxKb.d.cts → types-eP06LqcE.d.cts} +2 -2
  319. package/dist/{types-CI1mW2lA.d.ts → types-lVXf05pr.d.ts} +2 -2
  320. package/dist/{types-BRQAKEC1.d.cts → types-mXM8MrYS.d.cts} +3 -3
  321. package/dist/{types-DS8uFAeq.d.cts → types-sTH4KiPc.d.cts} +2 -2
  322. package/dist/{types-CbZ8aMKW.d.cts → types-uP64XthM.d.cts} +2 -2
  323. package/dist/validateConnectionStatus-CBhXmvWC.js +38 -0
  324. package/dist/validateConnectionStatus-CBhXmvWC.js.map +1 -0
  325. package/dist/validateConnectionStatus-DVHXGTdi.cjs +55 -0
  326. package/dist/validateConnectionStatus-DVHXGTdi.cjs.map +1 -0
  327. package/dist/vault/index.cjs +4 -4
  328. package/dist/vault/index.d.cts +1 -1
  329. package/dist/vault/index.d.ts +1 -1
  330. package/dist/vault/index.js +4 -4
  331. package/dist/vault/types.d.cts +1 -1
  332. package/dist/vault/types.d.ts +1 -1
  333. package/package.json +4 -3
  334. package/surface/auth.md +9 -2
  335. package/surface/kaiAgent.md +1 -0
  336. package/dist/authClient-DOk6VKdV.js.map +0 -1
  337. package/dist/authClient-Z8Eg8rlN.cjs.map +0 -1
  338. package/dist/constants-CqyyBkXW.cjs.map +0 -1
  339. package/dist/constants-_HhqKvBg.js.map +0 -1
  340. package/dist/createFetchClient-BK0TZK-U.js.map +0 -1
  341. package/dist/createFetchClient-BsG719K1.cjs.map +0 -1
  342. package/dist/management-DqwQcDCx.js.map +0 -1
  343. package/dist/management-WOmlBt6H.cjs.map +0 -1
  344. package/dist/storage-DbyNnkIJ.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { p as ApiError } from "./createFetchClient-BK0TZK-U.js";
1
+ import { m as ApiError } from "./createFetchClient-B1h3-p65.js";
2
2
  //#region src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends ApiError {
4
4
  title;
@@ -12,4 +12,4 @@ var ManagementClientAuthError = class extends ApiError {
12
12
  //#endregion
13
13
  export { ManagementClientAuthError as t };
14
14
 
15
- //# sourceMappingURL=ManagementClientAuthError-B97OtOQ7.js.map
15
+ //# sourceMappingURL=ManagementClientAuthError-90pvsej0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementClientAuthError-B97OtOQ7.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.title = title;\n this.message = message;\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF"}
1
+ {"version":3,"file":"ManagementClientAuthError-90pvsej0.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.title = title;\n this.message = message;\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF"}
@@ -1,4 +1,4 @@
1
- const require_createFetchClient = require("./createFetchClient-BsG719K1.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-B9Cv0W9f.cjs");
2
2
  //#region src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends require_createFetchClient.ApiError {
4
4
  title;
@@ -17,4 +17,4 @@ Object.defineProperty(exports, "ManagementClientAuthError", {
17
17
  }
18
18
  });
19
19
 
20
- //# sourceMappingURL=ManagementClientAuthError-ZJ2-RoKT.cjs.map
20
+ //# sourceMappingURL=ManagementClientAuthError-DFhi5yxe.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementClientAuthError-ZJ2-RoKT.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.title = title;\n this.message = message;\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF"}
1
+ {"version":3,"file":"ManagementClientAuthError-DFhi5yxe.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.title = title;\n this.message = message;\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF"}
package/dist/ai/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-Cr90VXY4.cjs");
3
- const require_auth = require("../auth-5HCvCsZO.cjs");
2
+ const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-yirrW6Tg.cjs");
3
+ const require_auth = require("../auth-DmgTH0uY.cjs");
4
4
  //#region src/clients/ai/aiClient.ts
5
5
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
6
6
  const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
@@ -1,5 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-DCBKso0t.cjs";
2
- import { n as ClientInitOptions } from "../types-C8XiTXxi.cjs";
1
+ import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-056giLrn.cjs";
2
+ import { n as ClientInitOptions } from "../types-BdKtW2Ml.cjs";
3
3
  //#region src/clients/ai/aiClient.d.ts
4
4
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
5
  healthCheck: (signal?: AbortSignal) => Promise<{
@@ -1,5 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-CSmttcZ_.js";
2
- import { n as ClientInitOptions } from "../types-7H6Dnz0Y.js";
1
+ import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-Drk7PEhk.js";
2
+ import { n as ClientInitOptions } from "../types-SX78XZZ0.js";
3
3
  //#region src/clients/ai/aiClient.d.ts
4
4
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
5
  healthCheck: (signal?: AbortSignal) => Promise<{
package/dist/ai/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-B5U1fCHS.js";
2
- import { t as createAuthHeaders } from "../auth-D2jfNlpX.js";
1
+ import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-0_oqhdPv.js";
2
+ import { t as createAuthHeaders } from "../auth-CE6Hlc9W.js";
3
3
  //#region src/clients/ai/aiClient.ts
4
4
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
5
5
  const client = createOpenapiFetchClient({
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-DCBKso0t.cjs";
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-056giLrn.cjs";
2
2
  export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-CSmttcZ_.js";
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-Drk7PEhk.js";
2
2
  export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
2
2
  const require_isPlainObject = require("./isPlainObject-BB3iy87C.cjs");
3
- const require_createFetchClient = require("./createFetchClient-BsG719K1.cjs");
3
+ const require_createFetchClient = require("./createFetchClient-B9Cv0W9f.cjs");
4
4
  let zod = require("zod");
5
5
  zod = require_rolldown_runtime.__toESM(zod, 1);
6
6
  let dayjs = require("dayjs");
@@ -150,4 +150,4 @@ Object.defineProperty(exports, "readAppLogsTail", {
150
150
  }
151
151
  });
152
152
 
153
- //# sourceMappingURL=appLogs-CNG3yby-.cjs.map
153
+ //# sourceMappingURL=appLogs-BCCi02w6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLogs-CNG3yby-.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAA,QAAM,OAAOA,oBAAAA,OAAG;AAOhB,MAAM,yBAAyB;AAE/B,MAAM,sBAAsB;AAC5B,MAAM,8BAA8B;;AAGpC,MAAM,YAAYC,IAAE,OAAO,EACzB,SAASA,IAAE,OAAO,EAChB,MAAMA,IAAE,OAAO,EACjB,CAAC,EACH,CAAC;;;;;;AAOD,MAAM,wCAAwB,IAAI,IAAI,CAAC,sBAAsB,2BAA2B,CAAC;AAEzF,MAAM,iBAAiB,SAAkC;CACvD,IAAI,CAAC,KAAK,WAAW,GAAG,GAAG,OAAO;CAElC,IAAI;CACJ,IAAI;EACF,SAAS,KAAK,MAAM,IAAI;CAC1B,QAAQ;EACN,OAAO;CACT;CAEA,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM,OAAO;CAG1D,MAAM,EAAE,WAAW,YAAYC;CAE/B,IAAI,OAAO,cAAc,YAAY,OAAO,YAAY,UAAU,OAAO;CAEzE,OAAO;EACL;EACA;CACF;AACF;AAEA,MAAM,sBAAsB,SAA2B;CACrD,MAAM,QAAQ,KAAK,MAAM,2BAA2B;CACpD,IAAI,OACF,OAAO;EAAE,WAAW,MAAM;EAAK,SAAS,KAAK,MAAM,MAAM,EAAE,CAAC,MAAM;CAAE;CAEtE,OAAO;EAAE,WAAW;EAAM,SAAS;CAAK;AAC1C;AAEA,MAAa,gBAAgB,SAC3B,cAAc,IAAI,KAAK,mBAAmB,IAAI;AAEhD,MAAM,wBAAwB,QAAkD;CAC9E,IAAI,OAAO,IAAI,YAAY,UAAU,OAAO;CAC5C,OAAO;EACL,WAAW,OAAO,IAAI,cAAc,WAAW,IAAI,YAAY;EAC/D,SAAS,IAAI;CACf;AACF;AAEA,MAAa,iBAAiB,QAA6B;CACzD,IAAI,QAAQ,QAAQ,QAAQ,KAAA,KAAa,QAAQ,IAAI,OAAO,CAAC;CAE7D,IAAI,MAAM,QAAQ,GAAG,GACnB,OAAO,IAAI,SAAS,SAAS;EAC3B,IAAI,OAAO,SAAS,UAAU,OAAO,SAAS,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC;EAC3E,IAAIC,sBAAAA,cAAc,IAAI,GAAG;GACvB,MAAM,QAAQ,qBAAqB,IAAI;GACvC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;EAC5B;EACA,OAAO,CAAC;CACV,CAAC;CAGH,IAAIA,sBAAAA,cAAc,GAAG,GAAG;EACtB,MAAM,QAAQ,qBAAqB,GAAG;EACtC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;CAC5B;CAEA,IAAI,OAAO,QAAQ,UAAU,OAAO,CAAC;CAErC,MAAM,QAAQ,IAAI,MAAM,IAAI;CAC5B,MAAM,UAAsB,CAAC;CAC7B,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,SAAS,IAAI;EACjB,QAAQ,KAAK,aAAa,IAAI,CAAC;CACjC;CACA,OAAO;AACT;AAEA,MAAa,oBAAoB,YAAwB;CACvD,KAAK,IAAI,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;EAC5C,MAAM,QAAQ,QAAQ;EACtB,IAAI,CAAC,OAAO;EACZ,IAAI,MAAM,WAAW,OAAO,MAAM;EAGlC,MAAM,QAAQ,MAAM,QAAQ,MAAM,mBAAmB;EACrD,IAAI,OAAO,OAAO,MAAM;CAC1B;CACA,OAAO;AACT;AAEA,MAAM,6BAA6B,cAA6B;CAC9D,IAAI,cAAc,MAAM,OAAO;CAC/B,QAAA,GAAO,MAAA,QAAA,CAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO;AAC9D;;;;;;AAOA,MAAa,kBAAkB,OAAO,cAAkD;CACtF,IAAI;EACF,MAAM,EAAE,SAAS,MAAM,UAAU;EACjC,MAAM,UAAU,cAAc,IAAI;EAElC,OAAO;GACL;GACA,kBAAkB,0BAA0B,iBAAiB,OAAO,CAAC;EACvE;CACF,SAAS,OAAO;EACd,IAAIC,0BAAAA,WAAW,KAAK,KAAK,MAAM,SAAS,WAAWC,0BAAAA,WAAW,aAAa;GACzE,MAAM,OAAO,UAAU,UAAU,MAAM,IAAI,CAAC,CAAC,MAAM,SAAS;GAC5D,IAAI,SAAS,KAAA,KAAa,sBAAsB,IAAI,IAAI,GACtD,OAAO;IAAE,SAAS,CAAC;IAAG,kBAAkB;GAAK;EAEjD;EACA,MAAM;CACR;AACF;;AAGA,MAAa,sBAAsB,OAAO,cAAkD;CAC1F,MAAM,EAAE,MAAM,aAAa,MAAM,UAAU;CAK3C,OAAO;EACL,MAAM;EACN,UANyBC,0BAAAA,8BACzB,SAAS,QAAQ,IAAIC,0BAAAA,WAAW,mBAAmB,CAKxB,CAAC,CAAC,YAAY;CAC3C;AACF"}
1
+ {"version":3,"file":"appLogs-BCCi02w6.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import "./index-8pN6Emos.js";
1
+ import "./index-Ds8e0l7-.js";
2
2
  //#region src/domain/appLogs.d.ts
3
3
  type LogEntry = {
4
4
  timestamp: string | null;
@@ -7,4 +7,4 @@ type LogEntry = {
7
7
  declare const parseLogLines: (raw: unknown) => LogEntry[];
8
8
  //#endregion
9
9
  export { parseLogLines as n, LogEntry as t };
10
- //# sourceMappingURL=appLogs-VdgP08aX.d.ts.map
10
+ //# sourceMappingURL=appLogs-BdMG6Cvn.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { t as isPlainObject } from "./isPlainObject-LYW-03uB.js";
2
- import { d as HttpStatus, l as parseContentDispositionHeader, o as HttpHeader, r as isApiError } from "./createFetchClient-BK0TZK-U.js";
2
+ import { f as HttpStatus, o as HttpHeader, r as isApiError, u as parseContentDispositionHeader } from "./createFetchClient-B1h3-p65.js";
3
3
  import * as z$1 from "zod";
4
4
  import dayjs from "dayjs";
5
5
  import utc from "dayjs/plugin/utc.js";
@@ -129,4 +129,4 @@ const readAppLogsDownload = async (fetchLogs) => {
129
129
  //#endregion
130
130
  export { readAppLogsDownload as n, readAppLogsTail as r, parseLogLines as t };
131
131
 
132
- //# sourceMappingURL=appLogs-enL9XR9r.js.map
132
+ //# sourceMappingURL=appLogs-CLHhkQJn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLogs-enL9XR9r.js","names":["z","record"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"appLogs-CLHhkQJn.js","names":["z","record"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import "./index-CLPrlyIz.cjs";
1
+ import "./index-B-frWtGW.cjs";
2
2
  //#region src/domain/appLogs.d.ts
3
3
  type LogEntry = {
4
4
  timestamp: string | null;
@@ -7,4 +7,4 @@ type LogEntry = {
7
7
  declare const parseLogLines: (raw: unknown) => LogEntry[];
8
8
  //#endregion
9
9
  export { parseLogLines as n, LogEntry as t };
10
- //# sourceMappingURL=appLogs-Dl5BcCSD.d.cts.map
10
+ //# sourceMappingURL=appLogs-hQdKt_8J.d.cts.map
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-Cr90VXY4.cjs");
3
- const require_auth = require("../auth-5HCvCsZO.cjs");
4
- const require_appLogs = require("../appLogs-CNG3yby-.cjs");
2
+ const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-yirrW6Tg.cjs");
3
+ const require_auth = require("../auth-DmgTH0uY.cjs");
4
+ const require_appLogs = require("../appLogs-BCCi02w6.cjs");
5
5
  //#region src/clients/apps/appsClient.ts
6
6
  /**
7
7
  * `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of
@@ -1,6 +1,6 @@
1
- import { n as ClientInitOptions } from "../types-C8XiTXxi.cjs";
2
- import { S as components, b as GetLogsTailQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-B06L4-WE.cjs";
3
- import { t as LogEntry } from "../appLogs-Dl5BcCSD.cjs";
1
+ import { n as ClientInitOptions } from "../types-BdKtW2Ml.cjs";
2
+ import { S as components, b as GetLogsTailQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-DLazCdFR.cjs";
3
+ import { t as LogEntry } from "../appLogs-hQdKt_8J.cjs";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * No `idempotencyKey`. The service accepted an `Idempotency-Key` that turned a replayed create
@@ -1,6 +1,6 @@
1
- import { n as ClientInitOptions } from "../types-7H6Dnz0Y.js";
2
- import { S as components, b as GetLogsTailQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-SGuvOEV8.js";
3
- import { t as LogEntry } from "../appLogs-VdgP08aX.js";
1
+ import { n as ClientInitOptions } from "../types-SX78XZZ0.js";
2
+ import { S as components, b as GetLogsTailQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-Culr5v8R.js";
3
+ import { t as LogEntry } from "../appLogs-BdMG6Cvn.js";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * No `idempotencyKey`. The service accepted an `Idempotency-Key` that turned a replayed create
@@ -1,6 +1,6 @@
1
- import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-B5U1fCHS.js";
2
- import { t as createAuthHeaders } from "../auth-D2jfNlpX.js";
3
- import { n as readAppLogsDownload, r as readAppLogsTail } from "../appLogs-enL9XR9r.js";
1
+ import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-0_oqhdPv.js";
2
+ import { t as createAuthHeaders } from "../auth-CE6Hlc9W.js";
3
+ import { n as readAppLogsDownload, r as readAppLogsTail } from "../appLogs-CLHhkQJn.js";
4
4
  //#region src/clients/apps/appsClient.ts
5
5
  /**
6
6
  * `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of
@@ -1,3 +1,3 @@
1
- import { _ as DeploymentRunState, a as AppRun, b as GetLogsTailQuery, c as CreateCredentialBody, d as Credential, f as CredentialId, g as DeploymentId, h as DeploymentBuildState, i as AppPassword, l as CreateDeploymentBody, m as Deployment, n as AppGitRepo, o as AppState, p as CredentialList, r as AppId, s as CreateAppBody, t as App, u as CreatedCredential, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-B06L4-WE.cjs";
2
- import { t as LogEntry } from "../appLogs-Dl5BcCSD.cjs";
1
+ import { _ as DeploymentRunState, a as AppRun, b as GetLogsTailQuery, c as CreateCredentialBody, d as Credential, f as CredentialId, g as DeploymentId, h as DeploymentBuildState, i as AppPassword, l as CreateDeploymentBody, m as Deployment, n as AppGitRepo, o as AppState, p as CredentialList, r as AppId, s as CreateAppBody, t as App, u as CreatedCredential, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-DLazCdFR.cjs";
2
+ import { t as LogEntry } from "../appLogs-hQdKt_8J.cjs";
3
3
  export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppRunsQuery, GetAppsQuery, GetLogsTailQuery, type LogEntry, RunId };
@@ -1,3 +1,3 @@
1
- import { _ as DeploymentRunState, a as AppRun, b as GetLogsTailQuery, c as CreateCredentialBody, d as Credential, f as CredentialId, g as DeploymentId, h as DeploymentBuildState, i as AppPassword, l as CreateDeploymentBody, m as Deployment, n as AppGitRepo, o as AppState, p as CredentialList, r as AppId, s as CreateAppBody, t as App, u as CreatedCredential, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-SGuvOEV8.js";
2
- import { t as LogEntry } from "../appLogs-VdgP08aX.js";
1
+ import { _ as DeploymentRunState, a as AppRun, b as GetLogsTailQuery, c as CreateCredentialBody, d as Credential, f as CredentialId, g as DeploymentId, h as DeploymentBuildState, i as AppPassword, l as CreateDeploymentBody, m as Deployment, n as AppGitRepo, o as AppState, p as CredentialList, r as AppId, s as CreateAppBody, t as App, u as CreatedCredential, v as GetAppRunsQuery, x as RunId, y as GetAppsQuery } from "../types-Culr5v8R.js";
2
+ import { t as LogEntry } from "../appLogs-BdMG6Cvn.js";
3
3
  export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppRunsQuery, GetAppsQuery, GetLogsTailQuery, type LogEntry, RunId };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createGenericFetchClient = require("../createGenericFetchClient-DLbjX0eM.cjs");
2
+ const require_createGenericFetchClient = require("../createGenericFetchClient-BWoSkTki.cjs");
3
3
  const require_assets_schema = require("./schema.cjs");
4
4
  //#region src/clients/assets/assetsClient.ts
5
5
  const createAssetsClient = ({ baseUrl, middlewares }) => {
@@ -1,4 +1,4 @@
1
- import { n as ClientInitOptions } from "../types-C8XiTXxi.cjs";
1
+ import { n as ClientInitOptions } from "../types-BdKtW2Ml.cjs";
2
2
  //#region src/clients/assets/assetsClient.d.ts
3
3
  declare const createAssetsClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
4
4
  getPublishedChangelogPosts: (signal?: AbortSignal) => Promise<{
@@ -1,4 +1,4 @@
1
- import { n as ClientInitOptions } from "../types-7H6Dnz0Y.js";
1
+ import { n as ClientInitOptions } from "../types-SX78XZZ0.js";
2
2
  //#region src/clients/assets/assetsClient.d.ts
3
3
  declare const createAssetsClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
4
4
  getPublishedChangelogPosts: (signal?: AbortSignal) => Promise<{
@@ -1,4 +1,4 @@
1
- import { t as createGenericFetchClient } from "../createGenericFetchClient-CVZYekDk.js";
1
+ import { t as createGenericFetchClient } from "../createGenericFetchClient-DhpvUSlX.js";
2
2
  import { componentTemplatesSchema, publishedPostsSchema } from "./schema.js";
3
3
  //#region src/clients/assets/assetsClient.ts
4
4
  const createAssetsClient = ({ baseUrl, middlewares }) => {
@@ -1,5 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_authClient = require("../authClient-Z8Eg8rlN.cjs");
2
+ const require_authClient = require("../authClient-Cixa8_L1.cjs");
3
+ exports.MFA_METHOD = require_authClient.MFA_METHOD;
3
4
  exports.changeInputSchema = require_authClient.changeInputSchema;
4
5
  exports.createAuthClient = require_authClient.createAuthClient;
5
6
  exports.loginInputSchema = require_authClient.loginInputSchema;
@@ -1,2 +1,2 @@
1
- import { C as loginSuccessSchema, S as loginResultSchema, T as oidcInputSchema, _ as LoginResult, a as ResetInput, b as OidcInput, c as resetInputSchema, d as MfaWebauthnInput, f as TotpVerifyInput, g as LoginInput, h as totpVerifyInputSchema, i as ChangePasswordInput, l as resetRequestInputSchema, m as mfaWebauthnInputSchema, n as AuthOpenApiFetchClient, o as ResetRequestInput, p as mfaCodeInputSchema, r as createAuthClient, s as changeInputSchema, t as AuthClientInitOptions, u as MfaCodeInput, v as LoginSuccess, w as mfaChallengeSchema, x as loginInputSchema, y as LoginUser } from "../authClient-Bgj2Ay7h.cjs";
2
- export { AuthClientInitOptions, AuthOpenApiFetchClient, ChangePasswordInput, LoginInput, LoginResult, LoginSuccess, LoginUser, MfaCodeInput, MfaWebauthnInput, OidcInput, ResetInput, ResetRequestInput, TotpVerifyInput, changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
1
+ import { C as OidcInput, D as mfaChallengeSchema, E as loginSuccessSchema, O as oidcInputSchema, S as MfaChallenge, T as loginResultSchema, _ as totpVerifyInputSchema, a as ResetInput, b as LoginSuccess, c as resetInputSchema, d as MfaCodeInput, f as MfaMethod, g as mfaWebauthnInputSchema, h as mfaCodeInputSchema, i as ChangePasswordInput, l as resetRequestInputSchema, m as TotpVerifyInput, n as AuthOpenApiFetchClient, o as ResetRequestInput, p as MfaWebauthnInput, r as createAuthClient, s as changeInputSchema, t as AuthClientInitOptions, u as MFA_METHOD, v as LoginInput, w as loginInputSchema, x as LoginUser, y as LoginResult } from "../authClient-BL6h78Q1.cjs";
2
+ export { AuthClientInitOptions, AuthOpenApiFetchClient, ChangePasswordInput, LoginInput, LoginResult, LoginSuccess, LoginUser, MFA_METHOD, MfaChallenge, MfaCodeInput, MfaMethod, MfaWebauthnInput, OidcInput, ResetInput, ResetRequestInput, TotpVerifyInput, changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
@@ -1,2 +1,2 @@
1
- import { C as loginSuccessSchema, S as loginResultSchema, T as oidcInputSchema, _ as LoginResult, a as ResetInput, b as OidcInput, c as resetInputSchema, d as MfaWebauthnInput, f as TotpVerifyInput, g as LoginInput, h as totpVerifyInputSchema, i as ChangePasswordInput, l as resetRequestInputSchema, m as mfaWebauthnInputSchema, n as AuthOpenApiFetchClient, o as ResetRequestInput, p as mfaCodeInputSchema, r as createAuthClient, s as changeInputSchema, t as AuthClientInitOptions, u as MfaCodeInput, v as LoginSuccess, w as mfaChallengeSchema, x as loginInputSchema, y as LoginUser } from "../authClient-Dsd7W99W.js";
2
- export { AuthClientInitOptions, AuthOpenApiFetchClient, ChangePasswordInput, LoginInput, LoginResult, LoginSuccess, LoginUser, MfaCodeInput, MfaWebauthnInput, OidcInput, ResetInput, ResetRequestInput, TotpVerifyInput, changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
1
+ import { C as OidcInput, D as mfaChallengeSchema, E as loginSuccessSchema, O as oidcInputSchema, S as MfaChallenge, T as loginResultSchema, _ as totpVerifyInputSchema, a as ResetInput, b as LoginSuccess, c as resetInputSchema, d as MfaCodeInput, f as MfaMethod, g as mfaWebauthnInputSchema, h as mfaCodeInputSchema, i as ChangePasswordInput, l as resetRequestInputSchema, m as TotpVerifyInput, n as AuthOpenApiFetchClient, o as ResetRequestInput, p as MfaWebauthnInput, r as createAuthClient, s as changeInputSchema, t as AuthClientInitOptions, u as MFA_METHOD, v as LoginInput, w as loginInputSchema, x as LoginUser, y as LoginResult } from "../authClient-Bc_bDisO.js";
2
+ export { AuthClientInitOptions, AuthOpenApiFetchClient, ChangePasswordInput, LoginInput, LoginResult, LoginSuccess, LoginUser, MFA_METHOD, MfaChallenge, MfaCodeInput, MfaMethod, MfaWebauthnInput, OidcInput, ResetInput, ResetRequestInput, TotpVerifyInput, changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
@@ -1,2 +1,2 @@
1
- import { a as mfaCodeInputSchema, c as loginInputSchema, d as mfaChallengeSchema, f as oidcInputSchema, i as resetRequestInputSchema, l as loginResultSchema, n as changeInputSchema, o as mfaWebauthnInputSchema, r as resetInputSchema, s as totpVerifyInputSchema, t as createAuthClient, u as loginSuccessSchema } from "../authClient-DOk6VKdV.js";
2
- export { changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
1
+ import { a as MFA_METHOD, c as totpVerifyInputSchema, d as loginSuccessSchema, f as mfaChallengeSchema, i as resetRequestInputSchema, l as loginInputSchema, n as changeInputSchema, o as mfaCodeInputSchema, p as oidcInputSchema, r as resetInputSchema, s as mfaWebauthnInputSchema, t as createAuthClient, u as loginResultSchema } from "../authClient-XBAUz9g-.js";
2
+ export { MFA_METHOD, changeInputSchema, createAuthClient, loginInputSchema, loginResultSchema, loginSuccessSchema, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
@@ -1,2 +1,2 @@
1
- import { A as CreateDeviceAuthorizationBody, C as TotpSetupResult, D as LoginBody, E as VerifyMfaResult, M as GetDeviceAuthorizationTokenBody, N as GetDeviceAuthorizationTokenResult, O as ApproveDeviceAuthorizationBody, S as RegenerateRecoveryCodesResult, T as VerifyMfaBody, _ as ExchangePatBody, a as SudoBodyRaw, b as RevokePatPath, c as RevokeSessionPath, d as InitiateSamlBody, f as InitiateSamlResult, g as CreatePatResult, h as CreatePatBody, i as SudoBody, j as CreateDeviceAuthorizationResult, k as ApproveDeviceAuthorizationResult, l as AssertSamlBody, m as GetPkceTokenResult, n as RefreshTokenResult, o as SudoChallengeResult, p as GetPkceTokenBody, r as RevokeTokenBody, s as SudoResult, t as IntrospectTokenResult, u as AssertSamlResult, v as ExchangePatResult, w as TotpVerifyResult, x as DisableTotpPath, y as ListPatsResult } from "../types-2mHlPakp.cjs";
2
- export { ApproveDeviceAuthorizationBody, ApproveDeviceAuthorizationResult, AssertSamlBody, AssertSamlResult, CreateDeviceAuthorizationBody, CreateDeviceAuthorizationResult, CreatePatBody, CreatePatResult, DisableTotpPath, ExchangePatBody, ExchangePatResult, GetDeviceAuthorizationTokenBody, GetDeviceAuthorizationTokenResult, GetPkceTokenBody, GetPkceTokenResult, InitiateSamlBody, InitiateSamlResult, IntrospectTokenResult, ListPatsResult, LoginBody, RefreshTokenResult, RegenerateRecoveryCodesResult, RevokePatPath, RevokeSessionPath, RevokeTokenBody, SudoBody, SudoBodyRaw, SudoChallengeResult, SudoResult, TotpSetupResult, TotpVerifyResult, VerifyMfaBody, VerifyMfaResult };
1
+ import { A as TotpSetupResult, B as GetDeviceAuthorizationTokenResult, C as CreatePatResult, D as RevokePatPath, E as ListPatsResult, F as ApproveDeviceAuthorizationBody, I as ApproveDeviceAuthorizationResult, L as CreateDeviceAuthorizationBody, M as VerifyMfaBody, N as VerifyMfaResult, O as DisableTotpPath, P as LoginBody, R as CreateDeviceAuthorizationResult, S as CreatePatBody, T as ExchangePatResult, _ as AssertSamlResult, a as RemoveWebauthnInput, b as GetPkceTokenBody, c as IntrospectTokenResult, d as SudoBody, f as SudoBodyRaw, g as AssertSamlBody, h as RevokeSessionPath, i as RegisterWebauthnResult, j as TotpVerifyResult, k as RegenerateRecoveryCodesResult, l as RefreshTokenResult, m as SudoResult, n as RegisterWebauthnInput, o as RemoveWebauthnPath, p as SudoChallengeResult, r as RegisterWebauthnOptionsResult, s as RemoveWebauthnQuery, t as ListWebauthnCredentialsResult, u as RevokeTokenBody, v as InitiateSamlBody, w as ExchangePatBody, x as GetPkceTokenResult, y as InitiateSamlResult, z as GetDeviceAuthorizationTokenBody } from "../types-DnOGCb-p.cjs";
2
+ export { ApproveDeviceAuthorizationBody, ApproveDeviceAuthorizationResult, AssertSamlBody, AssertSamlResult, CreateDeviceAuthorizationBody, CreateDeviceAuthorizationResult, CreatePatBody, CreatePatResult, DisableTotpPath, ExchangePatBody, ExchangePatResult, GetDeviceAuthorizationTokenBody, GetDeviceAuthorizationTokenResult, GetPkceTokenBody, GetPkceTokenResult, InitiateSamlBody, InitiateSamlResult, IntrospectTokenResult, ListPatsResult, ListWebauthnCredentialsResult, LoginBody, RefreshTokenResult, RegenerateRecoveryCodesResult, RegisterWebauthnInput, RegisterWebauthnOptionsResult, RegisterWebauthnResult, RemoveWebauthnInput, RemoveWebauthnPath, RemoveWebauthnQuery, RevokePatPath, RevokeSessionPath, RevokeTokenBody, SudoBody, SudoBodyRaw, SudoChallengeResult, SudoResult, TotpSetupResult, TotpVerifyResult, VerifyMfaBody, VerifyMfaResult };
@@ -1,2 +1,2 @@
1
- import { A as CreateDeviceAuthorizationBody, C as TotpSetupResult, D as LoginBody, E as VerifyMfaResult, M as GetDeviceAuthorizationTokenBody, N as GetDeviceAuthorizationTokenResult, O as ApproveDeviceAuthorizationBody, S as RegenerateRecoveryCodesResult, T as VerifyMfaBody, _ as ExchangePatBody, a as SudoBodyRaw, b as RevokePatPath, c as RevokeSessionPath, d as InitiateSamlBody, f as InitiateSamlResult, g as CreatePatResult, h as CreatePatBody, i as SudoBody, j as CreateDeviceAuthorizationResult, k as ApproveDeviceAuthorizationResult, l as AssertSamlBody, m as GetPkceTokenResult, n as RefreshTokenResult, o as SudoChallengeResult, p as GetPkceTokenBody, r as RevokeTokenBody, s as SudoResult, t as IntrospectTokenResult, u as AssertSamlResult, v as ExchangePatResult, w as TotpVerifyResult, x as DisableTotpPath, y as ListPatsResult } from "../types-BmFyDKe6.js";
2
- export { ApproveDeviceAuthorizationBody, ApproveDeviceAuthorizationResult, AssertSamlBody, AssertSamlResult, CreateDeviceAuthorizationBody, CreateDeviceAuthorizationResult, CreatePatBody, CreatePatResult, DisableTotpPath, ExchangePatBody, ExchangePatResult, GetDeviceAuthorizationTokenBody, GetDeviceAuthorizationTokenResult, GetPkceTokenBody, GetPkceTokenResult, InitiateSamlBody, InitiateSamlResult, IntrospectTokenResult, ListPatsResult, LoginBody, RefreshTokenResult, RegenerateRecoveryCodesResult, RevokePatPath, RevokeSessionPath, RevokeTokenBody, SudoBody, SudoBodyRaw, SudoChallengeResult, SudoResult, TotpSetupResult, TotpVerifyResult, VerifyMfaBody, VerifyMfaResult };
1
+ import { A as TotpSetupResult, B as GetDeviceAuthorizationTokenResult, C as CreatePatResult, D as RevokePatPath, E as ListPatsResult, F as ApproveDeviceAuthorizationBody, I as ApproveDeviceAuthorizationResult, L as CreateDeviceAuthorizationBody, M as VerifyMfaBody, N as VerifyMfaResult, O as DisableTotpPath, P as LoginBody, R as CreateDeviceAuthorizationResult, S as CreatePatBody, T as ExchangePatResult, _ as AssertSamlResult, a as RemoveWebauthnInput, b as GetPkceTokenBody, c as IntrospectTokenResult, d as SudoBody, f as SudoBodyRaw, g as AssertSamlBody, h as RevokeSessionPath, i as RegisterWebauthnResult, j as TotpVerifyResult, k as RegenerateRecoveryCodesResult, l as RefreshTokenResult, m as SudoResult, n as RegisterWebauthnInput, o as RemoveWebauthnPath, p as SudoChallengeResult, r as RegisterWebauthnOptionsResult, s as RemoveWebauthnQuery, t as ListWebauthnCredentialsResult, u as RevokeTokenBody, v as InitiateSamlBody, w as ExchangePatBody, x as GetPkceTokenResult, y as InitiateSamlResult, z as GetDeviceAuthorizationTokenBody } from "../types-RmbvQimP.js";
2
+ export { ApproveDeviceAuthorizationBody, ApproveDeviceAuthorizationResult, AssertSamlBody, AssertSamlResult, CreateDeviceAuthorizationBody, CreateDeviceAuthorizationResult, CreatePatBody, CreatePatResult, DisableTotpPath, ExchangePatBody, ExchangePatResult, GetDeviceAuthorizationTokenBody, GetDeviceAuthorizationTokenResult, GetPkceTokenBody, GetPkceTokenResult, InitiateSamlBody, InitiateSamlResult, IntrospectTokenResult, ListPatsResult, ListWebauthnCredentialsResult, LoginBody, RefreshTokenResult, RegenerateRecoveryCodesResult, RegisterWebauthnInput, RegisterWebauthnOptionsResult, RegisterWebauthnResult, RemoveWebauthnInput, RemoveWebauthnPath, RemoveWebauthnQuery, RevokePatPath, RevokeSessionPath, RevokeTokenBody, SudoBody, SudoBodyRaw, SudoChallengeResult, SudoResult, TotpSetupResult, TotpVerifyResult, VerifyMfaBody, VerifyMfaResult };
@@ -1,4 +1,4 @@
1
- import { f as KeboolaHttpHeader, o as HttpHeader } from "./createFetchClient-BK0TZK-U.js";
1
+ import { o as HttpHeader, p as KeboolaHttpHeader } from "./createFetchClient-B1h3-p65.js";
2
2
  //#region src/clients/auth.ts
3
3
  const createAuthHeaders = (auth) => {
4
4
  if (auth.type === "sapi-token") return { [KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };
@@ -10,4 +10,4 @@ const createAuthHeaders = (auth) => {
10
10
  //#endregion
11
11
  export { createAuthHeaders as t };
12
12
 
13
- //# sourceMappingURL=auth-D2jfNlpX.js.map
13
+ //# sourceMappingURL=auth-CE6Hlc9W.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-D2jfNlpX.js","names":[],"sources":["../src/clients/auth.ts"],"sourcesContent":["import { HttpHeader } from '../fetchClient';\nimport { KeboolaHttpHeader } from '../internal';\n\nexport type AuthStrategy =\n | {\n type: 'sapi-token';\n token: string;\n }\n | {\n type: 'bearer';\n token: string;\n projectId: number;\n };\n\nexport const createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'sapi-token') return { [KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };\n\n // `auth.token` is the bare token; the `Bearer ` wire prefix is added here (mirroring the\n // management client). In the browser bearer flow the bearer auth middleware stamps the\n // Authorization header on every request, so this value only matters for middleware-less\n // clients (e.g. kai-agent's storage token verification).\n return {\n [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}`,\n [KeboolaHttpHeader.PROJECT_ID]: auth.projectId.toString(),\n };\n};\n"],"mappings":";;AAcA,MAAa,qBAAqB,SAA+C;CAC/E,IAAI,KAAK,SAAS,cAAc,OAAO,GAAG,kBAAkB,oBAAoB,KAAK,MAAM;CAM3F,OAAO;GACJ,WAAW,gBAAgB,UAAU,KAAK;GAC1C,kBAAkB,aAAa,KAAK,UAAU,SAAS;CAC1D;AACF"}
1
+ {"version":3,"file":"auth-CE6Hlc9W.js","names":[],"sources":["../src/clients/auth.ts"],"sourcesContent":["import { HttpHeader } from '../fetchClient';\nimport { KeboolaHttpHeader } from '../internal';\n\nexport type AuthStrategy =\n | {\n type: 'sapi-token';\n token: string;\n }\n | {\n type: 'bearer';\n token: string;\n projectId: number;\n };\n\nexport const createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'sapi-token') return { [KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };\n\n // `auth.token` is the bare token; the `Bearer ` wire prefix is added here (mirroring the\n // management client). In the browser bearer flow the bearer auth middleware stamps the\n // Authorization header on every request, so this value only matters for middleware-less\n // clients (e.g. kai-agent's storage token verification).\n return {\n [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}`,\n [KeboolaHttpHeader.PROJECT_ID]: auth.projectId.toString(),\n };\n};\n"],"mappings":";;AAcA,MAAa,qBAAqB,SAA+C;CAC/E,IAAI,KAAK,SAAS,cAAc,OAAO,GAAG,kBAAkB,oBAAoB,KAAK,MAAM;CAM3F,OAAO;GACJ,WAAW,gBAAgB,UAAU,KAAK;GAC1C,kBAAkB,aAAa,KAAK,UAAU,SAAS;CAC1D;AACF"}
@@ -1,4 +1,4 @@
1
- const require_createFetchClient = require("./createFetchClient-BsG719K1.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-B9Cv0W9f.cjs");
2
2
  //#region src/clients/auth.ts
3
3
  const createAuthHeaders = (auth) => {
4
4
  if (auth.type === "sapi-token") return { [require_createFetchClient.KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };
@@ -15,4 +15,4 @@ Object.defineProperty(exports, "createAuthHeaders", {
15
15
  }
16
16
  });
17
17
 
18
- //# sourceMappingURL=auth-5HCvCsZO.cjs.map
18
+ //# sourceMappingURL=auth-DmgTH0uY.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-5HCvCsZO.cjs","names":["KeboolaHttpHeader","HttpHeader"],"sources":["../src/clients/auth.ts"],"sourcesContent":["import { HttpHeader } from '../fetchClient';\nimport { KeboolaHttpHeader } from '../internal';\n\nexport type AuthStrategy =\n | {\n type: 'sapi-token';\n token: string;\n }\n | {\n type: 'bearer';\n token: string;\n projectId: number;\n };\n\nexport const createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'sapi-token') return { [KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };\n\n // `auth.token` is the bare token; the `Bearer ` wire prefix is added here (mirroring the\n // management client). In the browser bearer flow the bearer auth middleware stamps the\n // Authorization header on every request, so this value only matters for middleware-less\n // clients (e.g. kai-agent's storage token verification).\n return {\n [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}`,\n [KeboolaHttpHeader.PROJECT_ID]: auth.projectId.toString(),\n };\n};\n"],"mappings":";;AAcA,MAAa,qBAAqB,SAA+C;CAC/E,IAAI,KAAK,SAAS,cAAc,OAAO,GAAGA,0BAAAA,kBAAkB,oBAAoB,KAAK,MAAM;CAM3F,OAAO;GACJC,0BAAAA,WAAW,gBAAgB,UAAU,KAAK;GAC1CD,0BAAAA,kBAAkB,aAAa,KAAK,UAAU,SAAS;CAC1D;AACF"}
1
+ {"version":3,"file":"auth-DmgTH0uY.cjs","names":["KeboolaHttpHeader","HttpHeader"],"sources":["../src/clients/auth.ts"],"sourcesContent":["import { HttpHeader } from '../fetchClient';\nimport { KeboolaHttpHeader } from '../internal';\n\nexport type AuthStrategy =\n | {\n type: 'sapi-token';\n token: string;\n }\n | {\n type: 'bearer';\n token: string;\n projectId: number;\n };\n\nexport const createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'sapi-token') return { [KeboolaHttpHeader.STORAGE_API_TOKEN]: auth.token };\n\n // `auth.token` is the bare token; the `Bearer ` wire prefix is added here (mirroring the\n // management client). In the browser bearer flow the bearer auth middleware stamps the\n // Authorization header on every request, so this value only matters for middleware-less\n // clients (e.g. kai-agent's storage token verification).\n return {\n [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}`,\n [KeboolaHttpHeader.PROJECT_ID]: auth.projectId.toString(),\n };\n};\n"],"mappings":";;AAcA,MAAa,qBAAqB,SAA+C;CAC/E,IAAI,KAAK,SAAS,cAAc,OAAO,GAAGA,0BAAAA,kBAAkB,oBAAoB,KAAK,MAAM;CAM3F,OAAO;GACJC,0BAAAA,WAAW,gBAAgB,UAAU,KAAK;GAC1CD,0BAAAA,kBAAkB,aAAa,KAAK,UAAU,SAAS;CAC1D;AACF"}
@@ -1,6 +1,6 @@
1
- import { t as createOpenapiFetchClient } from "./index-CLPrlyIz.cjs";
2
- import { n as ClientInitOptions } from "./types-C8XiTXxi.cjs";
3
- import { A as CreateDeviceAuthorizationBody, F as paths, M as GetDeviceAuthorizationTokenBody, O as ApproveDeviceAuthorizationBody, P as components, _ as ExchangePatBody, b as RevokePatPath, c as RevokeSessionPath, d as InitiateSamlBody, h as CreatePatBody, i as SudoBody, l as AssertSamlBody, p as GetPkceTokenBody, r as RevokeTokenBody, x as DisableTotpPath } from "./types-2mHlPakp.cjs";
1
+ import { t as createOpenapiFetchClient } from "./index-B-frWtGW.cjs";
2
+ import { n as ClientInitOptions } from "./types-BdKtW2Ml.cjs";
3
+ import { D as RevokePatPath, F as ApproveDeviceAuthorizationBody, H as paths, L as CreateDeviceAuthorizationBody, O as DisableTotpPath, S as CreatePatBody, V as components, a as RemoveWebauthnInput, b as GetPkceTokenBody, d as SudoBody, g as AssertSamlBody, h as RevokeSessionPath, n as RegisterWebauthnInput, r as RegisterWebauthnOptionsResult, u as RevokeTokenBody, v as InitiateSamlBody, w as ExchangePatBody, z as GetDeviceAuthorizationTokenBody } from "./types-DnOGCb-p.cjs";
4
4
  import * as z$1 from "zod";
5
5
  //#region src/clients/auth/login/schemas.d.ts
6
6
  declare const loginInputSchema: z$1.ZodObject<{
@@ -34,12 +34,27 @@ declare const loginSuccessSchema: z$1.ZodObject<{
34
34
  name: z$1.ZodString;
35
35
  }, z$1.core.$strip>;
36
36
  }, z$1.core.$strip>;
37
+ /**
38
+ * MFA-challenge shape. `mfaRequired` is always true here — it is the discriminant.
39
+ *
40
+ * - `mfaType` is the account's single active factor, `allowedMethods` everything that may satisfy
41
+ * it. Both stay `string`: a stack that grows a method must not fail to parse, so callers branch
42
+ * and handle the unknown case themselves.
43
+ * - `webauthn` carries the serialized `PublicKeyCredentialRequestOptionsJSON` for a passkey
44
+ * challenge, inlined so the ceremony costs no extra round-trip. The spec declares it
45
+ * required-and-nullable while the serializer omits the key outright for TOTP, so it must tolerate
46
+ * present, `null` and absent alike.
47
+ * - `unknown`, not a record: this sits inside the union `login` hard-parses, so a shape nobody
48
+ * expected here would fail *both* branches and lock every MFA user out of sign-in — not merely
49
+ * out of the passkey path. Whoever runs the ceremony validates it properly instead.
50
+ */
37
51
  declare const mfaChallengeSchema: z$1.ZodObject<{
38
52
  mfaRequired: z$1.ZodLiteral<true>;
39
53
  mfaType: z$1.ZodString;
40
54
  mfaToken: z$1.ZodString;
41
55
  expiresIn: z$1.ZodNumber;
42
56
  allowedMethods: z$1.ZodArray<z$1.ZodString>;
57
+ webauthn: z$1.ZodOptional<z$1.ZodUnknown>;
43
58
  }, z$1.core.$strip>;
44
59
  declare const loginResultSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
45
60
  mfaRequired: z$1.ZodDefault<z$1.ZodLiteral<false>>;
@@ -59,12 +74,29 @@ declare const loginResultSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
59
74
  mfaToken: z$1.ZodString;
60
75
  expiresIn: z$1.ZodNumber;
61
76
  allowedMethods: z$1.ZodArray<z$1.ZodString>;
77
+ webauthn: z$1.ZodOptional<z$1.ZodUnknown>;
62
78
  }, z$1.core.$strip>]>;
63
79
  type LoginUser = z$1.infer<typeof userSchema>;
64
80
  type LoginSuccess = z$1.infer<typeof loginSuccessSchema>;
81
+ type MfaChallenge = z$1.infer<typeof mfaChallengeSchema>;
65
82
  type LoginResult = z$1.infer<typeof loginResultSchema>;
66
83
  //#endregion
67
84
  //#region src/clients/auth/mfa/schemas.d.ts
85
+ /**
86
+ * The methods `POST /v1/auth/mfa` accepts, and the vocabulary a login challenge reports in
87
+ * `mfaType` / `allowedMethods`.
88
+ *
89
+ * - `totp` and `recoveryCode` are verified by a typed code; `webauthn` by an assertion.
90
+ * - `satisfies` binds the values to the generated spec, so a regenerated schema that renames or
91
+ * drops a method fails the build here rather than at runtime mid-sign-in.
92
+ * - A challenge may still name a method absent from here, so the wire fields stay `string`.
93
+ */
94
+ declare const MFA_METHOD: {
95
+ readonly totp: 'totp';
96
+ readonly webauthn: 'webauthn';
97
+ readonly recoveryCode: 'recovery_code';
98
+ };
99
+ type MfaMethod = (typeof MFA_METHOD)[keyof typeof MFA_METHOD];
68
100
  declare const mfaCodeInputSchema: z$1.ZodObject<{
69
101
  mfaToken: z$1.ZodString;
70
102
  type: z$1.ZodEnum<{
@@ -127,6 +159,7 @@ declare const createAuthClient: ({ baseUrl, middlewares }: AuthClientInitOptions
127
159
  mfaToken: string;
128
160
  expiresIn: number;
129
161
  allowedMethods: string[];
162
+ webauthn?: unknown;
130
163
  }>;
131
164
  withOidc: (input: OidcInput, signal?: AbortSignal) => Promise<{
132
165
  mfaRequired: false;
@@ -146,6 +179,7 @@ declare const createAuthClient: ({ baseUrl, middlewares }: AuthClientInitOptions
146
179
  mfaToken: string;
147
180
  expiresIn: number;
148
181
  allowedMethods: string[];
182
+ webauthn?: unknown;
149
183
  }>;
150
184
  methods: (signal?: AbortSignal) => Promise<{
151
185
  methods: components['schemas']['LoginMethod'][];
@@ -314,7 +348,20 @@ declare const createAuthClient: ({ baseUrl, middlewares }: AuthClientInitOptions
314
348
  }>;
315
349
  revoke: (body: RevokeTokenBody, signal?: AbortSignal) => Promise<void>;
316
350
  };
351
+ webauthn: {
352
+ getAll: (signal?: AbortSignal) => Promise<{
353
+ webauthnCredentials?: components['schemas']['WebAuthnCredentialItemResponse'][];
354
+ }>;
355
+ registerOptions: (signal?: AbortSignal) => Promise<RegisterWebauthnOptionsResult>;
356
+ register: ({ credential, deviceName, revokeOtherSessions }: RegisterWebauthnInput, signal?: AbortSignal) => Promise<{
357
+ id: number;
358
+ deviceName: string;
359
+ created: string;
360
+ recoveryCodes?: string[] | null;
361
+ }>;
362
+ remove: ({ id, ...query }: RemoveWebauthnInput, signal?: AbortSignal) => Promise<void>;
363
+ };
317
364
  };
318
365
  //#endregion
319
- export { loginSuccessSchema as C, loginResultSchema as S, oidcInputSchema as T, LoginResult as _, ResetInput as a, OidcInput as b, resetInputSchema as c, MfaWebauthnInput as d, TotpVerifyInput as f, LoginInput as g, totpVerifyInputSchema as h, ChangePasswordInput as i, resetRequestInputSchema as l, mfaWebauthnInputSchema as m, AuthOpenApiFetchClient as n, ResetRequestInput as o, mfaCodeInputSchema as p, createAuthClient as r, changeInputSchema as s, AuthClientInitOptions as t, MfaCodeInput as u, LoginSuccess as v, mfaChallengeSchema as w, loginInputSchema as x, LoginUser as y };
320
- //# sourceMappingURL=authClient-Bgj2Ay7h.d.cts.map
366
+ export { OidcInput as C, mfaChallengeSchema as D, loginSuccessSchema as E, oidcInputSchema as O, MfaChallenge as S, loginResultSchema as T, totpVerifyInputSchema as _, ResetInput as a, LoginSuccess as b, resetInputSchema as c, MfaCodeInput as d, MfaMethod as f, mfaWebauthnInputSchema as g, mfaCodeInputSchema as h, ChangePasswordInput as i, resetRequestInputSchema as l, TotpVerifyInput as m, AuthOpenApiFetchClient as n, ResetRequestInput as o, MfaWebauthnInput as p, createAuthClient as r, changeInputSchema as s, AuthClientInitOptions as t, MFA_METHOD as u, LoginInput as v, loginInputSchema as w, LoginUser as x, LoginResult as y };
367
+ //# sourceMappingURL=authClient-BL6h78Q1.d.cts.map