@keboola/api-client 49.0.0 → 50.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 (562) hide show
  1. package/AGENTS.md +109 -95
  2. package/API-SURFACE.md +12 -31
  3. package/CHANGELOG.md +44 -0
  4. package/README.md +33 -29
  5. package/dist/{ManagementSessionMintError-Cu9beG7j.cjs → ManagementSessionMintError-ByOulHQH.cjs} +4 -6
  6. package/dist/{ManagementSessionMintError-Cu9beG7j.cjs.map → ManagementSessionMintError-ByOulHQH.cjs.map} +1 -1
  7. package/dist/{ManagementSessionMintError-4Pkn5Oob.js → ManagementSessionMintError-DNMbYauw.js} +4 -6
  8. package/dist/{ManagementSessionMintError-4Pkn5Oob.js.map → ManagementSessionMintError-DNMbYauw.js.map} +1 -1
  9. package/dist/{QueryJobError-ZZZ043Nm.js → QueryJobError-Iq9O90Uh.js} +2 -3
  10. package/dist/{QueryJobError-ZZZ043Nm.js.map → QueryJobError-Iq9O90Uh.js.map} +1 -1
  11. package/dist/{QueryJobError-irGiP5zh.cjs → QueryJobError-Oy0fl4aw.cjs} +2 -3
  12. package/dist/{QueryJobError-irGiP5zh.cjs.map → QueryJobError-Oy0fl4aw.cjs.map} +1 -1
  13. package/dist/{QueueJobError-8bThS_Mc.js → QueueJobError-BJNUINXW.js} +2 -3
  14. package/dist/{QueueJobError-8bThS_Mc.js.map → QueueJobError-BJNUINXW.js.map} +1 -1
  15. package/dist/{QueueJobError-6qSEizWo.cjs → QueueJobError-DruZK3tc.cjs} +2 -3
  16. package/dist/{QueueJobError-6qSEizWo.cjs.map → QueueJobError-DruZK3tc.cjs.map} +1 -1
  17. package/dist/{SyncActionError-CoZFsdUk.js → SyncActionError-DuGcDbkd.js} +2 -3
  18. package/dist/{SyncActionError-CoZFsdUk.js.map → SyncActionError-DuGcDbkd.js.map} +1 -1
  19. package/dist/{SyncActionError-BG0zwchi.cjs → SyncActionError-mbpVg63X.cjs} +2 -3
  20. package/dist/{SyncActionError-BG0zwchi.cjs.map → SyncActionError-mbpVg63X.cjs.map} +1 -1
  21. package/dist/{UserError-By_Zckmc.js → UserError-BxoOJJ_u.js} +2 -3
  22. package/dist/{UserError-By_Zckmc.js.map → UserError-BxoOJJ_u.js.map} +1 -1
  23. package/dist/{UserError-CSGO1qII.cjs → UserError-D4P9Tbhf.cjs} +2 -3
  24. package/dist/{UserError-CSGO1qII.cjs.map → UserError-D4P9Tbhf.cjs.map} +1 -1
  25. package/dist/{ValidationError-D65QU0uq.cjs → ValidationError-BXcFX4nD.cjs} +2 -3
  26. package/dist/{ValidationError-D65QU0uq.cjs.map → ValidationError-BXcFX4nD.cjs.map} +1 -1
  27. package/dist/{ValidationError-DjhtNMfZ.js → ValidationError-BsdFDGY2.js} +2 -3
  28. package/dist/{ValidationError-DjhtNMfZ.js.map → ValidationError-BsdFDGY2.js.map} +1 -1
  29. package/dist/{configurations-CL0ouUMa.js → admin-CbMOsfgs.js} +5 -53
  30. package/dist/admin-CbMOsfgs.js.map +1 -0
  31. package/dist/{configurations-D9J3jh3g.cjs → admin-Di-MmGFP.cjs} +4 -124
  32. package/dist/admin-Di-MmGFP.cjs.map +1 -0
  33. package/dist/{adminRoles-BX1gk3At.d.ts → adminRoles-DAwl657q.d.ts} +2 -4
  34. package/dist/{adminRoles-CO7J5qAy.cjs → adminRoles-DnFpO_2W.cjs} +2 -3
  35. package/dist/{adminRoles-CO7J5qAy.cjs.map → adminRoles-DnFpO_2W.cjs.map} +1 -1
  36. package/dist/{adminRoles-BbxFgfX-.d.cts → adminRoles-FFyl7Dyx.d.cts} +2 -4
  37. package/dist/{adminRoles-B40yBcmq.js → adminRoles-asa-MhDD.js} +2 -3
  38. package/dist/{adminRoles-B40yBcmq.js.map → adminRoles-asa-MhDD.js.map} +1 -1
  39. package/dist/ai/index.cjs +3 -4
  40. package/dist/ai/index.d.cts +2 -4
  41. package/dist/ai/index.d.ts +2 -4
  42. package/dist/ai/index.js +3 -4
  43. package/dist/ai/types.d.cts +1 -1
  44. package/dist/ai/types.d.ts +1 -1
  45. package/dist/{appLogs-DI2Y4imY.d.ts → appLogs-CTvZAihm.d.ts} +2 -4
  46. package/dist/{appLogs-IhRA3xyv.d.cts → appLogs-CnLNMH7M.d.cts} +2 -4
  47. package/dist/{appLogs-Cix2KWra.cjs → appLogs-CoAWQGxs.cjs} +5 -6
  48. package/dist/{appLogs-Cix2KWra.cjs.map → appLogs-CoAWQGxs.cjs.map} +1 -1
  49. package/dist/{appLogs-KslK7qHr.js → appLogs-DFcPwVk8.js} +4 -5
  50. package/dist/{appLogs-KslK7qHr.js.map → appLogs-DFcPwVk8.js.map} +1 -1
  51. package/dist/apps/index.cjs +28 -5
  52. package/dist/apps/index.cjs.map +1 -1
  53. package/dist/apps/index.d.cts +13 -5
  54. package/dist/apps/index.d.ts +13 -5
  55. package/dist/apps/index.js +28 -5
  56. package/dist/apps/index.js.map +1 -1
  57. package/dist/apps/types.d.cts +3 -3
  58. package/dist/apps/types.d.ts +3 -3
  59. package/dist/assets/index.cjs +2 -3
  60. package/dist/assets/index.d.cts +1 -3
  61. package/dist/assets/index.d.ts +1 -3
  62. package/dist/assets/index.js +2 -3
  63. package/dist/assets/schema.cjs +2 -3
  64. package/dist/assets/schema.d.cts +0 -2
  65. package/dist/assets/schema.d.ts +0 -2
  66. package/dist/assets/schema.js +1 -2
  67. package/dist/auth/index.cjs +1 -1
  68. package/dist/auth/index.d.cts +1 -1
  69. package/dist/auth/index.d.ts +1 -1
  70. package/dist/auth/index.js +1 -2
  71. package/dist/auth/types.d.cts +1 -1
  72. package/dist/auth/types.d.ts +1 -1
  73. package/dist/{auth-C8Pjl0Mu.cjs → auth-CvB4MukT.cjs} +3 -4
  74. package/dist/{auth-C8Pjl0Mu.cjs.map → auth-CvB4MukT.cjs.map} +1 -1
  75. package/dist/{auth-4coY1uwo.js → auth-DYfQMQCs.js} +3 -4
  76. package/dist/{auth-4coY1uwo.js.map → auth-DYfQMQCs.js.map} +1 -1
  77. package/dist/{authClient-DfkKlc-2.cjs → authClient-DcKBpMcU.cjs} +66 -85
  78. package/dist/{authClient-DfkKlc-2.cjs.map → authClient-DcKBpMcU.cjs.map} +1 -1
  79. package/dist/{authClient-6Aau_4Zt.d.ts → authClient-Df3U4q_6.d.cts} +4 -16
  80. package/dist/{authClient-B3P6WtWW.d.cts → authClient-JtMVJWXY.d.ts} +4 -16
  81. package/dist/{authClient-2e8ZmzSP.js → authClient-oB5ydxWp.js} +66 -85
  82. package/dist/{authClient-2e8ZmzSP.js.map → authClient-oB5ydxWp.js.map} +1 -1
  83. package/dist/{backends-DKBz5OxE.d.ts → backends-BHotIdL0.d.cts} +1 -3
  84. package/dist/{backends-DKBz5OxE.d.cts → backends-BHotIdL0.d.ts} +1 -3
  85. package/dist/billing/index.cjs +3 -4
  86. package/dist/billing/index.d.cts +1 -3
  87. package/dist/billing/index.d.ts +1 -3
  88. package/dist/billing/index.js +3 -4
  89. package/dist/billing/types.d.cts +1 -5
  90. package/dist/billing/types.d.ts +1 -5
  91. package/dist/chat/index.cjs +4 -5
  92. package/dist/chat/index.d.cts +3 -5
  93. package/dist/chat/index.d.ts +3 -5
  94. package/dist/chat/index.js +4 -5
  95. package/dist/chat/suggestions.cjs +1 -2
  96. package/dist/chat/suggestions.d.cts +1 -1
  97. package/dist/chat/suggestions.d.ts +1 -1
  98. package/dist/chat/suggestions.js +1 -2
  99. package/dist/chat/types.cjs +1 -2
  100. package/dist/chat/types.d.cts +1 -1
  101. package/dist/chat/types.d.ts +1 -1
  102. package/dist/chat/types.js +1 -2
  103. package/dist/{collectByOffset-DQsqtmJg.cjs → collectByOffset-DgxJ3zT9.cjs} +3 -4
  104. package/dist/{collectByOffset-DQsqtmJg.cjs.map → collectByOffset-DgxJ3zT9.cjs.map} +1 -1
  105. package/dist/{collectByOffset-2XzJqmvr.js → collectByOffset-i8Tdoze7.js} +3 -4
  106. package/dist/{collectByOffset-2XzJqmvr.js.map → collectByOffset-i8Tdoze7.js.map} +1 -1
  107. package/dist/{componentId-D4jp6a13.cjs → componentId-C8ZTXXDo.cjs} +2 -3
  108. package/dist/{componentId-D4jp6a13.cjs.map → componentId-C8ZTXXDo.cjs.map} +1 -1
  109. package/dist/{componentId-DmHwHG5V.js → componentId-b_qBbJEM.js} +2 -3
  110. package/dist/{componentId-DmHwHG5V.js.map → componentId-b_qBbJEM.js.map} +1 -1
  111. package/dist/componentsMcp/index.cjs +1 -1
  112. package/dist/componentsMcp/index.d.cts +1 -1
  113. package/dist/componentsMcp/index.d.ts +1 -1
  114. package/dist/componentsMcp/index.js +1 -2
  115. package/dist/componentsMcp/types.d.cts +1 -1
  116. package/dist/componentsMcp/types.d.ts +1 -1
  117. package/dist/{componentsMcp-pG-PcQrg.cjs → componentsMcp-BaHy5iLr.cjs} +5 -7
  118. package/dist/{componentsMcp-pG-PcQrg.cjs.map → componentsMcp-BaHy5iLr.cjs.map} +1 -1
  119. package/dist/{componentsMcp-CHobIsuU.js → componentsMcp-BrB4js6b.js} +5 -7
  120. package/dist/{componentsMcp-CHobIsuU.js.map → componentsMcp-BrB4js6b.js.map} +1 -1
  121. package/dist/{concurrent-BacWxPwi.js → concurrent-BtsT10Xe.js} +2 -3
  122. package/dist/{concurrent-BacWxPwi.js.map → concurrent-BtsT10Xe.js.map} +1 -1
  123. package/dist/{concurrent-CdVfR1N5.cjs → concurrent-DnTV_ppY.cjs} +2 -3
  124. package/dist/{concurrent-CdVfR1N5.cjs.map → concurrent-DnTV_ppY.cjs.map} +1 -1
  125. package/dist/configurations-Cd6Nsox-.js +49 -0
  126. package/dist/configurations-Cd6Nsox-.js.map +1 -0
  127. package/dist/configurations-WI8H4zLk.cjs +120 -0
  128. package/dist/configurations-WI8H4zLk.cjs.map +1 -0
  129. package/dist/constants/index.cjs +3 -3
  130. package/dist/constants/index.d.cts +4 -4
  131. package/dist/constants/index.d.ts +4 -4
  132. package/dist/constants/index.js +3 -3
  133. package/dist/{constants-VpSwBtCb.js → constants-BMSHGwOR.js} +46 -52
  134. package/dist/constants-BMSHGwOR.js.map +1 -0
  135. package/dist/{constants-DErcRkWl.cjs → constants-DhFQWQgy.cjs} +45 -51
  136. package/dist/constants-DhFQWQgy.cjs.map +1 -0
  137. package/dist/{createAbortError-RendOpo7.cjs → createAbortError-Dzc9yObN.cjs} +2 -3
  138. package/dist/{createAbortError-RendOpo7.cjs.map → createAbortError-Dzc9yObN.cjs.map} +1 -1
  139. package/dist/{createAbortError-BxupOt-6.js → createAbortError-c6ekCpRy.js} +2 -3
  140. package/dist/{createAbortError-BxupOt-6.js.map → createAbortError-c6ekCpRy.js.map} +1 -1
  141. package/dist/{createFetchClient-lZ_93Yrb.cjs → createFetchClient-DEkUH662.cjs} +6 -10
  142. package/dist/{createFetchClient-lZ_93Yrb.cjs.map → createFetchClient-DEkUH662.cjs.map} +1 -1
  143. package/dist/{createFetchClient-CkHdS_IG.js → createFetchClient-DlGCbltR.js} +5 -9
  144. package/dist/{createFetchClient-CkHdS_IG.js.map → createFetchClient-DlGCbltR.js.map} +1 -1
  145. package/dist/{createGenericFetchClient-MOx97wi-.cjs → createGenericFetchClient-2oU-PXVo.cjs} +3 -4
  146. package/dist/{createGenericFetchClient-MOx97wi-.cjs.map → createGenericFetchClient-2oU-PXVo.cjs.map} +1 -1
  147. package/dist/createGenericFetchClient-wGxemBwR.js +6 -0
  148. package/dist/{createGenericFetchClient-CQdNcPC3.js.map → createGenericFetchClient-wGxemBwR.js.map} +1 -1
  149. package/dist/createOpenapiFetchClient-Bhz62MUE.js +6 -0
  150. package/dist/{createOpenapiFetchClient-DXiMv9WL.js.map → createOpenapiFetchClient-Bhz62MUE.js.map} +1 -1
  151. package/dist/{createOpenapiFetchClient-DHYo_k3t.cjs → createOpenapiFetchClient-DL9w7vU-.cjs} +3 -4
  152. package/dist/{createOpenapiFetchClient-DHYo_k3t.cjs.map → createOpenapiFetchClient-DL9w7vU-.cjs.map} +1 -1
  153. package/dist/dataScience/index.cjs +2 -2
  154. package/dist/dataScience/index.d.cts +2 -2
  155. package/dist/dataScience/index.d.ts +2 -2
  156. package/dist/dataScience/index.js +2 -2
  157. package/dist/dataScience/types.d.cts +2 -2
  158. package/dist/dataScience/types.d.ts +2 -2
  159. package/dist/{dataScience-AwPMeGfz.js → dataScience-CXmkEOAi.js} +7 -9
  160. package/dist/{dataScience-AwPMeGfz.js.map → dataScience-CXmkEOAi.js.map} +1 -1
  161. package/dist/{dataScience-BjS1p8WO.cjs → dataScience-CufjHPSd.cjs} +7 -9
  162. package/dist/{dataScience-BjS1p8WO.cjs.map → dataScience-CufjHPSd.cjs.map} +1 -1
  163. package/dist/{dedupe-OSnnst2u.cjs → dedupe-Bf0gl9TJ.cjs} +2 -3
  164. package/dist/{dedupe-OSnnst2u.cjs.map → dedupe-Bf0gl9TJ.cjs.map} +1 -1
  165. package/dist/{dedupe-Cky1gSUu.js → dedupe-Bu0d2i_w.js} +2 -3
  166. package/dist/{dedupe-Cky1gSUu.js.map → dedupe-Bu0d2i_w.js.map} +1 -1
  167. package/dist/developerPortal/index.cjs +1 -1
  168. package/dist/developerPortal/index.d.cts +2 -2
  169. package/dist/developerPortal/index.d.ts +2 -2
  170. package/dist/developerPortal/index.js +1 -2
  171. package/dist/developerPortal/types.d.cts +1 -1
  172. package/dist/developerPortal/types.d.ts +1 -1
  173. package/dist/{developerPortalClient-DUerKw-7.cjs → developerPortalClient-BfRxYrWj.cjs} +9 -15
  174. package/dist/{developerPortalClient-DUerKw-7.cjs.map → developerPortalClient-BfRxYrWj.cjs.map} +1 -1
  175. package/dist/{developerPortalClient-Bb2suezr.js → developerPortalClient-D9XOYwWF.js} +9 -15
  176. package/dist/{developerPortalClient-Bb2suezr.js.map → developerPortalClient-D9XOYwWF.js.map} +1 -1
  177. package/dist/domain/permissions/index.cjs +18 -17
  178. package/dist/domain/permissions/index.d.cts +1 -11
  179. package/dist/domain/permissions/index.d.ts +1 -11
  180. package/dist/domain/permissions/index.js +3 -2
  181. package/dist/domain/storageTable/index.cjs +403 -9
  182. package/dist/domain/storageTable/index.cjs.map +1 -0
  183. package/dist/domain/storageTable/index.d.cts +189 -2
  184. package/dist/domain/storageTable/index.d.ts +189 -2
  185. package/dist/domain/storageTable/index.js +395 -1
  186. package/dist/domain/storageTable/index.js.map +1 -0
  187. package/dist/editor/index.cjs +3 -4
  188. package/dist/editor/index.d.cts +2 -4
  189. package/dist/editor/index.d.ts +2 -4
  190. package/dist/editor/index.js +3 -4
  191. package/dist/editor/types.d.cts +1 -1
  192. package/dist/editor/types.d.ts +1 -1
  193. package/dist/{emitter-dLF1Fyfg.d.ts → emitter-raKkIqRp.d.cts} +1 -3
  194. package/dist/{emitter-dLF1Fyfg.d.cts → emitter-raKkIqRp.d.ts} +1 -3
  195. package/dist/encryption/index.cjs +2 -3
  196. package/dist/encryption/index.d.cts +1 -1
  197. package/dist/encryption/index.d.ts +1 -1
  198. package/dist/encryption/index.js +2 -3
  199. package/dist/encryption/types.d.cts +1 -1
  200. package/dist/encryption/types.d.ts +1 -1
  201. package/dist/generateUUID-DE9sNyJF.js +5 -0
  202. package/dist/{generateUUID-Dr8l-aoc.js.map → generateUUID-DE9sNyJF.js.map} +1 -1
  203. package/dist/{generateUUID-C6qKBPIv.cjs → generateUUID-DbSTmvVP.cjs} +2 -3
  204. package/dist/{generateUUID-C6qKBPIv.cjs.map → generateUUID-DbSTmvVP.cjs.map} +1 -1
  205. package/dist/import/index.cjs +1 -1
  206. package/dist/import/index.d.cts +3 -5
  207. package/dist/import/index.d.ts +3 -5
  208. package/dist/import/index.js +1 -2
  209. package/dist/{import-BahNYv91.cjs → import-CABlFMQX.cjs} +6 -9
  210. package/dist/{import-BahNYv91.cjs.map → import-CABlFMQX.cjs.map} +1 -1
  211. package/dist/{import-FWy_wQZ1.js → import-CT1Ce5Rp.js} +6 -9
  212. package/dist/{import-FWy_wQZ1.js.map → import-CT1Ce5Rp.js.map} +1 -1
  213. package/dist/index-24GpnYhn.d.cts +150 -0
  214. package/dist/{index-BT88-GpA.d.ts → index-AA3MRfRn.d.cts} +4 -16
  215. package/dist/{index-C6oPUTWZ.d.ts → index-BDPxm9qu.d.ts} +3 -7
  216. package/dist/index-BUZ-vTRt.d.ts +150 -0
  217. package/dist/{index-XcnkRVb0.d.ts → index-BZDxWvZW.d.ts} +5 -7
  218. package/dist/index-C9iNazAc.d.ts +15103 -0
  219. package/dist/{index-D6JMbJ9b.d.ts → index-CCcdySOC.d.cts} +5 -7
  220. package/dist/{index-CrrHvDiX.d.cts → index-CN0--VsY.d.ts} +5 -7
  221. package/dist/index-CTMnmISl.d.cts +15103 -0
  222. package/dist/{index-BiZR9BjN.d.ts → index-CbSh3KFw.d.cts} +4 -12
  223. package/dist/{index-BM_fXKq5.d.cts → index-ClIV2Lch.d.cts} +5 -7
  224. package/dist/{index-DReKz9Zt.d.ts → index-CuI8OI9E.d.ts} +4 -13
  225. package/dist/{index-BPMr8PQJ.d.ts → index-D1mduJne.d.cts} +2 -52
  226. package/dist/{index-CL4iKFic.d.cts → index-D1mduJne.d.ts} +1 -51
  227. package/dist/{index-DorowSay.d.ts → index-DIPMzH--.d.ts} +5 -9
  228. package/dist/{index-CbZQCDkD.d.cts → index-DQagqTVa.d.cts} +3 -7
  229. package/dist/{index-dgu6udMy.d.ts → index-DVBQgFg0.d.ts} +4 -6
  230. package/dist/index-DXoN8VwV.d.cts +10 -0
  231. package/dist/{index-Dkb8CynB.d.cts → index-Db266tLz.d.cts} +5 -9
  232. package/dist/{index-BVjhAkXW.d.cts → index-DgGpQsAT.d.cts} +4 -6
  233. package/dist/{index-PqJGDHHl.d.cts → index-DjSthn8d.d.ts} +4 -16
  234. package/dist/index-Xpu7qIZk.d.ts +10 -0
  235. package/dist/{index-DhZTIejy.d.ts → index-lTrNMlj6.d.ts} +3 -5
  236. package/dist/{index-DYNVbgm8.d.cts → index-m9-mN8Gg.d.ts} +4 -12
  237. package/dist/{index-CtQl-Iqw.d.cts → index-xX8-Stoq.d.cts} +4 -13
  238. package/dist/{index-DGKCTQkb.d.cts → index-z-2okomN.d.cts} +3 -5
  239. package/dist/index.cjs +431 -1054
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +9 -8
  242. package/dist/index.d.ts +9 -8
  243. package/dist/index.js +427 -1051
  244. package/dist/index.js.map +1 -1
  245. package/dist/{isLoginPageRedirect-r0Opgc1n.cjs → isLoginPageRedirect-CoUxJi2x.cjs} +3 -4
  246. package/dist/{isLoginPageRedirect-r0Opgc1n.cjs.map → isLoginPageRedirect-CoUxJi2x.cjs.map} +1 -1
  247. package/dist/{isLoginPageRedirect-B4QKSiSa.js → isLoginPageRedirect-D-lqF_kZ.js} +3 -4
  248. package/dist/{isLoginPageRedirect-B4QKSiSa.js.map → isLoginPageRedirect-D-lqF_kZ.js.map} +1 -1
  249. package/dist/{isPlainObject-LYW-03uB.js → isPlainObject-BxsT8_t2.js} +2 -3
  250. package/dist/{isPlainObject-LYW-03uB.js.map → isPlainObject-BxsT8_t2.js.map} +1 -1
  251. package/dist/{isPlainObject-BB3iy87C.cjs → isPlainObject-CcvQt0qB.cjs} +2 -3
  252. package/dist/{isPlainObject-BB3iy87C.cjs.map → isPlainObject-CcvQt0qB.cjs.map} +1 -1
  253. package/dist/kaiAgent/index.cjs +1 -1
  254. package/dist/kaiAgent/index.d.cts +2 -2
  255. package/dist/kaiAgent/index.d.ts +2 -2
  256. package/dist/kaiAgent/index.js +1 -2
  257. package/dist/kaiAgent/types.d.cts +1 -1
  258. package/dist/kaiAgent/types.d.ts +1 -1
  259. package/dist/{kaiAgent-CYvrS8oZ.js → kaiAgent-D2TiMDjW.js} +6 -7
  260. package/dist/{kaiAgent-CYvrS8oZ.js.map → kaiAgent-D2TiMDjW.js.map} +1 -1
  261. package/dist/{kaiAgent-N2qbUFZm.cjs → kaiAgent-gaA7dqki.cjs} +6 -7
  262. package/dist/{kaiAgent-N2qbUFZm.cjs.map → kaiAgent-gaA7dqki.cjs.map} +1 -1
  263. package/dist/{kaiMemory-Qch09f-m.cjs → kaiMemory-CkLQfJXD.cjs} +6 -9
  264. package/dist/{kaiMemory-Qch09f-m.cjs.map → kaiMemory-CkLQfJXD.cjs.map} +1 -1
  265. package/dist/{kaiMemory-C9di17bd.js → kaiMemory-oir_qCo_.js} +6 -9
  266. package/dist/{kaiMemory-C9di17bd.js.map → kaiMemory-oir_qCo_.js.map} +1 -1
  267. package/dist/management/index.cjs +1 -1
  268. package/dist/management/index.d.cts +1 -1
  269. package/dist/management/index.d.ts +1 -1
  270. package/dist/management/index.js +1 -2
  271. package/dist/management/types.cjs +1 -2
  272. package/dist/management/types.d.cts +2 -2
  273. package/dist/management/types.d.ts +2 -2
  274. package/dist/management/types.js +1 -2
  275. package/dist/{management-B1o6RpKF.cjs → management-BEGOEQxM.cjs} +26 -45
  276. package/dist/management-BEGOEQxM.cjs.map +1 -0
  277. package/dist/{management-C9w3DNhs.js → management-BcGHyxAP.js} +26 -45
  278. package/dist/management-BcGHyxAP.js.map +1 -0
  279. package/dist/metastore/index.cjs +1 -1
  280. package/dist/metastore/index.d.cts +1 -1
  281. package/dist/metastore/index.d.ts +1 -1
  282. package/dist/metastore/index.js +1 -2
  283. package/dist/metastore/types.d.cts +1 -1
  284. package/dist/metastore/types.d.ts +1 -1
  285. package/dist/{metastore-Ywq08DBz.js → metastore-CGsgxjng.js} +7 -10
  286. package/dist/{metastore-Ywq08DBz.js.map → metastore-CGsgxjng.js.map} +1 -1
  287. package/dist/{metastore-BXHg33ku.cjs → metastore-DeRQ2VIv.cjs} +7 -10
  288. package/dist/{metastore-BXHg33ku.cjs.map → metastore-DeRQ2VIv.cjs.map} +1 -1
  289. package/dist/microsoftGraph/index.cjs +5 -8
  290. package/dist/microsoftGraph/index.cjs.map +1 -1
  291. package/dist/microsoftGraph/index.d.cts +3 -7
  292. package/dist/microsoftGraph/index.d.ts +3 -7
  293. package/dist/microsoftGraph/index.js +5 -8
  294. package/dist/microsoftGraph/index.js.map +1 -1
  295. package/dist/microsoftGraph/types.d.cts +2 -4
  296. package/dist/microsoftGraph/types.d.ts +2 -4
  297. package/dist/{middleware-GOfx8Apu.js → middleware-8zaJWcyU.js} +3 -5
  298. package/dist/middleware-8zaJWcyU.js.map +1 -0
  299. package/dist/{middleware-CEP6uu_D.cjs → middleware-B9RNuLfD.cjs} +3 -5
  300. package/dist/middleware-B9RNuLfD.cjs.map +1 -0
  301. package/dist/notifications/index.cjs +5 -6
  302. package/dist/notifications/index.d.cts +2 -4
  303. package/dist/notifications/index.d.ts +2 -4
  304. package/dist/notifications/index.js +5 -6
  305. package/dist/notifications/types.d.cts +1 -1
  306. package/dist/notifications/types.d.ts +1 -1
  307. package/dist/oauth/index.cjs +1 -1
  308. package/dist/oauth/index.d.cts +2 -4
  309. package/dist/oauth/index.d.ts +2 -4
  310. package/dist/oauth/index.js +1 -2
  311. package/dist/oauth/types.d.cts +1 -1
  312. package/dist/oauth/types.d.ts +1 -1
  313. package/dist/{oauth-DKZPuUlt.cjs → oauth-B5Biqz21.cjs} +7 -9
  314. package/dist/{oauth-DKZPuUlt.cjs.map → oauth-B5Biqz21.cjs.map} +1 -1
  315. package/dist/{oauth-GXmZ9agP.js → oauth-ByCdISsV.js} +7 -9
  316. package/dist/{oauth-GXmZ9agP.js.map → oauth-ByCdISsV.js.map} +1 -1
  317. package/dist/omnisearch/index.cjs +3 -4
  318. package/dist/omnisearch/index.d.cts +2 -4
  319. package/dist/omnisearch/index.d.ts +2 -4
  320. package/dist/omnisearch/index.js +3 -4
  321. package/dist/omnisearch/types.d.cts +1 -1
  322. package/dist/omnisearch/types.d.ts +1 -1
  323. package/dist/{project-ClH22nzH.js → project-DmuC0bMK.js} +6 -9
  324. package/dist/{project-ClH22nzH.js.map → project-DmuC0bMK.js.map} +1 -1
  325. package/dist/{project-Rh4nXiWh.cjs → project-Onf-IcPW.cjs} +9 -12
  326. package/dist/{project-Rh4nXiWh.cjs.map → project-Onf-IcPW.cjs.map} +1 -1
  327. package/dist/{project-DTfBtIJs.d.ts → project-UHZGFmmG.d.cts} +5 -9
  328. package/dist/{project-vOnvjo80.d.cts → project-iBm4cIIR.d.ts} +5 -9
  329. package/dist/queryService/index.cjs +1 -1
  330. package/dist/queryService/index.d.cts +1 -1
  331. package/dist/queryService/index.d.ts +1 -1
  332. package/dist/queryService/index.js +1 -2
  333. package/dist/queryService/types.d.cts +1 -1
  334. package/dist/queryService/types.d.ts +1 -1
  335. package/dist/{queryService-CzK53q94.cjs → queryService-Cg-eMysa.cjs} +9 -11
  336. package/dist/{queryService-CzK53q94.cjs.map → queryService-Cg-eMysa.cjs.map} +1 -1
  337. package/dist/{queryService-C-pZha5p.js → queryService-x8kq8Z2-.js} +9 -11
  338. package/dist/{queryService-C-pZha5p.js.map → queryService-x8kq8Z2-.js.map} +1 -1
  339. package/dist/queue/index.cjs +1 -1
  340. package/dist/queue/index.d.cts +4 -5
  341. package/dist/queue/index.d.ts +4 -5
  342. package/dist/queue/index.js +1 -2
  343. package/dist/queue/types.d.cts +1 -1
  344. package/dist/queue/types.d.ts +1 -1
  345. package/dist/{queue-D6-x4OGF.js → queue-BiIs9fX4.js} +9 -11
  346. package/dist/{queue-D6-x4OGF.js.map → queue-BiIs9fX4.js.map} +1 -1
  347. package/dist/{queue-BJvDWriM.cjs → queue-CBi9Q8vp.cjs} +9 -11
  348. package/dist/{queue-BJvDWriM.cjs.map → queue-CBi9Q8vp.cjs.map} +1 -1
  349. package/dist/{rolldown-runtime-VH7oDXx4.cjs → rolldown-runtime-CmQyd0Gu.cjs} +1 -2
  350. package/dist/scheduler/index.cjs +5 -6
  351. package/dist/scheduler/index.d.cts +2 -4
  352. package/dist/scheduler/index.d.ts +2 -4
  353. package/dist/scheduler/index.js +5 -6
  354. package/dist/scheduler/types.d.cts +1 -1
  355. package/dist/scheduler/types.d.ts +1 -1
  356. package/dist/{schema-BUyMwQnM.d.cts → schema-DLmBEgPM.d.cts} +1 -3
  357. package/dist/{schema-BUyMwQnM.d.ts → schema-DLmBEgPM.d.ts} +1 -3
  358. package/dist/schemaGuidedMerge-C8CqrNGe.cjs +55 -0
  359. package/dist/schemaGuidedMerge-C8CqrNGe.cjs.map +1 -0
  360. package/dist/schemaGuidedMerge-DFNqj9Nz.js +44 -0
  361. package/dist/schemaGuidedMerge-DFNqj9Nz.js.map +1 -0
  362. package/dist/sdk/configurations/index.cjs +634 -2
  363. package/dist/sdk/configurations/index.cjs.map +1 -0
  364. package/dist/sdk/configurations/index.d.cts +1030 -4
  365. package/dist/sdk/configurations/index.d.ts +1030 -4
  366. package/dist/sdk/configurations/index.js +633 -1
  367. package/dist/sdk/configurations/index.js.map +1 -0
  368. package/dist/sdk/developerPortal/index.cjs +9 -13
  369. package/dist/sdk/developerPortal/index.cjs.map +1 -1
  370. package/dist/sdk/developerPortal/index.d.cts +4 -6
  371. package/dist/sdk/developerPortal/index.d.ts +4 -6
  372. package/dist/sdk/developerPortal/index.js +9 -13
  373. package/dist/sdk/developerPortal/index.js.map +1 -1
  374. package/dist/sdk/kaiMemory/index.cjs +1 -1
  375. package/dist/sdk/kaiMemory/index.d.cts +1 -3
  376. package/dist/sdk/kaiMemory/index.d.ts +1 -3
  377. package/dist/sdk/kaiMemory/index.js +1 -2
  378. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  379. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  380. package/dist/sdk/queryService/index.cjs +3 -4
  381. package/dist/sdk/queryService/index.d.cts +1 -1
  382. package/dist/sdk/queryService/index.d.ts +1 -1
  383. package/dist/sdk/queryService/index.js +3 -4
  384. package/dist/sdk/semanticLayer/index.cjs +1 -1
  385. package/dist/sdk/semanticLayer/index.d.cts +1 -7
  386. package/dist/sdk/semanticLayer/index.d.ts +1 -7
  387. package/dist/sdk/semanticLayer/index.js +1 -2
  388. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  389. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  390. package/dist/sdk/storage/index.cjs +3 -6
  391. package/dist/sdk/storage/index.cjs.map +1 -1
  392. package/dist/sdk/storage/index.d.cts +0 -6
  393. package/dist/sdk/storage/index.d.ts +0 -6
  394. package/dist/sdk/storage/index.js +3 -6
  395. package/dist/sdk/storage/index.js.map +1 -1
  396. package/dist/sdk/tag/index.cjs +1 -1
  397. package/dist/sdk/tag/index.d.cts +3 -5
  398. package/dist/sdk/tag/index.d.ts +3 -5
  399. package/dist/sdk/tag/index.js +1 -2
  400. package/dist/sdk/tag/types.d.cts +1 -1
  401. package/dist/sdk/tag/types.d.ts +1 -1
  402. package/dist/sdk/vault/index.cjs +3 -5
  403. package/dist/sdk/vault/index.cjs.map +1 -1
  404. package/dist/sdk/vault/index.d.cts +1 -1
  405. package/dist/sdk/vault/index.d.ts +1 -1
  406. package/dist/sdk/vault/index.js +3 -5
  407. package/dist/sdk/vault/index.js.map +1 -1
  408. package/dist/{semanticLayer-DvjS_nzo.js → semanticLayer-BdPW_wLo.js} +9 -14
  409. package/dist/{semanticLayer-DvjS_nzo.js.map → semanticLayer-BdPW_wLo.js.map} +1 -1
  410. package/dist/{semanticLayer-7BejcMj_.cjs → semanticLayer-djom-J78.cjs} +9 -14
  411. package/dist/{semanticLayer-7BejcMj_.cjs.map → semanticLayer-djom-J78.cjs.map} +1 -1
  412. package/dist/status/index.cjs +2 -3
  413. package/dist/status/index.d.cts +1 -3
  414. package/dist/status/index.d.ts +1 -3
  415. package/dist/status/index.js +2 -3
  416. package/dist/status/types.d.cts +0 -2
  417. package/dist/status/types.d.ts +0 -2
  418. package/dist/storage/index.cjs +9 -9
  419. package/dist/storage/index.d.cts +3 -2
  420. package/dist/storage/index.d.ts +3 -2
  421. package/dist/storage/index.js +9 -9
  422. package/dist/storage/types.d.cts +6 -6
  423. package/dist/storage/types.d.ts +6 -6
  424. package/dist/{storage-CChfKlrb.js → storage-BpOLWT6h.js} +54 -89
  425. package/dist/{storage-CChfKlrb.js.map → storage-BpOLWT6h.js.map} +1 -1
  426. package/dist/{storage-Ci9gXgcw.cjs → storage-KJ5Ki_ma.cjs} +53 -88
  427. package/dist/{storage-Ci9gXgcw.cjs.map → storage-KJ5Ki_ma.cjs.map} +1 -1
  428. package/dist/{store-xS-Cu_VS.cjs → store-2OyH1XOP.cjs} +3 -5
  429. package/dist/{store-xS-Cu_VS.cjs.map → store-2OyH1XOP.cjs.map} +1 -1
  430. package/dist/{store-C9FQCHGe.js → store-HP0zRcLz.js} +3 -5
  431. package/dist/{store-C9FQCHGe.js.map → store-HP0zRcLz.js.map} +1 -1
  432. package/dist/stream/index.cjs +4 -5
  433. package/dist/stream/index.d.cts +2 -4
  434. package/dist/stream/index.d.ts +2 -4
  435. package/dist/stream/index.js +4 -5
  436. package/dist/stream/types.d.cts +1 -1
  437. package/dist/stream/types.d.ts +1 -1
  438. package/dist/{suggestions-BH3x7xU7.d.ts → suggestions-xhIjrlvi.d.cts} +1 -3
  439. package/dist/{suggestions-BH3x7xU7.d.cts → suggestions-xhIjrlvi.d.ts} +1 -3
  440. package/dist/syncActions/index.cjs +1 -1
  441. package/dist/syncActions/index.d.cts +2 -2
  442. package/dist/syncActions/index.d.ts +2 -2
  443. package/dist/syncActions/index.js +1 -2
  444. package/dist/syncActions/types.d.cts +2 -2
  445. package/dist/syncActions/types.d.ts +2 -2
  446. package/dist/{syncActions-C1rE4R3f.cjs → syncActions-BcX3jm2E.cjs} +74 -187
  447. package/dist/syncActions-BcX3jm2E.cjs.map +1 -0
  448. package/dist/{syncActions-DM8vP7p3.js → syncActions-giPLTfje.js} +73 -186
  449. package/dist/syncActions-giPLTfje.js.map +1 -0
  450. package/dist/{tag-DHS_soa7.cjs → tag-A5z4tJn1.cjs} +5 -7
  451. package/dist/{tag-DHS_soa7.cjs.map → tag-A5z4tJn1.cjs.map} +1 -1
  452. package/dist/{tag-hh-1nhNr.js → tag-BwjbG3tT.js} +5 -7
  453. package/dist/{tag-hh-1nhNr.js.map → tag-BwjbG3tT.js.map} +1 -1
  454. package/dist/telemetry/index.cjs +4 -5
  455. package/dist/telemetry/index.d.cts +2 -4
  456. package/dist/telemetry/index.d.ts +2 -4
  457. package/dist/telemetry/index.js +4 -5
  458. package/dist/telemetry/types.d.cts +1 -1
  459. package/dist/telemetry/types.d.ts +1 -1
  460. package/dist/{transientRetries-B4iusp69.js → transientRetries-BKqmb85B.js} +13 -22
  461. package/dist/{transientRetries-B4iusp69.js.map → transientRetries-BKqmb85B.js.map} +1 -1
  462. package/dist/{transientRetries-DdJfH9QK.cjs → transientRetries-CM7rAEXQ.cjs} +13 -22
  463. package/dist/{transientRetries-DdJfH9QK.cjs.map → transientRetries-CM7rAEXQ.cjs.map} +1 -1
  464. package/dist/{types-DODAZKEm.d.ts → types--Rp5wvaz.d.ts} +2 -6
  465. package/dist/{types-JZ0Bdlpk.d.cts → types-1IBnjBVJ.d.cts} +2 -6
  466. package/dist/{types-BZ--6pIt.d.ts → types-37vwxse4.d.cts} +2 -6
  467. package/dist/{types-RogkWzOu.d.ts → types-6T04_qUf.d.ts} +2 -6
  468. package/dist/{types-TmrPVMhy.d.cts → types-B0e-no6u.d.ts} +18 -38
  469. package/dist/{types-ptynVnkv.d.cts → types-B1qe1etN.d.cts} +3 -7
  470. package/dist/{types-BXybSjn-.d.ts → types-B3ri-iiC.d.ts} +2 -26
  471. package/dist/{types-dn6MHur3.d.cts → types-BB49alHP.d.cts} +243 -9
  472. package/dist/{types-Duurgaqk.d.cts → types-BCGrKW1K.d.cts} +6 -10
  473. package/dist/{types-BOT6TgOS.d.ts → types-BE8abIig.d.cts} +2 -6
  474. package/dist/{types-BrpIEj_N.d.ts → types-BWMOK6eL.d.cts} +2 -6
  475. package/dist/{types-D53zBV25.d.ts → types-Bat0SIZA.d.cts} +16 -97
  476. package/dist/{types-Dy6EdWPG.d.ts → types-Bdl7EFMc.d.ts} +2 -6
  477. package/dist/{types-CfXqFz2e.d.ts → types-BfB-XXLF.d.ts} +243 -9
  478. package/dist/{types-_zKX6JmD.d.ts → types-BiDdBXSm.d.ts} +2 -8
  479. package/dist/{types-BnmsuDfH.d.cts → types-BuclMPeY.d.cts} +2 -26
  480. package/dist/{types-302-NBaU.d.ts → types-C9okze_R.d.ts} +3 -7
  481. package/dist/{types-BT5e9TSQ.d.ts → types-CPWjRdnj.d.cts} +18 -38
  482. package/dist/{types-C614wC5h.d.cts → types-CRubbBcU.d.cts} +2 -6
  483. package/dist/{types-DlhNay1n.d.ts → types-CWcdaq-K.d.ts} +2 -6
  484. package/dist/{types-D9ZKJYZk.d.ts → types-CcGp6O3B.d.cts} +3 -7
  485. package/dist/{types-45O2dU2w.d.ts → types-Cr5lyI99.d.ts} +2 -6
  486. package/dist/{types-CY8X39qv.d.cts → types-CxEJ77m3.d.cts} +3 -7
  487. package/dist/{types-DmzSFOhK.d.cts → types-D-tJt0hQ.d.cts} +2 -6
  488. package/dist/{types-BjwbzqJd.d.ts → types-D6lre27s.d.ts} +2 -8
  489. package/dist/{types-0R9-osUJ.d.ts → types-DHMxPJZq.d.cts} +2 -6
  490. package/dist/{types-jN2KmMet.d.cts → types-DJzTVMu1.d.ts} +2 -6
  491. package/dist/{types-CpJhWBmH.d.cts → types-DNgazFnF.d.cts} +2 -8
  492. package/dist/{types-DjadPty5.d.ts → types-DRCttnIN.d.ts} +2 -6
  493. package/dist/{types-CeqZuOEC.d.ts → types-DUpVIuk7.d.ts} +2 -6
  494. package/dist/{types-DqOxIujY.d.ts → types-DeyXJzWz.d.cts} +2 -6
  495. package/dist/{types-O6XM48J8.d.cts → types-Dryq2GGE.d.cts} +2 -6
  496. package/dist/{types-CjNl7O7f.d.cts → types-DschSZHf.d.cts} +3 -5
  497. package/dist/{types-BUirSne-.d.ts → types-DtOfhDzz.d.ts} +3 -5
  498. package/dist/{types-CkJxMoTk.d.cts → types-Du5o-tud.d.ts} +16 -97
  499. package/dist/{types-ChLWY8aU.d.cts → types-DwbTiyhZ.d.cts} +2 -6
  500. package/dist/{types-tdIo5FpR.d.ts → types-Dz9vyloX.d.ts} +6 -10
  501. package/dist/{types-HmK8iKp5.d.cts → types-E8tzafsk.d.cts} +3 -7
  502. package/dist/{types-DpbrGDRf.d.cts → types-LconaX98.d.cts} +2 -6
  503. package/dist/{types-CTS2NSIb.d.cts → types-YpOm4yXE.d.cts} +2 -8
  504. package/dist/{types-DbXV0g8U.d.cts → types-ZZwdKCBl.d.ts} +2 -6
  505. package/dist/{types-jfPoUlO8.d.cts → types-eFi8xJIM.d.cts} +2 -6
  506. package/dist/{types-DV7K07oX.d.cts → types-inG9y3dP.d.ts} +2 -6
  507. package/dist/{types-BM6rri7-.d.ts → types-ir7T2a9a.d.ts} +3 -7
  508. package/dist/{types-BAsYMltG.d.cts → types-jjOulnni.d.ts} +2 -6
  509. package/dist/{types-vvw_H7wp.d.cts → types-wYrC2boT.d.ts} +3 -7
  510. package/dist/{types-BWzt1ju_.d.ts → types-xzt_2H63.d.ts} +3 -7
  511. package/dist/{types-D2Pb_4FA.d.cts → types-zPY-XGnM.d.ts} +2 -6
  512. package/dist/{validateConnectionStatus-BalWEyRk.cjs → validateConnectionStatus-BjemGI1e.cjs} +5 -7
  513. package/dist/{validateConnectionStatus-BalWEyRk.cjs.map → validateConnectionStatus-BjemGI1e.cjs.map} +1 -1
  514. package/dist/{validateConnectionStatus-DyrYpn0G.js → validateConnectionStatus-DYwWeWVo.js} +5 -7
  515. package/dist/{validateConnectionStatus-DyrYpn0G.js.map → validateConnectionStatus-DYwWeWVo.js.map} +1 -1
  516. package/dist/vault/index.cjs +7 -8
  517. package/dist/vault/index.d.cts +1 -1
  518. package/dist/vault/index.d.ts +1 -1
  519. package/dist/vault/index.js +7 -8
  520. package/dist/vault/types.d.cts +1 -1
  521. package/dist/vault/types.d.ts +1 -1
  522. package/package.json +7 -7
  523. package/surface/apps.md +12 -10
  524. package/surface/chat.md +1 -1
  525. package/surface/dataScience.md +1 -1
  526. package/surface/editor.md +5 -5
  527. package/surface/kaiAgent.md +4 -4
  528. package/surface/management.md +1 -1
  529. package/surface/queue.md +3 -3
  530. package/surface/sdk.md +0 -6
  531. package/surface/stack.md +11 -0
  532. package/surface/storage.md +2 -2
  533. package/surface/stream.md +6 -6
  534. package/surface/syncActions.md +1 -2
  535. package/dist/configurations-B44z6BSO.js +0 -718
  536. package/dist/configurations-B44z6BSO.js.map +0 -1
  537. package/dist/configurations-CL0ouUMa.js.map +0 -1
  538. package/dist/configurations-D9J3jh3g.cjs.map +0 -1
  539. package/dist/configurations-Dkxsa3Uf.cjs +0 -735
  540. package/dist/configurations-Dkxsa3Uf.cjs.map +0 -1
  541. package/dist/constants-DErcRkWl.cjs.map +0 -1
  542. package/dist/constants-VpSwBtCb.js.map +0 -1
  543. package/dist/createGenericFetchClient-CQdNcPC3.js +0 -7
  544. package/dist/createOpenapiFetchClient-DXiMv9WL.js +0 -7
  545. package/dist/generateUUID-Dr8l-aoc.js +0 -6
  546. package/dist/index-Be2dNJ_N.d.cts +0 -23582
  547. package/dist/index-BfqkgPGI.d.cts +0 -34
  548. package/dist/index-BfqkgPGI.d.ts +0 -34
  549. package/dist/index-fMoM8SeH.d.cts +0 -199
  550. package/dist/index-fMoM8SeH.d.ts +0 -199
  551. package/dist/index-uGRdAORl.d.ts +0 -23582
  552. package/dist/management-B1o6RpKF.cjs.map +0 -1
  553. package/dist/management-C9w3DNhs.js.map +0 -1
  554. package/dist/middleware-CEP6uu_D.cjs.map +0 -1
  555. package/dist/middleware-GOfx8Apu.js.map +0 -1
  556. package/dist/storageTable-BNOR2FCh.cjs +0 -442
  557. package/dist/storageTable-BNOR2FCh.cjs.map +0 -1
  558. package/dist/storageTable-BldTNyEk.js +0 -395
  559. package/dist/storageTable-BldTNyEk.js.map +0 -1
  560. package/dist/syncActions-C1rE4R3f.cjs.map +0 -1
  561. package/dist/syncActions-DM8vP7p3.js.map +0 -1
  562. package/surface/context.md +0 -40
