@keboola/api-client 41.0.0 → 43.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 (395) hide show
  1. package/API-SURFACE.md +44 -3
  2. package/CHANGELOG.md +170 -0
  3. package/README.md +1 -1
  4. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs → ManagementClientAuthError-BFZOtLgj.cjs} +2 -2
  5. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs.map → ManagementClientAuthError-BFZOtLgj.cjs.map} +1 -1
  6. package/dist/{ManagementClientAuthError-H30lti_Q.js → ManagementClientAuthError-DUbXlry2.js} +2 -2
  7. package/dist/{ManagementClientAuthError-H30lti_Q.js.map → ManagementClientAuthError-DUbXlry2.js.map} +1 -1
  8. package/dist/ai/index.cjs +2 -2
  9. package/dist/ai/index.js +2 -2
  10. package/dist/{appLogs-BBkkUOW1.js → appLogs-DfkItQCO.js} +2 -2
  11. package/dist/{appLogs-BBkkUOW1.js.map → appLogs-DfkItQCO.js.map} +1 -1
  12. package/dist/{appLogs-B9zFJIuy.cjs → appLogs-oZvt59mk.cjs} +2 -2
  13. package/dist/{appLogs-B9zFJIuy.cjs.map → appLogs-oZvt59mk.cjs.map} +1 -1
  14. package/dist/apps/index.cjs +3 -3
  15. package/dist/apps/index.js +3 -3
  16. package/dist/assets/index.cjs +1 -1
  17. package/dist/assets/index.js +1 -1
  18. package/dist/auth/index.cjs +1 -1
  19. package/dist/auth/index.d.cts +1 -1
  20. package/dist/auth/index.d.ts +1 -1
  21. package/dist/auth/index.js +1 -1
  22. package/dist/auth/types.d.cts +2 -2
  23. package/dist/auth/types.d.ts +2 -2
  24. package/dist/{auth-DworfoPy.js → auth-DUHTJTwS.js} +2 -2
  25. package/dist/{auth-DworfoPy.js.map → auth-DUHTJTwS.js.map} +1 -1
  26. package/dist/{auth-Dm0F2rOh.cjs → auth-zfI04oj7.cjs} +2 -2
  27. package/dist/{auth-Dm0F2rOh.cjs.map → auth-zfI04oj7.cjs.map} +1 -1
  28. package/dist/{authClient-BmuUo0J4.cjs → authClient-BxqRGR5c.cjs} +39 -5
  29. package/dist/authClient-BxqRGR5c.cjs.map +1 -0
  30. package/dist/{authClient-vEt_7_uk.d.cts → authClient-CBVAT3v9.d.cts} +49 -2
  31. package/dist/{authClient-CHXWJ9x3.d.ts → authClient-CRumc934.d.ts} +49 -2
  32. package/dist/{authClient-CgcDGd30.js → authClient-CX4buUMc.js} +39 -5
  33. package/dist/authClient-CX4buUMc.js.map +1 -0
  34. package/dist/billing/index.cjs +2 -2
  35. package/dist/billing/index.js +2 -2
  36. package/dist/businessWorkspaceApi/index.cjs +1 -1
  37. package/dist/businessWorkspaceApi/index.js +1 -1
  38. package/dist/{businessWorkspaceApi-BLUdefRF.js → businessWorkspaceApi-DFky1k61.js} +3 -3
  39. package/dist/{businessWorkspaceApi-BLUdefRF.js.map → businessWorkspaceApi-DFky1k61.js.map} +1 -1
  40. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs → businessWorkspaceApi-Uzqu0PJM.cjs} +3 -3
  41. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs.map → businessWorkspaceApi-Uzqu0PJM.cjs.map} +1 -1
  42. package/dist/chat/index.cjs +3 -3
  43. package/dist/chat/index.js +3 -3
  44. package/dist/collect-97WhfEpt.js +30 -0
  45. package/dist/collect-97WhfEpt.js.map +1 -0
  46. package/dist/collect-B5TCNiT1.cjs +35 -0
  47. package/dist/collect-B5TCNiT1.cjs.map +1 -0
  48. package/dist/{componentId-_IKXxICq.cjs → componentId-D4jp6a13.cjs} +17 -1
  49. package/dist/componentId-D4jp6a13.cjs.map +1 -0
  50. package/dist/{componentId-BJLfnaGc.js → componentId-DmHwHG5V.js} +17 -1
  51. package/dist/componentId-DmHwHG5V.js.map +1 -0
  52. package/dist/{configurations-VlfQ_37Y.cjs → configurations-D_Rbs0Wl.cjs} +2 -2
  53. package/dist/{configurations-VlfQ_37Y.cjs.map → configurations-D_Rbs0Wl.cjs.map} +1 -1
  54. package/dist/{configurations-CF3xz7RB.js → configurations-DcpUlC8I.js} +2 -2
  55. package/dist/{configurations-CF3xz7RB.js.map → configurations-DcpUlC8I.js.map} +1 -1
  56. package/dist/constants/index.cjs +1 -1
  57. package/dist/constants/index.d.cts +1 -1
  58. package/dist/constants/index.d.ts +1 -1
  59. package/dist/constants/index.js +1 -1
  60. package/dist/createAbortError-BxupOt-6.js +6 -0
  61. package/dist/createAbortError-BxupOt-6.js.map +1 -0
  62. package/dist/createAbortError-RendOpo7.cjs +11 -0
  63. package/dist/createAbortError-RendOpo7.cjs.map +1 -0
  64. package/dist/{createFetchClient-Cwp8max9.cjs → createFetchClient-BgihytBn.cjs} +2 -1
  65. package/dist/createFetchClient-BgihytBn.cjs.map +1 -0
  66. package/dist/{createFetchClient-DXHQK63w.js → createFetchClient-cgWkwgAQ.js} +2 -1
  67. package/dist/createFetchClient-cgWkwgAQ.js.map +1 -0
  68. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs → createGenericFetchClient-C7Y0YVfc.cjs} +2 -2
  69. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs.map → createGenericFetchClient-C7Y0YVfc.cjs.map} +1 -1
  70. package/dist/{createGenericFetchClient-Dg1rgzmG.js → createGenericFetchClient-CX9Hn3Aq.js} +2 -2
  71. package/dist/{createGenericFetchClient-Dg1rgzmG.js.map → createGenericFetchClient-CX9Hn3Aq.js.map} +1 -1
  72. package/dist/{createOpenapiFetchClient-DZUOVupy.js → createOpenapiFetchClient-BxcLLU_N.js} +2 -2
  73. package/dist/{createOpenapiFetchClient-DZUOVupy.js.map → createOpenapiFetchClient-BxcLLU_N.js.map} +1 -1
  74. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs → createOpenapiFetchClient-DY5s-aH6.cjs} +2 -2
  75. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs.map → createOpenapiFetchClient-DY5s-aH6.cjs.map} +1 -1
  76. package/dist/dataScience/index.cjs +2 -2
  77. package/dist/dataScience/index.d.cts +1 -1
  78. package/dist/dataScience/index.d.ts +1 -1
  79. package/dist/dataScience/index.js +2 -2
  80. package/dist/dataScience/types.d.cts +1 -1
  81. package/dist/dataScience/types.d.ts +1 -1
  82. package/dist/{dataScience-B5QxZnvW.cjs → dataScience-BoS8Xfvx.cjs} +5 -5
  83. package/dist/{dataScience-B5QxZnvW.cjs.map → dataScience-BoS8Xfvx.cjs.map} +1 -1
  84. package/dist/{dataScience-OXcwdk1p.js → dataScience-BxRoGfnG.js} +5 -5
  85. package/dist/{dataScience-OXcwdk1p.js.map → dataScience-BxRoGfnG.js.map} +1 -1
  86. package/dist/developerPortal/index.cjs +1 -1
  87. package/dist/developerPortal/index.d.cts +2 -2
  88. package/dist/developerPortal/index.d.ts +2 -2
  89. package/dist/developerPortal/index.js +1 -1
  90. package/dist/developerPortal/types.d.cts +1 -1
  91. package/dist/developerPortal/types.d.ts +1 -1
  92. package/dist/{developerPortalClient-B1QZ1rYi.js → developerPortalClient-C7s0kpjK.js} +3 -3
  93. package/dist/{developerPortalClient-B1QZ1rYi.js.map → developerPortalClient-C7s0kpjK.js.map} +1 -1
  94. package/dist/{developerPortalClient-CLPpBksD.cjs → developerPortalClient-DFHEsrlt.cjs} +3 -3
  95. package/dist/{developerPortalClient-CLPpBksD.cjs.map → developerPortalClient-DFHEsrlt.cjs.map} +1 -1
  96. package/dist/domain/permissions/index.d.cts +2 -2
  97. package/dist/domain/permissions/index.d.ts +2 -2
  98. package/dist/domain/storageTable/index.cjs +7 -1
  99. package/dist/domain/storageTable/index.d.cts +2 -2
  100. package/dist/domain/storageTable/index.d.ts +2 -2
  101. package/dist/domain/storageTable/index.js +2 -2
  102. package/dist/editor/index.cjs +2 -2
  103. package/dist/editor/index.js +2 -2
  104. package/dist/encryption/index.cjs +1 -1
  105. package/dist/encryption/index.d.cts +1 -1
  106. package/dist/encryption/index.d.ts +1 -1
  107. package/dist/encryption/index.js +1 -1
  108. package/dist/encryption/types.d.cts +1 -1
  109. package/dist/encryption/types.d.ts +1 -1
  110. package/dist/import/index.cjs +1 -1
  111. package/dist/import/index.js +1 -1
  112. package/dist/{import-CNk89mqy.cjs → import-BSYvG3Uy.cjs} +3 -3
  113. package/dist/{import-CNk89mqy.cjs.map → import-BSYvG3Uy.cjs.map} +1 -1
  114. package/dist/{import-DiMQCzLa.js → import-CXBcFVbk.js} +3 -3
  115. package/dist/{import-DiMQCzLa.js.map → import-CXBcFVbk.js.map} +1 -1
  116. package/dist/{index-DNThyEej.d.cts → index-04pgr-EO.d.cts} +14 -3
  117. package/dist/{index-DCRKjihs.d.ts → index-B03vhWSX.d.ts} +117 -90
  118. package/dist/{index-BDZvaRud.d.ts → index-B72LTF-k.d.ts} +6 -3
  119. package/dist/{index-CcMHJcuP.d.cts → index-BHWTa4YN.d.cts} +3 -2
  120. package/dist/{index-DOAZmWvh.d.cts → index-BMiZx-4_.d.cts} +6 -3
  121. package/dist/{index-CaaTOANF.d.ts → index-BQZ9njUC.d.ts} +598 -85
  122. package/dist/{index--ZpnE3YT.d.cts → index-BUsLHNOA.d.cts} +2 -2
  123. package/dist/{index-Cz0MXhzs.d.cts → index-C7KThHI3.d.cts} +6 -2
  124. package/dist/{index-D-VMgpGc.d.ts → index-CAvT_ahE.d.ts} +6 -2
  125. package/dist/{index-D7-o-oGa.d.ts → index-CBWfpd-0.d.ts} +2 -2
  126. package/dist/index-CGCXR_6Q.d.ts +273 -0
  127. package/dist/{index-C11JSxBY.d.ts → index-CX8GAP2g.d.ts} +13 -8
  128. package/dist/{index-Cvbjp3jx.d.cts → index-CdS-c6sC.d.cts} +6 -6
  129. package/dist/{index-cWp_V6K5.d.cts → index-Cm04GKm9.d.cts} +598 -85
  130. package/dist/{index-C4TNAA8-.d.cts → index-Cvkrjh--.d.cts} +13 -8
  131. package/dist/{index-ByRpNVcs.d.cts → index-D3HFMfJJ.d.cts} +117 -90
  132. package/dist/{index-DnQTuc6t.d.ts → index-D7of2MMN.d.ts} +6 -6
  133. package/dist/index-DINB7vsV.d.cts +273 -0
  134. package/dist/{index-B5w7WlaU.d.cts → index-DeQDdut6.d.cts} +17 -1
  135. package/dist/{index-B5w7WlaU.d.ts → index-DeQDdut6.d.ts} +17 -1
  136. package/dist/{index-CXcWpZQ2.d.ts → index-P1vR966i.d.cts} +74 -2
  137. package/dist/{index-CXcWpZQ2.d.cts → index-P1vR966i.d.ts} +74 -2
  138. package/dist/{index-Qb7X6-ph.d.ts → index-R-w0Zncz.d.ts} +14 -3
  139. package/dist/{index-D_-4uQF8.d.ts → index-zyxZVJnd.d.ts} +3 -2
  140. package/dist/index.cjs +68 -41
  141. package/dist/index.cjs.map +1 -1
  142. package/dist/index.d.cts +3 -3
  143. package/dist/index.d.ts +3 -3
  144. package/dist/index.js +67 -41
  145. package/dist/index.js.map +1 -1
  146. package/dist/{isLoginPageRedirect-XPwAOKK3.js → isLoginPageRedirect-CsjF95_P.js} +2 -2
  147. package/dist/{isLoginPageRedirect-XPwAOKK3.js.map → isLoginPageRedirect-CsjF95_P.js.map} +1 -1
  148. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs → isLoginPageRedirect-c451CoWW.cjs} +2 -2
  149. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs.map → isLoginPageRedirect-c451CoWW.cjs.map} +1 -1
  150. package/dist/{jobStatus-CfRtsIpv.js → jobStatus-CDp4r5JQ.js} +3 -5
  151. package/dist/jobStatus-CDp4r5JQ.js.map +1 -0
  152. package/dist/{jobStatus-BMlsyXWI.cjs → jobStatus-CcNlIy5R.cjs} +5 -13
  153. package/dist/{jobStatus-CfRtsIpv.js.map → jobStatus-CcNlIy5R.cjs.map} +1 -1
  154. package/dist/kaiAgent/index.cjs +1 -1
  155. package/dist/kaiAgent/index.d.cts +2 -2
  156. package/dist/kaiAgent/index.d.ts +2 -2
  157. package/dist/kaiAgent/index.js +1 -1
  158. package/dist/kaiAgent/types.d.cts +1 -1
  159. package/dist/kaiAgent/types.d.ts +1 -1
  160. package/dist/{kaiAgent-QNoeVKPs.cjs → kaiAgent-ph4DRKlT.cjs} +21 -5
  161. package/dist/kaiAgent-ph4DRKlT.cjs.map +1 -0
  162. package/dist/{kaiAgent-Dp20HLTh.js → kaiAgent-xBpUwLeQ.js} +21 -5
  163. package/dist/kaiAgent-xBpUwLeQ.js.map +1 -0
  164. package/dist/{kaiMemory-D0Y_16U4.js → kaiMemory-BAniZZAN.js} +2 -2
  165. package/dist/{kaiMemory-D0Y_16U4.js.map → kaiMemory-BAniZZAN.js.map} +1 -1
  166. package/dist/{kaiMemory-CClSPInt.cjs → kaiMemory-U0DG-CpY.cjs} +2 -2
  167. package/dist/{kaiMemory-CClSPInt.cjs.map → kaiMemory-U0DG-CpY.cjs.map} +1 -1
  168. package/dist/management/index.cjs +1 -1
  169. package/dist/management/index.d.cts +1 -1
  170. package/dist/management/index.d.ts +1 -1
  171. package/dist/management/index.js +1 -1
  172. package/dist/management/types.d.cts +2 -2
  173. package/dist/management/types.d.ts +2 -2
  174. package/dist/{management-CCY0IYnq.cjs → management-5597SiC7.cjs} +79 -11
  175. package/dist/management-5597SiC7.cjs.map +1 -0
  176. package/dist/{management-DvmPiG64.js → management-D46KlXts.js} +79 -11
  177. package/dist/management-D46KlXts.js.map +1 -0
  178. package/dist/metastore/index.cjs +1 -1
  179. package/dist/metastore/index.d.cts +1 -1
  180. package/dist/metastore/index.d.ts +1 -1
  181. package/dist/metastore/index.js +1 -1
  182. package/dist/metastore/types.d.cts +2 -2
  183. package/dist/metastore/types.d.ts +2 -2
  184. package/dist/{metastore-XtWciCZT.cjs → metastore-DwMFlP2d.cjs} +52 -7
  185. package/dist/metastore-DwMFlP2d.cjs.map +1 -0
  186. package/dist/{metastore-BycJxe7A.js → metastore-_OskcLGz.js} +52 -7
  187. package/dist/metastore-_OskcLGz.js.map +1 -0
  188. package/dist/microsoftGraph/index.cjs +2 -2
  189. package/dist/microsoftGraph/index.d.cts +2 -1
  190. package/dist/microsoftGraph/index.d.ts +2 -1
  191. package/dist/microsoftGraph/index.js +2 -2
  192. package/dist/microsoftGraph/types.d.cts +1 -1
  193. package/dist/microsoftGraph/types.d.ts +1 -1
  194. package/dist/{middleware-CBwrtgQd.js → middleware-Drbo_UIZ.js} +2 -2
  195. package/dist/{middleware-CBwrtgQd.js.map → middleware-Drbo_UIZ.js.map} +1 -1
  196. package/dist/{middleware-IjYx3d5u.cjs → middleware-xhg2r2fE.cjs} +2 -2
  197. package/dist/{middleware-IjYx3d5u.cjs.map → middleware-xhg2r2fE.cjs.map} +1 -1
  198. package/dist/notifications/index.cjs +3 -3
  199. package/dist/notifications/index.js +3 -3
  200. package/dist/oauth/index.cjs +1 -1
  201. package/dist/oauth/index.d.cts +1 -1
  202. package/dist/oauth/index.d.ts +1 -1
  203. package/dist/oauth/index.js +1 -1
  204. package/dist/oauth/types.d.cts +1 -1
  205. package/dist/oauth/types.d.ts +1 -1
  206. package/dist/{oauth--2p8jkJf.cjs → oauth-L0Uic3YA.cjs} +5 -5
  207. package/dist/{oauth--2p8jkJf.cjs.map → oauth-L0Uic3YA.cjs.map} +1 -1
  208. package/dist/{oauth-l5zE39cD.js → oauth-TWwAv-va.js} +5 -5
  209. package/dist/{oauth-l5zE39cD.js.map → oauth-TWwAv-va.js.map} +1 -1
  210. package/dist/omnisearch/index.cjs +2 -2
  211. package/dist/omnisearch/index.d.cts +1 -1
  212. package/dist/omnisearch/index.d.ts +1 -1
  213. package/dist/omnisearch/index.js +2 -2
  214. package/dist/omnisearch/types.d.cts +1 -1
  215. package/dist/omnisearch/types.d.ts +1 -1
  216. package/dist/{project-cHKuGvqJ.d.cts → project-B8wtlstY.d.cts} +2 -2
  217. package/dist/{project-B15gStbM.d.ts → project-BCc3mpAy.d.ts} +2 -2
  218. package/dist/queryService/index.cjs +1 -1
  219. package/dist/queryService/index.d.cts +1 -1
  220. package/dist/queryService/index.d.ts +1 -1
  221. package/dist/queryService/index.js +1 -1
  222. package/dist/{queryService-CQzclHdL.cjs → queryService-DSww_TJp.cjs} +6 -6
  223. package/dist/{queryService-CQzclHdL.cjs.map → queryService-DSww_TJp.cjs.map} +1 -1
  224. package/dist/{queryService-CCOYbRbw.js → queryService-Drvy1ztW.js} +6 -6
  225. package/dist/{queryService-CCOYbRbw.js.map → queryService-Drvy1ztW.js.map} +1 -1
  226. package/dist/queue/index.cjs +1 -1
  227. package/dist/queue/index.d.cts +1 -1
  228. package/dist/queue/index.d.ts +1 -1
  229. package/dist/queue/index.js +1 -1
  230. package/dist/{queue-Cowbg6bR.js → queue-Ci_f_5TI.js} +7 -32
  231. package/dist/queue-Ci_f_5TI.js.map +1 -0
  232. package/dist/{queue-UG_BWKIC.cjs → queue-DpMvv8C-.cjs} +7 -38
  233. package/dist/{queue-Cowbg6bR.js.map → queue-DpMvv8C-.cjs.map} +1 -1
  234. package/dist/scheduler/index.cjs +3 -3
  235. package/dist/scheduler/index.d.cts +13 -1
  236. package/dist/scheduler/index.d.ts +13 -1
  237. package/dist/scheduler/index.js +3 -3
  238. package/dist/scheduler/types.d.cts +1 -1
  239. package/dist/scheduler/types.d.ts +1 -1
  240. package/dist/{schema-D1oxyn1O.d.cts → schema-DJa9WBjR.d.cts} +28 -1
  241. package/dist/{schema-D1oxyn1O.d.ts → schema-DJa9WBjR.d.ts} +28 -1
  242. package/dist/sdk/configurations/index.cjs +1 -1
  243. package/dist/sdk/configurations/index.d.cts +4 -4
  244. package/dist/sdk/configurations/index.d.ts +4 -4
  245. package/dist/sdk/configurations/index.js +1 -1
  246. package/dist/sdk/developerPortal/index.cjs +3 -3
  247. package/dist/sdk/developerPortal/index.d.cts +13 -8
  248. package/dist/sdk/developerPortal/index.d.ts +13 -8
  249. package/dist/sdk/developerPortal/index.js +3 -3
  250. package/dist/sdk/kaiMemory/index.cjs +1 -1
  251. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  252. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  253. package/dist/sdk/kaiMemory/index.js +1 -1
  254. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  255. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  256. package/dist/sdk/queryService/index.cjs +1 -1
  257. package/dist/sdk/queryService/index.d.cts +1 -1
  258. package/dist/sdk/queryService/index.d.ts +1 -1
  259. package/dist/sdk/queryService/index.js +1 -1
  260. package/dist/sdk/semanticLayer/index.cjs +2 -1
  261. package/dist/sdk/semanticLayer/index.d.cts +10 -3
  262. package/dist/sdk/semanticLayer/index.d.ts +10 -3
  263. package/dist/sdk/semanticLayer/index.js +2 -2
  264. package/dist/sdk/semanticLayer/types.d.cts +2 -2
  265. package/dist/sdk/semanticLayer/types.d.ts +2 -2
  266. package/dist/sdk/storage/index.cjs +12 -24
  267. package/dist/sdk/storage/index.cjs.map +1 -1
  268. package/dist/sdk/storage/index.d.cts +1 -1
  269. package/dist/sdk/storage/index.d.ts +1 -1
  270. package/dist/sdk/storage/index.js +12 -24
  271. package/dist/sdk/storage/index.js.map +1 -1
  272. package/dist/sdk/tag/index.d.cts +2 -2
  273. package/dist/sdk/tag/index.d.ts +2 -2
  274. package/dist/sdk/tag/types.d.cts +1 -1
  275. package/dist/sdk/tag/types.d.ts +1 -1
  276. package/dist/sdk/vault/index.d.cts +1 -1
  277. package/dist/sdk/vault/index.d.ts +1 -1
  278. package/dist/{semanticLayer-CKDVkU56.cjs → semanticLayer-D3NDh_QH.cjs} +115 -20
  279. package/dist/semanticLayer-D3NDh_QH.cjs.map +1 -0
  280. package/dist/{semanticLayer-pYy082Ju.js → semanticLayer-Ddg0LSnt.js} +110 -21
  281. package/dist/semanticLayer-Ddg0LSnt.js.map +1 -0
  282. package/dist/status/index.cjs +1 -1
  283. package/dist/status/index.js +1 -1
  284. package/dist/storage/index.cjs +4 -4
  285. package/dist/storage/index.d.cts +2 -2
  286. package/dist/storage/index.d.ts +2 -2
  287. package/dist/storage/index.js +4 -4
  288. package/dist/storage/types.d.cts +3 -3
  289. package/dist/storage/types.d.ts +3 -3
  290. package/dist/{storage-CZQHZcXG.js → storage-C-lyo_iX.js} +273 -135
  291. package/dist/storage-C-lyo_iX.js.map +1 -0
  292. package/dist/{storage-JinL1y1s.cjs → storage-DAJquqEw.cjs} +273 -135
  293. package/dist/storage-DAJquqEw.cjs.map +1 -0
  294. package/dist/{storageTable-C9crh4Ef.cjs → storageTable-BNOR2FCh.cjs} +137 -5
  295. package/dist/storageTable-BNOR2FCh.cjs.map +1 -0
  296. package/dist/{storageTable-DslXtqNL.js → storageTable-BldTNyEk.js} +102 -6
  297. package/dist/storageTable-BldTNyEk.js.map +1 -0
  298. package/dist/stream/index.cjs +3 -3
  299. package/dist/stream/index.js +3 -3
  300. package/dist/syncActions/index.cjs +4 -1
  301. package/dist/syncActions/index.d.cts +3 -2
  302. package/dist/syncActions/index.d.ts +3 -2
  303. package/dist/syncActions/index.js +2 -2
  304. package/dist/syncActions/types.d.cts +2 -2
  305. package/dist/syncActions/types.d.ts +2 -2
  306. package/dist/syncActions-BQ8kMgL6.js +1191 -0
  307. package/dist/syncActions-BQ8kMgL6.js.map +1 -0
  308. package/dist/syncActions-DyxNmbUR.cjs +1216 -0
  309. package/dist/syncActions-DyxNmbUR.cjs.map +1 -0
  310. package/dist/telemetry/index.cjs +3 -3
  311. package/dist/telemetry/index.js +3 -3
  312. package/dist/{types-DWiLcrxt.d.cts → types-04GTqleJ.d.cts} +3 -3
  313. package/dist/{types-DRCMBt89.d.ts → types-2Do0DZ60.d.ts} +3 -3
  314. package/dist/{types-n4PTnLii.d.ts → types-AYX7VtS6.d.ts} +179 -2
  315. package/dist/{types-DIiOMV-t.d.ts → types-B3P5yAuI.d.ts} +5 -1
  316. package/dist/{types-BLNB882w.d.cts → types-B3i04d_A.d.cts} +5 -1
  317. package/dist/{types-CZXPu3gn.d.ts → types-BBUZ9EHs.d.ts} +4 -1
  318. package/dist/{types-Dtuvhm3K.d.cts → types-BWmLo73i.d.cts} +749 -186
  319. package/dist/{types-CQFOCQzk.d.ts → types-BaSlU0uo.d.ts} +510 -5
  320. package/dist/{types-DEzW1CfI.d.cts → types-BgHtMe8s.d.cts} +3 -3
  321. package/dist/{types-BiMahEK8.d.cts → types-BgVt8SUY.d.cts} +126 -62
  322. package/dist/{types-BS4jwuMi.d.ts → types-BhEx9iRx.d.ts} +3068 -621
  323. package/dist/{types-CP_LBmw3.d.cts → types-BhOUS9j1.d.cts} +26 -3
  324. package/dist/{types-tKkeLa2B.d.cts → types-BiEh5c_t.d.cts} +60 -8
  325. package/dist/{types-CMzQSHAQ.d.cts → types-BzPuxmaR.d.cts} +3 -3
  326. package/dist/{types-CKmTZSPG.d.ts → types-C0rVtqz2.d.ts} +126 -62
  327. package/dist/{types-Bl03Cg2n.d.cts → types-CAAgCRmE.d.cts} +31 -5
  328. package/dist/{types-RbrfiY8T.d.ts → types-CAp1VexS.d.ts} +3 -3
  329. package/dist/{types-DinIJ1D_.d.cts → types-CBPKpLTf.d.cts} +179 -2
  330. package/dist/{types-BIECJYun.d.ts → types-CN6huo55.d.ts} +406 -5
  331. package/dist/{types-Cg14ncdV.d.ts → types-CV7jmgtX.d.ts} +3 -3
  332. package/dist/{types-CqwHP7mN.d.cts → types-CcYxlqtB.d.cts} +510 -5
  333. package/dist/{types-DE9hgr7i.d.cts → types-CgBzm1YR.d.cts} +106 -1
  334. package/dist/{types-FwRmjsNN.d.ts → types-CigD_EF5.d.ts} +18 -6
  335. package/dist/{types-B_iLJlp4.d.ts → types-CwZgZqrA.d.ts} +31 -5
  336. package/dist/{types-B61aCifg.d.cts → types-D9axmt5o.d.cts} +4 -1
  337. package/dist/{types-CWyXTMwy.d.ts → types-DaMmgW-O.d.ts} +106 -1
  338. package/dist/{types-BTK7Bv3n.d.cts → types-DgPt4LY_.d.cts} +406 -5
  339. package/dist/{types-bc-4z_gc.d.cts → types-DyArI_Jq.d.cts} +18 -6
  340. package/dist/{types-q-1r_9d1.d.ts → types-DzV6LaZq.d.ts} +60 -8
  341. package/dist/{types-DekYAlA-.d.ts → types-QSchmyvO.d.ts} +3 -3
  342. package/dist/{types-DKc1gmd9.d.ts → types-R3AFJD6r.d.ts} +749 -186
  343. package/dist/{types-6kuMW4JW.d.cts → types-c_bsDkV6.d.cts} +3 -3
  344. package/dist/{types-DgJeO9Nd.d.ts → types-gcAb6olM.d.ts} +26 -3
  345. package/dist/{types-DDOa07rU.d.cts → types-sV9OaqTI.d.cts} +3068 -621
  346. package/dist/{validateConnectionStatus-BEYkQpu9.cjs → validateConnectionStatus-Ca1uEizv.cjs} +3 -3
  347. package/dist/{validateConnectionStatus-BEYkQpu9.cjs.map → validateConnectionStatus-Ca1uEizv.cjs.map} +1 -1
  348. package/dist/{validateConnectionStatus-BEGu8wXT.js → validateConnectionStatus-gFsBi5FV.js} +3 -3
  349. package/dist/{validateConnectionStatus-BEGu8wXT.js.map → validateConnectionStatus-gFsBi5FV.js.map} +1 -1
  350. package/dist/vault/index.cjs +31 -6
  351. package/dist/vault/index.cjs.map +1 -1
  352. package/dist/vault/index.d.cts +1 -1
  353. package/dist/vault/index.d.ts +1 -1
  354. package/dist/vault/index.js +31 -6
  355. package/dist/vault/index.js.map +1 -1
  356. package/dist/vault/types.d.cts +1 -1
  357. package/dist/vault/types.d.ts +1 -1
  358. package/package.json +7 -7
  359. package/surface/auth.md +7 -0
  360. package/surface/dataScience.md +2 -2
  361. package/surface/kaiAgent.md +5 -3
  362. package/surface/management.md +28 -13
  363. package/surface/metastore.md +4 -1
  364. package/surface/queue.md +1 -1
  365. package/surface/scheduler.md +3 -3
  366. package/surface/sdk.md +13 -8
  367. package/surface/storage.md +27 -24
  368. package/surface/syncActions.md +48 -1
  369. package/surface/vault.md +1 -0
  370. package/dist/authClient-BmuUo0J4.cjs.map +0 -1
  371. package/dist/authClient-CgcDGd30.js.map +0 -1
  372. package/dist/componentId-BJLfnaGc.js.map +0 -1
  373. package/dist/componentId-_IKXxICq.cjs.map +0 -1
  374. package/dist/createFetchClient-Cwp8max9.cjs.map +0 -1
  375. package/dist/createFetchClient-DXHQK63w.js.map +0 -1
  376. package/dist/index-DbLFwXgb.d.cts +0 -116
  377. package/dist/index-rwK7GcB2.d.ts +0 -116
  378. package/dist/jobStatus-BMlsyXWI.cjs.map +0 -1
  379. package/dist/kaiAgent-Dp20HLTh.js.map +0 -1
  380. package/dist/kaiAgent-QNoeVKPs.cjs.map +0 -1
  381. package/dist/management-CCY0IYnq.cjs.map +0 -1
  382. package/dist/management-DvmPiG64.js.map +0 -1
  383. package/dist/metastore-BycJxe7A.js.map +0 -1
  384. package/dist/metastore-XtWciCZT.cjs.map +0 -1
  385. package/dist/queue-UG_BWKIC.cjs.map +0 -1
  386. package/dist/semanticLayer-CKDVkU56.cjs.map +0 -1
  387. package/dist/semanticLayer-pYy082Ju.js.map +0 -1
  388. package/dist/storage-CZQHZcXG.js.map +0 -1
  389. package/dist/storage-JinL1y1s.cjs.map +0 -1
  390. package/dist/storageTable-C9crh4Ef.cjs.map +0 -1
  391. package/dist/storageTable-DslXtqNL.js.map +0 -1
  392. package/dist/syncActions-ChNWuhYA.js +0 -646
  393. package/dist/syncActions-ChNWuhYA.js.map +0 -1
  394. package/dist/syncActions-mFlF16cl.cjs +0 -653
  395. package/dist/syncActions-mFlF16cl.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"kaiAgent-QNoeVKPs.cjs","names":["z","createAuthHeaders","createOpenapiFetchClient","createGenericFetchClient","isApiError","HttpStatus"],"sources":["../src/clients/kaiAgent/kaiAgentClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient, isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport type { ProjectToolPolicy, ProjectToolPolicyValue } from '../chat/types';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ArtifactListResponse,\n ArtifactResponse,\n ChatRequest,\n GetArtifactPath,\n GetArtifactsQuery,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n PrepareChatRequest,\n UsageResponse,\n VoteRequest,\n} from './types';\n\nconst projectToolPolicyValueSchema: z.ZodType<ProjectToolPolicyValue> = z.enum([\n 'blocked',\n 'always_ask',\n]);\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n canWriteToolPolicy: z.boolean().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n projectToolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst skillInfoSchema = z.object({\n name: z.string(),\n description: z.string().nullable(),\n source: z.enum(['first-party', 'vendored', 'project']),\n});\n\nconst builtInCommandSchema = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nconst skillsListResponseSchema = z.object({\n skills: z.array(skillInfoSchema),\n commands: z.array(builtInCommandSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\n// `userId` only: kai-agent cannot resolve project members. Join it against\n// `api.management.projects.getProjectUsers`.\nconst spendCapMemberSchema = z.object({\n userId: z.string(),\n overrideLimitPpu: z.number().nullable(),\n effectiveLimitPpu: z.number().nullable(),\n usedPpu: z.number(),\n overrideUpdatedAt: z.string().nullable(),\n overrideUpdatedByUserId: z.string().nullable(),\n});\n\nconst spendCapsViewSchema = z.object({\n // `null` = no configured cap, not unlimited — see `effectiveProjectCapPpu`.\n projectCapPpu: z.number().nullable(),\n // The enforced cap (`projectCapPpu` or kai-agent's DEFAULT_PROJECT_CAP_PPU).\n // Render this; `projectCapPpu` only tells configured from default.\n effectiveProjectCapPpu: z.number(),\n // Platform default regardless of what's saved; validates a cleared-but-unsaved field.\n // Optional on the wire (rollout skew); `withDefaultProjectCap` fills it in.\n defaultProjectCapPpu: z.number().optional(),\n defaultUserLimitPpu: z.number().nullable(),\n projectUsedPpu: z.number(),\n canWrite: z.boolean(),\n members: z.array(spendCapMemberSchema),\n updatedAt: z.string().nullable(),\n updatedByUserId: z.string().nullable(),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\nexport type SpendCapMember = z.infer<typeof spendCapMemberSchema>;\n// `defaultProjectCapPpu` is always present here — `getSpendCaps`/`updateSpendCaps` fill it in.\nexport type SpendCapsView = Omit<z.infer<typeof spendCapsViewSchema>, 'defaultProjectCapPpu'> & {\n defaultProjectCapPpu: number;\n};\nexport type AgentSettings = z.infer<typeof agentSettingsSchema>;\nexport type UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SkillsListResponse = z.infer<typeof skillsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\ntype VotesResponse = z.infer<typeof votesResponseSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n};\n\ntype UpdateSpendCapsRequest = {\n projectCapPpu?: number | null;\n defaultUserLimitPpu?: number | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const clientOptions = {\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/api/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<VotesResponse> => {\n const { data } = await client.get('/api/vote', { query: { chatId } });\n\n const result = votesResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid votes response format');\n }\n\n return result.data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/api/vote', { body: params });\n };\n\n /**\n * Every artifact a chat produced, oldest first.\n *\n * - Read-only by design: artifacts are derived server-side at the end of a turn, so there is\n * no write route to pair with this.\n * - The chat is the authorization — a chat the caller cannot read has no artifacts.\n */\n const getArtifacts = async (\n chatId: GetArtifactsQuery['chatId'],\n signal?: AbortSignal,\n ): Promise<ArtifactListResponse> => {\n const { data } = await client.get('/api/artifacts', { query: { chatId } }, { signal });\n return data;\n };\n\n const getArtifact = async (\n artifactId: GetArtifactPath['id'],\n signal?: AbortSignal,\n ): Promise<ArtifactResponse> => {\n const { data } = await client.get(\n '/api/artifacts/{id}',\n { path: { id: artifactId } },\n {\n signal,\n },\n );\n return data;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n // `freeAllowance` is ahead of the generated schema — a guard turns a missing field into `null`.\n const parsed = z\n .object({\n freeAllowance: z\n .object({ grantedPpu: z.number(), remainingPpu: z.number() })\n .nullable()\n .optional(),\n })\n .safeParse(data);\n const freeAllowance = parsed.success ? (parsed.data.freeAllowance ?? null) : null;\n return { ...data, freeAllowance };\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n /**\n * Ask the engine to build this chat's sandbox before a turn needs one.\n *\n * - The work continues after the response.\n * - A host that does not pre-warm answers 404, returned as `{ started: false }`.\n */\n const prepareChat = async (\n chatId: string,\n signal?: AbortSignal,\n body: PrepareChatRequest = {},\n ): Promise<{ started: boolean }> => {\n try {\n const { data } = await client.post(\n '/api/chat/{id}/prepare',\n { path: { id: chatId }, body },\n { signal },\n );\n return data;\n } catch (error) {\n // 404 = pre-warm not supported here.\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n return { started: false };\n }\n throw error;\n }\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/api/suggestions', { body: request }, { signal });\n return data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateProjectToolPolicy = async (\n toolPermissions: ProjectToolPolicy,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.put<AgentSettings>(\n '/api/settings/tool-permissions',\n { body: { toolPermissions } },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n // An older kai-agent omits `defaultProjectCapPpu`; fall back rather than throw.\n const withDefaultProjectCap = (view: z.infer<typeof spendCapsViewSchema>): SpendCapsView => ({\n ...view,\n defaultProjectCapPpu: view.defaultProjectCapPpu ?? view.effectiveProjectCapPpu,\n });\n\n // Not in `__generated__/schema` yet (see docs/regenerate-api-types.md), hence `genericClient`\n // + zod. Switch to `client.get('/api/settings/spend-caps')` once it regenerates.\n const getSpendCaps = async (signal?: AbortSignal): Promise<SpendCapsView> => {\n const { data } = await genericClient.get<SpendCapsView>(\n '/api/settings/spend-caps',\n {},\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const updateSpendCaps = async (\n request: UpdateSpendCapsRequest,\n signal?: AbortSignal,\n ): Promise<SpendCapsView> => {\n const { data } = await genericClient.patch<SpendCapsView>(\n '/api/settings/spend-caps',\n { body: request },\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const setUserSpendLimit = async (\n userId: string,\n overrideLimitPpu: number | null,\n signal?: AbortSignal,\n ): Promise<SpendCapMember> => {\n const { data } = await genericClient.put<SpendCapMember>(\n `/api/settings/spend-caps/users/${encodeURIComponent(userId)}`,\n { body: { overrideLimitPpu } },\n { signal },\n );\n const result = spendCapMemberSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend cap member response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n const getSkillsList = async (signal?: AbortSignal): Promise<SkillsListResponse> => {\n const { data } = await genericClient.get<SkillsListResponse>('/api/skills', {}, { signal });\n const result = skillsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid skills list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const downloadSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<Blob> => {\n // `parseData` returns a declared octet-stream body as a Blob, bytes intact.\n const { data } = await genericClient.get<Blob>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file/download`,\n { query: { path } },\n { signal },\n );\n if (!(data instanceof Blob)) {\n throw new Error('Invalid sandbox file download response format');\n }\n return data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n // `/health`, not `/ping`: it returns `{\"status\":\"ok\"}` like other services, not a timestamp.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getArtifacts,\n getArtifact,\n approveToolCall,\n submitToolOutput,\n stopChat,\n prepareChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n updateProjectToolPolicy,\n getUserAgentSettings,\n updateUserAgentSettings,\n getSpendCaps,\n updateSpendCaps,\n setUserSpendLimit,\n getToolsList,\n getSkillsList,\n listSandboxFiles,\n readSandboxFile,\n downloadSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"management-CCY0IYnq.cjs","names":["defaultValidateStatus","isLoginPageRedirect","ManagementClientAuthError","ManagementClientAuthError","createGenericFetchClient","KeboolaHttpHeader","isApiError","dedupe","KeboolaHttpHeader","HttpHeader","createOpenapiFetchClient","createGenericFetchClient"],"sources":["../src/clients/management/applicationTokens/applicationTokens.ts","../src/clients/management/validateStatus.ts","../src/clients/management/authMiddleware.ts","../src/clients/management/currentUser/currentUser.ts","../src/clients/management/deletedProjects/deletedProjects.ts","../src/clients/management/features/features.ts","../src/clients/management/fileStorage/fileStorage.ts","../src/clients/management/maintainers/maintainers.ts","../src/clients/management/organizations/organizations.ts","../src/clients/management/payAsYouGo/payAsYouGo.ts","../src/clients/management/programmaticProjects/programmaticProjects.ts","../src/clients/management/projects/projects.ts","../src/clients/management/storageBackends/storageBackends.ts","../src/clients/management/uiApps/uiApps.ts","../src/clients/management/users/users.ts","../src/clients/management/managementClient.ts"],"sourcesContent":["import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { CreateApplicationTokenBody } from './types';\n\nexport const createApplicationTokens = (client: ManagementOpenApiFetchClient) => {\n const getApplicationTokens = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/application-tokens', {}, { signal });\n return data;\n };\n\n const getApplicationTokenScopes = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/application-tokens/scopes', {}, { signal });\n return data;\n };\n\n const createApplicationToken = async (body: CreateApplicationTokenBody) => {\n const { data } = await client.post('/manage/application-tokens', { body });\n return data;\n };\n\n const deleteApplicationToken = async (tokenId: number) => {\n await client.delete('/manage/application-tokens/{id}', { path: { id: tokenId } });\n };\n\n return {\n getApplicationTokens,\n getApplicationTokenScopes,\n createApplicationToken,\n deleteApplicationToken,\n };\n};\n","import { ManagementClientAuthError } from '../../errors';\nimport { defaultValidateStatus, type ValidateStatusFn } from '../../fetchClient';\nimport { isLoginPageRedirect } from '../isLoginPageRedirect';\n\n/**\n * Status validation for the Manage API, which answers an expired session with the login page.\n *\n * - A *successful* login page is the followed redirect, and becomes `ManagementClientAuthError`.\n * - HTML on a failed response is a real error page (a proxy's 502) and stays an `ApiError`: reading\n * it as session expiry would sign the user out over a transient upstream blip.\n */\nexport const validateManagementStatus: ValidateStatusFn = (apiResponse) => {\n const isValid = defaultValidateStatus(apiResponse);\n\n if (isValid && isLoginPageRedirect(apiResponse)) {\n return new ManagementClientAuthError(\n 'Your session expired',\n 'You will be logged out automatically.',\n apiResponse,\n );\n }\n\n return isValid;\n};\n","import { ManagementClientAuthError } from '../../errors';\nimport { createGenericFetchClient, isApiError, type MiddlewareFn } from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport { dedupe } from '../../utils';\n\nimport type { ManagementToken } from './tokenTypes';\nimport { validateManagementStatus } from './validateStatus';\n\ntype ManagementTokenWithStringToken = { token: string } & ManagementToken;\n\n// Long enough to amortize verify calls over a burst of parallel queries at app\n// startup; short enough that a remotely revoked token is re-checked within a minute.\nconst TOKEN_CACHE_TTL_MS = 60_000;\n\nexport const isManagementClientAuthError = (error: unknown): error is ManagementClientAuthError =>\n error instanceof ManagementClientAuthError;\n\nconst createAuth = (baseUrl: string) => {\n const fetchClient = createGenericFetchClient({\n baseUrl,\n validateStatus: validateManagementStatus,\n });\n\n // Raw token verify — deliberately does NOT go through this middleware (which would recurse).\n const verifyManagementToken = async (accessToken: string) => {\n const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });\n const { data } = await fetchClient.get<ManagementToken>(\n '/manage/tokens/verify',\n {},\n { headers },\n );\n return data;\n };\n\n const createCurrentUserSessionToken = async (accessToken: string) => {\n const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/manage/current-user/session-token',\n {},\n { headers },\n );\n return data.token;\n };\n\n // A session-expired redirect lands here as `200 text/html`; `validateManagementStatus` (on the\n // client above) turns it into a `ManagementClientAuthError`.\n const createAdminAccountSessionToken = async () => {\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/admin/account/session-token',\n {},\n );\n return data.token;\n };\n\n return {\n verifyManagementToken,\n createCurrentUserSessionToken,\n createAdminAccountSessionToken,\n };\n};\n\nexport const createAuthMiddleware = ({\n accessToken,\n baseUrl,\n mintSessionToken = false,\n}: {\n baseUrl: string;\n accessToken?: string;\n mintSessionToken?: boolean;\n}): MiddlewareFn => {\n const auth = createAuth(baseUrl);\n\n let token: string | undefined = mintSessionToken ? undefined : accessToken;\n let tokenValidUntil = 0;\n\n // Connection answers an expired or deleted token with 401, not `isExpired: true`.\n const isTokenValid = async (candidate: string) => {\n try {\n const info = await auth.verifyManagementToken(candidate);\n return !info.isDisabled && !info.isExpired;\n } catch (error) {\n if (isApiError(error) && error.response.status === 401) return false;\n throw error;\n }\n };\n\n // Replaces a missing or invalid token: minted from `accessToken` when asked, else from the login session.\n const createSessionToken = () =>\n mintSessionToken && accessToken\n ? auth.createCurrentUserSessionToken(accessToken)\n : auth.createAdminAccountSessionToken();\n\n const ensureValidToken = async () => {\n if (token && Date.now() < tokenValidUntil) return token;\n\n if (token && (await isTokenValid(token))) {\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n }\n\n token = await createSessionToken();\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n };\n\n // Deduplicate concurrent auth — all parallel requests share one inflight promise.\n const ensureValidTokenDeduped = dedupe(ensureValidToken);\n\n return (next) => async (request) => {\n const validToken = await ensureValidTokenDeduped();\n\n request.request.headers.set(KeboolaHttpHeader.MANAGEMENT_API_TOKEN, validToken);\n return next(request);\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nexport const createCurrentUser = (client: ManagementOpenApiFetchClient) => {\n const getMaintainerInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptMaintainerInvitation = async (id: number) => {\n await client.put('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n const rejectMaintainerInvitation = async (id: number) => {\n await client.delete('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n const getOrganizationInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getOrganizationInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptOrganizationInvitation = async (id: number) => {\n await client.put('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n const rejectOrganizationInvitation = async (id: number) => {\n await client.delete('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n const getProjectInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/current-user/projects-invitations', {}, { signal });\n return data;\n };\n\n const getProjectInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptProjectInvitation = async (id: number) => {\n await client.put('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n const rejectProjectInvitation = async (id: number) => {\n await client.delete('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n const getProjectJoinRequests = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-join-requests',\n {},\n { signal },\n );\n return data;\n };\n\n const getProjectJoinRequest = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-join-requests/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const deleteProjectJoinRequest = async (id: number) => {\n await client.delete('/manage/current-user/projects-join-requests/{id}', { path: { id } });\n };\n\n return {\n getMaintainerInvitations,\n getMaintainerInvitation,\n acceptMaintainerInvitation,\n rejectMaintainerInvitation,\n getOrganizationInvitations,\n getOrganizationInvitation,\n acceptOrganizationInvitation,\n rejectOrganizationInvitation,\n getProjectInvitations,\n getProjectInvitation,\n acceptProjectInvitation,\n rejectProjectInvitation,\n getProjectJoinRequests,\n getProjectJoinRequest,\n deleteProjectJoinRequest,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { DeletedProjectsListQuery } from './types';\n\nexport const createDeletedProjects = (client: ManagementOpenApiFetchClient) => {\n const getDeletedProjects = async (query?: DeletedProjectsListQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/deleted-projects',\n {\n query: {\n limit: query?.limit ?? undefined,\n offset: query?.offset ?? undefined,\n organizationId: query?.organizationId ?? undefined,\n name: query?.name ?? undefined,\n },\n },\n { signal },\n );\n return data;\n };\n\n const getDeletedProject = async (projectId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/deleted-projects/{projectId}',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n /** Restore a deleted project (cancels deletion). Maps to DELETE /manage/deleted-projects/{projectId}\n * — note: the RFC says POST but the live schema uses DELETE. */\n const restoreDeletedProject = async (projectId: number) => {\n await client.delete('/manage/deleted-projects/{projectId}', { path: { projectId } });\n };\n\n /** Permanently purge a deleted project (irreversible). Pass `ignoreBackendErrors: true` to purge\n * even if backend-storage cleanup fails. Returns the enqueued purge command. */\n const purgeDeletedProject = async (projectId: number, ignoreBackendErrors = false) => {\n const { data } = await client.post('/manage/deleted-projects/{projectId}/purge', {\n path: { projectId },\n body: { ignoreBackendErrors },\n });\n return data;\n };\n\n return {\n getDeletedProjects,\n getDeletedProject,\n restoreDeletedProject,\n purgeDeletedProject,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { Feature, FeatureAdmin, FeatureProject, GetAllFeaturesQuery } from './types';\n\n// Read-only on purpose. The three write endpoints the schema declares are not exposed:\n//\n// - `POST /manage/features` — deprecated upstream; features are provisioned by migration.\n// - `PATCH /manage/features/{id}` — edits a definition shared by every project on the stack.\n// - `DELETE /manage/features/{id}` — removes it from every project that has it.\n//\n// Add one only alongside a caller that genuinely needs it.\nexport const createFeatures = (client: ManagementOpenApiFetchClient) => {\n const getAllFeatures = async (query: GetAllFeaturesQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/manage/features', { query }, { signal });\n return data as Feature[];\n };\n\n // The schema names the path parameter `id`; the public argument stays `featureId`.\n const getFeature = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}',\n { path: { id: featureId } },\n { signal },\n );\n return data as Feature;\n };\n\n const getFeatureProjects = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}/projects',\n { path: { id: featureId } },\n { signal },\n );\n // Every field is present on the response; the swagger just declares none of them required.\n return data as FeatureProject[];\n };\n\n const getFeatureAdmins = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}/admins',\n { path: { id: featureId } },\n { signal },\n );\n return data as FeatureAdmin[];\n };\n\n return {\n getAllFeatures,\n getFeature,\n getFeatureProjects,\n getFeatureAdmins,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreateFileStorageAbsBody,\n CreateFileStorageGcsBody,\n CreateFileStorageS3Body,\n FileStorageGcs,\n RotateFileStorageAbsInput,\n RotateFileStorageGcsInput,\n RotateFileStorageS3Input,\n} from './types';\n\n// The GCS methods return `FileStorageGcs`, which widens `gcsCredentials` — the generated schema models\n// it as `Record<string, never>`, where every property access would be `never`.\nexport const createFileStorage = (client: ManagementOpenApiFetchClient) => {\n const getFileStoragesS3 = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-s3', {}, { signal });\n return data;\n };\n\n const getFileStoragesAbs = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-abs', {}, { signal });\n return data;\n };\n\n const getFileStoragesGcs = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-gcs', {}, { signal });\n return data as FileStorageGcs[];\n };\n\n const createFileStorageS3 = async (body: CreateFileStorageS3Body) => {\n const { data } = await client.post('/manage/file-storage-s3', { body });\n return data;\n };\n\n const rotateFileStorageS3Credentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageS3Input) => {\n const { data } = await client.post('/manage/file-storage-s3/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data;\n };\n\n const setFileStorageS3Default = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-s3/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data;\n };\n\n const createFileStorageAbs = async (body: CreateFileStorageAbsBody) => {\n const { data } = await client.post('/manage/file-storage-abs', { body });\n return data;\n };\n\n const rotateFileStorageAbsCredentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageAbsInput) => {\n const { data } = await client.post('/manage/file-storage-abs/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data;\n };\n\n const setFileStorageAbsDefault = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-abs/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data;\n };\n\n const createFileStorageGcs = async (body: CreateFileStorageGcsBody) => {\n const { data } = await client.post('/manage/file-storage-gcs', { body });\n return data as FileStorageGcs;\n };\n\n const rotateFileStorageGcsCredentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageGcsInput) => {\n const { data } = await client.post('/manage/file-storage-gcs/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data as FileStorageGcs;\n };\n\n const setFileStorageGcsDefault = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-gcs/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data as FileStorageGcs;\n };\n\n return {\n getFileStoragesS3,\n getFileStoragesAbs,\n getFileStoragesGcs,\n createFileStorageS3,\n createFileStorageAbs,\n createFileStorageGcs,\n rotateFileStorageS3Credentials,\n rotateFileStorageAbsCredentials,\n rotateFileStorageGcsCredentials,\n setFileStorageS3Default,\n setFileStorageAbsDefault,\n setFileStorageGcsDefault,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n AddMaintainerUserInput,\n CompleteSamlSetupInput,\n CreateMaintainerBody,\n CreateMaintainerInvitationInput,\n CreateMaintainerOrganizationInput,\n CreateSamlConfigInput,\n Maintainer,\n MaintainerDetail,\n MaintainerInvitationPath,\n MaintainerMetadataItemPath,\n MaintainerUser,\n MaintainerUserPath,\n MetadataItem,\n SamlConfigPath,\n SetMaintainerMetadataInput,\n UpdateMaintainerInput,\n UpdateSamlConfigInput,\n} from './types';\n\nexport const createMaintainers = (client: ManagementOpenApiFetchClient) => {\n const getMaintainers = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/maintainers', {}, { signal });\n // The schema types each maintainer's `organizations` as bare objects; `Maintainer` overrides them.\n return data as unknown as Maintainer[];\n };\n\n const getMaintainer = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}',\n { path: { id: maintainerId } },\n { signal },\n );\n // The schema under-models the detail's `organizations`; the backend returns full objects.\n return data as unknown as MaintainerDetail;\n };\n\n const createMaintainer = async (body: CreateMaintainerBody) => {\n const { data } = await client.post('/manage/maintainers', { body });\n return data;\n };\n\n const updateMaintainer = async ({ maintainerId, ...body }: UpdateMaintainerInput) => {\n const { data } = await client.patch('/manage/maintainers/{id}', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainer = async (maintainerId: number) => {\n await client.delete('/manage/maintainers/{id}', { path: { id: maintainerId } });\n };\n\n const getMaintainerUsers = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/users',\n { path: { id: maintainerId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as MaintainerUser[];\n };\n\n const addMaintainerUser = async ({ maintainerId, ...body }: AddMaintainerUserInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/users', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const removeMaintainerUser = async ({ maintainerId, adminId }: MaintainerUserPath) => {\n await client.delete('/manage/maintainers/{id}/users/{adminId}', {\n path: { id: maintainerId, adminId },\n });\n };\n\n const getMaintainerInvitations = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (\n { maintainerId, invitationId }: MaintainerInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations/{invitationId}',\n { path: { id: maintainerId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainerInvitation = async ({\n maintainerId,\n ...body\n }: CreateMaintainerInvitationInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/invitations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainerInvitation = async ({\n maintainerId,\n invitationId,\n }: MaintainerInvitationPath) => {\n await client.delete('/manage/maintainers/{id}/invitations/{invitationId}', {\n path: { id: maintainerId, invitationId },\n });\n };\n\n const createMaintainerOrganization = async ({\n maintainerId,\n ...body\n }: CreateMaintainerOrganizationInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/organizations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const getMaintainerMetadata = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/metadata',\n { path: { id: maintainerId } },\n { signal },\n );\n // The swagger marks no field of the metadata items required; the backend sends them all.\n return data as MetadataItem[];\n };\n\n const setMaintainerMetadata = async ({ maintainerId, ...body }: SetMaintainerMetadataInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/metadata', {\n path: { id: maintainerId },\n body,\n });\n return data as MetadataItem[];\n };\n\n const deleteMaintainerMetadata = async ({\n maintainerId,\n metadataId,\n }: MaintainerMetadataItemPath) => {\n await client.delete('/manage/maintainers/{id}/metadata/{metadataId}', {\n path: { id: maintainerId, metadataId },\n });\n };\n\n const getMaintainerOrganizations = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/organizations',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const joinMaintainer = async (maintainerId: number) => {\n await client.post('/manage/maintainers/{id}/join-maintainer', { path: { id: maintainerId } });\n };\n\n const getMaintainerSamlConfigs = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{maintainerId}/saml',\n { path: { maintainerId } },\n { signal },\n );\n return data;\n };\n\n const getMaintainerSamlConfig = async (\n { maintainerId, configId }: SamlConfigPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/maintainers/{maintainerId}/saml/{configId}',\n { path: { maintainerId, configId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainerSamlConfig = async ({ maintainerId, ...body }: CreateSamlConfigInput) => {\n const { data } = await client.post('/manage/maintainers/{maintainerId}/saml', {\n path: { maintainerId },\n body,\n });\n return data;\n };\n\n const updateMaintainerSamlConfig = async ({\n maintainerId,\n configId,\n ...body\n }: UpdateSamlConfigInput) => {\n const { data } = await client.patch('/manage/maintainers/{maintainerId}/saml/{configId}', {\n path: { maintainerId, configId },\n body,\n });\n return data;\n };\n\n const completeMaintainerSamlSetup = async ({\n maintainerId,\n configId,\n ...body\n }: CompleteSamlSetupInput) => {\n const { data } = await client.post(\n '/manage/maintainers/{maintainerId}/saml/{configId}/complete-setup',\n { path: { maintainerId, configId }, body },\n );\n return data;\n };\n\n const deleteMaintainerSamlConfig = async ({ maintainerId, configId }: SamlConfigPath) => {\n await client.delete('/manage/maintainers/{maintainerId}/saml/{configId}', {\n path: { maintainerId, configId },\n });\n };\n\n return {\n getMaintainers,\n getMaintainer,\n createMaintainer,\n updateMaintainer,\n deleteMaintainer,\n getMaintainerUsers,\n addMaintainerUser,\n removeMaintainerUser,\n getMaintainerInvitations,\n getMaintainerInvitation,\n createMaintainerInvitation,\n deleteMaintainerInvitation,\n createMaintainerOrganization,\n getMaintainerMetadata,\n setMaintainerMetadata,\n deleteMaintainerMetadata,\n getMaintainerOrganizations,\n joinMaintainer,\n getMaintainerSamlConfigs,\n getMaintainerSamlConfig,\n createMaintainerSamlConfig,\n updateMaintainerSamlConfig,\n completeMaintainerSamlSetup,\n deleteMaintainerSamlConfig,\n };\n};\n","import type { MetadataItem } from '../maintainers/types';\nimport type { ManagementOpenApiFetchClient } from '../managementClient';\nimport type { Project } from '../projects/types';\n\nimport type {\n AddOrganizationUserInput,\n AdminUser,\n CreateOrganizationInvitationInput,\n CreateOrganizationProjectInput,\n OrganizationDetail,\n OrganizationInvitationPath,\n OrganizationMetadataItemPath,\n OrganizationUserPath,\n SetOrganizationMetadataInput,\n UpdateOrganizationInput,\n} from './types';\n\nexport const createOrganizations = (client: ManagementOpenApiFetchClient) => {\n const getOrganizations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/organizations', {}, { signal });\n return data;\n };\n\n const getOrganization = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema's `projects` items carry only `{ id, name, created }`; the backend returns more.\n return data as unknown as OrganizationDetail;\n };\n\n const updateOrganization = async ({ organizationId, ...body }: UpdateOrganizationInput) => {\n const { data } = await client.patch('/manage/organizations/{id}', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganization = async (organizationId: number) => {\n await client.delete('/manage/organizations/{id}', { path: { id: organizationId } });\n };\n\n const forceMfa = async (organizationId: number) => {\n const { data } = await client.patch('/manage/organizations/{id}/force-mfa', {\n path: { id: organizationId },\n });\n return data;\n };\n\n const joinOrganization = async (organizationId: number) => {\n await client.post('/manage/organizations/{id}/join-organization', {\n path: { id: organizationId },\n });\n };\n\n const getOrganizationUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/users',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as AdminUser[];\n };\n\n const addOrganizationUser = async ({ organizationId, ...body }: AddOrganizationUserInput) => {\n const { data } = await client.post('/manage/organizations/{id}/users', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const removeOrganizationUser = async ({ organizationId, userId }: OrganizationUserPath) => {\n await client.delete('/manage/organizations/{id}/users/{userId}', {\n path: { id: organizationId, userId },\n });\n };\n\n const getOrganizationProjectsUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects-users',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as AdminUser[];\n };\n\n const getOrganizationInvitations = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations',\n { path: { id: organizationId } },\n { signal },\n );\n return data;\n };\n\n const getOrganizationInvitation = async (\n { organizationId, invitationId }: OrganizationInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations/{invitationId}',\n { path: { id: organizationId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createOrganizationInvitation = async ({\n organizationId,\n ...body\n }: CreateOrganizationInvitationInput) => {\n const { data } = await client.post('/manage/organizations/{id}/invitations', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganizationInvitation = async ({\n organizationId,\n invitationId,\n }: OrganizationInvitationPath) => {\n await client.delete('/manage/organizations/{id}/invitations/{invitationId}', {\n path: { id: organizationId, invitationId },\n });\n };\n\n const getOrganizationProjects = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema types the items as a bare object; the backend returns full project objects.\n return data as unknown as Project[];\n };\n\n const createOrganizationProject = async ({\n organizationId,\n ...body\n }: CreateOrganizationProjectInput) => {\n const { data } = await client.post('/manage/organizations/{id}/projects', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const getOrganizationMetadata = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/metadata',\n { path: { id: organizationId } },\n { signal },\n );\n // The swagger marks no field of the metadata items required; the backend sends them all.\n return data as MetadataItem[];\n };\n\n const setOrganizationMetadata = async ({\n organizationId,\n ...body\n }: SetOrganizationMetadataInput) => {\n const { data } = await client.post('/manage/organizations/{id}/metadata', {\n path: { id: organizationId },\n body,\n });\n return data as MetadataItem[];\n };\n\n const deleteOrganizationMetadata = async ({\n organizationId,\n metadataId,\n }: OrganizationMetadataItemPath) => {\n await client.delete('/manage/organizations/{id}/metadata/{metadataId}', {\n path: { id: organizationId, metadataId },\n });\n };\n\n return {\n getOrganizations,\n getOrganization,\n updateOrganization,\n deleteOrganization,\n forceMfa,\n joinOrganization,\n getOrganizationUsers,\n addOrganizationUser,\n removeOrganizationUser,\n getOrganizationProjectsUsers,\n getOrganizationInvitations,\n getOrganizationInvitation,\n createOrganizationInvitation,\n deleteOrganizationInvitation,\n getOrganizationProjects,\n createOrganizationProject,\n getOrganizationMetadata,\n setOrganizationMetadata,\n deleteOrganizationMetadata,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreatePaymentRequestBody,\n CreditPaymentRequest,\n CreditPurchase,\n PayAsYouGoBillingConfiguration,\n StripeCustomer,\n TopUpSetting,\n UpdateStripeCustomerBody,\n UpdateTopUpSettingBody,\n} from './types';\n\nexport const createPayAsYouGo = (client: ManagementOpenApiFetchClient) => {\n const getBillingConfiguration = async (\n signal?: AbortSignal,\n ): Promise<PayAsYouGoBillingConfiguration> => {\n const { data } = await client.get('/pay-as-you-go/billing/configuration', {}, { signal });\n return data as PayAsYouGoBillingConfiguration;\n };\n\n const getCreditPurchases = async (\n idProject: number,\n signal?: AbortSignal,\n ): Promise<CreditPurchase[]> => {\n const { data } = await client.post(\n '/pay-as-you-go/billing/credits',\n { body: { idProject } },\n { signal },\n );\n return data as CreditPurchase[];\n };\n\n const getStripeCustomer = async (\n idProject: number,\n signal?: AbortSignal,\n ): Promise<StripeCustomer | null> => {\n const { data } = await client.get(\n '/pay-as-you-go/billing/stripe-customer',\n { query: { idProject } },\n { signal },\n );\n return data;\n };\n\n const updateStripeCustomer = async (body: UpdateStripeCustomerBody) => {\n const { data } = await client.put('/pay-as-you-go/billing/stripe-customer', { body });\n return data;\n };\n\n const getTopUpSetting = async (\n projectId: number,\n signal?: AbortSignal,\n ): Promise<TopUpSetting> => {\n const { data } = await client.get(\n '/pay-as-you-go/billing/top-up/{projectId}',\n { path: { projectId } },\n { signal },\n );\n return data as TopUpSetting;\n };\n\n const updateTopUpSetting = async (body: UpdateTopUpSettingBody) => {\n await client.put('/pay-as-you-go/billing/top-up', { body });\n };\n\n const createPaymentRequest = async (\n body: CreatePaymentRequestBody,\n ): Promise<CreditPaymentRequest> => {\n const { data } = await client.post('/pay-as-you-go/billing/create-payment-request', { body });\n return data as CreditPaymentRequest;\n };\n\n return {\n getBillingConfiguration,\n getCreditPurchases,\n getStripeCustomer,\n updateStripeCustomer,\n getTopUpSetting,\n updateTopUpSetting,\n createPaymentRequest,\n };\n};\n","import type { ManagementGenericFetchClient } from '../managementClient';\n\nimport type { ConfirmProgrammaticProjectPayload, ConfirmProgrammaticProjectResult } from './types';\n\nexport const createProgrammaticProjects = (client: ManagementGenericFetchClient) => {\n /**\n * Redeem an agent project's claim, making the bearer's account its owner.\n *\n * - The session decides who becomes the owner; the payload only proves possession of the link.\n * - Single-use and irreversible: the claim is consumed before ownership is granted, so a second\n * call is a 400, never an idempotent success. Callers must not retry.\n * - A 400 covers malformed, unknown, expired, already-redeemed and never-provisioned alike. The\n * backend collapses them on purpose, because the claim is bearer-only.\n */\n const confirm = async (\n payload: ConfirmProgrammaticProjectPayload,\n signal?: AbortSignal,\n ): Promise<ConfirmProgrammaticProjectResult> => {\n const { data } = await client.post<ConfirmProgrammaticProjectResult>(\n '/manage/programmatic-projects/confirm',\n { body: payload },\n { signal },\n );\n\n return data;\n };\n\n return { confirm };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\nimport type { User } from '../types';\n\nimport type {\n AddProjectUserBody,\n AddProjectUserPath,\n AssignProjectTemplateFeatureInput,\n ChangeProjectUserRoleInput,\n CreateProjectFeatureBody,\n CreateProjectFeaturePath,\n CreateProjectInvitationBody,\n CreateProjectInvitationPath,\n DeleteProjectInvitationPath,\n DeleteProjectMetadataPath,\n GetProjectMetadataPath,\n GetProjectPath,\n GetProjectReviewersPath,\n JoinProjectInput,\n ListProjectInvitationsPath,\n ListProjectJoinRequestsPath,\n ListProjectUsersPath,\n MoveProjectInput,\n Project,\n ProjectBase,\n ProjectInvitableRole,\n ProjectJoinRequestPath,\n ProjectMetadataItem,\n RemoveProjectFeaturePath,\n RemoveProjectLimitPath,\n RemoveProjectTemplateFeaturePath,\n RemoveProjectUserPath,\n RequestProjectAccessInput,\n Reviewer,\n SetProjectDisabledInput,\n SetProjectLimitsInput,\n SetProjectMetadataBody,\n SetProjectMetadataPath,\n SetProjectReviewersBody,\n SetProjectReviewersPath,\n UpdateProjectInput,\n} from './types';\n\n// A project's own settings and membership; `projectId` accepts `number | string` (legacy callers).\n// Deliberately not exposed — they belong to their owning namespace:\n// - `POST …/tokens` → `api.storage.tokens`\n// - `POST`/`DELETE …/storage-backend`, `POST …/file-storage` → `api.management.storageBackends` / `fileStorage`\n// - `POST …/credits` — billing, no home here\nexport const createProjects = (client: ManagementOpenApiFetchClient) => {\n const getProject = async (projectId: GetProjectPath['projectId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data as unknown as Project;\n };\n\n const getProjectTemplates = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/project-templates', {}, { signal });\n return data;\n };\n\n const addProjectFeature = async ({\n projectId,\n feature,\n }: CreateProjectFeaturePath & CreateProjectFeatureBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/features', {\n path: { projectId },\n body: { feature },\n });\n return data as ProjectBase;\n };\n\n const removeProjectFeature = async ({ projectId, feature }: RemoveProjectFeaturePath) => {\n await client.delete('/manage/projects/{projectId}/features/{feature}', {\n path: { projectId, feature },\n });\n return null;\n };\n\n const changeProjectUserRole = async ({ projectId, userId, role }: ChangeProjectUserRoleInput) => {\n const { data } = await client.patch('/manage/projects/{projectId}/users/{userId}', {\n path: { projectId, userId },\n // Schema omits the SOX roles (`productionManager` / `developer` / `reviewer`), which are accepted.\n body: { role: role as ProjectInvitableRole },\n });\n\n return data as User;\n };\n\n const getProjectUsers = async (\n projectId: ListProjectUsersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/users',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n // The schema types the items as a bare object; the backend returns full user objects.\n return data as unknown as User[];\n };\n\n const getProjectInvitations = async (\n projectId: ListProjectInvitationsPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/invitations',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data;\n };\n\n const createProjectInvitation = async ({\n projectId,\n ...body\n }: CreateProjectInvitationPath & CreateProjectInvitationBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/invitations', {\n path: { projectId },\n // SOX roles accepted but missing from the schema, as in `changeProjectUserRole`.\n body: { ...body, role: body.role as ProjectInvitableRole },\n });\n return data;\n };\n\n const deleteProjectInvitation = async ({\n projectId,\n invitationId,\n }: DeleteProjectInvitationPath) => {\n await client.delete('/manage/projects/{projectId}/invitations/{invitationId}', {\n path: { projectId, invitationId },\n });\n return null;\n };\n\n const addProjectUser = async ({\n projectId,\n ...body\n }: AddProjectUserPath & AddProjectUserBody) => {\n // 204: empty body, not the created user.\n await client.post('/manage/projects/{projectId}/users', { path: { projectId }, body });\n return null;\n };\n\n const removeProjectUser = async ({ projectId, idOrEmail }: RemoveProjectUserPath) => {\n await client.delete('/manage/projects/{projectId}/users/{idOrEmail}', {\n path: { projectId, idOrEmail: String(idOrEmail) },\n });\n return null;\n };\n\n const getProjectJoinRequests = async (\n projectId: ListProjectJoinRequestsPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/join-requests',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data;\n };\n\n const approveProjectJoinRequest = async ({\n projectId,\n joinRequestId,\n }: ProjectJoinRequestPath) => {\n await client.put('/manage/projects/{projectId}/join-requests/{joinRequestId}', {\n path: { projectId, joinRequestId },\n });\n return null;\n };\n\n const rejectProjectJoinRequest = async ({ projectId, joinRequestId }: ProjectJoinRequestPath) => {\n await client.delete('/manage/projects/{projectId}/join-requests/{joinRequestId}', {\n path: { projectId, joinRequestId },\n });\n return null;\n };\n\n const getProjectMetadata = async (\n projectId: GetProjectMetadataPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/metadata',\n { path: { projectId } },\n { signal },\n );\n // Swagger marks no field required, but all are present.\n return data as ProjectMetadataItem[];\n };\n\n const setProjectMetadata = async ({\n projectId,\n provider,\n metadata,\n }: SetProjectMetadataPath & SetProjectMetadataBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/metadata', {\n path: { projectId },\n body: { provider, metadata },\n });\n return data as ProjectMetadataItem[];\n };\n\n const getProjectReviewers = async (\n projectId: GetProjectReviewersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/reviewers',\n { path: { projectId } },\n { signal },\n );\n return data as Reviewer[];\n };\n\n const setProjectReviewers = async ({\n projectId,\n adminIds,\n }: SetProjectReviewersPath & SetProjectReviewersBody) => {\n await client.put('/manage/projects/{projectId}/reviewers', {\n path: { projectId },\n body: { adminIds },\n });\n };\n\n const updateProject = async ({ projectId, ...body }: UpdateProjectInput) => {\n const { data } = await client.put('/manage/projects/{projectId}', {\n path: { projectId },\n body,\n });\n return data as ProjectBase;\n };\n\n const deleteProject = async (projectId: number) => {\n await client.delete('/manage/projects/{projectId}', { path: { projectId } });\n return null;\n };\n\n const moveProject = async ({ projectId, organizationId }: MoveProjectInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/organizations', {\n path: { projectId },\n body: { organizationId },\n });\n return data as ProjectBase;\n };\n\n const setProjectDisabled = async ({ projectId, ...body }: SetProjectDisabledInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/disabled', {\n path: { projectId },\n body,\n });\n return data as ProjectBase;\n };\n\n const setProjectLimits = async ({ projectId, ...body }: SetProjectLimitsInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/limits', {\n path: { projectId },\n body,\n });\n return data as unknown as Project;\n };\n\n const getProjectTemplate = async (templateId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/project-templates/{templateId}',\n { path: { templateId } },\n { signal },\n );\n return data;\n };\n\n const getProjectTemplateFeatures = async (templateId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/project-templates/{templateId}/features',\n { path: { templateId } },\n { signal },\n );\n return data;\n };\n\n const addProjectTemplateFeature = async ({\n templateId,\n ...body\n }: AssignProjectTemplateFeatureInput) => {\n await client.post('/manage/project-templates/{templateId}/features', {\n path: { templateId },\n body,\n });\n };\n\n const removeProjectTemplateFeature = async ({\n templateId,\n featureName,\n }: RemoveProjectTemplateFeaturePath) => {\n await client.delete('/manage/project-templates/{templateId}/features/{featureName}', {\n path: { templateId, featureName },\n });\n };\n\n const getProjectInvitation = async (\n { projectId, invitationId }: DeleteProjectInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/invitations/{invitationId}',\n { path: { projectId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const getProjectJoinRequest = async (\n { projectId, joinRequestId }: ProjectJoinRequestPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/join-requests/{joinRequestId}',\n { path: { projectId, joinRequestId } },\n { signal },\n );\n return data;\n };\n\n const joinProject = async ({ projectId, ...body }: JoinProjectInput) => {\n await client.post('/manage/projects/{projectId}/join-project', { path: { projectId }, body });\n };\n\n const requestProjectAccess = async ({ projectId, ...body }: RequestProjectAccessInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/request-access', {\n path: { projectId },\n body,\n });\n return data;\n };\n\n const removeProjectLimit = async ({ projectId, limitName }: RemoveProjectLimitPath) => {\n await client.delete('/manage/projects/{projectId}/limits/{limitName}', {\n path: { projectId, limitName },\n });\n };\n\n const deleteProjectMetadata = async ({ projectId, metadataId }: DeleteProjectMetadataPath) => {\n await client.delete('/manage/projects/{projectId}/metadata/{metadataId}', {\n path: { projectId, metadataId },\n });\n };\n\n return {\n getProject,\n getProjectTemplates,\n addProjectFeature,\n removeProjectFeature,\n changeProjectUserRole,\n getProjectUsers,\n getProjectInvitations,\n createProjectInvitation,\n deleteProjectInvitation,\n addProjectUser,\n removeProjectUser,\n getProjectJoinRequests,\n approveProjectJoinRequest,\n rejectProjectJoinRequest,\n getProjectMetadata,\n setProjectMetadata,\n getProjectReviewers,\n setProjectReviewers,\n updateProject,\n deleteProject,\n moveProject,\n setProjectDisabled,\n setProjectLimits,\n getProjectTemplate,\n getProjectTemplateFeatures,\n addProjectTemplateFeature,\n removeProjectTemplateFeature,\n getProjectInvitation,\n getProjectJoinRequest,\n joinProject,\n requestProjectAccess,\n removeProjectLimit,\n deleteProjectMetadata,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreateBigqueryStorageBackendBody,\n CreateSnowflakeStorageBackendBody,\n GetStorageBackendProjectsQuery,\n StorageBackend,\n UpdateBigqueryStorageBackendInput,\n UpdateStorageBackendInput,\n} from './types';\n\nexport const createStorageBackends = (client: ManagementOpenApiFetchClient) => {\n // `StorageBackend` weakens three fields the schema marks required — see its doc comment.\n const getStorageBackend = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get('/manage/storage-backend/{id}', { path: { id } }, { signal });\n return data as StorageBackend;\n };\n\n const getStorageBackends = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/storage-backend', {}, { signal });\n return data as StorageBackend[];\n };\n\n /** Projects assigned to this backend, paginated via `limit`/`offset`. */\n const getStorageBackendProjects = async (\n id: number,\n query?: GetStorageBackendProjectsQuery,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/storage-backend/{id}/projects',\n { path: { id }, query: { limit: query?.limit, offset: query?.offset } },\n { signal },\n );\n return data;\n };\n\n /** Maintainers assigned to this backend — small, unpaginated list. */\n const getStorageBackendMaintainers = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/storage-backend/{id}/maintainers',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const createSnowflakeStorageBackend = async (body: CreateSnowflakeStorageBackendBody) => {\n const { data } = await client.post('/manage/storage-backend/snowflake', { body });\n return data;\n };\n\n const createBigqueryStorageBackend = async (body: CreateBigqueryStorageBackendBody) => {\n const { data } = await client.post('/manage/storage-backend/bigquery', { body });\n return data;\n };\n\n const updateStorageBackend = async ({ id, ...body }: UpdateStorageBackendInput) => {\n const { data } = await client.patch('/manage/storage-backend/{id}', { path: { id }, body });\n return data;\n };\n\n const updateBigqueryStorageBackend = async ({\n id,\n ...body\n }: UpdateBigqueryStorageBackendInput) => {\n const { data } = await client.patch('/manage/storage-backend/{id}/bigquery', {\n path: { id },\n body,\n });\n return data;\n };\n\n const activateStorageBackend = async (backendId: number) => {\n const { data } = await client.post('/manage/storage-backend/{backendId}/activate', {\n path: { backendId },\n });\n return data;\n };\n\n const deleteStorageBackend = async (id: number) => {\n await client.delete('/manage/storage-backend/{id}', { path: { id } });\n };\n\n return {\n getStorageBackend,\n getStorageBackends,\n getStorageBackendProjects,\n getStorageBackendMaintainers,\n createSnowflakeStorageBackend,\n createBigqueryStorageBackend,\n updateStorageBackend,\n updateBigqueryStorageBackend,\n activateStorageBackend,\n deleteStorageBackend,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n GetUiAppsQuery,\n RegisterUiAppBody,\n RenameUiAppBody,\n UiApp,\n UiAppDetail,\n} from './types';\n\nexport const createUiApps = (client: ManagementOpenApiFetchClient) => {\n const getUiApps = async (query?: GetUiAppsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/ui-apps',\n // Sent only when asked for: the bare collection is public and every extra param\n // would be copied by ui-apps:sync on other stacks.\n { query: query?.includeInactive ? { includeInactive: true } : {} },\n { signal },\n );\n // `UiApp` tightens the two listing shapes the spec declares — see its comment.\n return data as UiApp[];\n };\n\n /** `stringId`, not the numeric id — the API keys UI applications on the immutable manifest name. */\n const getUiApp = async (stringId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/ui-apps/{id}',\n { path: { id: stringId } },\n { signal },\n );\n // `UiAppDetail` tightens the version fields the spec marks optional — see its comment.\n return data as UiAppDetail;\n };\n\n const registerUiApp = async (body: RegisterUiAppBody) => {\n const { data } = await client.post('/manage/ui-apps', { body });\n return data;\n };\n\n const renameUiApp = async ({ stringId, ...body }: { stringId: string } & RenameUiAppBody) => {\n await client.patch('/manage/ui-apps/{id}', { path: { id: stringId }, body });\n };\n\n const activateUiAppVersion = async ({\n stringId,\n version,\n }: {\n stringId: string;\n version: string;\n }) => {\n await client.post('/manage/ui-apps/{id}/activate/{version}', {\n path: { id: stringId, version },\n });\n };\n\n const deleteUiApp = async (stringId: string) => {\n await client.delete('/manage/ui-apps/{id}', { path: { id: stringId } });\n };\n\n return {\n getUiApps,\n getUiApp,\n registerUiApp,\n renameUiApp,\n activateUiAppVersion,\n deleteUiApp,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n AddUserFeatureBody,\n AddUserFeaturePath,\n DeleteUserMetadataPath,\n GetUsersQuery,\n RemoveUserFeaturePath,\n SetUserMetadataInput,\n UpdateUserInput,\n UserDetail,\n UserListItem,\n UserMaintainerMembership,\n UserOrganizationMembership,\n UserProjectMembership,\n} from './types';\n\n// The schema names the path parameters `idOrEmail` / `featureName`; the public arguments keep the\n// names call sites already use. `createPath` percent-encodes every path parameter, so an email must\n// NOT be encoded here as well — doing so double-encodes it (`a@b.com` → `a%2540b.com`).\nexport const createUsers = (client: ManagementOpenApiFetchClient) => {\n const addUserAdminFeature = async (\n { feature, userIdOrMail }: AddUserFeatureBody & AddUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/manage/users/{idOrEmail}/features',\n { path: { idOrEmail: userIdOrMail }, body: { feature } },\n { signal },\n );\n return data;\n };\n\n const removeUserAdminFeature = async (\n { userIdOrMail, feature }: RemoveUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.delete(\n '/manage/users/{idOrEmail}/features/{featureName}',\n { path: { idOrEmail: userIdOrMail, featureName: feature } },\n { signal },\n );\n return data;\n };\n\n /** Paginated list of all users, filterable via `q` (name/email substring). */\n const getUsers = async (query?: GetUsersQuery, signal?: AbortSignal): Promise<UserListItem[]> => {\n const { data } = await client.get(\n '/manage/users',\n { query: { q: query?.q, limit: query?.limit, offset: query?.offset } },\n { signal },\n );\n return data;\n };\n\n const getUser = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.get(\n '/manage/users/{idOrEmail}',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const getUserOrganizations = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserOrganizationMembership[]> => {\n const { data } = await client.get(\n '/manage/users/{id}/organizations',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const getUserProjects = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserProjectMembership[]> => {\n const { data } = await client.get('/manage/users/{id}/projects', { path: { id } }, { signal });\n return data;\n };\n\n const getUserMaintainers = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserMaintainerMembership[]> => {\n const { data } = await client.get(\n '/manage/users/{id}/maintainers',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n /** Requires the target user to have MFA enabled (422 otherwise). Superadmin-only. */\n const grantSuperAdmin = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.post(\n '/manage/users/{id}/super-admin',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const removeSuperAdmin = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.delete(\n '/manage/users/{idOrEmail}/super-admin',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const disableUserMfa = async (id: number, signal?: AbortSignal): Promise<void> => {\n await client.delete(\n '/manage/users/{idOrEmail}/mfa',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n };\n\n const deleteUser = async (id: number, signal?: AbortSignal): Promise<void> => {\n await client.delete(\n '/manage/users/{idOrEmail}',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n };\n\n const updateUser = async ({ id, ...body }: UpdateUserInput) => {\n const { data } = await client.put('/manage/users/{idOrEmail}', {\n path: { idOrEmail: String(id) },\n body,\n });\n return data;\n };\n\n const getUserMetadata = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/users/{idOrEmail}/metadata',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const setUserMetadata = async ({ id, ...body }: SetUserMetadataInput) => {\n const { data } = await client.post('/manage/users/{idOrEmail}/metadata', {\n path: { idOrEmail: String(id) },\n body,\n });\n return data;\n };\n\n const deleteUserMetadata = async ({ id, metadataId }: DeleteUserMetadataPath) => {\n await client.delete('/manage/users/{idOrEmail}/metadata/{metadataId}', {\n path: { idOrEmail: String(id), metadataId },\n });\n };\n\n return {\n addUserAdminFeature,\n removeUserAdminFeature,\n getUsers,\n getUser,\n getUserOrganizations,\n getUserProjects,\n getUserMaintainers,\n grantSuperAdmin,\n removeSuperAdmin,\n disableUserMfa,\n deleteUser,\n updateUser,\n getUserMetadata,\n setUserMetadata,\n deleteUserMetadata,\n };\n};\n","import {\n createGenericFetchClient,\n createOpenapiFetchClient,\n HttpHeader,\n type MiddlewareFn,\n} from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createApplicationTokens } from './applicationTokens';\nimport { createAuthMiddleware } from './authMiddleware';\nimport { createCurrentUser } from './currentUser';\nimport { createDeletedProjects } from './deletedProjects';\nimport { createFeatures } from './features';\nimport { createFileStorage } from './fileStorage';\nimport { createMaintainers } from './maintainers';\nimport { createOrganizations } from './organizations';\nimport { createPayAsYouGo } from './payAsYouGo';\nimport { createProgrammaticProjects } from './programmaticProjects';\nimport { createProjects } from './projects';\nimport { createStorageBackends } from './storageBackends';\nimport { createUiApps } from './uiApps';\nimport { createUsers } from './users';\nimport { validateManagementStatus } from './validateStatus';\n\nexport type ManagementOpenApiFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\nexport type ManagementGenericFetchClient = ReturnType<typeof createGenericFetchClient>;\n\nexport type AuthStrategy =\n | {\n type: 'management-token';\n token?: string;\n /** Send a session token minted from `token`, as a deployed UI does, instead of `token` itself. */\n mintSessionToken?: boolean;\n }\n | { type: 'bearer'; token: string };\n\n// Only invoked on the raw (no-auth-middleware) path — otherwise the auth middleware\n// owns the Manage API token header.\nconst createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'management-token')\n return auth.token ? { [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: auth.token } : {};\n\n return { [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}` };\n};\n\ntype ManagementClientInitOptions = Omit<ClientInitOptions, 'auth' | 'baseUrl' | 'middlewares'> & {\n // Not the widened `BaseUrl`: the auth middleware mints a session token outside any request, so it\n // needs the URL up front rather than a resolver awaited per call.\n baseUrl: string;\n auth: AuthStrategy;\n middlewares?: MiddlewareFn[];\n withAuthMiddleware?: boolean;\n};\n\nexport const createManagementClient = ({\n baseUrl,\n middlewares = [],\n auth,\n withAuthMiddleware = true,\n}: ManagementClientInitOptions) => {\n // The auth middleware keeps a long-lived management session alive: it verifies the\n // token and, when it's invalid/expired, mints/refreshes a session token. That self-healing\n // is wrong for a plain \"is this token valid?\" check (it would recurse when used to verify,\n // and mint a session instead of reporting invalid). Pass `withAuthMiddleware: false` to get\n // a raw client that just attaches the token — used for token verification.\n const allMiddlewares =\n withAuthMiddleware && auth.type === 'management-token'\n ? [\n ...middlewares,\n createAuthMiddleware({\n baseUrl,\n accessToken: auth.token,\n mintSessionToken: auth.mintSessionToken,\n }), // 👈 order of middlewares always matters\n ]\n : middlewares;\n\n const headers = withAuthMiddleware ? undefined : createAuthHeaders(auth);\n\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares: allMiddlewares,\n headers,\n validateStatus: validateManagementStatus,\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n // The authenticated twin of `genericClient`, for endpoints the generated schema does not carry\n // yet. Same middlewares, headers and status validation as the OpenAPI client — `genericClient`\n // deliberately has none of the three, because `healthCheck` is an unauthenticated host probe.\n const authedGenericClient = createGenericFetchClient({\n baseUrl,\n middlewares: allMiddlewares,\n headers,\n validateStatus: validateManagementStatus,\n });\n\n const verifyToken = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/tokens/verify', {}, { signal });\n return data;\n };\n\n // Host-level: Connection serves the storage, management and auth APIs off one baseUrl, so this\n // probes the host, not this API's prefix — `/v2/storage/health-check`, `/manage/health-check`\n // and `/v1/auth/health-check` all 404.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n applicationTokens: createApplicationTokens(client),\n healthCheck,\n currentUser: createCurrentUser(client),\n deletedProjects: createDeletedProjects(client),\n maintainers: createMaintainers(client),\n organizations: createOrganizations(client),\n payAsYouGo: createPayAsYouGo(client),\n features: createFeatures(client),\n fileStorage: createFileStorage(client),\n projects: createProjects(client),\n programmaticProjects: createProgrammaticProjects(authedGenericClient),\n storageBackends: createStorageBackends(client),\n uiApps: createUiApps(client),\n users: createUsers(client),\n verifyToken,\n };\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"management-DvmPiG64.js","names":[],"sources":["../src/clients/management/applicationTokens/applicationTokens.ts","../src/clients/management/validateStatus.ts","../src/clients/management/authMiddleware.ts","../src/clients/management/currentUser/currentUser.ts","../src/clients/management/deletedProjects/deletedProjects.ts","../src/clients/management/features/features.ts","../src/clients/management/fileStorage/fileStorage.ts","../src/clients/management/maintainers/maintainers.ts","../src/clients/management/organizations/organizations.ts","../src/clients/management/payAsYouGo/payAsYouGo.ts","../src/clients/management/programmaticProjects/programmaticProjects.ts","../src/clients/management/projects/projects.ts","../src/clients/management/storageBackends/storageBackends.ts","../src/clients/management/uiApps/uiApps.ts","../src/clients/management/users/users.ts","../src/clients/management/managementClient.ts"],"sourcesContent":["import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { CreateApplicationTokenBody } from './types';\n\nexport const createApplicationTokens = (client: ManagementOpenApiFetchClient) => {\n const getApplicationTokens = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/application-tokens', {}, { signal });\n return data;\n };\n\n const getApplicationTokenScopes = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/application-tokens/scopes', {}, { signal });\n return data;\n };\n\n const createApplicationToken = async (body: CreateApplicationTokenBody) => {\n const { data } = await client.post('/manage/application-tokens', { body });\n return data;\n };\n\n const deleteApplicationToken = async (tokenId: number) => {\n await client.delete('/manage/application-tokens/{id}', { path: { id: tokenId } });\n };\n\n return {\n getApplicationTokens,\n getApplicationTokenScopes,\n createApplicationToken,\n deleteApplicationToken,\n };\n};\n","import { ManagementClientAuthError } from '../../errors';\nimport { defaultValidateStatus, type ValidateStatusFn } from '../../fetchClient';\nimport { isLoginPageRedirect } from '../isLoginPageRedirect';\n\n/**\n * Status validation for the Manage API, which answers an expired session with the login page.\n *\n * - A *successful* login page is the followed redirect, and becomes `ManagementClientAuthError`.\n * - HTML on a failed response is a real error page (a proxy's 502) and stays an `ApiError`: reading\n * it as session expiry would sign the user out over a transient upstream blip.\n */\nexport const validateManagementStatus: ValidateStatusFn = (apiResponse) => {\n const isValid = defaultValidateStatus(apiResponse);\n\n if (isValid && isLoginPageRedirect(apiResponse)) {\n return new ManagementClientAuthError(\n 'Your session expired',\n 'You will be logged out automatically.',\n apiResponse,\n );\n }\n\n return isValid;\n};\n","import { ManagementClientAuthError } from '../../errors';\nimport { createGenericFetchClient, isApiError, type MiddlewareFn } from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport { dedupe } from '../../utils';\n\nimport type { ManagementToken } from './tokenTypes';\nimport { validateManagementStatus } from './validateStatus';\n\ntype ManagementTokenWithStringToken = { token: string } & ManagementToken;\n\n// Long enough to amortize verify calls over a burst of parallel queries at app\n// startup; short enough that a remotely revoked token is re-checked within a minute.\nconst TOKEN_CACHE_TTL_MS = 60_000;\n\nexport const isManagementClientAuthError = (error: unknown): error is ManagementClientAuthError =>\n error instanceof ManagementClientAuthError;\n\nconst createAuth = (baseUrl: string) => {\n const fetchClient = createGenericFetchClient({\n baseUrl,\n validateStatus: validateManagementStatus,\n });\n\n // Raw token verify — deliberately does NOT go through this middleware (which would recurse).\n const verifyManagementToken = async (accessToken: string) => {\n const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });\n const { data } = await fetchClient.get<ManagementToken>(\n '/manage/tokens/verify',\n {},\n { headers },\n );\n return data;\n };\n\n const createCurrentUserSessionToken = async (accessToken: string) => {\n const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/manage/current-user/session-token',\n {},\n { headers },\n );\n return data.token;\n };\n\n // A session-expired redirect lands here as `200 text/html`; `validateManagementStatus` (on the\n // client above) turns it into a `ManagementClientAuthError`.\n const createAdminAccountSessionToken = async () => {\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/admin/account/session-token',\n {},\n );\n return data.token;\n };\n\n return {\n verifyManagementToken,\n createCurrentUserSessionToken,\n createAdminAccountSessionToken,\n };\n};\n\nexport const createAuthMiddleware = ({\n accessToken,\n baseUrl,\n mintSessionToken = false,\n}: {\n baseUrl: string;\n accessToken?: string;\n mintSessionToken?: boolean;\n}): MiddlewareFn => {\n const auth = createAuth(baseUrl);\n\n let token: string | undefined = mintSessionToken ? undefined : accessToken;\n let tokenValidUntil = 0;\n\n // Connection answers an expired or deleted token with 401, not `isExpired: true`.\n const isTokenValid = async (candidate: string) => {\n try {\n const info = await auth.verifyManagementToken(candidate);\n return !info.isDisabled && !info.isExpired;\n } catch (error) {\n if (isApiError(error) && error.response.status === 401) return false;\n throw error;\n }\n };\n\n // Replaces a missing or invalid token: minted from `accessToken` when asked, else from the login session.\n const createSessionToken = () =>\n mintSessionToken && accessToken\n ? auth.createCurrentUserSessionToken(accessToken)\n : auth.createAdminAccountSessionToken();\n\n const ensureValidToken = async () => {\n if (token && Date.now() < tokenValidUntil) return token;\n\n if (token && (await isTokenValid(token))) {\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n }\n\n token = await createSessionToken();\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n };\n\n // Deduplicate concurrent auth — all parallel requests share one inflight promise.\n const ensureValidTokenDeduped = dedupe(ensureValidToken);\n\n return (next) => async (request) => {\n const validToken = await ensureValidTokenDeduped();\n\n request.request.headers.set(KeboolaHttpHeader.MANAGEMENT_API_TOKEN, validToken);\n return next(request);\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nexport const createCurrentUser = (client: ManagementOpenApiFetchClient) => {\n const getMaintainerInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptMaintainerInvitation = async (id: number) => {\n await client.put('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n const rejectMaintainerInvitation = async (id: number) => {\n await client.delete('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n const getOrganizationInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getOrganizationInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptOrganizationInvitation = async (id: number) => {\n await client.put('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n const rejectOrganizationInvitation = async (id: number) => {\n await client.delete('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n const getProjectInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/current-user/projects-invitations', {}, { signal });\n return data;\n };\n\n const getProjectInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptProjectInvitation = async (id: number) => {\n await client.put('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n const rejectProjectInvitation = async (id: number) => {\n await client.delete('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n const getProjectJoinRequests = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-join-requests',\n {},\n { signal },\n );\n return data;\n };\n\n const getProjectJoinRequest = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-join-requests/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const deleteProjectJoinRequest = async (id: number) => {\n await client.delete('/manage/current-user/projects-join-requests/{id}', { path: { id } });\n };\n\n return {\n getMaintainerInvitations,\n getMaintainerInvitation,\n acceptMaintainerInvitation,\n rejectMaintainerInvitation,\n getOrganizationInvitations,\n getOrganizationInvitation,\n acceptOrganizationInvitation,\n rejectOrganizationInvitation,\n getProjectInvitations,\n getProjectInvitation,\n acceptProjectInvitation,\n rejectProjectInvitation,\n getProjectJoinRequests,\n getProjectJoinRequest,\n deleteProjectJoinRequest,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { DeletedProjectsListQuery } from './types';\n\nexport const createDeletedProjects = (client: ManagementOpenApiFetchClient) => {\n const getDeletedProjects = async (query?: DeletedProjectsListQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/deleted-projects',\n {\n query: {\n limit: query?.limit ?? undefined,\n offset: query?.offset ?? undefined,\n organizationId: query?.organizationId ?? undefined,\n name: query?.name ?? undefined,\n },\n },\n { signal },\n );\n return data;\n };\n\n const getDeletedProject = async (projectId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/deleted-projects/{projectId}',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n /** Restore a deleted project (cancels deletion). Maps to DELETE /manage/deleted-projects/{projectId}\n * — note: the RFC says POST but the live schema uses DELETE. */\n const restoreDeletedProject = async (projectId: number) => {\n await client.delete('/manage/deleted-projects/{projectId}', { path: { projectId } });\n };\n\n /** Permanently purge a deleted project (irreversible). Pass `ignoreBackendErrors: true` to purge\n * even if backend-storage cleanup fails. Returns the enqueued purge command. */\n const purgeDeletedProject = async (projectId: number, ignoreBackendErrors = false) => {\n const { data } = await client.post('/manage/deleted-projects/{projectId}/purge', {\n path: { projectId },\n body: { ignoreBackendErrors },\n });\n return data;\n };\n\n return {\n getDeletedProjects,\n getDeletedProject,\n restoreDeletedProject,\n purgeDeletedProject,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type { Feature, FeatureAdmin, FeatureProject, GetAllFeaturesQuery } from './types';\n\n// Read-only on purpose. The three write endpoints the schema declares are not exposed:\n//\n// - `POST /manage/features` — deprecated upstream; features are provisioned by migration.\n// - `PATCH /manage/features/{id}` — edits a definition shared by every project on the stack.\n// - `DELETE /manage/features/{id}` — removes it from every project that has it.\n//\n// Add one only alongside a caller that genuinely needs it.\nexport const createFeatures = (client: ManagementOpenApiFetchClient) => {\n const getAllFeatures = async (query: GetAllFeaturesQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/manage/features', { query }, { signal });\n return data as Feature[];\n };\n\n // The schema names the path parameter `id`; the public argument stays `featureId`.\n const getFeature = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}',\n { path: { id: featureId } },\n { signal },\n );\n return data as Feature;\n };\n\n const getFeatureProjects = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}/projects',\n { path: { id: featureId } },\n { signal },\n );\n // Every field is present on the response; the swagger just declares none of them required.\n return data as FeatureProject[];\n };\n\n const getFeatureAdmins = async (featureId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/features/{id}/admins',\n { path: { id: featureId } },\n { signal },\n );\n return data as FeatureAdmin[];\n };\n\n return {\n getAllFeatures,\n getFeature,\n getFeatureProjects,\n getFeatureAdmins,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreateFileStorageAbsBody,\n CreateFileStorageGcsBody,\n CreateFileStorageS3Body,\n FileStorageGcs,\n RotateFileStorageAbsInput,\n RotateFileStorageGcsInput,\n RotateFileStorageS3Input,\n} from './types';\n\n// The GCS methods return `FileStorageGcs`, which widens `gcsCredentials` — the generated schema models\n// it as `Record<string, never>`, where every property access would be `never`.\nexport const createFileStorage = (client: ManagementOpenApiFetchClient) => {\n const getFileStoragesS3 = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-s3', {}, { signal });\n return data;\n };\n\n const getFileStoragesAbs = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-abs', {}, { signal });\n return data;\n };\n\n const getFileStoragesGcs = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/file-storage-gcs', {}, { signal });\n return data as FileStorageGcs[];\n };\n\n const createFileStorageS3 = async (body: CreateFileStorageS3Body) => {\n const { data } = await client.post('/manage/file-storage-s3', { body });\n return data;\n };\n\n const rotateFileStorageS3Credentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageS3Input) => {\n const { data } = await client.post('/manage/file-storage-s3/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data;\n };\n\n const setFileStorageS3Default = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-s3/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data;\n };\n\n const createFileStorageAbs = async (body: CreateFileStorageAbsBody) => {\n const { data } = await client.post('/manage/file-storage-abs', { body });\n return data;\n };\n\n const rotateFileStorageAbsCredentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageAbsInput) => {\n const { data } = await client.post('/manage/file-storage-abs/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data;\n };\n\n const setFileStorageAbsDefault = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-abs/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data;\n };\n\n const createFileStorageGcs = async (body: CreateFileStorageGcsBody) => {\n const { data } = await client.post('/manage/file-storage-gcs', { body });\n return data as FileStorageGcs;\n };\n\n const rotateFileStorageGcsCredentials = async ({\n fileStorageId,\n ...body\n }: RotateFileStorageGcsInput) => {\n const { data } = await client.post('/manage/file-storage-gcs/{fileStorageId}/credentials', {\n path: { fileStorageId },\n body,\n });\n return data as FileStorageGcs;\n };\n\n const setFileStorageGcsDefault = async (fileStorageId: number) => {\n const { data } = await client.post('/manage/file-storage-gcs/{fileStorageId}/default', {\n path: { fileStorageId },\n });\n return data as FileStorageGcs;\n };\n\n return {\n getFileStoragesS3,\n getFileStoragesAbs,\n getFileStoragesGcs,\n createFileStorageS3,\n createFileStorageAbs,\n createFileStorageGcs,\n rotateFileStorageS3Credentials,\n rotateFileStorageAbsCredentials,\n rotateFileStorageGcsCredentials,\n setFileStorageS3Default,\n setFileStorageAbsDefault,\n setFileStorageGcsDefault,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n AddMaintainerUserInput,\n CompleteSamlSetupInput,\n CreateMaintainerBody,\n CreateMaintainerInvitationInput,\n CreateMaintainerOrganizationInput,\n CreateSamlConfigInput,\n Maintainer,\n MaintainerDetail,\n MaintainerInvitationPath,\n MaintainerMetadataItemPath,\n MaintainerUser,\n MaintainerUserPath,\n MetadataItem,\n SamlConfigPath,\n SetMaintainerMetadataInput,\n UpdateMaintainerInput,\n UpdateSamlConfigInput,\n} from './types';\n\nexport const createMaintainers = (client: ManagementOpenApiFetchClient) => {\n const getMaintainers = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/maintainers', {}, { signal });\n // The schema types each maintainer's `organizations` as bare objects; `Maintainer` overrides them.\n return data as unknown as Maintainer[];\n };\n\n const getMaintainer = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}',\n { path: { id: maintainerId } },\n { signal },\n );\n // The schema under-models the detail's `organizations`; the backend returns full objects.\n return data as unknown as MaintainerDetail;\n };\n\n const createMaintainer = async (body: CreateMaintainerBody) => {\n const { data } = await client.post('/manage/maintainers', { body });\n return data;\n };\n\n const updateMaintainer = async ({ maintainerId, ...body }: UpdateMaintainerInput) => {\n const { data } = await client.patch('/manage/maintainers/{id}', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainer = async (maintainerId: number) => {\n await client.delete('/manage/maintainers/{id}', { path: { id: maintainerId } });\n };\n\n const getMaintainerUsers = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/users',\n { path: { id: maintainerId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as MaintainerUser[];\n };\n\n const addMaintainerUser = async ({ maintainerId, ...body }: AddMaintainerUserInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/users', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const removeMaintainerUser = async ({ maintainerId, adminId }: MaintainerUserPath) => {\n await client.delete('/manage/maintainers/{id}/users/{adminId}', {\n path: { id: maintainerId, adminId },\n });\n };\n\n const getMaintainerInvitations = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (\n { maintainerId, invitationId }: MaintainerInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations/{invitationId}',\n { path: { id: maintainerId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainerInvitation = async ({\n maintainerId,\n ...body\n }: CreateMaintainerInvitationInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/invitations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainerInvitation = async ({\n maintainerId,\n invitationId,\n }: MaintainerInvitationPath) => {\n await client.delete('/manage/maintainers/{id}/invitations/{invitationId}', {\n path: { id: maintainerId, invitationId },\n });\n };\n\n const createMaintainerOrganization = async ({\n maintainerId,\n ...body\n }: CreateMaintainerOrganizationInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/organizations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const getMaintainerMetadata = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/metadata',\n { path: { id: maintainerId } },\n { signal },\n );\n // The swagger marks no field of the metadata items required; the backend sends them all.\n return data as MetadataItem[];\n };\n\n const setMaintainerMetadata = async ({ maintainerId, ...body }: SetMaintainerMetadataInput) => {\n const { data } = await client.post('/manage/maintainers/{id}/metadata', {\n path: { id: maintainerId },\n body,\n });\n return data as MetadataItem[];\n };\n\n const deleteMaintainerMetadata = async ({\n maintainerId,\n metadataId,\n }: MaintainerMetadataItemPath) => {\n await client.delete('/manage/maintainers/{id}/metadata/{metadataId}', {\n path: { id: maintainerId, metadataId },\n });\n };\n\n const getMaintainerOrganizations = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/organizations',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const joinMaintainer = async (maintainerId: number) => {\n await client.post('/manage/maintainers/{id}/join-maintainer', { path: { id: maintainerId } });\n };\n\n const getMaintainerSamlConfigs = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{maintainerId}/saml',\n { path: { maintainerId } },\n { signal },\n );\n return data;\n };\n\n const getMaintainerSamlConfig = async (\n { maintainerId, configId }: SamlConfigPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/maintainers/{maintainerId}/saml/{configId}',\n { path: { maintainerId, configId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainerSamlConfig = async ({ maintainerId, ...body }: CreateSamlConfigInput) => {\n const { data } = await client.post('/manage/maintainers/{maintainerId}/saml', {\n path: { maintainerId },\n body,\n });\n return data;\n };\n\n const updateMaintainerSamlConfig = async ({\n maintainerId,\n configId,\n ...body\n }: UpdateSamlConfigInput) => {\n const { data } = await client.patch('/manage/maintainers/{maintainerId}/saml/{configId}', {\n path: { maintainerId, configId },\n body,\n });\n return data;\n };\n\n const completeMaintainerSamlSetup = async ({\n maintainerId,\n configId,\n ...body\n }: CompleteSamlSetupInput) => {\n const { data } = await client.post(\n '/manage/maintainers/{maintainerId}/saml/{configId}/complete-setup',\n { path: { maintainerId, configId }, body },\n );\n return data;\n };\n\n const deleteMaintainerSamlConfig = async ({ maintainerId, configId }: SamlConfigPath) => {\n await client.delete('/manage/maintainers/{maintainerId}/saml/{configId}', {\n path: { maintainerId, configId },\n });\n };\n\n return {\n getMaintainers,\n getMaintainer,\n createMaintainer,\n updateMaintainer,\n deleteMaintainer,\n getMaintainerUsers,\n addMaintainerUser,\n removeMaintainerUser,\n getMaintainerInvitations,\n getMaintainerInvitation,\n createMaintainerInvitation,\n deleteMaintainerInvitation,\n createMaintainerOrganization,\n getMaintainerMetadata,\n setMaintainerMetadata,\n deleteMaintainerMetadata,\n getMaintainerOrganizations,\n joinMaintainer,\n getMaintainerSamlConfigs,\n getMaintainerSamlConfig,\n createMaintainerSamlConfig,\n updateMaintainerSamlConfig,\n completeMaintainerSamlSetup,\n deleteMaintainerSamlConfig,\n };\n};\n","import type { MetadataItem } from '../maintainers/types';\nimport type { ManagementOpenApiFetchClient } from '../managementClient';\nimport type { Project } from '../projects/types';\n\nimport type {\n AddOrganizationUserInput,\n AdminUser,\n CreateOrganizationInvitationInput,\n CreateOrganizationProjectInput,\n OrganizationDetail,\n OrganizationInvitationPath,\n OrganizationMetadataItemPath,\n OrganizationUserPath,\n SetOrganizationMetadataInput,\n UpdateOrganizationInput,\n} from './types';\n\nexport const createOrganizations = (client: ManagementOpenApiFetchClient) => {\n const getOrganizations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/organizations', {}, { signal });\n return data;\n };\n\n const getOrganization = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema's `projects` items carry only `{ id, name, created }`; the backend returns more.\n return data as unknown as OrganizationDetail;\n };\n\n const updateOrganization = async ({ organizationId, ...body }: UpdateOrganizationInput) => {\n const { data } = await client.patch('/manage/organizations/{id}', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganization = async (organizationId: number) => {\n await client.delete('/manage/organizations/{id}', { path: { id: organizationId } });\n };\n\n const forceMfa = async (organizationId: number) => {\n const { data } = await client.patch('/manage/organizations/{id}/force-mfa', {\n path: { id: organizationId },\n });\n return data;\n };\n\n const joinOrganization = async (organizationId: number) => {\n await client.post('/manage/organizations/{id}/join-organization', {\n path: { id: organizationId },\n });\n };\n\n const getOrganizationUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/users',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as AdminUser[];\n };\n\n const addOrganizationUser = async ({ organizationId, ...body }: AddOrganizationUserInput) => {\n const { data } = await client.post('/manage/organizations/{id}/users', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const removeOrganizationUser = async ({ organizationId, userId }: OrganizationUserPath) => {\n await client.delete('/manage/organizations/{id}/users/{userId}', {\n path: { id: organizationId, userId },\n });\n };\n\n const getOrganizationProjectsUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects-users',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema documents only `{ id, name, email }`; the backend also returns features and flags.\n return data as unknown as AdminUser[];\n };\n\n const getOrganizationInvitations = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations',\n { path: { id: organizationId } },\n { signal },\n );\n return data;\n };\n\n const getOrganizationInvitation = async (\n { organizationId, invitationId }: OrganizationInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations/{invitationId}',\n { path: { id: organizationId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createOrganizationInvitation = async ({\n organizationId,\n ...body\n }: CreateOrganizationInvitationInput) => {\n const { data } = await client.post('/manage/organizations/{id}/invitations', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganizationInvitation = async ({\n organizationId,\n invitationId,\n }: OrganizationInvitationPath) => {\n await client.delete('/manage/organizations/{id}/invitations/{invitationId}', {\n path: { id: organizationId, invitationId },\n });\n };\n\n const getOrganizationProjects = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects',\n { path: { id: organizationId } },\n { signal },\n );\n // The schema types the items as a bare object; the backend returns full project objects.\n return data as unknown as Project[];\n };\n\n const createOrganizationProject = async ({\n organizationId,\n ...body\n }: CreateOrganizationProjectInput) => {\n const { data } = await client.post('/manage/organizations/{id}/projects', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const getOrganizationMetadata = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/metadata',\n { path: { id: organizationId } },\n { signal },\n );\n // The swagger marks no field of the metadata items required; the backend sends them all.\n return data as MetadataItem[];\n };\n\n const setOrganizationMetadata = async ({\n organizationId,\n ...body\n }: SetOrganizationMetadataInput) => {\n const { data } = await client.post('/manage/organizations/{id}/metadata', {\n path: { id: organizationId },\n body,\n });\n return data as MetadataItem[];\n };\n\n const deleteOrganizationMetadata = async ({\n organizationId,\n metadataId,\n }: OrganizationMetadataItemPath) => {\n await client.delete('/manage/organizations/{id}/metadata/{metadataId}', {\n path: { id: organizationId, metadataId },\n });\n };\n\n return {\n getOrganizations,\n getOrganization,\n updateOrganization,\n deleteOrganization,\n forceMfa,\n joinOrganization,\n getOrganizationUsers,\n addOrganizationUser,\n removeOrganizationUser,\n getOrganizationProjectsUsers,\n getOrganizationInvitations,\n getOrganizationInvitation,\n createOrganizationInvitation,\n deleteOrganizationInvitation,\n getOrganizationProjects,\n createOrganizationProject,\n getOrganizationMetadata,\n setOrganizationMetadata,\n deleteOrganizationMetadata,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreatePaymentRequestBody,\n CreditPaymentRequest,\n CreditPurchase,\n PayAsYouGoBillingConfiguration,\n StripeCustomer,\n TopUpSetting,\n UpdateStripeCustomerBody,\n UpdateTopUpSettingBody,\n} from './types';\n\nexport const createPayAsYouGo = (client: ManagementOpenApiFetchClient) => {\n const getBillingConfiguration = async (\n signal?: AbortSignal,\n ): Promise<PayAsYouGoBillingConfiguration> => {\n const { data } = await client.get('/pay-as-you-go/billing/configuration', {}, { signal });\n return data as PayAsYouGoBillingConfiguration;\n };\n\n const getCreditPurchases = async (\n idProject: number,\n signal?: AbortSignal,\n ): Promise<CreditPurchase[]> => {\n const { data } = await client.post(\n '/pay-as-you-go/billing/credits',\n { body: { idProject } },\n { signal },\n );\n return data as CreditPurchase[];\n };\n\n const getStripeCustomer = async (\n idProject: number,\n signal?: AbortSignal,\n ): Promise<StripeCustomer | null> => {\n const { data } = await client.get(\n '/pay-as-you-go/billing/stripe-customer',\n { query: { idProject } },\n { signal },\n );\n return data;\n };\n\n const updateStripeCustomer = async (body: UpdateStripeCustomerBody) => {\n const { data } = await client.put('/pay-as-you-go/billing/stripe-customer', { body });\n return data;\n };\n\n const getTopUpSetting = async (\n projectId: number,\n signal?: AbortSignal,\n ): Promise<TopUpSetting> => {\n const { data } = await client.get(\n '/pay-as-you-go/billing/top-up/{projectId}',\n { path: { projectId } },\n { signal },\n );\n return data as TopUpSetting;\n };\n\n const updateTopUpSetting = async (body: UpdateTopUpSettingBody) => {\n await client.put('/pay-as-you-go/billing/top-up', { body });\n };\n\n const createPaymentRequest = async (\n body: CreatePaymentRequestBody,\n ): Promise<CreditPaymentRequest> => {\n const { data } = await client.post('/pay-as-you-go/billing/create-payment-request', { body });\n return data as CreditPaymentRequest;\n };\n\n return {\n getBillingConfiguration,\n getCreditPurchases,\n getStripeCustomer,\n updateStripeCustomer,\n getTopUpSetting,\n updateTopUpSetting,\n createPaymentRequest,\n };\n};\n","import type { ManagementGenericFetchClient } from '../managementClient';\n\nimport type { ConfirmProgrammaticProjectPayload, ConfirmProgrammaticProjectResult } from './types';\n\nexport const createProgrammaticProjects = (client: ManagementGenericFetchClient) => {\n /**\n * Redeem an agent project's claim, making the bearer's account its owner.\n *\n * - The session decides who becomes the owner; the payload only proves possession of the link.\n * - Single-use and irreversible: the claim is consumed before ownership is granted, so a second\n * call is a 400, never an idempotent success. Callers must not retry.\n * - A 400 covers malformed, unknown, expired, already-redeemed and never-provisioned alike. The\n * backend collapses them on purpose, because the claim is bearer-only.\n */\n const confirm = async (\n payload: ConfirmProgrammaticProjectPayload,\n signal?: AbortSignal,\n ): Promise<ConfirmProgrammaticProjectResult> => {\n const { data } = await client.post<ConfirmProgrammaticProjectResult>(\n '/manage/programmatic-projects/confirm',\n { body: payload },\n { signal },\n );\n\n return data;\n };\n\n return { confirm };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\nimport type { User } from '../types';\n\nimport type {\n AddProjectUserBody,\n AddProjectUserPath,\n AssignProjectTemplateFeatureInput,\n ChangeProjectUserRoleInput,\n CreateProjectFeatureBody,\n CreateProjectFeaturePath,\n CreateProjectInvitationBody,\n CreateProjectInvitationPath,\n DeleteProjectInvitationPath,\n DeleteProjectMetadataPath,\n GetProjectMetadataPath,\n GetProjectPath,\n GetProjectReviewersPath,\n JoinProjectInput,\n ListProjectInvitationsPath,\n ListProjectJoinRequestsPath,\n ListProjectUsersPath,\n MoveProjectInput,\n Project,\n ProjectBase,\n ProjectInvitableRole,\n ProjectJoinRequestPath,\n ProjectMetadataItem,\n RemoveProjectFeaturePath,\n RemoveProjectLimitPath,\n RemoveProjectTemplateFeaturePath,\n RemoveProjectUserPath,\n RequestProjectAccessInput,\n Reviewer,\n SetProjectDisabledInput,\n SetProjectLimitsInput,\n SetProjectMetadataBody,\n SetProjectMetadataPath,\n SetProjectReviewersBody,\n SetProjectReviewersPath,\n UpdateProjectInput,\n} from './types';\n\n// A project's own settings and membership; `projectId` accepts `number | string` (legacy callers).\n// Deliberately not exposed — they belong to their owning namespace:\n// - `POST …/tokens` → `api.storage.tokens`\n// - `POST`/`DELETE …/storage-backend`, `POST …/file-storage` → `api.management.storageBackends` / `fileStorage`\n// - `POST …/credits` — billing, no home here\nexport const createProjects = (client: ManagementOpenApiFetchClient) => {\n const getProject = async (projectId: GetProjectPath['projectId'], signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data as unknown as Project;\n };\n\n const getProjectTemplates = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/project-templates', {}, { signal });\n return data;\n };\n\n const addProjectFeature = async ({\n projectId,\n feature,\n }: CreateProjectFeaturePath & CreateProjectFeatureBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/features', {\n path: { projectId },\n body: { feature },\n });\n return data as ProjectBase;\n };\n\n const removeProjectFeature = async ({ projectId, feature }: RemoveProjectFeaturePath) => {\n await client.delete('/manage/projects/{projectId}/features/{feature}', {\n path: { projectId, feature },\n });\n return null;\n };\n\n const changeProjectUserRole = async ({ projectId, userId, role }: ChangeProjectUserRoleInput) => {\n const { data } = await client.patch('/manage/projects/{projectId}/users/{userId}', {\n path: { projectId, userId },\n // Schema omits the SOX roles (`productionManager` / `developer` / `reviewer`), which are accepted.\n body: { role: role as ProjectInvitableRole },\n });\n\n return data as User;\n };\n\n const getProjectUsers = async (\n projectId: ListProjectUsersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/users',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n // The schema types the items as a bare object; the backend returns full user objects.\n return data as unknown as User[];\n };\n\n const getProjectInvitations = async (\n projectId: ListProjectInvitationsPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/invitations',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data;\n };\n\n const createProjectInvitation = async ({\n projectId,\n ...body\n }: CreateProjectInvitationPath & CreateProjectInvitationBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/invitations', {\n path: { projectId },\n // SOX roles accepted but missing from the schema, as in `changeProjectUserRole`.\n body: { ...body, role: body.role as ProjectInvitableRole },\n });\n return data;\n };\n\n const deleteProjectInvitation = async ({\n projectId,\n invitationId,\n }: DeleteProjectInvitationPath) => {\n await client.delete('/manage/projects/{projectId}/invitations/{invitationId}', {\n path: { projectId, invitationId },\n });\n return null;\n };\n\n const addProjectUser = async ({\n projectId,\n ...body\n }: AddProjectUserPath & AddProjectUserBody) => {\n // 204: empty body, not the created user.\n await client.post('/manage/projects/{projectId}/users', { path: { projectId }, body });\n return null;\n };\n\n const removeProjectUser = async ({ projectId, idOrEmail }: RemoveProjectUserPath) => {\n await client.delete('/manage/projects/{projectId}/users/{idOrEmail}', {\n path: { projectId, idOrEmail: String(idOrEmail) },\n });\n return null;\n };\n\n const getProjectJoinRequests = async (\n projectId: ListProjectJoinRequestsPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/join-requests',\n { path: { projectId: Number(projectId) } },\n { signal },\n );\n return data;\n };\n\n const approveProjectJoinRequest = async ({\n projectId,\n joinRequestId,\n }: ProjectJoinRequestPath) => {\n await client.put('/manage/projects/{projectId}/join-requests/{joinRequestId}', {\n path: { projectId, joinRequestId },\n });\n return null;\n };\n\n const rejectProjectJoinRequest = async ({ projectId, joinRequestId }: ProjectJoinRequestPath) => {\n await client.delete('/manage/projects/{projectId}/join-requests/{joinRequestId}', {\n path: { projectId, joinRequestId },\n });\n return null;\n };\n\n const getProjectMetadata = async (\n projectId: GetProjectMetadataPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/metadata',\n { path: { projectId } },\n { signal },\n );\n // Swagger marks no field required, but all are present.\n return data as ProjectMetadataItem[];\n };\n\n const setProjectMetadata = async ({\n projectId,\n provider,\n metadata,\n }: SetProjectMetadataPath & SetProjectMetadataBody) => {\n const { data } = await client.post('/manage/projects/{projectId}/metadata', {\n path: { projectId },\n body: { provider, metadata },\n });\n return data as ProjectMetadataItem[];\n };\n\n const getProjectReviewers = async (\n projectId: GetProjectReviewersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/reviewers',\n { path: { projectId } },\n { signal },\n );\n return data as Reviewer[];\n };\n\n const setProjectReviewers = async ({\n projectId,\n adminIds,\n }: SetProjectReviewersPath & SetProjectReviewersBody) => {\n await client.put('/manage/projects/{projectId}/reviewers', {\n path: { projectId },\n body: { adminIds },\n });\n };\n\n const updateProject = async ({ projectId, ...body }: UpdateProjectInput) => {\n const { data } = await client.put('/manage/projects/{projectId}', {\n path: { projectId },\n body,\n });\n return data as ProjectBase;\n };\n\n const deleteProject = async (projectId: number) => {\n await client.delete('/manage/projects/{projectId}', { path: { projectId } });\n return null;\n };\n\n const moveProject = async ({ projectId, organizationId }: MoveProjectInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/organizations', {\n path: { projectId },\n body: { organizationId },\n });\n return data as ProjectBase;\n };\n\n const setProjectDisabled = async ({ projectId, ...body }: SetProjectDisabledInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/disabled', {\n path: { projectId },\n body,\n });\n return data as ProjectBase;\n };\n\n const setProjectLimits = async ({ projectId, ...body }: SetProjectLimitsInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/limits', {\n path: { projectId },\n body,\n });\n return data as unknown as Project;\n };\n\n const getProjectTemplate = async (templateId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/project-templates/{templateId}',\n { path: { templateId } },\n { signal },\n );\n return data;\n };\n\n const getProjectTemplateFeatures = async (templateId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/project-templates/{templateId}/features',\n { path: { templateId } },\n { signal },\n );\n return data;\n };\n\n const addProjectTemplateFeature = async ({\n templateId,\n ...body\n }: AssignProjectTemplateFeatureInput) => {\n await client.post('/manage/project-templates/{templateId}/features', {\n path: { templateId },\n body,\n });\n };\n\n const removeProjectTemplateFeature = async ({\n templateId,\n featureName,\n }: RemoveProjectTemplateFeaturePath) => {\n await client.delete('/manage/project-templates/{templateId}/features/{featureName}', {\n path: { templateId, featureName },\n });\n };\n\n const getProjectInvitation = async (\n { projectId, invitationId }: DeleteProjectInvitationPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/invitations/{invitationId}',\n { path: { projectId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const getProjectJoinRequest = async (\n { projectId, joinRequestId }: ProjectJoinRequestPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/projects/{projectId}/join-requests/{joinRequestId}',\n { path: { projectId, joinRequestId } },\n { signal },\n );\n return data;\n };\n\n const joinProject = async ({ projectId, ...body }: JoinProjectInput) => {\n await client.post('/manage/projects/{projectId}/join-project', { path: { projectId }, body });\n };\n\n const requestProjectAccess = async ({ projectId, ...body }: RequestProjectAccessInput) => {\n const { data } = await client.post('/manage/projects/{projectId}/request-access', {\n path: { projectId },\n body,\n });\n return data;\n };\n\n const removeProjectLimit = async ({ projectId, limitName }: RemoveProjectLimitPath) => {\n await client.delete('/manage/projects/{projectId}/limits/{limitName}', {\n path: { projectId, limitName },\n });\n };\n\n const deleteProjectMetadata = async ({ projectId, metadataId }: DeleteProjectMetadataPath) => {\n await client.delete('/manage/projects/{projectId}/metadata/{metadataId}', {\n path: { projectId, metadataId },\n });\n };\n\n return {\n getProject,\n getProjectTemplates,\n addProjectFeature,\n removeProjectFeature,\n changeProjectUserRole,\n getProjectUsers,\n getProjectInvitations,\n createProjectInvitation,\n deleteProjectInvitation,\n addProjectUser,\n removeProjectUser,\n getProjectJoinRequests,\n approveProjectJoinRequest,\n rejectProjectJoinRequest,\n getProjectMetadata,\n setProjectMetadata,\n getProjectReviewers,\n setProjectReviewers,\n updateProject,\n deleteProject,\n moveProject,\n setProjectDisabled,\n setProjectLimits,\n getProjectTemplate,\n getProjectTemplateFeatures,\n addProjectTemplateFeature,\n removeProjectTemplateFeature,\n getProjectInvitation,\n getProjectJoinRequest,\n joinProject,\n requestProjectAccess,\n removeProjectLimit,\n deleteProjectMetadata,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n CreateBigqueryStorageBackendBody,\n CreateSnowflakeStorageBackendBody,\n GetStorageBackendProjectsQuery,\n StorageBackend,\n UpdateBigqueryStorageBackendInput,\n UpdateStorageBackendInput,\n} from './types';\n\nexport const createStorageBackends = (client: ManagementOpenApiFetchClient) => {\n // `StorageBackend` weakens three fields the schema marks required — see its doc comment.\n const getStorageBackend = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get('/manage/storage-backend/{id}', { path: { id } }, { signal });\n return data as StorageBackend;\n };\n\n const getStorageBackends = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/storage-backend', {}, { signal });\n return data as StorageBackend[];\n };\n\n /** Projects assigned to this backend, paginated via `limit`/`offset`. */\n const getStorageBackendProjects = async (\n id: number,\n query?: GetStorageBackendProjectsQuery,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/storage-backend/{id}/projects',\n { path: { id }, query: { limit: query?.limit, offset: query?.offset } },\n { signal },\n );\n return data;\n };\n\n /** Maintainers assigned to this backend — small, unpaginated list. */\n const getStorageBackendMaintainers = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/storage-backend/{id}/maintainers',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const createSnowflakeStorageBackend = async (body: CreateSnowflakeStorageBackendBody) => {\n const { data } = await client.post('/manage/storage-backend/snowflake', { body });\n return data;\n };\n\n const createBigqueryStorageBackend = async (body: CreateBigqueryStorageBackendBody) => {\n const { data } = await client.post('/manage/storage-backend/bigquery', { body });\n return data;\n };\n\n const updateStorageBackend = async ({ id, ...body }: UpdateStorageBackendInput) => {\n const { data } = await client.patch('/manage/storage-backend/{id}', { path: { id }, body });\n return data;\n };\n\n const updateBigqueryStorageBackend = async ({\n id,\n ...body\n }: UpdateBigqueryStorageBackendInput) => {\n const { data } = await client.patch('/manage/storage-backend/{id}/bigquery', {\n path: { id },\n body,\n });\n return data;\n };\n\n const activateStorageBackend = async (backendId: number) => {\n const { data } = await client.post('/manage/storage-backend/{backendId}/activate', {\n path: { backendId },\n });\n return data;\n };\n\n const deleteStorageBackend = async (id: number) => {\n await client.delete('/manage/storage-backend/{id}', { path: { id } });\n };\n\n return {\n getStorageBackend,\n getStorageBackends,\n getStorageBackendProjects,\n getStorageBackendMaintainers,\n createSnowflakeStorageBackend,\n createBigqueryStorageBackend,\n updateStorageBackend,\n updateBigqueryStorageBackend,\n activateStorageBackend,\n deleteStorageBackend,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n GetUiAppsQuery,\n RegisterUiAppBody,\n RenameUiAppBody,\n UiApp,\n UiAppDetail,\n} from './types';\n\nexport const createUiApps = (client: ManagementOpenApiFetchClient) => {\n const getUiApps = async (query?: GetUiAppsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/ui-apps',\n // Sent only when asked for: the bare collection is public and every extra param\n // would be copied by ui-apps:sync on other stacks.\n { query: query?.includeInactive ? { includeInactive: true } : {} },\n { signal },\n );\n // `UiApp` tightens the two listing shapes the spec declares — see its comment.\n return data as UiApp[];\n };\n\n /** `stringId`, not the numeric id — the API keys UI applications on the immutable manifest name. */\n const getUiApp = async (stringId: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/ui-apps/{id}',\n { path: { id: stringId } },\n { signal },\n );\n // `UiAppDetail` tightens the version fields the spec marks optional — see its comment.\n return data as UiAppDetail;\n };\n\n const registerUiApp = async (body: RegisterUiAppBody) => {\n const { data } = await client.post('/manage/ui-apps', { body });\n return data;\n };\n\n const renameUiApp = async ({ stringId, ...body }: { stringId: string } & RenameUiAppBody) => {\n await client.patch('/manage/ui-apps/{id}', { path: { id: stringId }, body });\n };\n\n const activateUiAppVersion = async ({\n stringId,\n version,\n }: {\n stringId: string;\n version: string;\n }) => {\n await client.post('/manage/ui-apps/{id}/activate/{version}', {\n path: { id: stringId, version },\n });\n };\n\n const deleteUiApp = async (stringId: string) => {\n await client.delete('/manage/ui-apps/{id}', { path: { id: stringId } });\n };\n\n return {\n getUiApps,\n getUiApp,\n registerUiApp,\n renameUiApp,\n activateUiAppVersion,\n deleteUiApp,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n AddUserFeatureBody,\n AddUserFeaturePath,\n DeleteUserMetadataPath,\n GetUsersQuery,\n RemoveUserFeaturePath,\n SetUserMetadataInput,\n UpdateUserInput,\n UserDetail,\n UserListItem,\n UserMaintainerMembership,\n UserOrganizationMembership,\n UserProjectMembership,\n} from './types';\n\n// The schema names the path parameters `idOrEmail` / `featureName`; the public arguments keep the\n// names call sites already use. `createPath` percent-encodes every path parameter, so an email must\n// NOT be encoded here as well — doing so double-encodes it (`a@b.com` → `a%2540b.com`).\nexport const createUsers = (client: ManagementOpenApiFetchClient) => {\n const addUserAdminFeature = async (\n { feature, userIdOrMail }: AddUserFeatureBody & AddUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post(\n '/manage/users/{idOrEmail}/features',\n { path: { idOrEmail: userIdOrMail }, body: { feature } },\n { signal },\n );\n return data;\n };\n\n const removeUserAdminFeature = async (\n { userIdOrMail, feature }: RemoveUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.delete(\n '/manage/users/{idOrEmail}/features/{featureName}',\n { path: { idOrEmail: userIdOrMail, featureName: feature } },\n { signal },\n );\n return data;\n };\n\n /** Paginated list of all users, filterable via `q` (name/email substring). */\n const getUsers = async (query?: GetUsersQuery, signal?: AbortSignal): Promise<UserListItem[]> => {\n const { data } = await client.get(\n '/manage/users',\n { query: { q: query?.q, limit: query?.limit, offset: query?.offset } },\n { signal },\n );\n return data;\n };\n\n const getUser = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.get(\n '/manage/users/{idOrEmail}',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const getUserOrganizations = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserOrganizationMembership[]> => {\n const { data } = await client.get(\n '/manage/users/{id}/organizations',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const getUserProjects = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserProjectMembership[]> => {\n const { data } = await client.get('/manage/users/{id}/projects', { path: { id } }, { signal });\n return data;\n };\n\n const getUserMaintainers = async (\n id: number,\n signal?: AbortSignal,\n ): Promise<UserMaintainerMembership[]> => {\n const { data } = await client.get(\n '/manage/users/{id}/maintainers',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n /** Requires the target user to have MFA enabled (422 otherwise). Superadmin-only. */\n const grantSuperAdmin = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.post(\n '/manage/users/{id}/super-admin',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const removeSuperAdmin = async (id: number, signal?: AbortSignal): Promise<UserDetail> => {\n const { data } = await client.delete(\n '/manage/users/{idOrEmail}/super-admin',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const disableUserMfa = async (id: number, signal?: AbortSignal): Promise<void> => {\n await client.delete(\n '/manage/users/{idOrEmail}/mfa',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n };\n\n const deleteUser = async (id: number, signal?: AbortSignal): Promise<void> => {\n await client.delete(\n '/manage/users/{idOrEmail}',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n };\n\n const updateUser = async ({ id, ...body }: UpdateUserInput) => {\n const { data } = await client.put('/manage/users/{idOrEmail}', {\n path: { idOrEmail: String(id) },\n body,\n });\n return data;\n };\n\n const getUserMetadata = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/users/{idOrEmail}/metadata',\n { path: { idOrEmail: String(id) } },\n { signal },\n );\n return data;\n };\n\n const setUserMetadata = async ({ id, ...body }: SetUserMetadataInput) => {\n const { data } = await client.post('/manage/users/{idOrEmail}/metadata', {\n path: { idOrEmail: String(id) },\n body,\n });\n return data;\n };\n\n const deleteUserMetadata = async ({ id, metadataId }: DeleteUserMetadataPath) => {\n await client.delete('/manage/users/{idOrEmail}/metadata/{metadataId}', {\n path: { idOrEmail: String(id), metadataId },\n });\n };\n\n return {\n addUserAdminFeature,\n removeUserAdminFeature,\n getUsers,\n getUser,\n getUserOrganizations,\n getUserProjects,\n getUserMaintainers,\n grantSuperAdmin,\n removeSuperAdmin,\n disableUserMfa,\n deleteUser,\n updateUser,\n getUserMetadata,\n setUserMetadata,\n deleteUserMetadata,\n };\n};\n","import {\n createGenericFetchClient,\n createOpenapiFetchClient,\n HttpHeader,\n type MiddlewareFn,\n} from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createApplicationTokens } from './applicationTokens';\nimport { createAuthMiddleware } from './authMiddleware';\nimport { createCurrentUser } from './currentUser';\nimport { createDeletedProjects } from './deletedProjects';\nimport { createFeatures } from './features';\nimport { createFileStorage } from './fileStorage';\nimport { createMaintainers } from './maintainers';\nimport { createOrganizations } from './organizations';\nimport { createPayAsYouGo } from './payAsYouGo';\nimport { createProgrammaticProjects } from './programmaticProjects';\nimport { createProjects } from './projects';\nimport { createStorageBackends } from './storageBackends';\nimport { createUiApps } from './uiApps';\nimport { createUsers } from './users';\nimport { validateManagementStatus } from './validateStatus';\n\nexport type ManagementOpenApiFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\nexport type ManagementGenericFetchClient = ReturnType<typeof createGenericFetchClient>;\n\nexport type AuthStrategy =\n | {\n type: 'management-token';\n token?: string;\n /** Send a session token minted from `token`, as a deployed UI does, instead of `token` itself. */\n mintSessionToken?: boolean;\n }\n | { type: 'bearer'; token: string };\n\n// Only invoked on the raw (no-auth-middleware) path — otherwise the auth middleware\n// owns the Manage API token header.\nconst createAuthHeaders = (auth: AuthStrategy): Record<string, string> => {\n if (auth.type === 'management-token')\n return auth.token ? { [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: auth.token } : {};\n\n return { [HttpHeader.AUTHORIZATION]: `Bearer ${auth.token}` };\n};\n\ntype ManagementClientInitOptions = Omit<ClientInitOptions, 'auth' | 'baseUrl' | 'middlewares'> & {\n // Not the widened `BaseUrl`: the auth middleware mints a session token outside any request, so it\n // needs the URL up front rather than a resolver awaited per call.\n baseUrl: string;\n auth: AuthStrategy;\n middlewares?: MiddlewareFn[];\n withAuthMiddleware?: boolean;\n};\n\nexport const createManagementClient = ({\n baseUrl,\n middlewares = [],\n auth,\n withAuthMiddleware = true,\n}: ManagementClientInitOptions) => {\n // The auth middleware keeps a long-lived management session alive: it verifies the\n // token and, when it's invalid/expired, mints/refreshes a session token. That self-healing\n // is wrong for a plain \"is this token valid?\" check (it would recurse when used to verify,\n // and mint a session instead of reporting invalid). Pass `withAuthMiddleware: false` to get\n // a raw client that just attaches the token — used for token verification.\n const allMiddlewares =\n withAuthMiddleware && auth.type === 'management-token'\n ? [\n ...middlewares,\n createAuthMiddleware({\n baseUrl,\n accessToken: auth.token,\n mintSessionToken: auth.mintSessionToken,\n }), // 👈 order of middlewares always matters\n ]\n : middlewares;\n\n const headers = withAuthMiddleware ? undefined : createAuthHeaders(auth);\n\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares: allMiddlewares,\n headers,\n validateStatus: validateManagementStatus,\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n // The authenticated twin of `genericClient`, for endpoints the generated schema does not carry\n // yet. Same middlewares, headers and status validation as the OpenAPI client — `genericClient`\n // deliberately has none of the three, because `healthCheck` is an unauthenticated host probe.\n const authedGenericClient = createGenericFetchClient({\n baseUrl,\n middlewares: allMiddlewares,\n headers,\n validateStatus: validateManagementStatus,\n });\n\n const verifyToken = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/tokens/verify', {}, { signal });\n return data;\n };\n\n // Host-level: Connection serves the storage, management and auth APIs off one baseUrl, so this\n // probes the host, not this API's prefix — `/v2/storage/health-check`, `/manage/health-check`\n // and `/v1/auth/health-check` all 404.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n applicationTokens: createApplicationTokens(client),\n healthCheck,\n currentUser: createCurrentUser(client),\n deletedProjects: createDeletedProjects(client),\n maintainers: createMaintainers(client),\n organizations: createOrganizations(client),\n payAsYouGo: createPayAsYouGo(client),\n features: createFeatures(client),\n fileStorage: createFileStorage(client),\n projects: createProjects(client),\n programmaticProjects: createProgrammaticProjects(authedGenericClient),\n storageBackends: createStorageBackends(client),\n uiApps: createUiApps(client),\n users: createUsers(client),\n verifyToken,\n };\n};\n"],"mappings":";;;;;;;AAIA,MAAa,2BAA2B,WAAyC;CAC/E,MAAM,uBAAuB,OAAO,WAAyB;EAC3D,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,8BAA8B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC9E,OAAO;CACT;CAEA,MAAM,4BAA4B,OAAO,WAAyB;EAChE,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,qCAAqC,CAAC,GAAG,EAAE,OAAO,CAAC;EACrF,OAAO;CACT;CAEA,MAAM,yBAAyB,OAAO,SAAqC;EACzE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,8BAA8B,EAAE,KAAK,CAAC;EACzE,OAAO;CACT;CAEA,MAAM,yBAAyB,OAAO,YAAoB;EACxD,MAAM,OAAO,OAAO,mCAAmC,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;CAClF;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;;;;;;;;;;ACnBA,MAAa,4BAA8C,gBAAgB;CACzE,MAAM,UAAU,sBAAsB,WAAW;CAEjD,IAAI,WAAW,oBAAoB,WAAW,GAC5C,OAAO,IAAI,0BACT,wBACA,yCACA,WACF;CAGF,OAAO;AACT;;;ACXA,MAAM,qBAAqB;AAE3B,MAAa,+BAA+B,UAC1C,iBAAiB;AAEnB,MAAM,cAAc,YAAoB;CACtC,MAAM,cAAc,yBAAyB;EAC3C;EACA,gBAAgB;CAClB,CAAC;CAGD,MAAM,wBAAwB,OAAO,gBAAwB;EAC3D,MAAM,UAAU,IAAI,QAAQ,GAAG,kBAAkB,uBAAuB,YAAY,CAAC;EACrF,MAAM,EAAE,SAAS,MAAM,YAAY,IACjC,yBACA,CAAC,GACD,EAAE,QAAQ,CACZ;EACA,OAAO;CACT;CAEA,MAAM,gCAAgC,OAAO,gBAAwB;EACnE,MAAM,UAAU,IAAI,QAAQ,GAAG,kBAAkB,uBAAuB,YAAY,CAAC;EACrF,MAAM,EAAE,SAAS,MAAM,YAAY,KACjC,sCACA,CAAC,GACD,EAAE,QAAQ,CACZ;EACA,OAAO,KAAK;CACd;CAIA,MAAM,iCAAiC,YAAY;EACjD,MAAM,EAAE,SAAS,MAAM,YAAY,KACjC,gCACA,CAAC,CACH;EACA,OAAO,KAAK;CACd;CAEA,OAAO;EACL;EACA;EACA;CACF;AACF;AAEA,MAAa,wBAAwB,EACnC,aACA,SACA,mBAAmB,YAKD;CAClB,MAAM,OAAO,WAAW,OAAO;CAE/B,IAAI,QAA4B,mBAAmB,KAAA,IAAY;CAC/D,IAAI,kBAAkB;CAGtB,MAAM,eAAe,OAAO,cAAsB;EAChD,IAAI;GACF,MAAM,OAAO,MAAM,KAAK,sBAAsB,SAAS;GACvD,OAAO,CAAC,KAAK,cAAc,CAAC,KAAK;EACnC,SAAS,OAAO;GACd,IAAI,WAAW,KAAK,KAAK,MAAM,SAAS,WAAW,KAAK,OAAO;GAC/D,MAAM;EACR;CACF;CAGA,MAAM,2BACJ,oBAAoB,cAChB,KAAK,8BAA8B,WAAW,IAC9C,KAAK,+BAA+B;CAE1C,MAAM,mBAAmB,YAAY;EACnC,IAAI,SAAS,KAAK,IAAI,IAAI,iBAAiB,OAAO;EAElD,IAAI,SAAU,MAAM,aAAa,KAAK,GAAI;GACxC,kBAAkB,KAAK,IAAI,IAAI;GAC/B,OAAO;EACT;EAEA,QAAQ,MAAM,mBAAmB;EACjC,kBAAkB,KAAK,IAAI,IAAI;EAC/B,OAAO;CACT;CAGA,MAAM,0BAA0B,OAAO,gBAAgB;CAEvD,QAAQ,SAAS,OAAO,YAAY;EAClC,MAAM,aAAa,MAAM,wBAAwB;EAEjD,QAAQ,QAAQ,QAAQ,IAAI,kBAAkB,sBAAsB,UAAU;EAC9E,OAAO,KAAK,OAAO;CACrB;AACF;;;AChHA,MAAa,qBAAqB,WAAyC;CACzE,MAAM,2BAA2B,OAAO,WAAyB;EAC/D,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gDACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,IAAY,WAAyB;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,qDACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,OAAe;EACvD,MAAM,OAAO,IAAI,qDAAqD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CACxF;CAEA,MAAM,6BAA6B,OAAO,OAAe;EACvD,MAAM,OAAO,OAAO,qDAAqD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAC3F;CAEA,MAAM,6BAA6B,OAAO,WAAyB;EACjE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,kDACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAAO,IAAY,WAAyB;EAC5E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,uDACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,+BAA+B,OAAO,OAAe;EACzD,MAAM,OAAO,IAAI,uDAAuD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAC1F;CAEA,MAAM,+BAA+B,OAAO,OAAe;EACzD,MAAM,OAAO,OAAO,uDAAuD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAC7F;CAEA,MAAM,wBAAwB,OAAO,WAAyB;EAC5D,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,6CAA6C,CAAC,GAAG,EAAE,OAAO,CAAC;EAC7F,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,IAAY,WAAyB;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,kDACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,OAAe;EACpD,MAAM,OAAO,IAAI,kDAAkD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CACrF;CAEA,MAAM,0BAA0B,OAAO,OAAe;EACpD,MAAM,OAAO,OAAO,kDAAkD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CACxF;CAEA,MAAM,yBAAyB,OAAO,WAAyB;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,+CACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,IAAY,WAAyB;EACxE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,oDACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,OAAe;EACrD,MAAM,OAAO,OAAO,oDAAoD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAC1F;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AChHA,MAAa,yBAAyB,WAAyC;CAC7E,MAAM,qBAAqB,OAAO,OAAkC,WAAyB;EAC3F,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,4BACA,EACE,OAAO;GACL,OAAO,OAAO,SAAS,KAAA;GACvB,QAAQ,OAAO,UAAU,KAAA;GACzB,gBAAgB,OAAO,kBAAkB,KAAA;GACzC,MAAM,OAAO,QAAQ,KAAA;EACvB,EACF,GACA,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,WAAmB,WAAyB;EAC3E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,wCACA,EAAE,MAAM,EAAE,UAAU,EAAE,GACtB,EAAE,OAAO,CACX;EACA,OAAO;CACT;;;CAIA,MAAM,wBAAwB,OAAO,cAAsB;EACzD,MAAM,OAAO,OAAO,wCAAwC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;CACrF;;;CAIA,MAAM,sBAAsB,OAAO,WAAmB,sBAAsB,UAAU;EACpF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,8CAA8C;GAC/E,MAAM,EAAE,UAAU;GAClB,MAAM,EAAE,oBAAoB;EAC9B,CAAC;EACD,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;;;ACzCA,MAAa,kBAAkB,WAAyC;CACtE,MAAM,iBAAiB,OAAO,OAA4B,WAAyB;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,oBAAoB,EAAE,MAAM,GAAG,EAAE,OAAO,CAAC;EAC3E,OAAO;CACT;CAGA,MAAM,aAAa,OAAO,WAAmB,WAAyB;EACpE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yBACA,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,GAC1B,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,WAAmB,WAAyB;EAC5E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,kCACA,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,GAC1B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,WAAmB,WAAyB;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gCACA,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,GAC1B,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;;;ACtCA,MAAa,qBAAqB,WAAyC;CACzE,MAAM,oBAAoB,OAAO,WAAyB;EACxD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC3E,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,WAAyB;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,4BAA4B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC5E,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,WAAyB;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,4BAA4B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC5E,OAAO;CACT;CAEA,MAAM,sBAAsB,OAAO,SAAkC;EACnE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2BAA2B,EAAE,KAAK,CAAC;EACtE,OAAO;CACT;CAEA,MAAM,iCAAiC,OAAO,EAC5C,eACA,GAAG,WAC2B;EAC9B,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uDAAuD;GACxF,MAAM,EAAE,cAAc;GACtB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,kBAA0B;EAC/D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mDAAmD,EACpF,MAAM,EAAE,cAAc,EACxB,CAAC;EACD,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,SAAmC;EACrE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,4BAA4B,EAAE,KAAK,CAAC;EACvE,OAAO;CACT;CAEA,MAAM,kCAAkC,OAAO,EAC7C,eACA,GAAG,WAC4B;EAC/B,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,wDAAwD;GACzF,MAAM,EAAE,cAAc;GACtB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,kBAA0B;EAChE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,oDAAoD,EACrF,MAAM,EAAE,cAAc,EACxB,CAAC;EACD,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,SAAmC;EACrE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,4BAA4B,EAAE,KAAK,CAAC;EACvE,OAAO;CACT;CAEA,MAAM,kCAAkC,OAAO,EAC7C,eACA,GAAG,WAC4B;EAC/B,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,wDAAwD;GACzF,MAAM,EAAE,cAAc;GACtB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,kBAA0B;EAChE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,oDAAoD,EACrF,MAAM,EAAE,cAAc,EACxB,CAAC;EACD,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AC3FA,MAAa,qBAAqB,WAAyC;CACzE,MAAM,iBAAiB,OAAO,WAAyB;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC;EAEvE,OAAO;CACT;CAEA,MAAM,gBAAgB,OAAO,cAAsB,WAAyB;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,4BACA,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,GAC7B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,SAA+B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uBAAuB,EAAE,KAAK,CAAC;EAClE,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,EAAE,cAAc,GAAG,WAAkC;EACnF,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,4BAA4B;GAC9D,MAAM,EAAE,IAAI,aAAa;GACzB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,iBAAyB;EACvD,MAAM,OAAO,OAAO,4BAA4B,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;CAChF;CAEA,MAAM,qBAAqB,OAAO,cAAsB,WAAyB;EAC/E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,kCACA,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,GAC7B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,EAAE,cAAc,GAAG,WAAmC;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,kCAAkC;GACnE,MAAM,EAAE,IAAI,aAAa;GACzB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,EAAE,cAAc,cAAkC;EACpF,MAAM,OAAO,OAAO,4CAA4C,EAC9D,MAAM;GAAE,IAAI;GAAc;EAAQ,EACpC,CAAC;CACH;CAEA,MAAM,2BAA2B,OAAO,cAAsB,WAAyB;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,wCACA,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,GAC7B,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAC9B,EAAE,cAAc,gBAChB,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,uDACA,EAAE,MAAM;GAAE,IAAI;GAAc;EAAa,EAAE,GAC3C,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EACxC,cACA,GAAG,WACkC;EACrC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,wCAAwC;GACzE,MAAM,EAAE,IAAI,aAAa;GACzB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EACxC,cACA,mBAC8B;EAC9B,MAAM,OAAO,OAAO,uDAAuD,EACzE,MAAM;GAAE,IAAI;GAAc;EAAa,EACzC,CAAC;CACH;CAEA,MAAM,+BAA+B,OAAO,EAC1C,cACA,GAAG,WACoC;EACvC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,0CAA0C;GAC3E,MAAM,EAAE,IAAI,aAAa;GACzB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,cAAsB,WAAyB;EAClF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,qCACA,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,GAC7B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,EAAE,cAAc,GAAG,WAAuC;EAC7F,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,qCAAqC;GACtE,MAAM,EAAE,IAAI,aAAa;GACzB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,EACtC,cACA,iBACgC;EAChC,MAAM,OAAO,OAAO,kDAAkD,EACpE,MAAM;GAAE,IAAI;GAAc;EAAW,EACvC,CAAC;CACH;CAEA,MAAM,6BAA6B,OAAO,cAAsB,WAAyB;EACvF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,GAC7B,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAAO,iBAAyB;EACrD,MAAM,OAAO,KAAK,4CAA4C,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;CAC9F;CAEA,MAAM,2BAA2B,OAAO,cAAsB,WAAyB;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,2CACA,EAAE,MAAM,EAAE,aAAa,EAAE,GACzB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAC9B,EAAE,cAAc,YAChB,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,sDACA,EAAE,MAAM;GAAE;GAAc;EAAS,EAAE,GACnC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EAAE,cAAc,GAAG,WAAkC;EAC7F,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,2CAA2C;GAC5E,MAAM,EAAE,aAAa;GACrB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EACxC,cACA,UACA,GAAG,WACwB;EAC3B,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,sDAAsD;GACxF,MAAM;IAAE;IAAc;GAAS;GAC/B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,8BAA8B,OAAO,EACzC,cACA,UACA,GAAG,WACyB;EAC5B,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,qEACA;GAAE,MAAM;IAAE;IAAc;GAAS;GAAG;EAAK,CAC3C;EACA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EAAE,cAAc,eAA+B;EACvF,MAAM,OAAO,OAAO,sDAAsD,EACxE,MAAM;GAAE;GAAc;EAAS,EACjC,CAAC;CACH;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AChPA,MAAa,uBAAuB,WAAyC;CAC3E,MAAM,mBAAmB,OAAO,WAAyB;EACvD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC;EACzE,OAAO;CACT;CAEA,MAAM,kBAAkB,OAAO,gBAAwB,WAAyB;EAC9E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,8BACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,EAAE,gBAAgB,GAAG,WAAoC;EACzF,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,8BAA8B;GAChE,MAAM,EAAE,IAAI,eAAe;GAC3B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,mBAA2B;EAC3D,MAAM,OAAO,OAAO,8BAA8B,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;CACpF;CAEA,MAAM,WAAW,OAAO,mBAA2B;EACjD,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,wCAAwC,EAC1E,MAAM,EAAE,IAAI,eAAe,EAC7B,CAAC;EACD,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,mBAA2B;EACzD,MAAM,OAAO,KAAK,gDAAgD,EAChE,MAAM,EAAE,IAAI,eAAe,EAC7B,CAAC;CACH;CAEA,MAAM,uBAAuB,OAAO,gBAAwB,WAAyB;EACnF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,oCACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,sBAAsB,OAAO,EAAE,gBAAgB,GAAG,WAAqC;EAC3F,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,oCAAoC;GACrE,MAAM,EAAE,IAAI,eAAe;GAC3B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,yBAAyB,OAAO,EAAE,gBAAgB,aAAmC;EACzF,MAAM,OAAO,OAAO,6CAA6C,EAC/D,MAAM;GAAE,IAAI;GAAgB;EAAO,EACrC,CAAC;CACH;CAEA,MAAM,+BAA+B,OAAO,gBAAwB,WAAyB;EAC3F,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,6CACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,gBAAwB,WAAyB;EACzF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAChC,EAAE,gBAAgB,gBAClB,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yDACA,EAAE,MAAM;GAAE,IAAI;GAAgB;EAAa,EAAE,GAC7C,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,+BAA+B,OAAO,EAC1C,gBACA,GAAG,WACoC;EACvC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,0CAA0C;GAC3E,MAAM,EAAE,IAAI,eAAe;GAC3B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,+BAA+B,OAAO,EAC1C,gBACA,mBACgC;EAChC,MAAM,OAAO,OAAO,yDAAyD,EAC3E,MAAM;GAAE,IAAI;GAAgB;EAAa,EAC3C,CAAC;CACH;CAEA,MAAM,0BAA0B,OAAO,gBAAwB,WAAyB;EACtF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,uCACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAAO,EACvC,gBACA,GAAG,WACiC;EACpC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uCAAuC;GACxE,MAAM,EAAE,IAAI,eAAe;GAC3B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,gBAAwB,WAAyB;EACtF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,uCACA,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,GAC/B,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,EACrC,gBACA,GAAG,WAC+B;EAClC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uCAAuC;GACxE,MAAM,EAAE,IAAI,eAAe;GAC3B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,EACxC,gBACA,iBACkC;EAClC,MAAM,OAAO,OAAO,oDAAoD,EACtE,MAAM;GAAE,IAAI;GAAgB;EAAW,EACzC,CAAC;CACH;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AChMA,MAAa,oBAAoB,WAAyC;CACxE,MAAM,0BAA0B,OAC9B,WAC4C;EAC5C,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,wCAAwC,CAAC,GAAG,EAAE,OAAO,CAAC;EACxF,OAAO;CACT;CAEA,MAAM,qBAAqB,OACzB,WACA,WAC8B;EAC9B,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,kCACA,EAAE,MAAM,EAAE,UAAU,EAAE,GACtB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,oBAAoB,OACxB,WACA,WACmC;EACnC,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EAAE,OAAO,EAAE,UAAU,EAAE,GACvB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,SAAmC;EACrE,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,0CAA0C,EAAE,KAAK,CAAC;EACpF,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,WACA,WAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,6CACA,EAAE,MAAM,EAAE,UAAU,EAAE,GACtB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,SAAiC;EACjE,MAAM,OAAO,IAAI,iCAAiC,EAAE,KAAK,CAAC;CAC5D;CAEA,MAAM,uBAAuB,OAC3B,SACkC;EAClC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,iDAAiD,EAAE,KAAK,CAAC;EAC5F,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AC9EA,MAAa,8BAA8B,WAAyC;;;;;;;;;;CAUlF,MAAM,UAAU,OACd,SACA,WAC8C;EAC9C,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,yCACA,EAAE,MAAM,QAAQ,GAChB,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,OAAO,EAAE,QAAQ;AACnB;;;ACmBA,MAAa,kBAAkB,WAAyC;CACtE,MAAM,aAAa,OAAO,WAAwC,WAAyB;EACzF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,gCACA,EAAE,MAAM,EAAE,WAAW,OAAO,SAAS,EAAE,EAAE,GACzC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,sBAAsB,OAAO,WAAyB;EAC1D,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,6BAA6B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC7E,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,EAC/B,WACA,cACyD;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,yCAAyC;GAC1E,MAAM,EAAE,UAAU;GAClB,MAAM,EAAE,QAAQ;EAClB,CAAC;EACD,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,EAAE,WAAW,cAAwC;EACvF,MAAM,OAAO,OAAO,mDAAmD,EACrE,MAAM;GAAE;GAAW;EAAQ,EAC7B,CAAC;EACD,OAAO;CACT;CAEA,MAAM,wBAAwB,OAAO,EAAE,WAAW,QAAQ,WAAuC;EAC/F,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,+CAA+C;GACjF,MAAM;IAAE;IAAW;GAAO;GAE1B,MAAM,EAAQ,KAA6B;EAC7C,CAAC;EAED,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,WACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,sCACA,EAAE,MAAM,EAAE,WAAW,OAAO,SAAS,EAAE,EAAE,GACzC,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAC5B,WACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,4CACA,EAAE,MAAM,EAAE,WAAW,OAAO,SAAS,EAAE,EAAE,GACzC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,EACrC,WACA,GAAG,WAC4D;EAC/D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,4CAA4C;GAC7E,MAAM,EAAE,UAAU;GAElB,MAAM;IAAE,GAAG;IAAM,MAAM,KAAK;GAA6B;EAC3D,CAAC;EACD,OAAO;CACT;CAEA,MAAM,0BAA0B,OAAO,EACrC,WACA,mBACiC;EACjC,MAAM,OAAO,OAAO,2DAA2D,EAC7E,MAAM;GAAE;GAAW;EAAa,EAClC,CAAC;EACD,OAAO;CACT;CAEA,MAAM,iBAAiB,OAAO,EAC5B,WACA,GAAG,WAC0C;EAE7C,MAAM,OAAO,KAAK,sCAAsC;GAAE,MAAM,EAAE,UAAU;GAAG;EAAK,CAAC;EACrF,OAAO;CACT;CAEA,MAAM,oBAAoB,OAAO,EAAE,WAAW,gBAAuC;EACnF,MAAM,OAAO,OAAO,kDAAkD,EACpE,MAAM;GAAE;GAAW,WAAW,OAAO,SAAS;EAAE,EAClD,CAAC;EACD,OAAO;CACT;CAEA,MAAM,yBAAyB,OAC7B,WACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,8CACA,EAAE,MAAM,EAAE,WAAW,OAAO,SAAS,EAAE,EAAE,GACzC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAAO,EACvC,WACA,oBAC4B;EAC5B,MAAM,OAAO,IAAI,8DAA8D,EAC7E,MAAM;GAAE;GAAW;EAAc,EACnC,CAAC;EACD,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,EAAE,WAAW,oBAA4C;EAC/F,MAAM,OAAO,OAAO,8DAA8D,EAChF,MAAM;GAAE;GAAW;EAAc,EACnC,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OACzB,WACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yCACA,EAAE,MAAM,EAAE,UAAU,EAAE,GACtB,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,EAChC,WACA,UACA,eACqD;EACrD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,yCAAyC;GAC1E,MAAM,EAAE,UAAU;GAClB,MAAM;IAAE;IAAU;GAAS;EAC7B,CAAC;EACD,OAAO;CACT;CAEA,MAAM,sBAAsB,OAC1B,WACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EAAE,MAAM,EAAE,UAAU,EAAE,GACtB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,sBAAsB,OAAO,EACjC,WACA,eACuD;EACvD,MAAM,OAAO,IAAI,0CAA0C;GACzD,MAAM,EAAE,UAAU;GAClB,MAAM,EAAE,SAAS;EACnB,CAAC;CACH;CAEA,MAAM,gBAAgB,OAAO,EAAE,WAAW,GAAG,WAA+B;EAC1E,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,gCAAgC;GAChE,MAAM,EAAE,UAAU;GAClB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,gBAAgB,OAAO,cAAsB;EACjD,MAAM,OAAO,OAAO,gCAAgC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;EAC3E,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,EAAE,WAAW,qBAAuC;EAC7E,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,8CAA8C;GAC/E,MAAM,EAAE,UAAU;GAClB,MAAM,EAAE,eAAe;EACzB,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,EAAE,WAAW,GAAG,WAAoC;EACpF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,yCAAyC;GAC1E,MAAM,EAAE,UAAU;GAClB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,EAAE,WAAW,GAAG,WAAkC;EAChF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uCAAuC;GACxE,MAAM,EAAE,UAAU;GAClB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,YAAoB,WAAyB;EAC7E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EAAE,MAAM,EAAE,WAAW,EAAE,GACvB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,6BAA6B,OAAO,YAAoB,WAAyB;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,mDACA,EAAE,MAAM,EAAE,WAAW,EAAE,GACvB,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,4BAA4B,OAAO,EACvC,YACA,GAAG,WACoC;EACvC,MAAM,OAAO,KAAK,mDAAmD;GACnE,MAAM,EAAE,WAAW;GACnB;EACF,CAAC;CACH;CAEA,MAAM,+BAA+B,OAAO,EAC1C,YACA,kBACsC;EACtC,MAAM,OAAO,OAAO,iEAAiE,EACnF,MAAM;GAAE;GAAY;EAAY,EAClC,CAAC;CACH;CAEA,MAAM,uBAAuB,OAC3B,EAAE,WAAW,gBACb,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,2DACA,EAAE,MAAM;GAAE;GAAW;EAAa,EAAE,GACpC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAC5B,EAAE,WAAW,iBACb,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,8DACA,EAAE,MAAM;GAAE;GAAW;EAAc,EAAE,GACrC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,EAAE,WAAW,GAAG,WAA6B;EACtE,MAAM,OAAO,KAAK,6CAA6C;GAAE,MAAM,EAAE,UAAU;GAAG;EAAK,CAAC;CAC9F;CAEA,MAAM,uBAAuB,OAAO,EAAE,WAAW,GAAG,WAAsC;EACxF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,+CAA+C;GAChF,MAAM,EAAE,UAAU;GAClB;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,EAAE,WAAW,gBAAwC;EACrF,MAAM,OAAO,OAAO,mDAAmD,EACrE,MAAM;GAAE;GAAW;EAAU,EAC/B,CAAC;CACH;CAEA,MAAM,wBAAwB,OAAO,EAAE,WAAW,iBAA4C;EAC5F,MAAM,OAAO,OAAO,sDAAsD,EACxE,MAAM;GAAE;GAAW;EAAW,EAChC,CAAC;CACH;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;ACvXA,MAAa,yBAAyB,WAAyC;CAE7E,MAAM,oBAAoB,OAAO,IAAY,WAAyB;EACpE,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,gCAAgC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC;EAC9F,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,WAAyB;EACzD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC;EAC3E,OAAO;CACT;;CAGA,MAAM,4BAA4B,OAChC,IACA,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yCACA;GAAE,MAAM,EAAE,GAAG;GAAG,OAAO;IAAE,OAAO,OAAO;IAAO,QAAQ,OAAO;GAAO;EAAE,GACtE,EAAE,OAAO,CACX;EACA,OAAO;CACT;;CAGA,MAAM,+BAA+B,OAAO,IAAY,WAAyB;EAC/E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,4CACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,gCAAgC,OAAO,SAA4C;EACvF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,qCAAqC,EAAE,KAAK,CAAC;EAChF,OAAO;CACT;CAEA,MAAM,+BAA+B,OAAO,SAA2C;EACrF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,oCAAoC,EAAE,KAAK,CAAC;EAC/E,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,EAAE,IAAI,GAAG,WAAsC;EACjF,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,gCAAgC;GAAE,MAAM,EAAE,GAAG;GAAG;EAAK,CAAC;EAC1F,OAAO;CACT;CAEA,MAAM,+BAA+B,OAAO,EAC1C,IACA,GAAG,WACoC;EACvC,MAAM,EAAE,SAAS,MAAM,OAAO,MAAM,yCAAyC;GAC3E,MAAM,EAAE,GAAG;GACX;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,yBAAyB,OAAO,cAAsB;EAC1D,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,gDAAgD,EACjF,MAAM,EAAE,UAAU,EACpB,CAAC;EACD,OAAO;CACT;CAEA,MAAM,uBAAuB,OAAO,OAAe;EACjD,MAAM,OAAO,OAAO,gCAAgC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CACtE;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;ACtFA,MAAa,gBAAgB,WAAyC;CACpE,MAAM,YAAY,OAAO,OAAwB,WAAyB;EACxE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,mBAGA,EAAE,OAAO,OAAO,kBAAkB,EAAE,iBAAiB,KAAK,IAAI,CAAC,EAAE,GACjE,EAAE,OAAO,CACX;EAEA,OAAO;CACT;;CAGA,MAAM,WAAW,OAAO,UAAkB,WAAyB;EACjE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,wBACA,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,GACzB,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OAAO,SAA4B;EACvD,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,mBAAmB,EAAE,KAAK,CAAC;EAC9D,OAAO;CACT;CAEA,MAAM,cAAc,OAAO,EAAE,UAAU,GAAG,WAAmD;EAC3F,MAAM,OAAO,MAAM,wBAAwB;GAAE,MAAM,EAAE,IAAI,SAAS;GAAG;EAAK,CAAC;CAC7E;CAEA,MAAM,uBAAuB,OAAO,EAClC,UACA,cAII;EACJ,MAAM,OAAO,KAAK,2CAA2C,EAC3D,MAAM;GAAE,IAAI;GAAU;EAAQ,EAChC,CAAC;CACH;CAEA,MAAM,cAAc,OAAO,aAAqB;EAC9C,MAAM,OAAO,OAAO,wBAAwB,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;CACxE;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AC/CA,MAAa,eAAe,WAAyC;CACnE,MAAM,sBAAsB,OAC1B,EAAE,SAAS,gBACX,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,sCACA;GAAE,MAAM,EAAE,WAAW,aAAa;GAAG,MAAM,EAAE,QAAQ;EAAE,GACvD,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,yBAAyB,OAC7B,EAAE,cAAc,WAChB,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,OAC5B,oDACA,EAAE,MAAM;GAAE,WAAW;GAAc,aAAa;EAAQ,EAAE,GAC1D,EAAE,OAAO,CACX;EACA,OAAO;CACT;;CAGA,MAAM,WAAW,OAAO,OAAuB,WAAkD;EAC/F,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,iBACA,EAAE,OAAO;GAAE,GAAG,OAAO;GAAG,OAAO,OAAO;GAAO,QAAQ,OAAO;EAAO,EAAE,GACrE,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,UAAU,OAAO,IAAY,WAA8C;EAC/E,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,6BACA,EAAE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE,EAAE,GAClC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,uBAAuB,OAC3B,IACA,WAC0C;EAC1C,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,oCACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,kBAAkB,OACtB,IACA,WACqC;EACrC,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,+BAA+B,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC;EAC7F,OAAO;CACT;CAEA,MAAM,qBAAqB,OACzB,IACA,WACwC;EACxC,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,kCACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;;CAGA,MAAM,kBAAkB,OAAO,IAAY,WAA8C;EACvF,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,kCACA,EAAE,MAAM,EAAE,GAAG,EAAE,GACf,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,IAAY,WAA8C;EACxF,MAAM,EAAE,SAAS,MAAM,OAAO,OAC5B,yCACA,EAAE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE,EAAE,GAClC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,iBAAiB,OAAO,IAAY,WAAwC;EAChF,MAAM,OAAO,OACX,iCACA,EAAE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE,EAAE,GAClC,EAAE,OAAO,CACX;CACF;CAEA,MAAM,aAAa,OAAO,IAAY,WAAwC;EAC5E,MAAM,OAAO,OACX,6BACA,EAAE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE,EAAE,GAClC,EAAE,OAAO,CACX;CACF;CAEA,MAAM,aAAa,OAAO,EAAE,IAAI,GAAG,WAA4B;EAC7D,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,6BAA6B;GAC7D,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE;GAC9B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,kBAAkB,OAAO,IAAY,WAAyB;EAClE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,sCACA,EAAE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE,EAAE,GAClC,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,kBAAkB,OAAO,EAAE,IAAI,GAAG,WAAiC;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,sCAAsC;GACvE,MAAM,EAAE,WAAW,OAAO,EAAE,EAAE;GAC9B;EACF,CAAC;EACD,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,EAAE,IAAI,iBAAyC;EAC/E,MAAM,OAAO,OAAO,mDAAmD,EACrE,MAAM;GAAE,WAAW,OAAO,EAAE;GAAG;EAAW,EAC5C,CAAC;CACH;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;AC3IA,MAAM,qBAAqB,SAA+C;CACxE,IAAI,KAAK,SAAS,oBAChB,OAAO,KAAK,QAAQ,GAAG,kBAAkB,uBAAuB,KAAK,MAAM,IAAI,CAAC;CAElF,OAAO,GAAG,WAAW,gBAAgB,UAAU,KAAK,QAAQ;AAC9D;AAWA,MAAa,0BAA0B,EACrC,SACA,cAAc,CAAC,GACf,MACA,qBAAqB,WACY;CAMjC,MAAM,iBACJ,sBAAsB,KAAK,SAAS,qBAChC,CACE,GAAG,aACH,qBAAqB;EACnB;EACA,aAAa,KAAK;EAClB,kBAAkB,KAAK;CACzB,CAAC,CACH,IACA;CAEN,MAAM,UAAU,qBAAqB,KAAA,IAAY,kBAAkB,IAAI;CAEvE,MAAM,SAAS,yBAAgC;EAC7C;EACA,aAAa;EACb;EACA,gBAAgB;CAClB,CAAC;CACD,MAAM,gBAAgB,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAKvE,MAAM,sBAAsB,yBAAyB;EACnD;EACA,aAAa;EACb;EACA,gBAAgB;CAClB,CAAC;CAED,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC;EACzE,OAAO;CACT;CAKA,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAEA,OAAO;EACL,mBAAmB,wBAAwB,MAAM;EACjD;EACA,aAAa,kBAAkB,MAAM;EACrC,iBAAiB,sBAAsB,MAAM;EAC7C,aAAa,kBAAkB,MAAM;EACrC,eAAe,oBAAoB,MAAM;EACzC,YAAY,iBAAiB,MAAM;EACnC,UAAU,eAAe,MAAM;EAC/B,aAAa,kBAAkB,MAAM;EACrC,UAAU,eAAe,MAAM;EAC/B,sBAAsB,2BAA2B,mBAAmB;EACpE,iBAAiB,sBAAsB,MAAM;EAC7C,QAAQ,aAAa,MAAM;EAC3B,OAAO,YAAY,MAAM;EACzB;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"metastore-BycJxe7A.js","names":[],"sources":["../src/clients/metastore/repository/repository.ts","../src/clients/metastore/schema/schema.ts","../src/clients/metastore/metastoreClient.ts"],"sourcesContent":["import type { MetastoreFetchClient } from '../metastoreClient';\n\nimport type {\n CreateMetaObjectInput,\n DeleteMetaObjectPath,\n DeleteMetaObjectRevisionPath,\n GetMetaObjectPath,\n GetMetaObjectRevisionPath,\n GetMetaObjectRevisionsInput,\n GetMetaObjectsInput,\n MetaStoreListResponse,\n MetaStoreObjectResponse,\n ReplaceMetaObjectInput,\n ReplaceTargetProjectsInput,\n UpdateMetaObjectInput,\n} from './types';\n\nexport const createRepository = (client: MetastoreFetchClient) => {\n const getMetaObjects = async <TData extends Record<string, unknown>>(\n { query, ...path }: GetMetaObjectsInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}',\n { path, query },\n { signal },\n );\n\n return data as unknown as MetaStoreListResponse<TData>;\n };\n\n const getMetaObjectRevisions = async <TData extends Record<string, unknown>>(\n { query, ...path }: GetMetaObjectRevisionsInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/revisions',\n { path, query },\n { signal },\n );\n\n return data as unknown as MetaStoreListResponse<TData>;\n };\n\n const getMetaObject = async <TData extends Record<string, unknown>>(\n input: GetMetaObjectPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: input,\n },\n {\n signal,\n },\n );\n\n return data as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const createMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n data,\n ...body\n }: CreateMetaObjectInput<TData>) => {\n const { data: createdMetaObject } = await client.post('/api/v1/repository/{objectType}', {\n path: { objectType: objectType },\n body: {\n data: data as Record<string, never>,\n ...body,\n },\n });\n\n return createdMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const deleteMetaObject = async (input: DeleteMetaObjectPath) => {\n const { data } = await client.delete('/api/v1/repository/{objectType}/{UUID}', {\n path: input,\n });\n\n return data;\n };\n\n const updateMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n UUID,\n data,\n ...body\n }: UpdateMetaObjectInput<TData>) => {\n const { data: updatedMetaObject } = await client.patch(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n // Spread rather than always setting `data`: sending `\"data\": null` is as fatal as `{}`\n // for a scope step-up, because Go decodes both to a non-nil *JSONData.\n body: {\n ...(data === undefined ? {} : { data: data as Record<string, never> }),\n ...body,\n },\n },\n );\n\n return updatedMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const replaceMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n UUID,\n data,\n ...body\n }: ReplaceMetaObjectInput<TData>) => {\n const { data: replacedMetaObject } = await client.put(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n body: {\n data: data as Record<string, never>,\n ...body,\n },\n },\n );\n\n return replacedMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const getMetaObjectRevision = async <TData extends Record<string, unknown>>(\n input: GetMetaObjectRevisionPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/{UUID}/revisions/{revision}',\n {\n path: input,\n },\n { signal },\n );\n\n return data as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const deleteMetaObjectRevision = async (input: DeleteMetaObjectRevisionPath) => {\n const { data } = await client.delete(\n '/api/v1/repository/{objectType}/{UUID}/revisions/{revision}',\n {\n path: input,\n },\n );\n\n return data;\n };\n\n /**\n * Replace the full set of sibling projects granted GET/consumption access to a\n * `targeted`-scope object. An empty array clears every grant, reverting the object to\n * owner-only visibility.\n */\n const replaceTargetProjects = async ({\n objectType,\n UUID,\n ...body\n }: ReplaceTargetProjectsInput) => {\n await client.put('/api/v1/repository/{objectType}/{UUID}/target-projects', {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n body,\n });\n };\n\n return {\n // lists\n getMetaObjects,\n getMetaObjectRevisions,\n\n // objects\n getMetaObject,\n createMetaObject,\n deleteMetaObject,\n updateMetaObject,\n replaceMetaObject,\n replaceTargetProjects,\n\n // revisons\n getMetaObjectRevision,\n deleteMetaObjectRevision,\n };\n};\n","import type { MetastoreFetchClient } from '../metastoreClient';\n\nimport type { GetSchemaPath, GetVersionedSchemaPath } from './types';\n\nexport const createSchema = (client: MetastoreFetchClient) => {\n const getSchema = async (input: GetSchemaPath, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/schema/{objectType}',\n {\n path: input,\n },\n { signal },\n );\n return data;\n };\n\n const getVersionedSchema = async (input: GetVersionedSchemaPath, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/schema/{objectType}/{version}',\n {\n path: input,\n },\n { signal },\n );\n\n return data;\n };\n\n return {\n getSchema,\n getVersionedSchema,\n };\n};\n","import { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createRepository } from './repository';\nimport { createSchema } from './schema';\n\nexport type MetastoreFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport const createMetastoreClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n repository: createRepository(client),\n schema: createSchema(client),\n };\n};\n"],"mappings":";;;;AAiBA,MAAa,oBAAoB,WAAiC;CAChE,MAAM,iBAAiB,OACrB,EAAE,OAAO,GAAG,QACZ,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,mCACA;GAAE;GAAM;EAAM,GACd,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,yBAAyB,OAC7B,EAAE,OAAO,GAAG,QACZ,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,6CACA;GAAE;GAAM;EAAM,GACd,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OACpB,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EACE,MAAM,MACR,GACA,EACE,OACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,mBAAmB,OAA8C,EACrE,YACA,MACA,GAAG,WAC+B;EAClC,MAAM,EAAE,MAAM,sBAAsB,MAAM,OAAO,KAAK,mCAAmC;GACvF,MAAM,EAAc,WAAW;GAC/B,MAAM;IACE;IACN,GAAG;GACL;EACF,CAAC;EAED,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,UAAgC;EAC9D,MAAM,EAAE,SAAS,MAAM,OAAO,OAAO,0CAA0C,EAC7E,MAAM,MACR,CAAC;EAED,OAAO;CACT;CAEA,MAAM,mBAAmB,OAA8C,EACrE,YACA,MACA,MACA,GAAG,WAC+B;EAClC,MAAM,EAAE,MAAM,sBAAsB,MAAM,OAAO,MAC/C,0CACA;GACE,MAAM;IACQ;IACN;GACR;GAGA,MAAM;IACJ,GAAI,SAAS,KAAA,IAAY,CAAC,IAAI,EAAQ,KAA8B;IACpE,GAAG;GACL;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAA8C,EACtE,YACA,MACA,MACA,GAAG,WACgC;EACnC,MAAM,EAAE,MAAM,uBAAuB,MAAM,OAAO,IAChD,0CACA;GACE,MAAM;IACQ;IACN;GACR;GACA,MAAM;IACE;IACN,GAAG;GACL;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAC5B,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,+DACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,UAAwC;EAC9E,MAAM,EAAE,SAAS,MAAM,OAAO,OAC5B,+DACA,EACE,MAAM,MACR,CACF;EAEA,OAAO;CACT;;;;;;CAOA,MAAM,wBAAwB,OAAO,EACnC,YACA,MACA,GAAG,WAC6B;EAChC,MAAM,OAAO,IAAI,0DAA0D;GACzE,MAAM;IACQ;IACN;GACR;GACA;EACF,CAAC;CACH;CAEA,OAAO;EAEL;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;CACF;AACF;;;AC/LA,MAAa,gBAAgB,WAAiC;CAC5D,MAAM,YAAY,OAAO,OAAsB,WAAyB;EACtE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,+BACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,OAA+B,WAAyB;EACxF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yCACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,OAAO;EACL;EACA;CACF;AACF;;;ACtBA,MAAa,yBAAyB,EAAE,SAAS,aAAa,WAA8B;CAC1F,MAAM,SAAS,yBAAgC;EAC7C;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgB,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAEA,OAAO;EACL;EACA,YAAY,iBAAiB,MAAM;EACnC,QAAQ,aAAa,MAAM;CAC7B;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"metastore-XtWciCZT.cjs","names":["createOpenapiFetchClient","createAuthHeaders","createGenericFetchClient"],"sources":["../src/clients/metastore/repository/repository.ts","../src/clients/metastore/schema/schema.ts","../src/clients/metastore/metastoreClient.ts"],"sourcesContent":["import type { MetastoreFetchClient } from '../metastoreClient';\n\nimport type {\n CreateMetaObjectInput,\n DeleteMetaObjectPath,\n DeleteMetaObjectRevisionPath,\n GetMetaObjectPath,\n GetMetaObjectRevisionPath,\n GetMetaObjectRevisionsInput,\n GetMetaObjectsInput,\n MetaStoreListResponse,\n MetaStoreObjectResponse,\n ReplaceMetaObjectInput,\n ReplaceTargetProjectsInput,\n UpdateMetaObjectInput,\n} from './types';\n\nexport const createRepository = (client: MetastoreFetchClient) => {\n const getMetaObjects = async <TData extends Record<string, unknown>>(\n { query, ...path }: GetMetaObjectsInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}',\n { path, query },\n { signal },\n );\n\n return data as unknown as MetaStoreListResponse<TData>;\n };\n\n const getMetaObjectRevisions = async <TData extends Record<string, unknown>>(\n { query, ...path }: GetMetaObjectRevisionsInput,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/revisions',\n { path, query },\n { signal },\n );\n\n return data as unknown as MetaStoreListResponse<TData>;\n };\n\n const getMetaObject = async <TData extends Record<string, unknown>>(\n input: GetMetaObjectPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: input,\n },\n {\n signal,\n },\n );\n\n return data as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const createMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n data,\n ...body\n }: CreateMetaObjectInput<TData>) => {\n const { data: createdMetaObject } = await client.post('/api/v1/repository/{objectType}', {\n path: { objectType: objectType },\n body: {\n data: data as Record<string, never>,\n ...body,\n },\n });\n\n return createdMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const deleteMetaObject = async (input: DeleteMetaObjectPath) => {\n const { data } = await client.delete('/api/v1/repository/{objectType}/{UUID}', {\n path: input,\n });\n\n return data;\n };\n\n const updateMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n UUID,\n data,\n ...body\n }: UpdateMetaObjectInput<TData>) => {\n const { data: updatedMetaObject } = await client.patch(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n // Spread rather than always setting `data`: sending `\"data\": null` is as fatal as `{}`\n // for a scope step-up, because Go decodes both to a non-nil *JSONData.\n body: {\n ...(data === undefined ? {} : { data: data as Record<string, never> }),\n ...body,\n },\n },\n );\n\n return updatedMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const replaceMetaObject = async <TData extends Record<string, unknown>>({\n objectType,\n UUID,\n data,\n ...body\n }: ReplaceMetaObjectInput<TData>) => {\n const { data: replacedMetaObject } = await client.put(\n '/api/v1/repository/{objectType}/{UUID}',\n {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n body: {\n data: data as Record<string, never>,\n ...body,\n },\n },\n );\n\n return replacedMetaObject as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const getMetaObjectRevision = async <TData extends Record<string, unknown>>(\n input: GetMetaObjectRevisionPath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/api/v1/repository/{objectType}/{UUID}/revisions/{revision}',\n {\n path: input,\n },\n { signal },\n );\n\n return data as unknown as MetaStoreObjectResponse<TData>;\n };\n\n const deleteMetaObjectRevision = async (input: DeleteMetaObjectRevisionPath) => {\n const { data } = await client.delete(\n '/api/v1/repository/{objectType}/{UUID}/revisions/{revision}',\n {\n path: input,\n },\n );\n\n return data;\n };\n\n /**\n * Replace the full set of sibling projects granted GET/consumption access to a\n * `targeted`-scope object. An empty array clears every grant, reverting the object to\n * owner-only visibility.\n */\n const replaceTargetProjects = async ({\n objectType,\n UUID,\n ...body\n }: ReplaceTargetProjectsInput) => {\n await client.put('/api/v1/repository/{objectType}/{UUID}/target-projects', {\n path: {\n objectType: objectType,\n UUID: UUID,\n },\n body,\n });\n };\n\n return {\n // lists\n getMetaObjects,\n getMetaObjectRevisions,\n\n // objects\n getMetaObject,\n createMetaObject,\n deleteMetaObject,\n updateMetaObject,\n replaceMetaObject,\n replaceTargetProjects,\n\n // revisons\n getMetaObjectRevision,\n deleteMetaObjectRevision,\n };\n};\n","import type { MetastoreFetchClient } from '../metastoreClient';\n\nimport type { GetSchemaPath, GetVersionedSchemaPath } from './types';\n\nexport const createSchema = (client: MetastoreFetchClient) => {\n const getSchema = async (input: GetSchemaPath, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/schema/{objectType}',\n {\n path: input,\n },\n { signal },\n );\n return data;\n };\n\n const getVersionedSchema = async (input: GetVersionedSchemaPath, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/api/v1/schema/{objectType}/{version}',\n {\n path: input,\n },\n { signal },\n );\n\n return data;\n };\n\n return {\n getSchema,\n getVersionedSchema,\n };\n};\n","import { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createRepository } from './repository';\nimport { createSchema } from './schema';\n\nexport type MetastoreFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport const createMetastoreClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n repository: createRepository(client),\n schema: createSchema(client),\n };\n};\n"],"mappings":";;;;AAiBA,MAAa,oBAAoB,WAAiC;CAChE,MAAM,iBAAiB,OACrB,EAAE,OAAO,GAAG,QACZ,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,mCACA;GAAE;GAAM;EAAM,GACd,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,yBAAyB,OAC7B,EAAE,OAAO,GAAG,QACZ,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,6CACA;GAAE;GAAM;EAAM,GACd,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OACpB,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,0CACA,EACE,MAAM,MACR,GACA,EACE,OACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,mBAAmB,OAA8C,EACrE,YACA,MACA,GAAG,WAC+B;EAClC,MAAM,EAAE,MAAM,sBAAsB,MAAM,OAAO,KAAK,mCAAmC;GACvF,MAAM,EAAc,WAAW;GAC/B,MAAM;IACE;IACN,GAAG;GACL;EACF,CAAC;EAED,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,UAAgC;EAC9D,MAAM,EAAE,SAAS,MAAM,OAAO,OAAO,0CAA0C,EAC7E,MAAM,MACR,CAAC;EAED,OAAO;CACT;CAEA,MAAM,mBAAmB,OAA8C,EACrE,YACA,MACA,MACA,GAAG,WAC+B;EAClC,MAAM,EAAE,MAAM,sBAAsB,MAAM,OAAO,MAC/C,0CACA;GACE,MAAM;IACQ;IACN;GACR;GAGA,MAAM;IACJ,GAAI,SAAS,KAAA,IAAY,CAAC,IAAI,EAAQ,KAA8B;IACpE,GAAG;GACL;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,oBAAoB,OAA8C,EACtE,YACA,MACA,MACA,GAAG,WACgC;EACnC,MAAM,EAAE,MAAM,uBAAuB,MAAM,OAAO,IAChD,0CACA;GACE,MAAM;IACQ;IACN;GACR;GACA,MAAM;IACE;IACN,GAAG;GACL;EACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,wBAAwB,OAC5B,OACA,WACG;EACH,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,+DACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,MAAM,2BAA2B,OAAO,UAAwC;EAC9E,MAAM,EAAE,SAAS,MAAM,OAAO,OAC5B,+DACA,EACE,MAAM,MACR,CACF;EAEA,OAAO;CACT;;;;;;CAOA,MAAM,wBAAwB,OAAO,EACnC,YACA,MACA,GAAG,WAC6B;EAChC,MAAM,OAAO,IAAI,0DAA0D;GACzE,MAAM;IACQ;IACN;GACR;GACA;EACF,CAAC;CACH;CAEA,OAAO;EAEL;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;CACF;AACF;;;AC/LA,MAAa,gBAAgB,WAAiC;CAC5D,MAAM,YAAY,OAAO,OAAsB,WAAyB;EACtE,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,+BACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EACA,OAAO;CACT;CAEA,MAAM,qBAAqB,OAAO,OAA+B,WAAyB;EACxF,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,yCACA,EACE,MAAM,MACR,GACA,EAAE,OAAO,CACX;EAEA,OAAO;CACT;CAEA,OAAO;EACL;EACA;CACF;AACF;;;ACtBA,MAAa,yBAAyB,EAAE,SAAS,aAAa,WAA8B;CAC1F,MAAM,SAASA,iCAAAA,yBAAgC;EAC7C;EACA;EACA,SAASC,aAAAA,kBAAkB,IAAI;CACjC,CAAC;CACD,MAAM,gBAAgBC,iCAAAA,yBAAyB;EAAE;EAAS;CAAY,CAAC;CAEvE,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EAExE,OAAO;CACT;CAEA,OAAO;EACL;EACA,YAAY,iBAAiB,MAAM;EACnC,QAAQ,aAAa,MAAM;CAC7B;AACF"}