@metabase/cli 0.5.3 → 0.5.5

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 (332) hide show
  1. package/dist/{add-collection-c1dfnavz.mjs → add-collection-lgBkahhW.mjs} +3 -3
  2. package/dist/{alert-BkpPdBQ_.mjs → alert-32mfYFy1.mjs} +7 -7
  3. package/dist/{alerts-TDYiIxjs.mjs → alerts-DWVmtHEJ.mjs} +6 -6
  4. package/dist/api-key-DJfhPe4x.mjs +13 -0
  5. package/dist/{append-CoeZRD6u.mjs → append-CdzKyHhn.mjs} +4 -4
  6. package/dist/{archive-DZDkfhdH.mjs → archive-24zg3Ckb.mjs} +5 -5
  7. package/dist/{archive-DY76wU2k.mjs → archive-B3_fjvid.mjs} +3 -3
  8. package/dist/{archive-N3lp1o-k.mjs → archive-B4G4EE9n.mjs} +5 -5
  9. package/dist/{archive-D-BJwRLc.mjs → archive-BTxrM_x2.mjs} +5 -5
  10. package/dist/{archive-DQRehboT.mjs → archive-BZxa5zJk.mjs} +5 -5
  11. package/dist/{archive-CH1h8jz5.mjs → archive-BmutUzPS.mjs} +5 -5
  12. package/dist/{archive-DxUnaV4x.mjs → archive-CHQOH-nm.mjs} +3 -3
  13. package/dist/{archive-CAJHrKwd.mjs → archive-DEOq8OqU.mjs} +5 -5
  14. package/dist/{archive-NfFWXRx5.mjs → archive-DOXrtANg.mjs} +5 -5
  15. package/dist/{archive-f7wKQ7Uy.mjs → archive-DbaGJh7E.mjs} +3 -3
  16. package/dist/{archive-9uzfWGuq.mjs → archive-NhewLr23.mjs} +5 -5
  17. package/dist/{archive-3fdIvMsf.mjs → archive-Uws1E_p8.mjs} +5 -5
  18. package/dist/{auth-hgkvHPpH.mjs → auth-bVvBp9Tl.mjs} +5 -5
  19. package/dist/{branch-flag-CPTQ4wXp.mjs → branch-flag-BvIdNB5z.mjs} +1 -1
  20. package/dist/{branches-B3gHAanU.mjs → branches-CkOAJk1H.mjs} +3 -3
  21. package/dist/{breaking-DuWIof4T.mjs → breaking-CMpEeieT.mjs} +6 -6
  22. package/dist/{broken-D2ST8sTx.mjs → broken-DFFLXiYc.mjs} +8 -8
  23. package/dist/{bulk-discard-values-77khEfpj.mjs → bulk-discard-values-D4eFBtKc.mjs} +5 -5
  24. package/dist/{bulk-edit-girwcjY6.mjs → bulk-edit-CLJeGY2E.mjs} +7 -7
  25. package/dist/{bulk-rescan-values-Df8KK8um.mjs → bulk-rescan-values-DsaGKIo_.mjs} +5 -5
  26. package/dist/{bulk-sync-schema-DEPUZ6MN.mjs → bulk-sync-schema-CN797vy9.mjs} +5 -5
  27. package/dist/{cancel-Oek5PJnu.mjs → cancel-CRpzqIUu.mjs} +3 -3
  28. package/dist/{cancel-task-rkqY0qLU.mjs → cancel-task-CpZcj7HB.mjs} +2 -2
  29. package/dist/{card-QR3zEu6E.mjs → card-BJRZ5D5Q.mjs} +2 -2
  30. package/dist/{card-3NmUiU5F.mjs → card-VipF12MJ.mjs} +1 -1
  31. package/dist/card-nOX_QJ9u.mjs +25 -0
  32. package/dist/{cards-DWJOtZoN.mjs → cards-DJMTrFQg.mjs} +6 -6
  33. package/dist/cli.mjs +128 -294
  34. package/dist/{client-BFP2Ssqu.mjs → client-D2ycdMRO.mjs} +299 -189
  35. package/dist/{collection-D5vt2IJ_.mjs → collection-Bf3lv-zo.mjs} +1 -1
  36. package/dist/collection-Cs84x7WB.mjs +21 -0
  37. package/dist/{collection-DNmFKALA.mjs → collection-Cz2qLX2m.mjs} +1 -1
  38. package/dist/{collection-namespace-Dl8_7xII.mjs → collection-namespace-C0JcSEwN.mjs} +2 -1
  39. package/dist/{content-translation-B3oARbgD.mjs → content-translation-7qPz-dIU.mjs} +3 -3
  40. package/dist/{copy-C7Rc4qM7.mjs → copy-BeFjqXXc.mjs} +6 -6
  41. package/dist/{copy-BzBp5FaY.mjs → copy-D9-xBYYq.mjs} +6 -6
  42. package/dist/{copy-flags-CTM91pxH.mjs → copy-flags-DZ5Cy-Gk.mjs} +2 -2
  43. package/dist/{create-YBDXZgyP.mjs → create--eZb0G2P.mjs} +4 -5
  44. package/dist/{create-f0bBEfDI.mjs → create-B57Sj0om.mjs} +9 -10
  45. package/dist/{create-Bh3q3eHg.mjs → create-Ba8nYAWL.mjs} +9 -9
  46. package/dist/{create-CjGEkSFz.mjs → create-BfgTvPvI.mjs} +9 -10
  47. package/dist/{create-C-2ivjed.mjs → create-BlYxQv6U.mjs} +4 -5
  48. package/dist/{create-DQJ9h86G.mjs → create-CLQVeQ0w.mjs} +4 -5
  49. package/dist/{create-CGxxztoE.mjs → create-Cc07ouKB.mjs} +6 -7
  50. package/dist/{create-C0gmhNnk.mjs → create-CplN1ey8.mjs} +9 -10
  51. package/dist/{create-myJ8HR4B.mjs → create-D4FT8Xj8.mjs} +6 -7
  52. package/dist/{create-BKRD11i-.mjs → create-DBCOYtqn.mjs} +4 -4
  53. package/dist/{create-CfXKNnkK.mjs → create-DBSpDnaA.mjs} +6 -7
  54. package/dist/{create-ByeGK_BE.mjs → create-DHTl3wVv.mjs} +4 -5
  55. package/dist/{create-DO4ic4Kx.mjs → create-DIZGUCFE.mjs} +7 -8
  56. package/dist/{create-CGE1D0Ay.mjs → create-DJ0Xrpod.mjs} +6 -7
  57. package/dist/{create-Bc4ADRmU.mjs → create-Dj5y7xbA.mjs} +4 -5
  58. package/dist/{create-vgP9K2eH2.mjs → create-Dr-q5oWx2.mjs} +10 -11
  59. package/dist/{create-YIC3Q0a-.mjs → create-Dt6gdbAH.mjs} +7 -7
  60. package/dist/{create-branch-DBCBMDWh.mjs → create-branch-CKQkpU-_.mjs} +3 -2
  61. package/dist/{create-C3H9ljex.mjs → create-cpxnjNMC.mjs} +4 -5
  62. package/dist/{create-_rOCx5b8.mjs → create-n5cH8Tq-.mjs} +5 -6
  63. package/dist/{create-71_DODbc.mjs → create-ypwRxrcj.mjs} +9 -10
  64. package/dist/{csv-Dtgy7sTg.mjs → csv-CxWsxJIB.mjs} +4 -4
  65. package/dist/{current-task-AwQisIT9.mjs → current-task-DB7UTh6J.mjs} +3 -3
  66. package/dist/{dashboard-D5E3fMKh.mjs → dashboard-Bx2sYijR.mjs} +1 -1
  67. package/dist/{dashboard-Chjy5GKR.mjs → dashboard-Cwsf-e9T.mjs} +23 -6
  68. package/dist/dashboard-DeSaOt2Z.mjs +35 -0
  69. package/dist/{data-action-DZxVB_hD.mjs → data-action-CuvI17XF.mjs} +8 -2
  70. package/dist/{data-action-R9qxJDPA.mjs → data-action-DLj9cgpu.mjs} +1 -1
  71. package/dist/data-action-Dpt7pfzd.mjs +24 -0
  72. package/dist/{data-app-BIAvvV2P.mjs → data-app--T695WPM.mjs} +10 -10
  73. package/dist/{data-app-project-BL4xpu_m.mjs → data-app-project-DjDDWgUF.mjs} +2 -1
  74. package/dist/{database-CxykzTAA.mjs → database-C5ucihp3.mjs} +2 -2
  75. package/dist/{database-D8XzgJEz.mjs → database-u_spHEa0.mjs} +1 -1
  76. package/dist/{dataset-DIQLAp2P.mjs → dataset-LJxNN6p5.mjs} +3 -3
  77. package/dist/{db-wsSYKqCB.mjs → db-CpK3QluZ.mjs} +8 -8
  78. package/dist/{delete-E-g5b-HU.mjs → delete-9YIc_L2E.mjs} +4 -4
  79. package/dist/{delete-WrV9I9uw.mjs → delete-AwOJ1x-D.mjs} +4 -4
  80. package/dist/{delete-D9FB7qjX.mjs → delete-B9GABYEJ.mjs} +4 -4
  81. package/dist/{delete-4v4_lDwD.mjs → delete-Bw8CMa_A.mjs} +4 -4
  82. package/dist/{delete-BSgxmR3y.mjs → delete-CE19WUPi.mjs} +4 -4
  83. package/dist/{delete-BegkpIGi.mjs → delete-CUzOTiI8.mjs} +4 -4
  84. package/dist/{delete-BP9-YS-f.mjs → delete-D784J3ur.mjs} +4 -4
  85. package/dist/{delete-BHX_F8Qu.mjs → delete-DbAOgu73.mjs} +4 -4
  86. package/dist/{delete-DmM5L0wO.mjs → delete-TcDfZNz2.mjs} +4 -4
  87. package/dist/{delete-runtime-CJ7gMYA1.mjs → delete-runtime-DOOy3gzH.mjs} +2 -1
  88. package/dist/{delete-table-CJq8JM5J.mjs → delete-table-a8acciQe.mjs} +4 -4
  89. package/dist/{delete-wnHUWWjX.mjs → delete-trx8NIoh.mjs} +4 -4
  90. package/dist/{dependencies-CnW3RSoZ.mjs → dependencies-BcPdAMYB.mjs} +6 -6
  91. package/dist/{dependency-CaC6XuTY.mjs → dependency-C1DExO6k.mjs} +8 -5
  92. package/dist/{dependency-Dxvb2Znu.mjs → dependency-DcM96XJ-.mjs} +4 -3
  93. package/dist/dependency-_SgcW_fL.mjs +15 -0
  94. package/dist/{dependents-DHXqJ3lo.mjs → dependents-CRZaiOzg.mjs} +9 -9
  95. package/dist/{dirty-BRPWPUYH.mjs → dirty-1taTj3G6.mjs} +3 -3
  96. package/dist/{discard-values-DBHfVN8o.mjs → discard-values-DmiWAx4J.mjs} +5 -5
  97. package/dist/{document-UMG6me2P.mjs → document-BHOQq2T_.mjs} +2 -2
  98. package/dist/document-DB6YGtqX.mjs +20 -0
  99. package/dist/{document-DVIu3Vj4.mjs → document-lS1XZEF3.mjs} +1 -1
  100. package/dist/{download-BFu9xYHX.mjs → download-CEvVDGeC.mjs} +2 -2
  101. package/dist/{eid-eKmbXRds.mjs → eid-pO_lMTI9.mjs} +5 -5
  102. package/dist/{entity-DjDkaMkB.mjs → entity-DICgy4Bl.mjs} +2 -2
  103. package/dist/{entry-flags-Cxn09krz.mjs → entry-flags-CswcY8bG.mjs} +5 -6
  104. package/dist/{events-CZL9MU64.mjs → events-cGDPEL5_.mjs} +4 -4
  105. package/dist/{execute-DBJGtHHG.mjs → execute-DHGbJpPr.mjs} +7 -8
  106. package/dist/{export-xn_-NaBd.mjs → export-B0NUSP6q.mjs} +6 -5
  107. package/dist/{export-flags-CpukgETM.mjs → export-flags-iXfEILf7.mjs} +3 -2
  108. package/dist/{export-preflight-SM9zJkBp.mjs → export-preflight-Bbl1bHpI.mjs} +3 -3
  109. package/dist/field-AkNMIQnx.mjs +21 -0
  110. package/dist/{field-DoWQUl7V.mjs → field-C2qOViFZ.mjs} +8 -2
  111. package/dist/{field-BVz4AS3f.mjs → field-CT4r6b92.mjs} +1 -1
  112. package/dist/{fields-CB06GFBW.mjs → fields-M66PaKdV.mjs} +6 -6
  113. package/dist/{filter-flags-DhE4olyf.mjs → filter-flags-ezqqsOQL.mjs} +4 -4
  114. package/dist/{fks-CSoS7xZ6.mjs → fks-BvOGzID5.mjs} +6 -6
  115. package/dist/{get-BZFyqZXa.mjs → get-0T9zeyCh.mjs} +5 -5
  116. package/dist/{get-BSPxmP_W.mjs → get-B3Ceh_7N.mjs} +5 -5
  117. package/dist/{get-BW3jSR3y.mjs → get-BL_9fN-q.mjs} +3 -3
  118. package/dist/{get-Bt4C-oxh.mjs → get-Bt2Q516N.mjs} +5 -5
  119. package/dist/{get--1qTpTIQ.mjs → get-BzIQK_mt.mjs} +5 -5
  120. package/dist/{get-BQ7SAJEz.mjs → get-C3j93ivl.mjs} +3 -3
  121. package/dist/{get-DIfjxTP8.mjs → get-CCLnfOOE.mjs} +3 -3
  122. package/dist/{get-CtDZOoWy.mjs → get-CEreA2oN.mjs} +5 -5
  123. package/dist/{get-jbOgdCQg.mjs → get-CJFg7YM5.mjs} +3 -3
  124. package/dist/{get-Cl-O6dFs.mjs → get-Cfg52y7X.mjs} +4 -4
  125. package/dist/{get-eZEHipwA.mjs → get-D-8G7EoL.mjs} +5 -5
  126. package/dist/{get-BYAzIaGG.mjs → get-D-ElxFlQ.mjs} +5 -5
  127. package/dist/{get-Bq_9VSTa.mjs → get-D7y_z5K7.mjs} +3 -3
  128. package/dist/{get-DePbMmjc.mjs → get-DGlZtzfB.mjs} +5 -5
  129. package/dist/{get-C1rCVUYw.mjs → get-DKZLwN3K.mjs} +6 -5
  130. package/dist/{get-BIf6eFWZ.mjs → get-HtzPLpy2.mjs} +5 -5
  131. package/dist/{get-B8xQXMU6.mjs → get-SOCVdBIU.mjs} +5 -5
  132. package/dist/{get-BZDUOZxI.mjs → get-ZSLfDowg.mjs} +3 -3
  133. package/dist/{get-B8xrmipw.mjs → get-jzChrvn2.mjs} +5 -5
  134. package/dist/{get-run-C-CNDbv3.mjs → get-run-BZP_z57v.mjs} +5 -5
  135. package/dist/{get-CuSwArMS.mjs → get-uB7jROcz.mjs} +5 -5
  136. package/dist/{get-BfFZCiZR.mjs → get-wPkejadn.mjs} +5 -5
  137. package/dist/{get-Cc4-e-Q_.mjs → get-zGreQNnG.mjs} +5 -5
  138. package/dist/git-sync-DaHnqpYi.mjs +29 -0
  139. package/dist/glossary-Br_mSh3i.mjs +14 -0
  140. package/dist/{glossary-BkGmCI4X.mjs → glossary-CQRW3Z4d.mjs} +1 -1
  141. package/dist/{glossary-QN-hHfOT.mjs → glossary-iPIWrEbP.mjs} +1 -1
  142. package/dist/{graph-CqBe2J4N.mjs → graph-CdKi07zZ.mjs} +6 -6
  143. package/dist/{group-81zoQcEP.mjs → group--6adAsqG.mjs} +2 -2
  144. package/dist/{has-remote-changes-CDe1teSb.mjs → has-remote-changes-d_JyzdPX.mjs} +2 -2
  145. package/dist/{import-B64gjryF.mjs → import-1bK-qrjV.mjs} +6 -5
  146. package/dist/input-gate-registry-Dh8QjKgW.mjs +14 -0
  147. package/dist/{is-dirty-DhR3Xqjk.mjs → is-dirty-BXwvuTeD.mjs} +2 -2
  148. package/dist/{items-CLl2QgS8.mjs → items-Dzh_xylQ.mjs} +7 -6
  149. package/dist/{key-BYEv4Wgq.mjs → key-DLrpCgdZ.mjs} +1 -1
  150. package/dist/{library-C3eO2J07.mjs → library-BA1QssFE.mjs} +5 -5
  151. package/dist/{library-wUiD2jbw.mjs → library-BprxuqZl.mjs} +1 -1
  152. package/dist/{library-DKIqzyUk.mjs → library-C4g9pdiS.mjs} +8 -3
  153. package/dist/{list-CdcFNphE.mjs → list-0TtkxraU.mjs} +3 -3
  154. package/dist/{list-YFwmHXGG.mjs → list-2doqGDIF.mjs} +3 -3
  155. package/dist/{list-DLLzMaS3.mjs → list-7qcWFDXR.mjs} +5 -5
  156. package/dist/{list-DyFu5Wx1.mjs → list-B5D3leO9.mjs} +6 -6
  157. package/dist/{list-CjpZCiks.mjs → list-B70w2ibG.mjs} +3 -3
  158. package/dist/{list-B7Yvz5vA.mjs → list-B75rzgSi.mjs} +5 -5
  159. package/dist/{list-BmvitCWZ.mjs → list-BWNw-ppI.mjs} +6 -6
  160. package/dist/{list-DyQNRVAf.mjs → list-BjpGurur.mjs} +3 -3
  161. package/dist/{list-DrIcKxXX.mjs → list-CdpEUPL-.mjs} +5 -5
  162. package/dist/{list-DpfOh8-5.mjs → list-CvQlMhrb.mjs} +4 -4
  163. package/dist/{list-DDPvxfhe.mjs → list-DDV5PylU.mjs} +6 -6
  164. package/dist/{list-BIqqh3A-.mjs → list-DHX7-8Ae.mjs} +5 -5
  165. package/dist/{list-BiSwl56L.mjs → list-DQNbHPNQ.mjs} +5 -5
  166. package/dist/{list-CFaJA317.mjs → list-DR9dswtK.mjs} +6 -6
  167. package/dist/{list-eGlqXJno.mjs → list-DSi8mf_F.mjs} +5 -5
  168. package/dist/{list-D4HNG282.mjs → list-D_SfsO_-.mjs} +5 -5
  169. package/dist/{list-CA939qkn.mjs → list-Dn5_L-85.mjs} +6 -6
  170. package/dist/{list-C7TFreS8.mjs → list-DuaFmOCz.mjs} +5 -5
  171. package/dist/{list-Cu6ET_yD.mjs → list-Dv3s_PIu.mjs} +5 -5
  172. package/dist/{list-s9_LlXCV.mjs → list-Dz2YVD7m.mjs} +3 -3
  173. package/dist/{list-DLwby7YA.mjs → list-TzuL_7GA.mjs} +5 -5
  174. package/dist/{list-C3GBocvB.mjs → list-_jHBfq0E.mjs} +5 -5
  175. package/dist/{list-D_IT8l9B.mjs → list-iFtmAfVv.mjs} +3 -3
  176. package/dist/{login-Bg7Z3jDy.mjs → login-LAFw5Xxu.mjs} +6 -5
  177. package/dist/{logout-CAmp7DcS.mjs → logout-CjYzDvLH.mjs} +3 -2
  178. package/dist/{measure-CtfjqJFP.mjs → measure-BMWrX1ca.mjs} +3 -1
  179. package/dist/{measure-C31HLp1C.mjs → measure-DgtOyIoD.mjs} +6 -6
  180. package/dist/{measure-4P0bOlZ3.mjs → measure-DqZG65of.mjs} +1 -1
  181. package/dist/{notification-DaA4bBHW.mjs → notification-B5yMuPmo.mjs} +6 -1
  182. package/dist/{notification-W2SVssyY.mjs → notification-BEJaEZS2.mjs} +2 -2
  183. package/dist/{parameter-DvRQMKd2.mjs → parameter-Bucz3cLJ.mjs} +1 -1
  184. package/dist/{parameter-values-3eHpqznI.mjs → parameter-values-CRwVLpRD.mjs} +6 -5
  185. package/dist/{parse-enum-DAcTzG1q.mjs → parse-enum-CEXPuN9H.mjs} +1 -1
  186. package/dist/{parse-id-5BZGQ9Vd.mjs → parse-id-EXZan40V.mjs} +1 -1
  187. package/dist/{parse-ref-ByXc-pls.mjs → parse-ref-D28NvwpR.mjs} +1 -1
  188. package/dist/{parse-text-FgX60vIg.mjs → parse-text-C4LYzIFa.mjs} +1 -1
  189. package/dist/{path-XwdHlC23.mjs → path-BA_GGcGN.mjs} +4 -4
  190. package/dist/{poll-CgtcJopL.mjs → poll-vxN__4cz.mjs} +2 -2
  191. package/dist/predicates-0C0TsWcJ.mjs +219 -0
  192. package/dist/{preflight-ChTKhB8Y.mjs → preflight-4iy2qzsh.mjs} +3 -2
  193. package/dist/{process-aqXm5QgC.mjs → process-BQC3mK2k.mjs} +1 -1
  194. package/dist/{publish-C2-pK0cf.mjs → publish--I94MMjp.mjs} +13 -6
  195. package/dist/{pulse-CC81N2_0.mjs → pulse-B2AmIWsO.mjs} +11 -4
  196. package/dist/{pulse-JPrq6NFP.mjs → pulse-CPSpum5U.mjs} +2 -2
  197. package/dist/{query-pmw23KkL.mjs → query-C8w04b4F.mjs} +7 -6
  198. package/dist/{query-DkaUzmMa.mjs → query-O1b4qIr4.mjs} +17 -29
  199. package/dist/{remapping-C3htTzJn.mjs → remapping-BdX4nj-U.mjs} +5 -5
  200. package/dist/{remove-collection-p_t9rUUX.mjs → remove-collection-dltKu8LO.mjs} +3 -3
  201. package/dist/{render-C50k8-jc.mjs → render-DK2j4BwQ.mjs} +3 -2
  202. package/dist/{replace-BQBuFJ1B.mjs → replace-BfO6UFZN.mjs} +4 -4
  203. package/dist/{requirement-check-CpiVuL0H.mjs → requirement-check-1fcffJj6.mjs} +2 -2
  204. package/dist/{rescan-values-DOqXJ3qH.mjs → rescan-values-0-c5Gqtx.mjs} +5 -5
  205. package/dist/{rescan-values-Ctq8wpkI.mjs → rescan-values-7bbNa7WZ.mjs} +5 -5
  206. package/dist/{run-CtMbObQI.mjs → run-5b123gPi.mjs} +5 -4
  207. package/dist/{run-2xgPRuKR.mjs → run-BS_wUAsi.mjs} +6 -5
  208. package/dist/{run-Dn3e8G4x.mjs → run-Cf1nJahe.mjs} +4 -4
  209. package/dist/{runs-CgNoQW6M.mjs → runs-BJ4uy05c.mjs} +6 -6
  210. package/dist/{runtime-Y4VFWmmr.mjs → runtime-D5yfliIq.mjs} +51 -9
  211. package/dist/{scaffold-BuL0_ptz.mjs → scaffold-aUy3Ik4q.mjs} +4 -4
  212. package/dist/schema-Ds_j3N1I.mjs +283 -0
  213. package/dist/{schema-tables-BdXuo_lG.mjs → schema-tables-BuFF9Psy.mjs} +6 -6
  214. package/dist/{schemas-Dap3KFwY.mjs → schemas-DaDsur6B.mjs} +4 -4
  215. package/dist/{search-Dxcejw_v.mjs → search-BcJgmPU3.mjs} +6 -5
  216. package/dist/{search-DUmFK5Sy.mjs → search-CTZzUd_j.mjs} +7 -6
  217. package/dist/{segment-C_gl5ag6.mjs → segment-CWVASaM1.mjs} +1 -1
  218. package/dist/{segment-OsrbUDzw.mjs → segment-Cf-DrdjE.mjs} +3 -1
  219. package/dist/{segment-CebcXn2E.mjs → segment-zy4VVraQ.mjs} +6 -6
  220. package/dist/{send-DYdwcPTb.mjs → send-D0ikejQU.mjs} +3 -3
  221. package/dist/{set-xs8Vyvy2.mjs → set-CjAaw2ZL.mjs} +5 -6
  222. package/dist/{set-active-CVI_DDQi.mjs → set-active-BQjKw1wk.mjs} +4 -4
  223. package/dist/{set-bundle-DX5HqDji.mjs → set-bundle-6Qknum1I.mjs} +6 -6
  224. package/dist/{set-data-actions-DAI1XCQ2.mjs → set-data-actions-LcWEP4RO.mjs} +6 -6
  225. package/dist/{set-enabled-0QI-CHAT.mjs → set-enabled-C8Yww7Yv.mjs} +7 -7
  226. package/dist/{set-sensitivity-DqGkiLSr.mjs → set-sensitivity-OVcL2PbY.mjs} +6 -6
  227. package/dist/{setting-Bmry-y_l.mjs → setting-BsIBFvRP.mjs} +4 -4
  228. package/dist/{setup-CO7QV-ao.mjs → setup-BnczkG96.mjs} +1 -1
  229. package/dist/{setup-UM8N9Vh3.mjs → setup-BxUd_KYl.mjs} +5 -6
  230. package/dist/{signal-D8MH3LMN.mjs → signal-BNUlQjpc.mjs} +1 -1
  231. package/dist/{skill-list-D2FhhYS3.mjs → skill-list-BoJITnw8.mjs} +1 -1
  232. package/dist/{skills-CcLTm3_2.mjs → skills-BQBerRAk.mjs} +3 -2
  233. package/dist/{skills-BiSfuDqA.mjs → skills-CQRgUHI3.mjs} +3 -3
  234. package/dist/{slug-qeARO25o.mjs → slug-COdwq63O.mjs} +1 -1
  235. package/dist/snippet-CRLI3fYI.mjs +19 -0
  236. package/dist/{stash-e5cSvnj3.mjs → stash-BGqpcbSW.mjs} +5 -4
  237. package/dist/{status-BHiO3YBe.mjs → status-CcOJIgfB.mjs} +4 -4
  238. package/dist/{status-CH7BAWGe.mjs → status-_wPMW1wq.mjs} +3 -3
  239. package/dist/{subscription-DWleULhN.mjs → subscription-CqUIrnUJ.mjs} +6 -6
  240. package/dist/{subscriptions-DcCOA2p1.mjs → subscriptions-BP83ctRX.mjs} +6 -6
  241. package/dist/{summary-CipFA6M6.mjs → summary-Byz6Y1v-.mjs} +5 -5
  242. package/dist/{sync-schema-D7p-P8F6.mjs → sync-schema-BJ-AtcCq.mjs} +5 -5
  243. package/dist/{sync-schema-C45WO4db.mjs → sync-schema-DQBHc3bt.mjs} +6 -6
  244. package/dist/{sync-task-DNKG9Bk4.mjs → sync-task-Gf86CU9l.mjs} +1 -1
  245. package/dist/{table-BDsqRU7a.mjs → table-BNA9Or05.mjs} +3 -3
  246. package/dist/{table-CF7zW9cI.mjs → table-hgrX1i-R.mjs} +36 -5
  247. package/dist/table-nIdBLcz7.mjs +26 -0
  248. package/dist/{table-selector-flags-CHfrVpYQ.mjs → table-selector-flags-BpFFoSaT.mjs} +4 -3
  249. package/dist/{text-C2VwKF9D.mjs → text-8nOxfC17.mjs} +1 -1
  250. package/dist/timeline-Cw581KRT.mjs +21 -0
  251. package/dist/{timeline-event-BF1dqSnD.mjs → timeline-event-BHfAXJrB.mjs} +6 -6
  252. package/dist/{transform-DiW7bREn.mjs → transform-B62craFM.mjs} +76 -7
  253. package/dist/{transform-CWGJB8N_.mjs → transform-DKPtUV54.mjs} +2 -2
  254. package/dist/{transform-job-ClX8e5iO.mjs → transform-job-CDIb3B9o.mjs} +6 -1
  255. package/dist/{transform-job-BBZ5L46v.mjs → transform-job-D18XRLBK.mjs} +1 -1
  256. package/dist/transform-job-sCgr8r-t.mjs +22 -0
  257. package/dist/transform-l1oC8oUS.mjs +28 -0
  258. package/dist/{transform-tag-BYoguZfW.mjs → transform-tag-DZEvmwxY.mjs} +5 -5
  259. package/dist/transform-test-hxkx6M8c.mjs +16 -0
  260. package/dist/{transforms-C6MFnT4C.mjs → transforms-D1wwWdCY.mjs} +6 -6
  261. package/dist/{transport-k_fabWdF.mjs → transport-BWixD5Ww.mjs} +5 -4
  262. package/dist/{tree-C4Igf6xs.mjs → tree-IymKTTCK.mjs} +4 -3
  263. package/dist/{typed-schema-Bo0Q6C0S.mjs → typed-schema-gaIKntyu.mjs} +4 -4
  264. package/dist/{unpublish-EStytsEm.mjs → unpublish-BnP0O_S2.mjs} +3 -3
  265. package/dist/{unreferenced-DtUuyBrr.mjs → unreferenced-DDkcn8EQ.mjs} +6 -6
  266. package/dist/{update-DAG8m5f4.mjs → update-BAocDvnS.mjs} +7 -8
  267. package/dist/{update-DECiEVlk.mjs → update-BemK_tZ_.mjs} +10 -11
  268. package/dist/{update-B0Na11v-.mjs → update-Bfws2FN2.mjs} +7 -8
  269. package/dist/{update-FfeHReec.mjs → update-BiBazvzY.mjs} +10 -11
  270. package/dist/{update-DhgfReDD.mjs → update-BsEG1dRm.mjs} +7 -8
  271. package/dist/{update-BogvN2Mb.mjs → update-C0p1E-hs.mjs} +8 -8
  272. package/dist/{update-pk0b6vXU.mjs → update-CFkOEnUu.mjs} +5 -6
  273. package/dist/{update-DT8U29Kk.mjs → update-CKrLtJWZ.mjs} +7 -8
  274. package/dist/{update-Bba_zPSE.mjs → update-C_VV1SP8.mjs} +10 -11
  275. package/dist/{update-DkvIK-eL.mjs → update-CgJwzutJ.mjs} +7 -8
  276. package/dist/{update-BOg1jZ_s.mjs → update-Cga4lrX5.mjs} +11 -12
  277. package/dist/{update-z8ZGCg1r.mjs → update-CsH0lSpQ2.mjs} +7 -8
  278. package/dist/{update-HbggUPuy.mjs → update-CyfLXFKR.mjs} +5 -6
  279. package/dist/{update-CCLpNTPa.mjs → update-D9eA9UOf.mjs} +5 -6
  280. package/dist/{update-B1UXRPN-.mjs → update-D9fs-PSK.mjs} +8 -9
  281. package/dist/{update-DIBaY-fy.mjs → update-DL1Iex_M.mjs} +7 -8
  282. package/dist/{update-BXLY92om.mjs → update-DntKWUl2.mjs} +10 -11
  283. package/dist/{update-CciLWH_s.mjs → update-K8FwdJEV.mjs} +11 -11
  284. package/dist/{update-DT2ViMFr.mjs → update-ReSzm23m.mjs} +5 -6
  285. package/dist/{update-dashcard-m-hkIGUu.mjs → update-dashcard-Bpv45o1_.mjs} +7 -8
  286. package/dist/{update-VGgvQu7W.mjs → update-gAPjldWw.mjs} +5 -6
  287. package/dist/{upgrade-iETJ8fH2.mjs → upgrade-D3aDQZwd.mjs} +5 -4
  288. package/dist/{upload-CoK5LnyA.mjs → upload-B8HbBXb8.mjs} +3 -3
  289. package/dist/{upload-BF5pdKRN.mjs → upload-BAD_9okY.mjs} +2 -2
  290. package/dist/upload-BqJLNCb1.mjs +13 -0
  291. package/dist/{uuid-8Ha-8bDX.mjs → uuid-BIDBDPLI.mjs} +3 -2
  292. package/dist/{validate-BQ7vI8_x.mjs → validate-moGYlHxB.mjs} +8 -18
  293. package/dist/validate-query-Bf5FhhMI.mjs +72 -0
  294. package/dist/{values-BsgA7-6h.mjs → values-BDekphEw.mjs} +5 -5
  295. package/dist/{verify-cjUPMF_B.mjs → verify-BnZqq9Aw.mjs} +3 -3
  296. package/dist/{verify-CzBZbP4W.mjs → verify-CMTrDvAW.mjs} +3 -3
  297. package/dist/{verify-crIrbGZV.mjs → verify-k0WHgc16.mjs} +4 -3
  298. package/dist/{wait-mFUfpSaj.mjs → wait-C69z8PSw.mjs} +5 -5
  299. package/dist/{wait-flags-BnZ-dfE2.mjs → wait-flags-C3cu_O0w.mjs} +2 -2
  300. package/dist/{window-CfK_j6m1.mjs → window-D1w7B0vh.mjs} +1 -1
  301. package/package.json +1 -1
  302. package/skill-data/core/SKILL.md +18 -14
  303. package/skill-data/data-app/SKILL.md +16 -17
  304. package/skill-data/data-app/template/README.md +1 -1
  305. package/skill-data/data-app-actions/SKILL.md +3 -0
  306. package/skill-data/data-app-data/SKILL.md +6 -6
  307. package/skill-data/data-app-filters/SKILL.md +12 -4
  308. package/skill-data/data-app-ui/SKILL.md +11 -11
  309. package/skill-data/data-workflow/references/reusable-definitions.md +2 -2
  310. package/skill-data/git-sync/SKILL.md +13 -11
  311. package/skill-data/mbql/SKILL.md +3 -3
  312. package/skill-data/native-sql/SKILL.md +1 -1
  313. package/skill-data/native-sql/references/template-tags.md +1 -1
  314. package/dist/api-key-wGtJ8kYy.mjs +0 -13
  315. package/dist/body-M5qsJoub.mjs +0 -16
  316. package/dist/card-BWTjCE93.mjs +0 -25
  317. package/dist/collection-9_mj8rVX.mjs +0 -21
  318. package/dist/dashboard-BZV-0Qjp.mjs +0 -35
  319. package/dist/data-action-B7kRpvCH.mjs +0 -24
  320. package/dist/dependency-DDRGBlFL.mjs +0 -15
  321. package/dist/document-BeLf7NqP.mjs +0 -20
  322. package/dist/field-CQDz-6DK.mjs +0 -21
  323. package/dist/git-sync-D_T9oNC6.mjs +0 -29
  324. package/dist/glossary-BVK5DaLV.mjs +0 -14
  325. package/dist/snippet-DKARah-L.mjs +0 -19
  326. package/dist/table-BPYHnzyV.mjs +0 -26
  327. package/dist/timeline-C2m_QHxn.mjs +0 -21
  328. package/dist/transform-N_elgRuh.mjs +0 -28
  329. package/dist/transform-job-CTV6KRP2.mjs +0 -22
  330. package/dist/transform-test-jaBpHOM5.mjs +0 -16
  331. package/dist/upload-CqSGEZQW.mjs +0 -13
  332. package/dist/validate-query-YtH3d5BP.mjs +0 -38
