@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
package/dist/cli.mjs CHANGED
@@ -1,10 +1,193 @@
1
1
  #!/usr/bin/env node
2
- import { i as ConfigError, m as toMetabaseError, n as AbortError, t as isPlainObject } from "./predicates-Bkm2IoeX.mjs";
3
2
  import { defineCommand, renderUsage, runMain } from "citty";
4
- import { z } from "zod";
3
+ import { ZodError, core, z } from "zod";
5
4
  import tls from "node:tls";
6
5
  import { confirm, isCancel, password, select, text } from "@clack/prompts";
7
6
  import Table from "cli-table3";
7
+ //#region ../client/src/json-pointer.ts
8
+ function escapeJsonPointerSegment(key) {
9
+ if (typeof key === "number") return String(key);
10
+ return (typeof key === "symbol" ? key.toString() : key).replaceAll("~", "~0").replaceAll("/", "~1");
11
+ }
12
+ //#endregion
13
+ //#region ../client/src/version/known-range.ts
14
+ const KNOWN_RANGE = {
15
+ min: 58,
16
+ max: 64
17
+ };
18
+ //#endregion
19
+ //#region ../client/src/errors.ts
20
+ var MetabaseError = class extends Error {
21
+ get userMessage() {
22
+ return this.message;
23
+ }
24
+ };
25
+ var NetworkError = class extends MetabaseError {
26
+ category = "network";
27
+ isRetryable = true;
28
+ developerDetail;
29
+ constructor(message, developerDetail) {
30
+ super(message);
31
+ this.name = "NetworkError";
32
+ this.developerDetail = developerDetail;
33
+ }
34
+ };
35
+ var TimeoutError = class extends MetabaseError {
36
+ category = "timeout";
37
+ isRetryable = true;
38
+ developerDetail;
39
+ constructor(message, developerDetail) {
40
+ super(message);
41
+ this.name = "TimeoutError";
42
+ this.developerDetail = developerDetail;
43
+ }
44
+ };
45
+ var ValidationError = class extends MetabaseError {
46
+ category = "validation";
47
+ isRetryable = false;
48
+ developerDetail;
49
+ constructor(message, developerDetail) {
50
+ super(message);
51
+ this.name = "ValidationError";
52
+ this.developerDetail = developerDetail;
53
+ }
54
+ get userMessage() {
55
+ const issues = this.developerDetail.zodIssues;
56
+ if (issues.length === 0) return this.message;
57
+ return `${this.message}\n${formatIssueLines(issues, VALIDATION_ISSUE_FORMAT)}`;
58
+ }
59
+ };
60
+ const VALIDATION_MAX_ISSUES = 10;
61
+ const RESPONSE_SHAPE_MAX_ISSUES = 5;
62
+ const VALIDATION_ISSUE_FORMAT = {
63
+ max: VALIDATION_MAX_ISSUES,
64
+ formatIssue: (issue) => `${formatZodIssuePointer(issue.path)}: ${issue.message}`
65
+ };
66
+ const RESPONSE_SHAPE_ISSUE_FORMAT = {
67
+ max: RESPONSE_SHAPE_MAX_ISSUES,
68
+ formatIssue: formatZodIssue
69
+ };
70
+ function formatIssueLines(issues, format) {
71
+ const head = issues.slice(0, format.max).map(format.formatIssue);
72
+ const overflow = issues.length - format.max;
73
+ if (overflow > 0) head.push(`... and ${overflow} more`);
74
+ return head.map((line) => ` ${line}`).join("\n");
75
+ }
76
+ function formatZodIssuePointer(path) {
77
+ if (path.length === 0) return "/";
78
+ return path.map((key) => `/${escapeJsonPointerSegment(key)}`).join("");
79
+ }
80
+ const RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION = "Metabase returned unexpected response shape";
81
+ var ResponseShapeError = class ResponseShapeError extends MetabaseError {
82
+ category = "response-shape";
83
+ isRetryable = false;
84
+ developerDetail;
85
+ constructor(message, developerDetail) {
86
+ super(message);
87
+ this.name = "ResponseShapeError";
88
+ this.developerDetail = developerDetail;
89
+ }
90
+ static fromZodIssues(developerDetail) {
91
+ return new ResponseShapeError(formatResponseShapeMessage(developerDetail), developerDetail);
92
+ }
93
+ };
94
+ function formatResponseShapeMessage(detail) {
95
+ const { zodIssues: issues, serverTag, serverSkew } = detail;
96
+ const lead = serverTag === null ? RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION : `On Metabase ${describeServer(serverTag, serverSkew)} the response shape was unexpected`;
97
+ if (issues.length === 0) return lead;
98
+ return `${lead}:\n${formatIssueLines(issues, RESPONSE_SHAPE_ISSUE_FORMAT)}`;
99
+ }
100
+ function describeServer(tag, skew) {
101
+ if (skew === "newer-than-known") return `${tag} (newer than this client supports, up to v${KNOWN_RANGE.max})`;
102
+ if (skew === "development") return `development build ${tag} (newer than every release)`;
103
+ return tag;
104
+ }
105
+ var ConfigError = class extends MetabaseError {
106
+ category = "config";
107
+ isRetryable = false;
108
+ developerDetail = null;
109
+ constructor(message) {
110
+ super(message);
111
+ this.name = "ConfigError";
112
+ }
113
+ };
114
+ var InternalError = class extends MetabaseError {
115
+ category = "internal";
116
+ isRetryable = false;
117
+ developerDetail = null;
118
+ constructor(message) {
119
+ super(message);
120
+ this.name = "InternalError";
121
+ }
122
+ };
123
+ var FailedResultError = class extends MetabaseError {
124
+ category = "failed";
125
+ isRetryable = false;
126
+ developerDetail = null;
127
+ constructor(message) {
128
+ super(message);
129
+ this.name = "FailedResultError";
130
+ }
131
+ };
132
+ var AbortError = class extends MetabaseError {
133
+ category = "abort";
134
+ isRetryable = false;
135
+ developerDetail = null;
136
+ constructor(message = "aborted") {
137
+ super(message);
138
+ this.name = "AbortError";
139
+ }
140
+ };
141
+ var ChainedRequestError = class extends MetabaseError {
142
+ cause;
143
+ constructor(message, cause) {
144
+ super(message);
145
+ this.name = "ChainedRequestError";
146
+ this.cause = cause;
147
+ }
148
+ get category() {
149
+ return this.cause.category;
150
+ }
151
+ get isRetryable() {
152
+ return this.cause.isRetryable;
153
+ }
154
+ get developerDetail() {
155
+ return this.cause.developerDetail;
156
+ }
157
+ };
158
+ var UnknownError = class extends MetabaseError {
159
+ category = "unknown";
160
+ isRetryable = false;
161
+ developerDetail;
162
+ constructor(input) {
163
+ super(input.originalMessage);
164
+ this.name = "UnknownError";
165
+ this.developerDetail = input;
166
+ }
167
+ };
168
+ function toMetabaseError(error) {
169
+ if (error instanceof MetabaseError) return error;
170
+ if (error instanceof ZodError) return new ConfigError(error.issues.map(formatZodIssue).join("; "));
171
+ if (error instanceof Error) return new UnknownError({
172
+ originalMessage: error.message,
173
+ stack: error.stack ?? null
174
+ });
175
+ return new UnknownError({
176
+ originalMessage: String(error),
177
+ stack: null
178
+ });
179
+ }
180
+ function formatZodIssue(issue) {
181
+ const path = core.toDotPath(issue.path);
182
+ return path === "" ? issue.message : `${path}: ${issue.message}`;
183
+ }
184
+ function isFileNotFoundError(value) {
185
+ return value instanceof Error && "code" in value && value.code === "ENOENT";
186
+ }
187
+ function errorMessage(value) {
188
+ return value instanceof Error ? value.message : String(value);
189
+ }
190
+ //#endregion
8
191
  //#region src/runtime/citty.ts
