@metabase/cli 0.3.1 → 0.3.2-alpha.fix-transform-test-ee-path.041c793

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 (267) hide show
  1. package/dist/{add-collection-CYDUm_XO.mjs → add-collection-73X1DmCM.mjs} +6 -9
  2. package/dist/{alert-ClyhtxIz.mjs → alert-BB38lWSL.mjs} +7 -7
  3. package/dist/{alerts-Dt3D1gcz.mjs → alerts-DxyzqLSU.mjs} +7 -7
  4. package/dist/{append-Bl_Ensmr.mjs → append-CHme1Enm.mjs} +5 -5
  5. package/dist/{archive-DSMqHRr1.mjs → archive-BGiDxu8O.mjs} +4 -4
  6. package/dist/{archive-D3a3Wgz0.mjs → archive-BMyvyf62.mjs} +4 -4
  7. package/dist/{archive-BdHXQg4I.mjs → archive-C4Y2B58q.mjs} +4 -4
  8. package/dist/{archive-CWceyy8x.mjs → archive-CP5Hlqjw.mjs} +5 -5
  9. package/dist/{archive-BOyKhNOz.mjs → archive-Cq3fnc0v2.mjs} +6 -6
  10. package/dist/{archive-DVGDg8mP.mjs → archive-CqKqNdUh.mjs} +6 -6
  11. package/dist/{archive-DDru3vdy.mjs → archive-Czo5T0Lp.mjs} +4 -4
  12. package/dist/{archive-nKD3mOB8.mjs → archive-DBcxZwLd.mjs} +6 -6
  13. package/dist/{archive-CNblz55j.mjs → archive-DKFPJ9j3.mjs} +6 -6
  14. package/dist/{archive-BJZ7Dace.mjs → archive-DPL1qOuL.mjs} +6 -6
  15. package/dist/{archive-DiGxCojL.mjs → archive-eS-XA74p.mjs} +4 -4
  16. package/dist/{auth-aCksg8q2.mjs → auth-6YyB0HNB.mjs} +5 -5
  17. package/dist/{body-DxRSAMNC.mjs → body-OjAWKVaU.mjs} +3 -3
  18. package/dist/{branches-_0VWR2Zm.mjs → branches-D5YLVFDK.mjs} +4 -7
  19. package/dist/{cancel-ctpVE8uC.mjs → cancel-DeRIq1YJ.mjs} +4 -4
  20. package/dist/{cancel-task-FtxBka-M.mjs → cancel-task-CqExODVm.mjs} +5 -8
  21. package/dist/card-BMSqofd7.mjs +24 -0
  22. package/dist/{card-zyUkr2nS.mjs → card-CEkp1mcI.mjs} +1 -1
  23. package/dist/{card-DZxRmver.mjs → card-voh1k4hl.mjs} +14 -11
  24. package/dist/{cards-DHOWAvfv.mjs → cards-B813G9I5.mjs} +7 -7
  25. package/dist/cli.mjs +572 -69
  26. package/dist/client-cJ7aw0Gt.mjs +4092 -0
  27. package/dist/collection-BfNg7tEg.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-CVzDgJV0.mjs} +2 -2
  31. package/dist/{content-translation-DNKerjS3.mjs → content-translation-QKWt9l76.mjs} +3 -3
  32. package/dist/{create-e650zxzX.mjs → create-4UnoQvsy.mjs} +5 -5
  33. package/dist/{create-DaYRnK5P.mjs → create-BJad6MR82.mjs} +8 -8
  34. package/dist/{create-CcLchJAN.mjs → create-BLiB2xqo.mjs} +7 -7
  35. package/dist/{create-C9vy4ZG6.mjs → create-BWp6L_dW.mjs} +5 -5
  36. package/dist/{create-C78g8Crb.mjs → create-Bef5eBCA.mjs} +5 -5
  37. package/dist/{create-F4Lf09xq.mjs → create-CMV3qlzJ.mjs} +4 -4
  38. package/dist/{create-DmvoibX8.mjs → create-CWGsiFvU.mjs} +4 -4
  39. package/dist/{create-C3IaXXty.mjs → create-CoFg1p6m.mjs} +4 -4
  40. package/dist/{create-CEydRMWS.mjs → create-CvIeb1NU.mjs} +7 -7
  41. package/dist/{create-vlrlY-2E.mjs → create-CvpeAcFc.mjs} +4 -4
  42. package/dist/{create-wJR4CxHA.mjs → create-D50TxVTk.mjs} +5 -8
  43. package/dist/{create-CLG2-bso.mjs → create-DEBgYRlM.mjs} +6 -6
  44. package/dist/{create-7ddYK4TA.mjs → create-DJm0YuLW.mjs} +6 -6
  45. package/dist/{create-BdPVWYSi.mjs → create-DmKwDQCY2.mjs} +6 -6
  46. package/dist/{create-branch-B8C7jl-J.mjs → create-branch-BN5iH-GM.mjs} +5 -9
  47. package/dist/{create-DIVhBIyE.mjs → create-bvpl6Fn5.mjs} +11 -7
  48. package/dist/create-uanpKsPo.mjs +34 -0
  49. package/dist/{csv-BLPJtlSC.mjs → csv-BhuX9fwh.mjs} +5 -5
  50. package/dist/{current-task-C-ldJbWE.mjs → current-task-BMt2NeqV.mjs} +5 -8
  51. package/dist/{dashboard-CtO_3EfC.mjs → dashboard-Ct_ajSYI.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-B_LW2VE-.mjs} +7 -7
  57. package/dist/{delete-ZJJyqsRh.mjs → delete-BOcPK_H9.mjs} +5 -5
  58. package/dist/{delete-BZZHw6pm.mjs → delete-CowGO4rh.mjs} +5 -5
  59. package/dist/{delete-D6WxgWRp.mjs → delete-D0f7VatX.mjs} +5 -5
  60. package/dist/{delete-BwSPQy7m.mjs → delete-D2bUV6uo.mjs} +5 -5
  61. package/dist/delete-DZ_ICQug.mjs +44 -0
  62. package/dist/{delete-BZwAOQxG.mjs → delete-Ur7b11no.mjs} +5 -5
  63. package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-BKEzJn22.mjs} +1 -2
  64. package/dist/{delete-table-CJktZE3w.mjs → delete-table-Dd8X573t.mjs} +5 -5
  65. package/dist/{dependencies-BdqIqEIy.mjs → dependencies-XDVLBwko.mjs} +7 -7
  66. package/dist/{dirty-BW2As2wS.mjs → dirty-k-JmGLsS.mjs} +6 -9
  67. package/dist/{document-Cd2mmqCp.mjs → document-BHpLJbKU.mjs} +5 -0
  68. package/dist/document-BW9iow8R.mjs +19 -0
  69. package/dist/{document-D6OybtP2.mjs → document-CA0Q6lqu.mjs} +1 -1
  70. package/dist/{download-mfFJ9oRS.mjs → download-CQjPIYDO.mjs} +3 -6
  71. package/dist/{eid-DZ-4t2xe.mjs → eid-CNTKDgwj.mjs} +4 -5
  72. package/dist/{events-D6yFmXP1.mjs → events-BshWlkDp.mjs} +5 -5
  73. package/dist/{export-DYZjz1WP.mjs → export-Dq6ecU8h.mjs} +7 -10
  74. package/dist/{field-BJ54wmIX.mjs → field-Bo2ISMO4.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-CVctqn5G.mjs} +7 -7
  78. package/dist/{get-BraVQ1FJ.mjs → get-7xTeNGAo.mjs} +6 -6
  79. package/dist/{get-LAew34ID.mjs → get-8b5Sh50q.mjs} +6 -6
  80. package/dist/{get-CWnriw33.mjs → get-B4RgW-VT.mjs} +6 -6
  81. package/dist/{get-C_5AbfpO.mjs → get-BD81MHl_.mjs} +4 -4
  82. package/dist/{get-ByZJf9nO.mjs → get-Bl3OmlBP.mjs} +5 -5
  83. package/dist/get-BtTetWzm.mjs +32 -0
  84. package/dist/{get-_ggLr1tY.mjs → get-BvSA_mmf.mjs} +6 -6
  85. package/dist/{get-DhkltKIV.mjs → get-BvgEF--n.mjs} +4 -4
  86. package/dist/{get-DYaQpixt.mjs → get-C5sWciaE.mjs} +6 -6
  87. package/dist/get-CO6X4nZH.mjs +93 -0
  88. package/dist/{get-DVyesErX.mjs → get-CTPvdcud.mjs} +6 -6
  89. package/dist/{get-DMECsioX.mjs → get-CrpwxWOV.mjs} +4 -4
  90. package/dist/{get-Ba2HRdrx.mjs → get-D4oGhZWX.mjs} +6 -6
  91. package/dist/{get-CsN7NBI0.mjs → get-Df6cGHCM.mjs} +4 -4
  92. package/dist/{get-BWl3vzsf.mjs → get-DfMVlz64.mjs} +6 -6
  93. package/dist/{get-C5q49Dgx.mjs → get-Dr-U321T2.mjs} +6 -6
  94. package/dist/{get-DAOSGt5Z.mjs → get-Dw7jAno3.mjs} +6 -6
  95. package/dist/{get-DRJtsS1_.mjs → get-PWhOdz1z.mjs} +4 -4
  96. package/dist/{get-CQ0-fFWP.mjs → get-RslzBaXx.mjs} +5 -8
  97. package/dist/{get-run-oH4dRCBx.mjs → get-run-CZdDqfUj.mjs} +6 -6
  98. package/dist/{get-DCutQeiV.mjs → get-wjIgUlNl.mjs} +4 -4
  99. package/dist/git-sync-BmoRk0UV.mjs +28 -0
  100. package/dist/{git-sync-BDnxPrqU.mjs → git-sync-BwBRmEhE.mjs} +18 -1
  101. package/dist/{git-sync-DxD_ng48.mjs → git-sync-TjX1r_wF.mjs} +1 -1
  102. package/dist/{group-DBM87IgC.mjs → group-YQQ5GIcP.mjs} +2 -2
  103. package/dist/{has-remote-changes-CnmyIw_7.mjs → has-remote-changes-i-3MVxat.mjs} +5 -8
  104. package/dist/{import-B7Si-bSI.mjs → import-DWEKejya.mjs} +7 -10
  105. package/dist/{input-DH9i67x_.mjs → input-DEvkIjGr.mjs} +1 -1
  106. package/dist/{is-dirty-BOH_VEA8.mjs → is-dirty-C5ipqd4v.mjs} +3 -6
  107. package/dist/{items-DouHkWev.mjs → items-hKJ2ZDwy.mjs} +7 -7
  108. package/dist/{key-BEhqIzIQ.mjs → key-PYetuQ13.mjs} +1 -1
  109. package/dist/{library-1J_4Dicw.mjs → library-B7_04UVK.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-BK_6VNm_.mjs → list-1vdClKSE.mjs} +4 -4
  113. package/dist/{list-DWLGpMvr.mjs → list-6myofqMv.mjs} +7 -7
  114. package/dist/{list-DhViDVx_.mjs → list-B-9QOX9Y.mjs} +6 -6
  115. package/dist/{list-aKUk-a1Y.mjs → list-Bs7_Rysg.mjs} +7 -7
  116. package/dist/list-CHuhMXet.mjs +35 -0
  117. package/dist/{list-DptEWB5Y.mjs → list-CLZU_EOf.mjs} +4 -4
  118. package/dist/{list-B2Ddf4W0.mjs → list-Cen-7uTo.mjs} +5 -5
  119. package/dist/{list-D2IYZ6lk.mjs → list-CgH-H-O6.mjs} +6 -6
  120. package/dist/{list-BeMYIeiI.mjs → list-CjNXskB4.mjs} +7 -7
  121. package/dist/{list-C1bAtgO1.mjs → list-CmFh1GQ_.mjs} +4 -4
  122. package/dist/{list-Cy0w4Fap.mjs → list-D6tTvYUP.mjs} +4 -4
  123. package/dist/{list-C7UvO3Uw.mjs → list-DI820W6w.mjs} +6 -6
  124. package/dist/{list-D25ofn4v.mjs → list-DKZnQ4Ts.mjs} +7 -7
  125. package/dist/{list-C0zJ2ehz.mjs → list-DKcC4cm0.mjs} +6 -6
  126. package/dist/{list-qs9wAtC3.mjs → list-DfRqNH1N.mjs} +4 -4
  127. package/dist/list-DjwnsyXM.mjs +60 -0
  128. package/dist/{list-sDpy4nDU.mjs → list-VNC-_E59.mjs} +6 -6
  129. package/dist/{list-DJK9_BEF.mjs → list-eKDT1XXk.mjs} +14 -13
  130. package/dist/{list-BXlTYsYA.mjs → list-oX2SMzxZ.mjs} +4 -4
  131. package/dist/{login-BmyCAfRV.mjs → login-DumZaWXK.mjs} +18 -15
  132. package/dist/{logout-DUR32q0V.mjs → logout-BsXPRc-3.mjs} +3 -4
  133. package/dist/{measure-DdVp-8jw.mjs → measure-BFxkbAoa.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-CoF9Hx1p.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-DmFJgpY6.mjs} +1 -1
  139. package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-DTDld_LJ.mjs} +1 -1
  140. package/dist/{path-D8BQmEhL.mjs → path-BQ4lRDyN.mjs} +5 -5
  141. package/dist/{poll-75SvT7Zv.mjs → poll-CZeXepUQ.mjs} +2 -2
  142. package/dist/{preflight-CoF1Em99.mjs → preflight-BTQe4swo.mjs} +3 -4
  143. package/dist/{process-DBOOrmET.mjs → process-CTrfxxaC.mjs} +1 -1
  144. package/dist/{publish-Cb7XrQ3X.mjs → publish-CFB2Cc5A.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-BJbUnAHf.mjs} +10 -12
  148. package/dist/query-CV2KCS5O.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-D3yvKH3e.mjs} +6 -9
  151. package/dist/{render-CI93iP0I.mjs → render-BJRCs7rA.mjs} +13 -2
  152. package/dist/{replace-CtsWICrD.mjs → replace-uj4WTqx_.mjs} +5 -5
  153. package/dist/{rescan-values-CaXUL6z5.mjs → rescan-values-CzxQU318.mjs} +6 -6
  154. package/dist/{run-CM-Amtbf.mjs → run-B2f_omHu.mjs} +26 -14
  155. package/dist/run-DlO1J1Sx.mjs +50 -0
  156. package/dist/{run-BeLm17F4.mjs → run-yX2dtmE5.mjs} +6 -6
  157. package/dist/{runs-DFG63zgr.mjs → runs-DzUO45wU.mjs} +7 -7
  158. package/dist/{runtime-z8rra6-I.mjs → runtime-arKqJqIT.mjs} +994 -252
  159. package/dist/{schema-tables-COAHkIcy.mjs → schema-tables-DZCNzuQ6.mjs} +7 -7
  160. package/dist/{schemas-BX5BATiV.mjs → schemas-2ejqaVsG.mjs} +5 -5
  161. package/dist/{search-DFBwUc6d.mjs → search-BAXg-EJw.mjs} +2 -1
  162. package/dist/{search-CPvvmhdt.mjs → search-DcihauDZ.mjs} +6 -6
  163. package/dist/{segment-C62L6BI3.mjs → segment-BQT2poPG.mjs} +6 -6
  164. package/dist/{selectors-P4QnrORk.mjs → selectors-BzestDld.mjs} +3 -3
  165. package/dist/{send-PZh5IKF8.mjs → send-DMxoLFo7.mjs} +4 -4
  166. package/dist/{set-DbCtUoFd.mjs → set-CDmiD0vv.mjs} +5 -5
  167. package/dist/{set-active-DL4QzWDO.mjs → set-active-RrvWR9NY.mjs} +5 -5
  168. package/dist/{setting-BlRcZbhC.mjs → setting-BiBLCcxz.mjs} +4 -4
  169. package/dist/{setup-D_SLaC-3.mjs → setup-DYsTzkWO.mjs} +4 -4
  170. package/dist/{signal-CMd0EFUa.mjs → signal-k7cm5N6h.mjs} +11 -2
  171. package/dist/skill-list-D9_1Pmt7.mjs +76 -0
  172. package/dist/skills-BPHXUfeL.mjs +351 -0
  173. package/dist/{skills-D991LB1M.mjs → skills-C3bxxC6a.mjs} +3 -3
  174. package/dist/snippet-BtfxE60H.mjs +19 -0
  175. package/dist/{stash-DyBxFoP6.mjs → stash-DdheS0Ad.mjs} +7 -11
  176. package/dist/{status-cfDHqK2Q.mjs → status-BuIzXRX1.mjs} +12 -11
  177. package/dist/{status-DUsiogz5.mjs → status-CXouQJ31.mjs} +11 -9
  178. package/dist/{subscription-Bn0AU7GN.mjs → subscription-CJ8Igs1U.mjs} +6 -6
  179. package/dist/{subscriptions-DwqjCVlc.mjs → subscriptions-D0NpGvCQ.mjs} +7 -7
  180. package/dist/{summary-BGwSNzf4.mjs → summary-D04S8gGj.mjs} +6 -6
  181. package/dist/{sync-schema-dtkDOAKe.mjs → sync-schema-DrA5zkdl.mjs} +7 -7
  182. package/dist/{sync-task-BACcrs0i.mjs → sync-task-BXeWuARG.mjs} +1 -1
  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-Dntbz7Q2.mjs} +5 -5
  186. package/dist/timeline-8jwsldo3.mjs +21 -0
  187. package/dist/{timeline-event-BsF7YqzZ.mjs → timeline-event-BbB1xEdI.mjs} +6 -6
  188. package/dist/{transform-DoTyyXAu.mjs → transform-CtqB1WYo.mjs} +2 -2
  189. package/dist/{transform-D3QX0jxA.mjs → transform-DiW7bREn.mjs} +68 -5
  190. package/dist/{transform-job-50GZHhKH.mjs → transform-job-AaMZRxAq.mjs} +1 -1
  191. package/dist/transform-job-B-1YAbvy.mjs +22 -0
  192. package/dist/{transform-job-DRrK28IH.mjs → transform-job-CCguL6LP.mjs} +41 -4
  193. package/dist/transform-m6s4kkWU.mjs +28 -0
  194. package/dist/{transform-tag-VM9R7Q_M.mjs → transform-tag-PjryheLF.mjs} +5 -5
  195. package/dist/transform-test-BjjCQ2xm.mjs +169 -0
  196. package/dist/transform-test-DSTkKKNC.mjs +16 -0
  197. package/dist/transform-test-gzDcbypy.mjs +25 -0
  198. package/dist/{transforms-BjACGbBp.mjs → transforms-CijX3VE7.mjs} +7 -7
  199. package/dist/{tree-BwS6JAmk.mjs → tree-Cmb3O6rH.mjs} +4 -5
  200. package/dist/{unpublish-DWdPnENY.mjs → unpublish-DkP_AcK5.mjs} +4 -7
  201. package/dist/{update-DKEHY-gt.mjs → update-8UmD1prT.mjs} +7 -7
  202. package/dist/{update-C1FBVLfC.mjs → update-BFyRBc-H.mjs} +8 -8
  203. package/dist/{update-tLIhVIPp.mjs → update-BrXGg3QO.mjs} +8 -8
  204. package/dist/{update-DCjAjihm.mjs → update-C91m9YAR.mjs} +6 -6
  205. package/dist/{update-BpPaacCF.mjs → update-COcx61Ur.mjs} +6 -6
  206. package/dist/update-Ci8YL4_2.mjs +41 -0
  207. package/dist/{update-BR_vkkd1.mjs → update-CtLbFCd_.mjs} +5 -5
  208. package/dist/{update-DTmRHBik.mjs → update-D6Zzvc7F.mjs} +7 -7
  209. package/dist/{update-cqR1U6DU.mjs → update-D8htjzNJ.mjs} +5 -5
  210. package/dist/{update-B2CF2DK4.mjs → update-D9kOTr0n.mjs} +6 -6
  211. package/dist/{update-C4y3iQsv.mjs → update-DPTio6i1.mjs} +7 -7
  212. package/dist/{update-DsZttiSC.mjs → update-DlWB9s0v.mjs} +5 -5
  213. package/dist/{update-BCT9qpVr.mjs → update-DubrpPbz.mjs} +5 -5
  214. package/dist/{update-3idz42uD.mjs → update-Dz47cKBk.mjs} +7 -7
  215. package/dist/{update-DkviXwSg.mjs → update-FCP5Lop2.mjs} +7 -7
  216. package/dist/{update-DlTaD1x3.mjs → update-KSHnb6vB.mjs} +9 -9
  217. package/dist/{update-dashcard-DlE_bb2F.mjs → update-dashcard-BlibHa5o.mjs} +7 -7
  218. package/dist/{upgrade-mNV7XuJG.mjs → upgrade-EwL6wPSY.mjs} +6 -8
  219. package/dist/upload-BZshRJIM.mjs +13 -0
  220. package/dist/{upload-CEGVxmYB.mjs → upload-D0KaTqUE.mjs} +4 -7
  221. package/dist/{upload-CD555ui1.mjs → upload-Do2PBSeH.mjs} +2 -2
  222. package/dist/{uuid-C4hqn3kA.mjs → uuid-DjKLDIVE.mjs} +10 -7
  223. package/dist/{validate-query-DaGYSmpQ.mjs → validate-query-D6_ad-Gi.mjs} +3 -4
  224. package/dist/{validate-BWchyW0V.mjs → validate-xR_MHBNR.mjs} +69 -23
  225. package/dist/{values-C0O3eNaW.mjs → values-Dc9612_L.mjs} +6 -6
  226. package/dist/{verify-DfTjYF7s.mjs → verify-DVN1eqXZ.mjs} +3 -18
  227. package/dist/{wait-WZmFenN_.mjs → wait-C-ovOTAZ.mjs} +7 -10
  228. package/dist/{wait-flags-BbfDSP8R.mjs → wait-flags-BQNmuvIj.mjs} +2 -2
  229. package/dist/{window-BkvrP0gB.mjs → window-DSb1tqSe.mjs} +1 -1
  230. package/package.json +1 -1
  231. package/skill-data/core/SKILL.md +31 -15
  232. package/skill-data/dashboard/SKILL.md +1 -1
  233. package/skill-data/data-workflow/references/building-clean-tables.md +6 -2
  234. package/skill-data/data-workflow/references/reusable-definitions.md +11 -3
  235. package/skill-data/document/SKILL.md +4 -1
  236. package/skill-data/git-sync/SKILL.md +5 -0
  237. package/skill-data/mbql/SKILL.md +84 -115
  238. package/skill-data/mbql/references/operators.md +77 -231
  239. package/skill-data/metadata/SKILL.md +1 -1
  240. package/skill-data/metadata/references/semantic-types.md +7 -1
  241. package/skill-data/native-sql/SKILL.md +8 -9
  242. package/skill-data/native-sql/references/template-tags.md +27 -27
  243. package/skill-data/notification/SKILL.md +7 -1
  244. package/skill-data/transform/SKILL.md +76 -4
  245. package/skill-data/transform-test-plan/SKILL.md +171 -0
  246. package/skill-data/transform-test-plan/references/checklist.md +81 -0
  247. package/skill-data/transform-test-plan/references/checks.md +260 -0
  248. package/skill-data/visualization/SKILL.md +13 -6
  249. package/skill-data/visualization/references/settings.md +13 -11
  250. package/skills/metabase-cli/SKILL.md +1 -1
  251. package/dist/card-CGCXbdmD.mjs +0 -24
  252. package/dist/client-mKuHg_sc.mjs +0 -2218
  253. package/dist/collection-D8Tk8i3a.mjs +0 -20
  254. package/dist/document-KbcHhzFz.mjs +0 -19
  255. package/dist/get-BC8J8BXB.mjs +0 -80
  256. package/dist/git-sync-Dik8nKfw.mjs +0 -28
  257. package/dist/library-ClLgrAXy.mjs +0 -19
  258. package/dist/list-CW5PdYCX.mjs +0 -98
  259. package/dist/network-error-D6CiOEBw.mjs +0 -431
  260. package/dist/predicates-Bkm2IoeX.mjs +0 -170
  261. package/dist/query-C256WBYG.mjs +0 -87
  262. package/dist/skills-DTCrMcix.mjs +0 -216
  263. package/dist/snippet-DTDO55Cg.mjs +0 -19
  264. package/dist/timeline-DcXPshcT.mjs +0 -21
  265. package/dist/transform-Dsf_wHAj.mjs +0 -28
  266. package/dist/transform-job-B1yLv5l-.mjs +0 -22
  267. package/dist/upload-DsYCf5kB.mjs +0 -13
