@keboola/api-client 47.0.0 → 48.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 (277) hide show
  1. package/AGENTS.md +9 -3
  2. package/API-SURFACE.md +4 -2
  3. package/CHANGELOG.md +31 -0
  4. package/README.md +1 -1
  5. package/dist/{adminRoles-DGM8SuuF.d.cts → adminRoles-BgpaBE7h.d.cts} +2 -2
  6. package/dist/{adminRoles-CvdIUkiC.d.ts → adminRoles-DsoGQipO.d.ts} +2 -2
  7. package/dist/ai/index.cjs +0 -5
  8. package/dist/ai/index.cjs.map +1 -1
  9. package/dist/ai/index.d.cts +2 -3
  10. package/dist/ai/index.d.ts +2 -3
  11. package/dist/ai/index.js +0 -5
  12. package/dist/ai/index.js.map +1 -1
  13. package/dist/ai/types.d.cts +2 -2
  14. package/dist/ai/types.d.ts +2 -2
  15. package/dist/{appLogs-xW0-JQXg.d.ts → appLogs-DpcqeOe5.d.ts} +2 -2
  16. package/dist/{appLogs-Cxhm2Rkn.d.cts → appLogs-SjrflOHk.d.cts} +2 -2
  17. package/dist/apps/index.cjs +2 -2
  18. package/dist/apps/index.cjs.map +1 -1
  19. package/dist/apps/index.d.cts +3 -3
  20. package/dist/apps/index.d.ts +3 -3
  21. package/dist/apps/index.js +2 -2
  22. package/dist/apps/index.js.map +1 -1
  23. package/dist/apps/types.d.cts +2 -2
  24. package/dist/apps/types.d.ts +2 -2
  25. package/dist/assets/index.d.cts +1 -1
  26. package/dist/assets/index.d.ts +1 -1
  27. package/dist/auth/index.d.cts +1 -1
  28. package/dist/auth/index.d.ts +1 -1
  29. package/dist/auth/types.d.cts +1 -1
  30. package/dist/auth/types.d.ts +1 -1
  31. package/dist/{authClient-Bso5UaXS.d.ts → authClient-BYIGzL_u.d.ts} +4 -4
  32. package/dist/{authClient-aud2dUZd.d.cts → authClient-D06srBQE.d.cts} +4 -4
  33. package/dist/billing/index.d.cts +1 -1
  34. package/dist/billing/index.d.ts +1 -1
  35. package/dist/billing/types.d.cts +1 -1
  36. package/dist/billing/types.d.ts +1 -1
  37. package/dist/chat/index.d.cts +2 -2
  38. package/dist/chat/index.d.ts +2 -2
  39. package/dist/chat/types.d.cts +1 -1
  40. package/dist/chat/types.d.ts +1 -1
  41. package/dist/componentsMcp/index.d.cts +1 -1
  42. package/dist/componentsMcp/index.d.ts +1 -1
  43. package/dist/componentsMcp/types.d.cts +1 -1
  44. package/dist/componentsMcp/types.d.ts +1 -1
  45. package/dist/{configurations-D_Rbs0Wl.cjs → configurations-B2O8AAy0.cjs} +2 -2
  46. package/dist/{configurations-D_Rbs0Wl.cjs.map → configurations-B2O8AAy0.cjs.map} +1 -1
  47. package/dist/{configurations-Chg_JwJ1.js → configurations-CL0ouUMa.js} +3 -3
  48. package/dist/configurations-CL0ouUMa.js.map +1 -0
  49. package/dist/{configurations-BTRHVSRq.cjs → configurations-D9J3jh3g.cjs} +3 -3
  50. package/dist/configurations-D9J3jh3g.cjs.map +1 -0
  51. package/dist/{configurations-DcpUlC8I.js → configurations-DKINmjA3.js} +2 -2
  52. package/dist/{configurations-DcpUlC8I.js.map → configurations-DKINmjA3.js.map} +1 -1
  53. package/dist/constants/index.d.cts +2 -2
  54. package/dist/constants/index.d.ts +2 -2
  55. package/dist/dataScience/index.d.cts +2 -2
  56. package/dist/dataScience/index.d.ts +2 -2
  57. package/dist/dataScience/types.d.cts +2 -2
  58. package/dist/dataScience/types.d.ts +2 -2
  59. package/dist/developerPortal/index.d.cts +2 -2
  60. package/dist/developerPortal/index.d.ts +2 -2
  61. package/dist/developerPortal/types.d.cts +1 -1
  62. package/dist/developerPortal/types.d.ts +1 -1
  63. package/dist/domain/permissions/index.cjs +1 -1
  64. package/dist/domain/permissions/index.d.cts +2 -2
  65. package/dist/domain/permissions/index.d.ts +2 -2
  66. package/dist/domain/permissions/index.js +1 -1
  67. package/dist/editor/index.d.cts +2 -2
  68. package/dist/editor/index.d.ts +2 -2
  69. package/dist/editor/types.d.cts +1 -1
  70. package/dist/editor/types.d.ts +1 -1
  71. package/dist/encryption/index.d.cts +1 -1
  72. package/dist/encryption/index.d.ts +1 -1
  73. package/dist/encryption/types.d.cts +1 -1
  74. package/dist/encryption/types.d.ts +1 -1
  75. package/dist/import/index.d.cts +3 -3
  76. package/dist/import/index.d.ts +3 -3
  77. package/dist/{index-CAWy1qjR.d.ts → index-B3QTeqfL.d.ts} +300 -140
  78. package/dist/{index-Ds0tViQS.d.cts → index-BCjU-g9t.d.cts} +3 -3
  79. package/dist/{index-BGEuaZqI.d.cts → index-BHiJu8LF.d.cts} +9 -4
  80. package/dist/{index-BeOd45XE.d.ts → index-BIldED4N.d.ts} +4 -4
  81. package/dist/{index-B_MzjCeE.d.ts → index-BLvmyehw.d.ts} +3 -3
  82. package/dist/{index-DloFSSj3.d.ts → index-BTrxCk90.d.ts} +3 -3
  83. package/dist/{index-x_kS_5x_.d.cts → index-ByLCYBaw.d.cts} +4 -4
  84. package/dist/{index-CkwZ5x7E.d.cts → index-C40Fbj-6.d.cts} +300 -140
  85. package/dist/{index-Dp-a2DdI.d.ts → index-CIqWOEWD.d.ts} +4 -4
  86. package/dist/{index-DTysQ_yn.d.cts → index-Cc5wSIRJ.d.cts} +5 -5
  87. package/dist/{index-XaPb6unB.d.cts → index-ChDl6ig5.d.cts} +256 -33
  88. package/dist/{index-URgNfi5L.d.cts → index-Co2Cd-nw.d.cts} +3 -3
  89. package/dist/{index-DUB0BwQv.d.cts → index-CpGmmJbt.d.cts} +4 -4
  90. package/dist/{index-ZYvgoqgW.d.cts → index-CpUYVB-d.d.cts} +4 -4
  91. package/dist/{index-BnPmXDVP.d.ts → index-CzHrIfZS.d.ts} +2 -2
  92. package/dist/{index-XG5cO-4H.d.cts → index-D91RxB_S.d.cts} +18 -13
  93. package/dist/{index-_Va9wynk.d.ts → index-DlZiWfQb.d.ts} +9 -4
  94. package/dist/{index-HSkjm3QW.d.ts → index-DzLXtE4Q.d.ts} +5 -5
  95. package/dist/{index-8ZjY7YD8.d.cts → index-VlzlOBkc.d.cts} +2 -2
  96. package/dist/{index-BIP0PoMW.d.ts → index-avzO5sLa.d.ts} +18 -13
  97. package/dist/{index-C2OAOK0s.d.ts → index-m7fX76x3.d.ts} +4 -4
  98. package/dist/{index-r6YSe8B-.d.ts → index-sDHBkJhU.d.ts} +256 -33
  99. package/dist/index.cjs +451 -256
  100. package/dist/index.cjs.map +1 -1
  101. package/dist/index.d.cts +6 -6
  102. package/dist/index.d.ts +6 -6
  103. package/dist/index.js +451 -257
  104. package/dist/index.js.map +1 -1
  105. package/dist/kaiAgent/index.cjs +1 -1
  106. package/dist/kaiAgent/index.d.cts +3 -3
  107. package/dist/kaiAgent/index.d.ts +3 -3
  108. package/dist/kaiAgent/index.js +1 -1
  109. package/dist/kaiAgent/types.d.cts +1 -1
  110. package/dist/kaiAgent/types.d.ts +1 -1
  111. package/dist/{kaiAgent-CBPbMwBh.js → kaiAgent-CYvrS8oZ.js} +12 -3
  112. package/dist/kaiAgent-CYvrS8oZ.js.map +1 -0
  113. package/dist/{kaiAgent-BmfUG8bB.cjs → kaiAgent-N2qbUFZm.cjs} +12 -3
  114. package/dist/kaiAgent-N2qbUFZm.cjs.map +1 -0
  115. package/dist/management/index.cjs +1 -1
  116. package/dist/management/index.d.cts +1 -1
  117. package/dist/management/index.d.ts +1 -1
  118. package/dist/management/index.js +1 -1
  119. package/dist/management/types.d.cts +2 -2
  120. package/dist/management/types.d.ts +2 -2
  121. package/dist/{management-BUGPJ1Bu.cjs → management-CXHnxVaZ.cjs} +12 -5
  122. package/dist/management-CXHnxVaZ.cjs.map +1 -0
  123. package/dist/{management-DAg2obYt.js → management-NYAD6ej4.js} +12 -5
  124. package/dist/management-NYAD6ej4.js.map +1 -0
  125. package/dist/metastore/index.d.cts +1 -1
  126. package/dist/metastore/index.d.ts +1 -1
  127. package/dist/metastore/types.d.cts +1 -1
  128. package/dist/metastore/types.d.ts +1 -1
  129. package/dist/microsoftGraph/index.d.cts +2 -2
  130. package/dist/microsoftGraph/index.d.ts +2 -2
  131. package/dist/microsoftGraph/types.d.cts +1 -1
  132. package/dist/microsoftGraph/types.d.ts +1 -1
  133. package/dist/{middleware-DU_5pFDW.cjs → middleware-CEP6uu_D.cjs} +4 -4
  134. package/dist/middleware-CEP6uu_D.cjs.map +1 -0
  135. package/dist/{middleware-CWaLMlG1.js → middleware-GOfx8Apu.js} +4 -4
  136. package/dist/middleware-GOfx8Apu.js.map +1 -0
  137. package/dist/notifications/index.d.cts +2 -2
  138. package/dist/notifications/index.d.ts +2 -2
  139. package/dist/notifications/types.d.cts +1 -1
  140. package/dist/notifications/types.d.ts +1 -1
  141. package/dist/oauth/index.d.cts +2 -2
  142. package/dist/oauth/index.d.ts +2 -2
  143. package/dist/oauth/types.d.cts +1 -1
  144. package/dist/oauth/types.d.ts +1 -1
  145. package/dist/omnisearch/index.d.cts +2 -2
  146. package/dist/omnisearch/index.d.ts +2 -2
  147. package/dist/omnisearch/types.d.cts +1 -1
  148. package/dist/omnisearch/types.d.ts +1 -1
  149. package/dist/{project-dxCJbFay.d.cts → project-Dzu85cqr.d.cts} +3 -3
  150. package/dist/{project-BMmfPhXg.d.ts → project-nbv9yjpl.d.ts} +3 -3
  151. package/dist/queryService/index.d.cts +1 -1
  152. package/dist/queryService/index.d.ts +1 -1
  153. package/dist/queryService/types.d.cts +1 -1
  154. package/dist/queryService/types.d.ts +1 -1
  155. package/dist/queue/index.d.cts +3 -3
  156. package/dist/queue/index.d.ts +3 -3
  157. package/dist/queue/types.d.cts +1 -1
  158. package/dist/queue/types.d.ts +1 -1
  159. package/dist/scheduler/index.d.cts +2 -2
  160. package/dist/scheduler/index.d.ts +2 -2
  161. package/dist/scheduler/types.d.cts +1 -1
  162. package/dist/scheduler/types.d.ts +1 -1
  163. package/dist/sdk/configurations/index.cjs +1 -1
  164. package/dist/sdk/configurations/index.d.cts +2 -2
  165. package/dist/sdk/configurations/index.d.ts +2 -2
  166. package/dist/sdk/configurations/index.js +1 -1
  167. package/dist/sdk/developerPortal/index.cjs +1 -1
  168. package/dist/sdk/developerPortal/index.d.cts +3 -3
  169. package/dist/sdk/developerPortal/index.d.ts +3 -3
  170. package/dist/sdk/developerPortal/index.js +1 -1
  171. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  172. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  173. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  174. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  175. package/dist/sdk/queryService/index.d.cts +1 -1
  176. package/dist/sdk/queryService/index.d.ts +1 -1
  177. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  178. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  179. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  180. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  181. package/dist/sdk/tag/index.d.cts +2 -2
  182. package/dist/sdk/tag/index.d.ts +2 -2
  183. package/dist/sdk/tag/types.d.cts +1 -1
  184. package/dist/sdk/tag/types.d.ts +1 -1
  185. package/dist/sdk/vault/index.d.cts +1 -1
  186. package/dist/sdk/vault/index.d.ts +1 -1
  187. package/dist/status/index.d.cts +1 -1
  188. package/dist/status/index.d.ts +1 -1
  189. package/dist/storage/index.cjs +1 -1
  190. package/dist/storage/index.d.cts +2 -2
  191. package/dist/storage/index.d.ts +2 -2
  192. package/dist/storage/index.js +1 -1
  193. package/dist/storage/types.d.cts +6 -6
  194. package/dist/storage/types.d.ts +6 -6
  195. package/dist/{storage-DyR7hDdv.js → storage-BR-Kgi-6.js} +7 -2
  196. package/dist/storage-BR-Kgi-6.js.map +1 -0
  197. package/dist/{storage-yovv11k6.cjs → storage-CVBXivpB.cjs} +7 -2
  198. package/dist/storage-CVBXivpB.cjs.map +1 -0
  199. package/dist/stream/index.d.cts +2 -2
  200. package/dist/stream/index.d.ts +2 -2
  201. package/dist/stream/types.d.cts +1 -1
  202. package/dist/stream/types.d.ts +1 -1
  203. package/dist/syncActions/index.d.cts +2 -2
  204. package/dist/syncActions/index.d.ts +2 -2
  205. package/dist/syncActions/types.d.cts +1 -1
  206. package/dist/syncActions/types.d.ts +1 -1
  207. package/dist/telemetry/index.d.cts +2 -2
  208. package/dist/telemetry/index.d.ts +2 -2
  209. package/dist/telemetry/types.d.cts +1 -1
  210. package/dist/telemetry/types.d.ts +1 -1
  211. package/dist/{types-L50Y6ATu.d.cts → types-0ZAMQhva.d.cts} +3 -3
  212. package/dist/{types-BoH7NFCh.d.ts → types-1LENlL5h.d.ts} +3 -3
  213. package/dist/{types-kbyIaA7p.d.cts → types-6KabdIyO.d.cts} +3 -3
  214. package/dist/{types-Bx0TSdwF.d.cts → types-9d8ihjZh.d.cts} +2 -2
  215. package/dist/{types-COQOzyac.d.ts → types-B7L6uSYb.d.ts} +7 -3
  216. package/dist/{types-DWJVbskE.d.ts → types-BTy_FFSu.d.ts} +2 -2
  217. package/dist/{types-4HmtNuJf.d.ts → types-BWYtQkHu.d.ts} +2 -2
  218. package/dist/{types-BIDKSQdc.d.ts → types-BXHZQvGy.d.ts} +169 -31
  219. package/dist/{types-B2ZLjagf.d.ts → types-BYFU_6Iz.d.ts} +2 -2
  220. package/dist/{types-BNPvFLgC.d.ts → types-BaqdM92a.d.ts} +3 -4
  221. package/dist/{types-BKIcow3B.d.cts → types-BbwrMl0Q.d.cts} +2 -2
  222. package/dist/{types-Dg8a7m7f.d.ts → types-Bt8CEZ6K.d.ts} +2 -2
  223. package/dist/{types-4bSZLxq3.d.cts → types-BtS3DhGu.d.cts} +169 -31
  224. package/dist/{types-C2j6Jsie.d.ts → types-C-GSYDTN.d.ts} +3 -3
  225. package/dist/{types-BwsE-pFo.d.cts → types-C4eQ-Zcx.d.cts} +2 -2
  226. package/dist/{types-ij6BpTzR.d.ts → types-C9VaQSqV.d.ts} +2 -2
  227. package/dist/{types-BZBU3mwz.d.cts → types-CNkQuWnO.d.cts} +3 -3
  228. package/dist/{types-TRJiPqJr.d.cts → types-CXv_e6xC.d.cts} +2 -2
  229. package/dist/{types-CMKIdreQ.d.cts → types-C_raqbl-.d.cts} +3 -3
  230. package/dist/{types-BjEiUOL6.d.ts → types-Cc4yTEdK.d.ts} +2 -2
  231. package/dist/{types-ituiCs8g.d.ts → types-Ce5Blzhg.d.ts} +2 -2
  232. package/dist/{types-CBrNIgEy.d.ts → types-CfZLdfAL.d.ts} +3 -3
  233. package/dist/{types-4CjbcUdD.d.cts → types-Cfc-fYbq.d.cts} +2 -2
  234. package/dist/{types-DHlXKVEM.d.ts → types-Cn8I0vcr.d.ts} +3 -3
  235. package/dist/{types-C7t_6FLh.d.ts → types-CpWE6Yg2.d.ts} +2 -2
  236. package/dist/{types-DBJ8c3hN.d.cts → types-CrJIILXf.d.cts} +2 -2
  237. package/dist/{types-B_3zoXA1.d.cts → types-CwGbiMF-.d.cts} +3 -3
  238. package/dist/{types-BiTn_JVW.d.cts → types-CwQ8_n8q.d.ts} +94 -13
  239. package/dist/{types-Cw9UISvM.d.ts → types-D3H3EAre.d.ts} +2 -2
  240. package/dist/{types-BG0oWq8u.d.cts → types-D3mj56iq.d.cts} +2 -2
  241. package/dist/{types-D51g4h9w.d.cts → types-D8d5tyGi.d.cts} +2 -2
  242. package/dist/{types-CZCPdPqv.d.cts → types-DMpiG2q4.d.cts} +3 -3
  243. package/dist/{types-DPDq8C4q.d.cts → types-DSBrhK_K.d.cts} +2 -2
  244. package/dist/{types--qQPfxWt.d.cts → types-DXF6faow.d.cts} +2 -2
  245. package/dist/{types-BXgINefw.d.ts → types-DfJP6Dti.d.ts} +2 -2
  246. package/dist/{types-C3IQu1gV.d.ts → types-DgOLSRiy.d.ts} +3 -3
  247. package/dist/{types-BdF6NDvo.d.cts → types-DlgqPU_4.d.cts} +2 -2
  248. package/dist/{types-C2JMisvL.d.ts → types-Dn1G-qv4.d.cts} +94 -13
  249. package/dist/{types-B6ozaDkl.d.cts → types-EkyQ0_10.d.cts} +2 -2
  250. package/dist/{types-B_1plf0y.d.cts → types-EmIcG-8K.d.cts} +2 -2
  251. package/dist/{types-D8w9lyb8.d.cts → types-NSxpnYW5.d.cts} +7 -3
  252. package/dist/{types-CEw2IzWk.d.ts → types-QPW-7dPm.d.ts} +2 -2
  253. package/dist/{types-BcQ3j8xK.d.ts → types-UySfduQo.d.ts} +2 -2
  254. package/dist/{types-7DBpH7Rf.d.ts → types-VehpPOQX.d.ts} +2 -2
  255. package/dist/{types-BiBBKcin.d.ts → types-Vu09EUZs.d.ts} +3 -3
  256. package/dist/{types-DgIzXY-Y.d.ts → types-c4h2YDMC.d.ts} +2 -2
  257. package/dist/{types-OkQWmonU.d.cts → types-sOM2_KPc.d.cts} +2 -2
  258. package/dist/{types-BBbzWczQ.d.cts → types-wNuJUhco.d.cts} +3 -4
  259. package/dist/vault/index.d.cts +1 -1
  260. package/dist/vault/index.d.ts +1 -1
  261. package/dist/vault/types.d.cts +1 -1
  262. package/dist/vault/types.d.ts +1 -1
  263. package/package.json +1 -1
  264. package/surface/ai.md +0 -1
  265. package/surface/kaiAgent.md +5 -4
  266. package/surface/management.md +1 -0
  267. package/surface/storage.md +3 -2
  268. package/dist/configurations-BTRHVSRq.cjs.map +0 -1
  269. package/dist/configurations-Chg_JwJ1.js.map +0 -1
  270. package/dist/kaiAgent-BmfUG8bB.cjs.map +0 -1
  271. package/dist/kaiAgent-CBPbMwBh.js.map +0 -1
  272. package/dist/management-BUGPJ1Bu.cjs.map +0 -1
  273. package/dist/management-DAg2obYt.js.map +0 -1
  274. package/dist/middleware-CWaLMlG1.js.map +0 -1
  275. package/dist/middleware-DU_5pFDW.cjs.map +0 -1
  276. package/dist/storage-DyR7hDdv.js.map +0 -1
  277. package/dist/storage-yovv11k6.cjs.map +0 -1
