@keboola/api-client 48.0.0 → 49.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 (278) hide show
  1. package/AGENTS.md +1 -1
  2. package/API-SURFACE.md +3 -2
  3. package/CHANGELOG.md +34 -0
  4. package/dist/{adminRoles-DsoGQipO.d.ts → adminRoles-BX1gk3At.d.ts} +2 -2
  5. package/dist/{adminRoles-BgpaBE7h.d.cts → adminRoles-BbxFgfX-.d.cts} +2 -2
  6. package/dist/ai/index.d.cts +2 -2
  7. package/dist/ai/index.d.ts +2 -2
  8. package/dist/ai/types.d.cts +1 -1
  9. package/dist/ai/types.d.ts +1 -1
  10. package/dist/{appLogs-DpcqeOe5.d.ts → appLogs-DI2Y4imY.d.ts} +2 -2
  11. package/dist/{appLogs-SjrflOHk.d.cts → appLogs-IhRA3xyv.d.cts} +2 -2
  12. package/dist/apps/index.cjs +1 -1
  13. package/dist/apps/index.cjs.map +1 -1
  14. package/dist/apps/index.d.cts +6 -3
  15. package/dist/apps/index.d.ts +6 -3
  16. package/dist/apps/index.js +1 -1
  17. package/dist/apps/index.js.map +1 -1
  18. package/dist/apps/types.d.cts +2 -2
  19. package/dist/apps/types.d.ts +2 -2
  20. package/dist/assets/index.d.cts +1 -1
  21. package/dist/assets/index.d.ts +1 -1
  22. package/dist/auth/index.d.cts +1 -1
  23. package/dist/auth/index.d.ts +1 -1
  24. package/dist/auth/types.d.cts +1 -1
  25. package/dist/auth/types.d.ts +1 -1
  26. package/dist/{authClient-BYIGzL_u.d.ts → authClient-6Aau_4Zt.d.ts} +4 -4
  27. package/dist/{authClient-D06srBQE.d.cts → authClient-B3P6WtWW.d.cts} +4 -4
  28. package/dist/billing/index.cjs +0 -1
  29. package/dist/billing/index.cjs.map +1 -1
  30. package/dist/billing/index.d.cts +27 -27
  31. package/dist/billing/index.d.ts +27 -27
  32. package/dist/billing/index.js +0 -1
  33. package/dist/billing/index.js.map +1 -1
  34. package/dist/billing/types.d.cts +26 -22
  35. package/dist/billing/types.d.ts +26 -22
  36. package/dist/chat/index.d.cts +2 -2
  37. package/dist/chat/index.d.ts +2 -2
  38. package/dist/chat/types.d.cts +1 -1
  39. package/dist/chat/types.d.ts +1 -1
  40. package/dist/componentsMcp/index.d.cts +1 -1
  41. package/dist/componentsMcp/index.d.ts +1 -1
  42. package/dist/componentsMcp/types.d.cts +1 -1
  43. package/dist/componentsMcp/types.d.ts +1 -1
  44. package/dist/{configurations-DKINmjA3.js → configurations-B44z6BSO.js} +2 -2
  45. package/dist/{configurations-DKINmjA3.js.map → configurations-B44z6BSO.js.map} +1 -1
  46. package/dist/{configurations-B2O8AAy0.cjs → configurations-Dkxsa3Uf.cjs} +2 -2
  47. package/dist/{configurations-B2O8AAy0.cjs.map → configurations-Dkxsa3Uf.cjs.map} +1 -1
  48. package/dist/constants/index.cjs +4 -1
  49. package/dist/constants/index.d.cts +4 -3
  50. package/dist/constants/index.d.ts +4 -3
  51. package/dist/constants/index.js +2 -2
  52. package/dist/{constants-a0jswUeK.cjs → constants-DErcRkWl.cjs} +95 -2
  53. package/dist/constants-DErcRkWl.cjs.map +1 -0
  54. package/dist/{constants-CA4UN2Xv.js → constants-VpSwBtCb.js} +78 -3
  55. package/dist/constants-VpSwBtCb.js.map +1 -0
  56. package/dist/dataScience/index.d.cts +2 -2
  57. package/dist/dataScience/index.d.ts +2 -2
  58. package/dist/dataScience/types.d.cts +2 -2
  59. package/dist/dataScience/types.d.ts +2 -2
  60. package/dist/developerPortal/index.d.cts +2 -2
  61. package/dist/developerPortal/index.d.ts +2 -2
  62. package/dist/developerPortal/types.d.cts +1 -1
  63. package/dist/developerPortal/types.d.ts +1 -1
  64. package/dist/domain/permissions/index.cjs +7 -42
  65. package/dist/domain/permissions/index.d.cts +6 -2
  66. package/dist/domain/permissions/index.d.ts +6 -2
  67. package/dist/domain/permissions/index.js +2 -38
  68. package/dist/domain/storageTable/index.d.cts +1 -1
  69. package/dist/domain/storageTable/index.d.ts +1 -1
  70. package/dist/editor/index.d.cts +2 -2
  71. package/dist/editor/index.d.ts +2 -2
  72. package/dist/editor/types.d.cts +1 -1
  73. package/dist/editor/types.d.ts +1 -1
  74. package/dist/encryption/index.d.cts +1 -1
  75. package/dist/encryption/index.d.ts +1 -1
  76. package/dist/encryption/types.d.cts +1 -1
  77. package/dist/encryption/types.d.ts +1 -1
  78. package/dist/import/index.d.cts +3 -3
  79. package/dist/import/index.d.ts +3 -3
  80. package/dist/{index-Cc5wSIRJ.d.cts → index-BM_fXKq5.d.cts} +5 -5
  81. package/dist/{index-ChDl6ig5.d.cts → index-BPMr8PQJ.d.ts} +16 -3
  82. package/dist/{index-CzHrIfZS.d.ts → index-BT88-GpA.d.ts} +73 -3
  83. package/dist/{index-ByLCYBaw.d.cts → index-BVjhAkXW.d.cts} +4 -4
  84. package/dist/{index-C40Fbj-6.d.cts → index-Be2dNJ_N.d.cts} +71 -64
  85. package/dist/{index-m7fX76x3.d.ts → index-BiZR9BjN.d.ts} +4 -4
  86. package/dist/{index-BLvmyehw.d.ts → index-C6oPUTWZ.d.ts} +3 -3
  87. package/dist/{index-sDHBkJhU.d.ts → index-CL4iKFic.d.cts} +16 -3
  88. package/dist/{index-Co2Cd-nw.d.cts → index-CbZQCDkD.d.cts} +3 -3
  89. package/dist/{index-D91RxB_S.d.cts → index-CrrHvDiX.d.cts} +4 -4
  90. package/dist/{index-CpUYVB-d.d.cts → index-CtQl-Iqw.d.cts} +4 -4
  91. package/dist/{index-avzO5sLa.d.ts → index-D6JMbJ9b.d.ts} +4 -4
  92. package/dist/{index-BCjU-g9t.d.cts → index-DGKCTQkb.d.cts} +3 -3
  93. package/dist/{index-BIldED4N.d.ts → index-DReKz9Zt.d.ts} +4 -4
  94. package/dist/{index-CpGmmJbt.d.cts → index-DYNVbgm8.d.cts} +4 -4
  95. package/dist/{index-BTrxCk90.d.ts → index-DhZTIejy.d.ts} +3 -3
  96. package/dist/{index-BHiJu8LF.d.cts → index-Dkb8CynB.d.cts} +16 -5
  97. package/dist/{index-DlZiWfQb.d.ts → index-DorowSay.d.ts} +16 -5
  98. package/dist/{index-VlzlOBkc.d.cts → index-PqJGDHHl.d.cts} +73 -3
  99. package/dist/{index-DzLXtE4Q.d.ts → index-XcnkRVb0.d.ts} +5 -5
  100. package/dist/{index-CIqWOEWD.d.ts → index-dgu6udMy.d.ts} +4 -4
  101. package/dist/{index-P1vR966i.d.cts → index-fMoM8SeH.d.cts} +4 -4
  102. package/dist/{index-P1vR966i.d.ts → index-fMoM8SeH.d.ts} +4 -4
  103. package/dist/{index-B3QTeqfL.d.ts → index-uGRdAORl.d.ts} +71 -64
  104. package/dist/index.cjs +10 -6
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.d.cts +6 -6
  107. package/dist/index.d.ts +6 -6
  108. package/dist/index.js +8 -7
  109. package/dist/index.js.map +1 -1
  110. package/dist/kaiAgent/index.d.cts +2 -2
  111. package/dist/kaiAgent/index.d.ts +2 -2
  112. package/dist/kaiAgent/types.d.cts +1 -1
  113. package/dist/kaiAgent/types.d.ts +1 -1
  114. package/dist/management/index.cjs +1 -1
  115. package/dist/management/index.d.cts +1 -1
  116. package/dist/management/index.d.ts +1 -1
  117. package/dist/management/index.js +1 -1
  118. package/dist/management/types.cjs +14 -0
  119. package/dist/management/types.cjs.map +1 -0
  120. package/dist/management/types.d.cts +2 -2
  121. package/dist/management/types.d.ts +2 -2
  122. package/dist/management/types.js +12 -1
  123. package/dist/management/types.js.map +1 -0
  124. package/dist/{management-CXHnxVaZ.cjs → management-B1o6RpKF.cjs} +9 -15
  125. package/dist/management-B1o6RpKF.cjs.map +1 -0
  126. package/dist/{management-NYAD6ej4.js → management-C9w3DNhs.js} +9 -15
  127. package/dist/management-C9w3DNhs.js.map +1 -0
  128. package/dist/metastore/index.d.cts +1 -1
  129. package/dist/metastore/index.d.ts +1 -1
  130. package/dist/metastore/types.d.cts +1 -1
  131. package/dist/metastore/types.d.ts +1 -1
  132. package/dist/microsoftGraph/index.d.cts +2 -2
  133. package/dist/microsoftGraph/index.d.ts +2 -2
  134. package/dist/microsoftGraph/types.d.cts +1 -1
  135. package/dist/microsoftGraph/types.d.ts +1 -1
  136. package/dist/notifications/index.d.cts +2 -2
  137. package/dist/notifications/index.d.ts +2 -2
  138. package/dist/notifications/types.d.cts +1 -1
  139. package/dist/notifications/types.d.ts +1 -1
  140. package/dist/oauth/index.d.cts +2 -2
  141. package/dist/oauth/index.d.ts +2 -2
  142. package/dist/oauth/types.d.cts +1 -1
  143. package/dist/oauth/types.d.ts +1 -1
  144. package/dist/omnisearch/index.d.cts +2 -2
  145. package/dist/omnisearch/index.d.ts +2 -2
  146. package/dist/omnisearch/types.d.cts +1 -1
  147. package/dist/omnisearch/types.d.ts +1 -1
  148. package/dist/project-ClH22nzH.js +86 -0
  149. package/dist/project-ClH22nzH.js.map +1 -0
  150. package/dist/{project-nbv9yjpl.d.ts → project-DTfBtIJs.d.ts} +4 -3
  151. package/dist/project-Rh4nXiWh.cjs +139 -0
  152. package/dist/project-Rh4nXiWh.cjs.map +1 -0
  153. package/dist/{project-Dzu85cqr.d.cts → project-vOnvjo80.d.cts} +4 -3
  154. package/dist/queryService/index.d.cts +1 -1
  155. package/dist/queryService/index.d.ts +1 -1
  156. package/dist/queryService/types.d.cts +1 -1
  157. package/dist/queryService/types.d.ts +1 -1
  158. package/dist/queue/index.d.cts +3 -3
  159. package/dist/queue/index.d.ts +3 -3
  160. package/dist/queue/types.d.cts +1 -1
  161. package/dist/queue/types.d.ts +1 -1
  162. package/dist/scheduler/index.d.cts +2 -2
  163. package/dist/scheduler/index.d.ts +2 -2
  164. package/dist/scheduler/types.d.cts +1 -1
  165. package/dist/scheduler/types.d.ts +1 -1
  166. package/dist/sdk/configurations/index.cjs +1 -1
  167. package/dist/sdk/configurations/index.d.cts +2 -2
  168. package/dist/sdk/configurations/index.d.ts +2 -2
  169. package/dist/sdk/configurations/index.js +1 -1
  170. package/dist/sdk/developerPortal/index.d.cts +3 -3
  171. package/dist/sdk/developerPortal/index.d.ts +3 -3
  172. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  173. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  174. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  175. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  176. package/dist/sdk/queryService/index.d.cts +1 -1
  177. package/dist/sdk/queryService/index.d.ts +1 -1
  178. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  179. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  180. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  181. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  182. package/dist/sdk/tag/index.d.cts +2 -2
  183. package/dist/sdk/tag/index.d.ts +2 -2
  184. package/dist/sdk/tag/types.d.cts +1 -1
  185. package/dist/sdk/tag/types.d.ts +1 -1
  186. package/dist/sdk/vault/index.d.cts +1 -1
  187. package/dist/sdk/vault/index.d.ts +1 -1
  188. package/dist/status/index.d.cts +1 -1
  189. package/dist/status/index.d.ts +1 -1
  190. package/dist/storage/index.cjs +4 -1
  191. package/dist/storage/index.d.cts +3 -3
  192. package/dist/storage/index.d.ts +3 -3
  193. package/dist/storage/index.js +2 -2
  194. package/dist/storage/types.d.cts +5 -5
  195. package/dist/storage/types.d.ts +5 -5
  196. package/dist/{storage-BR-Kgi-6.js → storage-CChfKlrb.js} +25 -2
  197. package/dist/{storage-CVBXivpB.cjs.map → storage-CChfKlrb.js.map} +1 -1
  198. package/dist/{storage-CVBXivpB.cjs → storage-Ci9gXgcw.cjs} +42 -1
  199. package/dist/storage-Ci9gXgcw.cjs.map +1 -0
  200. package/dist/stream/index.d.cts +2 -2
  201. package/dist/stream/index.d.ts +2 -2
  202. package/dist/stream/types.d.cts +1 -1
  203. package/dist/stream/types.d.ts +1 -1
  204. package/dist/syncActions/index.d.cts +2 -2
  205. package/dist/syncActions/index.d.ts +2 -2
  206. package/dist/syncActions/types.d.cts +1 -1
  207. package/dist/syncActions/types.d.ts +1 -1
  208. package/dist/telemetry/index.d.cts +2 -2
  209. package/dist/telemetry/index.d.ts +2 -2
  210. package/dist/telemetry/types.d.cts +1 -1
  211. package/dist/telemetry/types.d.ts +1 -1
  212. package/dist/{types-Cn8I0vcr.d.ts → types-0R9-osUJ.d.ts} +2 -2
  213. package/dist/{types-CfZLdfAL.d.ts → types-302-NBaU.d.ts} +3 -3
  214. package/dist/{types-BWYtQkHu.d.ts → types-45O2dU2w.d.ts} +2 -2
  215. package/dist/{types-DMpiG2q4.d.cts → types-BAsYMltG.d.cts} +2 -2
  216. package/dist/{types-Vu09EUZs.d.ts → types-BM6rri7-.d.ts} +3 -3
  217. package/dist/{types-BaqdM92a.d.ts → types-BOT6TgOS.d.ts} +2 -2
  218. package/dist/{types-CwQ8_n8q.d.ts → types-BT5e9TSQ.d.ts} +26 -27
  219. package/dist/{types-C-GSYDTN.d.ts → types-BUirSne-.d.ts} +3 -3
  220. package/dist/{types-1LENlL5h.d.ts → types-BWzt1ju_.d.ts} +3 -3
  221. package/dist/{types-Cc4yTEdK.d.ts → types-BXybSjn-.d.ts} +2 -2
  222. package/dist/{types-BXHZQvGy.d.ts → types-BZ--6pIt.d.ts} +2 -2
  223. package/dist/{types-BYFU_6Iz.d.ts → types-BjwbzqJd.d.ts} +2 -2
  224. package/dist/{types-EkyQ0_10.d.cts → types-BnmsuDfH.d.cts} +2 -2
  225. package/dist/{types-9d8ihjZh.d.cts → types-BrpIEj_N.d.ts} +2 -2
  226. package/dist/{types-D3mj56iq.d.cts → types-C614wC5h.d.cts} +2 -2
  227. package/dist/{types-Cfc-fYbq.d.cts → types-CTS2NSIb.d.cts} +2 -2
  228. package/dist/{types-CNkQuWnO.d.cts → types-CY8X39qv.d.cts} +3 -3
  229. package/dist/{types-D3H3EAre.d.ts → types-CeqZuOEC.d.ts} +2 -2
  230. package/dist/{types-DgOLSRiy.d.ts → types-CfXqFz2e.d.ts} +5 -3
  231. package/dist/{types-BbwrMl0Q.d.cts → types-ChLWY8aU.d.cts} +2 -2
  232. package/dist/{types-CwGbiMF-.d.cts → types-CjNl7O7f.d.cts} +3 -3
  233. package/dist/{types-C4eQ-Zcx.d.cts → types-CkJxMoTk.d.cts} +2 -2
  234. package/dist/{types-DXF6faow.d.cts → types-CpJhWBmH.d.cts} +2 -2
  235. package/dist/{types-c4h2YDMC.d.ts → types-D2Pb_4FA.d.cts} +2 -2
  236. package/dist/{types-VehpPOQX.d.ts → types-D53zBV25.d.ts} +2 -2
  237. package/dist/{types-Bt8CEZ6K.d.ts → types-D9ZKJYZk.d.ts} +2 -2
  238. package/dist/{types-DfJP6Dti.d.ts → types-DODAZKEm.d.ts} +2 -2
  239. package/dist/{types-wNuJUhco.d.cts → types-DV7K07oX.d.cts} +2 -2
  240. package/dist/{types-CXv_e6xC.d.cts → types-DbXV0g8U.d.cts} +2 -2
  241. package/dist/{types-UySfduQo.d.ts → types-DjadPty5.d.ts} +2 -2
  242. package/dist/{types-BTy_FFSu.d.ts → types-DlhNay1n.d.ts} +2 -2
  243. package/dist/{types-CrJIILXf.d.cts → types-DmzSFOhK.d.cts} +2 -2
  244. package/dist/{types-EmIcG-8K.d.cts → types-DpbrGDRf.d.cts} +2 -2
  245. package/dist/{types-Ce5Blzhg.d.ts → types-DqOxIujY.d.ts} +2 -2
  246. package/dist/{types-NSxpnYW5.d.cts → types-Duurgaqk.d.cts} +2 -2
  247. package/dist/{types-CpWE6Yg2.d.ts → types-Dy6EdWPG.d.ts} +2 -2
  248. package/dist/{types-6KabdIyO.d.cts → types-HmK8iKp5.d.cts} +3 -3
  249. package/dist/{types-DlgqPU_4.d.cts → types-JZ0Bdlpk.d.cts} +2 -2
  250. package/dist/{types-sOM2_KPc.d.cts → types-O6XM48J8.d.cts} +2 -2
  251. package/dist/{types-QPW-7dPm.d.ts → types-RogkWzOu.d.ts} +2 -2
  252. package/dist/{types-Dn1G-qv4.d.cts → types-TmrPVMhy.d.cts} +26 -27
  253. package/dist/{types-C9VaQSqV.d.ts → types-_zKX6JmD.d.ts} +2 -2
  254. package/dist/{types-0ZAMQhva.d.cts → types-dn6MHur3.d.cts} +5 -3
  255. package/dist/{types-BtS3DhGu.d.cts → types-jN2KmMet.d.cts} +2 -2
  256. package/dist/{types-D8d5tyGi.d.cts → types-jfPoUlO8.d.cts} +2 -2
  257. package/dist/{types-C_raqbl-.d.cts → types-ptynVnkv.d.cts} +3 -3
  258. package/dist/{types-B7L6uSYb.d.ts → types-tdIo5FpR.d.ts} +2 -2
  259. package/dist/{types-DSBrhK_K.d.cts → types-vvw_H7wp.d.cts} +2 -2
  260. package/dist/vault/index.d.cts +1 -1
  261. package/dist/vault/index.d.ts +1 -1
  262. package/dist/vault/types.d.cts +1 -1
  263. package/dist/vault/types.d.ts +1 -1
  264. package/package.json +1 -1
  265. package/surface/apps.md +7 -7
  266. package/surface/billing.md +2 -2
  267. package/surface/management.md +2 -1
  268. package/dist/constants-CA4UN2Xv.js.map +0 -1
  269. package/dist/constants-a0jswUeK.cjs.map +0 -1
  270. package/dist/domain/permissions/index.cjs.map +0 -1
  271. package/dist/domain/permissions/index.js.map +0 -1
  272. package/dist/management-CXHnxVaZ.cjs.map +0 -1
  273. package/dist/management-NYAD6ej4.js.map +0 -1
  274. package/dist/project-BXLFrWJ6.js +0 -45
  275. package/dist/project-BXLFrWJ6.js.map +0 -1
  276. package/dist/project-CpgplgCr.cjs +0 -62
  277. package/dist/project-CpgplgCr.cjs.map +0 -1
  278. package/dist/storage-BR-Kgi-6.js.map +0 -1