9
192
  async function resolveCitty(value) {
10
193
  if (value === void 0) return;
@@ -32,7 +215,16 @@ function flagConsumesValue(token, argsDef) {
32
215
  //#region src/output/types.ts
33
216
  const DEFAULT_MAX_BYTES = 24576;
34
217
  function listEnvelopeSchema(item) {
218
+ return z.object(listEnvelopeShape(item));
219
+ }
220
+ function listEnvelopeSchemaWithExtras(item, extras) {
35
221
  return z.object({
222
+ ...listEnvelopeShape(item),
223
+ ...extras
224
+ });
225
+ }
226
+ function listEnvelopeShape(item) {
227
+ return {
36
228
  data: z.array(item).describe("The items in this window."),
37
229
  returned: z.number().int().nonnegative().describe("Number of items in `data`; a short window is not proof the walk is over."),
38
230
  offset: z.number().int().nonnegative().describe("Index of the first item in `data` within the full result set."),
@@ -44,7 +236,7 @@ function listEnvelopeSchema(item) {
44
236
  reason: z.literal("max_bytes"),
45
237
  bytes: z.number().int().nonnegative()
46
238
  }).optional().describe("Present when the `--max-bytes` cap cut the output, not when the data ran out; its `bytes` is what the untruncated answer would have measured, so narrow rows with `--fields` rather than raising the cap.")
47
- });
239
+ };
48
240
  }
49
241
  //#endregion
50
242
  //#region src/commands/flags.ts