package/AGENTS.md CHANGED
@@ -82,9 +82,12 @@ Two flow-specific factories back the SDK:
82
82
  `session` is **flow-specific** lifecycle machinery:
83
83
 
84
84
  - bearer: `stack.select(baseUrl)` → `auth.authenticate(credential)` → `project.select(projectId)`,
85
- plus `auth.signOut()` / `auth.replace(credential)` / `auth.isAuthenticated()` / `auth.isAuthenticatedAsync()` / `auth.rotate(baseUrl)` / `auth.getHeaders(projectId?)` / `auth.getHeadersAsync(projectId?)`, `stack.close` and
85
+ plus `auth.signOut({ baseUrl?, retain? }?)` / `auth.replace(credential)` / `auth.isAuthenticated()` / `auth.isAuthenticatedAsync()` / `auth.rotate(baseUrl)` / `auth.getHeaders(projectId?)` / `auth.getHeadersAsync(projectId?)`, `auth.restoreRetained(baseUrl)`, `stack.close` and
86
86
  the two `deactivate`s, and `getState()` / `subscribe(cb)` over the stack-and-project table. Every
87
- verb is synchronous — nothing awaits a build; a namespace throws `NotReady` until its fetch lands.
87
+ verb changes the table synchronously — nothing awaits a build; a namespace throws `NotReady` until
88
+ its fetch lands. `stack.select`, `project.select` and `auth.signOut` also return a promise that
89
+ resolves once the change is stored: await it before leaving the document, or the reload boots
90
+ from the scope or sign-in it was meant to replace.
88
91
  The one fetch each entry does own is readable both ways: `stack.getContext(baseUrl?)` /
