@metabase/cli 0.3.2 → 0.4.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 (291) hide show
  1. package/dist/{add-collection-BjVAdZ1n.mjs → add-collection-CC6KSwjX.mjs} +5 -5
  2. package/dist/{alert-DCLhfwdv.mjs → alert-Dt6La9tK.mjs} +7 -7
  3. package/dist/{alerts-DRin_wt2.mjs → alerts-ClKnJqgB.mjs} +6 -6
  4. package/dist/{append-DQ9rPJHZ.mjs → append-pnaQWP_A.mjs} +4 -4
  5. package/dist/{archive-D6xzHaM3.mjs → archive-By1pLYtO.mjs} +3 -3
  6. package/dist/{archive-xcgoVPwv.mjs → archive-CLu2TGW5.mjs} +5 -5
  7. package/dist/{archive-HeRygdKz2.mjs → archive-COP9joWU.mjs} +4 -4
  8. package/dist/{archive-COFQAHAL.mjs → archive-CSnBFcQ_.mjs} +3 -3
  9. package/dist/{archive-1YVo-Wsu.mjs → archive-Ct1eyolN.mjs} +3 -3
  10. package/dist/{archive-_c-ISZmi.mjs → archive-D7nAQcCz.mjs} +3 -3
  11. package/dist/{archive-BzVxRqpL.mjs → archive-DEDA48w3.mjs} +5 -5
  12. package/dist/{archive-BVRKE9Ev.mjs → archive-DJAsSzCz.mjs} +5 -5
  13. package/dist/{archive-BPCgmLcV.mjs → archive-DtabbPUk.mjs} +4 -4
  14. package/dist/{archive-o5cWV3vZ.mjs → archive-YNpa8daf.mjs} +3 -3
  15. package/dist/{archive-D3yPvUtz.mjs → archive-ewitrKdx.mjs} +5 -5
  16. package/dist/{auth-DJn5T6zA.mjs → auth-DdLhXCn-.mjs} +5 -5
  17. package/dist/body-Dd-TwYYL.mjs +17 -0
  18. package/dist/branch-flag-pFQPNYKr.mjs +9 -0
  19. package/dist/{branches-CUyPxeeW.mjs → branches-ZvGNhed6.mjs} +3 -3
  20. package/dist/breaking-BLswgvkA.mjs +36 -0
  21. package/dist/broken-BN0nL2hf.mjs +37 -0
  22. package/dist/bulk-discard-values-DFJUjSnE.mjs +49 -0
  23. package/dist/bulk-edit-Brqr67bu.mjs +53 -0
  24. package/dist/bulk-rescan-values-DndXXi2N.mjs +28 -0
  25. package/dist/bulk-sync-schema-mO-t2QlL.mjs +28 -0
  26. package/dist/{cancel-BNuVls58.mjs → cancel-DP03dXBf.mjs} +3 -3
  27. package/dist/{cancel-task-DUmlQQpi.mjs → cancel-task-CELBfBPP.mjs} +4 -4
  28. package/dist/{card-voh1k4hl.mjs → card-Bv4ZN0oV.mjs} +5 -3
  29. package/dist/card-CFd-GUEM.mjs +25 -0
  30. package/dist/{card-CEkp1mcI.mjs → card-DSrgU7lT.mjs} +1 -1
  31. package/dist/{cards-_gbvw3wp.mjs → cards-Cn2ywFTJ.mjs} +6 -6
  32. package/dist/cli.mjs +410 -100
  33. package/dist/{client-BnK0evYf.mjs → client-ToLiPu9q.mjs} +316 -316
  34. package/dist/{collection-DYM0p3Xl.mjs → collection-BG3Ksea-.mjs} +1 -1
  35. package/dist/collection-BKNShKcY.mjs +21 -0
  36. package/dist/{collection-BxdPxD38.mjs → collection-D3KXhvnc.mjs} +7 -5
  37. package/dist/{collection-namespace-DM90lA8C.mjs → collection-namespace-CWW6hZxK.mjs} +2 -2
  38. package/dist/{content-translation-CqB3peU9.mjs → content-translation-C19SqZWp.mjs} +3 -3
  39. package/dist/copy-BGK8Wz6d.mjs +55 -0
  40. package/dist/copy-COLUuiuF.mjs +36 -0
  41. package/dist/copy-flags-eU8aa0zj.mjs +32 -0
  42. package/dist/{create-CnJKj9Nl.mjs → create-B2tuInV9.mjs} +4 -4
  43. package/dist/{create-D4Y69cDF.mjs → create-B3TKri1E.mjs} +4 -4
  44. package/dist/{create-BSvTs-EV.mjs → create-B4gXKDRr.mjs} +3 -3
  45. package/dist/create-B63JphYe.mjs +34 -0
  46. package/dist/{create-IFjwHs0G.mjs → create-BH6kLjHS.mjs} +4 -4
  47. package/dist/{create-BIUVvIGH.mjs → create-BwifyhyL.mjs} +3 -3
  48. package/dist/{create-CwXUMOMd.mjs → create-Colz5bOO.mjs} +3 -3
  49. package/dist/{create-Cm9Z-rfe2.mjs → create-CulUZgN1.mjs} +4 -4
  50. package/dist/{create-DNx9TGHs.mjs → create-Cxuqr3kT.mjs} +6 -6
  51. package/dist/{create-CUHpxANR.mjs → create-CzW_UTE7.mjs} +6 -6
  52. package/dist/{create-BMKuihoI.mjs → create-DNR8RMvV.mjs} +6 -6
  53. package/dist/{create-DMVw9nrZ.mjs → create-DSHeoV7e.mjs} +4 -4
  54. package/dist/{create-DVo8-IzZ.mjs → create-DWbW2WSc.mjs} +6 -6
  55. package/dist/{create-va8bByVt.mjs → create-Dx8nfjGs.mjs} +3 -3
  56. package/dist/{create-B7S5fCkD.mjs → create-XGomrTz5.mjs} +5 -5
  57. package/dist/{create-branch-Cw-uXows.mjs → create-branch-DxL7KUZp.mjs} +4 -4
  58. package/dist/{create-B48rmY8v.mjs → create-g1f2yJ4s.mjs} +3 -3
  59. package/dist/{csv-CaKx1oFZ.mjs → csv-C6TEfLMi.mjs} +4 -4
  60. package/dist/{current-task-lGh69Z1i.mjs → current-task-CHs0zNFM.mjs} +4 -4
  61. package/dist/dashboard-AWrXqQ7a.mjs +35 -0
  62. package/dist/{dashboard-D0hwTC-f.mjs → dashboard-Phz3XpRM.mjs} +2 -1
  63. package/dist/{dashboard-DgK81azj.mjs → dashboard-XSTr9QCr.mjs} +6 -2
  64. package/dist/database-D-CRyRIv.mjs +45 -0
  65. package/dist/{database-C3E9PZSx.mjs → database-MlUPpitM.mjs} +1 -1
  66. package/dist/dataset-p5oNPQgL.mjs +66 -0
  67. package/dist/{db-BRHPjshe.mjs → db-BFSeETMO.mjs} +7 -7
  68. package/dist/{delete-DMETa-37.mjs → delete-BUKgSJhh.mjs} +4 -4
  69. package/dist/{delete-CQWCfqHf.mjs → delete-CPBByycV.mjs} +4 -4
  70. package/dist/{delete-Ci0aDYpf.mjs → delete-Cucqn4-V.mjs} +4 -4
  71. package/dist/{delete-BxBadE3q.mjs → delete-D79TlpcE.mjs} +4 -4
  72. package/dist/delete-DZJxBmdU.mjs +44 -0
  73. package/dist/{delete-G6EiGn2Q.mjs → delete-DndykJn2.mjs} +4 -4
  74. package/dist/delete-runtime-BbmRg_in.mjs +55 -0
  75. package/dist/{delete-table-N4rZtt1T.mjs → delete-table-CbsWcjh5.mjs} +4 -4
  76. package/dist/{dependencies-edN0P1SS.mjs → dependencies-B-880phi.mjs} +5 -5
  77. package/dist/dependency-DBUJwXqv.mjs +15 -0
  78. package/dist/dependency-DKSjKT8P.mjs +165 -0
  79. package/dist/dependency-DSxKm9oS.mjs +111 -0
  80. package/dist/dependents-C_FDnpZs.mjs +52 -0
  81. package/dist/{dirty-U51bMoCP.mjs → dirty-B-Is68--.mjs} +5 -5
  82. package/dist/discard-values-yzH-kIsr.mjs +55 -0
  83. package/dist/document-BRaba87v.mjs +20 -0
  84. package/dist/{document-CA0Q6lqu.mjs → document-C18b5rM6.mjs} +1 -1
  85. package/dist/{document-BHpLJbKU.mjs → document-DFCj1Az_.mjs} +2 -1
  86. package/dist/{download-BJA6k-e6.mjs → download-DluF-vnU.mjs} +2 -2
  87. package/dist/{eid-BtlRU1E0.mjs → eid-Dz-mP40j.mjs} +11 -10
  88. package/dist/entity-CA4zfRt4.mjs +20 -0
  89. package/dist/entry-flags-7x7bIyOQ.mjs +42 -0
  90. package/dist/{events-B5rnOo-L.mjs → events-2sOk6H09.mjs} +4 -4
  91. package/dist/export-BKkAJOFb.mjs +74 -0
  92. package/dist/export-flags-NiZ7C3Gm.mjs +81 -0
  93. package/dist/export-preflight-CwJ_3-iX.mjs +35 -0
  94. package/dist/{field-CcN4oZy6.mjs → field-5nivEfd6.mjs} +33 -3
  95. package/dist/field-BARgq5I9.mjs +21 -0
  96. package/dist/field-wmN6raOG.mjs +128 -0
  97. package/dist/{fields-zQ6O_W_H.mjs → fields-Bod0s_uV.mjs} +6 -6
  98. package/dist/filter-flags-BYcbB85j.mjs +71 -0
  99. package/dist/fks-IUw66K_Q.mjs +36 -0
  100. package/dist/{get-BDrmBZ1z.mjs → get-B8DUMrCw.mjs} +5 -5
  101. package/dist/{get-is8x5f2n.mjs → get-BGqvoGQM.mjs} +3 -3
  102. package/dist/{get-CekXFP3x.mjs → get-BSUsfysk.mjs} +3 -3
  103. package/dist/{get-CeSQptdl.mjs → get-BXsLkoit.mjs} +5 -5
  104. package/dist/{get-DhpMuTSt.mjs → get-BXssHyJ1.mjs} +5 -5
  105. package/dist/get-Bct52yPw.mjs +36 -0
  106. package/dist/{get-DXwlZjw0.mjs → get-Besqwy32.mjs} +3 -3
  107. package/dist/{get-BLjcCXp8.mjs → get-BfSX-OeS.mjs} +3 -3
  108. package/dist/{get-BLcS4il2.mjs → get-Biy4gOzu2.mjs} +3 -3
  109. package/dist/{get-BSoMWp4t2.mjs → get-CYIeiTZ9.mjs} +4 -4
  110. package/dist/{get-CwiJWeH4.mjs → get-CaEiQnSw.mjs} +4 -4
  111. package/dist/{get-xPv7e5Ez.mjs → get-Cl81y0Md.mjs} +5 -5
  112. package/dist/{get-Cf6a4fFN.mjs → get-D1NjMXAH.mjs} +4 -4
  113. package/dist/{get-EFsmL4le.mjs → get-D2cPuOPR.mjs} +5 -5
  114. package/dist/{get-Dg-S07ri.mjs → get-DITlshJH.mjs} +3 -3
  115. package/dist/{get-CTp5l7aU.mjs → get-DLyg6Al9.mjs} +3 -3
  116. package/dist/{get-93wuhTn2.mjs → get-DQZfaVNq.mjs} +4 -4
  117. package/dist/{get-CG6G-mzV.mjs → get-DtBqoGTa.mjs} +5 -5
  118. package/dist/{get-DC_huYD8.mjs → get-_ik_5_lQ.mjs} +5 -5
  119. package/dist/{get-run-DwY4sFGy.mjs → get-run-CEc_tr5b.mjs} +4 -4
  120. package/dist/{git-sync-BwBRmEhE.mjs → git-sync-COokpYgc.mjs} +12 -3
  121. package/dist/git-sync-DKcaddkV.mjs +29 -0
  122. package/dist/git-sync-DspFahwV.mjs +165 -0
  123. package/dist/glossary-BlNCrYbw.mjs +30 -0
  124. package/dist/glossary-CWIX8Zh6.mjs +14 -0
  125. package/dist/glossary-LmZWwCNP.mjs +21 -0
  126. package/dist/graph-f6Bp1e8U.mjs +34 -0
  127. package/dist/{group-YQQ5GIcP.mjs → group-bpD_KcjA.mjs} +1 -1
  128. package/dist/{has-remote-changes-DE2_14FK.mjs → has-remote-changes-B8MmN6yh.mjs} +4 -4
  129. package/dist/{import-Cs7wk058.mjs → import-Bhq15KgP.mjs} +19 -8
  130. package/dist/{input-DEvkIjGr.mjs → input-D8qW-KtR.mjs} +6 -2
  131. package/dist/{is-dirty-XqDfqXGi.mjs → is-dirty-CAsVuVx8.mjs} +2 -2
  132. package/dist/{items-BloAjPwA.mjs → items-BZJomiDE.mjs} +8 -8
  133. package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
  134. package/dist/{library-Dgq_5BFh.mjs → library-B7wDH-Nc.mjs} +5 -5
  135. package/dist/{library-PGCfm0UA.mjs → library-BOv5SY24.mjs} +1 -1
  136. package/dist/{library-BPIzb3K_.mjs → library-Ck0EK5bi.mjs} +4 -2
  137. package/dist/{list-CZCaqPoo.mjs → list-B2uUl26x.mjs} +6 -6
  138. package/dist/{list-3ErmGdY0.mjs → list-B4luDSYj.mjs} +6 -6
  139. package/dist/{list-D04uiS3F.mjs → list-B8ND9t2h.mjs} +3 -3
  140. package/dist/{list-CghNKfYJ.mjs → list-BT5t8ZOl.mjs} +4 -4
  141. package/dist/{list-VzrtA9lt.mjs → list-BT7xiUQe.mjs} +3 -3
  142. package/dist/{list-D9d5ocYi.mjs → list-BWFCv_zk.mjs} +5 -5
  143. package/dist/{list-DboUvg-Y.mjs → list-BtZVe1Nq.mjs} +6 -6
  144. package/dist/{list-sdCIS2Df.mjs → list-BwdSG-P5.mjs} +5 -5
  145. package/dist/{list-yV6CyPzn.mjs → list-C-A-2HFq.mjs} +3 -3
  146. package/dist/list-C9x--9Jq.mjs +101 -0
  147. package/dist/{list-CUJ1wem9.mjs → list-CCdXig7b.mjs} +4 -4
  148. package/dist/{list-BfLo1xI8.mjs → list-CJDFoOHb.mjs} +3 -3
  149. package/dist/{list-Bzm5mXRo.mjs → list-CLFu3mQB.mjs} +3 -3
  150. package/dist/{list-BZnf3RmA.mjs → list-Cd40Kr0R.mjs} +3 -3
  151. package/dist/{list-CUXlZiS1.mjs → list-Cj_mTxbY.mjs} +4 -4
  152. package/dist/{list-f8Csdjyc.mjs → list-CtS50R7m.mjs} +5 -5
  153. package/dist/{list-vsXIMssK.mjs → list-CvZyTwmV.mjs} +5 -5
  154. package/dist/list-DcnNlYQA.mjs +35 -0
  155. package/dist/{list-DuJezLm_.mjs → list-DtgbtE3_.mjs} +3 -3
  156. package/dist/{login-Vw51Gts5.mjs → login-Bi_nGMJ9.mjs} +6 -6
  157. package/dist/{logout-BDIqoVhv.mjs → logout-CiHQJWTu.mjs} +2 -2
  158. package/dist/{measure-LY9Tp9QZ.mjs → measure-D2qq5e8f.mjs} +6 -6
  159. package/dist/moderation-review-BdqEH6N1.mjs +31 -0
  160. package/dist/{notification-DVrLkjFT.mjs → notification-DOYdl0ao.mjs} +1 -1
  161. package/dist/{parameter-values-DWjmO7Ai.mjs → parameter-values-CZow98nb.mjs} +3 -3
  162. package/dist/{parse-enum-Dc0dMZ3P.mjs → parse-enum-CLIXMsd8.mjs} +1 -1
  163. package/dist/parse-id-BW09NysN.mjs +13 -0
  164. package/dist/{parse-ref-DTDld_LJ.mjs → parse-ref-Cw5fa4FI.mjs} +1 -1
  165. package/dist/parse-text-T0lTXzTZ.mjs +11 -0
  166. package/dist/{path-BUUAGYO5.mjs → path-K6LPLYPb.mjs} +4 -4
  167. package/dist/{poll-CZeXepUQ.mjs → poll-Dz4tUm2f.mjs} +2 -2
  168. package/dist/{preflight-DcULqq8E.mjs → preflight-CX6cqB90.mjs} +3 -3
  169. package/dist/{process-CTrfxxaC.mjs → process-D0HdqZ3r.mjs} +1 -1
  170. package/dist/{publish-qVFmJQ1E.mjs → publish-COatW4Un.mjs} +4 -4
  171. package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
  172. package/dist/query-BJXTIDhy.mjs +328 -0
  173. package/dist/{query-Cq1lmqL5.mjs → query-DmvkyDfo.mjs} +14 -33
  174. package/dist/remapping-CPAvDKHV.mjs +53 -0
  175. package/dist/{remove-collection-DBqh2Lqm.mjs → remove-collection-Bg-sNX3U.mjs} +5 -5
  176. package/dist/{render-Gx1hR7IF.mjs → render-BSfDD6ip.mjs} +2 -2
  177. package/dist/{replace-CujInVY9.mjs → replace-RCHeZLUT.mjs} +4 -4
  178. package/dist/{rescan-values-HypqBCSK.mjs → rescan-values-CpDGYZvf.mjs} +5 -5
  179. package/dist/rescan-values-PeMnpaFY.mjs +32 -0
  180. package/dist/{run-DEkQSOQa.mjs → run-CaQ7kubO.mjs} +3 -3
  181. package/dist/{run-b3jyF29q.mjs → run-DkRkZRgf.mjs} +4 -4
  182. package/dist/{runs-GHqHLGy4.mjs → runs-BDjoVJ0P.mjs} +5 -5
  183. package/dist/{runtime-nCPku2nN.mjs → runtime-CZ5zh32z.mjs} +21 -82
  184. package/dist/{schema-tables-B5L05Y1L.mjs → schema-tables-C2qjLcPq.mjs} +6 -6
  185. package/dist/{schemas-Clx26p_4.mjs → schemas-D8hfNduk.mjs} +4 -4
  186. package/dist/search-BrQQuNmh.mjs +131 -0
  187. package/dist/search-CnTXKJgx.mjs +85 -0
  188. package/dist/{segment-DiRJcbam.mjs → segment-Bi6eqj3e.mjs} +6 -6
  189. package/dist/{send-DIHkDNBN.mjs → send-CAjgVNlA.mjs} +3 -3
  190. package/dist/{set-D77qUZML.mjs → set-BXTkYWid.mjs} +4 -4
  191. package/dist/{set-active-DCdFgD0O.mjs → set-active-CBQVCePU.mjs} +3 -3
  192. package/dist/set-sensitivity-D39kGTob.mjs +57 -0
  193. package/dist/{setting-DR9bj232.mjs → setting-CPkvkc4H.mjs} +4 -4
  194. package/dist/{setup-DGa2LLEp.mjs → setup-Be3xDXHi.mjs} +3 -3
  195. package/dist/{signal-k7cm5N6h.mjs → signal-CxWeLszu.mjs} +1 -1
  196. package/dist/{skill-list-DAvGGHzS.mjs → skill-list-CBGq30sI.mjs} +2 -2
  197. package/dist/{skills-CqtNuSXM.mjs → skills-CJ9eXouJ.mjs} +2 -2
  198. package/dist/{skills-CCn7cyMP.mjs → skills-DyiLycMY.mjs} +3 -3
  199. package/dist/snippet-QirK70R_.mjs +19 -0
  200. package/dist/{stash-BTtsV0AG.mjs → stash-BVN3s5N_.mjs} +6 -6
  201. package/dist/{status-CW7Dt-nV.mjs → status-BtbMmIWo.mjs} +7 -7
  202. package/dist/{status-XgSS3StV.mjs → status-CxP6w3aL.mjs} +3 -3
  203. package/dist/{subscription-CofRU47d.mjs → subscription-Dr-YHARg.mjs} +6 -6
  204. package/dist/{subscriptions-DCuuPF6U.mjs → subscriptions-8tM8TTeQ.mjs} +6 -6
  205. package/dist/{summary-uGlgKE3C.mjs → summary-DKx6ptQe.mjs} +5 -5
  206. package/dist/sync-schema-B8RY0Ra4.mjs +32 -0
  207. package/dist/{sync-schema-Cu9rD3eH.mjs → sync-schema-kNriXZjG.mjs} +6 -6
  208. package/dist/sync-task-CXFoqlpF.mjs +53 -0
  209. package/dist/table-CZnT6d9x.mjs +26 -0
  210. package/dist/{table-DfuY0N8e.mjs → table-Ci6bhZkb.mjs} +35 -12
  211. package/dist/table-CxvaDiIZ.mjs +155 -0
  212. package/dist/table-selector-flags-1bYkAKld.mjs +42 -0
  213. package/dist/text-DaNkPRwt.mjs +6 -0
  214. package/dist/timeline-CUzx6uXi.mjs +21 -0
  215. package/dist/{timeline-event-D-h0A_oh.mjs → timeline-event-DpNm4dkn.mjs} +6 -6
  216. package/dist/{transform-CtqB1WYo.mjs → transform-CNBIV7No.mjs} +1 -1
  217. package/dist/transform-g4-HHzDp.mjs +28 -0
  218. package/dist/transform-job-DqBtnTrG.mjs +22 -0
  219. package/dist/{transform-tag-BLp_p9J-.mjs → transform-tag-nTb0Ivpj.mjs} +5 -5
  220. package/dist/{transforms-n2IwEcbU.mjs → transforms-BSsAfwAg.mjs} +5 -5
  221. package/dist/tree-lMvw1jnZ.mjs +34 -0
  222. package/dist/{unpublish-DVQCAa3g.mjs → unpublish-CYFDd828.mjs} +3 -3
  223. package/dist/unreferenced-8Xdq76Kw.mjs +36 -0
  224. package/dist/{update-oQeQyqKO.mjs → update-6P_GYCLT.mjs} +5 -5
  225. package/dist/{update-DFdBeJwc.mjs → update-B28EJzrx.mjs} +13 -8
  226. package/dist/{update-DffrdV4b.mjs → update-BDunZa7G.mjs} +4 -4
  227. package/dist/{update-DKO9HF1f.mjs → update-BT2yNB_g.mjs} +6 -6
  228. package/dist/{update-rFRPLlb6.mjs → update-BnMUSFYZ.mjs} +4 -4
  229. package/dist/update-BwrYeKso.mjs +41 -0
  230. package/dist/{update-B7CikkI0.mjs → update-C7DEMiu-.mjs} +7 -7
  231. package/dist/{update-CAsqNhDC.mjs → update-CITzAFG8.mjs} +4 -4
  232. package/dist/update-CLl8tE20.mjs +181 -0
  233. package/dist/{update-C05J2nZ2.mjs → update-CM5uuhjB.mjs} +4 -4
  234. package/dist/{update-ChpOukqq.mjs → update-CQXcsvaa.mjs} +5 -5
  235. package/dist/{update-D4ggtuG4.mjs → update-Cs2zv_L2.mjs} +7 -7
  236. package/dist/{update-NGq0yXZk.mjs → update-D--Fw7-_.mjs} +5 -5
  237. package/dist/{update-D9H6Lh5U.mjs → update-D9p0N8ky.mjs} +4 -4
  238. package/dist/{update-CKDRuduL.mjs → update-DAzRx0of.mjs} +5 -5
  239. package/dist/{update-CnkPYL2i.mjs → update-D_DCOOAB.mjs} +6 -6
  240. package/dist/{update-DScUzKLI.mjs → update-_sYM1GuU.mjs} +7 -7
  241. package/dist/{update-dashcard-DvPqLJ3N.mjs → update-dashcard-VNnIqHDI.mjs} +6 -6
  242. package/dist/{upgrade-BRgw0fvn.mjs → upgrade-Tj_reACv.mjs} +4 -4
  243. package/dist/upload-BKxOpSz3.mjs +13 -0
  244. package/dist/{upload-Do2PBSeH.mjs → upload-C2fhpKkP.mjs} +2 -2
  245. package/dist/{upload-BrfbcbBW.mjs → upload-Dg91ldGg.mjs} +3 -3
  246. package/dist/{uuid-B4eij1d7.mjs → uuid-Blpv_e0S.mjs} +2 -2
  247. package/dist/{validate-xR_MHBNR.mjs → validate-D7e110oU.mjs} +1 -1
  248. package/dist/{validate-query-D6_ad-Gi.mjs → validate-query-C7LuKiUT.mjs} +2 -2
  249. package/dist/{values-xgOftPq5.mjs → values-PonkbYAK.mjs} +5 -5
  250. package/dist/verify-DixUBbd2.mjs +38 -0
  251. package/dist/verify-Dv7ER11c.mjs +38 -0
  252. package/dist/{verify-DTOA_wVM.mjs → verify-Mpb65a5v.mjs} +3 -3
  253. package/dist/verify-flags-CMpRkMPa.mjs +58 -0
  254. package/dist/{wait-BjeFgR13.mjs → wait-CaH6XHQV.mjs} +6 -6
  255. package/dist/{wait-flags-BCeCnaz3.mjs → wait-flags-rUU4NUrv.mjs} +2 -2
  256. package/dist/{window-DSb1tqSe.mjs → window-CI_QD04s.mjs} +1 -1
  257. package/package.json +1 -1
  258. package/skill-data/core/SKILL.md +18 -11
  259. package/skill-data/dashboard/SKILL.md +1 -1
  260. package/skill-data/document/SKILL.md +12 -1
  261. package/skill-data/git-sync/SKILL.md +61 -9
  262. package/skill-data/mbql/SKILL.md +5 -0
  263. package/skill-data/metadata/SKILL.md +36 -6
  264. package/dist/body-Cu94pH4P.mjs +0 -17
  265. package/dist/card-ByOzVxpI.mjs +0 -24
  266. package/dist/collection-BGbW7u_Q.mjs +0 -20
  267. package/dist/dashboard-Bzjz2v6u.mjs +0 -33
  268. package/dist/database-JtHTqSpq.mjs +0 -26
  269. package/dist/delete-runtime-BKEzJn22.mjs +0 -49
  270. package/dist/document-DqJ7Cysa.mjs +0 -19
  271. package/dist/export-DO2josC0.mjs +0 -63
  272. package/dist/field-CHZByaXa.mjs +0 -18
  273. package/dist/field-fDtIrY6D.mjs +0 -80
  274. package/dist/get-yHIEezeG.mjs +0 -31
  275. package/dist/git-sync-NhfLSZA6.mjs +0 -28
  276. package/dist/git-sync-TjX1r_wF.mjs +0 -136
  277. package/dist/list-DgteFn01.mjs +0 -34
  278. package/dist/parse-id-whJX4DAb.mjs +0 -10
  279. package/dist/query-BPtIy79s.mjs +0 -114
  280. package/dist/query-result-E4Q-Gra6.mjs +0 -15
  281. package/dist/search-DxiuY5EV.mjs +0 -97
  282. package/dist/selectors-rEFuyXPZ.mjs +0 -35
  283. package/dist/snippet-g9JTDxqu.mjs +0 -19
  284. package/dist/sync-task-BXeWuARG.mjs +0 -37
  285. package/dist/table-C6h4tIRw.mjs +0 -37
  286. package/dist/table-Di-EY7pg.mjs +0 -18
  287. package/dist/timeline-D7EsWZm6.mjs +0 -21
  288. package/dist/transform-8XK1LIgC.mjs +0 -28
  289. package/dist/transform-job-CTizQkWy.mjs +0 -22
  290. package/dist/tree-cqxiDh2b.mjs +0 -26
  291. package/dist/upload-VXBFKzLT.mjs +0 -13