package/dist/cli.mjs CHANGED
@@ -1,10 +1,184 @@
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 AbortError = class extends MetabaseError {
124
+ category = "abort";
125
+ isRetryable = false;
126
+ developerDetail = null;
127
+ constructor(message = "aborted") {
128
+ super(message);
129
+ this.name = "AbortError";
130
+ }
131
+ };
132
+ var ChainedRequestError = class extends MetabaseError {
133
+ cause;
134
+ constructor(message, cause) {
135
+ super(message);
136
+ this.name = "ChainedRequestError";
137
+ this.cause = cause;
138
+ }
139
+ get category() {
140
+ return this.cause.category;
141
+ }
142
+ get isRetryable() {
143
+ return this.cause.isRetryable;
144
+ }
145
+ get developerDetail() {
146
+ return this.cause.developerDetail;
147
+ }
148
+ };
149
+ var UnknownError = class extends MetabaseError {
150
+ category = "unknown";
151
+ isRetryable = false;
152
+ developerDetail;
153
+ constructor(input) {
154
+ super(input.originalMessage);
155
+ this.name = "UnknownError";
156
+ this.developerDetail = input;
157
+ }
158
+ };
159
+ function toMetabaseError(error) {
160
+ if (error instanceof MetabaseError) return error;
161
+ if (error instanceof ZodError) return new ConfigError(error.issues.map(formatZodIssue).join("; "));
162
+ if (error instanceof Error) return new UnknownError({
163
+ originalMessage: error.message,
164
+ stack: error.stack ?? null
165
+ });
166
+ return new UnknownError({
167
+ originalMessage: String(error),
168
+ stack: null
169
+ });
170
+ }
171
+ function formatZodIssue(issue) {
172
+ const path = core.toDotPath(issue.path);
173
+ return path === "" ? issue.message : `${path}: ${issue.message}`;
174
+ }
175
+ function isFileNotFoundError(value) {
176
+ return value instanceof Error && "code" in value && value.code === "ENOENT";
177
+ }
178
+ function errorMessage(value) {
179
+ return value instanceof Error ? value.message : String(value);
180
+ }
181
+ //#endregion
8
182
  //#region src/runtime/citty.ts