@@ -1,11 +1,10 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
- import { l as DashboardUpdateInput, o as DashboardDetail } from "./dashboard-Chjy5GKR.mjs";
7
- import { n as dashboardView } from "./dashboard-D5E3fMKh.mjs";
8
- import { t as preflightDashcardCardReferences } from "./preflight-ChTKhB8Y.mjs";
5
+ import { d as DashboardUpdateInput, o as DashboardDetail } from "./dashboard-Cwsf-e9T.mjs";
6
+ import { n as dashboardView } from "./dashboard-Bx2sYijR.mjs";
7
+ import { t as preflightDashcardCardReferences } from "./preflight-4iy2qzsh.mjs";
9
8
  //#region src/commands/dashboard/update.ts
10
9
  var update_default = defineMetabaseCommand({
11
10
  meta: {
@@ -40,12 +39,12 @@ var update_default = defineMetabaseCommand({
40
39
  "mb dashboard update 1 --body '{\"name\":\"renamed\"}'",
41
40
  "mb dashboard update 1 --body '{\"dashcards\":[{\"id\":-1,\"card_id\":42,\"row\":0,\"col\":0,\"size_x\":12,\"size_y\":6}]}'"
42
41
  ],
43
- async run({ args, ctx, getClient }) {
42
+ async run({ args, ctx, getClient, readBody }) {
44
43
  const id = parseId(args.id);
45
44
  const body = await readBody({
46
45
  flag: args.body,
47
46
  file: args.file
48
- }, DashboardUpdateInput);
47
+ });
49
48
  const client = await getClient();
50
49
  await preflightDashcardCardReferences(client, body.dashcards);
51
50
  const updated = await client.dashboard.update(id, body);
@@ -1,17 +1,16 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
4
3
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
4
  import { o as DataAppUpdateInput, t as DataApp } from "./data-app-BUW-HlUo.mjs";
6
5
  import { t as dataAppView } from "./data-app-Blz61mG5.mjs";
7
- import { n as slugArg, t as parseSlug } from "./slug-qeARO25o.mjs";
6
+ import { n as slugArg, t as parseSlug } from "./slug-COdwq63O.mjs";
8
7
  //#region src/commands/data-app/update.ts
9
8
  var update_default = defineMetabaseCommand({
10
9
  meta: {
11
10
  name: "update",
12
11
  description: "Update a data app's fields, or enable or disable it"
13
12
  },
14
- details: "The JSON body carries only the fields to change: `display_name`, `description`, `allowed_hosts`, `enabled`, `bundle_path`, `version`. A disabled app is served only to admins. `mb data-app set-bundle` replaces the bundle from a built file.",
13
+ details: "The JSON body carries only the fields to change: `display_name`, `description`, `allowed_hosts`, `enabled`, `bundle_path`, `version`. A disabled app opens only in Data Studio (Data apps → the app → Overview). `mb data-app set-bundle` replaces the bundle from a built file.",
15
14
  requires: ["dataApp.update"],
16
15
  args: {
17
16
  ...outputFlags,
@@ -22,13 +21,13 @@ var update_default = defineMetabaseCommand({
22
21
  },
23
22
  inputSchema: DataAppUpdateInput,
24
23
  outputSchema: DataApp,
25
- examples: ["mb data-app update sales-overview --body '{\"enabled\":true}'", "mb data-app update sales-overview --body '{\"allowed_hosts\":[\"https://api.example.com\"]}'"],
26
- async run({ args, ctx, getClient }) {
24
+ examples: ["mb data-app update sales-overview --body '{\"display_name\":\"Sales overview\"}'", "mb data-app update sales-overview --body '{\"allowed_hosts\":[\"https://api.example.com\"]}'"],
25
+ async run({ args, ctx, getClient, readBody }) {
27
26
  const slug = parseSlug(args.slug);
28
27
  const body = await readBody({
29
28
  flag: args.body,
30
29
  file: args.file
31
- }, DataAppUpdateInput);
30
+ });
32
31
  const updated = await (await getClient()).dataApp.update(slug, body);
33
32
  renderSummary(updated, dataAppView, `Updated data app ${updated.name}.`, ctx);
34
33
  }
@@ -1,18 +1,17 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
- import { i as MeasureUpdateInput, t as Measure } from "./measure-CtfjqJFP.mjs";
7
- import { o as preflightMbql5Query, r as MEASURE_DEFINITION_LABELS, s as skipValidateFlag } from "./validate-query-YtH3d5BP.mjs";
8
- import { t as measureView } from "./measure-4P0bOlZ3.mjs";
5
+ import { i as MeasureUpdateInput, t as Measure } from "./measure-BMWrX1ca.mjs";
6
+ import { MEASURE_DEFINITION, skipValidateFlag } from "./validate-query-Bf5FhhMI.mjs";
7
+ import { t as measureView } from "./measure-DqZG65of.mjs";
9
8
  //#region src/commands/measure/update.ts
10
9
  var update_default = defineMetabaseCommand({
11
10
  meta: {
12
11
  name: "update",
13
12
  description: "Update a measure by id (body must include revision_message)"
14
13
  },
15
- details: "Patches only the fields you send and must include `revision_message` (recorded in the audit log). When `definition` is an MBQL 5 query it is checked against a bundled JSON Schema (print it with `mb query --print-schema`) before sending; pass --skip-validate to bypass.",
14
+ details: "Patches only the fields you send and must include `revision_message` (recorded in the audit log). When `definition` is an MBQL 5 query it is checked against a bundled JSON Schema (print it with `mb schema query`) before sending; pass --skip-validate to bypass.",
16
15
  skills: [{
17
16
  skill: "mbql",
18
17
  purpose: "the definition aggregation"
@@ -31,6 +30,7 @@ var update_default = defineMetabaseCommand({
31
30
  }
32
31
  },
33
32
  inputSchema: MeasureUpdateInput,
33
+ embeddedDocuments: [MEASURE_DEFINITION],
34
34
  outputSchema: Measure,
35
35
  examples: [
36
36
  "cat patch.json | mb measure update 1",
@@ -38,13 +38,12 @@ var update_default = defineMetabaseCommand({
38
38
  "mb measure update 1 --body '{\"name\":\"renamed\",\"revision_message\":\"rename\"}'",
39
39
  "mb measure update 1 --file patch.json --skip-validate"
40
40
  ],
41
- async run({ args, ctx, getClient }) {
41
+ async run({ args, ctx, getClient, readBody }) {
42
42
  const id = parseId(args.id);
43
43
  const body = await readBody({
44
44
  flag: args.body,
45
45
  file: args.file
46
- }, MeasureUpdateInput);
47
- preflightMbql5Query(body.definition, MEASURE_DEFINITION_LABELS, { skip: args["skip-validate"] === true });
46
+ });
48
47
  const updated = await (await getClient()).measure.update(id, body);
49
48
  renderSummary(updated, measureView, `Updated measure ${updated.id} "${updated.name}".`, ctx);
50
49
  }
@@ -1,11 +1,11 @@
1
- import { G as chainRequestFailure, J as isBlank, Ot as ResponseShapeError, St as ConfigError, Tt as MetabaseError, c as renderSummary, ct as outputFlags, ft as parseInteger, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { O as givenValue, t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { f as ResponseShapeError, l as MetabaseError, n as isBlank, o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
2
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, mt as parseInteger, q as chainRequestFailure, ut as profileFlag } from "./cli.mjs";
3
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
4
+ import { O as givenValue, t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
5
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
- import { g as CollectionUpdateInput, r as Collection } from "./collection-DNmFKALA.mjs";
7
- import { t as parseEnumFlag } from "./parse-enum-DAcTzG1q.mjs";
8
- import { n as collectionView } from "./collection-D5vt2IJ_.mjs";
6
+ import { g as CollectionUpdateInput, r as Collection } from "./collection-Cz2qLX2m.mjs";
7
+ import { t as parseEnumFlag } from "./parse-enum-CEXPuN9H.mjs";
8
+ import { n as collectionView } from "./collection-Bf3lv-zo.mjs";
9
9
  import { z } from "zod";
10
10
  //#region src/commands/collection/update-flags.ts
11
11
  const ROOT_PARENT = "root";
@@ -34,12 +34,12 @@ const updateFlags = {
34
34
  }
35
35
  };
36
36
  /** A body beside a patch flag would be dropped or half-applied, so the two are alternatives. */
37
- async function readUpdateInput(args) {
37
+ async function readUpdateInput(args, readBody) {
38
38
  const { given, patch } = patchFromFlags(args);
39
39
  if (given.length === 0) return readBody({
40
40
  flag: args.body,
41
41
  file: args.file
42
- }, CollectionUpdateInput);
42
+ });
43
43
  if (givenValue(args.body) !== null || givenValue(args.file) !== null) throw new ConfigError(`${given.join(", ")} cannot be combined with --body or --file`);
44
44
  return patch;
45
45
  }
@@ -122,9 +122,9 @@ var update_default = defineMetabaseCommand({
122
122
  "mb collection update 4 --body '{\"parent_id\":null,\"authority_level\":\"official\"}'",
123
123
  "mb collection update 4 --file patch.json --json"
124
124
  ],
125
- async run({ args, ctx, getClient }) {
125
+ async run({ args, ctx, getClient, readBody }) {
126
126
  const id = parseId(args.id);
127
- const input = await readUpdateInput(args);
127
+ const input = await readUpdateInput(args, readBody);
128
128
  const client = await getClient();
129
129
  const patch = withoutTrashParent(input, typeof input.parent_id === "number" ? await client.collection.get(TRASH_REF) : null);
130
130
  const render = (updated) => {
@@ -1,7 +1,6 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
5
  import { i as SnippetUpdateInput, t as Snippet } from "./snippet-CyKAgIZl.mjs";
7
6
  import { t as snippetView } from "./snippet-oJLaYW9V.mjs";
@@ -31,12 +30,12 @@ var update_default = defineMetabaseCommand({
31
30
  "mb snippet update 1 --body '{\"name\":\"renamed\"}'",
32
31
  "mb snippet update 1 --body '{\"archived\":true}'"
33
32
  ],
34
- async run({ args, ctx, getClient }) {
33
+ async run({ args, ctx, getClient, readBody }) {
35
34
  const id = parseId(args.id);
36
35
  const body = await readBody({
37
36
  flag: args.body,
38
37
  file: args.file
39
- }, SnippetUpdateInput);
38
+ });
40
39
  const updated = await (await getClient()).snippet.update(id, body);
41
40
  renderSummary(updated, snippetView, `Updated snippet ${updated.id} "${updated.name}".`, ctx);
42
41
  }
@@ -1,10 +1,9 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
- import { f as DashcardDetail, p as DashcardPatchInput } from "./dashboard-Chjy5GKR.mjs";
7
- import { r as dashcardView } from "./dashboard-D5E3fMKh.mjs";
5
+ import { h as DashcardPatchInput, m as DashcardDetail } from "./dashboard-Cwsf-e9T.mjs";
6
+ import { r as dashcardView } from "./dashboard-Bx2sYijR.mjs";
8
7
  //#region src/commands/dashboard/update-dashcard.ts
9
8
  var update_dashcard_default = defineMetabaseCommand({
10
9
  meta: {
@@ -35,13 +34,13 @@ var update_dashcard_default = defineMetabaseCommand({
35
34
  "mb dashboard update-dashcard 1 5 --body '{\"size_x\":12,\"size_y\":4}'",
36
35
  "cat patch.json | mb dashboard update-dashcard 1 5"
37
36
  ],
38
- async run({ args, ctx, getClient }) {
37
+ async run({ args, ctx, getClient, readBody }) {
39
38
  const dashboardId = parseId(args["dashboard-id"], "dashboard-id");
40
39
  const dashcardId = parseId(args["dashcard-id"], "dashcard-id");
41
40
  const patch = await readBody({
42
41
  flag: args.body,
43
42
  file: args.file
44
- }, DashcardPatchInput);
43
+ });
45
44
  const refreshed = await (await getClient()).dashboard.updateDashcard(dashboardId, dashcardId, patch);
46
45
  renderSummary(refreshed, dashcardView, `Updated dashcard ${dashcardId} on dashboard ${dashboardId} (row ${refreshed.row}, col ${refreshed.col}, ${refreshed.size_x}x${refreshed.size_y}).`, ctx);
47
46
  }
@@ -1,7 +1,6 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { t as readBody } from "./body-M5qsJoub.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
5
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
6
5
  import { i as TimelineEvent, s as TimelineEventUpdateInput } from "./timeline-DcsCXNUt.mjs";
7
6
  import { t as timelineEventView } from "./timeline-BgWz8DYK.mjs";
@@ -31,12 +30,12 @@ var update_default = defineMetabaseCommand({
31
30
  "cat patch.json | mb timeline-event update 1",
32
31
  "mb timeline-event update 1 --file patch.json"
33
32
  ],
34
- async run({ args, ctx, getClient }) {
33
+ async run({ args, ctx, getClient, readBody }) {
35
34
  const id = parseId(args.id);
36
35
  const body = await readBody({
37
36
  flag: args.body,
38
37
  file: args.file
39
- }, TimelineEventUpdateInput);
38
+ });
40
39
  const updated = await (await getClient()).timelineEvent.update(id, body);
41
40
  renderSummary(updated, timelineEventView, `Updated timeline event ${updated.id} "${updated.name}".`, ctx);
42
41
  }
@@ -1,7 +1,8 @@
1
- import { At as UnknownError, Et as NetworkError, Mt as errorMessage, W as HttpError, Z as parseJson, _ as promptConfirm, a as renderItem, ct as outputFlags, f as writeText, kt as TimeoutError, nt as version, t as interruptSignal, tt as name, xt as AbortError } from "./cli.mjs";
2
- import { T as USER_AGENT, t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
- import { n as throwIfAborted, t as combineAborts } from "./signal-D8MH3LMN.mjs";
4
- import { n as streamProcess } from "./process-aqXm5QgC.mjs";
1
+ import { g as errorMessage, i as AbortError, m as UnknownError, p as TimeoutError, u as NetworkError } from "./predicates-0C0TsWcJ.mjs";
2
+ import { K as HttpError, X as parseJson, lt as outputFlags, nt as name, o as renderItem, p as writeText, rt as version, t as interruptSignal, v as promptConfirm } from "./cli.mjs";
3
+ import { E as USER_AGENT, t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
4
+ import { n as throwIfAborted, t as combineAborts } from "./signal-BNUlQjpc.mjs";
5
+ import { n as streamProcess } from "./process-BQC3mK2k.mjs";
5
6
  import { z } from "zod";
6
7
  import { realpathSync } from "node:fs";
7
8
  import { compare, valid } from "semver";
@@ -1,7 +1,7 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
3
3
  import { t as ContentTranslationUploadResult } from "./content-translation-BrHOrmj9.mjs";
4
- import { n as requireUploadFilePath, t as readCsvFile } from "./upload-BF5pdKRN.mjs";
4
+ import { n as requireUploadFilePath, t as readCsvFile } from "./upload-BAD_9okY.mjs";
5
5
  //#region src/output/views/content-translation.ts
6
6
  const contentTranslationUploadView = {
7
7
  compactPick: ContentTranslationUploadResult,
@@ -1,5 +1,5 @@
1
- import { Pt as isFileNotFoundError, St as ConfigError } from "./cli.mjs";
2
- import { D as fileNotFoundError } from "./runtime-Y4VFWmmr.mjs";
1
+ import { o as ConfigError, v as isFileNotFoundError } from "./predicates-0C0TsWcJ.mjs";
2
+ import { D as fileNotFoundError } from "./runtime-D5yfliIq.mjs";
3
3
  import { readFile } from "node:fs/promises";
4
4
  import { basename } from "node:path";
5
5
  //#region src/runtime/upload.ts
@@ -0,0 +1,13 @@
1
+ import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
2
+ //#region src/commands/upload/index.ts
3
+ var upload_default = defineCommandGroup({
4
+ name: "upload",
5
+ description: "Upload CSV files into Metabase",
6
+ subCommands: {
7
+ csv: () => import("./csv-CxWsxJIB.mjs").then((m) => m.default),
8
+ append: () => import("./append-CdzKyHhn.mjs").then((m) => m.default),
9
+ replace: () => import("./replace-BfO6UFZN.mjs").then((m) => m.default)
10
+ }
11
+ });
12
+ //#endregion
13
+ export { upload_default as default };
@@ -1,5 +1,6 @@
1
- import { St as ConfigError, ct as outputFlags, d as writeJson, f as writeText, ft as parseInteger } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
1
+ import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
2
+ import { f as writeJson, lt as outputFlags, mt as parseInteger, p as writeText } from "./cli.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
3
4
  import { z } from "zod";
4
5
  import { randomUUID } from "node:crypto";
5
6
  //#region src/commands/uuid.ts
@@ -1,4 +1,4 @@
1
- import { Lt as escapeJsonPointerSegment, St as ConfigError, Y as isPlainObject } from "./cli.mjs";
1
+ import { S as escapeJsonPointerSegment, o as ConfigError, r as isPlainObject } from "./predicates-0C0TsWcJ.mjs";
2
2
  import { z } from "zod";
3
3
  import Ajv2020 from "ajv/dist/2020.js";
4
4
  import addFormats from "ajv-formats";
@@ -1012,8 +1012,11 @@ var query_default = {
1012
1012
  "lib/type": { "const": "mbql.stage/native" },
1013
1013
  "native": { "type": "string" },
1014
1014
  "template-tags": {
1015
- "type": "object",
1016
- "additionalProperties": { "$ref": "#/$defs/template_tag" }
1015
+ "description": "Template tag definitions. The current format is a list of template tags (order-preserving). The legacy map format (tag name -> tag) is also accepted.\n",
1016
+ "type": ["array", "object"],
1017
+ "if": { "type": "array" },
1018
+ "then": { "items": { "$ref": "#/$defs/template_tag" } },
1019
+ "else": { "additionalProperties": { "$ref": "#/$defs/template_tag" } }
1017
1020
  }
1018
1021
  }
1019
1022
  },
@@ -1350,23 +1353,10 @@ const refSchemaWithIds = {
1350
1353
  }
1351
1354
  };
1352
1355
  const templateTag = query_default.$defs.template_tag;
1353
- const nativeStage = query_default.$defs.native_stage;
1354
- const TEMPLATE_TAG_REF = { $ref: "#/$defs/template_tag" };
1355
1356
  const querySchemaForApi = {
1356
1357
  ...query_default,
1357
1358
  $defs: {
1358
1359
  ...query_default.$defs,
1359
- native_stage: {
1360
- ...nativeStage,
1361
- properties: {
1362
- ...nativeStage.properties,
1363
- "template-tags": {
1364
- type: ["object", "array"],
1365
- additionalProperties: TEMPLATE_TAG_REF,
1366
- items: TEMPLATE_TAG_REF
1367
- }
1368
- }
1369
- },
1370
1360
  template_tag: {
1371
1361
  ...templateTag,
1372
1362
  properties: {
@@ -1491,7 +1481,7 @@ function assertNotLegacyEnvelopeWrappingMbql5(value, options) {
1491
1481
  if (!isLegacyEnvelopeWrappingMbql5(value)) return;
1492
1482
  throw new ConfigError(`${options.contextLabel}: ${options.bodyNoun} is the query itself: {"lib/type": "mbql/query", "database": N, "stages": […]}.`);
1493
1483
  }
1494
- z.object({
1484
+ const QuerySchemaBundle = z.object({
1495
1485
  schema: z.unknown(),
1496
1486
  defs: z.object({
1497
1487
  "id.yaml": z.unknown(),
@@ -1512,4 +1502,4 @@ function getQuerySchemaBundle() {
1512
1502
  };
1513
1503
  }
1514
1504
  //#endregion
1515
- export { validateQuery as a, isMbql5Query as i, assertNotLegacyEnvelopeWrappingMbql5 as n, getQuerySchemaBundle as r, ValidationOutcome as t };
1505
+ export { isMbql5Query as a, getQuerySchemaBundle as i, ValidationOutcome as n, validateQuery as o, assertNotLegacyEnvelopeWrappingMbql5 as r, QuerySchemaBundle as t };
@@ -0,0 +1,72 @@
1
+ import { o as ConfigError, r as isPlainObject } from "./predicates-0C0TsWcJ.mjs";
2
+ import { f as writeJson } from "./cli.mjs";
3
+ import { a as isMbql5Query, i as getQuerySchemaBundle, o as validateQuery, r as assertNotLegacyEnvelopeWrappingMbql5 } from "./validate-moGYlHxB.mjs";
4
+ //#region src/commands/validate-query.ts
5
+ const skipValidateFlag = { "skip-validate": {
6
+ type: "boolean",
7
+ description: "Skip the local MBQL 5 pre-flight validation; let the server be the authority. Use only when the bundled schema disagrees with what the server accepts."
8
+ } };
9
+ const QUERY_DOCUMENTS = {
10
+ title: "MBQL 5 query",
11
+ command: ["query"],
12
+ bundle: getQuerySchemaBundle()
13
+ };
14
+ function hasQuerySource(body) {
15
+ return valueAt(body, ["source", "type"]) === "query";
16
+ }
17
+ const CARD_DATASET_QUERY = {
18
+ resource: "card",
19
+ path: ["dataset_query"],
20
+ when: null,
21
+ documents: QUERY_DOCUMENTS
22
+ };
23
+ const DATA_ACTION_DATASET_QUERY = {
24
+ resource: "dataAction",
25
+ path: ["dataset_query"],
26
+ when: null,
27
+ documents: QUERY_DOCUMENTS
28
+ };
29
+ const TRANSFORM_SOURCE_QUERY = {
30
+ resource: "transform",
31
+ path: ["source", "query"],
32
+ when: hasQuerySource,
33
+ documents: QUERY_DOCUMENTS
34
+ };
35
+ const MEASURE_DEFINITION = {
36
+ resource: "measure",
37
+ path: ["definition"],
38
+ when: null,
39
+ documents: QUERY_DOCUMENTS
40
+ };
41
+ const SEGMENT_DEFINITION = {
42
+ resource: "segment",
43
+ path: ["definition"],
44
+ when: null,
45
+ documents: QUERY_DOCUMENTS
46
+ };
47
+ function preflightEmbeddedQuery(body, embedded, options) {
48
+ const holdsNoQuery = embedded.when !== null && !embedded.when(body);
49
+ if (options.skip || holdsNoQuery) return;
50
+ const query = valueAt(body, embedded.path);
51
+ const bodyNoun = embedded.path.join(".");
52
+ const contextLabel = `${embedded.resource}.${bodyNoun} validation failed`;
53
+ assertNotLegacyEnvelopeWrappingMbql5(query, {
54
+ contextLabel,
55
+ bodyNoun
56
+ });
57
+ if (!isMbql5Query(query)) return;
58
+ const outcome = validateQuery(query);
59
+ if (outcome.ok) return;
60
+ writeJson(outcome);
61
+ throw new ConfigError(`${contextLabel}: ${outcome.errors.length} error(s) — fix them, or pass --skip-validate to send anyway`);
62
+ }
63
+ function valueAt(body, path) {
64
+ let value = body;
65
+ for (const key of path) {
66
+ if (!isPlainObject(value)) return;
67
+ value = value[key];
68
+ }
69
+ return value;
70
+ }
71
+ //#endregion
72
+ export { CARD_DATASET_QUERY, DATA_ACTION_DATASET_QUERY, MEASURE_DEFINITION, QUERY_DOCUMENTS, SEGMENT_DEFINITION, TRANSFORM_SOURCE_QUERY, preflightEmbeddedQuery, skipValidateFlag };
@@ -1,8 +1,8 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, m as formatScalar, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
- import { u as FieldValues } from "./field-DoWQUl7V.mjs";
5
- import { s as fieldValuesView } from "./field-BVz4AS3f.mjs";
1
+ import { h as formatScalar, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
4
+ import { d as FieldValues } from "./field-C2qOViFZ.mjs";
5
+ import { s as fieldValuesView } from "./field-CT4r6b92.mjs";
6
6
  //#region src/commands/field/values.ts
7
7
  var values_default = defineMetabaseCommand({
8
8
  meta: {
@@ -1,6 +1,6 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
4
4
  import { t as ModerationReview } from "./moderation-review-Bf9bPNQI.mjs";
5
5
  import { i as moderationReviewView, n as verifyFlags, r as describeReview, t as reviewInput } from "./verify-flags-DEVMB9w0.mjs";
6
6
  //#region src/commands/dashboard/verify.ts
@@ -1,6 +1,6 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
4
4
  import { t as ModerationReview } from "./moderation-review-Bf9bPNQI.mjs";
5
5
  import { i as moderationReviewView, n as verifyFlags, r as describeReview, t as reviewInput } from "./verify-flags-DEVMB9w0.mjs";
6
6
  //#region src/commands/card/verify.ts
@@ -1,6 +1,7 @@
1
- import { n as createClient } from "./client-BFP2Ssqu.mjs";
2
- import { Et as NetworkError, Mt as errorMessage, Tt as MetabaseError, W as HttpError, kt as TimeoutError } from "./cli.mjs";
3
- import { B as probeServer, T as USER_AGENT } from "./runtime-Y4VFWmmr.mjs";
1
+ import { n as createClient } from "./client-D2ycdMRO.mjs";
2
+ import { g as errorMessage, l as MetabaseError, p as TimeoutError, u as NetworkError } from "./predicates-0C0TsWcJ.mjs";
3
+ import { K as HttpError } from "./cli.mjs";
4
+ import { B as probeServer, E as USER_AGENT } from "./runtime-D5yfliIq.mjs";
4
5
  //#region src/core/auth/verify.ts
5
6
  const VERIFY_TIMEOUT_MS = 15e3;
6
7
  async function verifyAndProbe(url, credential, options = {}) {
@@ -1,9 +1,9 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
- import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-CgtcJopL.mjs";
4
- import { r as parseWaitSchedule } from "./wait-flags-BnZ-dfE2.mjs";
1
+ import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-D5yfliIq.mjs";
3
+ import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-vxN__4cz.mjs";
4
+ import { r as parseWaitSchedule } from "./wait-flags-C3cu_O0w.mjs";
5
5
  import { u as syncTaskView } from "./git-sync-D1aKczo6.mjs";
6
- import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-DNKG9Bk4.mjs";
6
+ import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-Gf86CU9l.mjs";
7
7
  //#region src/commands/git-sync/wait.ts
8
8
  const WaitResult = SyncTaskOrIdle;
9
9
  var wait_default = defineMetabaseCommand({
@@ -1,6 +1,6 @@
1
1
  import { t as interruptSignal } from "./cli.mjs";
2
- import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
- import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-CgtcJopL.mjs";
2
+ import { t as parseId } from "./parse-id-EXZan40V.mjs";
3
+ import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-vxN__4cz.mjs";
4
4
  //#region src/commands/wait-flags.ts
5
5
  const waitScheduleFlags = {
6
6
  timeout: {
@@ -1,4 +1,4 @@
1
- import { g as projectForList } from "./cli.mjs";
1
+ import { _ as projectForList } from "./cli.mjs";
2
2
  //#region src/output/window.ts
3
3
  const MAX_REQUEST_PAGE_SIZE = 200;
4
4
  function windowList(items, range, serverTotal) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metabase/cli",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "description": "Metabase CLI",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {