@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
@@ -1,5 +1,5 @@
1
- const require_adminRoles = require("./adminRoles-CO7J5qAy.cjs");
2
- //#region src/domain/permissions/errors.ts
1
+ const require_adminRoles = require("./adminRoles-DnFpO_2W.cjs");
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) === require_adminRoles.AdminRole.Admin;
25
24
  const isAdminOrShare = (token) => role(token) === require_adminRoles.AdminRole.Admin || role(token) === require_adminRoles.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
94
  Object.defineProperty(exports, "PermissionDeniedError", {
143
95
  enumerable: true,
144
96
  get: function() {
@@ -157,96 +109,24 @@ Object.defineProperty(exports, "assertCanAdminOrShare", {
157
109
  return assertCanAdminOrShare;
158
110
  }
159
111
  });
160
- Object.defineProperty(exports, "assertCanAssignFolder", {
161
- enumerable: true,
162
- get: function() {
163
- return assertCanAssignFolder;
164
- }
165
- });
166
- Object.defineProperty(exports, "assertCanCopyConfiguration", {
167
- enumerable: true,
168
- get: function() {
169
- return assertCanCopyConfiguration;
170
- }
171
- });
172
- Object.defineProperty(exports, "assertCanCreateConfiguration", {
173
- enumerable: true,
174
- get: function() {
175
- return assertCanCreateConfiguration;
176
- }
177
- });
178
112
  Object.defineProperty(exports, "assertCanDevelopOrReview", {
179
113
  enumerable: true,
180
114
  get: function() {
181
115
  return assertCanDevelopOrReview;
182
116
  }
183
117
  });
184
- Object.defineProperty(exports, "assertCanMigrateFromTemplate", {
185
- enumerable: true,
186
- get: function() {
187
- return assertCanMigrateFromTemplate;
188
- }
189
- });
190
118
  Object.defineProperty(exports, "assertCanProductionManage", {
191
119
  enumerable: true,
192
120
  get: function() {
193
121
  return assertCanProductionManage;
194
122
  }
195
123
  });
196
- Object.defineProperty(exports, "assertCanPurgeConfiguration", {
197
- enumerable: true,
198
- get: function() {
199
- return assertCanPurgeConfiguration;
200
- }
201
- });
202
- Object.defineProperty(exports, "assertCanUpdateConfiguration", {
203
- enumerable: true,
204
- get: function() {
205
- return assertCanUpdateConfiguration;
206
- }
207
- });
208
124
  Object.defineProperty(exports, "assertCanWriteKaiSettings", {
209
125
  enumerable: true,
210
126
  get: function() {
211
127
  return assertCanWriteKaiSettings;
212
128
  }
213
129
  });
214
- Object.defineProperty(exports, "canAssignFolder", {
215
- enumerable: true,
216
- get: function() {
217
- return canAssignFolder;
218
- }
219
- });
220
- Object.defineProperty(exports, "canCopyConfiguration", {
221
- enumerable: true,
222
- get: function() {
223
- return canCopyConfiguration;
224
- }
225
- });
226
- Object.defineProperty(exports, "canCreateConfiguration", {
227
- enumerable: true,
228
- get: function() {
229
- return canCreateConfiguration;
230
- }
231
- });
232
- Object.defineProperty(exports, "canMigrateFromTemplate", {
233
- enumerable: true,
234
- get: function() {
235
- return canMigrateFromTemplate;
236
- }
237
- });
238
- Object.defineProperty(exports, "canPurgeConfiguration", {
239
- enumerable: true,
240
- get: function() {
241
- return canPurgeConfiguration;
242
- }
243
- });
244
- Object.defineProperty(exports, "canUpdateConfiguration", {
245
- enumerable: true,
246
- get: function() {
247
- return canUpdateConfiguration;
248
- }
249
- });
250
130
  Object.defineProperty(exports, "canWriteKaiSettings", {
251
131
  enumerable: true,
252
132
  get: function() {
@@ -302,4 +182,4 @@ Object.defineProperty(exports, "isReadOnlyRole", {
302
182
  }
303
183
  });
304
184
 
305
- //# sourceMappingURL=configurations-D9J3jh3g.cjs.map
185
+ //# sourceMappingURL=admin-Di-MmGFP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-Di-MmGFP.cjs","names":["AdminRole"],"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,MAAMA,mBAAAA,UAAU;AAEnF,MAAa,kBAAkB,UAC7B,KAAK,KAAK,MAAMA,mBAAAA,UAAU,SAAS,KAAK,KAAK,MAAMA,mBAAAA,UAAU;AAE/D,MAAa,uBAAuB,UAClC,KAAK,KAAK,MAAMA,mBAAAA,UAAU;AAE5B,MAAa,yBAAyB,UACpC,KAAK,KAAK,MAAMA,mBAAAA,UAAU,aAAa,KAAK,KAAK,MAAMA,mBAAAA,UAAU;AAEnE,MAAa,kBAAkB,UAAiC,KAAK,KAAK,MAAMA,mBAAAA,UAAU;;;;;;AAO1F,MAAa,oBAAoB,cAC9B,OAAO,OAAOA,mBAAAA,SAAS,CAAC,CAAc,SAAS,aAAa,EAAE;;;;;;;;;AAUjE,MAAa,2BAA2B,cAAkD;CACxF,QAAQ,WAAR;EACE,KAAKA,mBAAAA,UAAU;EACf,KAAKA,mBAAAA,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,SAASA,mBAAAA,UAAU,SAChC,MAAM,OAAO,SAASA,mBAAAA,UAAU,qBAChC,MAAM,OAAO,SAASA,mBAAAA,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"}
@@ -1,5 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-BPMr8PQJ.js";
2
- //#region src/constants/adminRoles.d.ts
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-D1mduJne.js";
3
2
  type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
4
3
  declare const AdminRole: {
5
4
  readonly Admin: 'admin';
@@ -11,6 +10,5 @@ declare const AdminRole: {
11
10
  readonly Guest: 'guest';
12
11
  };
13
12
  type AdminRole = SpecAdminRole;
14
- //#endregion
15
13
  export { AdminRole as t };
16
- //# sourceMappingURL=adminRoles-BX1gk3At.d.ts.map
14
+ //# sourceMappingURL=adminRoles-DAwl657q.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/constants/adminRoles.ts
1
+ // src/constants/adminRoles.ts
2
2
  const AdminRole = {
3
3
  Admin: "admin",
4
4
  Share: "share",
@@ -8,7 +8,6 @@ const AdminRole = {
8
8
  ReadOnly: "readOnly",
9
9
  Guest: "guest"
10
10
  };
11
- //#endregion
12
11
  Object.defineProperty(exports, "AdminRole", {
13
12
  enumerable: true,
14
13
  get: function() {
@@ -16,4 +15,4 @@ Object.defineProperty(exports, "AdminRole", {
16
15
  }
17
16
  });
18
17
 
19
- //# sourceMappingURL=adminRoles-CO7J5qAy.cjs.map
18
+ //# sourceMappingURL=adminRoles-DnFpO_2W.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminRoles-CO7J5qAy.cjs","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
1
+ {"version":3,"file":"adminRoles-DnFpO_2W.cjs","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
@@ -1,5 +1,4 @@
1
- import { Lr as paths, l as OpenapiReturnType } from "./index-CL4iKFic.cjs";
2
- //#region src/constants/adminRoles.d.ts
1
+ import { Lr as paths, l as OpenapiReturnType } from "./index-D1mduJne.cjs";
3
2
  type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
4
3
  declare const AdminRole: {
5
4
  readonly Admin: 'admin';
@@ -11,6 +10,5 @@ declare const AdminRole: {
11
10
  readonly Guest: 'guest';
12
11
  };
13
12
  type AdminRole = SpecAdminRole;
14
- //#endregion
15
13
  export { AdminRole as t };
16
- //# sourceMappingURL=adminRoles-BbxFgfX-.d.cts.map
14
+ //# sourceMappingURL=adminRoles-FFyl7Dyx.d.cts.map
@@ -1,4 +1,4 @@
1
- //#region src/constants/adminRoles.ts
1
+ // src/constants/adminRoles.ts
2
2
  const AdminRole = {
3
3
  Admin: "admin",
4
4
  Share: "share",
@@ -8,7 +8,6 @@ const AdminRole = {
8
8
  ReadOnly: "readOnly",
9
9
  Guest: "guest"
10
10
  };
11
- //#endregion
12
11
  export { AdminRole as t };
13
12
 
14
- //# sourceMappingURL=adminRoles-B40yBcmq.js.map
13
+ //# sourceMappingURL=adminRoles-asa-MhDD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminRoles-B40yBcmq.js","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
1
+ {"version":3,"file":"adminRoles-asa-MhDD.js","names":[],"sources":["../src/constants/adminRoles.ts"],"sourcesContent":["import type { paths } from '../clients/storage/__generated__/schema';\nimport type { OpenapiReturnType } from '../fetchClient';\n\ntype SpecAdminRole = NonNullable<\n NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']\n>;\n\nexport const AdminRole = {\n Admin: 'admin',\n Share: 'share',\n ProductionManager: 'productionManager',\n Developer: 'developer',\n Reviewer: 'reviewer',\n ReadOnly: 'readOnly',\n Guest: 'guest',\n} as const satisfies Record<string, SpecAdminRole>;\n\nexport type AdminRole = SpecAdminRole;\n"],"mappings":";AAOA,MAAa,YAAY;CACvB,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV,UAAU;CACV,OAAO;AACT"}
package/dist/ai/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-DHYo_k3t.cjs");
3
- const require_auth = require("../auth-C8Pjl0Mu.cjs");
4
- //#region src/clients/ai/aiClient.ts
2
+ const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-DL9w7vU-.cjs");
3
+ const require_auth = require("../auth-CvB4MukT.cjs");
4
+ // src/clients/ai/aiClient.ts
5
5
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
6
6
  const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
7
7
  baseUrl,
@@ -53,7 +53,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
53
53
  getComponentDetail
54
54
  };
55
55
  };
56
- //#endregion
57
56
  exports.createAiClient = createAiClient;
58
57
 
59
58
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-DV7K07oX.cjs";
2
- import { n as ClientInitOptions } from "../types-O6XM48J8.cjs";
3
- //#region src/clients/ai/aiClient.d.ts
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-BE8abIig.cjs";
2
+ import { n as ClientInitOptions } from "../types-Dryq2GGE.cjs";
4
3
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
4
  healthCheck: (signal?: AbortSignal) => Promise<{
6
5
  status: 'ok';
@@ -49,6 +48,5 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
49
48
  synchronousActions?: string[] | null;
50
49
  }>;
51
50
  };
52
- //#endregion
53
51
  export { createAiClient };
54
52
  //# sourceMappingURL=index.d.cts.map
@@ -1,6 +1,5 @@
1
- import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-BOT6TgOS.js";
2
- import { n as ClientInitOptions } from "../types-CeqZuOEC.js";
3
- //#region src/clients/ai/aiClient.d.ts
1
+ import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-inG9y3dP.js";
2
+ import { n as ClientInitOptions } from "../types-DUpVIuk7.js";
4
3
  declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
5
4
  healthCheck: (signal?: AbortSignal) => Promise<{
6
5
  status: 'ok';
@@ -49,6 +48,5 @@ declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions
49
48
  synchronousActions?: string[] | null;
50
49
  }>;
51
50
  };
52
- //#endregion
53
51
  export { createAiClient };
54
52
  //# sourceMappingURL=index.d.ts.map
package/dist/ai/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-DXiMv9WL.js";
2
- import { t as createAuthHeaders } from "../auth-4coY1uwo.js";
3
- //#region src/clients/ai/aiClient.ts
1
+ import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-Bhz62MUE.js";
2
+ import { t as createAuthHeaders } from "../auth-DYfQMQCs.js";
3
+ // src/clients/ai/aiClient.ts
4
4
  const createAiClient = ({ baseUrl, middlewares, auth }) => {
5
5
  const client = createOpenapiFetchClient({
6
6
  baseUrl,
@@ -52,7 +52,6 @@ const createAiClient = ({ baseUrl, middlewares, auth }) => {
52
52
  getComponentDetail
53
53
  };
54
54
  };
55
- //#endregion
56
55
  export { createAiClient };
57
56
 
58
57
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-DV7K07oX.cjs";
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-BE8abIig.cjs";
2
2
  export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,2 +1,2 @@
1
- import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-BOT6TgOS.js";
1
+ import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-inG9y3dP.js";
2
2
  export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
@@ -1,10 +1,8 @@
1
- import "./index-BPMr8PQJ.js";
2
- //#region src/domain/appLogs.d.ts
1
+ import "./index-D1mduJne.js";
3
2
  type LogEntry = {
4
3
  timestamp: string | null;
5
4
  message: string;
6
5
  };
7
6
  declare const parseLogLines: (raw: unknown) => LogEntry[];
8
- //#endregion
9
7
  export { parseLogLines as n, LogEntry as t };
10
- //# sourceMappingURL=appLogs-DI2Y4imY.d.ts.map
8
+ //# sourceMappingURL=appLogs-CTvZAihm.d.ts.map
@@ -1,10 +1,8 @@
1
- import "./index-CL4iKFic.cjs";
2
- //#region src/domain/appLogs.d.ts
1
+ import "./index-D1mduJne.cjs";
3
2
  type LogEntry = {
4
3
  timestamp: string | null;
5
4
  message: string;
6
5
  };
7
6
  declare const parseLogLines: (raw: unknown) => LogEntry[];
8
- //#endregion
9
7
  export { parseLogLines as n, LogEntry as t };
10
- //# sourceMappingURL=appLogs-IhRA3xyv.d.cts.map
8
+ //# sourceMappingURL=appLogs-CnLNMH7M.d.cts.map
@@ -1,13 +1,13 @@
1
- const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
2
- const require_isPlainObject = require("./isPlainObject-BB3iy87C.cjs");
3
- const require_createFetchClient = require("./createFetchClient-lZ_93Yrb.cjs");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-CmQyd0Gu.cjs");
2
+ const require_createFetchClient = require("./createFetchClient-DEkUH662.cjs");
3
+ const require_isPlainObject = require("./isPlainObject-CcvQt0qB.cjs");
4
4
  let zod = require("zod");
5
5
  zod = require_rolldown_runtime.__toESM(zod, 1);
6
6
  let dayjs = require("dayjs");
7
7
  dayjs = require_rolldown_runtime.__toESM(dayjs, 1);
8
8
  let dayjs_plugin_utc_js = require("dayjs/plugin/utc.js");
9
9
  dayjs_plugin_utc_js = require_rolldown_runtime.__toESM(dayjs_plugin_utc_js, 1);
10
- //#region src/domain/appLogs.ts
10
+ // src/domain/appLogs.ts
11
11
  /**
12
12
  * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —
13
13
  * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the
@@ -130,7 +130,6 @@ const readAppLogsDownload = async (fetchLogs) => {
130
130
  fileName: require_createFetchClient.parseContentDispositionHeader(response.headers.get(require_createFetchClient.HttpHeader.CONTENT_DISPOSITION)).filename ?? DEFAULT_LOGS_FILE_NAME
131
131
  };
132
132
  };
133
- //#endregion
134
133
  Object.defineProperty(exports, "parseLogLines", {
135
134
  enumerable: true,
136
135
  get: function() {
@@ -150,4 +149,4 @@ Object.defineProperty(exports, "readAppLogsTail", {
150
149
  }
151
150
  });
152
151
 
153
- //# sourceMappingURL=appLogs-Cix2KWra.cjs.map
152
+ //# sourceMappingURL=appLogs-CoAWQGxs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLogs-Cix2KWra.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"appLogs-CoAWQGxs.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { t as isPlainObject } from "./isPlainObject-LYW-03uB.js";
2
- import { f as parseContentDispositionHeader, g as HttpStatus, r as isApiError, s as HttpHeader } from "./createFetchClient-CkHdS_IG.js";
1
+ import { f as parseContentDispositionHeader, g as HttpStatus, r as isApiError, s as HttpHeader } from "./createFetchClient-DlGCbltR.js";
2
+ import { t as isPlainObject } from "./isPlainObject-BxsT8_t2.js";
3
3
  import * as z$1 from "zod";
4
4
  import dayjs from "dayjs";
5
5
  import utc from "dayjs/plugin/utc.js";
6
- //#region src/domain/appLogs.ts
6
+ // src/domain/appLogs.ts
7
7
  /**
8
8
  * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —
9
9
  * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the
@@ -126,7 +126,6 @@ const readAppLogsDownload = async (fetchLogs) => {
126
126
  fileName: parseContentDispositionHeader(response.headers.get(HttpHeader.CONTENT_DISPOSITION)).filename ?? DEFAULT_LOGS_FILE_NAME
127
127
  };
128
128
  };
129
- //#endregion
130
129
  export { readAppLogsDownload as n, readAppLogsTail as r, parseLogLines as t };
131
130
 
132
- //# sourceMappingURL=appLogs-KslK7qHr.js.map
131
+ //# sourceMappingURL=appLogs-DFcPwVk8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appLogs-KslK7qHr.js","names":["z","record"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"appLogs-DFcPwVk8.js","names":["z","record"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-DHYo_k3t.cjs");
3
- const require_auth = require("../auth-C8Pjl0Mu.cjs");
4
- const require_appLogs = require("../appLogs-Cix2KWra.cjs");
5
- //#region src/clients/apps/appsClient.ts
2
+ const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-DL9w7vU-.cjs");
3
+ const require_auth = require("../auth-CvB4MukT.cjs");
4
+ const require_appLogs = require("../appLogs-CoAWQGxs.cjs");
5
+ // src/clients/apps/appsClient.ts
6
6
  /**
7
7
  * `/v2` App Deployments — data apps and their immutable deployment history.
8
8
  *
@@ -151,6 +151,28 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
151
151
  const { data } = await client.get("/apps/{appId}/git-repo", { path: { appId } }, { signal });
152
152
  return data;
153
153
  };
154
+ /**
155
+ * The branches of the app's repository, read with the credentials in its saved configuration.
156
+ *
157
+ * - The request carries no credentials: changes to the Git settings count only once saved.
158
+ * - `409` when the app has no Git repository, or the saved credentials cannot read it.
159
+ */
160
+ const getAppGitRepoBranches = async (appId, signal) => {
161
+ const { data } = await client.get("/apps/{appId}/git-repo/branches", { path: { appId } }, { signal });
162
+ return data;
163
+ };
164
+ /**
165
+ * The Streamlit entrypoint candidates in the repository root, read like `getAppGitRepoBranches`.
166
+ *
167
+ * - `query.ref` omitted means the saved branch, then the repository default.
168
+ */
169
+ const getAppGitRepoEntrypoints = async (appId, query = {}, signal) => {
170
+ const { data } = await client.get("/apps/{appId}/git-repo/entrypoints", {
171
+ path: { appId },
172
+ query
173
+ }, { signal });
174
+ return data;
175
+ };
154
176
  /** Per app, not per deployment. */
155
177
  const getAppGitRepoCredentials = async (appId, signal) => {
156
178
  const { data } = await client.get("/apps/{appId}/git-repo/credentials", { path: { appId } }, { signal });
@@ -200,13 +222,14 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
200
222
  getDeploymentLogsTail,
201
223
  getDeploymentLogsDownload,
202
224
  getAppGitRepo,
225
+ getAppGitRepoBranches,
226
+ getAppGitRepoEntrypoints,
203
227
  getAppGitRepoCredentials,
204
228
  getAppGitRepoCredential,
205
229
  createAppGitRepoCredential,
206
230
  deleteAppGitRepoCredential
207
231
  };
208
232
  };
209
- //#endregion
210
233
  exports.createAppsClient = createAppsClient;
211
234
 
212
235
  //# sourceMappingURL=index.cjs.map