9
183
  async function resolveCitty(value) {
10
184
  if (value === void 0) return;
@@ -32,7 +206,16 @@ function flagConsumesValue(token, argsDef) {
32
206
  //#region src/output/types.ts
33
207
  const DEFAULT_MAX_BYTES = 24576;
34
208
  function listEnvelopeSchema(item) {
209
+ return z.object(listEnvelopeShape(item));
210
+ }
211
+ function listEnvelopeSchemaWithExtras(item, extras) {
35
212
  return z.object({
213
+ ...listEnvelopeShape(item),
214
+ ...extras
215
+ });
216
+ }
217
+ function listEnvelopeShape(item) {
218
+ return {
36
219
  data: z.array(item).describe("The items in this window."),
37
220
  returned: z.number().int().nonnegative().describe("Number of items in `data`; a short window is not proof the walk is over."),
38
221
  offset: z.number().int().nonnegative().describe("Index of the first item in `data` within the full result set."),
@@ -44,7 +227,7 @@ function listEnvelopeSchema(item) {
44
227
  reason: z.literal("max_bytes"),
45
228
  bytes: z.number().int().nonnegative()
46
229
  }).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
- });
230
+ };
48
231
  }
49
232
  //#endregion
50
233
  //#region src/commands/flags.ts
@@ -175,7 +358,7 @@ function trustSystemCa() {
175
358
  //#endregion
176
359
  //#region package.json
177
360
  var name = "@metabase/cli";
178
- var version = "0.3.1";
361
+ var version = "0.3.2-alpha.fix-transform-test-ee-path.041c793";
179
362
  var description = "Metabase CLI";
180
363
  //#endregion
181
364
  //#region src/runtime/command-augment.ts
@@ -195,36 +378,37 @@ const main = defineCommand({
195
378
  description
196
379
  },
197
380
  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)
381
+ auth: () => import("./auth-6YyB0HNB.mjs").then((mod) => mod.default),
382
+ db: () => import("./db-B_LW2VE-.mjs").then((mod) => mod.default),
383
+ table: () => import("./table-Dntbz7Q2.mjs").then((mod) => mod.default),
384
+ field: () => import("./field-Bo2ISMO4.mjs").then((mod) => mod.default),
385
+ upload: () => import("./upload-BZshRJIM.mjs").then((mod) => mod.default),
386
+ "content-translation": () => import("./content-translation-QKWt9l76.mjs").then((mod) => mod.default),
387
+ card: () => import("./card-BMSqofd7.mjs").then((mod) => mod.default),
388
+ dashboard: () => import("./dashboard-Ct_ajSYI.mjs").then((mod) => mod.default),
389
+ subscription: () => import("./subscription-CJ8Igs1U.mjs").then((mod) => mod.default),
390
+ alert: () => import("./alert-BB38lWSL.mjs").then((mod) => mod.default),
391
+ collection: () => import("./collection-BfNg7tEg.mjs").then((mod) => mod.default),
392
+ library: () => import("./library-B7_04UVK.mjs").then((mod) => mod.default),
393
+ document: () => import("./document-BW9iow8R.mjs").then((mod) => mod.default),
394
+ transform: () => import("./transform-m6s4kkWU.mjs").then((mod) => mod.default),
395
+ "transform-job": () => import("./transform-job-B-1YAbvy.mjs").then((mod) => mod.default),
396
+ "transform-tag": () => import("./transform-tag-PjryheLF.mjs").then((mod) => mod.default),
397
+ "transform-test": () => import("./transform-test-DSTkKKNC.mjs").then((mod) => mod.default),
398
+ setting: () => import("./setting-BiBLCcxz.mjs").then((mod) => mod.default),
399
+ search: () => import("./search-DcihauDZ.mjs").then((mod) => mod.default),
400
+ "git-sync": () => import("./git-sync-BmoRk0UV.mjs").then((mod) => mod.default),
401
+ setup: () => import("./setup-DYsTzkWO.mjs").then((mod) => mod.default),
402
+ snippet: () => import("./snippet-BtfxE60H.mjs").then((mod) => mod.default),
403
+ segment: () => import("./segment-BQT2poPG.mjs").then((mod) => mod.default),
404
+ measure: () => import("./measure-BFxkbAoa.mjs").then((mod) => mod.default),
405
+ timeline: () => import("./timeline-8jwsldo3.mjs").then((mod) => mod.default),
406
+ "timeline-event": () => import("./timeline-event-BbB1xEdI.mjs").then((mod) => mod.default),
407
+ eid: () => import("./eid-CNTKDgwj.mjs").then((mod) => mod.default),
408
+ query: () => import("./query-CV2KCS5O.mjs").then((mod) => mod.default),
409
+ uuid: () => import("./uuid-DjKLDIVE.mjs").then((mod) => mod.default),
410
+ upgrade: () => import("./upgrade-EwL6wPSY.mjs").then((mod) => mod.default),
411
+ skills: () => import("./skills-C3bxxC6a.mjs").then((mod) => mod.default)
228
412
  }