package/AGENTS.md CHANGED
@@ -439,7 +439,7 @@ Surfacing — toast vs inline:
439
439
 
440
440
  `@keboola/api-client/domain/permissions` holds token-only capability predicates: `canX` (boolean, safe in any UI condition) paired with `assertCanX` (throws `PermissionDeniedError` before any HTTP round-trip). Catch the error to gate UI without a network call; let it propagate from `useQuery` to surface a "no access" empty state.
441
441
 
442
- Implemented today: `admin.ts` (`isAdmin`, `isProductionManager`, … + matching `assertCan*`, all `(token)`-only), `configurations.ts` (`canCreate/canCopy/canMigrateFromTemplate/canPurge/canAssignFolder` + `assertCan*`, taking a trailing `ctx: ConfigurationCtx`), and `organization.ts` (`isOrganizationMember`, `isOrganizationAdmin`, `canWriteKaiSpendCaps`, all `(token)`-only — reads `StorageToken.admin.isOrganizationMember` rather than the project role string; `assertCanAdministerOrganization`/`assertCanWriteKaiSpendCaps` pair with the latter two, `isOrganizationMember` is a raw signal with no assert). `storage.ts`, `devBranches.ts`, `sandboxes.ts` are still `export {}` placeholders.
442
+ Implemented today: `admin.ts` (`isAdmin`, `isProductionManager`, … + matching `assertCan*`, all `(token)`-only), `configurations.ts` (`canCreate/canCopy/canMigrateFromTemplate/canPurge/canAssignFolder` + `assertCan*`, taking a trailing `ctx: ConfigurationCtx`), and `organization.ts` (`isOrganizationMember`, `isOrganizationAdmin`, `canWriteKaiSpendCaps`, all `(token)`-only — reads `StorageToken.admin.isOrganizationMember` rather than the project role string; `assertCanAdministerOrganization`/`assertCanWriteKaiSpendCaps` pair with the latter two, `isOrganizationMember` is a raw signal with no assert), and `storage.ts` (`canListSharingTargets`, `(token)`-only, no assert — it gates a query; `api.context.project` exposes it). `devBranches.ts`, `sandboxes.ts` are still `export {}` placeholders.
443
443
 