@@ -175,7 +367,7 @@ function trustSystemCa() {
175
367
  //#endregion
176
368
  //#region package.json
177
369
  var name = "@metabase/cli";
178
- var version = "0.3.1";
370
+ var version = "0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a";
179
371
  var description = "Metabase CLI";
180
372
  //#endregion
181
373
  //#region src/runtime/command-augment.ts
@@ -195,36 +387,37 @@ const main = defineCommand({
195
387
  description
196
388
  },
197
389
  subCommands: {
198
- auth: () => import("./auth-aCksg8q2.mjs").then((mod) => mod.default),
199
- db: () => import("./db-xXselnBq.mjs").then((mod) => mod.default),
200
- table: () => import("./table-BJoEAoCU.mjs").then((mod) => mod.default),
201
- field: () => import("./field-BJ54wmIX.mjs").then((mod) => mod.default),
202
- upload: () => import("./upload-DsYCf5kB.mjs").then((mod) => mod.default),
203
- "content-translation": () => import("./content-translation-DNKerjS3.mjs").then((mod) => mod.default),
204
- card: () => import("./card-CGCXbdmD.mjs").then((mod) => mod.default),
205
- dashboard: () => import("./dashboard-CtO_3EfC.mjs").then((mod) => mod.default),
206
- subscription: () => import("./subscription-Bn0AU7GN.mjs").then((mod) => mod.default),
207
- alert: () => import("./alert-ClyhtxIz.mjs").then((mod) => mod.default),
208
- collection: () => import("./collection-D8Tk8i3a.mjs").then((mod) => mod.default),
209
- library: () => import("./library-1J_4Dicw.mjs").then((mod) => mod.default),
210
- document: () => import("./document-KbcHhzFz.mjs").then((mod) => mod.default),
211
- transform: () => import("./transform-Dsf_wHAj.mjs").then((mod) => mod.default),
212
- "transform-job": () => import("./transform-job-B1yLv5l-.mjs").then((mod) => mod.default),
213
- "transform-tag": () => import("./transform-tag-VM9R7Q_M.mjs").then((mod) => mod.default),
214
- setting: () => import("./setting-BlRcZbhC.mjs").then((mod) => mod.default),
215
- search: () => import("./search-CPvvmhdt.mjs").then((mod) => mod.default),
216
- "git-sync": () => import("./git-sync-Dik8nKfw.mjs").then((mod) => mod.default),
217
- setup: () => import("./setup-D_SLaC-3.mjs").then((mod) => mod.default),
218
- snippet: () => import("./snippet-DTDO55Cg.mjs").then((mod) => mod.default),
219
- segment: () => import("./segment-C62L6BI3.mjs").then((mod) => mod.default),
220
- measure: () => import("./measure-DdVp-8jw.mjs").then((mod) => mod.default),
221
- timeline: () => import("./timeline-DcXPshcT.mjs").then((mod) => mod.default),
222
- "timeline-event": () => import("./timeline-event-BsF7YqzZ.mjs").then((mod) => mod.default),
223
- eid: () => import("./eid-DZ-4t2xe.mjs").then((mod) => mod.default),
224
- query: () => import("./query-C256WBYG.mjs").then((mod) => mod.default),
225
- uuid: () => import("./uuid-C4hqn3kA.mjs").then((mod) => mod.default),
226
- upgrade: () => import("./upgrade-mNV7XuJG.mjs").then((mod) => mod.default),
227
- skills: () => import("./skills-D991LB1M.mjs").then((mod) => mod.default)
390
+ auth: () => import("./auth-A96JOCQx.mjs").then((mod) => mod.default),
391
+ db: () => import("./db-BDijt81U.mjs").then((mod) => mod.default),
392
+ table: () => import("./table-I8NXSdUC.mjs").then((mod) => mod.default),
393
+ field: () => import("./field-BJ6HoLRd.mjs").then((mod) => mod.default),
394
+ upload: () => import("./upload-2YFFBSln.mjs").then((mod) => mod.default),
395
+ "content-translation": () => import("./content-translation-BXIXL4eW.mjs").then((mod) => mod.default),
396
+ card: () => import("./card-CefVYtF7.mjs").then((mod) => mod.default),
397
+ dashboard: () => import("./dashboard-CMw13KXM.mjs").then((mod) => mod.default),
398
+ subscription: () => import("./subscription-DKOKoHRG.mjs").then((mod) => mod.default),
399
+ alert: () => import("./alert-Dalin_DD.mjs").then((mod) => mod.default),
400
+ collection: () => import("./collection-Be5AHVWP.mjs").then((mod) => mod.default),
401
+ library: () => import("./library-BNSxXOpc.mjs").then((mod) => mod.default),
402
+ document: () => import("./document-BGzVip5_.mjs").then((mod) => mod.default),
403
+ transform: () => import("./transform-BNuNiH9d.mjs").then((mod) => mod.default),
404
+ "transform-job": () => import("./transform-job-B7yc6dfH.mjs").then((mod) => mod.default),
405
+ "transform-tag": () => import("./transform-tag-D6NXqWaX.mjs").then((mod) => mod.default),
406
+ "transform-test": () => import("./transform-test-C1Oqtfb-.mjs").then((mod) => mod.default),
407
+ setting: () => import("./setting-DrJXCaFE.mjs").then((mod) => mod.default),
408
+ search: () => import("./search-CR_xNArA.mjs").then((mod) => mod.default),
409
+ "git-sync": () => import("./git-sync-xKC1sqC4.mjs").then((mod) => mod.default),
410
+ setup: () => import("./setup-BWY9M0iR.mjs").then((mod) => mod.default),
411
+ snippet: () => import("./snippet-DWHTSo9c.mjs").then((mod) => mod.default),
412
+ segment: () => import("./segment-Cm6zQjJW.mjs").then((mod) => mod.default),
413
+ measure: () => import("./measure-Ds8O5Evr.mjs").then((mod) => mod.default),
414
+ timeline: () => import("./timeline-B_ESH-6W.mjs").then((mod) => mod.default),
415
+ "timeline-event": () => import("./timeline-event-n4Lzet7l.mjs").then((mod) => mod.default),
416
+ eid: () => import("./eid-HnrWhPoe.mjs").then((mod) => mod.default),
417
+ query: () => import("./query-CxESKMve.mjs").then((mod) => mod.default),
418
+ uuid: () => import("./uuid-InwZlrpQ.mjs").then((mod) => mod.default),
419
+ upgrade: () => import("./upgrade-CuJx9fX4.mjs").then((mod) => mod.default),
420
+ skills: () => import("./skills-DPRN2384.mjs").then((mod) => mod.default)
228
421
  }
229
422
  });