package/README.md CHANGED
@@ -22,11 +22,11 @@ The SDK exposes two flow-specific factories — pick the one that matches how yo
22
22
 
23
23
  `session` is the lifecycle — you drive it to _ready_. `api` is the product surface, gated by state:
24
24
 
25
- | Tier | Live once… | Example |
26
- | ----------------------------------------------- | --------------------------------------- | ---------------------------------- |
27
- | `api.auth.*` | a `baseUrl` is configured | `api.auth.login.withPassword(...)` |
28
- | `api.management.*` | the management realm authenticates | `api.management.projects.*` |
29
- | `api.storage` / `api.queue` / `api.context` / … | the async storage build reaches `ready` | `api.storage.getStackInfo()` |
25
+ | Tier | Live once… | Example |
26
+ | --------------------------------------------- | --------------------------------------- | ---------------------------------- |
27
+ | `api.auth.*` | a `baseUrl` is configured | `api.auth.login.withPassword(...)` |
28
+ | `api.management.*` | the management realm authenticates | `api.management.projects.*` |
29
+ | `api.storage` / `api.queue` / `api.stack` / … | the async storage build reaches `ready` | `api.storage.getStackInfo()` |
30
30
 
31
31
  Touching a product namespace before _ready_ throws a `KeboolaError`. `session.isStorageReady()` and