89
92
  `project.getContext(entryId?)` answer from cache (`null` until it lands), and the
90
93
  `getContextAsync` sibling of each awaits it. `retryContext` refetches after a failure. The
@@ -488,7 +491,10 @@ api.sdk.tag.* api.sdk.storage.*
488
491
 
489
492
  `api.apps` is the data-apps `/v2` App Deployments surface (apps + deployments); `api.dataScience` is the same service's `/v1` surface, which still owns workspaces (`/sandboxes`, `/runtimes`) and the data-app endpoints the UI has not moved off yet.
490
493
 
491
- **`hasService('data-science')` is not the availability check for `api.apps`, and neither is `api.apps.healthCheck()`.** Both clients resolve off that one service id, so `api.apps` is live on every stack that advertises it — while `/v2` itself is implemented only where sandboxes-service serves it (canary at the time of writing). Nothing cheap discriminates: `apps` is absent from the service index on every stack including canary; the `/v2/*` routes are scaffolded everywhere (unauthenticated they 401, so the route exists); and `healthCheck()` answers 200 everywhere because `GET /v2/` falls through to the same root handler as `GET /`, down to an `apiDocs` pointing at the v1 swagger. The one thing that differs is the implementation: off canary, a real call answers `501 {"error":"This endpoint is not implemented yet."}` — measured on three production stacks (AJDA-3140). So gate a data-apps feature on a real call's 501, or on a stack feature flag once one exists.
494
+ **`api.apps` needs no availability check.** Every stack's sandboxes-service serves `/v2` from the same image as `/v1`, and `api.apps` resolves off the `data-science` service id like `api.dataScience`. When probing a stack by hand, only an authenticated call answers:
495
+
496
+ - `healthCheck()`, `GET /v2/docs/swagger.yaml` and unauthenticated calls answer the same everywhere.
497
+ - A `401` from an authenticated call means a bad or expired token, not a missing API.
492
498
 