230
423
  setMetabaseAugment(main, {
@@ -239,9 +432,22 @@ setMetabaseAugment(main, {
239
432
  }],
240
433
  inputSchema: null,
241
434
  outputSchema: null,
242
- capabilities: null
435
+ requires: null
243
436
  });
244
437
  //#endregion
438
+ //#region src/core/profile-refreshed-error.ts
439
+ var ProfileRefreshedError = class extends MetabaseError {
440
+ category;
441
+ isRetryable = false;
442
+ developerDetail;
443
+ constructor(cause, note) {
444
+ super(`${cause.userMessage}\n${note}`);
445
+ this.name = "ProfileRefreshedError";
446
+ this.category = cause.category;
447
+ this.developerDetail = cause.developerDetail;
448
+ }
449
+ };
450
+ //#endregion
245
451
  //#region src/core/env.ts
246
452
  const LEGACY_PREFIX = "METABASE_";
247
453
  const ENV_URL = "MB_URL";
@@ -380,6 +586,11 @@ function jsonByteLength(value) {
380
586
  return Buffer.byteLength(JSON.stringify(value), "utf8");
381
587
  }
382
588
  //#endregion
589
+ //#region ../client/src/predicates.ts
590
+ function isPlainObject(value) {
591
+ return typeof value === "object" && value !== null && !Array.isArray(value);
592
+ }
593
+ //#endregion
383
594
  //#region src/output/projection.ts