444
444
  ```ts
445
445
  import { PermissionDeniedError } from '@keboola/api-client/domain/permissions';
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, 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.
7
+ 26 top-level namespaces, 728 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
 
@@ -326,7 +326,8 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
326
326
  - `payAsYouGo.getTopUpSetting`
327
327
  - `payAsYouGo.updateStripeCustomer`
328
328
  - `payAsYouGo.updateTopUpSetting`
329
- - `programmaticProjects.confirm`
329
+ - `programmaticProjects.confirmByCookie`
330
+ - `programmaticProjects.confirmByToken`
330
331
  - `programmaticProjects.getClaim`
331
332
  - `projects.addProjectFeature`
332
333
  - `projects.addProjectTemplateFeature`
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # @keboola/api-client
2
2
 
3
+ ## 49.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - **Breaking:** `programmaticProjects.confirm` is gone. `confirmByToken(claimToken)` redeems the claim a link carried and `confirmByCookie()` the claim Connection parked in its cookie, both through the OpenAPI client now that the Manage schema carries the endpoint (UT-5890)
8
+
9
+ ### Minor Changes
10
+
11
+ - `App` carries `hasManagedGitRepo`: whether the app's code lives in a Keboola-managed Git repository.
12
+
13
+ - `canListSharingTargets(token)` in `@keboola/api-client/domain/permissions`, exposed as `api.context.project.canListSharingTargets`, tells whether the token may call `api.storage.bucketSharing.sharingTargets()` — the `share` role, or organization membership, as Connection's voter decides.
14
+
15
+ - `Credits` follows the billing spec's corrected `/credits` response (billing-api#225):
16
+ - `marketplaceSubscription` is a top-level key, not one under `stats`; its `vendor` includes `gcp` and its `billingLink` is `null` for `aws` and `gcp`.
17
+ - `stats` and its `componentJobs` are always present, and `stats.workspaceJobs` is a list.
18
+
19
+ - `CreditPurchase` types x402 top-ups: `invoiceTopUpType` may be `'x402'`, and the optional `paymentProvider`, `paymentStatus` (`pending` | `settled` | `expired`) and `externalPaymentId` (the settlement tx hash) describe the payment. `X402_TOP_UP_TYPE` exports the top-up type value, and `X402_PAYMENT_STATUS` and `X402PaymentStatus` the payment-status values.
20
+
21
+ - `ProjectFeature` in `constants` names every project feature the apps gate on, the new `AdminFeature` names the admin features, and `StackFeature` gains `SandboxesPythonSpark`
22
+
23
+ - `ManageErrorCode` in `constants` names the Manage API's string error codes the apps classify on, starting with the programmatic-project ones (UT-5890)
24
+
25
+ - `manageErrorCode(error)` reads the Manage API's string code off an `ApiError`, wherever the backend put it, and `isManageError(error, code)` narrows on one (UT-5890)
26
+
27
+ - `retryAfterSeconds(error)` reads a failed response's `Retry-After` header off an `ApiError`, for the endpoints that answer 429 or 503 with one (UT-5890)
28
+
29
+ - `StackFeature` in `constants` names the stack features the apps gate on, the way `ProjectFeature` already names project features (UT-5890)
30
+
31
+ ### Patch Changes
32
+
33
+ - `resumeApp` wakes the app and clears a failure stop (`disabled`); a stopped app comes back `starting`.
34
+
35
+ - The bearer session's stack-index fetch gives up after 30 seconds, so a stack that never answers errors its context instead of leaving every caller waiting (UT-5890)
36
+
3
37
  ## 48.0.0
4
38
 
5
39
  ### Major Changes
@@ -1,4 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-sDHBkJhU.js";
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-BPMr8PQJ.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-DsoGQipO.d.ts.map
16
+ //# sourceMappingURL=adminRoles-BX1gk3At.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-ChDl6ig5.cjs";
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-CL4iKFic.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-BgpaBE7h.d.cts.map
16
+ //# sourceMappingURL=adminRoles-BbxFgfX-.d.cts.map
@@ -1,5 +1,5 @@
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";
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-DV7K07oX.cjs";
2
+ import { n as ClientInitOptions } from "../types-O6XM48J8.cjs";
3
3
  //#region src/clients/ai/aiClient.d.ts
4
4
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
5
  healthCheck: (signal?: AbortSignal) => Promise<{
@@ -1,5 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, 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";
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-BOT6TgOS.js";
2
+ import { n as ClientInitOptions } from "../types-CeqZuOEC.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<{
@@ -1,2 +1,2 @@
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";
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-DV7K07oX.cjs";
2
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 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";
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-BOT6TgOS.js";
2
2
  export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,4 +1,4 @@
1
- import "./index-sDHBkJhU.js";
1
+ import "./index-BPMr8PQJ.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-DpcqeOe5.d.ts.map
10
+ //# sourceMappingURL=appLogs-DI2Y4imY.d.ts.map
@@ -1,4 +1,4 @@
1
- import "./index-ChDl6ig5.cjs";
1
+ import "./index-CL4iKFic.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-SjrflOHk.d.cts.map
10
+ //# sourceMappingURL=appLogs-IhRA3xyv.d.cts.map
@@ -52,7 +52,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
52
52
  const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
53
53
  return data;
54
54
  };
55
- /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */
55
+ /** Wakes the app now and clears a failure stop (`disabled`). A stopped app comes back `starting`. */
56
56
  const resumeApp = async (appId, signal) => {
57
57
  const { data } = await client.post("/apps/{appId}/resume", { path: { appId } }, { signal });
58
58
  return data;
@@ -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 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
+ {"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 now and clears a failure stop (`disabled`). A stopped app comes back `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-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";
1
+ import { n as ClientInitOptions } from "../types-O6XM48J8.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-dn6MHur3.cjs";
3
+ import { t as LogEntry } from "../appLogs-IhRA3xyv.cjs";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * Options every write takes.
@@ -35,6 +35,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
35
35
  configId: string;