493
499
  Clients backing optional stack services (vault, queue, …) throw `ServiceUnavailableError` if absent from the current stack — check `api.context.stack.hasService(...)` before assuming a namespace exists.
494
500
 
package/API-SURFACE.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Every namespace and method reachable from a ready `KeboolaApi` — the `api` half of a keboola client (`createKeboola(...).api` / `createLegacyKeboola(...).api`, or `useApiClient()`). Generated from the TypeScript type checker — see `scripts/gen-surface.mjs`.
6
6
 
7
- 26 top-level namespaces, 725 methods. This index lists method **names** only — full signatures live per namespace under [`surface/`](./surface). Open `surface/<namespace>.md` for the one you need.
7
+ 26 top-level namespaces, 727 methods. This index lists method **names** only — full signatures live per namespace under [`surface/`](./surface). Open `surface/<namespace>.md` for the one you need.
8
8
 
9
9
  ## [`api.ai`](./surface/ai.md)
10
10
 
@@ -13,7 +13,6 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
13
13
  - `describeConfigurationVersion`
14
14
  - `docsQuestion`
15
15
  - `explainError`
16
- - `feedback`
17
16
  - `getComponentDetail`
18
17
  - `healthCheck`
19
18
  - `suggestComponent`
@@ -229,6 +228,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
229
228
  - `updateProjectToolPolicy`
230
229
  - `updateSpendCaps`
231
230
  - `updateUserAgentSettings`
231
+ - `updateUserMemory`
232
232
 
233
233
  ## [`api.management`](./surface/management.md)
234
234
 
@@ -327,6 +327,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
327
327
  - `payAsYouGo.updateStripeCustomer`
328
328
  - `payAsYouGo.updateTopUpSetting`
329
329
  - `programmaticProjects.confirm`
330
+ - `programmaticProjects.getClaim`
330
331
  - `projects.addProjectFeature`
331
332
  - `projects.addProjectTemplateFeature`
332
333
  - `projects.addProjectUser`
@@ -564,6 +565,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
564
565
  - `bucketSharing.shareBucketToUsersAsync`