384
595
  function projectForList(item, view, opts) {
385
596
  const full = opts.format === "text" && opts.fields === void 0 ? false : opts.full;
@@ -513,8 +724,11 @@ function renderSummary(item, view, summaryText, opts) {
513
724
  process.stdout.write(body);
514
725
  }
515
726
  function renderList(envelope, view, opts) {
727
+ renderListWithExtras(envelope, {}, view, opts);
728
+ }
729
+ function renderListWithExtras(envelope, extras, view, opts) {
516
730
  if (opts.format === "json") {
517
- renderJsonEnvelope(envelope, view, opts);
731
+ renderJsonEnvelope(envelope, extras, view, opts);
518
732
  return;
519
733
  }
520
734
  if (envelope.data.length === 0) {
@@ -547,8 +761,11 @@ function projectedEnvelope(envelope, view, opts) {
547
761
  data: envelope.data.map((item) => projectForList(item, view, opts))
548
762
  };
549
763
  }
550
- function renderJsonEnvelope(envelope, view, opts) {
551
- const capped = capListEnvelope(projectedEnvelope(envelope, view, opts), opts.maxBytes);
764
+ function renderJsonEnvelope(envelope, extras, view, opts) {
765
+ const capped = capListEnvelope({
766
+ ...projectedEnvelope(envelope, view, opts),
767
+ ...extras
768
+ }, opts.maxBytes);
552
769
  const ordered = {
553
770
  returned: capped.returned,
554
771
  offset: capped.offset,
@@ -557,6 +774,7 @@ function renderJsonEnvelope(envelope, view, opts) {
557
774
  has_more: capped.has_more,
558
775
  next_offset: capped.next_offset,
559
776
  truncated: capped.truncated,
777
+ ...extras,
560
778
  data: capped.data
561
779
  };
562
780
  process.stdout.write(serializeJson(ordered, stdoutPretty()) + "\n");
@@ -607,6 +825,7 @@ function exitCodeFor(category) {
607
825
  case "response-shape":
608
826
  case "timeout":
609
827
  case "internal":
828
+ case "failed":
610
829
  case "unknown": return FAILURE_EXIT_CODE;
611
830
  }
612
831
  }
@@ -626,6 +845,7 @@ function isRouteMissing(handled) {
626
845
  return "kind" in handled && handled.kind === ROUTE_MISSING_KIND;
627
846
  }
628
847
  function remediesFor(handled) {
848
+ if (handled instanceof ProfileRefreshedError) return [];
629
849
  if (isVersionTooOld(handled.developerDetail)) return [DOWNGRADE_REMEDY];
630
850
  if (isRouteMissing(handled)) return [ROUTE_MISSING_REMEDY];
631
851
  return [];
@@ -654,35 +874,324 @@ function writeJsonError(handled, exitCode, verbose) {
654
874
  process.stderr.write(serializeJson(envelope, stderrPretty()) + "\n");
655
875
  }
656
876
  //#endregion
657
- //#region ../client/src/version/capabilities.ts
658
- const Capabilities = z.object({
659
- minVersion: z.number(),
660
- tokenFeature: z.string().optional()
661
- });
662
- const BASELINE_CAPABILITIES = Object.freeze({ minVersion: 58 });
663
- function mergeCapabilities(overrides) {
664
- if (overrides === void 0) return BASELINE_CAPABILITIES;
665
- return {
666
- minVersion: overrides.minVersion ?? BASELINE_CAPABILITIES.minVersion,
667
- ...overrides.tokenFeature === void 0 ? {} : { tokenFeature: overrides.tokenFeature }
877
+ //#region ../client/src/version/features.ts
878
+ const FEATURE_RULES = {
879
+ transforms: { since: 59 },
880
+ transformJobActivation: { since: 61 },
881
+ measures: { since: 59 },
882
+ library: {
883
+ since: 59,
884
+ tokenFeature: "library"
885
+ },
886
+ remoteSync: {
887
+ since: 60,
888
+ tokenFeature: "remote_sync"
889
+ },
890
+ remoteSyncExportPreflight: {
891
+ since: 63,
892
+ tokenFeature: "remote_sync"
893
+ },
894
+ contentTranslation: {
895
+ since: 58,
896
+ tokenFeature: "content_translation"
897
+ },
898
+ contentVerification: {
899
+ since: 58,
900
+ tokenFeature: "content_verification"
901
+ },
902
+ transformTargetTableId: { since: 61 },
903
+ transformTargetTableLinkedOnCreate: {
904
+ since: 61,
905
+ until: 61
906
+ },
907
+ transformJobRunIdIsNumeric: { since: 64 },
908
+ transformCheckpointReset: { since: 60 },
909
+ fieldDataSensitivity: { since: 64 },
910
+ transformDagRuns: { since: 64 },
911
+ unifiedTransformRuns: { since: 64 },
912
+ transformTests: {
913
+ since: 65,
914
+ tokenFeature: "transforms-testing"
915
+ },
916
+ libraryChildrenCarryType: { since: 62 },
917
+ collectionItemsTotalOnEmptyPage: { since: 64 },
918
+ invalidMbqlIsBadRequest: { since: 59 },
919
+ boxplotDisplay: { since: 59 },
920
+ nativeTableTemplateTag: { since: 59 },
921
+ smartLinkMeasureModel: { since: 60 },
922
+ dashboardSubscriptionFilters: {
923
+ since: 58,
924
+ tokenFeature: "dashboard_subscription_filters"
925
+ },
926
+ dependencyGraph: {
927
+ since: 58,
928
+ tokenFeature: "dependencies"
929
+ },
930
+ dependencyItemListings: {
931
+ since: 59,
932
+ tokenFeature: "dependencies"
933
+ },
934
+ dependencyKebabCaseFilters: { since: 60 },
935
+ tableListAccessFilters: { since: 59 },
936
+ tableListTransformTargets: { since: 60 },
937
+ tableUnusedFilter: {
938
+ since: 58,
939
+ tokenFeature: "dependencies"
940
+ },
941
+ tableDataLayerTiers: { since: 59 },
942
+ bulkTableEdit: { since: 59 },
943
+ erd: {
944
+ since: 62,
945
+ tokenFeature: "schema-viewer"
946
+ },
947
+ documentCopy: { since: 59 },
948
+ transformInspector: {
949
+ since: 60,
950
+ tokenFeature: "transforms-python"
951
+ },
952
+ pythonLibrary: {
953
+ since: 58,
954
+ tokenFeature: "transforms-python"
955
+ },
956
+ pythonTestRun: {
957
+ since: 60,
958
+ tokenFeature: "transforms-python"
959
+ },
960
+ sourceReplacement: {
961
+ since: 60,
962
+ tokenFeature: "dependencies"
963
+ },
964
+ metricDefinitionQuery: { since: 60 },
965
+ metricDimensionListing: { since: 64 },
966
+ oauthFullAccessScope: { since: 63 }
967
+ };
968
+ function isFeatureName(name) {
969
+ return Object.hasOwn(FEATURE_RULES, name);
970
+ }
971
+ const FEATURE_NAMES = Object.keys(FEATURE_RULES).filter(isFeatureName);
972
+ const Features = z.record(z.enum(FEATURE_NAMES), z.boolean());
973
+ function evaluateFeatures(major, tokenFeatures) {
974
+ const entries = FEATURE_NAMES.map((name) => [name, ruleHolds(FEATURE_RULES[name], major, tokenFeatures)]);
975
+ return Features.parse(Object.fromEntries(entries));
976
+ }
977
+ function ruleHolds(rule, major, tokenFeatures) {
978
+ return ruleGap(rule, major, tokenFeatures) === null;
979
+ }
980
+ function ruleGap(rule, major, tokenFeatures) {
981
+ if (!versionHolds(rule, major)) return { kind: "version" };
982
+ if (rule.tokenFeature === void 0) return null;
983
+ return tokenFeatures !== null && tokenFeatures[rule.tokenFeature] === true ? null : {
984
+ kind: "token",
985
+ tokenFeature: rule.tokenFeature
668
986
  };
669
987
  }
670
- function checkCapabilities(info, required) {
671
- if (info.version === null) return {
672
- reason: "unknown-version",
673
- detail: "Could not detect Metabase server version. Proceeding without preflight check; failures may produce confusing errors."
674
- };
675
- if (info.version.major < required.minVersion) return {
676
- reason: "version-too-old",
677
- detail: `This operation requires Metabase v${required.minVersion}+ (this server is ${info.version.tag}). Upgrade Metabase to use it.`
678
- };
679
- if (required.tokenFeature !== void 0) {
680
- if (!(info.tokenFeatures?.[required.tokenFeature] === true)) return {
681
- reason: "missing-token-feature",
682
- detail: `This operation requires the '${required.tokenFeature}' premium feature (not enabled on this server).`
683
- };
684
- }
685
- return null;
988
+ function versionHolds(rule, major) {
989
+ if (major === "development") return rule.until === void 0;
990
+ return major >= rule.since && (rule.until === void 0 || major <= rule.until);
991
+ }
992
+ //#endregion
993
+ //#region ../client/src/version/requirements.ts
994
+ const METHOD_REQUIREMENTS = {
995
+ "card.list": [],
996
+ "card.get": [],
997
+ "card.create": [],
998
+ "card.update": [],
999
+ "card.archive": [],
1000
+ "card.query": [],
1001
+ "card.exportQuery": [],
1002
+ "card.queryMetadata": [],
1003
+ "collection.list": [],
1004
+ "collection.listWithLibrary": [],
1005
+ "collection.get": [],
1006
+ "collection.create": [],
1007
+ "collection.update": [],
1008
+ "collection.archive": [],
1009
+ "collection.itemPages": [],
1010
+ "collection.tree": [],
1011
+ "contentTranslation.download": ["contentTranslation"],
1012
+ "contentTranslation.upload": ["contentTranslation"],
1013
+ "dashboard.list": [],
1014
+ "dashboard.get": [],
1015
+ "dashboard.create": [],
1016
+ "dashboard.update": [],
1017
+ "dashboard.archive": [],
1018
+ "dashboard.copy": [],
1019
+ "dashboard.updateDashcard": [],
1020
+ "dashboard.checkCardReferences": [],
1021
+ "dashboard.parameterValues": [],
1022
+ "dashboard.searchParameterValues": [],
1023
+ "database.list": [],
1024
+ "database.get": [],
1025
+ "database.schemas": [],
1026
+ "database.schemaTables": [],
1027
+ "database.syncSchema": [],
1028
+ "database.rescanValues": [],
1029
+ "dataset.query": [],
1030
+ "dataset.native": [],
1031
+ "dataset.queryMetadata": [],
1032
+ "dataset.exportQuery": [],
1033
+ "dependency.breakingPages": ["dependencyItemListings"],
1034
+ "dependency.broken": ["dependencyItemListings"],
1035
+ "dependency.dependents": ["dependencyItemListings"],
1036
+ "dependency.graph": ["dependencyGraph"],
1037
+ "dependency.unreferencedPages": ["dependencyItemListings"],
1038
+ "document.list": [],
1039
+ "document.get": [],
1040
+ "document.create": [],
1041
+ "document.update": [],
1042
+ "document.archive": [],
1043
+ "document.copy": ["documentCopy"],
1044
+ "eidTranslation.translate": [],
1045
+ "erd.get": ["erd"],
1046
+ "field.get": [],
1047
+ "field.update": [],
1048
+ "field.search": [],
1049
+ "field.remapping": [],
1050
+ "field.summary": [],
1051
+ "field.values": [],
1052
+ "gitSync.currentTask": ["remoteSync"],
1053
+ "gitSync.cancelTask": ["remoteSync"],
1054
+ "gitSync.isDirty": ["remoteSync"],
1055
+ "gitSync.dirty": ["remoteSync"],
1056
+ "gitSync.hasRemoteChanges": ["remoteSync"],
1057
+ "gitSync.import": ["remoteSync"],
1058
+ "gitSync.export": ["remoteSync"],
1059
+ "gitSync.exportPreflight": ["remoteSyncExportPreflight"],
1060
+ "gitSync.stash": ["remoteSync"],
1061
+ "gitSync.branches": ["remoteSync"],
1062
+ "gitSync.createBranch": ["remoteSync"],
1063
+ "gitSync.setCollectionSynced": ["remoteSync"],
1064
+ "gitSync.syncedCollections": ["remoteSync"],
1065
+ "gitSync.remoteUrl": [],
1066
+ "gitSync.branch": [],
1067
+ "gitSync.waitForTask": ["remoteSync"],
1068
+ "glossary.list": [],
1069
+ "glossary.create": [],
1070
+ "glossary.update": [],
1071
+ "glossary.delete": [],
1072
+ "library.get": ["library"],
1073
+ "library.create": ["library"],
1074
+ "library.ensureDataCollectionId": ["library"],
1075
+ "library.publishTables": ["library"],
1076
+ "library.unpublishTables": ["library"],
1077
+ "metric.query": ["metricDefinitionQuery"],
1078
+ "metric.breakoutValues": ["metricDefinitionQuery"],
1079
+ "metric.dimensions": ["metricDimensionListing"],
1080
+ "measure.list": ["measures"],
1081
+ "measure.get": ["measures"],
1082
+ "measure.create": ["measures"],
1083
+ "measure.update": ["measures"],
1084
+ "measure.archive": ["measures"],
1085
+ "moderationReview.create": ["contentVerification"],
1086
+ "notification.list": [],
1087
+ "notification.get": [],
1088
+ "notification.create": [],
1089
+ "notification.update": [],
1090
+ "notification.archive": [],
1091
+ "notification.send": [],
1092
+ "permission.graph": [],
1093
+ "permission.databaseGraph": [],
1094
+ "permission.groupGraph": [],
1095
+ "pulse.list": [],
1096
+ "pulse.get": [],
1097
+ "pulse.create": [],
1098
+ "pulse.update": [],
1099
+ "pulse.archive": [],
1100
+ "replacement.checkReplaceSource": ["sourceReplacement"],
1101
+ "replacement.replaceSource": ["sourceReplacement"],
1102
+ "replacement.replaceModelWithTransform": ["sourceReplacement"],
1103
+ "replacement.listRuns": ["sourceReplacement"],
1104
+ "replacement.getRun": ["sourceReplacement"],
1105
+ "replacement.cancelRun": ["sourceReplacement"],
1106
+ "revision.list": [],
1107
+ "revision.revert": [],
1108
+ "search.query": [],
1109
+ "segment.list": [],
1110
+ "segment.get": [],
1111
+ "segment.create": [],
1112
+ "segment.update": [],
1113
+ "segment.archive": [],
1114
+ "setting.list": [],
1115
+ "setting.get": [],
1116
+ "setting.set": [],
1117
+ "setup.create": [],
1118
+ "snippet.list": [],
1119
+ "snippet.get": [],
1120
+ "snippet.create": [],
1121
+ "snippet.update": [],
1122
+ "snippet.archive": [],
1123
+ "table.list": [],
1124
+ "table.get": [],
1125
+ "table.update": [],
1126
+ "table.queryMetadata": [],
1127
+ "table.fks": [],
1128
+ "table.syncSchema": [],
1129
+ "table.rescanValues": [],
1130
+ "table.bulkEdit": ["bulkTableEdit"],
1131
+ "table.appendCsv": [],
1132
+ "table.replaceCsv": [],
1133
+ "timeline.list": [],
1134
+ "timeline.get": [],
1135
+ "timeline.events": [],
1136
+ "timeline.create": [],
1137
+ "timeline.update": [],
1138
+ "timeline.archive": [],
1139
+ "timeline.delete": [],
1140
+ "timelineEvent.get": [],
1141
+ "timelineEvent.create": [],
1142
+ "timelineEvent.update": [],
1143
+ "timelineEvent.archive": [],
1144
+ "timelineEvent.delete": [],
1145
+ "transform.list": ["transforms"],
1146
+ "transform.get": ["transforms"],
1147
+ "transform.create": ["transforms"],
1148
+ "transform.update": ["transforms"],
1149
+ "transform.delete": ["transforms"],
1150
+ "transform.deleteTable": ["transforms"],
1151
+ "transform.dependencies": ["transforms"],
1152
+ "transform.cancel": ["transforms"],
1153
+ "transform.getRun": ["transforms"],
1154
+ "transform.runPages": ["transforms"],
1155
+ "transform.runSummaryPages": ["unifiedTransformRuns", "transforms"],
1156
+ "transform.resetCheckpoint": ["transformCheckpointReset", "transforms"],
1157
+ "transform.runDag": ["transformDagRuns", "transforms"],
1158
+ "transform.dagTransforms": ["transformDagRuns", "transforms"],
1159
+ "transform.run": ["transforms"],
1160
+ "transformDagRun.transformRuns": ["transformDagRuns", "transforms"],
1161
+ "transformDagRun.cancel": ["transformDagRuns", "transforms"],
1162
+ "transformInspector.discover": ["transformInspector"],
1163
+ "transformInspector.lens": ["transformInspector"],
1164
+ "transformInspector.query": ["transformInspector"],
1165
+ "transformJob.list": ["transforms"],
1166
+ "transformJob.get": ["transforms"],
1167
+ "transformJob.create": ["transforms"],
1168
+ "transformJob.update": ["transforms"],
1169
+ "transformJob.delete": ["transforms"],
1170
+ "transformJob.run": ["transforms"],
1171
+ "transformJob.transforms": ["transforms"],
1172
+ "transformJob.setActive": ["transformJobActivation", "transforms"],
1173
+ "transformPython.getLibrary": ["pythonLibrary"],
1174
+ "transformPython.updateLibrary": ["pythonLibrary"],
1175
+ "transformPython.testRun": ["pythonTestRun"],
1176
+ "transformTag.list": ["transforms"],
1177
+ "transformTag.create": ["transforms"],
1178
+ "transformTag.update": ["transforms"],
1179
+ "transformTag.delete": ["transforms"],
1180
+ "transformTest.list": ["transformTests"],
1181
+ "transformTest.get": ["transformTests"],
1182
+ "transformTest.create": ["transformTests"],
1183
+ "transformTest.update": ["transformTests"],
1184
+ "transformTest.delete": ["transformTests"],
1185
+ "transformTest.run": ["transformTests"],
1186
+ "upload.createFromCsv": [],
1187
+ "user.current": []
1188
+ };
1189
+ function isMethodKey(key) {
1190
+ return Object.hasOwn(METHOD_REQUIREMENTS, key);
1191
+ }
1192
+ const METHOD_KEYS = Object.keys(METHOD_REQUIREMENTS).filter(isMethodKey);
1193
+ function methodRequirements(key) {
1194
+ return METHOD_REQUIREMENTS[key];
686
1195
  }
687
1196
  //#endregion
688
1197
  //#region src/runtime/command-help.ts
@@ -708,6 +1217,10 @@ const CommandHelpSkill = z.object({
708
1217
  skill: z.string(),
709
1218
  purpose: z.string()
710
1219
  });
1220
+ const CommandHelpRequires = z.object({
1221
+ methods: z.array(z.enum(METHOD_KEYS)),
1222
+ features: z.array(z.enum(FEATURE_NAMES))
1223
+ });
711
1224
  z.object({
712
1225
  command: z.string(),
713
1226
  description: z.string().nullable(),
@@ -717,7 +1230,7 @@ z.object({
717
1230
  args: z.array(CommandHelpArg),
718
1231
  inputSchema: z.unknown().nullable(),
719
1232
  outputSchema: z.unknown().nullable(),
720
- capabilities: Capabilities.nullable()
1233
+ requires: CommandHelpRequires.nullable()
721
1234
  });
722
1235
  const CommandIndexEntry = z.object({
723
1236
  command: z.string(),
@@ -734,7 +1247,7 @@ const EMPTY_AUGMENT = {
734
1247
  skills: [],
735
1248
  inputSchema: null,
736
1249
  outputSchema: null,
737
- capabilities: null
1250
+ requires: null
738
1251
  };
739
1252
  async function buildHelpEntry(cmd, path) {
740
1253
  const meta = await resolveCitty(cmd.meta);
@@ -748,7 +1261,7 @@ async function buildHelpEntry(cmd, path) {
748
1261
  args: convertArgs(args),
749
1262
  inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
750
1263
  outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
751
- capabilities: augment.capabilities
1264
+ requires: augment.requires
752
1265
  };
753
1266
  if (augment.details !== null) entry.details = augment.details;
754
1267
  return entry;
@@ -1059,4 +1572,4 @@ run().catch((error) => {
1059
1572
  reportError(error);
1060
1573
  });
1061
1574
  //#endregion
1062
- export { name as A, normalizeFlag as B, ENV_PROFILE as C, consumeLegacyEnvWarnings as D, ENV_URL as E, outputFlags as F, profileFlag as I, DEFAULT_MAX_BYTES as L, connectionFlags as M, listFlags as N, readEnv as O, listFlagsWithDefaultLimit as P, listEnvelopeSchema as R, ENV_DISABLE_KEYRING as S, ENV_SKIP_PREFLIGHT as T, toAliasArray as V, promptSelect as _, reportError as a, warn as b, renderSummary as c, MALFORMED_CELL as d, formatScalar as f, promptPassword as g, promptConfirm as h, mergeCapabilities as i, version as j, setMetabaseAugment as k, writeJson as l, projectForList as m, BASELINE_CAPABILITIES as n, renderItem as o, renderRows as p, checkCapabilities as r, renderList as s, interruptSignal as t, writeText as u, promptText as v, ENV_SKILLS_DIR as w, ENV_API_KEY as x, listTruncationNotice as y, flagConsumesValue as z };
1575
+ export { FailedResultError as $, ENV_SKILLS_DIR as A, listFlags as B, promptSelect as C, ENV_API_KEY as D, warn as E, ProfileRefreshedError as F, listEnvelopeSchema as G, outputFlags as H, setMetabaseAugment as I, normalizeFlag as J, listEnvelopeSchemaWithExtras as K, name as L, ENV_URL as M, consumeLegacyEnvWarnings as N, ENV_DISABLE_KEYRING as O, readEnv as P, ConfigError as Q, version as R, promptPassword as S, listTruncationNotice as T, profileFlag as U, listFlagsWithDefaultLimit as V, DEFAULT_MAX_BYTES as W, AbortError as X, toAliasArray as Y, ChainedRequestError as Z, formatScalar as _, Features as a, UnknownError as at, isPlainObject as b, ruleGap as c, isFileNotFoundError as ct, renderList as d, InternalError as et, renderListWithExtras as f, MALFORMED_CELL as g, writeText as h, FEATURE_RULES as i, TimeoutError as it, ENV_SKIP_PREFLIGHT as j, ENV_PROFILE as k, reportError as l, KNOWN_RANGE as lt, writeJson as m, methodRequirements as n, NetworkError as nt, evaluateFeatures as o, ValidationError as ot, renderSummary as p, flagConsumesValue as q, FEATURE_NAMES as r, ResponseShapeError as rt, isFeatureName as s, errorMessage as st, interruptSignal as t, MetabaseError as tt, renderItem as u, escapeJsonPointerSegment as ut, renderRows as v, promptText as w, promptConfirm as x, projectForList as y, connectionFlags as z };