229
413
  });
230
414
  setMetabaseAugment(main, {
@@ -239,9 +423,22 @@ setMetabaseAugment(main, {
239
423
  }],
240
424
  inputSchema: null,
241
425
  outputSchema: null,
242
- capabilities: null
426
+ requires: null
243
427
  });
244
428
  //#endregion
429
+ //#region src/core/profile-refreshed-error.ts
430
+ var ProfileRefreshedError = class extends MetabaseError {
431
+ category;
432
+ isRetryable = false;
433
+ developerDetail;
434
+ constructor(cause, note) {
435
+ super(`${cause.userMessage}\n${note}`);
436
+ this.name = "ProfileRefreshedError";
437
+ this.category = cause.category;
438
+ this.developerDetail = cause.developerDetail;
439
+ }
440
+ };
441
+ //#endregion
245
442
  //#region src/core/env.ts
246
443
  const LEGACY_PREFIX = "METABASE_";
247
444
  const ENV_URL = "MB_URL";
@@ -380,6 +577,11 @@ function jsonByteLength(value) {
380
577
  return Buffer.byteLength(JSON.stringify(value), "utf8");
381
578
  }
382
579
  //#endregion
580
+ //#region ../client/src/predicates.ts
581
+ function isPlainObject(value) {
582
+ return typeof value === "object" && value !== null && !Array.isArray(value);
583
+ }
584
+ //#endregion
383
585
  //#region src/output/projection.ts