565
566
  - `bucketSharing.shareBucketToUsersPoller`
566
567
  - `bucketSharing.sharedBuckets`
568
+ - `bucketSharing.sharingTargets`
567
569
  - `bucketSharing.unshareBucketAsync`
568
570
  - `bucketSharing.unshareBucketPoller`
569
571
  - `buckets.createBucket`
package/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # @keboola/api-client
2
2
 
3
+ ## 48.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - - A `StorageAdapter` may answer with a promise, and may offer `withLock` for a critical section shared across documents. **Breaking:** `createPersistor` is `read` / `write` / `modify` / `remove`, plus `transaction(task)`, which hands `task` the same four verbs under the adapter's lock: every write resolves once it has landed and rejects when it could not, writes run in the order they were issued, and `read` waits for the ones in flight. `hydrate`, `persist`, `update`, `clear`, `flush` and `hasPersistedValue` are gone.
8
+ - **Breaking:** `session.auth.signOut` resolves once the sign-out is stored — await it before leaving the document.
9
+ - **Breaking:** `session.auth.signOut` takes one options object, `{ baseUrl?, retain? }`. With `retain`, the stack signs out but keeps its grant; `session.auth.restoreRetained(baseUrl)` signs it back in. `Stack.retained` holds the kept grant with its issue time.
10
+ - **Breaking:** `CredentialType` is renamed `GrantType`. `Grant` is what renews a credential and what persists; `Credential` is the grant with its access token.
11
+
12
+ - Remove `api.ai.feedback()` and the `FeedbackBody` type. The UI no longer sends 👍/👎 feedback on AI-generated content to the AI service.
13
+
14
+ ### Minor Changes
15
+
16
+ - Kai saves a personal note right away by default (AI-4061). The chat shows "Remembered: …" with Undo and Edit; Kai settings → Memory switches back to asking before each save. Company notes still go through approval and a project admin's review. `api.kaiAgent.updateUserMemory(id, content)` edits a note, and user settings carry `memorySaveMode` (`auto` | `ask`).
17
+
18
+ - `Workspace` carries `lastActivityAt`, the last observed use, and `warnAt`, when retention will warn the owner (both ISO 8601, `null` or absent otherwise).
19
+
20
+ - `api.storage.bucketSharing.sharingTargets()` lists the projects and users a bucket can be shared to (`GET /v2/storage/sharing-targets`), and `api.management.programmaticProjects.getClaim()` reads the parked agent-project claim (`GET /manage/programmatic-projects/claim`). Both come from the regenerated Storage and Manage schemas; the Storage regen also adds `lastActivityAt` and `warnAt` to workspaces (UT-5889)
21
+
22
+ ### Patch Changes
23
+
24
+ - The `apps` (`/v2` App Deployments) types are generated from `apps.keboola.com`; the types are unchanged.
25
+ - `suspendApp` sleeps the app; the next visitor wakes it.
26
+ - `getDeployments` lists live deployments; `archived: true` lists the deleted ones instead.
27
+
28
+ - Regenerate the developerPortal, queryService, kaiAgent, componentsMcp, storage and management OpenAPI types against the live services (UT-5860)
29
+
30
+ - `kaiAgent` history types: a stored tool part's `approval.approved` is optional — a call whose approval card was shown keeps only the approval `id`.
31
+
32
+ - `canWriteSemanticLayer` admits the `share` project role, matching the metastore's role mapping (`admin`, `productionManager`, `share` get project-admin). A `share` member now gets the semantic-layer write actions in kbc-ui and Kai's semantic-layer write tools.
33
+
3
34
  ## 47.0.0
4
35
 
5
36
  ### Major Changes