32
32
  `session.subscribe(cb)` observe the transition; the `…Async` verbs below await it for you.
@@ -45,8 +45,8 @@ import { createLegacyKeboola } from '@keboola/api-client';
45
45
  const { api, session } = createLegacyKeboola({ baseUrl: process.env.KEBOOLA_STACK_URL! });
46
46
  await session.authenticateStorageAsync(process.env.KEBOOLA_STORAGE_TOKEN!);
47
47
 
48
- const stackInfo = await api.storage.getStackInfo();
49
- const project = api.context.project; // synchronous once ready
48
+ const stack = api.stack; // synchronous once ready
49
+ const token = await api.storage.tokens.verify();
50
50
  ```
51
51
 
52
52
  Optionally add the management realm with `session.authenticateManagement(manageToken)` → `api.management.*`.
@@ -68,32 +68,33 @@ session.subscribe((snapshot) => {
68
68
  });
69
69
  ```
70
70
 
71
- > **React:** don't wire this by hand — `LegacyAuthProvider` + `useApiClient()` from
71
+ > **React:** don't wire this by hand — `LegacyAuthProvider` + `useProjectApi()` from
72
72
  > [`@keboola/api-client-react`](../api-client-react) drive the singleton session to ready and hand you `api`.
73
73
 
74
74
  ### Bearer (OAuth) — Browser
