@metabase/cli 0.3.1 → 0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a

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 (268) hide show
  1. package/dist/{add-collection-CYDUm_XO.mjs → add-collection-B_-eMU_k.mjs} +6 -9
  2. package/dist/{alert-ClyhtxIz.mjs → alert-Dalin_DD.mjs} +7 -7
  3. package/dist/{alerts-Dt3D1gcz.mjs → alerts-DpBgrjPI.mjs} +7 -7
  4. package/dist/{append-Bl_Ensmr.mjs → append-C1JNVALm.mjs} +5 -5
  5. package/dist/{archive-BOyKhNOz.mjs → archive-52ZHbFDm2.mjs} +6 -6
  6. package/dist/{archive-DiGxCojL.mjs → archive-B51prFgS.mjs} +4 -4
  7. package/dist/{archive-CWceyy8x.mjs → archive-BkITQyWW.mjs} +5 -5
  8. package/dist/{archive-BJZ7Dace.mjs → archive-CISXgZAI.mjs} +6 -6
  9. package/dist/{archive-D3a3Wgz0.mjs → archive-CdKf_Eqq.mjs} +4 -4
  10. package/dist/{archive-DVGDg8mP.mjs → archive-CicPYX27.mjs} +6 -6
  11. package/dist/{archive-CNblz55j.mjs → archive-CwITzj_j.mjs} +6 -6
  12. package/dist/{archive-DSMqHRr1.mjs → archive-DA3OiLEE.mjs} +4 -4
  13. package/dist/{archive-nKD3mOB8.mjs → archive-DVHxeDKS.mjs} +6 -6
  14. package/dist/{archive-BdHXQg4I.mjs → archive-DckxlWBt.mjs} +4 -4
  15. package/dist/{archive-DDru3vdy.mjs → archive-cAdUa1-2.mjs} +4 -4
  16. package/dist/{auth-aCksg8q2.mjs → auth-A96JOCQx.mjs} +5 -5
  17. package/dist/{body-DxRSAMNC.mjs → body-CshgcV6U.mjs} +3 -3
  18. package/dist/{branches-_0VWR2Zm.mjs → branches-CbcwWYL9.mjs} +4 -7
  19. package/dist/{cancel-ctpVE8uC.mjs → cancel-DpDcVY7M.mjs} +4 -4
  20. package/dist/{cancel-task-FtxBka-M.mjs → cancel-task-B4RDvIYb.mjs} +5 -8
  21. package/dist/{card-zyUkr2nS.mjs → card-CEkp1mcI.mjs} +1 -1
  22. package/dist/card-CefVYtF7.mjs +24 -0
  23. package/dist/{card-DZxRmver.mjs → card-voh1k4hl.mjs} +14 -11
  24. package/dist/{cards-DHOWAvfv.mjs → cards-BC0JX8Yg.mjs} +7 -7
  25. package/dist/cli.mjs +582 -69
  26. package/dist/client-ClL6gf7G.mjs +3783 -0
  27. package/dist/collection-Be5AHVWP.mjs +20 -0
  28. package/dist/{collection-CfulNRBG.mjs → collection-BxdPxD38.mjs} +1 -1
  29. package/dist/{collection-CGoVLvcD.mjs → collection-DYM0p3Xl.mjs} +1 -1
  30. package/dist/{collection-namespace-CEoQ7G08.mjs → collection-namespace-Dv0l-V9K.mjs} +2 -2
  31. package/dist/{content-translation-DNKerjS3.mjs → content-translation-BXIXL4eW.mjs} +3 -3
  32. package/dist/{create-DmvoibX8.mjs → create--fiwuTWc.mjs} +4 -4
  33. package/dist/{create-CLG2-bso.mjs → create-B9qXQ_wV.mjs} +6 -6
  34. package/dist/{create-CEydRMWS.mjs → create-BVNhtAgF.mjs} +7 -7
  35. package/dist/{create-C9vy4ZG6.mjs → create-BbjSOTN-.mjs} +5 -5
  36. package/dist/{create-BdPVWYSi.mjs → create-BcsVwXgS2.mjs} +6 -6
  37. package/dist/{create-CcLchJAN.mjs → create-Bryrkb9g.mjs} +7 -7
  38. package/dist/{create-7ddYK4TA.mjs → create-CHr8MPPq.mjs} +6 -6
  39. package/dist/{create-DaYRnK5P.mjs → create-D--Z1S3p2.mjs} +8 -8
  40. package/dist/{create-F4Lf09xq.mjs → create-DWFJdyIr.mjs} +4 -4
  41. package/dist/{create-vlrlY-2E.mjs → create-Dhai9zAt.mjs} +4 -4
  42. package/dist/create-DiJ8bUb-.mjs +34 -0
  43. package/dist/{create-C78g8Crb.mjs → create-DmN2gFc4.mjs} +5 -5
  44. package/dist/{create-wJR4CxHA.mjs → create-NCKHHdov.mjs} +5 -8
  45. package/dist/{create-C3IaXXty.mjs → create-YetX69Re.mjs} +4 -4
  46. package/dist/{create-e650zxzX.mjs → create-Za1EskpV.mjs} +5 -5
  47. package/dist/{create-branch-B8C7jl-J.mjs → create-branch-CseVn3lp.mjs} +5 -9
  48. package/dist/{create-DIVhBIyE.mjs → create-kZIIEN2Y.mjs} +11 -7
  49. package/dist/{csv-BLPJtlSC.mjs → csv-DNzesu8y.mjs} +5 -5
  50. package/dist/{current-task-C-ldJbWE.mjs → current-task-DRTKZcP9.mjs} +5 -8
  51. package/dist/{dashboard-CtO_3EfC.mjs → dashboard-CMw13KXM.mjs} +10 -10
  52. package/dist/{dashboard-CKUR8ZpQ.mjs → dashboard-D0hwTC-f.mjs} +11 -2
  53. package/dist/{dashboard-BlbNszi8.mjs → dashboard-DgK81azj.mjs} +1 -1
  54. package/dist/{database-B19qlLKZ.mjs → database-C3E9PZSx.mjs} +1 -1
  55. package/dist/{database-C8G6ZKG0.mjs → database-JtHTqSpq.mjs} +1 -1
  56. package/dist/{db-xXselnBq.mjs → db-BDijt81U.mjs} +7 -7
  57. package/dist/{delete-BZZHw6pm.mjs → delete--15it-A8.mjs} +5 -5
  58. package/dist/delete-Bsdwqh7H.mjs +44 -0
  59. package/dist/{delete-ZJJyqsRh.mjs → delete-BudvZkvK.mjs} +5 -5
  60. package/dist/{delete-BwSPQy7m.mjs → delete-BxjJ66BS.mjs} +5 -5
  61. package/dist/{delete-BZwAOQxG.mjs → delete-Dc8E5YwZ.mjs} +5 -5
  62. package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-BKEzJn22.mjs} +1 -2
  63. package/dist/{delete-table-CJktZE3w.mjs → delete-table-5AQpn8OB.mjs} +5 -5
  64. package/dist/{delete-D6WxgWRp.mjs → delete-wFsy80db.mjs} +5 -5
  65. package/dist/{dependencies-BdqIqEIy.mjs → dependencies-C1ogC3BV.mjs} +7 -7
  66. package/dist/{dirty-BW2As2wS.mjs → dirty-CSLDYO-K.mjs} +6 -9
  67. package/dist/document-BGzVip5_.mjs +19 -0
  68. package/dist/{document-Cd2mmqCp.mjs → document-BHpLJbKU.mjs} +5 -0
  69. package/dist/{document-D6OybtP2.mjs → document-CA0Q6lqu.mjs} +1 -1
  70. package/dist/{download-mfFJ9oRS.mjs → download-Ddap1OAo.mjs} +3 -6
  71. package/dist/{eid-DZ-4t2xe.mjs → eid-HnrWhPoe.mjs} +4 -5
  72. package/dist/{events-D6yFmXP1.mjs → events-CXqetjcS.mjs} +5 -5
  73. package/dist/{export-DYZjz1WP.mjs → export-IFZdgYZ2.mjs} +7 -10
  74. package/dist/{field-BJ54wmIX.mjs → field-BJ6HoLRd.mjs} +5 -5
  75. package/dist/{field-Cr2DPUG9.mjs → field-CcN4oZy6.mjs} +16 -1
  76. package/dist/{field-BPsNa-TO.mjs → field-fDtIrY6D.mjs} +1 -1
  77. package/dist/{fields-FUWCgPOa.mjs → fields-DxHxuxwO.mjs} +7 -7
  78. package/dist/{get-ByZJf9nO.mjs → get-B2pj2q3X.mjs} +5 -5
  79. package/dist/{get-C_5AbfpO.mjs → get-BF2vdF3W.mjs} +4 -4
  80. package/dist/{get-DAOSGt5Z.mjs → get-BGLvyOO3.mjs} +6 -6
  81. package/dist/{get-DMECsioX.mjs → get-BcoJ9Aha.mjs} +4 -4
  82. package/dist/{get-CsN7NBI0.mjs → get-BiPclcIP.mjs} +4 -4
  83. package/dist/{get-DCutQeiV.mjs → get-C3cuZNeW.mjs} +4 -4
  84. package/dist/{get-CQ0-fFWP.mjs → get-CDnmpfHQ.mjs} +5 -8
  85. package/dist/{get-DRJtsS1_.mjs → get-CE9_4Q7E.mjs} +4 -4
  86. package/dist/{get-C5q49Dgx.mjs → get-C_tdSMwW2.mjs} +6 -6
  87. package/dist/{get-CWnriw33.mjs → get-CxUQyhte.mjs} +6 -6
  88. package/dist/{get-DVyesErX.mjs → get-DW7mCaGe.mjs} +6 -6
  89. package/dist/{get-DYaQpixt.mjs → get-D_x-ENFe.mjs} +6 -6
  90. package/dist/{get-Ba2HRdrx.mjs → get-DjlQhgD4.mjs} +6 -6
  91. package/dist/{get-DhkltKIV.mjs → get-DmKtPNOy.mjs} +4 -4
  92. package/dist/{get-BWl3vzsf.mjs → get-Dtre5jzh.mjs} +6 -6
  93. package/dist/get-H6kInHIx.mjs +93 -0
  94. package/dist/{get-BraVQ1FJ.mjs → get-b0CoPz5B.mjs} +6 -6
  95. package/dist/{get-LAew34ID.mjs → get-eJilYnHk.mjs} +6 -6
  96. package/dist/get-i0KInCw9.mjs +32 -0
  97. package/dist/{get-_ggLr1tY.mjs → get-jofVjU6e.mjs} +6 -6
  98. package/dist/{get-run-oH4dRCBx.mjs → get-run-BE1HtJDW.mjs} +6 -6
  99. package/dist/{git-sync-BDnxPrqU.mjs → git-sync-BwBRmEhE.mjs} +18 -1
  100. package/dist/{git-sync-DxD_ng48.mjs → git-sync-TjX1r_wF.mjs} +1 -1
  101. package/dist/git-sync-xKC1sqC4.mjs +28 -0
  102. package/dist/{group-DBM87IgC.mjs → group-YQQ5GIcP.mjs} +2 -2
  103. package/dist/{has-remote-changes-CnmyIw_7.mjs → has-remote-changes-Cj1KhBOT.mjs} +5 -8
  104. package/dist/{import-B7Si-bSI.mjs → import-DLb9VN4l.mjs} +7 -10
  105. package/dist/{input-DH9i67x_.mjs → input-D5tQEfqN.mjs} +1 -1
  106. package/dist/{is-dirty-BOH_VEA8.mjs → is-dirty-BxtgV2xF.mjs} +3 -6
  107. package/dist/{items-DouHkWev.mjs → items-DLUYc5-z.mjs} +7 -7
  108. package/dist/{key-BEhqIzIQ.mjs → key-PYetuQ13.mjs} +1 -1
  109. package/dist/{library-1J_4Dicw.mjs → library-BNSxXOpc.mjs} +5 -5
  110. package/dist/library-BPIzb3K_.mjs +81 -0
  111. package/dist/{library-DfYAT2Ep.mjs → library-PGCfm0UA.mjs} +1 -1
  112. package/dist/{list-D25ofn4v.mjs → list-B1soS8QW.mjs} +7 -7
  113. package/dist/{list-Cy0w4Fap.mjs → list-BQnOEB3W.mjs} +4 -4
  114. package/dist/{list-BeMYIeiI.mjs → list-BUz6KOfw.mjs} +7 -7
  115. package/dist/{list-C1bAtgO1.mjs → list-BcP1DTJH.mjs} +4 -4
  116. package/dist/{list-DJK9_BEF.mjs → list-C5mS_ehX.mjs} +14 -13
  117. package/dist/{list-qs9wAtC3.mjs → list-CBLxhaNZ.mjs} +4 -4
  118. package/dist/{list-aKUk-a1Y.mjs → list-CERbeLbQ.mjs} +7 -7
  119. package/dist/{list-B2Ddf4W0.mjs → list-COLpwXW4.mjs} +5 -5
  120. package/dist/{list-sDpy4nDU.mjs → list-CQbiSx26.mjs} +6 -6
  121. package/dist/{list-C0zJ2ehz.mjs → list-CX9qZ-bx.mjs} +6 -6
  122. package/dist/{list-DhViDVx_.mjs → list-CehE6KBV.mjs} +6 -6
  123. package/dist/list-Cuhf2lKL.mjs +35 -0
  124. package/dist/{list-D2IYZ6lk.mjs → list-CzRzCbCY.mjs} +6 -6
  125. package/dist/{list-DWLGpMvr.mjs → list-D-SyhKFw.mjs} +7 -7
  126. package/dist/{list-DptEWB5Y.mjs → list-Dat8QNcf.mjs} +4 -4
  127. package/dist/{list-C7UvO3Uw.mjs → list-M8J10Ozk.mjs} +6 -6
  128. package/dist/{list-BXlTYsYA.mjs → list-Sd7jGZoX.mjs} +4 -4
  129. package/dist/list-cIMww2Me.mjs +60 -0
  130. package/dist/{list-BK_6VNm_.mjs → list-jhQSgh6i.mjs} +4 -4
  131. package/dist/{login-BmyCAfRV.mjs → login-BfLqBfCd.mjs} +18 -15
  132. package/dist/{logout-DUR32q0V.mjs → logout-BpRXB3Ze.mjs} +3 -4
  133. package/dist/{measure-DdVp-8jw.mjs → measure-Ds8O5Evr.mjs} +6 -6
  134. package/dist/{notification-Fcq1fIPw.mjs → notification-DVrLkjFT.mjs} +1 -1
  135. package/dist/{parameter-DUKR8NXo.mjs → parameter-Celg0wZa.mjs} +1 -1
  136. package/dist/{parameter-values-CBR-cBev.mjs → parameter-values-DhrkLXoN.mjs} +5 -6
  137. package/dist/{parse-enum-D0Jfm_Bz.mjs → parse-enum-Dc0dMZ3P.mjs} +1 -1
  138. package/dist/{parse-id-B3YwNojT.mjs → parse-id-DtM6q9HU.mjs} +1 -1
  139. package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-DTDld_LJ.mjs} +1 -1
  140. package/dist/{path-D8BQmEhL.mjs → path-_GHFrTLx.mjs} +5 -5
  141. package/dist/{poll-75SvT7Zv.mjs → poll-KLl4Eq8Y.mjs} +2 -2
  142. package/dist/{preflight-CoF1Em99.mjs → preflight-BpYtF0IU.mjs} +3 -4
  143. package/dist/{process-DBOOrmET.mjs → process-CLtOWKBn.mjs} +1 -1
  144. package/dist/{publish-Cb7XrQ3X.mjs → publish-D-7Zlmuk.mjs} +9 -9
  145. package/dist/{pulse-BmsDenXm.mjs → pulse-Dz0ocv0l.mjs} +1 -1
  146. package/dist/{pulse-DhG6I9mI.mjs → pulse-x0gFxWfG.mjs} +2 -2
  147. package/dist/{query-D35B588l.mjs → query-B1CZztxs.mjs} +10 -12
  148. package/dist/query-CxESKMve.mjs +114 -0
  149. package/dist/{query-result-DBDwk8TS.mjs → query-result-E4Q-Gra6.mjs} +1 -1
  150. package/dist/{remove-collection-DJem6V26.mjs → remove-collection-C4saCFxz.mjs} +6 -9
  151. package/dist/{render-CI93iP0I.mjs → render-6O_eF-P1.mjs} +13 -2
  152. package/dist/{replace-CtsWICrD.mjs → replace-BuR4f2Ai.mjs} +5 -5
  153. package/dist/{rescan-values-CaXUL6z5.mjs → rescan-values-CNOiiWQ5.mjs} +6 -6
  154. package/dist/{run-CM-Amtbf.mjs → run-DijA_BXt.mjs} +26 -14
  155. package/dist/run-FmRruANb.mjs +64 -0
  156. package/dist/{run-BeLm17F4.mjs → run-QEUbWNm7.mjs} +9 -9
  157. package/dist/{runs-DFG63zgr.mjs → runs-BSlhVeDO.mjs} +7 -7
  158. package/dist/{runtime-z8rra6-I.mjs → runtime-Dtb93zKy.mjs} +994 -252
  159. package/dist/{schema-tables-COAHkIcy.mjs → schema-tables-BE3rEb6I.mjs} +7 -7
  160. package/dist/{schemas-BX5BATiV.mjs → schemas-yDjBiwlH.mjs} +5 -5
  161. package/dist/{search-DFBwUc6d.mjs → search-BAXg-EJw.mjs} +2 -1
  162. package/dist/{search-CPvvmhdt.mjs → search-CR_xNArA.mjs} +6 -6
  163. package/dist/{segment-C62L6BI3.mjs → segment-Cm6zQjJW.mjs} +6 -6
  164. package/dist/{selectors-P4QnrORk.mjs → selectors-C-vgMcGK.mjs} +3 -3
  165. package/dist/{send-PZh5IKF8.mjs → send-kC8oerkT.mjs} +4 -4
  166. package/dist/{set-active-DL4QzWDO.mjs → set-active-lDKhAlij.mjs} +5 -5
  167. package/dist/{set-DbCtUoFd.mjs → set-tFhPkxrL.mjs} +5 -5
  168. package/dist/{setting-BlRcZbhC.mjs → setting-DrJXCaFE.mjs} +4 -4
  169. package/dist/{setup-D_SLaC-3.mjs → setup-BWY9M0iR.mjs} +4 -4
  170. package/dist/{signal-CMd0EFUa.mjs → signal-Csom0mt5.mjs} +11 -2
  171. package/dist/skill-list-CCes8pKe.mjs +76 -0
  172. package/dist/skills-DE9ej5Rg.mjs +351 -0
  173. package/dist/{skills-D991LB1M.mjs → skills-DPRN2384.mjs} +3 -3
  174. package/dist/snippet-DWHTSo9c.mjs +19 -0
  175. package/dist/{stash-DyBxFoP6.mjs → stash-C9oDvQ9P.mjs} +7 -11
  176. package/dist/{status-DUsiogz5.mjs → status-CkpujA26.mjs} +11 -9
  177. package/dist/{status-cfDHqK2Q.mjs → status-DSdXmNC3.mjs} +12 -11
  178. package/dist/{subscription-Bn0AU7GN.mjs → subscription-DKOKoHRG.mjs} +6 -6
  179. package/dist/{subscriptions-DwqjCVlc.mjs → subscriptions-C5SyJL4B.mjs} +7 -7
  180. package/dist/{summary-BGwSNzf4.mjs → summary-DTPgXsc0.mjs} +6 -6
  181. package/dist/{sync-schema-dtkDOAKe.mjs → sync-schema-DKKkNSR7.mjs} +7 -7
  182. package/dist/{sync-task-BACcrs0i.mjs → sync-task-BtDnTXCP.mjs} +3 -2
  183. package/dist/{table-CsIJNPFf.mjs → table-C6h4tIRw.mjs} +1 -1
  184. package/dist/{table-CeeTJgQb.mjs → table-DfuY0N8e.mjs} +51 -4
  185. package/dist/{table-BJoEAoCU.mjs → table-I8NXSdUC.mjs} +5 -5
  186. package/dist/timeline-B_ESH-6W.mjs +21 -0
  187. package/dist/{timeline-event-BsF7YqzZ.mjs → timeline-event-n4Lzet7l.mjs} +6 -6
  188. package/dist/transform-BNuNiH9d.mjs +28 -0
  189. package/dist/{transform-DoTyyXAu.mjs → transform-CtqB1WYo.mjs} +2 -2
  190. package/dist/{transform-D3QX0jxA.mjs → transform-DiW7bREn.mjs} +68 -5
  191. package/dist/{transform-job-50GZHhKH.mjs → transform-job-AaMZRxAq.mjs} +1 -1
  192. package/dist/transform-job-B7yc6dfH.mjs +22 -0
  193. package/dist/{transform-job-DRrK28IH.mjs → transform-job-CCguL6LP.mjs} +41 -4
  194. package/dist/{transform-tag-VM9R7Q_M.mjs → transform-tag-D6NXqWaX.mjs} +5 -5
  195. package/dist/transform-test-BjjCQ2xm.mjs +169 -0
  196. package/dist/transform-test-C1Oqtfb-.mjs +16 -0
  197. package/dist/transform-test-gzDcbypy.mjs +25 -0
  198. package/dist/{transforms-BjACGbBp.mjs → transforms-O4NtXqFz.mjs} +7 -7
  199. package/dist/transport-CyVo29u7.mjs +313 -0
  200. package/dist/{tree-BwS6JAmk.mjs → tree-CuyF116R.mjs} +4 -5
  201. package/dist/{unpublish-DWdPnENY.mjs → unpublish-DvWefKJi.mjs} +4 -7
  202. package/dist/{update-DkviXwSg.mjs → update-2KIpYgyj.mjs} +7 -7
  203. package/dist/{update-DKEHY-gt.mjs → update-76nzOc71.mjs} +7 -7
  204. package/dist/{update-B2CF2DK4.mjs → update-7oKvP1HC.mjs} +6 -6
  205. package/dist/{update-DTmRHBik.mjs → update-AJ2JmwDl.mjs} +7 -7
  206. package/dist/{update-BR_vkkd1.mjs → update-BB6Go_RX.mjs} +5 -5
  207. package/dist/{update-DCjAjihm.mjs → update-Bah7N8QX.mjs} +6 -6
  208. package/dist/{update-cqR1U6DU.mjs → update-CGJvIS-l.mjs} +5 -5
  209. package/dist/{update-tLIhVIPp.mjs → update-D7dG7H-z.mjs} +8 -8
  210. package/dist/{update-C1FBVLfC.mjs → update-DOdcflLH.mjs} +8 -8
  211. package/dist/{update-DlTaD1x3.mjs → update-DV54H3L5.mjs} +9 -9
  212. package/dist/{update-C4y3iQsv.mjs → update-DXmZuJho.mjs} +7 -7
  213. package/dist/{update-3idz42uD.mjs → update-DmgRIp7o.mjs} +7 -7
  214. package/dist/{update-DsZttiSC.mjs → update-H_fdjugs.mjs} +5 -5
  215. package/dist/{update-BCT9qpVr.mjs → update-To6A1Ugu.mjs} +5 -5
  216. package/dist/{update-dashcard-DlE_bb2F.mjs → update-dashcard-DjT5QOkL.mjs} +7 -7
  217. package/dist/update-l3PyNQKG.mjs +41 -0
  218. package/dist/{update-BpPaacCF.mjs → update-xEegxIyH.mjs} +6 -6
  219. package/dist/{upgrade-mNV7XuJG.mjs → upgrade-CuJx9fX4.mjs} +6 -8
  220. package/dist/upload-2YFFBSln.mjs +13 -0
  221. package/dist/{upload-CEGVxmYB.mjs → upload-CboARPZm.mjs} +4 -7
  222. package/dist/{upload-CD555ui1.mjs → upload-DOO94rCQ.mjs} +2 -2
  223. package/dist/{uuid-C4hqn3kA.mjs → uuid-InwZlrpQ.mjs} +10 -7
  224. package/dist/{validate-BWchyW0V.mjs → validate-D6-Vg_kn.mjs} +69 -23
  225. package/dist/{validate-query-DaGYSmpQ.mjs → validate-query-B90KYPQr.mjs} +3 -4
  226. package/dist/{values-C0O3eNaW.mjs → values-CsZLk1Ls.mjs} +6 -6
  227. package/dist/{verify-DfTjYF7s.mjs → verify-DrGjZwBM.mjs} +3 -18
  228. package/dist/{wait-WZmFenN_.mjs → wait-BmzdarP9.mjs} +7 -10
  229. package/dist/{wait-flags-BbfDSP8R.mjs → wait-flags-CiJGrTCT.mjs} +2 -2
  230. package/dist/{window-BkvrP0gB.mjs → window-DSb1tqSe.mjs} +1 -1
  231. package/package.json +1 -1
  232. package/skill-data/core/SKILL.md +31 -15
  233. package/skill-data/dashboard/SKILL.md +1 -1
  234. package/skill-data/data-workflow/references/building-clean-tables.md +6 -2
  235. package/skill-data/data-workflow/references/reusable-definitions.md +11 -3
  236. package/skill-data/document/SKILL.md +4 -1
  237. package/skill-data/git-sync/SKILL.md +5 -0
  238. package/skill-data/mbql/SKILL.md +84 -115
  239. package/skill-data/mbql/references/operators.md +77 -231
  240. package/skill-data/metadata/SKILL.md +1 -1
  241. package/skill-data/metadata/references/semantic-types.md +7 -1
  242. package/skill-data/native-sql/SKILL.md +8 -9
  243. package/skill-data/native-sql/references/template-tags.md +27 -27
  244. package/skill-data/notification/SKILL.md +7 -1
  245. package/skill-data/transform/SKILL.md +76 -4
  246. package/skill-data/transform-test-plan/SKILL.md +171 -0
  247. package/skill-data/transform-test-plan/references/checklist.md +81 -0
  248. package/skill-data/transform-test-plan/references/checks.md +263 -0
  249. package/skill-data/visualization/SKILL.md +13 -6
  250. package/skill-data/visualization/references/settings.md +13 -11
  251. package/skills/metabase-cli/SKILL.md +1 -1
  252. package/dist/card-CGCXbdmD.mjs +0 -24
  253. package/dist/client-mKuHg_sc.mjs +0 -2218
  254. package/dist/collection-D8Tk8i3a.mjs +0 -20
  255. package/dist/document-KbcHhzFz.mjs +0 -19
  256. package/dist/get-BC8J8BXB.mjs +0 -80
  257. package/dist/git-sync-Dik8nKfw.mjs +0 -28
  258. package/dist/library-ClLgrAXy.mjs +0 -19
  259. package/dist/list-CW5PdYCX.mjs +0 -98
  260. package/dist/network-error-D6CiOEBw.mjs +0 -431
  261. package/dist/predicates-Bkm2IoeX.mjs +0 -170
  262. package/dist/query-C256WBYG.mjs +0 -87
  263. package/dist/skills-DTCrMcix.mjs +0 -216
  264. package/dist/snippet-DTDO55Cg.mjs +0 -19
  265. package/dist/timeline-DcXPshcT.mjs +0 -21
  266. package/dist/transform-Dsf_wHAj.mjs +0 -28
  267. package/dist/transform-job-B1yLv5l-.mjs +0 -22
  268. package/dist/upload-DsYCf5kB.mjs +0 -13