@@ -1,49 +0,0 @@
1
- import { Q as ConfigError, p as renderSummary, x as promptConfirm } from "./cli.mjs";
2
- import { z } from "zod";
3
- //#region src/commands/delete-runtime.ts
4
- const DeleteResult = z.object({
5
- deleted: z.boolean(),
6
- aborted: z.boolean(),
7
- id: z.number().int()
8
- });
9
- const deleteResultView = {
10
- compactPick: DeleteResult,
11
- tableColumns: [
12
- {
13
- key: "id",
14
- label: "ID"
15
- },
16
- {
17
- key: "deleted",
18
- label: "Deleted"
19
- },
20
- {
21
- key: "aborted",
22
- label: "Aborted"
23
- }
24
- ]
25
- };
26
- async function confirmAndDelete(args) {
27
- if (!args.yes) {
28
- if (process.stdin.isTTY !== true) throw new ConfigError(`refusing to delete ${args.id} without confirmation — pass --yes to proceed non-interactively`);
29
- if (!await promptConfirm({
30
- message: args.promptMessage,
31
- initialValue: false
32
- })) {
33
- renderSummary({
34
- deleted: false,
35
- aborted: true,
36
- id: args.id
37
- }, deleteResultView, args.abortMessage, args.ctx);
38
- return;
39
- }
40
- }
41
- await args.deleteResource();
42
- renderSummary({
43
- deleted: true,
44
- aborted: false,
45
- id: args.id
46
- }, deleteResultView, args.successMessage, args.ctx);
47
- }
48
- //#endregion
49
- export { confirmAndDelete as n, DeleteResult as t };
@@ -1,19 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
2
- //#region src/commands/document/index.ts
3
- var document_default = defineCommandGroup({
4
- name: "document",
5
- description: "Manage Metabase documents",
6
- skills: [{
7
- skill: "document",
8
- purpose: "author the ProseMirror document body"
9
- }],
10
- subCommands: {
11
- list: () => import("./list-vsXIMssK.mjs").then((mod) => mod.default),
12
- get: () => import("./get-CeSQptdl.mjs").then((mod) => mod.default),
13
- create: () => import("./create-B7S5fCkD.mjs").then((mod) => mod.default),
14
- update: () => import("./update-DKO9HF1f.mjs").then((mod) => mod.default),
15
- archive: () => import("./archive-D3yPvUtz.mjs").then((mod) => mod.default)
16
- }
17
- });
18
- //#endregion
19
- export { document_default as default };
@@ -1,63 +0,0 @@
1
- import { E as warn, H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { a as SyncExportResult } from "./git-sync-BwBRmEhE.mjs";
4
- import { n as parseWaitFlags, t as gitSyncWaitFlags } from "./wait-flags-BCeCnaz3.mjs";
5
- import { r as syncExportView } from "./git-sync-TjX1r_wF.mjs";
6
- import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask } from "./sync-task-BXeWuARG.mjs";
7
- //#region src/commands/git-sync/export.ts
8
- var export_default = defineMetabaseCommand({
9
- meta: {
10
- name: "export",
11
- description: "Export Metabase changes back to the configured git remote"
12
- },
13
- requires: ["gitSync.export"],
14
- args: {
15
- ...outputFlags,
16
- ...profileFlag,
17
- ...connectionFlags,
18
- branch: {
19
- type: "string",
20
- description: "Branch to export to (defaults to remote-sync-branch setting)",
21
- alias: "b"
22
- },
23
- message: {
24
- type: "string",
25
- description: "Commit message",
26
- alias: "m"
27
- },
28
- force: {
29
- type: "boolean",
30
- description: "Force-push / overwrite remote",
31
- default: false
32
- },
33
- ...gitSyncWaitFlags
34
- },
35
- outputSchema: SyncExportResult,
36
- examples: [
37
- "mb git-sync export -m \"update dashboards\"",
38
- "mb git-sync export --branch main --json",
39
- "mb git-sync export --no-wait"
40
- ],
41
- async run({ args, ctx, getClient }) {
42
- const wait = parseWaitFlags(args);
43
- const params = {};
44
- if (args.branch !== void 0 && args.branch !== "") params.branch = args.branch;
45
- if (args.message !== void 0 && args.message !== "") params.message = args.message;
46
- if (args.force) params.force = true;
47
- if (wait.enabled) params.wait = taskPollOptions(wait.schedule);
48
- const result = await (await getClient()).gitSync.export(params);
49
- if (!wait.enabled) renderSummary(result, syncExportView, `Started export task #${result.task_id}.`, ctx);
50
- else {
51
- const final = result.final ?? null;
52
- renderSummary(result, syncExportView, final === null ? `Export task #${result.task_id} finished.` : formatSyncTask(final), ctx);
53
- throwIfFailedTask(final, "export");
54
- }
55
- emitRealignHint(ctx);
56
- }
57
- });
58
- function emitRealignHint(ctx) {
59
- if (ctx.format !== "text") return;
60
- warn("\nNote: if exporting to a host-bound repo, realign the host working tree with:\n git -C <repo-path> restore --staged --worktree .");
61
- }
62
- //#endregion
63
- export { export_default as default };
@@ -1,18 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
2
- //#region src/commands/field/index.ts
3
- var field_default = defineCommandGroup({
4
- name: "field",
5
- description: "Manage Metabase fields",
6
- skills: [{
7
- skill: "metadata",
8
- purpose: "semantic types, FK targets, visibility, dropdown behavior"
9
- }],
10
- subCommands: {
11
- get: () => import("./get-yHIEezeG.mjs").then((m) => m.default),
12
- values: () => import("./values-xgOftPq5.mjs").then((m) => m.default),
13
- summary: () => import("./summary-uGlgKE3C.mjs").then((m) => m.default),
14
- update: () => import("./update-DFdBeJwc.mjs").then((m) => m.default)
15
- }
16
- });
17
- //#endregion
18
- export { field_default as default };
@@ -1,80 +0,0 @@
1
- import { r as FieldCompact, s as FieldSummary, u as FieldValuesCompact } from "./field-CcN4oZy6.mjs";
2
- //#region src/output/views/field.ts
3
- function formatTypeTag(value) {
4
- return typeof value === "string" ? value.replace(/^type\//, "") : "";
5
- }
6
- function formatFkTarget(value) {
7
- return typeof value === "number" ? `field ${value}` : "";
8
- }
9
- const fieldView = {
10
- compactPick: FieldCompact,
11
- tableColumns: [
12
- {
13
- key: "id",
14
- label: "ID"
15
- },
16
- {
17
- key: "name",
18
- label: "Name"
19
- },
20
- {
21
- key: "display_name",
22
- label: "Display Name"
23
- },
24
- {
25
- key: "base_type",
26
- label: "Base Type",
27
- format: formatTypeTag
28
- },
29
- {
30
- key: "semantic_type",
31
- label: "Semantic Type",
32
- format: formatTypeTag
33
- },
34
- {
35
- key: "fk_target_field_id",
36
- label: "FK Target",
37
- format: formatFkTarget
38
- },
39
- {
40
- key: "description",
41
- label: "Description"
42
- }
43
- ]
44
- };
45
- const fieldValuesView = {
46
- compactPick: FieldValuesCompact,
47
- tableColumns: [
48
- {
49
- key: "field_id",
50
- label: "Field"
51
- },
52
- {
53
- key: "has_more_values",
54
- label: "Has More"
55
- },
56
- {
57
- key: "values",
58
- label: "Values"
59
- }
60
- ]
61
- };
62
- const fieldSummaryView = {
63
- compactPick: FieldSummary,
64
- tableColumns: [
65
- {
66
- key: "field_id",
67
- label: "Field"
68
- },
69
- {
70
- key: "count",
71
- label: "Count"
72
- },
73
- {
74
- key: "distincts",
75
- label: "Distinct"
76
- }
77
- ]
78
- };
79
- //#endregion
80
- export { fieldValuesView as n, fieldView as r, fieldSummaryView as t };
@@ -1,31 +0,0 @@
1
- import { H as outputFlags, U as profileFlag, u as renderItem, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { t as Field } from "./field-CcN4oZy6.mjs";
5
- import { r as fieldView } from "./field-fDtIrY6D.mjs";
6
- //#region src/commands/field/get.ts
7
- var get_default = defineMetabaseCommand({
8
- meta: {
9
- name: "get",
10
- description: "Get a field by id"
11
- },
12
- requires: ["field.get"],
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Field id",
20
- required: true
21
- }
22
- },
23
- outputSchema: Field,
24
- examples: ["mb field get 100", "mb field get 100 --json"],
25
- async run({ args, ctx, getClient }) {
26
- const id = parseId(args.id);
27
- renderItem(await (await getClient()).field.get(id), fieldView, ctx);
28
- }
29
- });
30
- //#endregion
31
- export { get_default as default };
@@ -1,28 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
2
- //#region src/commands/git-sync/index.ts
3
- var git_sync_default = defineCommandGroup({
4
- name: "git-sync",
5
- description: "Sync Metabase content with a git remote",
6
- skills: [{
7
- skill: "git-sync",
8
- purpose: "import/export round-trip and dirty checks"
9
- }],
10
- subCommands: {
11
- status: () => import("./status-CW7Dt-nV.mjs").then((mod) => mod.default),
12
- "is-dirty": () => import("./is-dirty-XqDfqXGi.mjs").then((mod) => mod.default),
13
- "has-remote-changes": () => import("./has-remote-changes-DE2_14FK.mjs").then((mod) => mod.default),
14
- dirty: () => import("./dirty-U51bMoCP.mjs").then((mod) => mod.default),
15
- "current-task": () => import("./current-task-lGh69Z1i.mjs").then((mod) => mod.default),
16
- "cancel-task": () => import("./cancel-task-DUmlQQpi.mjs").then((mod) => mod.default),
17
- wait: () => import("./wait-BjeFgR13.mjs").then((mod) => mod.default),
18
- import: () => import("./import-Cs7wk058.mjs").then((mod) => mod.default),
19
- export: () => import("./export-DO2josC0.mjs").then((mod) => mod.default),
20
- stash: () => import("./stash-BTtsV0AG.mjs").then((mod) => mod.default),
21
- branches: () => import("./branches-CUyPxeeW.mjs").then((mod) => mod.default),
22
- "create-branch": () => import("./create-branch-Cw-uXows.mjs").then((mod) => mod.default),
23
- "add-collection": () => import("./add-collection-BjVAdZ1n.mjs").then((mod) => mod.default),
24
- "remove-collection": () => import("./remove-collection-DBqh2Lqm.mjs").then((mod) => mod.default)
25
- }
26
- });
27
- //#endregion
28
- export { git_sync_default as default };
@@ -1,136 +0,0 @@
1
- import { a as SyncExportResult, c as SyncSettingsUpdateResult, d as SyncTaskCompact, l as SyncStashResult, o as SyncImportResult, r as SyncDirtyItemCompact, s as SyncRemoteChanges, t as SyncBranchCreated } from "./git-sync-BwBRmEhE.mjs";
2
- //#region src/output/views/git-sync.ts
3
- const syncTaskView = {
4
- compactPick: SyncTaskCompact,
5
- tableColumns: [
6
- {
7
- key: "id",
8
- label: "ID"
9
- },
10
- {
11
- key: "sync_task_type",
12
- label: "Type"
13
- },
14
- {
15
- key: "status",
16
- label: "Status"
17
- },
18
- {
19
- key: "progress",
20
- label: "Progress"
21
- },
22
- {
23
- key: "version",
24
- label: "Version"
25
- },
26
- {
27
- key: "error_message",
28
- label: "Error"
29
- }
30
- ]
31
- };
32
- const syncDirtyItemView = {
33
- compactPick: SyncDirtyItemCompact,
34
- tableColumns: [
35
- {
36
- key: "id",
37
- label: "ID"
38
- },
39
- {
40
- key: "model",
41
- label: "Model"
42
- },
43
- {
44
- key: "name",
45
- label: "Name"
46
- },
47
- {
48
- key: "sync_status",
49
- label: "Status"
50
- },
51
- {
52
- key: "collection_id",
53
- label: "Collection"
54
- }
55
- ]
56
- };
57
- const syncRemoteChangesView = {
58
- compactPick: SyncRemoteChanges,
59
- tableColumns: [
60
- {
61
- key: "has_changes",
62
- label: "Has changes"
63
- },
64
- {
65
- key: "remote_version",
66
- label: "Remote"
67
- },
68
- {
69
- key: "local_version",
70
- label: "Local"
71
- },
72
- {
73
- key: "cached",
74
- label: "Cached"
75
- }
76
- ]
77
- };
78
- const syncBranchCreatedView = {
79
- compactPick: SyncBranchCreated,
80
- tableColumns: [{
81
- key: "status",
82
- label: "Status"
83
- }, {
84
- key: "message",
85
- label: "Message"
86
- }]
87
- };
88
- const syncSettingsUpdateView = {
89
- compactPick: SyncSettingsUpdateResult,
90
- tableColumns: [{
91
- key: "success",
92
- label: "Success"
93
- }, {
94
- key: "task_id",
95
- label: "Task ID"
96
- }]
97
- };
98
- const syncImportView = {
99
- compactPick: SyncImportResult,
100
- tableColumns: [{
101
- key: "task_id",
102
- label: "Task ID"
103
- }, {
104
- key: "message",
105
- label: "Message"
106
- }]
107
- };
108
- const syncExportView = {
109
- compactPick: SyncExportResult,
110
- tableColumns: [{
111
- key: "task_id",
112
- label: "Task ID"
113
- }, {
114
- key: "message",
115
- label: "Message"
116
- }]
117
- };
118
- const syncStashView = {
119
- compactPick: SyncStashResult,
120
- tableColumns: [
121
- {
122
- key: "task_id",
123
- label: "Task ID"
124
- },
125
- {
126
- key: "status",
127
- label: "Status"
128
- },
129
- {
130
- key: "message",
131
- label: "Message"
132
- }
133
- ]
134
- };
135
- //#endregion
136
- export { syncRemoteChangesView as a, syncTaskView as c, syncImportView as i, syncDirtyItemView as n, syncSettingsUpdateView as o, syncExportView as r, syncStashView as s, syncBranchCreatedView as t };
@@ -1,34 +0,0 @@
1
- import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, U as profileFlag, d as renderList, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { n as windowList } from "./window-DSb1tqSe.mjs";
5
- import { n as TableCompact } from "./table-DfuY0N8e.mjs";
6
- import { t as tableView } from "./table-C6h4tIRw.mjs";
7
- //#region src/commands/table/list.ts
8
- const TableListEnvelope = listEnvelopeSchema(TableCompact);
9
- var list_default = defineMetabaseCommand({
10
- meta: {
11
- name: "list",
12
- description: "List tables (optionally filtered by database)"
13
- },
14
- requires: ["table.list"],
15
- args: {
16
- ...outputFlags,
17
- ...listFlags,
18
- ...profileFlag,
19
- ...connectionFlags,
20
- "db-id": {
21
- type: "string",
22
- description: "Filter by database id"
23
- }
24
- },
25
- outputSchema: TableListEnvelope,
26
- examples: ["mb table list", "mb table list --db-id 1 --json"],
27
- async run({ args, ctx, getClient }) {
28
- const dbIdFilter = args["db-id"] === void 0 ? void 0 : parseId(args["db-id"], "db-id");
29
- const { data } = await (await getClient()).table.list();
30
- renderList(windowList(dbIdFilter === void 0 ? data : data.filter((row) => row.db_id === dbIdFilter), ctx.range), tableView, ctx);
31
- }
32
- });
33
- //#endregion
34
- export { list_default as default };
@@ -1,10 +0,0 @@
1
- import { rt as parseInteger } from "./runtime-nCPku2nN.mjs";
2
- //#region src/commands/parse-id.ts
3
- function parseId(value, name = "id") {
4
- return parseInteger(value, {
5
- name,
6
- min: 1
7
- });
8
- }
9
- //#endregion
10
- export { parseId as t };
@@ -1,114 +0,0 @@
1
- import { H as outputFlags, Q as ConfigError, U as profileFlag, m as writeJson, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { L as HttpError, R as chainRequestFailure, t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as readBody } from "./body-Cu94pH4P.mjs";
4
- import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
- import { a as CardQueryResult, l as DatasetQuery } from "./card-voh1k4hl.mjs";
6
- import { t as cardQueryView } from "./card-CEkp1mcI.mjs";
7
- import { a as validateQuery, i as isMbql5Query, n as assertNotLegacyEnvelopeWrappingMbql5, r as getQuerySchemaBundle, t as ValidationOutcome } from "./validate-xR_MHBNR.mjs";
8
- import { o as skipValidateFlag } from "./validate-query-D6_ad-Gi.mjs";
9
- import { t as formatQueryResult } from "./query-result-E4Q-Gra6.mjs";
10
- import { z } from "zod";
11
- //#region src/commands/query.ts
12
- const QueryBody = z.unknown().describe("The query body: {\"lib/type\": \"mbql/query\", database, stages}; full schema: mb query --print-schema");
13
- const QueryDryRunOutcome = ValidationOutcome.extend({ sql: z.string().nullable().describe("The compiled native query; null when it did not compile") });
14
- const QueryOutput = z.union([CardQueryResult, QueryDryRunOutcome]);
15
- const COMPILE_REJECTION_STATUSES = /* @__PURE__ */ new Set([400, 500]);
16
- const FORBIDDEN_STATUS = 403;
17
- const WHOLE_QUERY_POINTER = "";
18
- var query_default = defineMetabaseCommand({
19
- meta: {
20
- name: "query",
21
- description: "Run an ad-hoc MBQL or native query"
22
- },
23
- details: "Reads a JSON query body from --body, --file, or stdin and runs it. MBQL 5 is Metabase's structured query format, shaped {\"lib/type\": \"mbql/query\", \"database\": <database id>, \"stages\": [{\"lib/type\": \"mbql.stage/mbql\", \"source-table\": <table id>, \"aggregation\": [[\"count\", {}]]}]} with ids from `mb database list` and `mb table list`; it is checked against a bundled JSON Schema before sending, and --print-schema prints that schema. --dry-run checks the body without running it: the local schema check, then the server compiles it to native SQL without touching the warehouse. It prints {ok, errors:[{path, message}], sql} and exits 0 when the query compiled, 2 when either check rejected it. Legacy MBQL 4 and legacy native bodies skip the local check.",
24
- skills: [{
25
- skill: "mbql",
26
- purpose: "body shape, clause rules, and the dry-run loop"
27
- }],
28
- requires: ["dataset.native", "dataset.query"],
29
- args: {
30
- ...outputFlags,
31
- ...profileFlag,
32
- ...connectionFlags,
33
- ...bodyInputFlags,
34
- "dry-run": {
35
- type: "boolean",
36
- description: "Check the body and compile it on the server to native SQL without running it; prints {ok, errors, sql}"
37
- },
38
- "print-schema": {
39
- type: "boolean",
40
- description: "Emit the bundled MBQL 5 query JSON Schema and exit; no body required"
41
- },
42
- ...skipValidateFlag
43
- },
44
- inputSchema: QueryBody,
45
- outputSchema: QueryOutput,
46
- examples: [
47
- "mb query --print-schema",
48
- "cat q.json | mb query --dry-run",
49
- "mb query --file q.json",
50
- "mb query --file q.json --skip-validate"
51
- ],
52
- async run({ args, ctx, getClient }) {
53
- if (args["print-schema"] === true) {
54
- writeJson(getQuerySchemaBundle());
55
- return;
56
- }
57
- const dryRun = args["dry-run"] === true;
58
- const explicitSkip = args["skip-validate"] === true;
59
- if (dryRun && explicitSkip) throw new ConfigError("--skip-validate cannot be combined with --dry-run");
60
- const body = await readBody({
61
- flag: args.body,
62
- file: args.file
63
- }, QueryBody);
64
- if (!explicitSkip) assertNotLegacyEnvelopeWrappingMbql5(body, {
65
- contextLabel: "query",
66
- bodyNoun: "the body"
67
- });
68
- if (!explicitSkip && isMbql5Query(body)) {
69
- const local = validateQuery(body);
70
- if (!local.ok) {
71
- writeJson(dryRun ? notCompiled(local) : local);
72
- const hint = dryRun ? "" : " — pass --dry-run to check it without running";
73
- throw new ConfigError(`validation failed: ${local.errors.length} error(s)${hint}`);
74
- }
75
- }
76
- if (dryRun) {
77
- const query = DatasetQuery.parse(body);
78
- const outcome = await (await getClient()).dataset.native(query).then(compiledOutcome, rejectedOutcome);
79
- writeJson(outcome);
80
- if (!outcome.ok) throw new ConfigError(`server validation failed: ${outcome.errors.length} error(s)`);
81
- return;
82
- }
83
- const queryResult = await (await getClient()).dataset.query(body);
84
- renderSummary(queryResult, cardQueryView, () => formatQueryResult(queryResult), ctx);
85
- }
86
- });
87
- function notCompiled(local) {
88
- return {
89
- ...local,
90
- sql: null
91
- };
92
- }
93
- function compiledOutcome(compiled) {
94
- return {
95
- ok: true,
96
- errors: [],
97
- sql: typeof compiled.query === "string" ? compiled.query : JSON.stringify(compiled.query)
98
- };
99
- }
100
- function rejectedOutcome(error) {
101
- if (!(error instanceof HttpError)) throw error;
102
- if (error.status === FORBIDDEN_STATUS) throw chainRequestFailure(error, `the compile check could not run because the server refused permission: ${error.message}`);
103
- if (!COMPILE_REJECTION_STATUSES.has(error.status)) throw error;
104
- return {
105
- ok: false,
106
- errors: [{
107
- path: WHOLE_QUERY_POINTER,
108
- message: error.message
109
- }],
110
- sql: null
111
- };
112
- }
113
- //#endregion
114
- export { query_default as default };
@@ -1,15 +0,0 @@
1
- import { _ as formatScalar, v as renderRows } from "./cli.mjs";
2
- //#region src/output/query-result.ts
3
- function formatQueryResult(result) {
4
- if (result.status !== "completed" || result.data === void 0) {
5
- const detail = typeof result.error === "string" && result.error !== "" ? `: ${result.error}` : "";
6
- return `Query ${result.status}${detail}`;
7
- }
8
- const head = result.data.cols.map((col) => col.display_name ?? col.name);
9
- const rowCount = result.row_count ?? result.data.rows.length;
10
- const summary = `${rowCount} row${rowCount === 1 ? "" : "s"}.`;
11
- if (result.data.rows.length === 0) return summary;
12
- return `${renderRows(head, result.data.rows.map((row) => Array.isArray(row) ? row.map((cell) => formatScalar(cell)) : [formatScalar(row)]))}\n${summary}`;
13
- }
14
- //#endregion
15
- export { formatQueryResult as t };