75
75
 
76
- Interactive login, then scope to a project:
76
+ Interactive login, then a project:
77
77
 
78
78
  ```typescript
79
79
  import { createKeboola } from '@keboola/api-client';
80
80
 
81
- const { api, session } = createKeboola({ defaultBaseUrl: baseUrl });
81
+ const { session, getStackApi, getProjectApi } = createKeboola({ defaultBaseUrl: baseUrl });
82
82
 
83
- // api.auth is live from construction: a stack is always active
84
- const result = await api.auth.login.withPassword({ email, password });
83
+ // `auth` is live from construction: a stack is always active
84
+ const result = await getStackApi().auth.login.withPassword({ email, password });
85
85
  if (result.mfaRequired) {
86
- // result is an MFA challenge — verify via api.auth.mfa.* to obtain the LoginSuccess
86
+ // result is an MFA challenge — verify via getStackApi().auth.mfa.* to obtain the LoginSuccess
87
87
  }
88
88
 
89
- session.authenticate(result); // pass the LoginSuccess → api.management is now live
90
- await session.setProjectAsync(projectId); // projectId from your project picker → storage ready
89
+ session.auth.authenticate({ type: 'token', ...result }); // → `management` is now live
90
+ const api = getProjectApi(projectId); // projectId from your project picker
91
91
 
92
- const stackInfo = await api.storage.getStackInfo();
93
- session.setProject(otherProjectId); // runtime re-scope — rebuilds against the new project
92
+ const buckets = await api.storage.buckets.getBuckets({ branchId: 'default' });
93
+ const other = getProjectApi(otherProjectId); // another project, the same sign-in
94
94
  ```