@@ -1,6 +1,6 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
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-Dtb93zKy.mjs";
3
+ import { n as windowList } from "./window-DSb1tqSe.mjs";
4
4
  import { n as TimelineCompact } from "./timeline-CCSU2qOS.mjs";
5
5
  import { n as timelineView } from "./timeline-uDCmwGFT.mjs";
6
6
  //#region src/commands/timeline/list.ts
@@ -10,7 +10,7 @@ var list_default = defineMetabaseCommand({
10
10
  name: "list",
11
11
  description: "List timelines"
12
12
  },
13
- capabilities: { minVersion: 58 },
13
+ requires: ["timeline.list"],
14
14
  args: {
15
15
  ...outputFlags,
16
16
  ...listFlags,
@@ -1,11 +1,9 @@
1
- import { f as errorMessage, i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, M as connectionFlags, _ as promptSelect, b as warn, c as renderSummary, g as promptPassword, t as interruptSignal, v as promptText } from "./cli.mjs";
3
- import { A as ProbedUser, D as writeProbeFailure, E as writeOAuthProfile, O as writeProbeResult, P as ParsedVersion, _ as DEFAULT_PROFILE, b as consumeKeyringDowngradeWarning, d as revokeOAuthCredential, f as OAUTH_SCOPE, g as tryDiscoverMetadata, h as registerClient, k as writeProfile, l as OAUTH_CLIENT_NAME, m as exchangeCode, o as explicitProfileName, p as discoverMetadata, s as readEnvCredentials, t as defineMetabaseCommand, u as USER_AGENT, x as keyringFallbackWarning, y as consumeKeychainResidualWarning } from "./runtime-z8rra6-I.mjs";
4
- import { t as verifyAndProbe } from "./verify-DfTjYF7s.mjs";
5
- import { c as normalizeUrl, p as oauthCredentialFromTokens } from "./network-error-D6CiOEBw.mjs";
6
- import { r as readInput } from "./input-DH9i67x_.mjs";
7
- import { a as renderVersionTag, i as renderUserRole, r as renderUserName } from "./render-CI93iP0I.mjs";
8
- import { t as openBrowser } from "./process-DBOOrmET.mjs";
1
+ import { C as promptSelect, E as warn, H as outputFlags, Q as ConfigError, S as promptPassword, U as profileFlag, it as TimeoutError, nt as NetworkError, p as renderSummary, st as errorMessage, t as interruptSignal, w as promptText, z as connectionFlags } from "./cli.mjs";
2
+ import { A as OAUTH_SCOPE, C as ProbedUser, D as OAUTH_CLIENT_NAME, J as normalizeUrl, K as oauthCredentialFromTokens, M as exchangeCode, N as registerClient, O as USER_AGENT, P as tryDiscoverMetadata, S as writeProfile, X as summarizeServer, Y as ServerSummary, b as writeProbeFailure, c as readEnvCredentials, f as consumeKeychainResidualWarning, j as discoverLoginMetadata, k as revokeOAuthCredential, m as keyringFallbackWarning, p as consumeKeyringDowngradeWarning, s as explicitProfileName, t as defineMetabaseCommand, u as DEFAULT_PROFILE, x as writeProbeResult, y as writeOAuthProfile } from "./runtime-Dtb93zKy.mjs";
3
+ import { r as readInput } from "./input-D5tQEfqN.mjs";
4
+ import { t as verifyAndProbe } from "./verify-DrGjZwBM.mjs";
5
+ import { a as renderUserRole, i as renderUserName, n as renderSkew, o as renderVersionTag } from "./render-6O_eF-P1.mjs";
6
+ import { t as openBrowser } from "./process-CLtOWKBn.mjs";
9
7
  import { z } from "zod";
10
8
  import { createServer } from "node:http";
11
9
  import { createHash, randomBytes } from "node:crypto";
@@ -149,7 +147,7 @@ async function resolveClientId(input, registrationEndpoint, redirectUri) {
149
147
  })).client_id;