package/README.md CHANGED
@@ -224,7 +224,7 @@ Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the gene
224
224
  | `api.chat` | Kai Assistant (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `getVotes()`, `submitVote()`, `getUsage()`, `getSuggestions()`, `getAgentSettings()`, `getToolsList()` |
225
225
  | `api.kaiAgent` | Kai Agent (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `approveToolCall()`, `submitToolOutput()`, `getSuggestions()`, `getAgentSettings()` |
226
226
  | `api.componentsMcp` | Components MCP (OpenAPI) | `getConnectors()`, `setConnectorCredentials()` |
227
- | `api.ai` | AI Service (OpenAPI) | `describeConfiguration()`, `describeConfigurationVersion()`, `describeConfigurationMerge()`, `explainError()`, `suggestComponent()`, `feedback()` |
227
+ | `api.ai` | AI Service (OpenAPI) | `describeConfiguration()`, `describeConfigurationVersion()`, `describeConfigurationMerge()`, `explainError()`, `suggestComponent()` |
228
228
  | `api.queue` | Job Queue (OpenAPI) | `getJob()`, `searchJobs()` |
229
229
  | `api.queryService` | Query Service (OpenAPI) | `createQueryJob()`, `cancelQueryJob()`, `getQueryJob()`, `getQueryResults()`, `getQueryHistory()`, `exportResults()` |
230
230
  | `api.syncActions` | Sync Actions (OpenAPI) | `sendSyncAction()` + one namespace per component; see [`surface/syncActions.md`](./surface/syncActions.md) |
@@ -1,4 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-XaPb6unB.cjs";
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-ChDl6ig5.cjs";
2
2
  //#region src/constants/adminRoles.d.ts
3
3
  type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
4
4
  declare const AdminRole: {
@@ -13,4 +13,4 @@ declare const AdminRole: {
13
13
  type AdminRole = SpecAdminRole;
14
14
  //#endregion
15
15
  export { AdminRole as t };
16
- //# sourceMappingURL=adminRoles-DGM8SuuF.d.cts.map
16
+ //# sourceMappingURL=adminRoles-BgpaBE7h.d.cts.map
@@ -1,4 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-r6YSe8B-.js";
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-sDHBkJhU.js";
2
2
  //#region src/constants/adminRoles.d.ts
3
3
  type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
4
4
  declare const AdminRole: {
@@ -13,4 +13,4 @@ declare const AdminRole: {
13
13
  type AdminRole = SpecAdminRole;
14
14
  //#endregion
15
15
  export { AdminRole as t };
16
- //# sourceMappingURL=adminRoles-CvdIUkiC.d.ts.map
16
+ //# sourceMappingURL=adminRoles-DsoGQipO.d.ts.map
package/dist/ai/index.cjs CHANGED
@@ -28,10 +28,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
28
28
  const { data } = await client.post("/suggest/component", { body });
29
29
  return data;
30
30
  };
31
- const feedback = async (body) => {
32
- const { data } = await client.post("/feedback", { body });
33
- return data;
34
- };
35
31
  /** Answers a question using the Keboola documentation as a source. */
36
32
  const docsQuestion = async (body) => {
37
33
  const { data } = await client.post("/docs/question", { body });
@@ -53,7 +49,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
53
49
  explainError,
54
50
  describeConfiguration,
55
51
  suggestComponent,
56
- feedback,
57
52
  docsQuestion,
58
53
  getComponentDetail
59
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n FeedbackBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n const feedback = async (body: FeedbackBody) => {\n const { data } = await client.post('/feedback', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n feedback,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;;AAeA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,SAAuB;EAC7C,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,aAAa,EAAE,KAAK,CAAC;EAExD,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;;AAcA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -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-BBbzWczQ.cjs";
2
- import { n as ClientInitOptions } from "../types-OkQWmonU.cjs";
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-wNuJUhco.cjs";
2
+ import { n as ClientInitOptions } from "../types-sOM2_KPc.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<{
@@ -25,7 +25,6 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
25
25
  components: components['schemas']['SuggestedComponent'][];
26
26
  correlationId: string;
27
27
  }>;
28
- feedback: (body: FeedbackBody) => Promise<never>;
29
28
  docsQuestion: (body: DocsQuestionBody) => Promise<{
30
29
  response: string;
31
30
  metadata: {
@@ -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-BNPvFLgC.js";
2
- import { n as ClientInitOptions } from "../types-Cw9UISvM.js";
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-BaqdM92a.js";
2
+ import { n as ClientInitOptions } from "../types-D3H3EAre.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<{
@@ -25,7 +25,6 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
25
25
  components: components['schemas']['SuggestedComponent'][];
26
26
  correlationId: string;
27
27
  }>;
28
- feedback: (body: FeedbackBody) => Promise<never>;
29
28
  docsQuestion: (body: DocsQuestionBody) => Promise<{
30
29
  response: string;
31
30
  metadata: {
package/dist/ai/index.js CHANGED
@@ -27,10 +27,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
27
27
  const { data } = await client.post("/suggest/component", { body });
28
28
  return data;
29
29
  };
30
- const feedback = async (body) => {
31
- const { data } = await client.post("/feedback", { body });
32
- return data;
33
- };
34
30
  /** Answers a question using the Keboola documentation as a source. */
35
31
  const docsQuestion = async (body) => {
36
32
  const { data } = await client.post("/docs/question", { body });
@@ -52,7 +48,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
52
48
  explainError,
53
49
  describeConfiguration,
54
50
  suggestComponent,
55
- feedback,
56
51
  docsQuestion,
57
52
  getComponentDetail
58
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n FeedbackBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n const feedback = async (body: FeedbackBody) => {\n const { data } = await client.post('/feedback', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n feedback,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;AAeA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,SAAuB;EAC7C,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,aAAa,EAAE,KAAK,CAAC;EAExD,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/ai/aiClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n DocsQuestionBody,\n ExplainErrorBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n /** Answers a question using the Keboola documentation as a source. */\n const docsQuestion = async (body: DocsQuestionBody) => {\n const { data } = await client.post('/docs/question', { body });\n\n return data;\n };\n\n /** Retrieves documentation details for a single component. */\n const getComponentDetail = async (componentId: string) => {\n const { data } = await client.get('/docs/components/{componentId}', {\n path: { componentId },\n });\n\n return data;\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n docsQuestion,\n getComponentDetail,\n };\n};\n"],"mappings":";;;AAcA,MAAa,kBAAkB,EAAE,SAAS,aAAa,WAA8B;CACnF,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mCAAmC,EAAE,KAAK,CAAC;EAE9E,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,SAAyC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iCAAiC,EAAE,KAAK,CAAC;EAE5E,OAAO;CACT;CAEA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,EAAE,KAAK,CAAC;EAEvD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,SAAoC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EAEtE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sBAAsB,EAAE,KAAK,CAAC;EAEjE,OAAO;CACT;;CAGA,MAAM,eAAe,OAAO,SAA2B;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kBAAkB,EAAE,KAAK,CAAC;EAE7D,OAAO;CACT;;CAGA,MAAM,qBAAqB,OAAO,gBAAwB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kCAAkC,EAClE,MAAM,EAAE,YAAY,EACtB,CAAC;EAED,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -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-BBbzWczQ.cjs";
2
- export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d 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 ObjectDescription } from "../types-wNuJUhco.cjs";
2
+ export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, 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-BNPvFLgC.js";
2
- export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d 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 ObjectDescription } from "../types-BaqdM92a.js";
2
+ export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,4 +1,4 @@
1
- import "./index-r6YSe8B-.js";
1
+ import "./index-sDHBkJhU.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-xW0-JQXg.d.ts.map
10
+ //# sourceMappingURL=appLogs-DpcqeOe5.d.ts.map
@@ -1,4 +1,4 @@
1
- import "./index-XaPb6unB.cjs";
1
+ import "./index-ChDl6ig5.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-Cxhm2Rkn.d.cts.map
10
+ //# sourceMappingURL=appLogs-SjrflOHk.d.cts.map
@@ -47,7 +47,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
47
47
  const { data } = await client.post("/apps/{appId}/unpublish", { path: { appId } }, { signal });
48
48
  return data;
49
49
  };
50
- /** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */
50
+ /** Sleeps the app now; the next visitor wakes it, as after an idle auto-suspend. */
51
51
  const suspendApp = async (appId, signal) => {
52
52
  const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
53
53
  return data;
@@ -95,7 +95,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
95
95
  }, writeOptions(options));
96
96
  return data;
97
97
  };
98
- /** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */
98
+ /** Live deployment history, newest first; `query.archived: true` lists the deleted ones instead. */
99
99
  const getDeployments = async (appId, query = {}, signal) => {
100
100
  const { data } = await client.get("/apps/{appId}/deployments", {
101
101
  path: { appId },
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app now; the next visitor wakes it, as after an idle auto-suspend. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Live deployment history, newest first; `query.archived: true` lists the deleted ones instead. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { n as ClientInitOptions } from "../types-OkQWmonU.cjs";
2
- import { C as components, S as RunId, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-L50Y6ATu.cjs";
3
- import { t as LogEntry } from "../appLogs-Cxhm2Rkn.cjs";
1
+ import { n as ClientInitOptions } from "../types-sOM2_KPc.cjs";
2
+ import { C as components, S as RunId, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-0ZAMQhva.cjs";
3
+ import { t as LogEntry } from "../appLogs-SjrflOHk.cjs";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * Options every write takes.
@@ -1,6 +1,6 @@
1
- import { n as ClientInitOptions } from "../types-Cw9UISvM.js";
2
- import { C as components, S as RunId, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-C3IQu1gV.js";
3
- import { t as LogEntry } from "../appLogs-xW0-JQXg.js";
1
+ import { n as ClientInitOptions } from "../types-D3H3EAre.js";
2
+ import { C as components, S as RunId, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-DgOLSRiy.js";
3
+ import { t as LogEntry } from "../appLogs-DpcqeOe5.js";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * Options every write takes.
@@ -46,7 +46,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
46
46
  const { data } = await client.post("/apps/{appId}/unpublish", { path: { appId } }, { signal });
47
47
  return data;
48
48
  };
49
- /** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */
49
+ /** Sleeps the app now; the next visitor wakes it, as after an idle auto-suspend. */
50
50
  const suspendApp = async (appId, signal) => {
51
51
  const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
52
52
  return data;
@@ -94,7 +94,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
94
94
  }, writeOptions(options));
95
95
  return data;
96
96
  };
97
- /** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */
97
+ /** Live deployment history, newest first; `query.archived: true` lists the deleted ones instead. */
98
98
  const getDeployments = async (appId, query = {}, signal) => {
99
99
  const { data } = await client.get("/apps/{appId}/deployments", {
100
100
  path: { appId },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app now; the next visitor wakes it, as after an idle auto-suspend. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Live deployment history, newest first; `query.archived: true` lists the deleted ones instead. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { S as RunId, _ as DeploymentRunState, a as AppRun, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-L50Y6ATu.cjs";
2
- import { t as LogEntry } from "../appLogs-Cxhm2Rkn.cjs";
1
+ import { S as RunId, _ as DeploymentRunState, a as AppRun, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-0ZAMQhva.cjs";
2
+ import { t as LogEntry } from "../appLogs-SjrflOHk.cjs";
3
3
  export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetLogsTailQuery, type LogEntry, RunId };
@@ -1,3 +1,3 @@
1
- import { S as RunId, _ as DeploymentRunState, a as AppRun, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-C3IQu1gV.js";
2
- import { t as LogEntry } from "../appLogs-xW0-JQXg.js";
1
+ import { S as RunId, _ as DeploymentRunState, a as AppRun, b as GetDeploymentsQuery, 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 GetLogsTailQuery, y as GetAppsQuery } from "../types-DgOLSRiy.js";
2
+ import { t as LogEntry } from "../appLogs-DpcqeOe5.js";
3
3
  export { App, AppGitRepo, AppId, AppPassword, AppRun, AppState, CreateAppBody, CreateCredentialBody, CreateDeploymentBody, CreatedCredential, Credential, CredentialId, CredentialList, Deployment, DeploymentBuildState, DeploymentId, DeploymentRunState, GetAppRunsQuery, GetAppsQuery, GetDeploymentsQuery, GetLogsTailQuery, type LogEntry, RunId };
@@ -1,4 +1,4 @@
1
- import { n as ClientInitOptions } from "../types-OkQWmonU.cjs";
1
+ import { n as ClientInitOptions } from "../types-sOM2_KPc.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-Cw9UISvM.js";
1
+ import { n as ClientInitOptions } from "../types-D3H3EAre.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,2 +1,2 @@
1
- import { A as PasswordInput, C as ApiLoginSuccess, D as LoginUser, E as LoginResultFor, F as mfaChallengeSchema, I as oidcInputSchema, L as passwordInputSchema, M as apiLoginSuccessSchema, N as browserLoginResultSchema, O as MfaChallenge, P as browserLoginSuccessSchema, S as ApiLoginResult, T as BrowserLoginSuccess, _ as MfaWebauthnInput, a as RefreshTokenInput, b as mfaWebauthnInputSchema, c as ChangePasswordInput, d as changeInputSchema, f as resetInputSchema, g as MfaMethod, h as MfaCodeInput, i as RefreshSessionInput, j as apiLoginResultSchema, k as OidcInput, l as ResetInput, m as MFA_METHOD, n as AuthOpenApiFetchClient, o as refreshSessionInputSchema, p as resetRequestInputSchema, r as createAuthClient, s as refreshTokenInputSchema, t as AuthClientInitOptions, u as ResetRequestInput, v as TotpVerifyInput, w as BrowserLoginResult, x as totpVerifyInputSchema, y as mfaCodeInputSchema } from "../authClient-aud2dUZd.cjs";
1
+ import { A as PasswordInput, C as ApiLoginSuccess, D as LoginUser, E as LoginResultFor, F as mfaChallengeSchema, I as oidcInputSchema, L as passwordInputSchema, M as apiLoginSuccessSchema, N as browserLoginResultSchema, O as MfaChallenge, P as browserLoginSuccessSchema, S as ApiLoginResult, T as BrowserLoginSuccess, _ as MfaWebauthnInput, a as RefreshTokenInput, b as mfaWebauthnInputSchema, c as ChangePasswordInput, d as changeInputSchema, f as resetInputSchema, g as MfaMethod, h as MfaCodeInput, i as RefreshSessionInput, j as apiLoginResultSchema, k as OidcInput, l as ResetInput, m as MFA_METHOD, n as AuthOpenApiFetchClient, o as refreshSessionInputSchema, p as resetRequestInputSchema, r as createAuthClient, s as refreshTokenInputSchema, t as AuthClientInitOptions, u as ResetRequestInput, v as TotpVerifyInput, w as BrowserLoginResult, x as totpVerifyInputSchema, y as mfaCodeInputSchema } from "../authClient-D06srBQE.cjs";
2
2
  export { ApiLoginResult, ApiLoginSuccess, AuthClientInitOptions, AuthOpenApiFetchClient, BrowserLoginResult, BrowserLoginSuccess, ChangePasswordInput, LoginResultFor, LoginUser, MFA_METHOD, MfaChallenge, MfaCodeInput, MfaMethod, MfaWebauthnInput, OidcInput, PasswordInput, RefreshSessionInput, RefreshTokenInput, ResetInput, ResetRequestInput, TotpVerifyInput, apiLoginResultSchema, apiLoginSuccessSchema, browserLoginResultSchema, browserLoginSuccessSchema, changeInputSchema, createAuthClient, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, passwordInputSchema, refreshSessionInputSchema, refreshTokenInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
@@ -1,2 +1,2 @@
1
- import { A as PasswordInput, C as ApiLoginSuccess, D as LoginUser, E as LoginResultFor, F as mfaChallengeSchema, I as oidcInputSchema, L as passwordInputSchema, M as apiLoginSuccessSchema, N as browserLoginResultSchema, O as MfaChallenge, P as browserLoginSuccessSchema, S as ApiLoginResult, T as BrowserLoginSuccess, _ as MfaWebauthnInput, a as RefreshTokenInput, b as mfaWebauthnInputSchema, c as ChangePasswordInput, d as changeInputSchema, f as resetInputSchema, g as MfaMethod, h as MfaCodeInput, i as RefreshSessionInput, j as apiLoginResultSchema, k as OidcInput, l as ResetInput, m as MFA_METHOD, n as AuthOpenApiFetchClient, o as refreshSessionInputSchema, p as resetRequestInputSchema, r as createAuthClient, s as refreshTokenInputSchema, t as AuthClientInitOptions, u as ResetRequestInput, v as TotpVerifyInput, w as BrowserLoginResult, x as totpVerifyInputSchema, y as mfaCodeInputSchema } from "../authClient-Bso5UaXS.js";
1
+ import { A as PasswordInput, C as ApiLoginSuccess, D as LoginUser, E as LoginResultFor, F as mfaChallengeSchema, I as oidcInputSchema, L as passwordInputSchema, M as apiLoginSuccessSchema, N as browserLoginResultSchema, O as MfaChallenge, P as browserLoginSuccessSchema, S as ApiLoginResult, T as BrowserLoginSuccess, _ as MfaWebauthnInput, a as RefreshTokenInput, b as mfaWebauthnInputSchema, c as ChangePasswordInput, d as changeInputSchema, f as resetInputSchema, g as MfaMethod, h as MfaCodeInput, i as RefreshSessionInput, j as apiLoginResultSchema, k as OidcInput, l as ResetInput, m as MFA_METHOD, n as AuthOpenApiFetchClient, o as refreshSessionInputSchema, p as resetRequestInputSchema, r as createAuthClient, s as refreshTokenInputSchema, t as AuthClientInitOptions, u as ResetRequestInput, v as TotpVerifyInput, w as BrowserLoginResult, x as totpVerifyInputSchema, y as mfaCodeInputSchema } from "../authClient-BYIGzL_u.js";
2
2
  export { ApiLoginResult, ApiLoginSuccess, AuthClientInitOptions, AuthOpenApiFetchClient, BrowserLoginResult, BrowserLoginSuccess, ChangePasswordInput, LoginResultFor, LoginUser, MFA_METHOD, MfaChallenge, MfaCodeInput, MfaMethod, MfaWebauthnInput, OidcInput, PasswordInput, RefreshSessionInput, RefreshTokenInput, ResetInput, ResetRequestInput, TotpVerifyInput, apiLoginResultSchema, apiLoginSuccessSchema, browserLoginResultSchema, browserLoginSuccessSchema, changeInputSchema, createAuthClient, mfaChallengeSchema, mfaCodeInputSchema, mfaWebauthnInputSchema, oidcInputSchema, passwordInputSchema, refreshSessionInputSchema, refreshTokenInputSchema, resetInputSchema, resetRequestInputSchema, totpVerifyInputSchema };
@@ -1,2 +1,2 @@
1
- import { $ as CreateDeviceAuthorizationBody, A as PatScopeInput, B as GetMeMaintainersResult, C as GetPkceTokenResult, D as ExchangePatBodyRaw, E as CreatePatResult, F as TotpVerifyResult, G as MeMaintainer, H as GetMeOrganizationsResult, I as VerifyMfaBody, J as MeResult, K as MeOrganization, L as VerifyMfaResult, M as DisableTotpPath, N as RegenerateRecoveryCodesResult, O as ExchangePatInput, P as TotpSetupResult, Q as ApproveDeviceAuthorizationResult, R as VerifyMfaType, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, W as GetMeProjectsResult, X as LoginBody, Y as MeUser, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, c as IntrospectTokenResult, d as RefreshTokenResult, et as CreateDeviceAuthorizationResult, f as RevokeTokenBody, g as SudoResult, h as SudoChallengeResult, i as RegisterWebauthnResult, j as RevokePatPath, k as ListPatsResult, l as RefreshTokenBody, m as SudoBodyRaw, n as RegisterWebauthnInput, nt as GetDeviceAuthorizationTokenResult, o as RemoveWebauthnPath, p as SudoBody, q as MeProject, r as RegisterWebauthnOptionsResult, s as RemoveWebauthnQuery, t as ListWebauthnCredentialsResult, tt as GetDeviceAuthorizationTokenBody, u as RefreshTokenPartialBody, v as AssertSamlBody, w as CreatePatBodyRaw, x as InitiateSamlResult, y as AssertSamlResult, z as GetMeMaintainersQuery } from "../types-B6ozaDkl.cjs";
1
+ import { $ as CreateDeviceAuthorizationBody, A as PatScopeInput, B as GetMeMaintainersResult, C as GetPkceTokenResult, D as ExchangePatBodyRaw, E as CreatePatResult, F as TotpVerifyResult, G as MeMaintainer, H as GetMeOrganizationsResult, I as VerifyMfaBody, J as MeResult, K as MeOrganization, L as VerifyMfaResult, M as DisableTotpPath, N as RegenerateRecoveryCodesResult, O as ExchangePatInput, P as TotpSetupResult, Q as ApproveDeviceAuthorizationResult, R as VerifyMfaType, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, W as GetMeProjectsResult, X as LoginBody, Y as MeUser, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, c as IntrospectTokenResult, d as RefreshTokenResult, et as CreateDeviceAuthorizationResult, f as RevokeTokenBody, g as SudoResult, h as SudoChallengeResult, i as RegisterWebauthnResult, j as RevokePatPath, k as ListPatsResult, l as RefreshTokenBody, m as SudoBodyRaw, n as RegisterWebauthnInput, nt as GetDeviceAuthorizationTokenResult, o as RemoveWebauthnPath, p as SudoBody, q as MeProject, r as RegisterWebauthnOptionsResult, s as RemoveWebauthnQuery, t as ListWebauthnCredentialsResult, tt as GetDeviceAuthorizationTokenBody, u as RefreshTokenPartialBody, v as AssertSamlBody, w as CreatePatBodyRaw, x as InitiateSamlResult, y as AssertSamlResult, z as GetMeMaintainersQuery } from "../types-EkyQ0_10.cjs";
2
2
  export { ApproveDeviceAuthorizationBody, ApproveDeviceAuthorizationResult, AssertSamlBody, AssertSamlResult, CreateDeviceAuthorizationBody, CreateDeviceAuthorizationResult, CreatePatBodyRaw, CreatePatInput, CreatePatResult, DisableTotpPath, ExchangePatBodyRaw, ExchangePatInput, GetDeviceAuthorizationTokenBody, GetDeviceAuthorizationTokenResult, GetMeMaintainersQuery, GetMeMaintainersResult, GetMeOrganizationsQuery, GetMeOrganizationsResult, GetMeProjectsQuery, GetMeProjectsResult, GetPkceTokenBody, GetPkceTokenResult, InitiateSamlBody, InitiateSamlResult, IntrospectTokenResult, ListPatsResult, ListWebauthnCredentialsResult, LoginBody, MeMaintainer, MeOrganization, MeProject, MeResult, MeUser, PatScopeInput, RefreshTokenBody, RefreshTokenPartialBody, RefreshTokenResult, RegenerateRecoveryCodesResult, RegisterWebauthnInput, RegisterWebauthnOptionsResult, RegisterWebauthnResult, RemoveWebauthnInput, RemoveWebauthnPath, RemoveWebauthnQuery, RevokePatPath, RevokeSessionPath, RevokeTokenBody, SudoBody, SudoBodyRaw, SudoChallengeResult, SudoResult, TotpSetupResult, TotpVerifyResult, VerifyMfaBody, VerifyMfaResult, VerifyMfaType };