95
95
 
96
- > **React:** `AuthProvider` + `useApiClient()` own the login → authenticate → setProject sequence.
96
+ > **React:** `StackApiProvider` + `useStackApi()` serve the sign-in; `ProjectApiProvider` +
97
+ > `useProjectApi()` the project the app is in.
97
98
 
98
99
  ### Bearer (OAuth) — Node
99
100
 
@@ -155,10 +156,10 @@ import type { VariableWithHash } from '@keboola/api-client/vault/types';
155
156
  src/
156
157
  index.ts # package entry — re-exports keboola/ factories, errors, utils
157
158
  keboola/
158
- bearer/keboola.ts # createKeboola() — bearer/OAuth flow → { api, session }
159
+ bearer/keboola.ts # createKeboola() — bearer/OAuth flow → { session, getStackApi, getProjectApi }
160
+ bearer/context.ts # per-stack index, fetched once (pending→ready|errored)
159
161
  legacy/keboola.ts # createLegacyKeboola() — SAPI-token flow → { api, session }
160
162
  createApi.ts # flow-agnostic, state-gating `api` proxy
161
- createResource.ts # async storage-build resource (unresolved→pending→ready|errored)
162
163
  internal.ts # HTTP headers, prefixes
163
164
  fetchClient/
164
165
  createFetchClient/ # Core fetch wrapper, middleware composition
@@ -233,14 +234,12 @@ Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the gene
233
234
 
234
235
  Additional accessors on the ready client:
235
236
 