150
148
  }
151
149
  async function oauthLogin(input, deps) {
152
- const metadata = input.metadata ?? await discoverMetadata(input.baseUrl, input.userAgent);
150
+ const metadata = input.metadata ?? await discoverLoginMetadata(input.baseUrl, input.userAgent);
153
151
  const pkce = generatePkce();
154
152
  const state = randomState();
155
153
  const server = await startCallbackServer(state, input.timeoutMs);
@@ -188,7 +186,7 @@ const LoginResult = z.object({
188
186
  url: z.string(),
189
187
  authenticated: z.boolean(),
190
188
  user: ProbedUser.nullable(),
191
- version: ParsedVersion.nullable()
189
+ ...ServerSummary.shape
192
190
  });
193
191
  const VERIFY_STEP_LABEL = Object.freeze({
194
192
  user: "current user",
@@ -224,6 +222,11 @@ const loginView = {
224
222
  key: "version",
225
223
  label: "Version",
226
224
  format: (value) => renderVersionTag(value)
225
+ },
226
+ {
227
+ key: "skew",
228
+ label: "Skew",
229
+ format: (value) => renderSkew(value)
227
230
  }
228
231
  ]
229
232
  };
@@ -233,7 +236,7 @@ var login_default = defineMetabaseCommand({
233
236
  description: "Log in to a Metabase instance for a profile"
234
237
  },
235
238
  details: "Interactive login offers browser OAuth (recommended; Metabase v63+) or an API key — older servers fall back to the API key prompt automatically. Browser login opens Metabase, you sign in (password or SSO) and approve, and the CLI stores a refreshing access token. For CI/non-interactive use, supply an API key via --api-key, piped stdin, or $MB_API_KEY (first non-empty wins); any of these skips the browser flow, even on a TTY. The URL comes from --url or $MB_URL, prompted when stdin is a TTY.",
236
- capabilities: { minVersion: 58 },
239
+ requires: ["user.current"],
237
240
  args: {
238
241
  ...outputFlags,
239
242
  ...profileFlag,
@@ -302,8 +305,8 @@ async function probeOAuthSupport(url) {
302
305
  try {
303
306
  return await tryDiscoverMetadata(url, USER_AGENT);
304
307
  } catch (error) {
305
- if (error instanceof ConfigError) throw error;
306
- throw new ConfigError(`could not reach ${url}: ${errorMessage(error)}`);
308
+ if (error instanceof NetworkError || error instanceof TimeoutError) throw new ConfigError(`could not reach ${url}: ${errorMessage(error)}`);
309
+ throw error;
307
310
  }
308
311
  }
309
312
  async function chooseLoginMethod(metadata, clientId) {
@@ -344,7 +347,7 @@ async function completeLogin(profileName, url, credential, skipVerify, ctx, pers
344
347
  url,
345
348
  authenticated: false,
346
349
  user: null,
347
- version: null
350
+ ...summarizeServer(null)
348
351
  }, loginView, `Saved credentials for profile "${profileName}" (${url}) without verifying.`, ctx);
349
352
  return;
350
353
  }
@@ -371,7 +374,7 @@ async function completeLogin(profileName, url, credential, skipVerify, ctx, pers
371
374
  url,
372
375
  authenticated: true,
373
376
  user: result.user,
374
- version: result.server.version
377
+ ...summarizeServer(result.server)
375
378
  }, loginView, `Logged in to ${url} as ${who} (${role}). Saved to profile "${profileName}".${serverClause}`, ctx);
376
379
  }