384
586
  function projectForList(item, view, opts) {
385
587
  const full = opts.format === "text" && opts.fields === void 0 ? false : opts.full;
@@ -513,8 +715,11 @@ function renderSummary(item, view, summaryText, opts) {
513
715
  process.stdout.write(body);
514
716
  }
515
717
  function renderList(envelope, view, opts) {
718
+ renderListWithExtras(envelope, {}, view, opts);
719
+ }
720
+ function renderListWithExtras(envelope, extras, view, opts) {
516
721
  if (opts.format === "json") {
517
- renderJsonEnvelope(envelope, view, opts);
722
+ renderJsonEnvelope(envelope, extras, view, opts);
518
723
  return;
519
724
  }
520
725
  if (envelope.data.length === 0) {
@@ -547,8 +752,11 @@ function projectedEnvelope(envelope, view, opts) {
547
752
  data: envelope.data.map((item) => projectForList(item, view, opts))
548
753
  };
549
754
  }
550
- function renderJsonEnvelope(envelope, view, opts) {
551
- const capped = capListEnvelope(projectedEnvelope(envelope, view, opts), opts.maxBytes);
755
+ function renderJsonEnvelope(envelope, extras, view, opts) {
756
+ const capped = capListEnvelope({
757
+ ...projectedEnvelope(envelope, view, opts),
758
+ ...extras
759
+ }, opts.maxBytes);
552
760
  const ordered = {
553
761
  returned: capped.returned,
554
762
  offset: capped.offset,
@@ -557,6 +765,7 @@ function renderJsonEnvelope(envelope, view, opts) {
557
765
  has_more: capped.has_more,
558
766
  next_offset: capped.next_offset,
559
767
  truncated: capped.truncated,
768
+ ...extras,
560
769
  data: capped.data
561
770
  };
562
771
  process.stdout.write(serializeJson(ordered, stdoutPretty()) + "\n");
@@ -626,6 +835,7 @@ function isRouteMissing(handled) {
626
835
  return "kind" in handled && handled.kind === ROUTE_MISSING_KIND;
627
836
  }
628
837
  function remediesFor(handled) {
838
+ if (handled instanceof ProfileRefreshedError) return [];
629
839
  if (isVersionTooOld(handled.developerDetail)) return [DOWNGRADE_REMEDY];
630
840
  if (isRouteMissing(handled)) return [ROUTE_MISSING_REMEDY];
631
841
  return [];
@@ -654,35 +864,324 @@ function writeJsonError(handled, exitCode, verbose) {
654
864
  process.stderr.write(serializeJson(envelope, stderrPretty()) + "\n");
655
865
  }
656
866
  //#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 }
867
+ //#region ../client/src/version/features.ts
868
+ const FEATURE_RULES = {
869
+ transforms: { since: 59 },
870
+ transformJobActivation: { since: 61 },
871
+ measures: { since: 59 },
872
+ library: {
873
+ since: 59,
874
+ tokenFeature: "library"
875
+ },
876
+ remoteSync: {
877
+ since: 60,
878
+ tokenFeature: "remote_sync"
879
+ },
880
+ remoteSyncExportPreflight: {
881
+ since: 63,
882
+ tokenFeature: "remote_sync"
883
+ },
884
+ contentTranslation: {
885
+ since: 58,
886
+ tokenFeature: "content_translation"
887
+ },
888
+ contentVerification: {
889
+ since: 58,
890
+ tokenFeature: "content_verification"
891
+ },
892
+ transformTargetTableId: { since: 61 },
893
+ transformTargetTableLinkedOnCreate: {
894
+ since: 61,
895
+ until: 61
896
+ },
897
+ transformJobRunIdIsNumeric: { since: 64 },
898
+ transformCheckpointReset: { since: 60 },
899
+ fieldDataSensitivity: { since: 64 },
900
+ transformDagRuns: { since: 64 },
901
+ unifiedTransformRuns: { since: 64 },
902
+ transformTests: {
903
+ since: 65,
904
+ tokenFeature: "transforms-testing"
905
+ },
906
+ libraryChildrenCarryType: { since: 62 },
907
+ collectionItemsTotalOnEmptyPage: { since: 64 },
908
+ invalidMbqlIsBadRequest: { since: 59 },
909
+ boxplotDisplay: { since: 59 },
910
+ nativeTableTemplateTag: { since: 59 },
911
+ smartLinkMeasureModel: { since: 60 },
912
+ dashboardSubscriptionFilters: {
913
+ since: 58,
914
+ tokenFeature: "dashboard_subscription_filters"
915
+ },
916
+ dependencyGraph: {
917
+ since: 58,
918
+ tokenFeature: "dependencies"
919
+ },
920
+ dependencyItemListings: {
921
+ since: 59,
922
+ tokenFeature: "dependencies"
923
+ },
924
+ dependencyKebabCaseFilters: { since: 60 },
925
+ tableListAccessFilters: { since: 59 },
926
+ tableListTransformTargets: { since: 60 },
927
+ tableUnusedFilter: {
928
+ since: 58,
929
+ tokenFeature: "dependencies"
930
+ },
931
+ tableDataLayerTiers: { since: 59 },
932
+ bulkTableEdit: { since: 59 },
933
+ erd: {
934
+ since: 62,
935
+ tokenFeature: "schema-viewer"
936
+ },
937
+ documentCopy: { since: 59 },
938
+ transformInspector: {
939
+ since: 60,
940
+ tokenFeature: "transforms-python"
941
+ },
942
+ pythonLibrary: {
943
+ since: 58,
944
+ tokenFeature: "transforms-python"
945
+ },
946
+ pythonTestRun: {
947
+ since: 60,
948
+ tokenFeature: "transforms-python"
949
+ },
950
+ sourceReplacement: {
951
+ since: 60,
952
+ tokenFeature: "dependencies"
953
+ },
954
+ metricDefinitionQuery: { since: 60 },
955
+ metricDimensionListing: { since: 64 },
956
+ oauthFullAccessScope: { since: 63 }
957
+ };
958
+ function isFeatureName(name) {
959
+ return Object.hasOwn(FEATURE_RULES, name);
960
+ }
961
+ const FEATURE_NAMES = Object.keys(FEATURE_RULES).filter(isFeatureName);
962
+ const Features = z.record(z.enum(FEATURE_NAMES), z.boolean());
963
+ function evaluateFeatures(major, tokenFeatures) {
964
+ const entries = FEATURE_NAMES.map((name) => [name, ruleHolds(FEATURE_RULES[name], major, tokenFeatures)]);
965
+ return Features.parse(Object.fromEntries(entries));
966
+ }
967
+ function ruleHolds(rule, major, tokenFeatures) {
968
+ return ruleGap(rule, major, tokenFeatures) === null;
969
+ }
970
+ function ruleGap(rule, major, tokenFeatures) {
971
+ if (!versionHolds(rule, major)) return { kind: "version" };
972
+ if (rule.tokenFeature === void 0) return null;
973
+ return tokenFeatures !== null && tokenFeatures[rule.tokenFeature] === true ? null : {
974
+ kind: "token",
975
+ tokenFeature: rule.tokenFeature
668
976
  };
669
977
  }
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;
978
+ function versionHolds(rule, major) {
979
+ if (major === "development") return rule.until === void 0;
980
+ return major >= rule.since && (rule.until === void 0 || major <= rule.until);
981
+ }
982
+ //#endregion
983
+ //#region ../client/src/version/requirements.ts
984
+ const METHOD_REQUIREMENTS = {
985
+ "card.list": [],
986
+ "card.get": [],
987
+ "card.create": [],
988
+ "card.update": [],
989
+ "card.archive": [],
990
+ "card.query": [],
991
+ "card.exportQuery": [],
992
+ "card.queryMetadata": [],
993
+ "collection.list": [],
994
+ "collection.listWithLibrary": [],
995
+ "collection.get": [],
996
+ "collection.create": [],
997
+ "collection.update": [],
998
+ "collection.archive": [],
999
+ "collection.itemPages": [],
1000
+ "collection.tree": [],
1001
+ "contentTranslation.download": ["contentTranslation"],
1002
+ "contentTranslation.upload": ["contentTranslation"],
1003
+ "dashboard.list": [],
1004
+ "dashboard.get": [],
1005
+ "dashboard.create": [],
1006
+ "dashboard.update": [],
1007
+ "dashboard.archive": [],
1008
+ "dashboard.copy": [],
1009
+ "dashboard.updateDashcard": [],
1010
+ "dashboard.checkCardReferences": [],
1011
+ "dashboard.parameterValues": [],
1012
+ "dashboard.searchParameterValues": [],
1013
+ "database.list": [],
1014
+ "database.get": [],
1015
+ "database.schemas": [],
1016
+ "database.schemaTables": [],
1017
+ "database.syncSchema": [],
1018
+ "database.rescanValues": [],
1019
+ "dataset.query": [],
1020
+ "dataset.native": [],
1021
+ "dataset.queryMetadata": [],
1022
+ "dataset.exportQuery": [],
1023
+ "dependency.breakingPages": ["dependencyItemListings"],
1024
+ "dependency.broken": ["dependencyItemListings"],
1025
+ "dependency.dependents": ["dependencyItemListings"],
1026
+ "dependency.graph": ["dependencyGraph"],
1027
+ "dependency.unreferencedPages": ["dependencyItemListings"],
1028
+ "document.list": [],
1029
+ "document.get": [],
1030
+ "document.create": [],
1031
+ "document.update": [],
1032
+ "document.archive": [],
1033
+ "document.copy": ["documentCopy"],
1034
+ "eidTranslation.translate": [],
1035
+ "erd.get": ["erd"],
1036
+ "field.get": [],
1037
+ "field.update": [],
1038
+ "field.search": [],
1039
+ "field.remapping": [],
1040
+ "field.summary": [],
1041
+ "field.values": [],
1042
+ "gitSync.currentTask": ["remoteSync"],
1043
+ "gitSync.cancelTask": ["remoteSync"],
1044
+ "gitSync.isDirty": ["remoteSync"],
1045
+ "gitSync.dirty": ["remoteSync"],
1046
+ "gitSync.hasRemoteChanges": ["remoteSync"],
1047
+ "gitSync.import": ["remoteSync"],
1048
+ "gitSync.export": ["remoteSync"],
1049
+ "gitSync.exportPreflight": ["remoteSyncExportPreflight"],
1050
+ "gitSync.stash": ["remoteSync"],
1051
+ "gitSync.branches": ["remoteSync"],
1052
+ "gitSync.createBranch": ["remoteSync"],
1053
+ "gitSync.setCollectionSynced": ["remoteSync"],
1054
+ "gitSync.syncedCollections": ["remoteSync"],
1055
+ "gitSync.remoteUrl": [],
1056
+ "gitSync.branch": [],
1057
+ "gitSync.waitForTask": ["remoteSync"],
1058
+ "glossary.list": [],
1059
+ "glossary.create": [],
1060
+ "glossary.update": [],
1061
+ "glossary.delete": [],
1062
+ "library.get": ["library"],
1063
+ "library.create": ["library"],
1064
+ "library.ensureDataCollectionId": ["library"],
1065
+ "library.publishTables": ["library"],
1066
+ "library.unpublishTables": ["library"],
1067
+ "metric.query": ["metricDefinitionQuery"],
1068
+ "metric.breakoutValues": ["metricDefinitionQuery"],
1069
+ "metric.dimensions": ["metricDimensionListing"],
1070
+ "measure.list": ["measures"],
1071
+ "measure.get": ["measures"],
1072
+ "measure.create": ["measures"],
1073
+ "measure.update": ["measures"],
1074
+ "measure.archive": ["measures"],
1075
+ "moderationReview.create": ["contentVerification"],
1076
+ "notification.list": [],
1077
+ "notification.get": [],
1078
+ "notification.create": [],
1079
+ "notification.update": [],
1080
+ "notification.archive": [],
1081
+ "notification.send": [],
1082
+ "permission.graph": [],
1083
+ "permission.databaseGraph": [],
1084
+ "permission.groupGraph": [],
1085
+ "pulse.list": [],
1086
+ "pulse.get": [],
1087
+ "pulse.create": [],
1088
+ "pulse.update": [],
1089
+ "pulse.archive": [],
1090
+ "replacement.checkReplaceSource": ["sourceReplacement"],
1091
+ "replacement.replaceSource": ["sourceReplacement"],
1092
+ "replacement.replaceModelWithTransform": ["sourceReplacement"],
1093
+ "replacement.listRuns": ["sourceReplacement"],
1094
+ "replacement.getRun": ["sourceReplacement"],
1095
+ "replacement.cancelRun": ["sourceReplacement"],
1096
+ "revision.list": [],
1097
+ "revision.revert": [],
1098
+ "search.query": [],
1099
+ "segment.list": [],
1100
+ "segment.get": [],
1101
+ "segment.create": [],
1102
+ "segment.update": [],
1103
+ "segment.archive": [],
1104
+ "setting.list": [],
1105
+ "setting.get": [],
1106
+ "setting.set": [],
1107
+ "setup.create": [],
1108
+ "snippet.list": [],
1109
+ "snippet.get": [],
1110
+ "snippet.create": [],
1111
+ "snippet.update": [],
1112
+ "snippet.archive": [],
1113
+ "table.list": [],
1114
+ "table.get": [],
1115
+ "table.update": [],
1116
+ "table.queryMetadata": [],
1117
+ "table.fks": [],
1118
+ "table.syncSchema": [],
1119
+ "table.rescanValues": [],
1120
+ "table.bulkEdit": ["bulkTableEdit"],
1121
+ "table.appendCsv": [],
1122
+ "table.replaceCsv": [],
1123
+ "timeline.list": [],
1124
+ "timeline.get": [],
1125
+ "timeline.events": [],
1126
+ "timeline.create": [],
1127
+ "timeline.update": [],
1128
+ "timeline.archive": [],
1129
+ "timeline.delete": [],
1130
+ "timelineEvent.get": [],
1131
+ "timelineEvent.create": [],
1132
+ "timelineEvent.update": [],
1133
+ "timelineEvent.archive": [],
1134
+ "timelineEvent.delete": [],
1135
+ "transform.list": ["transforms"],
1136
+ "transform.get": ["transforms"],
1137
+ "transform.create": ["transforms"],
1138
+ "transform.update": ["transforms"],
1139
+ "transform.delete": ["transforms"],
1140
+ "transform.deleteTable": ["transforms"],
1141
+ "transform.dependencies": ["transforms"],
1142
+ "transform.cancel": ["transforms"],
1143
+ "transform.getRun": ["transforms"],
1144
+ "transform.runPages": ["transforms"],
1145
+ "transform.runSummaryPages": ["unifiedTransformRuns", "transforms"],
1146
+ "transform.resetCheckpoint": ["transformCheckpointReset", "transforms"],
1147
+ "transform.runDag": ["transformDagRuns", "transforms"],
1148
+ "transform.dagTransforms": ["transformDagRuns", "transforms"],
1149
+ "transform.run": ["transforms"],
1150
+ "transformDagRun.transformRuns": ["transformDagRuns", "transforms"],
1151
+ "transformDagRun.cancel": ["transformDagRuns", "transforms"],
1152
+ "transformInspector.discover": ["transformInspector"],
1153
+ "transformInspector.lens": ["transformInspector"],
1154
+ "transformInspector.query": ["transformInspector"],
1155
+ "transformJob.list": ["transforms"],
1156
+ "transformJob.get": ["transforms"],
1157
+ "transformJob.create": ["transforms"],
1158
+ "transformJob.update": ["transforms"],
1159
+ "transformJob.delete": ["transforms"],
1160
+ "transformJob.run": ["transforms"],
1161
+ "transformJob.transforms": ["transforms"],
1162
+ "transformJob.setActive": ["transformJobActivation", "transforms"],
1163
+ "transformPython.getLibrary": ["pythonLibrary"],
1164
+ "transformPython.updateLibrary": ["pythonLibrary"],
1165
+ "transformPython.testRun": ["pythonTestRun"],
1166
+ "transformTag.list": ["transforms"],
1167
+ "transformTag.create": ["transforms"],
1168
+ "transformTag.update": ["transforms"],
1169
+ "transformTag.delete": ["transforms"],
1170
+ "transformTest.list": ["transformTests"],
1171
+ "transformTest.get": ["transformTests"],
1172
+ "transformTest.create": ["transformTests"],
1173
+ "transformTest.update": ["transformTests"],
1174
+ "transformTest.delete": ["transformTests"],
1175
+ "transformTest.run": ["transformTests"],
1176
+ "upload.createFromCsv": [],
1177
+ "user.current": []
1178
+ };
1179
+ function isMethodKey(key) {
1180
+ return Object.hasOwn(METHOD_REQUIREMENTS, key);
1181
+ }
1182
+ const METHOD_KEYS = Object.keys(METHOD_REQUIREMENTS).filter(isMethodKey);
1183
+ function methodRequirements(key) {
1184
+ return METHOD_REQUIREMENTS[key];
686
1185
  }
687
1186
  //#endregion
688
1187
  //#region src/runtime/command-help.ts
@@ -708,6 +1207,10 @@ const CommandHelpSkill = z.object({
708
1207
  skill: z.string(),
709
1208
  purpose: z.string()
710
1209
  });
1210
+ const CommandHelpRequires = z.object({
1211
+ methods: z.array(z.enum(METHOD_KEYS)),
1212
+ features: z.array(z.enum(FEATURE_NAMES))
1213
+ });
711
1214
  z.object({
712
1215
  command: z.string(),
713
1216
  description: z.string().nullable(),
@@ -717,7 +1220,7 @@ z.object({
717
1220
  args: z.array(CommandHelpArg),
718
1221
  inputSchema: z.unknown().nullable(),
719
1222
  outputSchema: z.unknown().nullable(),
720
- capabilities: Capabilities.nullable()
1223
+ requires: CommandHelpRequires.nullable()
721
1224
  });
722
1225
  const CommandIndexEntry = z.object({
723
1226
  command: z.string(),
@@ -734,7 +1237,7 @@ const EMPTY_AUGMENT = {
734
1237
  skills: [],
735
1238
  inputSchema: null,
736
1239
  outputSchema: null,
737
- capabilities: null
1240
+ requires: null
738
1241
  };
739
1242
  async function buildHelpEntry(cmd, path) {
740
1243
  const meta = await resolveCitty(cmd.meta);
@@ -748,7 +1251,7 @@ async function buildHelpEntry(cmd, path) {
748
1251
  args: convertArgs(args),
749
1252
  inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
750
1253
  outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
751
- capabilities: augment.capabilities
1254
+ requires: augment.requires
752
1255
  };
753
1256
  if (augment.details !== null) entry.details = augment.details;
754
1257
  return entry;
@@ -1059,4 +1562,4 @@ run().catch((error) => {
1059
1562
  reportError(error);
1060
1563
  });
1061
1564
  //#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 };
1565
+ export { InternalError 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, ValidationError as at, isPlainObject as b, ruleGap as c, KNOWN_RANGE as ct, renderList as d, MetabaseError as et, renderListWithExtras as f, MALFORMED_CELL as g, writeText as h, FEATURE_RULES as i, UnknownError as it, ENV_SKIP_PREFLIGHT as j, ENV_PROFILE as k, reportError as l, escapeJsonPointerSegment as lt, writeJson as m, methodRequirements as n, ResponseShapeError as nt, evaluateFeatures as o, errorMessage as ot, renderSummary as p, flagConsumesValue as q, FEATURE_NAMES as r, TimeoutError as rt, isFeatureName as s, isFileNotFoundError as st, interruptSignal as t, NetworkError as tt, renderItem as u, renderRows as v, promptText as w, promptConfirm as x, projectForList as y, connectionFlags as z };