236
- | Accessor | Purpose |
237
- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
238
- | `api.context.stack` | Stack info: `hasFeature()`, `hasService()`, `getServiceUrl()`, `hasComponent()`, `getComponent()`, `services`, `features`, `components` |
239
- | `api.context.project` | Project info: `hasFeature()`, `hasAdminFeature()`, `hasBackend()`, `sapiToken` |
240
- | `api.context.defaultBranch` | Branch awareness: `id`, `name`, `getType()`, `isDev()`, `isDefault()` |
241
- | `api.context.st` | Bucket/table id parse + serialize, derived from project features (rebuilds on relevant feature change). `st` mirrors kbc-ui's current naming. |
242
- | `api.context.serviceMeta` | Service availability metadata from the registry |
243
- | `api.sdk.tag` | Tag SDK: `getTags()`, `getTagsByObjectId()`, `createTag()`, `updateTag()`, `deleteTag()`, `assignTags()`, `unassignTags()`, `createAndAssignTag()` |
237
+ | Accessor | Purpose |
238
+ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
239
+ | `api.stack` | Stack info: `hasFeature()`, `hasService()`, `getServiceUrl()`, `hasComponent()`, `getComponent()`, `services`, `features`, `components` |
240
+ | `api.baseUrl` | Canonical stack URL every request is built on |
241
+ | `api.serviceMeta` | Service availability metadata from the registry |
242
+ | `api.sdk.tag` | Tag SDK: `getTags()`, `getTagsByObjectId()`, `createTag()`, `updateTag()`, `deleteTag()`, `assignTags()`, `unassignTags()`, `createAndAssignTag()` |
244
243
 
245
244
  ## Entry Points
246
245
 
@@ -438,7 +437,12 @@ assert(value, 'value must be defined');
438
437
  React bindings (provider, hooks, query integration) are in the separate `@keboola/api-client-react` package.
439
438
 
440
439
  ```typescript
441
- import { ApiClientProvider, useApiClient } from '@keboola/api-client-react';
440
+ import {
441
+ ProjectApiProvider,
442
+ StackApiProvider,
443
+ useProjectApi,
444
+ useStackApi,
445
+ } from '@keboola/api-client-react';
442
446
  ```
443
447
 
444
448
  ## Ownership
@@ -1,5 +1,5 @@
1
- const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
2
- //#region src/errors/ManagementClientAuthError.ts
1
+ const require_createFetchClient = require("./createFetchClient-DEkUH662.cjs");
2
+ // src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends require_createFetchClient.ApiError {
4
4
  title;
5
5
  message;
@@ -10,8 +10,7 @@ var ManagementClientAuthError = class extends require_createFetchClient.ApiError
10
10
  this.message = message;
11
11
  }
12
12
  };
13
- //#endregion
14
- //#region src/errors/ManagementSessionMintError.ts
13
+ // src/errors/ManagementSessionMintError.ts
15
14
  /**
16
15
  * The Manage client has no credential of its own and could not mint a session token from the
17
16
  * login cookie.
@@ -30,7 +29,6 @@ var ManagementSessionMintError = class extends ManagementClientAuthError {
30
29
  this.name = "ManagementSessionMintError";
31
30
  }
32
31
  };
33
- //#endregion
34
32
  Object.defineProperty(exports, "ManagementClientAuthError", {
35
33
  enumerable: true,
36
34
  get: function() {
@@ -44,4 +42,4 @@ Object.defineProperty(exports, "ManagementSessionMintError", {
44
42
  }
45
43
  });
46
44
 
47
- //# sourceMappingURL=ManagementSessionMintError-Cu9beG7j.cjs.map
45
+ //# sourceMappingURL=ManagementSessionMintError-ByOulHQH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementSessionMintError-Cu9beG7j.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"ManagementSessionMintError-ByOulHQH.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
@@ -1,5 +1,5 @@
1
- import { p as ApiError } from "./createFetchClient-CkHdS_IG.js";
2
- //#region src/errors/ManagementClientAuthError.ts
1
+ import { p as ApiError } from "./createFetchClient-DlGCbltR.js";
2
+ // src/errors/ManagementClientAuthError.ts
3
3
  var ManagementClientAuthError = class extends ApiError {
4
4
  title;
5
5
  message;
@@ -10,8 +10,7 @@ var ManagementClientAuthError = class extends ApiError {
10
10
  this.message = message;
11
11
  }
12
12
  };
13
- //#endregion
14
- //#region src/errors/ManagementSessionMintError.ts
13
+ // src/errors/ManagementSessionMintError.ts
15
14
  /**
16
15
  * The Manage client has no credential of its own and could not mint a session token from the
17
16
  * login cookie.
@@ -30,7 +29,6 @@ var ManagementSessionMintError = class extends ManagementClientAuthError {
30
29
  this.name = "ManagementSessionMintError";
31
30
  }
32
31
  };
33
- //#endregion
34
32
  export { ManagementClientAuthError as n, ManagementSessionMintError as t };
35
33
 
36
- //# sourceMappingURL=ManagementSessionMintError-4Pkn5Oob.js.map
34
+ //# sourceMappingURL=ManagementSessionMintError-DNMbYauw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagementSessionMintError-4Pkn5Oob.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"ManagementSessionMintError-DNMbYauw.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/QueryJobError.ts
1
+ // src/errors/QueryJobError.ts
2
2
  /**
3
3
  * A query job that reached the API's terminal `failed` state — the submit/poll round-trip
4
4
  * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure
@@ -16,7 +16,6 @@ var QueryJobError = class QueryJobError extends Error {
16
16
  }
17
17
  };
18
18
  const isQueryJobError = (error) => error instanceof QueryJobError;
19
- //#endregion
20
19
  export { isQueryJobError as n, QueryJobError as t };
21
20
 
22
- //# sourceMappingURL=QueryJobError-ZZZ043Nm.js.map
21
+ //# sourceMappingURL=QueryJobError-Iq9O90Uh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryJobError-ZZZ043Nm.js","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
1
+ {"version":3,"file":"QueryJobError-Iq9O90Uh.js","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/QueryJobError.ts
1
+ // src/errors/QueryJobError.ts
2
2
  /**
3
3
  * A query job that reached the API's terminal `failed` state — the submit/poll round-trip
4
4
  * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure
@@ -16,7 +16,6 @@ var QueryJobError = class QueryJobError extends Error {
16
16
  }
17
17
  };
18
18
  const isQueryJobError = (error) => error instanceof QueryJobError;
19
- //#endregion
20
19
  Object.defineProperty(exports, "QueryJobError", {
21
20
  enumerable: true,
22
21
  get: function() {
@@ -30,4 +29,4 @@ Object.defineProperty(exports, "isQueryJobError", {
30
29
  }
31
30
  });
32
31
 
33
- //# sourceMappingURL=QueryJobError-irGiP5zh.cjs.map
32
+ //# sourceMappingURL=QueryJobError-Oy0fl4aw.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryJobError-irGiP5zh.cjs","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
1
+ {"version":3,"file":"QueryJobError-Oy0fl4aw.cjs","names":[],"sources":["../src/errors/QueryJobError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n"],"mappings":";;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/QueueJobError.ts
1
+ // src/errors/QueueJobError.ts
2
2
  /** A queue job that ended `error`: the wait finished, the job did not succeed. */
3
3
  var QueueJobError = class QueueJobError extends Error {
4
4
  exceptionId;
@@ -13,7 +13,6 @@ var QueueJobError = class QueueJobError extends Error {
13
13
  }
14
14
  };
15
15
  const isQueueJobError = (error) => error instanceof QueueJobError;
16
- //#endregion
17
16
  export { isQueueJobError as n, QueueJobError as t };
18
17
 