36
36
  type?: 'streamlit' | 'python-js' | null;
37
37
  url: string | null;
38
+ hasManagedGitRepo: boolean;
38
39
  production: {
39
40
  desiredDeploymentId?: string | null;
40
41
  actualDeploymentId?: string | null;
@@ -49,6 +50,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
49
50
  configId: string;
50
51
  type?: 'streamlit' | 'python-js' | null;
51
52
  url: string | null;
53
+ hasManagedGitRepo: boolean;
52
54
  production: {
53
55
  desiredDeploymentId?: string | null;
54
56
  actualDeploymentId?: string | null;
@@ -63,6 +65,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
63
65
  configId: string;
64
66
  type?: 'streamlit' | 'python-js' | null;
65
67
  url: string | null;
68
+ hasManagedGitRepo: boolean;
66
69
  production: {
67
70
  desiredDeploymentId?: string | null;
68
71
  actualDeploymentId?: string | null;
@@ -1,6 +1,6 @@
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";
1
+ import { n as ClientInitOptions } from "../types-CeqZuOEC.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-CfXqFz2e.js";
3
+ import { t as LogEntry } from "../appLogs-DI2Y4imY.js";
4
4
  //#region src/clients/apps/appsClient.d.ts
5
5
  /**
6
6
  * Options every write takes.
@@ -35,6 +35,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
35
35
  configId: string;
36
36
  type?: 'streamlit' | 'python-js' | null;
37
37
  url: string | null;
38
+ hasManagedGitRepo: boolean;
38
39
  production: {
39
40
  desiredDeploymentId?: string | null;
40
41
  actualDeploymentId?: string | null;
@@ -49,6 +50,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
49
50
  configId: string;
50
51
  type?: 'streamlit' | 'python-js' | null;
51
52
  url: string | null;
53
+ hasManagedGitRepo: boolean;
52
54
  production: {
53
55
  desiredDeploymentId?: string | null;
54
56
  actualDeploymentId?: string | null;
@@ -63,6 +65,7 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
63
65
  configId: string;
64
66
  type?: 'streamlit' | 'python-js' | null;
65
67
  url: string | null;
68
+ hasManagedGitRepo: boolean;
66
69
  production: {
67
70
  desiredDeploymentId?: string | null;
68
71
  actualDeploymentId?: string | null;
@@ -51,7 +51,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
51
51
  const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
52
52
  return data;
53
53
  };
54
- /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */
54
+ /** Wakes the app now and clears a failure stop (`disabled`). A stopped app comes back `starting`. */
55
55
  const resumeApp = async (appId, signal) => {
56
56
  const { data } = await client.post("/apps/{appId}/resume", { path: { appId } }, { signal });
57
57
  return data;
@@ -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 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
+ {"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 now and clears a failure stop (`disabled`). A stopped app comes back `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-0ZAMQhva.cjs";
2
- import { t as LogEntry } from "../appLogs-SjrflOHk.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-dn6MHur3.cjs";
2
+ import { t as LogEntry } from "../appLogs-IhRA3xyv.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-DgOLSRiy.js";
2
- import { t as LogEntry } from "../appLogs-DpcqeOe5.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-CfXqFz2e.js";
2
+ import { t as LogEntry } from "../appLogs-DI2Y4imY.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-sOM2_KPc.cjs";
1
+ import { n as ClientInitOptions } from "../types-O6XM48J8.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-D3H3EAre.js";
1
+ import { n as ClientInitOptions } from "../types-CeqZuOEC.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-D06srBQE.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-B3P6WtWW.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-BYIGzL_u.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-6Aau_4Zt.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-EkyQ0_10.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-BnmsuDfH.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 };
@@ -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-Cc4yTEdK.js";
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-BXybSjn-.js";
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 };
@@ -1,6 +1,6 @@
1
- import { r as OpenapiBodyType, s as OpenapiPathType, t as createOpenapiFetchClient } from "./index-sDHBkJhU.js";
2
- import { n as ClientInitOptions } from "./types-D3H3EAre.js";
3
- import { $ as CreateDeviceAuthorizationBody, M as DisableTotpPath, O as ExchangePatInput, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, f as RevokeTokenBody, it as paths, j as RevokePatPath, n as RegisterWebauthnInput, p as SudoBody, r as RegisterWebauthnOptionsResult, rt as components, tt as GetDeviceAuthorizationTokenBody, v as AssertSamlBody, z as GetMeMaintainersQuery } from "./types-Cc4yTEdK.js";
1
+ import { r as OpenapiBodyType, s as OpenapiPathType, t as createOpenapiFetchClient } from "./index-BPMr8PQJ.js";
2
+ import { n as ClientInitOptions } from "./types-CeqZuOEC.js";
3
+ import { $ as CreateDeviceAuthorizationBody, M as DisableTotpPath, O as ExchangePatInput, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, f as RevokeTokenBody, it as paths, j as RevokePatPath, n as RegisterWebauthnInput, p as SudoBody, r as RegisterWebauthnOptionsResult, rt as components, tt as GetDeviceAuthorizationTokenBody, v as AssertSamlBody, z as GetMeMaintainersQuery } from "./types-BXybSjn-.js";
4
4
  import * as z$1 from "zod";
5
5
  //#region src/clients/auth/login/schemas.d.ts
6
6
  declare const passwordInputSchema: z$1.ZodObject<{
@@ -456,4 +456,4 @@ declare const createAuthClient: ({ baseUrl, middlewares }: AuthClientInitOptions
456
456
  };
457
457
  //#endregion
458
458
  export { PasswordInput as A, ApiLoginSuccess as C, LoginUser as D, LoginResultFor as E, mfaChallengeSchema as F, oidcInputSchema as I, passwordInputSchema as L, apiLoginSuccessSchema as M, browserLoginResultSchema as N, MfaChallenge as O, browserLoginSuccessSchema as P, ApiLoginResult as S, BrowserLoginSuccess as T, MfaWebauthnInput as _, RefreshTokenInput as a, mfaWebauthnInputSchema as b, ChangePasswordInput as c, changeInputSchema as d, resetInputSchema as f, MfaMethod as g, MfaCodeInput as h, RefreshSessionInput as i, apiLoginResultSchema as j, OidcInput as k, ResetInput as l, MFA_METHOD as m, AuthOpenApiFetchClient as n, refreshSessionInputSchema as o, resetRequestInputSchema as p, createAuthClient as r, refreshTokenInputSchema as s, AuthClientInitOptions as t, ResetRequestInput as u, TotpVerifyInput as v, BrowserLoginResult as w, totpVerifyInputSchema as x, mfaCodeInputSchema as y };
459
- //# sourceMappingURL=authClient-BYIGzL_u.d.ts.map
459
+ //# sourceMappingURL=authClient-6Aau_4Zt.d.ts.map
@@ -1,6 +1,6 @@
1
- import { r as OpenapiBodyType, s as OpenapiPathType, t as createOpenapiFetchClient } from "./index-ChDl6ig5.cjs";
2
- import { n as ClientInitOptions } from "./types-sOM2_KPc.cjs";
3
- import { $ as CreateDeviceAuthorizationBody, M as DisableTotpPath, O as ExchangePatInput, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, f as RevokeTokenBody, it as paths, j as RevokePatPath, n as RegisterWebauthnInput, p as SudoBody, r as RegisterWebauthnOptionsResult, rt as components, tt as GetDeviceAuthorizationTokenBody, v as AssertSamlBody, z as GetMeMaintainersQuery } from "./types-EkyQ0_10.cjs";
1
+ import { r as OpenapiBodyType, s as OpenapiPathType, t as createOpenapiFetchClient } from "./index-CL4iKFic.cjs";
2
+ import { n as ClientInitOptions } from "./types-O6XM48J8.cjs";
3
+ import { $ as CreateDeviceAuthorizationBody, M as DisableTotpPath, O as ExchangePatInput, S as GetPkceTokenBody, T as CreatePatInput, U as GetMeProjectsQuery, V as GetMeOrganizationsQuery, Z as ApproveDeviceAuthorizationBody, _ as RevokeSessionPath, a as RemoveWebauthnInput, b as InitiateSamlBody, f as RevokeTokenBody, it as paths, j as RevokePatPath, n as RegisterWebauthnInput, p as SudoBody, r as RegisterWebauthnOptionsResult, rt as components, tt as GetDeviceAuthorizationTokenBody, v as AssertSamlBody, z as GetMeMaintainersQuery } from "./types-BnmsuDfH.cjs";
4
4
  import * as z$1 from "zod";
5
5
  //#region src/clients/auth/login/schemas.d.ts
6
6
  declare const passwordInputSchema: z$1.ZodObject<{
@@ -456,4 +456,4 @@ declare const createAuthClient: ({ baseUrl, middlewares }: AuthClientInitOptions
456
456
  };
457
457
  //#endregion
458
458
  export { PasswordInput as A, ApiLoginSuccess as C, LoginUser as D, LoginResultFor as E, mfaChallengeSchema as F, oidcInputSchema as I, passwordInputSchema as L, apiLoginSuccessSchema as M, browserLoginResultSchema as N, MfaChallenge as O, browserLoginSuccessSchema as P, ApiLoginResult as S, BrowserLoginSuccess as T, MfaWebauthnInput as _, RefreshTokenInput as a, mfaWebauthnInputSchema as b, ChangePasswordInput as c, changeInputSchema as d, resetInputSchema as f, MfaMethod as g, MfaCodeInput as h, RefreshSessionInput as i, apiLoginResultSchema as j, OidcInput as k, ResetInput as l, MFA_METHOD as m, AuthOpenApiFetchClient as n, refreshSessionInputSchema as o, resetRequestInputSchema as p, createAuthClient as r, refreshTokenInputSchema as s, AuthClientInitOptions as t, ResetRequestInput as u, TotpVerifyInput as v, BrowserLoginResult as w, totpVerifyInputSchema as x, mfaCodeInputSchema as y };
459
- //# sourceMappingURL=authClient-D06srBQE.d.cts.map
459
+ //# sourceMappingURL=authClient-B3P6WtWW.d.cts.map
@@ -16,7 +16,6 @@ const createBillingClient = ({ baseUrl, middlewares, auth }) => {
16
16
  * Credit balance of the project the token identifies.
17
17
  *
18
18
  * - Answers only for a project carrying the `pay-as-you-go` feature.
19
- * - `stats` is absent unless the project has consumption to report.
20
19
  */
21
20
  const getCredits = async (signal) => {
22
21
  const { data } = await client.get("/credits", {}, { signal });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/billing/billingClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\n\nexport const createBillingClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n /**\n * Credit balance of the project the token identifies.\n *\n * - Answers only for a project carrying the `pay-as-you-go` feature.\n * - `stats` is absent unless the project has consumption to report.\n */\n const getCredits = async (signal?: AbortSignal) => {\n const { data } = await client.get('/credits', {}, { signal });\n\n return data;\n };\n\n /**\n * The same balance, with an automatic top-up attempted first.\n *\n * - The top-up runs only when the balance is at or below zero.\n * - It needs the project's automatic top-up configuration\n * (`management.payAsYouGo.getTopUpSetting`); without one the balance comes back unchanged.\n * - A charge that fails does not fail the call — compare `remaining` against the prior read.\n */\n const getCreditsAndTopUp = async (signal?: AbortSignal) => {\n const { data } = await client.post('/credits', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getCredits,\n getCreditsAndTopUp,\n };\n};\n"],"mappings":";;;;AAMA,MAAa,uBAAuB,EAAE,SAAS,aAAa,WAA8B;CACxF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;;;;;;;CAQA,MAAM,aAAa,OAAO,WAAyB;EACjD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;EAE5D,OAAO;CACT;;;;;;;;;CAUA,MAAM,qBAAqB,OAAO,WAAyB;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;EAE7D,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders"],"sources":["../../src/clients/billing/billingClient.ts"],"sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\n\nexport const createBillingClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/health-check', {}, { signal });\n\n return data;\n };\n\n /**\n * Credit balance of the project the token identifies.\n *\n * - Answers only for a project carrying the `pay-as-you-go` feature.\n */\n const getCredits = async (signal?: AbortSignal) => {\n const { data } = await client.get('/credits', {}, { signal });\n\n return data;\n };\n\n /**\n * The same balance, with an automatic top-up attempted first.\n *\n * - The top-up runs only when the balance is at or below zero.\n * - It needs the project's automatic top-up configuration\n * (`management.payAsYouGo.getTopUpSetting`); without one the balance comes back unchanged.\n * - A charge that fails does not fail the call — compare `remaining` against the prior read.\n */\n const getCreditsAndTopUp = async (signal?: AbortSignal) => {\n const { data } = await client.post('/credits', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getCredits,\n getCreditsAndTopUp,\n };\n};\n"],"mappings":";;;;AAMA,MAAa,uBAAuB,EAAE,SAAS,aAAa,WAA8B;CACxF,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CAED,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEjE,OAAO;CACT;;;;;;CAOA,MAAM,aAAa,OAAO,WAAyB;EACjD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;EAE5D,OAAO;CACT;;;;;;;;;CAUA,MAAM,qBAAqB,OAAO,WAAyB;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;EAE7D,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;CACF;AACF"}