377
380
  async function revokeUnsavedOAuthCredential(url, credential) {
@@ -1,6 +1,5 @@
1
- import { f as errorMessage } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, b as warn, c as renderSummary, h as promptConfirm } from "./cli.mjs";
3
- import { C as readProfileCredential, c as resolveProfileName, d as revokeOAuthCredential, t as defineMetabaseCommand, u as USER_AGENT, v as clearProfile, y as consumeKeychainResidualWarning } from "./runtime-z8rra6-I.mjs";
1
+ import { E as warn, H as outputFlags, U as profileFlag, p as renderSummary, st as errorMessage, x as promptConfirm } from "./cli.mjs";
2
+ import { O as USER_AGENT, d as clearProfile, f as consumeKeychainResidualWarning, g as readProfileCredential, k as revokeOAuthCredential, l as resolveProfileName, t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
4
3
  import { z } from "zod";
5
4
  //#region src/commands/auth/logout.ts
6
5
  const LogoutResult = z.object({
@@ -30,7 +29,7 @@ var logout_default = defineMetabaseCommand({
30
29
  name: "logout",
31
30
  description: "Clear stored credentials for a profile"
32
31
  },
33
- capabilities: { minVersion: 58 },
32
+ requires: [],
34
33
  args: {
35
34
  ...outputFlags,
36
35
  ...profileFlag,
@@ -1,4 +1,4 @@
1
- import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
1
+ import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
2
2
  //#region src/commands/measure/index.ts
3
3
  var measure_default = defineCommandGroup({
4
4
  name: "measure",
@@ -11,11 +11,11 @@ var measure_default = defineCommandGroup({
11
11
  purpose: "define reusable measures"
12
12
  }],
13
13
  subCommands: {
14
- list: () => import("./list-Cy0w4Fap.mjs").then((mod) => mod.default),
15
- get: () => import("./get-DhkltKIV.mjs").then((mod) => mod.default),
16
- create: () => import("./create-C9vy4ZG6.mjs").then((mod) => mod.default),
17
- update: () => import("./update-B2CF2DK4.mjs").then((mod) => mod.default),
18
- archive: () => import("./archive-DSMqHRr1.mjs").then((mod) => mod.default)
14
+ list: () => import("./list-BQnOEB3W.mjs").then((mod) => mod.default),
15
+ get: () => import("./get-DmKtPNOy.mjs").then((mod) => mod.default),
16
+ create: () => import("./create-BbjSOTN-.mjs").then((mod) => mod.default),
17
+ update: () => import("./update-7oKvP1HC.mjs").then((mod) => mod.default),
18
+ archive: () => import("./archive-DA3OiLEE.mjs").then((mod) => mod.default)
19
19
  }
20
20
  });
21
21
  //#endregion
@@ -1,4 +1,4 @@
1
- import { d as MALFORMED_CELL } from "./cli.mjs";
1
+ import { g as MALFORMED_CELL } from "./cli.mjs";
2
2
  import { i as NotificationCompact, o as NotificationHandler, r as NotificationCardPayload, s as NotificationSubscription } from "./notification-DaA4bBHW.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/output/views/notification.ts
@@ -106,4 +106,4 @@ const ParameterValuesCompact = ParameterValues.pick({
106
106
  has_more_values: true
107
107
  }).strip();
108
108
  //#endregion
109
- export { ParameterValuesCompact as i, ParameterMapping as n, ParameterValues as r, Parameter as t };
109
+ export { TemporalUnit as a, ParameterValuesCompact as i, ParameterMapping as n, ParameterValues as r, Parameter as t };
@@ -1,8 +1,7 @@
1
- import { i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
4
- import { t as parseId } from "./parse-id-B3YwNojT.mjs";
5
- import { i as ParameterValuesCompact, r as ParameterValues } from "./parameter-DUKR8NXo.mjs";
1
+ import { H as outputFlags, Q as ConfigError, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
+ import { i as ParameterValuesCompact, r as ParameterValues } from "./parameter-Celg0wZa.mjs";
6
5
  //#region src/output/views/parameter.ts
7
6
  const parameterValuesView = {
8
7
  compactPick: ParameterValuesCompact,
@@ -23,7 +22,7 @@ var parameter_values_default = defineMetabaseCommand({
23
22
  skill: "dashboard",
24
23
  purpose: "dashboard parameters, mapping, value sources"
25
24
  }],
26
- capabilities: { minVersion: 58 },
25
+ requires: ["dashboard.parameterValues", "dashboard.searchParameterValues"],
27
26
  args: {
28
27
  ...outputFlags,
29
28
  ...profileFlag,
@@ -1,4 +1,4 @@
1
- import { i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
1
+ import { Q as ConfigError } from "./cli.mjs";
2
2
  //#region src/commands/parse-enum.ts
3
3
  function parseEnumFlag(value, schema, name) {
4
4
  const result = schema.safeParse(value);
@@ -1,4 +1,4 @@
1
- import { R as parseInteger } from "./runtime-z8rra6-I.mjs";
1
+ import { rt as parseInteger } from "./runtime-Dtb93zKy.mjs";
2
2
  //#region src/commands/parse-id.ts
3
3
  function parseId(value, name = "id") {
4
4
  return parseInteger(value, {
@@ -1,4 +1,4 @@
1
- import { i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
1
+ import { Q as ConfigError } from "./cli.mjs";
2
2
  //#region src/commands/collection/parse-ref.ts
3
3
  const SPECIAL_TOKENS = /* @__PURE__ */ new Set(["root", "trash"]);
4
4
  const POSITIVE_INTEGER_PATTERN = /^[1-9]\d*$/;
@@ -1,7 +1,7 @@
1
- import { F as outputFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
4
- import { i as loadVisibleSkills, n as findSkillByName, r as loadAllSkills } from "./skills-DTCrMcix.mjs";
1
+ import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, d as renderList } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { n as windowList } from "./window-DSb1tqSe.mjs";
4
+ import { i as loadVisibleSkills, n as findSkillByName, r as loadAllSkills } from "./skills-DE9ej5Rg.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/skills/path.ts
7
7
  const SkillPath = z.object({
@@ -24,7 +24,7 @@ var path_default = defineMetabaseCommand({
24
24
  name: "path",
25
25
  description: "Print the absolute path to a skill (or all skills). Useful when an agent needs to read the SKILL.md or its references with the Read tool directly."
26
26
  },
27
- capabilities: null,
27
+ requires: null,
28
28
  args: {
29
29
  ...outputFlags,
30
30
  ...listFlags,
@@ -1,5 +1,5 @@
1
- import { l as TimeoutError } from "./predicates-Bkm2IoeX.mjs";
2
- import { n as throwIfAborted, t as combineAborts } from "./signal-CMd0EFUa.mjs";
1
+ import { it as TimeoutError } from "./cli.mjs";
2
+ import { n as throwIfAborted, t as combineAborts } from "./signal-Csom0mt5.mjs";
3
3
  import { setTimeout } from "node:timers/promises";
4
4
  //#region ../client/src/poll.ts
5
5
  const DEFAULT_INTERVAL_MS = 2e3;
@@ -1,7 +1,6 @@
1
- import { i as ConfigError, o as MetabaseError } from "./predicates-Bkm2IoeX.mjs";
2
- import { l as writeJson } from "./cli.mjs";
3
- import { i as chainRequestFailure } from "./network-error-D6CiOEBw.mjs";
4
- import "./validate-BWchyW0V.mjs";
1
+ import { Q as ConfigError, m as writeJson, tt as MetabaseError } from "./cli.mjs";
2
+ import { R as chainRequestFailure } from "./runtime-Dtb93zKy.mjs";
3
+ import "./validate-D6-Vg_kn.mjs";
5
4
  //#region src/commands/dashboard/preflight.ts
6
5
  async function preflightDashcardCardReferences(client, dashcards) {
7
6
  const issues = await client.dashboard.checkCardReferences(dashcards);
@@ -1,4 +1,4 @@
1
- import { p as isFileNotFoundError } from "./predicates-Bkm2IoeX.mjs";
1
+ import { ct as isFileNotFoundError } from "./cli.mjs";
2
2
  import { spawn } from "node:child_process";
3
3
  //#region src/runtime/process.ts
4
4
  var ProcessNotFoundError = class extends Error {
@@ -1,8 +1,7 @@
1
- import { f as errorMessage } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, M as connectionFlags, b as warn, c as renderSummary } from "./cli.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
4
- import { i as CollectionCompact, r as Collection } from "./collection-CfulNRBG.mjs";
5
- import { n as tableSelectorFlags, t as parseTableSelectors } from "./selectors-P4QnrORk.mjs";
1
+ import { E as warn, H as outputFlags, U as profileFlag, p as renderSummary, st as errorMessage, z as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { a as CollectionCompact, r as Collection } from "./collection-BxdPxD38.mjs";
4
+ import { n as tableSelectorFlags, t as parseTableSelectors } from "./selectors-C-vgMcGK.mjs";
6
5
  import { z } from "zod";
7
6
  //#region src/commands/git-sync/sync-scope.ts
8
7
  function isOutsideSyncScope(collection) {
@@ -37,10 +36,11 @@ var publish_default = defineMetabaseCommand({
37
36
  description: "Publish tables (and their upstream dependencies) to the Library Data collection"
38
37
  },
39
38
  details: "Sets each selected table and every upstream table it depends on into the Library Data collection, so they appear first in data pickers and rank up in search. The Library Data collection is resolved automatically (and the Library is created if it doesn't exist yet). Select with --table-ids, --db-ids, or --schemas (each schema id is \"<db-id>:<schema>\", e.g. 1:public); the filters are combined. Publishing does not add the Library Data collection to the git-sync scope — on an instance with remote sync configured, run `mb git-sync add-collection <collection-id>` so exports carry the published tables' metadata.",
40
- capabilities: {
41
- minVersion: 59,
42
- tokenFeature: "library"
43
- },
39
+ requires: [
40
+ "library.ensureDataCollectionId",
41
+ "library.publishTables",
42
+ "gitSync.remoteUrl"
43
+ ],
44
44
  args: {
45
45
  ...outputFlags,
46
46
  ...profileFlag,
@@ -1,4 +1,4 @@
1
- import { t as Parameter } from "./parameter-DUKR8NXo.mjs";
1
+ import { t as Parameter } from "./parameter-Celg0wZa.mjs";
2
2
  import { z } from "zod";
3
3
  //#region ../client/src/domain/pulse.ts
4
4
  const PulseChannelType = z.enum([
@@ -1,5 +1,5 @@
1
- import { d as MALFORMED_CELL } from "./cli.mjs";
2
- import { n as PulseChannel, r as PulseCompact } from "./pulse-BmsDenXm.mjs";
1
+ import { g as MALFORMED_CELL } from "./cli.mjs";
2
+ import { n as PulseChannel, r as PulseCompact } from "./pulse-Dz0ocv0l.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/output/views/pulse.ts
5
5
  const PulseChannelList = z.array(PulseChannel);
@@ -1,11 +1,9 @@
1
- import { i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
3
- import { t as defineMetabaseCommand, z as parseOptionalInteger } from "./runtime-z8rra6-I.mjs";
4
- import { t as parseId } from "./parse-id-B3YwNojT.mjs";
5
- import { h as parseJson } from "./network-error-D6CiOEBw.mjs";
6
- import { i as CardExportFormat, o as CardQueryResult } from "./card-DZxRmver.mjs";
7
- import { t as cardQueryView } from "./card-zyUkr2nS.mjs";
8
- import { t as formatQueryResult } from "./query-result-DBDwk8TS.mjs";
1
+ import { H as outputFlags, Q as ConfigError, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
+ import { V as parseJson, it as parseOptionalInteger, t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
+ import { a as CardQueryResult, u as ExportFormat } from "./card-voh1k4hl.mjs";
5
+ import { t as cardQueryView } from "./card-CEkp1mcI.mjs";
6
+ import { t as formatQueryResult } from "./query-result-E4Q-Gra6.mjs";
9
7
  import { t as pipeToStdout } from "./stream-McixcoUl.mjs";
10
8
  import { z } from "zod";
11
9
  //#region src/commands/card/query.ts
@@ -15,7 +13,7 @@ var query_default = defineMetabaseCommand({
15
13
  name: "query",
16
14
  description: "Run a saved card and return results (json envelope, or stream CSV/JSON/XLSX via --export-format)"
17
15
  },
18
- capabilities: { minVersion: 58 },
16
+ requires: ["card.exportQuery", "card.query"],
19
17
  args: {
20
18
  ...outputFlags,
21
19
  ...profileFlag,
@@ -27,7 +25,7 @@ var query_default = defineMetabaseCommand({
27
25
  },
28
26
  "export-format": {
29
27
  type: "string",
30
- description: `Bypass JSON envelope and stream raw export: ${CardExportFormat.options.join(" | ")}`
28
+ description: `Bypass JSON envelope and stream raw export: ${ExportFormat.options.join(" | ")}`
31
29
  },
32
30
  parameters: {
33
31
  type: "string",
@@ -80,8 +78,8 @@ function parseParameters(raw) {
80
78
  return parseJson(raw, QueryParameters, { source: "--parameters" });
81
79
  }
82
80
  function parseExportFormat(raw) {
83
- const result = CardExportFormat.safeParse(raw);
84
- if (!result.success) throw new ConfigError(`invalid --export-format: "${raw}" (expected: ${CardExportFormat.options.join(", ")})`);
81
+ const result = ExportFormat.safeParse(raw);
82
+ if (!result.success) throw new ConfigError(`invalid --export-format: "${raw}" (expected: ${ExportFormat.options.join(", ")})`);
85
83
  return result.data;
86
84
  }
87
85
  function applyLimit(result, limit) {
@@ -0,0 +1,114 @@
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-Dtb93zKy.mjs";
3
+ import { t as readBody } from "./body-CshgcV6U.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-D6-Vg_kn.mjs";
8
+ import { o as skipValidateFlag } from "./validate-query-B90KYPQr.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,4 +1,4 @@
1
- import { f as formatScalar, p as renderRows } from "./cli.mjs";
1
+ import { _ as formatScalar, v as renderRows } from "./cli.mjs";
2
2
  //#region src/output/query-result.ts
3
3
  function formatQueryResult(result) {
4
4
  if (result.status !== "completed" || result.data === void 0) {
@@ -1,18 +1,15 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
3
- import { t as parseId } from "./parse-id-B3YwNojT.mjs";
4
- import { s as SyncSettingsUpdateResult } from "./git-sync-BDnxPrqU.mjs";
5
- import { o as syncSettingsUpdateView } from "./git-sync-DxD_ng48.mjs";
1
+ import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
+ import { c as SyncSettingsUpdateResult } from "./git-sync-BwBRmEhE.mjs";
5
+ import { o as syncSettingsUpdateView } from "./git-sync-TjX1r_wF.mjs";
6
6
  //#region src/commands/git-sync/remove-collection.ts
7
7
  var remove_collection_default = defineMetabaseCommand({
8
8
  meta: {
9
9
  name: "remove-collection",
10
10
  description: "Unmark a collection as git-synced; cascades to descendants by location prefix"
11
11
  },
12
- capabilities: {
13
- minVersion: 60,
14
- tokenFeature: "remote_sync"
15
- },
12
+ requires: ["gitSync.setCollectionSynced"],
16
13
  args: {
17
14
  ...outputFlags,
18
15
  ...profileFlag,
@@ -1,5 +1,12 @@
1
- import "./cli.mjs";
1
+ import { lt as KNOWN_RANGE } from "./cli.mjs";
2
+ import { Q as Skew } from "./runtime-Dtb93zKy.mjs";
2
3
  //#region src/commands/auth/render.ts
4
+ const SKEW_LABEL = Object.freeze({
5
+ supported: "supported",
6
+ "older-than-known": `older than this CLI supports (v${KNOWN_RANGE.min} min)`,
7
+ "newer-than-known": `newer than this CLI knows (v${KNOWN_RANGE.max} max)`,
8
+ development: "development build (newer than every release)"
9
+ });
3
10
  function pickProperty(value, key) {
4
11
  if (typeof value !== "object" || value === null || !(key in value)) return;
5
12
  return Reflect.get(value, key);
@@ -31,5 +38,9 @@ function renderVersionTag(value) {
31
38
  function renderTimestamp(value) {
32
39
  return typeof value === "string" ? value : "—";
33
40
  }
41
+ function renderSkew(value) {
42
+ const parsed = Skew.safeParse(value);
43
+ return parsed.success ? SKEW_LABEL[parsed.data] : "—";
44
+ }
34
45
  //#endregion
35
- export { renderVersionTag as a, renderUserRole as i, renderTimestamp as n, renderUserName as r, renderAuthMethod as t };
46
+ export { renderUserRole as a, renderUserName as i, renderSkew as n, renderVersionTag as o, renderTimestamp as r, renderAuthMethod as t };
@@ -1,8 +1,8 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
3
- import { t as parseId } from "./parse-id-B3YwNojT.mjs";
1
+ import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
4
  import { n as UploadUpdateResult } from "./upload-DAtxBBms.mjs";
5
- import { n as requireUploadFilePath, t as readCsvFile } from "./upload-CD555ui1.mjs";
5
+ import { n as requireUploadFilePath, t as readCsvFile } from "./upload-DOO94rCQ.mjs";
6
6
  import { n as uploadUpdateResultView } from "./upload-C3z5ZaXA.mjs";
7
7
  //#region src/commands/upload/replace.ts
8
8
  var replace_default = defineMetabaseCommand({
@@ -11,7 +11,7 @@ var replace_default = defineMetabaseCommand({
11
11
  description: "Replace an existing uploaded table's rows with a CSV file"
12
12
  },
13
13
  details: "Replaces the contents of the table with the given id with the rows of the CSV. The table must have been created by a CSV upload and the CSV columns must match.",
14
- capabilities: { minVersion: 58 },
14
+ requires: ["table.replaceCsv"],
15
15
  args: {
16
16
  ...outputFlags,
17
17
  ...profileFlag,
@@ -1,15 +1,15 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
3
- import { t as parseId } from "./parse-id-B3YwNojT.mjs";
4
- import { a as DatabaseSyncResult } from "./database-C8G6ZKG0.mjs";
5
- import { t as databaseSyncResultView } from "./database-B19qlLKZ.mjs";
1
+ import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
+ import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
+ import { a as DatabaseSyncResult } from "./database-JtHTqSpq.mjs";
5
+ import { t as databaseSyncResultView } from "./database-C3E9PZSx.mjs";
6
6
  //#region src/commands/db/rescan-values.ts
7
7
  var rescan_values_default = defineMetabaseCommand({
8
8
  meta: {
9
9
  name: "rescan-values",
10
10
  description: "Trigger a rescan of cached field values for a database"
11
11
  },
12
- capabilities: { minVersion: 58 },
12
+ requires: ["database.rescanValues"],
13
13
  args: {
14
14
  ...outputFlags,
15
15
  ...profileFlag,