19
- //# sourceMappingURL=QueueJobError-8bThS_Mc.js.map
18
+ //# sourceMappingURL=QueueJobError-BJNUINXW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueueJobError-8bThS_Mc.js","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
1
+ {"version":3,"file":"QueueJobError-BJNUINXW.js","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/QueueJobError.ts
1
+ // src/errors/QueueJobError.ts
2
2
  /** A queue job that ended `error`: the wait finished, the job did not succeed. */
3
3
  var QueueJobError = class QueueJobError extends Error {
4
4
  exceptionId;
@@ -13,7 +13,6 @@ var QueueJobError = class QueueJobError extends Error {
13
13
  }
14
14
  };
15
15
  const isQueueJobError = (error) => error instanceof QueueJobError;
16
- //#endregion
17
16
  Object.defineProperty(exports, "QueueJobError", {
18
17
  enumerable: true,
19
18
  get: function() {
@@ -27,4 +26,4 @@ Object.defineProperty(exports, "isQueueJobError", {
27
26
  }
28
27
  });
29
28
 
30
- //# sourceMappingURL=QueueJobError-6qSEizWo.cjs.map
29
+ //# sourceMappingURL=QueueJobError-DruZK3tc.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueueJobError-6qSEizWo.cjs","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
1
+ {"version":3,"file":"QueueJobError-DruZK3tc.cjs","names":[],"sources":["../src/errors/QueueJobError.ts"],"sourcesContent":["import type { QueueJob } from '../clients/queue/types';\n\n/** A queue job that ended `error`: the wait finished, the job did not succeed. */\nexport class QueueJobError extends Error {\n exceptionId: string | undefined;\n job: QueueJob;\n\n constructor(job: QueueJob) {\n super(job.result?.message ?? 'The job failed.');\n this.name = 'QueueJobError';\n // The spec types `result` without it; the queue reports one on a failed job.\n const exceptionId: unknown =\n job.result && 'exceptionId' in job.result ? job.result.exceptionId : undefined;\n this.exceptionId = typeof exceptionId === 'string' ? exceptionId : undefined;\n this.job = job;\n Object.setPrototypeOf(this, QueueJobError.prototype);\n }\n}\n\nexport const isQueueJobError = (error: unknown): error is QueueJobError =>\n error instanceof QueueJobError;\n"],"mappings":";;AAGA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,KAAe;EACzB,MAAM,IAAI,QAAQ,WAAW,iBAAiB;EAC9C,KAAK,OAAO;EAEZ,MAAM,cACJ,IAAI,UAAU,iBAAiB,IAAI,SAAS,IAAI,OAAO,cAAc,KAAA;EACvE,KAAK,cAAc,OAAO,gBAAgB,WAAW,cAAc,KAAA;EACnE,KAAK,MAAM;EACX,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/SyncActionError.ts
1
+ // src/errors/SyncActionError.ts
2
2
  /**
3
3
  * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries
4
4
  * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers
@@ -18,7 +18,6 @@ var SyncActionError = class SyncActionError extends Error {
18
18
  }
19
19
  };
20
20
  const isSyncActionError = (error) => error instanceof SyncActionError;
21
- //#endregion
22
21
  export { isSyncActionError as n, SyncActionError as t };
23
22
 
24
- //# sourceMappingURL=SyncActionError-CoZFsdUk.js.map
23
+ //# sourceMappingURL=SyncActionError-DuGcDbkd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncActionError-CoZFsdUk.js","names":[],"sources":["../src/errors/SyncActionError.ts"],"sourcesContent":["type SyncActionErrorOptions = {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n};\n\n/**\n * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries\n * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers\n * branch on one thing.\n */\nexport class SyncActionError extends Error {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n\n constructor(message: string, { exceptionId, code, data }: SyncActionErrorOptions = {}) {\n super(message);\n this.name = 'SyncActionError';\n this.exceptionId = exceptionId;\n this.code = code;\n this.data = data;\n Object.setPrototypeOf(this, SyncActionError.prototype);\n }\n}\n\nexport const isSyncActionError = (error: unknown): error is SyncActionError =>\n error instanceof SyncActionError;\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CACA;CACA;CAEA,YAAY,SAAiB,EAAE,aAAa,MAAM,SAAiC,CAAC,GAAG;EACrF,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,cAAc;EACnB,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB"}
1
+ {"version":3,"file":"SyncActionError-DuGcDbkd.js","names":[],"sources":["../src/errors/SyncActionError.ts"],"sourcesContent":["type SyncActionErrorOptions = {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n};\n\n/**\n * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries\n * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers\n * branch on one thing.\n */\nexport class SyncActionError extends Error {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n\n constructor(message: string, { exceptionId, code, data }: SyncActionErrorOptions = {}) {\n super(message);\n this.name = 'SyncActionError';\n this.exceptionId = exceptionId;\n this.code = code;\n this.data = data;\n Object.setPrototypeOf(this, SyncActionError.prototype);\n }\n}\n\nexport const isSyncActionError = (error: unknown): error is SyncActionError =>\n error instanceof SyncActionError;\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CACA;CACA;CAEA,YAAY,SAAiB,EAAE,aAAa,MAAM,SAAiC,CAAC,GAAG;EACrF,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,cAAc;EACnB,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/SyncActionError.ts
1
+ // src/errors/SyncActionError.ts
2
2
  /**
3
3
  * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries
4
4
  * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers
@@ -18,7 +18,6 @@ var SyncActionError = class SyncActionError extends Error {
18
18
  }
19
19
  };
20
20
  const isSyncActionError = (error) => error instanceof SyncActionError;
21
- //#endregion
22
21
  Object.defineProperty(exports, "SyncActionError", {
23
22
  enumerable: true,
24
23
  get: function() {
@@ -32,4 +31,4 @@ Object.defineProperty(exports, "isSyncActionError", {
32
31
  }
33
32
  });
34
33
 
35
- //# sourceMappingURL=SyncActionError-BG0zwchi.cjs.map
34
+ //# sourceMappingURL=SyncActionError-mbpVg63X.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncActionError-BG0zwchi.cjs","names":[],"sources":["../src/errors/SyncActionError.ts"],"sourcesContent":["type SyncActionErrorOptions = {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n};\n\n/**\n * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries\n * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers\n * branch on one thing.\n */\nexport class SyncActionError extends Error {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n\n constructor(message: string, { exceptionId, code, data }: SyncActionErrorOptions = {}) {\n super(message);\n this.name = 'SyncActionError';\n this.exceptionId = exceptionId;\n this.code = code;\n this.data = data;\n Object.setPrototypeOf(this, SyncActionError.prototype);\n }\n}\n\nexport const isSyncActionError = (error: unknown): error is SyncActionError =>\n error instanceof SyncActionError;\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CACA;CACA;CAEA,YAAY,SAAiB,EAAE,aAAa,MAAM,SAAiC,CAAC,GAAG;EACrF,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,cAAc;EACnB,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB"}
1
+ {"version":3,"file":"SyncActionError-mbpVg63X.cjs","names":[],"sources":["../src/errors/SyncActionError.ts"],"sourcesContent":["type SyncActionErrorOptions = {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n};\n\n/**\n * A sync action reports failure two ways: a non-2xx response, and a 2xx response whose body carries\n * `status: 'error'` (the component ran, and said no). Both collapse into this class so consumers\n * branch on one thing.\n */\nexport class SyncActionError extends Error {\n exceptionId?: string;\n code?: number;\n data?: unknown;\n\n constructor(message: string, { exceptionId, code, data }: SyncActionErrorOptions = {}) {\n super(message);\n this.name = 'SyncActionError';\n this.exceptionId = exceptionId;\n this.code = code;\n this.data = data;\n Object.setPrototypeOf(this, SyncActionError.prototype);\n }\n}\n\nexport const isSyncActionError = (error: unknown): error is SyncActionError =>\n error instanceof SyncActionError;\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CACA;CACA;CAEA,YAAY,SAAiB,EAAE,aAAa,MAAM,SAAiC,CAAC,GAAG;EACrF,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,cAAc;EACnB,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB"}
@@ -1,10 +1,9 @@
1
- //#region src/errors/UserError.ts
1
+ // src/errors/UserError.ts
2
2
  var UserError = class extends Error {
3
3
  constructor(message) {
4
4
  super(message);
5
5
  }
6
6
  };
7
- //#endregion
8
7
  export { UserError as t };
9
8
 
10
- //# sourceMappingURL=UserError-By_Zckmc.js.map
9
+ //# sourceMappingURL=UserError-BxoOJJ_u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserError-By_Zckmc.js","names":[],"sources":["../src/errors/UserError.ts"],"sourcesContent":["export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n"],"mappings":";AAAA,IAAa,YAAb,cAA+B,MAAM;CACnC,YAAY,SAAiB;EAC3B,MAAM,OAAO;CACf;AACF"}
1
+ {"version":3,"file":"UserError-BxoOJJ_u.js","names":[],"sources":["../src/errors/UserError.ts"],"sourcesContent":["export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n"],"mappings":";AAAA,IAAa,YAAb,cAA+B,MAAM;CACnC,YAAY,SAAiB;EAC3B,MAAM,OAAO;CACf;AACF"}
@@ -1,10 +1,9 @@
1
- //#region src/errors/UserError.ts
1
+ // src/errors/UserError.ts
2
2
  var UserError = class extends Error {
3
3
  constructor(message) {
4
4
  super(message);
5
5
  }
6
6
  };
7
- //#endregion
8
7
  Object.defineProperty(exports, "UserError", {
9
8
  enumerable: true,
10
9
  get: function() {
@@ -12,4 +11,4 @@ Object.defineProperty(exports, "UserError", {
12
11
  }
13
12
  });
14
13
 
15
- //# sourceMappingURL=UserError-CSGO1qII.cjs.map
14
+ //# sourceMappingURL=UserError-D4P9Tbhf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserError-CSGO1qII.cjs","names":[],"sources":["../src/errors/UserError.ts"],"sourcesContent":["export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n"],"mappings":";AAAA,IAAa,YAAb,cAA+B,MAAM;CACnC,YAAY,SAAiB;EAC3B,MAAM,OAAO;CACf;AACF"}
1
+ {"version":3,"file":"UserError-D4P9Tbhf.cjs","names":[],"sources":["../src/errors/UserError.ts"],"sourcesContent":["export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n"],"mappings":";AAAA,IAAa,YAAb,cAA+B,MAAM;CACnC,YAAY,SAAiB;EAC3B,MAAM,OAAO;CACf;AACF"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/ValidationError.ts
1
+ // src/errors/ValidationError.ts
2
2
  /**
3
3
  * A rejected SDK input or a response not matching its documented shape.
4
4
  *
@@ -36,7 +36,6 @@ const parseOrThrow = (schema, value) => {
36
36
  if (result.success) return result.data;
37
37
  throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);
38
38
  };
39
- //#endregion
40
39
  Object.defineProperty(exports, "ValidationError", {
41
40
  enumerable: true,
42
41
  get: function() {
@@ -62,4 +61,4 @@ Object.defineProperty(exports, "parseOrThrow", {
62
61
  }
63
62
  });
64
63
 
65
- //# sourceMappingURL=ValidationError-D65QU0uq.cjs.map
64
+ //# sourceMappingURL=ValidationError-BXcFX4nD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationError-D65QU0uq.cjs","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
1
+ {"version":3,"file":"ValidationError-BXcFX4nD.cjs","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
@@ -1,4 +1,4 @@
1
- //#region src/errors/ValidationError.ts
1
+ // src/errors/ValidationError.ts
2
2
  /**
3
3
  * A rejected SDK input or a response not matching its documented shape.
4
4
  *
@@ -36,7 +36,6 @@ const parseOrThrow = (schema, value) => {
36
36
  if (result.success) return result.data;
37
37
  throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);
38
38
  };
39
- //#endregion
40
39
  export { parseOrThrow as i, formatValidationIssues as n, isValidationError as r, ValidationError as t };
41
40
 
42
- //# sourceMappingURL=ValidationError-DjhtNMfZ.js.map
41
+ //# sourceMappingURL=ValidationError-BsdFDGY2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationError-DjhtNMfZ.js","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
1
+ {"version":3,"file":"ValidationError-BsdFDGY2.js","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
@@ -1,5 +1,5 @@
1
- import { t as AdminRole } from "./adminRoles-B40yBcmq.js";
2
- //#region src/domain/permissions/errors.ts
1
+ import { t as AdminRole } from "./adminRoles-asa-MhDD.js";
2
+ // src/domain/permissions/errors.ts
3
3
  /**
4
4
  * @module domain/permissions/errors
5
5
  *
@@ -18,8 +18,7 @@ var PermissionDeniedError = class extends Error {
18
18
  this.subject = subject;
19
19
  }
20
20
  };
21
- //#endregion
22
- //#region src/domain/permissions/admin.ts
21
+ // src/domain/permissions/admin.ts
23
22
  const role = (token) => token.admin.role;
24
23
  const isAdmin = (token) => role(token) === AdminRole.Admin;
25
24
  const isAdminOrShare = (token) => role(token) === AdminRole.Admin || role(token) === AdminRole.Share;
@@ -92,53 +91,6 @@ const assertCanDevelopOrReview = (token) => {
92
91
  reason: `role '${role(token)}' is not developer or reviewer`
93
92
  });
94
93
  };
95
- //#endregion
96
- //#region src/domain/permissions/configurations.ts
97
- const meetsBaseRule = (token, ctx) => ctx.isDevModeActive ? isDeveloperOrReviewer(token) : isProductionManager(token);
98
- const baseDenialReason = (ctx) => ctx.isDevModeActive ? "dev branch requires developer or reviewer role" : "production requires productionManager role";
99
- const canCreateConfiguration = (token, ctx) => meetsBaseRule(token, ctx);
100
- const canUpdateConfiguration = (token, ctx) => meetsBaseRule(token, ctx);
101
- const canCopyConfiguration = (token, ctx) => meetsBaseRule(token, ctx);
102
- const canMigrateFromTemplate = (token, ctx) => meetsBaseRule(token, ctx);
103
- const canPurgeConfiguration = (token) => isAdmin(token);
104
- const canAssignFolder = (token, ctx) => meetsBaseRule(token, ctx);
105
- const assertCanCreateConfiguration = (token, ctx) => {
106
- if (!canCreateConfiguration(token, ctx)) throw new PermissionDeniedError({
107
- action: "create-configuration",
108
- reason: baseDenialReason(ctx)
109
- });
110
- };
111
- const assertCanUpdateConfiguration = (token, ctx) => {
112
- if (!canUpdateConfiguration(token, ctx)) throw new PermissionDeniedError({
113
- action: "update-configuration",
114
- reason: baseDenialReason(ctx)
115
- });
116
- };
117
- const assertCanCopyConfiguration = (token, ctx) => {
118
- if (!canCopyConfiguration(token, ctx)) throw new PermissionDeniedError({
119
- action: "copy-configuration",
120
- reason: baseDenialReason(ctx)
121
- });
122
- };
123
- const assertCanMigrateFromTemplate = (token, ctx) => {
124
- if (!canMigrateFromTemplate(token, ctx)) throw new PermissionDeniedError({
125
- action: "migrate-from-template",
126
- reason: baseDenialReason(ctx)
127
- });
128
- };
129
- const assertCanPurgeConfiguration = (token, ctx) => {
130
- if (!canPurgeConfiguration(token, ctx)) throw new PermissionDeniedError({
131
- action: "purge-configuration",
132
- reason: "purge requires admin role"
133
- });
134
- };
135
- const assertCanAssignFolder = (token, ctx) => {
136
- if (!canAssignFolder(token, ctx)) throw new PermissionDeniedError({
137
- action: "assign-folder",
138
- reason: baseDenialReason(ctx)
139
- });
140
- };
141
- //#endregion
142
- export { isKaiSettingsWriterRole as C, PermissionDeniedError as D, isReadOnlyRole as E, isDeveloperOrReviewer as S, isProductionManager as T, assertCanWriteKaiSettings as _, assertCanPurgeConfiguration as a, isAdmin as b, canCopyConfiguration as c, canPurgeConfiguration as d, canUpdateConfiguration as f, assertCanProductionManage as g, assertCanDevelopOrReview as h, assertCanMigrateFromTemplate as i, canCreateConfiguration as l, assertCanAdminOrShare as m, assertCanCopyConfiguration as n, assertCanUpdateConfiguration as o, assertCanAdmin as p, assertCanCreateConfiguration as r, canAssignFolder as s, assertCanAssignFolder as t, canMigrateFromTemplate as u, canWriteKaiSettings as v, isKnownAdminRole as w, isAdminOrShare as x, canWriteSemanticLayer as y };
94
+ export { assertCanWriteKaiSettings as a, isAdmin as c, isKaiSettingsWriterRole as d, isKnownAdminRole as f, PermissionDeniedError as h, assertCanProductionManage as i, isAdminOrShare as l, isReadOnlyRole as m, assertCanAdminOrShare as n, canWriteKaiSettings as o, isProductionManager as p, assertCanDevelopOrReview as r, canWriteSemanticLayer as s, assertCanAdmin as t, isDeveloperOrReviewer as u };
143
95
 
144
- //# sourceMappingURL=configurations-CL0ouUMa.js.map
96
+ //# sourceMappingURL=admin-CbMOsfgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-CbMOsfgs.js","names":[],"sources":["../src/domain/permissions/errors.ts","../src/domain/permissions/admin.ts"],"sourcesContent":["/**\n * @module domain/permissions/errors\n *\n * - What every `assertCan*` throws; its public fields are SDK contract — renames break consumers.\n * - `subject` is a debugging hint only — never a `StorageToken`, raw token or secret.\n */\nexport class PermissionDeniedError extends Error {\n public readonly action: string;\n public readonly reason?: string;\n public readonly subject?: string;\n\n constructor({ action, reason, subject }: { action: string; reason?: string; subject?: string }) {\n super(reason ? `Permission denied: ${action} (${reason})` : `Permission denied: ${action}`);\n this.name = 'PermissionDeniedError';\n this.action = action;\n this.reason = reason;\n this.subject = subject;\n }\n}\n","/**\n * @module domain/permissions/admin\n *\n * Admin-role predicates read from `token.admin.role` alone.\n */\nimport type { StorageToken } from '../../clients/storage/tokens/types';\nimport { AdminRole } from '../../constants/adminRoles';\n\nimport { PermissionDeniedError } from './errors';\n\nconst role = (token: StorageToken): AdminRole | null => token.admin.role;\n\nexport const isAdmin = (token: StorageToken): boolean => role(token) === AdminRole.Admin;\n\nexport const isAdminOrShare = (token: StorageToken): boolean =>\n role(token) === AdminRole.Admin || role(token) === AdminRole.Share;\n\nexport const isProductionManager = (token: StorageToken): boolean =>\n role(token) === AdminRole.ProductionManager;\n\nexport const isDeveloperOrReviewer = (token: StorageToken): boolean =>\n role(token) === AdminRole.Developer || role(token) === AdminRole.Reviewer;\n\nexport const isReadOnlyRole = (token: StorageToken): boolean => role(token) === AdminRole.ReadOnly;\n\n/**\n * Whether a role string is a member of `AdminRole` at all.\n *\n * - Failing it means *unrecognized*, not denied — log it loudly.\n */\nexport const isKnownAdminRole = (adminRole: string | null | undefined): boolean =>\n (Object.values(AdminRole) as string[]).includes(adminRole ?? '');\n\n/**\n * Whether an admin role may write Kai's project-wide settings.\n *\n * - `admin` and `share` only: a shared prompt-injection surface is project administration.\n * - `developer`/`reviewer` are denied: `agent_settings` is keyed by `project_id` alone, so a dev-branch edit hits production.\n * - An allowlist, so new upstream `AdminRole` members are denied by default.\n * - Spend caps use `./organization#canWriteKaiSpendCaps`; don't widen this for them.\n */\nexport const isKaiSettingsWriterRole = (adminRole: string | null | undefined): boolean => {\n switch (adminRole) {\n case AdminRole.Admin:\n case AdminRole.Share:\n return true;\n default:\n return false;\n }\n};\n\n/**\n * Whether this token may write Kai's project-wide settings.\n *\n * - A limited (non-master) token never may; its `admin` block is absent despite the type.\n */\nexport const canWriteKaiSettings = (token: StorageToken): boolean =>\n token.isMasterToken && isKaiSettingsWriterRole(token.admin?.role);\n\nexport const assertCanWriteKaiSettings = (token: StorageToken): void => {\n if (!canWriteKaiSettings(token)) {\n throw new PermissionDeniedError({\n action: 'write-kai-settings',\n reason: token.isMasterToken\n ? `role '${token.admin?.role ?? 'none'}' may not write Kai settings`\n : 'a limited (non-master) token may not write Kai settings',\n });\n }\n};\n\n/**\n * Whether this token may write the project's semantic layer in the metastore.\n *\n * - Mirrors the metastore's role mapping (go-monorepo `services/metastore/internal/authz`):\n * only a master token with the `admin`, `productionManager` or `share` role gets `project-admin`.\n * - Every other role, and a limited token (no `admin` block), gets a 403.\n * - Organization-scope promotion is left to the metastore's 403.\n */\nexport const canWriteSemanticLayer = (token: StorageToken): boolean =>\n token.admin?.role === AdminRole.Admin ||\n token.admin?.role === AdminRole.ProductionManager ||\n token.admin?.role === AdminRole.Share;\n\nexport const assertCanAdmin = (token: StorageToken): void => {\n if (!isAdmin(token)) {\n throw new PermissionDeniedError({\n action: 'admin',\n reason: `role '${role(token)}' is not admin`,\n });\n }\n};\n\nexport const assertCanAdminOrShare = (token: StorageToken): void => {\n if (!isAdminOrShare(token)) {\n throw new PermissionDeniedError({\n action: 'admin-or-share',\n reason: `role '${role(token)}' is not admin or share`,\n });\n }\n};\n\nexport const assertCanProductionManage = (token: StorageToken): void => {\n if (!isProductionManager(token)) {\n throw new PermissionDeniedError({\n action: 'production-manage',\n reason: `role '${role(token)}' is not productionManager`,\n });\n }\n};\n\nexport const assertCanDevelopOrReview = (token: StorageToken): void => {\n if (!isDeveloperOrReviewer(token)) {\n throw new PermissionDeniedError({\n action: 'develop-or-review',\n reason: `role '${role(token)}' is not developer or reviewer`,\n });\n }\n};\n"],"mappings":";;;;;;;;AAMA,IAAa,wBAAb,cAA2C,MAAM;CAC/C;CACA;CACA;CAEA,YAAY,EAAE,QAAQ,QAAQ,WAAkE;EAC9F,MAAM,SAAS,sBAAsB,OAAO,IAAI,OAAO,KAAK,sBAAsB,QAAQ;EAC1F,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,KAAK,SAAS;EACd,KAAK,UAAU;CACjB;AACF;;ACRA,MAAM,QAAQ,UAA0C,MAAM,MAAM;AAEpE,MAAa,WAAW,UAAiC,KAAK,KAAK,MAAM,UAAU;AAEnF,MAAa,kBAAkB,UAC7B,KAAK,KAAK,MAAM,UAAU,SAAS,KAAK,KAAK,MAAM,UAAU;AAE/D,MAAa,uBAAuB,UAClC,KAAK,KAAK,MAAM,UAAU;AAE5B,MAAa,yBAAyB,UACpC,KAAK,KAAK,MAAM,UAAU,aAAa,KAAK,KAAK,MAAM,UAAU;AAEnE,MAAa,kBAAkB,UAAiC,KAAK,KAAK,MAAM,UAAU;;;;;;AAO1F,MAAa,oBAAoB,cAC9B,OAAO,OAAO,SAAS,CAAC,CAAc,SAAS,aAAa,EAAE;;;;;;;;;AAUjE,MAAa,2BAA2B,cAAkD;CACxF,QAAQ,WAAR;EACE,KAAK,UAAU;EACf,KAAK,UAAU,OACb,OAAO;EACT,SACE,OAAO;CACX;AACF;;;;;;AAOA,MAAa,uBAAuB,UAClC,MAAM,iBAAiB,wBAAwB,MAAM,OAAO,IAAI;AAElE,MAAa,6BAA6B,UAA8B;CACtE,IAAI,CAAC,oBAAoB,KAAK,GAC5B,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,MAAM,gBACV,SAAS,MAAM,OAAO,QAAQ,OAAO,gCACrC;CACN,CAAC;AAEL;;;;;;;;;AAUA,MAAa,yBAAyB,UACpC,MAAM,OAAO,SAAS,UAAU,SAChC,MAAM,OAAO,SAAS,UAAU,qBAChC,MAAM,OAAO,SAAS,UAAU;AAElC,MAAa,kBAAkB,UAA8B;CAC3D,IAAI,CAAC,QAAQ,KAAK,GAChB,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,SAAS,KAAK,KAAK,EAAE;CAC/B,CAAC;AAEL;AAEA,MAAa,yBAAyB,UAA8B;CAClE,IAAI,CAAC,eAAe,KAAK,GACvB,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,SAAS,KAAK,KAAK,EAAE;CAC/B,CAAC;AAEL;AAEA,MAAa,6BAA6B,UAA8B;CACtE,IAAI,CAAC,oBAAoB,KAAK,GAC5B,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,SAAS,KAAK,KAAK,EAAE;CAC/B,CAAC;AAEL;AAEA,MAAa,4BAA4B,UAA8B;CACrE,IAAI,CAAC,sBAAsB,KAAK,GAC9B,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,QAAQ,SAAS,KAAK,KAAK,EAAE;CAC/B,CAAC;AAEL"}