@keboola/api-client 49.0.0 → 51.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 (564) hide show
  1. package/AGENTS.md +109 -95
  2. package/API-SURFACE.md +13 -31
  3. package/CHANGELOG.md +54 -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 +22 -5
  54. package/dist/apps/index.d.ts +22 -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-BfAcp7O2.d.ts +10 -0
  219. package/dist/index-BsT_cBJd.d.ts +15117 -0
  220. package/dist/index-C1ndNdrN.d.cts +10 -0
  221. package/dist/{index-BiZR9BjN.d.ts → index-CbSh3KFw.d.cts} +4 -12
  222. package/dist/{index-BM_fXKq5.d.cts → index-ClIV2Lch.d.cts} +5 -7
  223. package/dist/{index-DReKz9Zt.d.ts → index-CuI8OI9E.d.ts} +4 -13
  224. package/dist/{index-BPMr8PQJ.d.ts → index-D1mduJne.d.cts} +2 -52
  225. package/dist/{index-CL4iKFic.d.cts → index-D1mduJne.d.ts} +1 -51
  226. package/dist/{index-DorowSay.d.ts → index-DIPMzH--.d.ts} +5 -9
  227. package/dist/{index-CbZQCDkD.d.cts → index-DQagqTVa.d.cts} +3 -7
  228. package/dist/{index-dgu6udMy.d.ts → index-DVBQgFg0.d.ts} +4 -6
  229. package/dist/{index-CrrHvDiX.d.cts → index-Day1Yr5s.d.ts} +8 -7
  230. package/dist/{index-Dkb8CynB.d.cts → index-Db266tLz.d.cts} +5 -9
  231. package/dist/{index-BVjhAkXW.d.cts → index-DgGpQsAT.d.cts} +4 -6
  232. package/dist/{index-PqJGDHHl.d.cts → index-DjSthn8d.d.ts} +4 -16
  233. package/dist/{index-DhZTIejy.d.ts → index-lTrNMlj6.d.ts} +3 -5
  234. package/dist/{index-DYNVbgm8.d.cts → index-m9-mN8Gg.d.ts} +4 -12
  235. package/dist/index-qJ2IjXIM.d.cts +15117 -0
  236. package/dist/{index-CtQl-Iqw.d.cts → index-xX8-Stoq.d.cts} +4 -13
  237. package/dist/{index-D6JMbJ9b.d.ts → index-xhzuWloV.d.cts} +8 -7
  238. package/dist/{index-DGKCTQkb.d.cts → index-z-2okomN.d.cts} +3 -5
  239. package/dist/index.cjs +433 -1055
  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 +429 -1052
  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-N2qbUFZm.cjs → kaiAgent-CDhg0MAw.cjs} +16 -7
  260. package/dist/kaiAgent-CDhg0MAw.cjs.map +1 -0
  261. package/dist/{kaiAgent-CYvrS8oZ.js → kaiAgent-CYU1Uda8.js} +16 -7
  262. package/dist/kaiAgent-CYU1Uda8.js.map +1 -0
  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-Duurgaqk.d.cts → types-B8k1DqlU.d.ts} +129 -10
  472. package/dist/{types-BOT6TgOS.d.ts → types-BE8abIig.d.cts} +2 -6
  473. package/dist/{types-BrpIEj_N.d.ts → types-BWMOK6eL.d.cts} +2 -6
  474. package/dist/{types-D53zBV25.d.ts → types-Bat0SIZA.d.cts} +16 -97
  475. package/dist/{types-Dy6EdWPG.d.ts → types-Bdl7EFMc.d.ts} +2 -6
  476. package/dist/{types-_zKX6JmD.d.ts → types-BiDdBXSm.d.ts} +2 -8
  477. package/dist/{types-dn6MHur3.d.cts → types-BrEVh0WE.d.cts} +253 -10
  478. package/dist/{types-BnmsuDfH.d.cts → types-BuclMPeY.d.cts} +2 -26
  479. package/dist/{types-302-NBaU.d.ts → types-C9okze_R.d.ts} +3 -7
  480. package/dist/{types-BT5e9TSQ.d.ts → types-CPWjRdnj.d.cts} +18 -38
  481. package/dist/{types-C614wC5h.d.cts → types-CRubbBcU.d.cts} +2 -6
  482. package/dist/{types-DlhNay1n.d.ts → types-CWcdaq-K.d.ts} +2 -6
  483. package/dist/{types-D9ZKJYZk.d.ts → types-CcGp6O3B.d.cts} +3 -7
  484. package/dist/{types-45O2dU2w.d.ts → types-Cr5lyI99.d.ts} +2 -6
  485. package/dist/{types-CY8X39qv.d.cts → types-CxEJ77m3.d.cts} +3 -7
  486. package/dist/{types-DmzSFOhK.d.cts → types-D-tJt0hQ.d.cts} +2 -6
  487. package/dist/{types-BjwbzqJd.d.ts → types-D6lre27s.d.ts} +2 -8
  488. package/dist/{types-0R9-osUJ.d.ts → types-DHMxPJZq.d.cts} +2 -6
  489. package/dist/{types-jN2KmMet.d.cts → types-DJzTVMu1.d.ts} +2 -6
  490. package/dist/{types-CfXqFz2e.d.ts → types-DKSUG2dZ.d.ts} +253 -10
  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-HmK8iKp5.d.cts → types-E8tzafsk.d.cts} +3 -7
  501. package/dist/{types-DpbrGDRf.d.cts → types-LconaX98.d.cts} +2 -6
  502. package/dist/{types-tdIo5FpR.d.ts → types-PZzNANiS.d.cts} +129 -10
  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 +5 -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/kaiAgent-CYvrS8oZ.js.map +0 -1
  553. package/dist/kaiAgent-N2qbUFZm.cjs.map +0 -1
  554. package/dist/management-B1o6RpKF.cjs.map +0 -1
  555. package/dist/management-C9w3DNhs.js.map +0 -1
  556. package/dist/middleware-CEP6uu_D.cjs.map +0 -1
  557. package/dist/middleware-GOfx8Apu.js.map +0 -1
  558. package/dist/storageTable-BNOR2FCh.cjs +0 -442
  559. package/dist/storageTable-BNOR2FCh.cjs.map +0 -1
  560. package/dist/storageTable-BldTNyEk.js +0 -395
  561. package/dist/storageTable-BldTNyEk.js.map +0 -1
  562. package/dist/syncActions-C1rE4R3f.cjs.map +0 -1
  563. package/dist/syncActions-DM8vP7p3.js.map +0 -1
  564. package/surface/context.md +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"semanticLayer-DvjS_nzo.js","names":[],"sources":["../src/sdks/semanticLayer/errorMessage.ts","../src/sdks/semanticLayer/vocabulary.ts","../src/sdks/semanticLayer/schemas.ts","../src/sdks/semanticLayer/readSchemas.ts","../src/sdks/semanticLayer/semanticLayerSdk.ts"],"sourcesContent":["/**\n * The message out of a metastore error body.\n *\n * - Only `errors[].message` says what is wrong; the top-level message is just \"Validation failed\".\n * - Any other shape returns `undefined`, so the caller keeps its own fallback.\n * - Only the first error: the metastore reports fields one at a time.\n */\nexport const metastoreErrorMessage = (data: unknown): string | undefined => {\n if (typeof data !== 'object' || data === null) return undefined;\n const errors = (data as { errors?: unknown }).errors;\n if (!Array.isArray(errors)) return undefined;\n const first = errors[0];\n if (typeof first !== 'object' || first === null) return undefined;\n const message = (first as { message?: unknown }).message;\n return typeof message === 'string' && message ? message : undefined;\n};\n","/**\n * The closed value sets the metastore accepts on a semantic object.\n *\n * - The single runtime source for the unions `./types` derives from these arrays.\n * - Imports nothing: `./types` reads it, never the reverse.\n */\n\n/**\n * The dialects the metastore accepts, case-sensitive.\n *\n * - `SemanticModelData.sql_dialect` stays `string` (narrowing is a major bump); validate against this.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const;\n\n/** Dataset field roles; enumerated, unlike a field's free-form `type`. */\nexport const FIELD_ROLES = ['key', 'dimension', 'measure', 'timestamp'] as const;\n\n/** Constraint severities; unset is stored as `warning`. */\nexport const CONSTRAINT_SEVERITIES = ['error', 'warning', 'info'] as const;\n\n/** Constraint scopes; unset is stored as `global`. */\nexport const CONSTRAINT_SCOPES = ['global', 'per_location', 'per_date', 'per_category'] as const;\n\nexport const RULE_OPERATORS = [\n '<',\n '<=',\n '=',\n '>=',\n '>',\n '!=',\n 'between',\n 'in',\n 'sum_equals',\n 'ratio_between',\n] as const;\n\nexport const RELATIONSHIP_JOIN_TYPES = ['left', 'inner'] as const;\n\n/** Who can read an object, narrowest first; an envelope `meta` field, not part of `data`. */\nexport const SEMANTIC_OBJECT_SCOPES = ['project', 'targeted', 'organization'] as const;\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './vocabulary';\n\n/**\n * Write validators for untrusted input; the metastore's own validation errors are opaque.\n *\n * - Only required fields are declared; `looseObject` passes the rest through (the metastore owns the full schema).\n * - The SDK does not parse its own writes.\n * - `modelUUID` is omitted: the SDK injects it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n","import { z } from 'zod';\n\nimport { formatValidationIssues } from '../../errors';\n\nimport type {\n SemanticAiMetadata,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintData,\n SemanticDatasetData,\n SemanticFieldData,\n SemanticGlossaryData,\n SemanticMetricData,\n SemanticModelData,\n SemanticObjectMeta,\n SemanticRelationshipData,\n SemanticRuleExpression,\n SemanticValidationQuery,\n} from './types';\nimport {\n CONSTRAINT_SCOPES,\n CONSTRAINT_SEVERITIES,\n CONSTRAINT_TYPES,\n FIELD_ROLES,\n RELATIONSHIP_JOIN_TYPES,\n RULE_OPERATORS,\n SEMANTIC_OBJECT_SCOPES,\n} from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back, per object type.\n *\n * - Each schema is annotated with its `./types` type, so the two cannot drift apart.\n * - `looseObject`: fields the metastore adds still reach callers.\n * - An unknown value in an optional enum reads as absent; in a required enum it drops the object.\n */\n\nconst aiMetadataSchema: z.ZodType<SemanticAiMetadata, unknown> = z.looseObject({\n synonyms: z.array(z.string()).optional(),\n keywords: z.array(z.string()).optional(),\n antiKeywords: z.array(z.string()).optional(),\n hints: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nconst fieldSchema: z.ZodType<SemanticFieldData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n role: z.enum(FIELD_ROLES).optional().catch(undefined),\n values: z.array(z.string()).optional(),\n ai: aiMetadataSchema.optional(),\n});\n\n/**\n * A dataset's `fields`, where a malformed column is dropped rather than the whole dataset.\n *\n * - `schemas.ts` does not validate `fields` on write, so a nameless column can be stored.\n */\nconst datasetFieldsSchema = z.array(z.unknown()).transform((items) =>\n items.flatMap((element, index) => {\n const result = fieldSchema.safeParse(element);\n if (result.success) return [result.data];\n\n console.warn(\n `semanticLayerSdk: dropped field #${index} from a semantic-dataset, it does not match ` +\n `its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n return [];\n }),\n);\n\nconst ruleExpressionSchema: z.ZodType<SemanticRuleExpression, unknown> = z.looseObject({\n operator: z.enum(RULE_OPERATORS).optional().catch(undefined),\n left: z.string().optional(),\n right: z.string().optional(),\n bounds: z\n .looseObject({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n});\n\nconst validationQuerySchema: z.ZodType<SemanticValidationQuery, unknown> = z.looseObject({\n default: z.string().optional(),\n snowflake: z.string().optional(),\n bigquery: z.string().optional(),\n});\n\nexport const semanticModelReadSchema: z.ZodType<SemanticModelData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n sql_dialect: z.string(),\n});\n\nconst semanticDatasetReadSchema: z.ZodType<SemanticDatasetData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n tableId: z.string(),\n fqn: z.string(),\n description: z.string().optional(),\n grain: z.string().optional(),\n primaryKey: z.array(z.string()).optional(),\n fields: datasetFieldsSchema.optional(),\n ai: aiMetadataSchema.optional(),\n});\n\nconst semanticMetricReadSchema: z.ZodType<SemanticMetricData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n sql: z.string(),\n dataset: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst semanticRelationshipReadSchema: z.ZodType<SemanticRelationshipData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string().optional(),\n from: z.string(),\n to: z.string(),\n on: z.string(),\n type: z.enum(RELATIONSHIP_JOIN_TYPES).optional().catch(undefined),\n});\n\nconst semanticGlossaryReadSchema: z.ZodType<SemanticGlossaryData, unknown> = z.looseObject({\n modelUUID: z.string(),\n term: z.string(),\n definition: z.string(),\n seeAlso: z.array(z.string()).optional(),\n});\n\nconst semanticConstraintReadSchema: z.ZodType<SemanticConstraintData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n datasets: z.array(z.string()).optional(),\n rule: z.string(),\n ruleExpression: ruleExpressionSchema.optional(),\n validationQuery: validationQuerySchema.optional(),\n severity: z.enum(CONSTRAINT_SEVERITIES).optional().catch(undefined),\n errorMessage: z.string().optional(),\n remediation: z.string().optional(),\n isActive: z.boolean().optional(),\n scope: z.enum(CONSTRAINT_SCOPES).optional().catch(undefined),\n owner: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/** Keyed by object type so a read can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_READ_SCHEMAS: {\n [T in SemanticChildObjectType]: z.ZodType<SemanticChildObjectDataMap[T], unknown>;\n} = {\n 'semantic-dataset': semanticDatasetReadSchema,\n 'semantic-metric': semanticMetricReadSchema,\n 'semantic-relationship': semanticRelationshipReadSchema,\n 'semantic-glossary': semanticGlossaryReadSchema,\n 'semantic-constraint': semanticConstraintReadSchema,\n};\n\nconst semanticObjectMetaSchema: z.ZodType<SemanticObjectMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().nullable().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n scope: z.enum(SEMANTIC_OBJECT_SCOPES).optional().catch(undefined),\n // `.catch`: a malformed value, `null` included, reads as unset rather than dropping the object.\n sourceProjectId: z.number().optional().catch(undefined),\n targetProjectIds: z.array(z.number()).optional().catch(undefined),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `SemanticObject` the SDK returns.\n *\n * - A missing or `null` `meta` normalizes rather than drops the object; no caller needs its fields.\n */\nexport const semanticObjectReadSchema = <TData>(dataSchema: z.ZodType<TData, unknown>) =>\n z\n .object({\n id: z.string(),\n attributes: dataSchema,\n meta: semanticObjectMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { concurrent, generateUUID } from '../../utils';\n\nimport {\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS,\n semanticModelReadSchema,\n semanticObjectReadSchema,\n} from './readSchemas';\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n SemanticUnreadableObjectRef,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `listModelChildren` when some child could not be parsed; fails closed.\n *\n * - An `unreadable` entry with `modelUUID: null` counts against every model.\n */\nexport class SemanticLayerUnreadableChildrenError extends Error {\n readonly modelUUID: string;\n readonly unreadable: SemanticUnreadableObjectRef[];\n\n constructor({\n modelUUID,\n unreadable,\n }: {\n modelUUID: string;\n unreadable: SemanticUnreadableObjectRef[];\n }) {\n super(\n `${unreadable.length} child object(s) of the model could not be read, so what it holds ` +\n `is unknown and nothing was deleted.`,\n );\n this.name = 'SemanticLayerUnreadableChildrenError';\n this.modelUUID = modelUUID;\n this.unreadable = unreadable;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/** `readonly`: it drives what a model delete confirmation lists. */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; writes are concurrent single POSTs.\nconst WRITE_CONCURRENCY = 5;\n\n/**\n * The live metastore envelope; the types in clients/metastore/repository/types.ts do not match it.\n *\n * - Reads parse it (`./readSchemas`); writes assert it, as the metastore echoes a validated object.\n */\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\n/** The raw `id` of an envelope that failed to parse; `null` means unaddressable. */\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/** The raw `modelUUID` of a dropped envelope; `null` is treated as \"could be any model's\". */\nconst envelopeModelUUID = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { attributes } = value as { attributes?: unknown };\n if (typeof attributes !== 'object' || attributes === null) return null;\n const { modelUUID } = attributes as { modelUUID?: unknown };\n return typeof modelUUID === 'string' && modelUUID !== '' ? modelUUID : null;\n};\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The UI label: `displayName ?? name`, matching kbc-ui's constraint tables.\n *\n * - Not used for lookup: `displayName` is not unique.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\n/**\n * The value sibling objects reference a child by.\n *\n * - A metric's `dataset` and a relationship's `from`/`to` hold a dataset's `tableId`.\n * - A constraint's `metrics[]` holds metric `name`s, never their `displayName`.\n */\nconst deriveReferenceKey = (\n objectType: SemanticChildObjectType,\n data: Record<string, unknown>,\n): string | undefined => {\n const key =\n objectType === SEMANTIC_OBJECT_TYPE.DATASET\n ? data.tableId\n : objectType === SEMANTIC_OBJECT_TYPE.METRIC\n ? data.name\n : undefined;\n return typeof key === 'string' && key !== '' ? key : undefined;\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n /**\n * Every object of one type, parsed rather than asserted.\n *\n * - A malformed element is dropped, logged and reported in `unreadable`; the rest still list.\n * - A response that is not a collection throws rather than reading as empty.\n */\n const _listObjects = async <TData>(\n objectType: SemanticObjectType,\n dataSchema: z.ZodType<TData, unknown>,\n signal?: AbortSignal,\n options: { modelUUID?: string; pendingElevationOnly?: boolean } = {},\n ): Promise<{ objects: SemanticObject<TData>[]; unreadable: SemanticUnreadableObjectRef[] }> => {\n const response = await metastoreClient.repository.getMetaObjects(\n { objectType, ...options },\n signal,\n );\n const items = parseOrThrow(z.array(z.unknown()), response.data);\n const schema = semanticObjectReadSchema(dataSchema);\n\n const objects: SemanticObject<TData>[] = [];\n const unreadable: SemanticUnreadableObjectRef[] = [];\n\n for (const item of items) {\n const result = schema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n unreadable.push({\n objectType,\n objectUUID: envelopeId(item),\n modelUUID: envelopeModelUUID(item),\n });\n\n // Never log the payload: it is customer data.\n console.warn(\n `semanticLayerSdk: dropped ${objectType} \"${envelopeId(item) ?? '<no id>'}\" from the ` +\n `metastore response, it does not match its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadable };\n };\n\n const listModels = async (signal?: AbortSignal) =>\n (await _listObjects(SEMANTIC_OBJECT_TYPE.MODEL, semanticModelReadSchema, signal)).objects;\n\n /**\n * One model by UUID, with the envelope `meta` that carries its `scope`.\n *\n * - A model that does not parse throws a `ValidationError` rather than reading as missing.\n */\n const getModel = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticObject<SemanticModelData>> => {\n const response = await metastoreClient.repository.getMetaObject(\n { objectType: SEMANTIC_OBJECT_TYPE.MODEL, UUID: modelUUID },\n signal,\n );\n return parseOrThrow(semanticObjectReadSchema(semanticModelReadSchema), response.data);\n };\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n /**\n * One child collection scoped to a model.\n *\n * - `unreadable` includes objects whose envelope names this model or no model.\n */\n const _listChildObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n // Server-side filter (every child object schema declares modelUUID x-filterable: true)\n // instead of fetching the type's whole list and filtering client-side.\n const { objects, unreadable } = await _listObjects(\n objectType,\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS[objectType],\n signal,\n { modelUUID },\n );\n\n // An unreadable item still needs this client-side check: the server filters by modelUUID on\n // the parsed field it trusts, but a malformed item that failed to parse is exactly the case\n // that field can't be trusted for — so an item naming another model still gets excluded here.\n return {\n objects,\n unreadable: unreadable.filter((ref) => ref.modelUUID === null || ref.modelUUID === modelUUID),\n };\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => (await _listChildObjects(objectType, modelUUID, signal)).objects;\n\n /**\n * A model's child objects by name (`term` for glossary).\n *\n * - Returns every match: names are not unique, the caller decides.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n /**\n * Creates a model, then every child concurrently, one request each.\n *\n * - Rejects on the first failed child and leaves the objects already written in place.\n * @deprecated Use `createModel`, then `createObject` or `createObjects`. Removed in the next major.\n */\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, flattened; `name` is the display label.\n *\n * - Delete confirmations use this to say what a model delete would destroy.\n * - Costs five list requests, one per child type, each server-side filtered to this model.\n * - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would\n * under-report what a delete destroys.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const perType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const { objects, unreadable } = await _listChildObjects(objectType, modelUUID, signal);\n return {\n children: objects.map((object) => {\n const referenceKey = deriveReferenceKey(objectType, object.data);\n return {\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n ...(referenceKey === undefined ? {} : { referenceKey }),\n };\n }),\n unreadable,\n };\n }),\n );\n\n const unreadable = perType.flatMap((result) => result.unreadable);\n if (unreadable.length > 0) {\n throw new SemanticLayerUnreadableChildrenError({ modelUUID, unreadable });\n }\n\n return perType.flatMap((result) => result.children);\n };\n\n /**\n * Deletes a model; the metastore deletes all its child objects in the same transaction.\n *\n * - `409`: another object holds a `restrict` reference to the model; nothing was deleted.\n * - `404`: no such model, or it was already deleted.\n */\n const deleteModel = async (modelUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the projects granted read access to a `targeted`-scope object.\n *\n * - An empty array clears every grant.\n * - Read-only is enforced metastore-side.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, keeping its UUID and history.\n *\n * - Requires the organization-admin role for the target org; callers should surface the\n * metastore's 403 rather than pre-empt it.\n * - `dropSourceProject` opts out of recording the pre-promotion `projectId` as\n * `sourceProjectId`; omitted (the default), the source project is preserved.\n */\n const promoteToOrganizationScope = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n options: { dropSourceProject?: boolean } = {},\n ) => {\n // Scope ONLY (plus the optional drop flag). No `data`, not even `{}`: the metastore's\n // step-up guard rejects a PATCH that also carries name or data, and `Data *JSONData` treats\n // `{}` as present — which 400s with \"A scope change cannot be combined with name or data\n // changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n ...(options.dropSourceProject !== undefined\n ? { dropSourceProject: options.dropSourceProject }\n : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n /**\n * Flag a `project`-scope object as awaiting an organization admin's decision to promote it.\n * Only the owning project may call this; idempotent — requesting again just refreshes the\n * timestamp rather than erroring.\n */\n const requestScopeElevation = async (objectType: SemanticObjectType, objectUUID: string) => {\n await metastoreClient.repository.requestScopeElevation({ objectType, UUID: objectUUID });\n };\n\n /**\n * Clear a pending scope-elevation request, whether withdrawn by the owner or declined by an\n * organization admin. Idempotent — clearing an object with no pending request is a no-op.\n */\n const withdrawScopeElevationRequest = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n ) => {\n await metastoreClient.repository.withdrawScopeElevationRequest({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every object of `objectType`, across every project in the organization, currently awaiting an\n * org-admin's elevation decision. Backs the org-admin pending-elevation banner.\n */\n const listPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getPendingScopeElevationRequests<\n Record<string, unknown>\n >({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n /**\n * The current project's own objects with a pending scope-elevation request — for the\n * requester, as opposed to `listPendingScopeElevationRequests`, which is the org-admin's\n * org-wide approval queue. Uses the regular (per-project) list endpoint, not `/organization`:\n * only project-scope objects can have a pending request, and only their owner can set one, so\n * filtering the objects this project can already see is sufficient — no org-wide access needed.\n */\n const listMyPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<Record<string, unknown>>(\n { objectType, pendingElevationOnly: true },\n signal,\n );\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n return {\n // models\n listModels,\n getModel,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n requestScopeElevation,\n withdrawScopeElevationRequest,\n listPendingScopeElevationRequests,\n listMyPendingScopeElevationRequests,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"semanticLayer-BdPW_wLo.js","names":[],"sources":["../src/sdks/semanticLayer/errorMessage.ts","../src/sdks/semanticLayer/vocabulary.ts","../src/sdks/semanticLayer/schemas.ts","../src/sdks/semanticLayer/readSchemas.ts","../src/sdks/semanticLayer/semanticLayerSdk.ts"],"sourcesContent":["/**\n * The message out of a metastore error body.\n *\n * - Only `errors[].message` says what is wrong; the top-level message is just \"Validation failed\".\n * - Any other shape returns `undefined`, so the caller keeps its own fallback.\n * - Only the first error: the metastore reports fields one at a time.\n */\nexport const metastoreErrorMessage = (data: unknown): string | undefined => {\n if (typeof data !== 'object' || data === null) return undefined;\n const errors = (data as { errors?: unknown }).errors;\n if (!Array.isArray(errors)) return undefined;\n const first = errors[0];\n if (typeof first !== 'object' || first === null) return undefined;\n const message = (first as { message?: unknown }).message;\n return typeof message === 'string' && message ? message : undefined;\n};\n","/**\n * The closed value sets the metastore accepts on a semantic object.\n *\n * - The single runtime source for the unions `./types` derives from these arrays.\n * - Imports nothing: `./types` reads it, never the reverse.\n */\n\n/**\n * The dialects the metastore accepts, case-sensitive.\n *\n * - `SemanticModelData.sql_dialect` stays `string` (narrowing is a major bump); validate against this.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const;\n\n/** Dataset field roles; enumerated, unlike a field's free-form `type`. */\nexport const FIELD_ROLES = ['key', 'dimension', 'measure', 'timestamp'] as const;\n\n/** Constraint severities; unset is stored as `warning`. */\nexport const CONSTRAINT_SEVERITIES = ['error', 'warning', 'info'] as const;\n\n/** Constraint scopes; unset is stored as `global`. */\nexport const CONSTRAINT_SCOPES = ['global', 'per_location', 'per_date', 'per_category'] as const;\n\nexport const RULE_OPERATORS = [\n '<',\n '<=',\n '=',\n '>=',\n '>',\n '!=',\n 'between',\n 'in',\n 'sum_equals',\n 'ratio_between',\n] as const;\n\nexport const RELATIONSHIP_JOIN_TYPES = ['left', 'inner'] as const;\n\n/** Who can read an object, narrowest first; an envelope `meta` field, not part of `data`. */\nexport const SEMANTIC_OBJECT_SCOPES = ['project', 'targeted', 'organization'] as const;\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './vocabulary';\n\n/**\n * Write validators for untrusted input; the metastore's own validation errors are opaque.\n *\n * - Only required fields are declared; `looseObject` passes the rest through (the metastore owns the full schema).\n * - The SDK does not parse its own writes.\n * - `modelUUID` is omitted: the SDK injects it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n","import { z } from 'zod';\n\nimport { formatValidationIssues } from '../../errors';\n\nimport type {\n SemanticAiMetadata,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintData,\n SemanticDatasetData,\n SemanticFieldData,\n SemanticGlossaryData,\n SemanticMetricData,\n SemanticModelData,\n SemanticObjectMeta,\n SemanticRelationshipData,\n SemanticRuleExpression,\n SemanticValidationQuery,\n} from './types';\nimport {\n CONSTRAINT_SCOPES,\n CONSTRAINT_SEVERITIES,\n CONSTRAINT_TYPES,\n FIELD_ROLES,\n RELATIONSHIP_JOIN_TYPES,\n RULE_OPERATORS,\n SEMANTIC_OBJECT_SCOPES,\n} from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back, per object type.\n *\n * - Each schema is annotated with its `./types` type, so the two cannot drift apart.\n * - `looseObject`: fields the metastore adds still reach callers.\n * - An unknown value in an optional enum reads as absent; in a required enum it drops the object.\n */\n\nconst aiMetadataSchema: z.ZodType<SemanticAiMetadata, unknown> = z.looseObject({\n synonyms: z.array(z.string()).optional(),\n keywords: z.array(z.string()).optional(),\n antiKeywords: z.array(z.string()).optional(),\n hints: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nconst fieldSchema: z.ZodType<SemanticFieldData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n role: z.enum(FIELD_ROLES).optional().catch(undefined),\n values: z.array(z.string()).optional(),\n ai: aiMetadataSchema.optional(),\n});\n\n/**\n * A dataset's `fields`, where a malformed column is dropped rather than the whole dataset.\n *\n * - `schemas.ts` does not validate `fields` on write, so a nameless column can be stored.\n */\nconst datasetFieldsSchema = z.array(z.unknown()).transform((items) =>\n items.flatMap((element, index) => {\n const result = fieldSchema.safeParse(element);\n if (result.success) return [result.data];\n\n console.warn(\n `semanticLayerSdk: dropped field #${index} from a semantic-dataset, it does not match ` +\n `its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n return [];\n }),\n);\n\nconst ruleExpressionSchema: z.ZodType<SemanticRuleExpression, unknown> = z.looseObject({\n operator: z.enum(RULE_OPERATORS).optional().catch(undefined),\n left: z.string().optional(),\n right: z.string().optional(),\n bounds: z\n .looseObject({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n});\n\nconst validationQuerySchema: z.ZodType<SemanticValidationQuery, unknown> = z.looseObject({\n default: z.string().optional(),\n snowflake: z.string().optional(),\n bigquery: z.string().optional(),\n});\n\nexport const semanticModelReadSchema: z.ZodType<SemanticModelData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n sql_dialect: z.string(),\n});\n\nconst semanticDatasetReadSchema: z.ZodType<SemanticDatasetData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n tableId: z.string(),\n fqn: z.string(),\n description: z.string().optional(),\n grain: z.string().optional(),\n primaryKey: z.array(z.string()).optional(),\n fields: datasetFieldsSchema.optional(),\n ai: aiMetadataSchema.optional(),\n});\n\nconst semanticMetricReadSchema: z.ZodType<SemanticMetricData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n sql: z.string(),\n dataset: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst semanticRelationshipReadSchema: z.ZodType<SemanticRelationshipData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string().optional(),\n from: z.string(),\n to: z.string(),\n on: z.string(),\n type: z.enum(RELATIONSHIP_JOIN_TYPES).optional().catch(undefined),\n});\n\nconst semanticGlossaryReadSchema: z.ZodType<SemanticGlossaryData, unknown> = z.looseObject({\n modelUUID: z.string(),\n term: z.string(),\n definition: z.string(),\n seeAlso: z.array(z.string()).optional(),\n});\n\nconst semanticConstraintReadSchema: z.ZodType<SemanticConstraintData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n datasets: z.array(z.string()).optional(),\n rule: z.string(),\n ruleExpression: ruleExpressionSchema.optional(),\n validationQuery: validationQuerySchema.optional(),\n severity: z.enum(CONSTRAINT_SEVERITIES).optional().catch(undefined),\n errorMessage: z.string().optional(),\n remediation: z.string().optional(),\n isActive: z.boolean().optional(),\n scope: z.enum(CONSTRAINT_SCOPES).optional().catch(undefined),\n owner: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/** Keyed by object type so a read can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_READ_SCHEMAS: {\n [T in SemanticChildObjectType]: z.ZodType<SemanticChildObjectDataMap[T], unknown>;\n} = {\n 'semantic-dataset': semanticDatasetReadSchema,\n 'semantic-metric': semanticMetricReadSchema,\n 'semantic-relationship': semanticRelationshipReadSchema,\n 'semantic-glossary': semanticGlossaryReadSchema,\n 'semantic-constraint': semanticConstraintReadSchema,\n};\n\nconst semanticObjectMetaSchema: z.ZodType<SemanticObjectMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().nullable().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n scope: z.enum(SEMANTIC_OBJECT_SCOPES).optional().catch(undefined),\n // `.catch`: a malformed value, `null` included, reads as unset rather than dropping the object.\n sourceProjectId: z.number().optional().catch(undefined),\n targetProjectIds: z.array(z.number()).optional().catch(undefined),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `SemanticObject` the SDK returns.\n *\n * - A missing or `null` `meta` normalizes rather than drops the object; no caller needs its fields.\n */\nexport const semanticObjectReadSchema = <TData>(dataSchema: z.ZodType<TData, unknown>) =>\n z\n .object({\n id: z.string(),\n attributes: dataSchema,\n meta: semanticObjectMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { concurrent, generateUUID } from '../../utils';\n\nimport {\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS,\n semanticModelReadSchema,\n semanticObjectReadSchema,\n} from './readSchemas';\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n SemanticUnreadableObjectRef,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `listModelChildren` when some child could not be parsed; fails closed.\n *\n * - An `unreadable` entry with `modelUUID: null` counts against every model.\n */\nexport class SemanticLayerUnreadableChildrenError extends Error {\n readonly modelUUID: string;\n readonly unreadable: SemanticUnreadableObjectRef[];\n\n constructor({\n modelUUID,\n unreadable,\n }: {\n modelUUID: string;\n unreadable: SemanticUnreadableObjectRef[];\n }) {\n super(\n `${unreadable.length} child object(s) of the model could not be read, so what it holds ` +\n `is unknown and nothing was deleted.`,\n );\n this.name = 'SemanticLayerUnreadableChildrenError';\n this.modelUUID = modelUUID;\n this.unreadable = unreadable;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/** `readonly`: it drives what a model delete confirmation lists. */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; writes are concurrent single POSTs.\nconst WRITE_CONCURRENCY = 5;\n\n/**\n * The live metastore envelope; the types in clients/metastore/repository/types.ts do not match it.\n *\n * - Reads parse it (`./readSchemas`); writes assert it, as the metastore echoes a validated object.\n */\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\n/** The raw `id` of an envelope that failed to parse; `null` means unaddressable. */\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/** The raw `modelUUID` of a dropped envelope; `null` is treated as \"could be any model's\". */\nconst envelopeModelUUID = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { attributes } = value as { attributes?: unknown };\n if (typeof attributes !== 'object' || attributes === null) return null;\n const { modelUUID } = attributes as { modelUUID?: unknown };\n return typeof modelUUID === 'string' && modelUUID !== '' ? modelUUID : null;\n};\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The UI label: `displayName ?? name`, matching kbc-ui's constraint tables.\n *\n * - Not used for lookup: `displayName` is not unique.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\n/**\n * The value sibling objects reference a child by.\n *\n * - A metric's `dataset` and a relationship's `from`/`to` hold a dataset's `tableId`.\n * - A constraint's `metrics[]` holds metric `name`s, never their `displayName`.\n */\nconst deriveReferenceKey = (\n objectType: SemanticChildObjectType,\n data: Record<string, unknown>,\n): string | undefined => {\n const key =\n objectType === SEMANTIC_OBJECT_TYPE.DATASET\n ? data.tableId\n : objectType === SEMANTIC_OBJECT_TYPE.METRIC\n ? data.name\n : undefined;\n return typeof key === 'string' && key !== '' ? key : undefined;\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n /**\n * Every object of one type, parsed rather than asserted.\n *\n * - A malformed element is dropped, logged and reported in `unreadable`; the rest still list.\n * - A response that is not a collection throws rather than reading as empty.\n */\n const _listObjects = async <TData>(\n objectType: SemanticObjectType,\n dataSchema: z.ZodType<TData, unknown>,\n signal?: AbortSignal,\n options: { modelUUID?: string; pendingElevationOnly?: boolean } = {},\n ): Promise<{ objects: SemanticObject<TData>[]; unreadable: SemanticUnreadableObjectRef[] }> => {\n const response = await metastoreClient.repository.getMetaObjects(\n { objectType, ...options },\n signal,\n );\n const items = parseOrThrow(z.array(z.unknown()), response.data);\n const schema = semanticObjectReadSchema(dataSchema);\n\n const objects: SemanticObject<TData>[] = [];\n const unreadable: SemanticUnreadableObjectRef[] = [];\n\n for (const item of items) {\n const result = schema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n unreadable.push({\n objectType,\n objectUUID: envelopeId(item),\n modelUUID: envelopeModelUUID(item),\n });\n\n // Never log the payload: it is customer data.\n console.warn(\n `semanticLayerSdk: dropped ${objectType} \"${envelopeId(item) ?? '<no id>'}\" from the ` +\n `metastore response, it does not match its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadable };\n };\n\n const listModels = async (signal?: AbortSignal) =>\n (await _listObjects(SEMANTIC_OBJECT_TYPE.MODEL, semanticModelReadSchema, signal)).objects;\n\n /**\n * One model by UUID, with the envelope `meta` that carries its `scope`.\n *\n * - A model that does not parse throws a `ValidationError` rather than reading as missing.\n */\n const getModel = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticObject<SemanticModelData>> => {\n const response = await metastoreClient.repository.getMetaObject(\n { objectType: SEMANTIC_OBJECT_TYPE.MODEL, UUID: modelUUID },\n signal,\n );\n return parseOrThrow(semanticObjectReadSchema(semanticModelReadSchema), response.data);\n };\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n /**\n * One child collection scoped to a model.\n *\n * - `unreadable` includes objects whose envelope names this model or no model.\n */\n const _listChildObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n // Server-side filter (every child object schema declares modelUUID x-filterable: true)\n // instead of fetching the type's whole list and filtering client-side.\n const { objects, unreadable } = await _listObjects(\n objectType,\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS[objectType],\n signal,\n { modelUUID },\n );\n\n // An unreadable item still needs this client-side check: the server filters by modelUUID on\n // the parsed field it trusts, but a malformed item that failed to parse is exactly the case\n // that field can't be trusted for — so an item naming another model still gets excluded here.\n return {\n objects,\n unreadable: unreadable.filter((ref) => ref.modelUUID === null || ref.modelUUID === modelUUID),\n };\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => (await _listChildObjects(objectType, modelUUID, signal)).objects;\n\n /**\n * A model's child objects by name (`term` for glossary).\n *\n * - Returns every match: names are not unique, the caller decides.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n /**\n * Creates a model, then every child concurrently, one request each.\n *\n * - Rejects on the first failed child and leaves the objects already written in place.\n * @deprecated Use `createModel`, then `createObject` or `createObjects`. Removed in the next major.\n */\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, flattened; `name` is the display label.\n *\n * - Delete confirmations use this to say what a model delete would destroy.\n * - Costs five list requests, one per child type, each server-side filtered to this model.\n * - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would\n * under-report what a delete destroys.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const perType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const { objects, unreadable } = await _listChildObjects(objectType, modelUUID, signal);\n return {\n children: objects.map((object) => {\n const referenceKey = deriveReferenceKey(objectType, object.data);\n return {\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n ...(referenceKey === undefined ? {} : { referenceKey }),\n };\n }),\n unreadable,\n };\n }),\n );\n\n const unreadable = perType.flatMap((result) => result.unreadable);\n if (unreadable.length > 0) {\n throw new SemanticLayerUnreadableChildrenError({ modelUUID, unreadable });\n }\n\n return perType.flatMap((result) => result.children);\n };\n\n /**\n * Deletes a model; the metastore deletes all its child objects in the same transaction.\n *\n * - `409`: another object holds a `restrict` reference to the model; nothing was deleted.\n * - `404`: no such model, or it was already deleted.\n */\n const deleteModel = async (modelUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the projects granted read access to a `targeted`-scope object.\n *\n * - An empty array clears every grant.\n * - Read-only is enforced metastore-side.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, keeping its UUID and history.\n *\n * - Requires the organization-admin role for the target org; callers should surface the\n * metastore's 403 rather than pre-empt it.\n * - `dropSourceProject` opts out of recording the pre-promotion `projectId` as\n * `sourceProjectId`; omitted (the default), the source project is preserved.\n */\n const promoteToOrganizationScope = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n options: { dropSourceProject?: boolean } = {},\n ) => {\n // Scope ONLY (plus the optional drop flag). No `data`, not even `{}`: the metastore's\n // step-up guard rejects a PATCH that also carries name or data, and `Data *JSONData` treats\n // `{}` as present — which 400s with \"A scope change cannot be combined with name or data\n // changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n ...(options.dropSourceProject !== undefined\n ? { dropSourceProject: options.dropSourceProject }\n : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n /**\n * Flag a `project`-scope object as awaiting an organization admin's decision to promote it.\n * Only the owning project may call this; idempotent — requesting again just refreshes the\n * timestamp rather than erroring.\n */\n const requestScopeElevation = async (objectType: SemanticObjectType, objectUUID: string) => {\n await metastoreClient.repository.requestScopeElevation({ objectType, UUID: objectUUID });\n };\n\n /**\n * Clear a pending scope-elevation request, whether withdrawn by the owner or declined by an\n * organization admin. Idempotent — clearing an object with no pending request is a no-op.\n */\n const withdrawScopeElevationRequest = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n ) => {\n await metastoreClient.repository.withdrawScopeElevationRequest({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every object of `objectType`, across every project in the organization, currently awaiting an\n * org-admin's elevation decision. Backs the org-admin pending-elevation banner.\n */\n const listPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getPendingScopeElevationRequests<\n Record<string, unknown>\n >({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n /**\n * The current project's own objects with a pending scope-elevation request — for the\n * requester, as opposed to `listPendingScopeElevationRequests`, which is the org-admin's\n * org-wide approval queue. Uses the regular (per-project) list endpoint, not `/organization`:\n * only project-scope objects can have a pending request, and only their owner can set one, so\n * filtering the objects this project can already see is sufficient — no org-wide access needed.\n */\n const listMyPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<Record<string, unknown>>(\n { objectType, pendingElevationOnly: true },\n signal,\n );\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n return {\n // models\n listModels,\n getModel,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n requestScopeElevation,\n withdrawScopeElevationRequest,\n listPendingScopeElevationRequests,\n listMyPendingScopeElevationRequests,\n };\n};\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- const require_concurrent = require("./concurrent-CdVfR1N5.cjs");
2
- const require_generateUUID = require("./generateUUID-C6qKBPIv.cjs");
3
- const require_ValidationError = require("./ValidationError-D65QU0uq.cjs");
1
+ const require_ValidationError = require("./ValidationError-BXcFX4nD.cjs");
2
+ const require_concurrent = require("./concurrent-DnTV_ppY.cjs");
3
+ const require_generateUUID = require("./generateUUID-DbSTmvVP.cjs");
4
4
  let zod = require("zod");
5
- //#region src/sdks/semanticLayer/errorMessage.ts
5
+ // src/sdks/semanticLayer/errorMessage.ts
6
6
  /**
7
7
  * The message out of a metastore error body.
8
8
  *
@@ -19,8 +19,7 @@ const metastoreErrorMessage = (data) => {
19
19
  const message = first.message;
20
20
  return typeof message === "string" && message ? message : void 0;
21
21
  };
22
- //#endregion
23
- //#region src/sdks/semanticLayer/vocabulary.ts
22
+ // src/sdks/semanticLayer/vocabulary.ts
24
23
  /**
25
24
  * The closed value sets the metastore accepts on a semantic object.
26
25
  *
@@ -81,8 +80,7 @@ const SEMANTIC_OBJECT_SCOPES = [
81
80
  "targeted",
82
81
  "organization"
83
82
  ];
84
- //#endregion
85
- //#region src/sdks/semanticLayer/schemas.ts
83
+ // src/sdks/semanticLayer/schemas.ts
86
84
  /**
87
85
  * Write validators for untrusted input; the metastore's own validation errors are opaque.
88
86
  *
@@ -125,8 +123,7 @@ const SEMANTIC_CHILD_OBJECT_SCHEMAS = {
125
123
  "semantic-glossary": semanticGlossarySchema,
126
124
  "semantic-constraint": semanticConstraintSchema
127
125
  };
128
- //#endregion
129
- //#region src/sdks/semanticLayer/readSchemas.ts
126
+ // src/sdks/semanticLayer/readSchemas.ts
130
127
  /**
131
128
  * What a read of the metastore is allowed to hand back, per object type.
132
129
  *
@@ -261,8 +258,7 @@ const semanticObjectReadSchema = (dataSchema) => zod.z.object({
261
258
  data: attributes,
262
259
  meta: meta ?? {}
263
260
  }));
264
- //#endregion
265
- //#region src/sdks/semanticLayer/semanticLayerSdk.ts
261
+ // src/sdks/semanticLayer/semanticLayerSdk.ts
266
262
  /**
267
263
  * Thrown by `listModelChildren` when some child could not be parsed; fails closed.
268
264
  *
@@ -619,7 +615,6 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
619
615
  listMyPendingScopeElevationRequests
620
616
  };
621
617
  };
622
- //#endregion
623
618
  Object.defineProperty(exports, "CONSTRAINT_SCOPES", {
624
619
  enumerable: true,
625
620
  get: function() {
@@ -741,4 +736,4 @@ Object.defineProperty(exports, "semanticRelationshipSchema", {
741
736
  }
742
737
  });
743
738
 
744
- //# sourceMappingURL=semanticLayer-7BejcMj_.cjs.map
739
+ //# sourceMappingURL=semanticLayer-djom-J78.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"semanticLayer-7BejcMj_.cjs","names":["z","z","formatValidationIssues","generateUUID","parseOrThrow","z","formatValidationIssues","concurrent"],"sources":["../src/sdks/semanticLayer/errorMessage.ts","../src/sdks/semanticLayer/vocabulary.ts","../src/sdks/semanticLayer/schemas.ts","../src/sdks/semanticLayer/readSchemas.ts","../src/sdks/semanticLayer/semanticLayerSdk.ts"],"sourcesContent":["/**\n * The message out of a metastore error body.\n *\n * - Only `errors[].message` says what is wrong; the top-level message is just \"Validation failed\".\n * - Any other shape returns `undefined`, so the caller keeps its own fallback.\n * - Only the first error: the metastore reports fields one at a time.\n */\nexport const metastoreErrorMessage = (data: unknown): string | undefined => {\n if (typeof data !== 'object' || data === null) return undefined;\n const errors = (data as { errors?: unknown }).errors;\n if (!Array.isArray(errors)) return undefined;\n const first = errors[0];\n if (typeof first !== 'object' || first === null) return undefined;\n const message = (first as { message?: unknown }).message;\n return typeof message === 'string' && message ? message : undefined;\n};\n","/**\n * The closed value sets the metastore accepts on a semantic object.\n *\n * - The single runtime source for the unions `./types` derives from these arrays.\n * - Imports nothing: `./types` reads it, never the reverse.\n */\n\n/**\n * The dialects the metastore accepts, case-sensitive.\n *\n * - `SemanticModelData.sql_dialect` stays `string` (narrowing is a major bump); validate against this.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const;\n\n/** Dataset field roles; enumerated, unlike a field's free-form `type`. */\nexport const FIELD_ROLES = ['key', 'dimension', 'measure', 'timestamp'] as const;\n\n/** Constraint severities; unset is stored as `warning`. */\nexport const CONSTRAINT_SEVERITIES = ['error', 'warning', 'info'] as const;\n\n/** Constraint scopes; unset is stored as `global`. */\nexport const CONSTRAINT_SCOPES = ['global', 'per_location', 'per_date', 'per_category'] as const;\n\nexport const RULE_OPERATORS = [\n '<',\n '<=',\n '=',\n '>=',\n '>',\n '!=',\n 'between',\n 'in',\n 'sum_equals',\n 'ratio_between',\n] as const;\n\nexport const RELATIONSHIP_JOIN_TYPES = ['left', 'inner'] as const;\n\n/** Who can read an object, narrowest first; an envelope `meta` field, not part of `data`. */\nexport const SEMANTIC_OBJECT_SCOPES = ['project', 'targeted', 'organization'] as const;\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './vocabulary';\n\n/**\n * Write validators for untrusted input; the metastore's own validation errors are opaque.\n *\n * - Only required fields are declared; `looseObject` passes the rest through (the metastore owns the full schema).\n * - The SDK does not parse its own writes.\n * - `modelUUID` is omitted: the SDK injects it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n","import { z } from 'zod';\n\nimport { formatValidationIssues } from '../../errors';\n\nimport type {\n SemanticAiMetadata,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintData,\n SemanticDatasetData,\n SemanticFieldData,\n SemanticGlossaryData,\n SemanticMetricData,\n SemanticModelData,\n SemanticObjectMeta,\n SemanticRelationshipData,\n SemanticRuleExpression,\n SemanticValidationQuery,\n} from './types';\nimport {\n CONSTRAINT_SCOPES,\n CONSTRAINT_SEVERITIES,\n CONSTRAINT_TYPES,\n FIELD_ROLES,\n RELATIONSHIP_JOIN_TYPES,\n RULE_OPERATORS,\n SEMANTIC_OBJECT_SCOPES,\n} from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back, per object type.\n *\n * - Each schema is annotated with its `./types` type, so the two cannot drift apart.\n * - `looseObject`: fields the metastore adds still reach callers.\n * - An unknown value in an optional enum reads as absent; in a required enum it drops the object.\n */\n\nconst aiMetadataSchema: z.ZodType<SemanticAiMetadata, unknown> = z.looseObject({\n synonyms: z.array(z.string()).optional(),\n keywords: z.array(z.string()).optional(),\n antiKeywords: z.array(z.string()).optional(),\n hints: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nconst fieldSchema: z.ZodType<SemanticFieldData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n role: z.enum(FIELD_ROLES).optional().catch(undefined),\n values: z.array(z.string()).optional(),\n ai: aiMetadataSchema.optional(),\n});\n\n/**\n * A dataset's `fields`, where a malformed column is dropped rather than the whole dataset.\n *\n * - `schemas.ts` does not validate `fields` on write, so a nameless column can be stored.\n */\nconst datasetFieldsSchema = z.array(z.unknown()).transform((items) =>\n items.flatMap((element, index) => {\n const result = fieldSchema.safeParse(element);\n if (result.success) return [result.data];\n\n console.warn(\n `semanticLayerSdk: dropped field #${index} from a semantic-dataset, it does not match ` +\n `its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n return [];\n }),\n);\n\nconst ruleExpressionSchema: z.ZodType<SemanticRuleExpression, unknown> = z.looseObject({\n operator: z.enum(RULE_OPERATORS).optional().catch(undefined),\n left: z.string().optional(),\n right: z.string().optional(),\n bounds: z\n .looseObject({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n});\n\nconst validationQuerySchema: z.ZodType<SemanticValidationQuery, unknown> = z.looseObject({\n default: z.string().optional(),\n snowflake: z.string().optional(),\n bigquery: z.string().optional(),\n});\n\nexport const semanticModelReadSchema: z.ZodType<SemanticModelData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n sql_dialect: z.string(),\n});\n\nconst semanticDatasetReadSchema: z.ZodType<SemanticDatasetData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n tableId: z.string(),\n fqn: z.string(),\n description: z.string().optional(),\n grain: z.string().optional(),\n primaryKey: z.array(z.string()).optional(),\n fields: datasetFieldsSchema.optional(),\n ai: aiMetadataSchema.optional(),\n});\n\nconst semanticMetricReadSchema: z.ZodType<SemanticMetricData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n sql: z.string(),\n dataset: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst semanticRelationshipReadSchema: z.ZodType<SemanticRelationshipData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string().optional(),\n from: z.string(),\n to: z.string(),\n on: z.string(),\n type: z.enum(RELATIONSHIP_JOIN_TYPES).optional().catch(undefined),\n});\n\nconst semanticGlossaryReadSchema: z.ZodType<SemanticGlossaryData, unknown> = z.looseObject({\n modelUUID: z.string(),\n term: z.string(),\n definition: z.string(),\n seeAlso: z.array(z.string()).optional(),\n});\n\nconst semanticConstraintReadSchema: z.ZodType<SemanticConstraintData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n datasets: z.array(z.string()).optional(),\n rule: z.string(),\n ruleExpression: ruleExpressionSchema.optional(),\n validationQuery: validationQuerySchema.optional(),\n severity: z.enum(CONSTRAINT_SEVERITIES).optional().catch(undefined),\n errorMessage: z.string().optional(),\n remediation: z.string().optional(),\n isActive: z.boolean().optional(),\n scope: z.enum(CONSTRAINT_SCOPES).optional().catch(undefined),\n owner: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/** Keyed by object type so a read can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_READ_SCHEMAS: {\n [T in SemanticChildObjectType]: z.ZodType<SemanticChildObjectDataMap[T], unknown>;\n} = {\n 'semantic-dataset': semanticDatasetReadSchema,\n 'semantic-metric': semanticMetricReadSchema,\n 'semantic-relationship': semanticRelationshipReadSchema,\n 'semantic-glossary': semanticGlossaryReadSchema,\n 'semantic-constraint': semanticConstraintReadSchema,\n};\n\nconst semanticObjectMetaSchema: z.ZodType<SemanticObjectMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().nullable().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n scope: z.enum(SEMANTIC_OBJECT_SCOPES).optional().catch(undefined),\n // `.catch`: a malformed value, `null` included, reads as unset rather than dropping the object.\n sourceProjectId: z.number().optional().catch(undefined),\n targetProjectIds: z.array(z.number()).optional().catch(undefined),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `SemanticObject` the SDK returns.\n *\n * - A missing or `null` `meta` normalizes rather than drops the object; no caller needs its fields.\n */\nexport const semanticObjectReadSchema = <TData>(dataSchema: z.ZodType<TData, unknown>) =>\n z\n .object({\n id: z.string(),\n attributes: dataSchema,\n meta: semanticObjectMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { concurrent, generateUUID } from '../../utils';\n\nimport {\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS,\n semanticModelReadSchema,\n semanticObjectReadSchema,\n} from './readSchemas';\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n SemanticUnreadableObjectRef,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `listModelChildren` when some child could not be parsed; fails closed.\n *\n * - An `unreadable` entry with `modelUUID: null` counts against every model.\n */\nexport class SemanticLayerUnreadableChildrenError extends Error {\n readonly modelUUID: string;\n readonly unreadable: SemanticUnreadableObjectRef[];\n\n constructor({\n modelUUID,\n unreadable,\n }: {\n modelUUID: string;\n unreadable: SemanticUnreadableObjectRef[];\n }) {\n super(\n `${unreadable.length} child object(s) of the model could not be read, so what it holds ` +\n `is unknown and nothing was deleted.`,\n );\n this.name = 'SemanticLayerUnreadableChildrenError';\n this.modelUUID = modelUUID;\n this.unreadable = unreadable;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/** `readonly`: it drives what a model delete confirmation lists. */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; writes are concurrent single POSTs.\nconst WRITE_CONCURRENCY = 5;\n\n/**\n * The live metastore envelope; the types in clients/metastore/repository/types.ts do not match it.\n *\n * - Reads parse it (`./readSchemas`); writes assert it, as the metastore echoes a validated object.\n */\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\n/** The raw `id` of an envelope that failed to parse; `null` means unaddressable. */\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/** The raw `modelUUID` of a dropped envelope; `null` is treated as \"could be any model's\". */\nconst envelopeModelUUID = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { attributes } = value as { attributes?: unknown };\n if (typeof attributes !== 'object' || attributes === null) return null;\n const { modelUUID } = attributes as { modelUUID?: unknown };\n return typeof modelUUID === 'string' && modelUUID !== '' ? modelUUID : null;\n};\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The UI label: `displayName ?? name`, matching kbc-ui's constraint tables.\n *\n * - Not used for lookup: `displayName` is not unique.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\n/**\n * The value sibling objects reference a child by.\n *\n * - A metric's `dataset` and a relationship's `from`/`to` hold a dataset's `tableId`.\n * - A constraint's `metrics[]` holds metric `name`s, never their `displayName`.\n */\nconst deriveReferenceKey = (\n objectType: SemanticChildObjectType,\n data: Record<string, unknown>,\n): string | undefined => {\n const key =\n objectType === SEMANTIC_OBJECT_TYPE.DATASET\n ? data.tableId\n : objectType === SEMANTIC_OBJECT_TYPE.METRIC\n ? data.name\n : undefined;\n return typeof key === 'string' && key !== '' ? key : undefined;\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n /**\n * Every object of one type, parsed rather than asserted.\n *\n * - A malformed element is dropped, logged and reported in `unreadable`; the rest still list.\n * - A response that is not a collection throws rather than reading as empty.\n */\n const _listObjects = async <TData>(\n objectType: SemanticObjectType,\n dataSchema: z.ZodType<TData, unknown>,\n signal?: AbortSignal,\n options: { modelUUID?: string; pendingElevationOnly?: boolean } = {},\n ): Promise<{ objects: SemanticObject<TData>[]; unreadable: SemanticUnreadableObjectRef[] }> => {\n const response = await metastoreClient.repository.getMetaObjects(\n { objectType, ...options },\n signal,\n );\n const items = parseOrThrow(z.array(z.unknown()), response.data);\n const schema = semanticObjectReadSchema(dataSchema);\n\n const objects: SemanticObject<TData>[] = [];\n const unreadable: SemanticUnreadableObjectRef[] = [];\n\n for (const item of items) {\n const result = schema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n unreadable.push({\n objectType,\n objectUUID: envelopeId(item),\n modelUUID: envelopeModelUUID(item),\n });\n\n // Never log the payload: it is customer data.\n console.warn(\n `semanticLayerSdk: dropped ${objectType} \"${envelopeId(item) ?? '<no id>'}\" from the ` +\n `metastore response, it does not match its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadable };\n };\n\n const listModels = async (signal?: AbortSignal) =>\n (await _listObjects(SEMANTIC_OBJECT_TYPE.MODEL, semanticModelReadSchema, signal)).objects;\n\n /**\n * One model by UUID, with the envelope `meta` that carries its `scope`.\n *\n * - A model that does not parse throws a `ValidationError` rather than reading as missing.\n */\n const getModel = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticObject<SemanticModelData>> => {\n const response = await metastoreClient.repository.getMetaObject(\n { objectType: SEMANTIC_OBJECT_TYPE.MODEL, UUID: modelUUID },\n signal,\n );\n return parseOrThrow(semanticObjectReadSchema(semanticModelReadSchema), response.data);\n };\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n /**\n * One child collection scoped to a model.\n *\n * - `unreadable` includes objects whose envelope names this model or no model.\n */\n const _listChildObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n // Server-side filter (every child object schema declares modelUUID x-filterable: true)\n // instead of fetching the type's whole list and filtering client-side.\n const { objects, unreadable } = await _listObjects(\n objectType,\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS[objectType],\n signal,\n { modelUUID },\n );\n\n // An unreadable item still needs this client-side check: the server filters by modelUUID on\n // the parsed field it trusts, but a malformed item that failed to parse is exactly the case\n // that field can't be trusted for — so an item naming another model still gets excluded here.\n return {\n objects,\n unreadable: unreadable.filter((ref) => ref.modelUUID === null || ref.modelUUID === modelUUID),\n };\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => (await _listChildObjects(objectType, modelUUID, signal)).objects;\n\n /**\n * A model's child objects by name (`term` for glossary).\n *\n * - Returns every match: names are not unique, the caller decides.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n /**\n * Creates a model, then every child concurrently, one request each.\n *\n * - Rejects on the first failed child and leaves the objects already written in place.\n * @deprecated Use `createModel`, then `createObject` or `createObjects`. Removed in the next major.\n */\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, flattened; `name` is the display label.\n *\n * - Delete confirmations use this to say what a model delete would destroy.\n * - Costs five list requests, one per child type, each server-side filtered to this model.\n * - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would\n * under-report what a delete destroys.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const perType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const { objects, unreadable } = await _listChildObjects(objectType, modelUUID, signal);\n return {\n children: objects.map((object) => {\n const referenceKey = deriveReferenceKey(objectType, object.data);\n return {\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n ...(referenceKey === undefined ? {} : { referenceKey }),\n };\n }),\n unreadable,\n };\n }),\n );\n\n const unreadable = perType.flatMap((result) => result.unreadable);\n if (unreadable.length > 0) {\n throw new SemanticLayerUnreadableChildrenError({ modelUUID, unreadable });\n }\n\n return perType.flatMap((result) => result.children);\n };\n\n /**\n * Deletes a model; the metastore deletes all its child objects in the same transaction.\n *\n * - `409`: another object holds a `restrict` reference to the model; nothing was deleted.\n * - `404`: no such model, or it was already deleted.\n */\n const deleteModel = async (modelUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the projects granted read access to a `targeted`-scope object.\n *\n * - An empty array clears every grant.\n * - Read-only is enforced metastore-side.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, keeping its UUID and history.\n *\n * - Requires the organization-admin role for the target org; callers should surface the\n * metastore's 403 rather than pre-empt it.\n * - `dropSourceProject` opts out of recording the pre-promotion `projectId` as\n * `sourceProjectId`; omitted (the default), the source project is preserved.\n */\n const promoteToOrganizationScope = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n options: { dropSourceProject?: boolean } = {},\n ) => {\n // Scope ONLY (plus the optional drop flag). No `data`, not even `{}`: the metastore's\n // step-up guard rejects a PATCH that also carries name or data, and `Data *JSONData` treats\n // `{}` as present — which 400s with \"A scope change cannot be combined with name or data\n // changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n ...(options.dropSourceProject !== undefined\n ? { dropSourceProject: options.dropSourceProject }\n : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n /**\n * Flag a `project`-scope object as awaiting an organization admin's decision to promote it.\n * Only the owning project may call this; idempotent — requesting again just refreshes the\n * timestamp rather than erroring.\n */\n const requestScopeElevation = async (objectType: SemanticObjectType, objectUUID: string) => {\n await metastoreClient.repository.requestScopeElevation({ objectType, UUID: objectUUID });\n };\n\n /**\n * Clear a pending scope-elevation request, whether withdrawn by the owner or declined by an\n * organization admin. Idempotent — clearing an object with no pending request is a no-op.\n */\n const withdrawScopeElevationRequest = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n ) => {\n await metastoreClient.repository.withdrawScopeElevationRequest({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every object of `objectType`, across every project in the organization, currently awaiting an\n * org-admin's elevation decision. Backs the org-admin pending-elevation banner.\n */\n const listPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getPendingScopeElevationRequests<\n Record<string, unknown>\n >({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n /**\n * The current project's own objects with a pending scope-elevation request — for the\n * requester, as opposed to `listPendingScopeElevationRequests`, which is the org-admin's\n * org-wide approval queue. Uses the regular (per-project) list endpoint, not `/organization`:\n * only project-scope objects can have a pending request, and only their owner can set one, so\n * filtering the objects this project can already see is sufficient — no org-wide access needed.\n */\n const listMyPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<Record<string, unknown>>(\n { objectType, pendingElevationOnly: true },\n signal,\n );\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n return {\n // models\n listModels,\n getModel,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n requestScopeElevation,\n withdrawScopeElevationRequest,\n listPendingScopeElevationRequests,\n listMyPendingScopeElevationRequests,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"semanticLayer-djom-J78.cjs","names":["z","z","formatValidationIssues","generateUUID","parseOrThrow","z","formatValidationIssues","concurrent"],"sources":["../src/sdks/semanticLayer/errorMessage.ts","../src/sdks/semanticLayer/vocabulary.ts","../src/sdks/semanticLayer/schemas.ts","../src/sdks/semanticLayer/readSchemas.ts","../src/sdks/semanticLayer/semanticLayerSdk.ts"],"sourcesContent":["/**\n * The message out of a metastore error body.\n *\n * - Only `errors[].message` says what is wrong; the top-level message is just \"Validation failed\".\n * - Any other shape returns `undefined`, so the caller keeps its own fallback.\n * - Only the first error: the metastore reports fields one at a time.\n */\nexport const metastoreErrorMessage = (data: unknown): string | undefined => {\n if (typeof data !== 'object' || data === null) return undefined;\n const errors = (data as { errors?: unknown }).errors;\n if (!Array.isArray(errors)) return undefined;\n const first = errors[0];\n if (typeof first !== 'object' || first === null) return undefined;\n const message = (first as { message?: unknown }).message;\n return typeof message === 'string' && message ? message : undefined;\n};\n","/**\n * The closed value sets the metastore accepts on a semantic object.\n *\n * - The single runtime source for the unions `./types` derives from these arrays.\n * - Imports nothing: `./types` reads it, never the reverse.\n */\n\n/**\n * The dialects the metastore accepts, case-sensitive.\n *\n * - `SemanticModelData.sql_dialect` stays `string` (narrowing is a major bump); validate against this.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const;\n\n/** Dataset field roles; enumerated, unlike a field's free-form `type`. */\nexport const FIELD_ROLES = ['key', 'dimension', 'measure', 'timestamp'] as const;\n\n/** Constraint severities; unset is stored as `warning`. */\nexport const CONSTRAINT_SEVERITIES = ['error', 'warning', 'info'] as const;\n\n/** Constraint scopes; unset is stored as `global`. */\nexport const CONSTRAINT_SCOPES = ['global', 'per_location', 'per_date', 'per_category'] as const;\n\nexport const RULE_OPERATORS = [\n '<',\n '<=',\n '=',\n '>=',\n '>',\n '!=',\n 'between',\n 'in',\n 'sum_equals',\n 'ratio_between',\n] as const;\n\nexport const RELATIONSHIP_JOIN_TYPES = ['left', 'inner'] as const;\n\n/** Who can read an object, narrowest first; an envelope `meta` field, not part of `data`. */\nexport const SEMANTIC_OBJECT_SCOPES = ['project', 'targeted', 'organization'] as const;\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './vocabulary';\n\n/**\n * Write validators for untrusted input; the metastore's own validation errors are opaque.\n *\n * - Only required fields are declared; `looseObject` passes the rest through (the metastore owns the full schema).\n * - The SDK does not parse its own writes.\n * - `modelUUID` is omitted: the SDK injects it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n","import { z } from 'zod';\n\nimport { formatValidationIssues } from '../../errors';\n\nimport type {\n SemanticAiMetadata,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintData,\n SemanticDatasetData,\n SemanticFieldData,\n SemanticGlossaryData,\n SemanticMetricData,\n SemanticModelData,\n SemanticObjectMeta,\n SemanticRelationshipData,\n SemanticRuleExpression,\n SemanticValidationQuery,\n} from './types';\nimport {\n CONSTRAINT_SCOPES,\n CONSTRAINT_SEVERITIES,\n CONSTRAINT_TYPES,\n FIELD_ROLES,\n RELATIONSHIP_JOIN_TYPES,\n RULE_OPERATORS,\n SEMANTIC_OBJECT_SCOPES,\n} from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back, per object type.\n *\n * - Each schema is annotated with its `./types` type, so the two cannot drift apart.\n * - `looseObject`: fields the metastore adds still reach callers.\n * - An unknown value in an optional enum reads as absent; in a required enum it drops the object.\n */\n\nconst aiMetadataSchema: z.ZodType<SemanticAiMetadata, unknown> = z.looseObject({\n synonyms: z.array(z.string()).optional(),\n keywords: z.array(z.string()).optional(),\n antiKeywords: z.array(z.string()).optional(),\n hints: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nconst fieldSchema: z.ZodType<SemanticFieldData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n role: z.enum(FIELD_ROLES).optional().catch(undefined),\n values: z.array(z.string()).optional(),\n ai: aiMetadataSchema.optional(),\n});\n\n/**\n * A dataset's `fields`, where a malformed column is dropped rather than the whole dataset.\n *\n * - `schemas.ts` does not validate `fields` on write, so a nameless column can be stored.\n */\nconst datasetFieldsSchema = z.array(z.unknown()).transform((items) =>\n items.flatMap((element, index) => {\n const result = fieldSchema.safeParse(element);\n if (result.success) return [result.data];\n\n console.warn(\n `semanticLayerSdk: dropped field #${index} from a semantic-dataset, it does not match ` +\n `its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n return [];\n }),\n);\n\nconst ruleExpressionSchema: z.ZodType<SemanticRuleExpression, unknown> = z.looseObject({\n operator: z.enum(RULE_OPERATORS).optional().catch(undefined),\n left: z.string().optional(),\n right: z.string().optional(),\n bounds: z\n .looseObject({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n});\n\nconst validationQuerySchema: z.ZodType<SemanticValidationQuery, unknown> = z.looseObject({\n default: z.string().optional(),\n snowflake: z.string().optional(),\n bigquery: z.string().optional(),\n});\n\nexport const semanticModelReadSchema: z.ZodType<SemanticModelData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n sql_dialect: z.string(),\n});\n\nconst semanticDatasetReadSchema: z.ZodType<SemanticDatasetData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n tableId: z.string(),\n fqn: z.string(),\n description: z.string().optional(),\n grain: z.string().optional(),\n primaryKey: z.array(z.string()).optional(),\n fields: datasetFieldsSchema.optional(),\n ai: aiMetadataSchema.optional(),\n});\n\nconst semanticMetricReadSchema: z.ZodType<SemanticMetricData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n sql: z.string(),\n dataset: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst semanticRelationshipReadSchema: z.ZodType<SemanticRelationshipData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string().optional(),\n from: z.string(),\n to: z.string(),\n on: z.string(),\n type: z.enum(RELATIONSHIP_JOIN_TYPES).optional().catch(undefined),\n});\n\nconst semanticGlossaryReadSchema: z.ZodType<SemanticGlossaryData, unknown> = z.looseObject({\n modelUUID: z.string(),\n term: z.string(),\n definition: z.string(),\n seeAlso: z.array(z.string()).optional(),\n});\n\nconst semanticConstraintReadSchema: z.ZodType<SemanticConstraintData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n datasets: z.array(z.string()).optional(),\n rule: z.string(),\n ruleExpression: ruleExpressionSchema.optional(),\n validationQuery: validationQuerySchema.optional(),\n severity: z.enum(CONSTRAINT_SEVERITIES).optional().catch(undefined),\n errorMessage: z.string().optional(),\n remediation: z.string().optional(),\n isActive: z.boolean().optional(),\n scope: z.enum(CONSTRAINT_SCOPES).optional().catch(undefined),\n owner: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/** Keyed by object type so a read can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_READ_SCHEMAS: {\n [T in SemanticChildObjectType]: z.ZodType<SemanticChildObjectDataMap[T], unknown>;\n} = {\n 'semantic-dataset': semanticDatasetReadSchema,\n 'semantic-metric': semanticMetricReadSchema,\n 'semantic-relationship': semanticRelationshipReadSchema,\n 'semantic-glossary': semanticGlossaryReadSchema,\n 'semantic-constraint': semanticConstraintReadSchema,\n};\n\nconst semanticObjectMetaSchema: z.ZodType<SemanticObjectMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().nullable().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n scope: z.enum(SEMANTIC_OBJECT_SCOPES).optional().catch(undefined),\n // `.catch`: a malformed value, `null` included, reads as unset rather than dropping the object.\n sourceProjectId: z.number().optional().catch(undefined),\n targetProjectIds: z.array(z.number()).optional().catch(undefined),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `SemanticObject` the SDK returns.\n *\n * - A missing or `null` `meta` normalizes rather than drops the object; no caller needs its fields.\n */\nexport const semanticObjectReadSchema = <TData>(dataSchema: z.ZodType<TData, unknown>) =>\n z\n .object({\n id: z.string(),\n attributes: dataSchema,\n meta: semanticObjectMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { concurrent, generateUUID } from '../../utils';\n\nimport {\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS,\n semanticModelReadSchema,\n semanticObjectReadSchema,\n} from './readSchemas';\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n SemanticUnreadableObjectRef,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `listModelChildren` when some child could not be parsed; fails closed.\n *\n * - An `unreadable` entry with `modelUUID: null` counts against every model.\n */\nexport class SemanticLayerUnreadableChildrenError extends Error {\n readonly modelUUID: string;\n readonly unreadable: SemanticUnreadableObjectRef[];\n\n constructor({\n modelUUID,\n unreadable,\n }: {\n modelUUID: string;\n unreadable: SemanticUnreadableObjectRef[];\n }) {\n super(\n `${unreadable.length} child object(s) of the model could not be read, so what it holds ` +\n `is unknown and nothing was deleted.`,\n );\n this.name = 'SemanticLayerUnreadableChildrenError';\n this.modelUUID = modelUUID;\n this.unreadable = unreadable;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/** `readonly`: it drives what a model delete confirmation lists. */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; writes are concurrent single POSTs.\nconst WRITE_CONCURRENCY = 5;\n\n/**\n * The live metastore envelope; the types in clients/metastore/repository/types.ts do not match it.\n *\n * - Reads parse it (`./readSchemas`); writes assert it, as the metastore echoes a validated object.\n */\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\n/** The raw `id` of an envelope that failed to parse; `null` means unaddressable. */\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/** The raw `modelUUID` of a dropped envelope; `null` is treated as \"could be any model's\". */\nconst envelopeModelUUID = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { attributes } = value as { attributes?: unknown };\n if (typeof attributes !== 'object' || attributes === null) return null;\n const { modelUUID } = attributes as { modelUUID?: unknown };\n return typeof modelUUID === 'string' && modelUUID !== '' ? modelUUID : null;\n};\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The UI label: `displayName ?? name`, matching kbc-ui's constraint tables.\n *\n * - Not used for lookup: `displayName` is not unique.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\n/**\n * The value sibling objects reference a child by.\n *\n * - A metric's `dataset` and a relationship's `from`/`to` hold a dataset's `tableId`.\n * - A constraint's `metrics[]` holds metric `name`s, never their `displayName`.\n */\nconst deriveReferenceKey = (\n objectType: SemanticChildObjectType,\n data: Record<string, unknown>,\n): string | undefined => {\n const key =\n objectType === SEMANTIC_OBJECT_TYPE.DATASET\n ? data.tableId\n : objectType === SEMANTIC_OBJECT_TYPE.METRIC\n ? data.name\n : undefined;\n return typeof key === 'string' && key !== '' ? key : undefined;\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n /**\n * Every object of one type, parsed rather than asserted.\n *\n * - A malformed element is dropped, logged and reported in `unreadable`; the rest still list.\n * - A response that is not a collection throws rather than reading as empty.\n */\n const _listObjects = async <TData>(\n objectType: SemanticObjectType,\n dataSchema: z.ZodType<TData, unknown>,\n signal?: AbortSignal,\n options: { modelUUID?: string; pendingElevationOnly?: boolean } = {},\n ): Promise<{ objects: SemanticObject<TData>[]; unreadable: SemanticUnreadableObjectRef[] }> => {\n const response = await metastoreClient.repository.getMetaObjects(\n { objectType, ...options },\n signal,\n );\n const items = parseOrThrow(z.array(z.unknown()), response.data);\n const schema = semanticObjectReadSchema(dataSchema);\n\n const objects: SemanticObject<TData>[] = [];\n const unreadable: SemanticUnreadableObjectRef[] = [];\n\n for (const item of items) {\n const result = schema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n unreadable.push({\n objectType,\n objectUUID: envelopeId(item),\n modelUUID: envelopeModelUUID(item),\n });\n\n // Never log the payload: it is customer data.\n console.warn(\n `semanticLayerSdk: dropped ${objectType} \"${envelopeId(item) ?? '<no id>'}\" from the ` +\n `metastore response, it does not match its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadable };\n };\n\n const listModels = async (signal?: AbortSignal) =>\n (await _listObjects(SEMANTIC_OBJECT_TYPE.MODEL, semanticModelReadSchema, signal)).objects;\n\n /**\n * One model by UUID, with the envelope `meta` that carries its `scope`.\n *\n * - A model that does not parse throws a `ValidationError` rather than reading as missing.\n */\n const getModel = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticObject<SemanticModelData>> => {\n const response = await metastoreClient.repository.getMetaObject(\n { objectType: SEMANTIC_OBJECT_TYPE.MODEL, UUID: modelUUID },\n signal,\n );\n return parseOrThrow(semanticObjectReadSchema(semanticModelReadSchema), response.data);\n };\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n /**\n * One child collection scoped to a model.\n *\n * - `unreadable` includes objects whose envelope names this model or no model.\n */\n const _listChildObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n // Server-side filter (every child object schema declares modelUUID x-filterable: true)\n // instead of fetching the type's whole list and filtering client-side.\n const { objects, unreadable } = await _listObjects(\n objectType,\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS[objectType],\n signal,\n { modelUUID },\n );\n\n // An unreadable item still needs this client-side check: the server filters by modelUUID on\n // the parsed field it trusts, but a malformed item that failed to parse is exactly the case\n // that field can't be trusted for — so an item naming another model still gets excluded here.\n return {\n objects,\n unreadable: unreadable.filter((ref) => ref.modelUUID === null || ref.modelUUID === modelUUID),\n };\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => (await _listChildObjects(objectType, modelUUID, signal)).objects;\n\n /**\n * A model's child objects by name (`term` for glossary).\n *\n * - Returns every match: names are not unique, the caller decides.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n /**\n * Creates a model, then every child concurrently, one request each.\n *\n * - Rejects on the first failed child and leaves the objects already written in place.\n * @deprecated Use `createModel`, then `createObject` or `createObjects`. Removed in the next major.\n */\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, flattened; `name` is the display label.\n *\n * - Delete confirmations use this to say what a model delete would destroy.\n * - Costs five list requests, one per child type, each server-side filtered to this model.\n * - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would\n * under-report what a delete destroys.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const perType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const { objects, unreadable } = await _listChildObjects(objectType, modelUUID, signal);\n return {\n children: objects.map((object) => {\n const referenceKey = deriveReferenceKey(objectType, object.data);\n return {\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n ...(referenceKey === undefined ? {} : { referenceKey }),\n };\n }),\n unreadable,\n };\n }),\n );\n\n const unreadable = perType.flatMap((result) => result.unreadable);\n if (unreadable.length > 0) {\n throw new SemanticLayerUnreadableChildrenError({ modelUUID, unreadable });\n }\n\n return perType.flatMap((result) => result.children);\n };\n\n /**\n * Deletes a model; the metastore deletes all its child objects in the same transaction.\n *\n * - `409`: another object holds a `restrict` reference to the model; nothing was deleted.\n * - `404`: no such model, or it was already deleted.\n */\n const deleteModel = async (modelUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the projects granted read access to a `targeted`-scope object.\n *\n * - An empty array clears every grant.\n * - Read-only is enforced metastore-side.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, keeping its UUID and history.\n *\n * - Requires the organization-admin role for the target org; callers should surface the\n * metastore's 403 rather than pre-empt it.\n * - `dropSourceProject` opts out of recording the pre-promotion `projectId` as\n * `sourceProjectId`; omitted (the default), the source project is preserved.\n */\n const promoteToOrganizationScope = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n options: { dropSourceProject?: boolean } = {},\n ) => {\n // Scope ONLY (plus the optional drop flag). No `data`, not even `{}`: the metastore's\n // step-up guard rejects a PATCH that also carries name or data, and `Data *JSONData` treats\n // `{}` as present — which 400s with \"A scope change cannot be combined with name or data\n // changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n ...(options.dropSourceProject !== undefined\n ? { dropSourceProject: options.dropSourceProject }\n : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n /**\n * Flag a `project`-scope object as awaiting an organization admin's decision to promote it.\n * Only the owning project may call this; idempotent — requesting again just refreshes the\n * timestamp rather than erroring.\n */\n const requestScopeElevation = async (objectType: SemanticObjectType, objectUUID: string) => {\n await metastoreClient.repository.requestScopeElevation({ objectType, UUID: objectUUID });\n };\n\n /**\n * Clear a pending scope-elevation request, whether withdrawn by the owner or declined by an\n * organization admin. Idempotent — clearing an object with no pending request is a no-op.\n */\n const withdrawScopeElevationRequest = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n ) => {\n await metastoreClient.repository.withdrawScopeElevationRequest({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every object of `objectType`, across every project in the organization, currently awaiting an\n * org-admin's elevation decision. Backs the org-admin pending-elevation banner.\n */\n const listPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getPendingScopeElevationRequests<\n Record<string, unknown>\n >({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n /**\n * The current project's own objects with a pending scope-elevation request — for the\n * requester, as opposed to `listPendingScopeElevationRequests`, which is the org-admin's\n * org-wide approval queue. Uses the regular (per-project) list endpoint, not `/organization`:\n * only project-scope objects can have a pending request, and only their owner can set one, so\n * filtering the objects this project can already see is sufficient — no org-wide access needed.\n */\n const listMyPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<Record<string, unknown>>(\n { objectType, pendingElevationOnly: true },\n signal,\n );\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n return {\n // models\n listModels,\n getModel,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n requestScopeElevation,\n withdrawScopeElevationRequest,\n listPendingScopeElevationRequests,\n listMyPendingScopeElevationRequests,\n };\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_createGenericFetchClient = require("../createGenericFetchClient-MOx97wi-.cjs");
2
+ const require_createGenericFetchClient = require("../createGenericFetchClient-2oU-PXVo.cjs");
3
3
  require("./types.cjs");
4
- //#region src/clients/status/statusClient.ts
4
+ // src/clients/status/statusClient.ts
5
5
  const createStatusClient = ({ baseUrl, middlewares }) => {
6
6
  const client = require_createGenericFetchClient.createGenericFetchClient({
7
7
  baseUrl,
@@ -13,7 +13,6 @@ const createStatusClient = ({ baseUrl, middlewares }) => {
13
13
  };
14
14
  return { getSummary };
15
15
  };
16
- //#endregion
17
16
  exports.createStatusClient = createStatusClient;
18
17
 
19
18
  //# sourceMappingURL=index.cjs.map
@@ -1,9 +1,7 @@
1
- import { n as ClientInitOptions } from "../types-O6XM48J8.cjs";
1
+ import { n as ClientInitOptions } from "../types-Dryq2GGE.cjs";
2
2
  import { Maintenance, StatusSummary } from "./types.cjs";
3
- //#region src/clients/status/statusClient.d.ts
4
3
  declare const createStatusClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
5
4
  getSummary: (signal?: AbortSignal) => Promise<StatusSummary>;
6
5
  };
7
- //#endregion
8
6
  export { Maintenance, StatusSummary, createStatusClient };
9
7
  //# sourceMappingURL=index.d.cts.map
@@ -1,9 +1,7 @@
1
- import { n as ClientInitOptions } from "../types-CeqZuOEC.js";
1
+ import { n as ClientInitOptions } from "../types-DUpVIuk7.js";
2
2
  import { Maintenance, StatusSummary } from "./types.js";
3
- //#region src/clients/status/statusClient.d.ts
4
3
  declare const createStatusClient: ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'auth'>) => {
5
4
  getSummary: (signal?: AbortSignal) => Promise<StatusSummary>;
6
5
  };
7
- //#endregion
8
6
  export { Maintenance, StatusSummary, createStatusClient };
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
- import { t as createGenericFetchClient } from "../createGenericFetchClient-CQdNcPC3.js";
1
+ import { t as createGenericFetchClient } from "../createGenericFetchClient-wGxemBwR.js";
2
2
  import "./types.js";
3
- //#region src/clients/status/statusClient.ts
3
+ // src/clients/status/statusClient.ts
4
4
  const createStatusClient = ({ baseUrl, middlewares }) => {
5
5
  const client = createGenericFetchClient({
6
6
  baseUrl,
@@ -12,7 +12,6 @@ const createStatusClient = ({ baseUrl, middlewares }) => {
12
12
  };
13
13
  return { getSummary };
14
14
  };
15
- //#endregion
16
15
  export { createStatusClient };
17
16
 
18
17
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,3 @@
1
- //#region src/clients/status/types.d.ts
2
1
  type Maintenance = {
3
2
  id: string;
4
3
  name: string;
@@ -16,6 +15,5 @@ type StatusSummary = {
16
15
  };
17
16
  activeMaintenances: Maintenance[];
18
17
  };
19
- //#endregion
20
18
  export { Maintenance, StatusSummary };
21
19
  //# sourceMappingURL=types.d.cts.map
@@ -1,4 +1,3 @@
1
- //#region src/clients/status/types.d.ts
2
1
  type Maintenance = {
3
2
  id: string;
4
3
  name: string;
@@ -16,6 +15,5 @@ type StatusSummary = {
16
15
  };
17
16
  activeMaintenances: Maintenance[];
18
17
  };
19
- //#endregion
20
18
  export { Maintenance, StatusSummary };
21
19
  //# sourceMappingURL=types.d.ts.map
@@ -1,13 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_storage = require("../storage-Ci9gXgcw.cjs");
3
- const require_UserError = require("../UserError-CSGO1qII.cjs");
4
- const require_createFetchClient = require("../createFetchClient-lZ_93Yrb.cjs");
5
- const require_validateConnectionStatus = require("../validateConnectionStatus-BalWEyRk.cjs");
6
- const require_ManagementSessionMintError = require("../ManagementSessionMintError-Cu9beG7j.cjs");
7
- const require_QueryJobError = require("../QueryJobError-irGiP5zh.cjs");
8
- const require_QueueJobError = require("../QueueJobError-6qSEizWo.cjs");
9
- const require_SyncActionError = require("../SyncActionError-BG0zwchi.cjs");
10
- const require_ValidationError = require("../ValidationError-D65QU0uq.cjs");
2
+ const require_UserError = require("../UserError-D4P9Tbhf.cjs");
3
+ const require_createFetchClient = require("../createFetchClient-DEkUH662.cjs");
4
+ const require_validateConnectionStatus = require("../validateConnectionStatus-BjemGI1e.cjs");
5
+ const require_storage = require("../storage-KJ5Ki_ma.cjs");
6
+ const require_ManagementSessionMintError = require("../ManagementSessionMintError-ByOulHQH.cjs");
7
+ const require_QueryJobError = require("../QueryJobError-Oy0fl4aw.cjs");
8
+ const require_QueueJobError = require("../QueueJobError-DruZK3tc.cjs");
9
+ const require_SyncActionError = require("../SyncActionError-mbpVg63X.cjs");
10
+ const require_ValidationError = require("../ValidationError-BXcFX4nD.cjs");
11
11
  exports.ApiError = require_createFetchClient.ApiError;
12
12
  exports.HtmlResponseError = require_validateConnectionStatus.HtmlResponseError;
13
13
  exports.ManagementClientAuthError = require_ManagementSessionMintError.ManagementClientAuthError;
@@ -1,3 +1,4 @@
1
- import { $r as ManagementSessionMintError, C as isValidationError, E as isStorageJobError, Rr as QueueJobError, S as formatValidationIssues, T as StorageJobError, _ as isAbortError, ai as isHtmlResponseError, di as ApiError, ei as ManagementClientAuthError, g as FetchClientError, ii as HtmlResponseError, ni as manageErrorCode, ti as isManageError, v as isApiError, w as parseOrThrow, x as ValidationError, y as isFetchClientError, zr as isQueueJobError } from "../index-CL4iKFic.cjs";
2
- import { At as isSqlWorkspaceConnection, Gs as readableReason, Hs as isSyncActionError, Js as UserError, Ks as QueryJobError, Ot as fromBackendSubscribers, Us as ServiceUnavailableError, Vs as SyncActionError, Ws as retryAfterSeconds, _ as StorageGenericFetchClient, kt as toBackendSubscribers, qs as isQueryJobError, v as StorageOpenApiFetchClient, y as createStorageClient } from "../index-Be2dNJ_N.cjs";
1
+ import { $r as ManagementSessionMintError, C as isValidationError, E as isStorageJobError, Rr as QueueJobError, S as formatValidationIssues, T as StorageJobError, _ as isAbortError, ai as isHtmlResponseError, di as ApiError, ei as ManagementClientAuthError, g as FetchClientError, ii as HtmlResponseError, ni as manageErrorCode, ti as isManageError, v as isApiError, w as parseOrThrow, x as ValidationError, y as isFetchClientError, zr as isQueueJobError } from "../index-D1mduJne.cjs";
2
+ import { Cs as readableReason, Es as UserError, Ss as retryAfterSeconds, Ts as isQueryJobError, _ as StorageGenericFetchClient, bs as isSyncActionError, v as StorageOpenApiFetchClient, ws as QueryJobError, xs as ServiceUnavailableError, y as createStorageClient, ys as SyncActionError } from "../index-qJ2IjXIM.cjs";
3
+ import { n as toBackendSubscribers, r as isSqlWorkspaceConnection, t as fromBackendSubscribers } from "../index-C1ndNdrN.cjs";
3
4
  export { ApiError, type FetchClientError, HtmlResponseError, ManagementClientAuthError, ManagementSessionMintError, QueryJobError, QueueJobError, ServiceUnavailableError, StorageGenericFetchClient, StorageJobError, StorageOpenApiFetchClient, SyncActionError, UserError, ValidationError, createStorageClient, formatValidationIssues, fromBackendSubscribers, isAbortError, isApiError, isFetchClientError, isHtmlResponseError, isManageError, isQueryJobError, isQueueJobError, isSqlWorkspaceConnection, isStorageJobError, isSyncActionError, isValidationError, manageErrorCode, parseOrThrow, readableReason, retryAfterSeconds, toBackendSubscribers };