@metabase/cli 0.1.5 → 0.1.6

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 (217) hide show
  1. package/README.md +115 -102
  2. package/dist/{add-collection-C_iovi9i.mjs → add-collection-BU8r3r2M.mjs} +9 -4
  3. package/dist/add-collection-C0w6ACQF.mjs +11 -0
  4. package/dist/{archive-Dvzrmdbk.mjs → archive-BNinrUak.mjs} +9 -8
  5. package/dist/{archive-WaEW85NB.mjs → archive-C1enZgKV.mjs} +8 -7
  6. package/dist/archive-CDA0KxL8.mjs +40 -0
  7. package/dist/{archive-BKPO8lEO.mjs → archive-CRhiBpPJ.mjs} +9 -8
  8. package/dist/{archive-DdaP94H3.mjs → archive-DMPS8Kih.mjs} +9 -8
  9. package/dist/archive-lWgqiFAt.mjs +40 -0
  10. package/dist/auth-CzXb_zB2.mjs +19 -0
  11. package/dist/{body-XtR7-uCO.mjs → body-DjdFxjpg.mjs} +4 -4
  12. package/dist/{branches-XUY4JY-X.mjs → branches-B1WRfG7-.mjs} +11 -7
  13. package/dist/{cancel-BrUVO_ax.mjs → cancel-Dl_Ho056.mjs} +7 -6
  14. package/dist/{cancel-task-oXheTOB6.mjs → cancel-task-CdigdCaO.mjs} +11 -7
  15. package/dist/capabilities-7e9MgquN.mjs +29 -0
  16. package/dist/card-DP4rfoOi.mjs +21 -0
  17. package/dist/{card-CQxvHeyP.mjs → card-DlCAaAPq.mjs} +1 -1
  18. package/dist/{cards-CONTTAG9.mjs → cards-BGiJS675.mjs} +8 -7
  19. package/dist/cli.mjs +264 -44
  20. package/dist/collection-tY18ezvn.mjs +21 -0
  21. package/dist/{predicates-CGO17Q15.mjs → command-augment-BH9qgQ5u.mjs} +66 -14
  22. package/dist/create-BNiva__H.mjs +52 -0
  23. package/dist/{create-Ca9lIDwP.mjs → create-BTcpaop_.mjs} +9 -8
  24. package/dist/{create-V-q2rU0T.mjs → create-BYlIju0b.mjs} +14 -12
  25. package/dist/{create-DZxUeqdf.mjs → create-Be_0Vier.mjs} +10 -9
  26. package/dist/{create-kYpjobrq.mjs → create-CHF313Qg.mjs} +13 -9
  27. package/dist/{create-swbIXdo5.mjs → create-CwGtmwqm.mjs} +14 -12
  28. package/dist/{create-Dq25vsMu.mjs → create-CzzrbL0u.mjs} +10 -9
  29. package/dist/{create-Le3Bqn7b.mjs → create-DGth_uOp.mjs} +14 -12
  30. package/dist/{create-branch-D5u14AxL.mjs → create-branch-DKZkoQ64.mjs} +11 -7
  31. package/dist/{create-Cs2xntFG.mjs → create-dhxPxfF3.mjs} +16 -14
  32. package/dist/{credentials-BIQ1cEzM.mjs → credentials-dzeq7ckm.mjs} +12 -11
  33. package/dist/{current-task-DCq7rk9V.mjs → current-task-CCRzm0_7.mjs} +11 -7
  34. package/dist/dashboard-ChM_Tu0l.mjs +22 -0
  35. package/dist/{dashboard-CnMD04PQ.mjs → dashboard-FY5UzJ_Z.mjs} +2 -1
  36. package/dist/{database-BSvzYlRe.mjs → database-CIXwHKjK.mjs} +3 -3
  37. package/dist/{database-vvig8k4x.mjs → database-lH-B3G1I.mjs} +1 -1
  38. package/dist/db-DrQn_i3W.mjs +22 -0
  39. package/dist/{remove-C6bS0Z6w.mjs → delete-CM3jnAeQ.mjs} +21 -20
  40. package/dist/{delete-CUx6RT9e.mjs → delete-Dimc-2y8.mjs} +9 -8
  41. package/dist/{delete-VTAS9EUt.mjs → delete-ZjnV35OJ.mjs} +9 -8
  42. package/dist/{delete-runtime-DfFMWJJ6.mjs → delete-runtime-B6RQo_pw.mjs} +5 -3
  43. package/dist/{delete-table-DzUneMKe.mjs → delete-table-agZJpivt.mjs} +9 -8
  44. package/dist/{deprovision-CpJfGgCt.mjs → deprovision-CwxcIT3k.mjs} +16 -12
  45. package/dist/{dirty-nkAOXxgC.mjs → dirty-D4d0yHqj.mjs} +11 -7
  46. package/dist/{docker-D5FTIoD0.mjs → docker-Oq80q3tu.mjs} +4 -4
  47. package/dist/{translate-Cqsd0Px5.mjs → eid-BXzaQh0o.mjs} +37 -22
  48. package/dist/error-C9S6PN3-.mjs +190 -0
  49. package/dist/{export-BWvY7X_G.mjs → export-DTygoXBP.mjs} +17 -16
  50. package/dist/field-Z6Pcxf4n.mjs +19 -0
  51. package/dist/{fields-dH16G5UV.mjs → fields-CoQi99gv.mjs} +9 -8
  52. package/dist/{get-BnBRKHr7.mjs → get-Bzys7vgp.mjs} +8 -7
  53. package/dist/{get-B7i_nYJB.mjs → get-C2p383Qc.mjs} +8 -7
  54. package/dist/{get-D96QEU49.mjs → get-C3HdQ91a.mjs} +8 -7
  55. package/dist/{get-DNN1X2gN.mjs → get-CP3Z3NiH.mjs} +9 -8
  56. package/dist/{get-CACaBFLt.mjs → get-C_w1kvN3.mjs} +9 -8
  57. package/dist/{get-D8e_RzZ0.mjs → get-CzuzeKSe.mjs} +10 -9
  58. package/dist/{get-C6SR3A9t.mjs → get-D3SbEQSE.mjs} +10 -9
  59. package/dist/{get-7macOPAI.mjs → get-DFxZXaKz.mjs} +7 -7
  60. package/dist/{get-DAWofnzK.mjs → get-DQTZG_NP.mjs} +8 -7
  61. package/dist/{get-BcqxMVC1.mjs → get-DSWFjy7O.mjs} +8 -7
  62. package/dist/{get-R7OaVL_t.mjs → get-Ddr0XLh7.mjs} +8 -7
  63. package/dist/{get-B08K82JV.mjs → get-Hc93A0Yz.mjs} +8 -7
  64. package/dist/{get-CKxlhMy1.mjs → get-lb7q3JYs.mjs} +7 -6
  65. package/dist/get-run-B7sKdaDU.mjs +38 -0
  66. package/dist/git-sync-CiGAad76.mjs +28 -0
  67. package/dist/{has-remote-changes-BAnIXQXU.mjs → has-remote-changes-BY10-nnE.mjs} +11 -7
  68. package/dist/{import-CfdPEMng.mjs → import-CiMz4Wz-.mjs} +17 -16
  69. package/dist/{input-BQ-BZA8h.mjs → input-cMSEqISy.mjs} +7 -4
  70. package/dist/{is-dirty-CZWcG0vj.mjs → is-dirty-BZOaryxT.mjs} +9 -4
  71. package/dist/is-dirty-Ume4oV0j.mjs +10 -0
  72. package/dist/{items-DqwahOKf.mjs → items-BWfvkY-J.mjs} +9 -8
  73. package/dist/key-C2XG394c.mjs +17 -0
  74. package/dist/license-Dxarh-gG.mjs +17 -0
  75. package/dist/{list-vF4EneaE.mjs → list--OYdUTtu.mjs} +7 -6
  76. package/dist/{list-yxVAE1S7.mjs → list-2j7GsXsl.mjs} +7 -6
  77. package/dist/{list-D41gfkKb.mjs → list-BI4zr8LW.mjs} +10 -8
  78. package/dist/{list-BpNU1neq.mjs → list-Brgh-Z2v.mjs} +8 -6
  79. package/dist/{list-ViT2KWhv.mjs → list-C3hfovHv.mjs} +7 -6
  80. package/dist/{list-CQkDqphl.mjs → list-CL7eCOQE.mjs} +7 -6
  81. package/dist/{list-L63TpX1t.mjs → list-Clz5igWg.mjs} +7 -7
  82. package/dist/list-D4sFiqX8.mjs +173 -0
  83. package/dist/{list-oftHLFbE.mjs → list-DXH7TlkU.mjs} +9 -7
  84. package/dist/{list-BqNMpIXy.mjs → list-DZ8fNUoQ.mjs} +9 -8
  85. package/dist/{list-Bkd7Nbds.mjs → list-SOG0whQ-.mjs} +7 -6
  86. package/dist/{list-J277Qtki.mjs → list-d58BprgJ.mjs} +7 -6
  87. package/dist/{list-DJcGwJ4W.mjs → list-sD5N3fGk.mjs} +9 -8
  88. package/dist/{list-DBOYoJtA.mjs → list-zSO0DMw-.mjs} +10 -6
  89. package/dist/{login-D1nZwgKv.mjs → login-Bm2AnCez.mjs} +65 -80
  90. package/dist/{logout-DD4q5whi.mjs → logout-BlyRJODO.mjs} +8 -7
  91. package/dist/{logs-Ci3mJE2z.mjs → logs-CywPikkL.mjs} +9 -8
  92. package/dist/{manifest-CGM7XNLC.mjs → manifest-BBR46KFM.mjs} +15 -15
  93. package/dist/measure-C44EK_xt.mjs +20 -0
  94. package/dist/{measure-BEQfnLdN.mjs → measure-ClESGxIb.mjs} +2 -2
  95. package/dist/{metadata-BDat-jN9.mjs → metadata-B8ZSF9LA.mjs} +10 -9
  96. package/dist/{metadata-29_qlqbz.mjs → metadata-DqiI2q9q.mjs} +9 -8
  97. package/dist/parse-enum-CrEWOhuY.mjs +11 -0
  98. package/dist/{parse-id-CysSaCbf.mjs → parse-id-lk_K-CEF.mjs} +1 -1
  99. package/dist/{parse-ref-D1yeDOn8.mjs → parse-ref-BiETXmvm.mjs} +1 -1
  100. package/dist/{parse-schemas-B10n01ez.mjs → parse-schemas-BqUdWUwq.mjs} +2 -2
  101. package/dist/{path-DLByFMMA.mjs → path-AEtZ3mBq.mjs} +7 -7
  102. package/dist/{poll-p9Y7-JEQ.mjs → poll-DHKDpCiq.mjs} +2 -2
  103. package/dist/{poll-task-BQe0NvJZ.mjs → poll-task-Cooi0lQV.mjs} +3 -20
  104. package/dist/{preflight-CvFu0Cct.mjs → preflight-aXV5LyDs.mjs} +4 -4
  105. package/dist/{process-zJeVJZTM.mjs → process-C7V8LJ-j.mjs} +1 -1
  106. package/dist/{prompt-DgDNy_Pc.mjs → prompt-CFKoys7k.mjs} +3 -1
  107. package/dist/{provision-BP-b4Are.mjs → provision-UWcNDoDe.mjs} +29 -24
  108. package/dist/{ps-BxQdpkr5.mjs → ps-CJU0EbrC.mjs} +5 -3
  109. package/dist/ps-DEroLgbI.mjs +11 -0
  110. package/dist/{query-CFH4nBlK.mjs → query-AaKzYnTY.mjs} +9 -8
  111. package/dist/{query-C7zTlFJA.mjs → query-BlsVNZpD.mjs} +15 -13
  112. package/dist/{remove-BuWxx3hY.mjs → remove-BFWun0e8.mjs} +9 -8
  113. package/dist/{remove-collection-Bc4roCq0.mjs → remove-collection-CoCmrrQs.mjs} +13 -9
  114. package/dist/{render-DuoDUTVL.mjs → render-CfznwleY.mjs} +15 -17
  115. package/dist/render-OQn3iRsI.mjs +32 -0
  116. package/dist/{rescan-values-DabyRYQ_.mjs → rescan-values-C0FDsjT7.mjs} +10 -9
  117. package/dist/{run-Cl-9RtC4.mjs → run-B4Wn43zm.mjs} +10 -9
  118. package/dist/{runs-BH6s1Zao.mjs → runs-Bbaszr18.mjs} +9 -8
  119. package/dist/{runtime-CDu6fykq.mjs → runtime-Dmv5VtUK.mjs} +657 -428
  120. package/dist/{schema-tables-i58wp_p3.mjs → schema-tables-CaWinbuK.mjs} +9 -8
  121. package/dist/{schemas-_m8RYRl9.mjs → schemas-DUgGpAyB.mjs} +7 -6
  122. package/dist/{search-DObOsjbP.mjs → search-BLrBXLUk.mjs} +12 -16
  123. package/dist/segment-B3Uwwcsm.mjs +20 -0
  124. package/dist/{set-CJA9dpK6.mjs → set-B8cUbRLD.mjs} +13 -12
  125. package/dist/{set-CwVWeAsi.mjs → set-DfGsta5O.mjs} +11 -10
  126. package/dist/{setting-Czy4ws6h.mjs → setting-D2p2MA7f.mjs} +3 -3
  127. package/dist/{setup-DqBOe3HZ.mjs → setup-C9ikBRw_.mjs} +9 -8
  128. package/dist/{skills-C2rTVj0n.mjs → skills-CUHIcQS6.mjs} +3 -3
  129. package/dist/{skills-CHU7uuDU.mjs → skills-CiN1OQ8W.mjs} +2 -2
  130. package/dist/snippet-B7D0uWlz.mjs +20 -0
  131. package/dist/{start-CfruN4wF.mjs → start-3PX3ahjT.mjs} +68 -37
  132. package/dist/{stash-CWuXKSZq.mjs → stash-EIDcSvpF.mjs} +17 -16
  133. package/dist/{status-D-RYZB9G.mjs → status-95ElRAu9.mjs} +12 -8
  134. package/dist/status-B0_MiZEf.mjs +100 -0
  135. package/dist/status-CEplmC44.mjs +34 -0
  136. package/dist/{stop-D8Hr4cKX.mjs → stop-CQ0XGrN8.mjs} +11 -10
  137. package/dist/{summary-Lt2XLBK9.mjs → summary-C12LiEuJ.mjs} +8 -7
  138. package/dist/{sync-schema-BDElSynU.mjs → sync-schema-Ba8M3DiX.mjs} +10 -9
  139. package/dist/{table-B-PYcgGb.mjs → table-C7a5V6Zn.mjs} +1 -1
  140. package/dist/table-e6h8SLVX.mjs +20 -0
  141. package/dist/transform-BMYh1lsC.mjs +25 -0
  142. package/dist/transform-job-Cm7z5TfH.mjs +20 -0
  143. package/dist/{transform-job-BrhOLO4M.mjs → transform-job-DeTDPMxt.mjs} +1 -1
  144. package/dist/{tree-DfvjDjmk.mjs → tree-Des2ZG9d.mjs} +6 -5
  145. package/dist/{update-CqnDMNtZ.mjs → update-Bx54nWEI.mjs} +17 -15
  146. package/dist/{update-D9Z8cL7h.mjs → update-CyIZdbIQ.mjs} +11 -10
  147. package/dist/{update-CVxOxmt6.mjs → update-DBi5U8zb.mjs} +16 -14
  148. package/dist/{update-BYduslhn.mjs → update-DHZubok3.mjs} +18 -14
  149. package/dist/{update-BgcroYkF.mjs → update-DSgceARZ.mjs} +11 -10
  150. package/dist/{update-zp7pCBZH.mjs → update-DzAN4SPj.mjs} +15 -13
  151. package/dist/{update-qnFY5IuC.mjs → update-F6DmZncY.mjs} +11 -10
  152. package/dist/{update-B0bjPqKC.mjs → update-_QfgNa53.mjs} +12 -11
  153. package/dist/{update-dashcard-CQ3kmmss.mjs → update-dashcard-wpSjv4M7.mjs} +11 -10
  154. package/dist/{update-DzgXF082.mjs → update-mYVnoYNV.mjs} +15 -13
  155. package/dist/{update-DuA8-cCq.mjs → update-njHe3j-s.mjs} +15 -13
  156. package/dist/{upgrade-CIgTr2CG.mjs → upgrade-iAuvhX-W.mjs} +9 -8
  157. package/dist/{url-B5MgZXzg.mjs → url-DWaT6WIZ.mjs} +11 -10
  158. package/dist/{uuid-CJz9TmHI.mjs → uuid-CMKnS8-z.mjs} +8 -6
  159. package/dist/{validate-CB0bu50i.mjs → validate-dPEOnOf8.mjs} +2 -1
  160. package/dist/{validate-query-CavIA0Q2.mjs → validate-query-Cw6WE5Y8.mjs} +3 -3
  161. package/dist/{values-BXN6tx1i.mjs → values-BfSTAbzc.mjs} +8 -7
  162. package/dist/verify-D5YtTqqp.mjs +79 -0
  163. package/dist/{wait-BFqBlg0y.mjs → wait-8yV9_WIo.mjs} +2 -2
  164. package/dist/{wait-tDp9ZOou.mjs → wait-Bv3Tsnv4.mjs} +12 -8
  165. package/dist/{wait-flags-CN-e9zNq.mjs → wait-flags-Dzq9BGQY.mjs} +20 -9
  166. package/dist/workspace-CKLZrR7l.mjs +26 -0
  167. package/dist/{workspace-credentials-4lIxxz4g.mjs → workspace-credentials-BXpABsNZ.mjs} +2 -2
  168. package/dist/{yaml-ECiog374.mjs → yaml-YTQiYJ9s.mjs} +1 -1
  169. package/package.json +2 -1
  170. package/skill-data/core/SKILL.md +55 -453
  171. package/skill-data/git-sync/SKILL.md +1 -1
  172. package/skill-data/mbql/SKILL.md +156 -0
  173. package/skill-data/mbql/references/operators.md +253 -0
  174. package/skill-data/transform/SKILL.md +2 -40
  175. package/skill-data/viz/SKILL.md +137 -0
  176. package/skill-data/viz/references/settings.md +312 -0
  177. package/skill-data/workspace/SKILL.md +45 -63
  178. package/skills/metabase-cli/SKILL.md +5 -26
  179. package/dist/add-collection-ucsyAMkV.mjs +0 -11
  180. package/dist/api-key-BENHbTbV.mjs +0 -13
  181. package/dist/auth-DICRtJDy.mjs +0 -19
  182. package/dist/card-l-UmrUIo.mjs +0 -20
  183. package/dist/collection-oV0olVY-.mjs +0 -19
  184. package/dist/command-augment-D9pI9Vbh.mjs +0 -11
  185. package/dist/create-CrUq6sib.mjs +0 -125
  186. package/dist/create-D3Z878yr.mjs +0 -50
  187. package/dist/dashboard-hbKDd36X.mjs +0 -20
  188. package/dist/db-qVK6NsdB.mjs +0 -22
  189. package/dist/eid-CDFXX_6H.mjs +0 -13
  190. package/dist/field-C0LE7RQI.mjs +0 -18
  191. package/dist/flag-pair-Fmcdkrfx.mjs +0 -17
  192. package/dist/get-run-CwFuR4Uw.mjs +0 -36
  193. package/dist/git-sync-DV7YjniX.mjs +0 -28
  194. package/dist/is-dirty-LxVbm2C5.mjs +0 -10
  195. package/dist/key-CCJdVWKc.mjs +0 -12
  196. package/dist/license-Cb6ewEJO.mjs +0 -17
  197. package/dist/list-DV6CONhp.mjs +0 -55
  198. package/dist/measure-XhJuL77y.mjs +0 -19
  199. package/dist/package-DFUprkSZ.mjs +0 -85
  200. package/dist/ps-Bk6unzaX.mjs +0 -11
  201. package/dist/segment-DfxZdJmR.mjs +0 -19
  202. package/dist/snippet-BCY4KHBU.mjs +0 -19
  203. package/dist/status-1oUnw803.mjs +0 -56
  204. package/dist/status-J9HIDcA5.mjs +0 -32
  205. package/dist/table-BwX3Ib5f.mjs +0 -19
  206. package/dist/transform-iaAi37V0.mjs +0 -24
  207. package/dist/transform-job-Bemonf82.mjs +0 -19
  208. package/dist/workspace-BBsT0H0g.mjs +0 -24
  209. /package/dist/{body-flags-BK7J6Daz.mjs → body-flags-D7q87Btw.mjs} +0 -0
  210. /package/dist/{field-B3gvaqpK.mjs → field-yomXlkvl.mjs} +0 -0
  211. /package/dist/{paginate-CTSfuYiF.mjs → paginate-Dfm9eO9A.mjs} +0 -0
  212. /package/dist/{revision-message-flag-oyq2xrDU.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
  213. /package/dist/{segment-BMrUBz94.mjs → segment-Be2v4ilr.mjs} +0 -0
  214. /package/dist/{setting-CTaAeMci.mjs → setting-oL97SNeO.mjs} +0 -0
  215. /package/dist/{snippet-CSWqkslB.mjs → snippet-COggaWxx.mjs} +0 -0
  216. /package/dist/{transform-DR4ejuPM.mjs → transform-GTW3G-01.mjs} +0 -0
  217. /package/dist/{workspace-DUfqhPm5.mjs → workspace-BBXJczJK.mjs} +0 -0
@@ -1,13 +1,13 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
5
- import "./input-BQ-BZA8h.mjs";
6
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
7
- import { readBody } from "./body-XtR7-uCO.mjs";
8
- import { bodyInputFlags } from "./body-flags-BK7J6Daz.mjs";
9
- import { parseId } from "./parse-id-CysSaCbf.mjs";
10
- import { DashboardDetail, Dashcard, DashcardPatchInput, dashcardView } from "./dashboard-CnMD04PQ.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import "./input-cMSEqISy.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
+ import { readBody } from "./body-DjdFxjpg.mjs";
9
+ import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
10
+ import { DashboardDetail, Dashcard, DashcardPatchInput, dashcardView } from "./dashboard-FY5UzJ_Z.mjs";
11
11
 
12
12
  //#region src/commands/dashboard/update-dashcard.ts
13
13
  var update_dashcard_default = defineMetabaseCommand({
@@ -15,6 +15,7 @@ var update_dashcard_default = defineMetabaseCommand({
15
15
  name: "update-dashcard",
16
16
  description: "Patch a single dashcard's layout or settings on a dashboard"
17
17
  },
18
+ capabilities: { minVersion: 58 },
18
19
  args: {
19
20
  ...outputFlags,
20
21
  ...profileFlag,
@@ -1,22 +1,24 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import "./input-BQ-BZA8h.mjs";
6
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
7
- import { readBody } from "./body-XtR7-uCO.mjs";
8
- import { bodyInputFlags } from "./body-flags-BK7J6Daz.mjs";
9
- import { parseId } from "./parse-id-CysSaCbf.mjs";
10
- import "./validate-CB0bu50i.mjs";
11
- import { TRANSFORM_SOURCE_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-CavIA0Q2.mjs";
12
- import { Transform, TransformUpdateInput, transformView } from "./transform-DR4ejuPM.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import "./input-cMSEqISy.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
+ import { readBody } from "./body-DjdFxjpg.mjs";
9
+ import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
10
+ import "./validate-dPEOnOf8.mjs";
11
+ import { TRANSFORM_SOURCE_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
12
+ import { Transform, TransformUpdateInput, transformView } from "./transform-GTW3G-01.mjs";
13
13
 
14
14
  //#region src/commands/transform/update.ts
15
15
  var update_default = defineMetabaseCommand({
16
16
  meta: {
17
17
  name: "update",
18
- description: "Update a transform by id; if source is provided with type `query` and source.query is MBQL 5 (lib/type: mbql/query) it is pre-flight-validated against the same schema as `mb query` (see `mb query --print-schema`)"
18
+ description: "Update a transform by id (partial)"
19
19
  },
20
+ details: "Patches only the fields you send (any of `name`, `source`, `target`, `tag_ids`, …). When a new `source.query` is an MBQL 5 query it is checked against a bundled JSON Schema before sending; pass --skip-validate to bypass. See `mb skills get mbql`.",
21
+ capabilities: { minVersion: 59 },
20
22
  args: {
21
23
  ...outputFlags,
22
24
  ...profileFlag,
@@ -1,22 +1,24 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import "./input-BQ-BZA8h.mjs";
6
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
7
- import { readBody } from "./body-XtR7-uCO.mjs";
8
- import { bodyInputFlags } from "./body-flags-BK7J6Daz.mjs";
9
- import { parseId } from "./parse-id-CysSaCbf.mjs";
10
- import "./validate-CB0bu50i.mjs";
11
- import { SEGMENT_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-CavIA0Q2.mjs";
12
- import { Segment, SegmentUpdateInput, segmentView } from "./segment-BMrUBz94.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import "./input-cMSEqISy.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
+ import { readBody } from "./body-DjdFxjpg.mjs";
9
+ import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
10
+ import "./validate-dPEOnOf8.mjs";
11
+ import { SEGMENT_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
12
+ import { Segment, SegmentUpdateInput, segmentView } from "./segment-Be2v4ilr.mjs";
13
13
 
14
14
  //#region src/commands/segment/update.ts
15
15
  var update_default = defineMetabaseCommand({
16
16
  meta: {
17
17
  name: "update",
18
- description: "Update a segment by id; body must include revision_message (audit-logged with the change). If definition is MBQL 5 (lib/type: mbql/query) it is pre-flight-validated against the same schema as `mb query` (see `mb query --print-schema`)"
18
+ description: "Update a segment by id (body must include revision_message)"
19
19
  },
20
+ 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 before sending; pass --skip-validate to bypass. See `mb skills get mbql`.",
21
+ capabilities: { minVersion: 58 },
20
22
  args: {
21
23
  ...outputFlags,
22
24
  ...profileFlag,
@@ -1,10 +1,10 @@
1
- import { package_default } from "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem, writeText } from "./render-DuoDUTVL.mjs";
4
- import { AbortError, NetworkError, TimeoutError, UnknownError, errorMessage } from "./predicates-CGO17Q15.mjs";
5
- import { HttpError, USER_AGENT, combineAborts, defineMetabaseCommand, outputFlags, parseJson, throwIfAborted } from "./runtime-CDu6fykq.mjs";
6
- import { promptConfirm } from "./prompt-DgDNy_Pc.mjs";
7
- import { streamProcess } from "./process-zJeVJZTM.mjs";
1
+ import { AbortError, NetworkError, TimeoutError, UnknownError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags, package_default } from "./error-C9S6PN3-.mjs";
3
+ import { HttpError, USER_AGENT, combineAborts, defineMetabaseCommand, parseJson, throwIfAborted } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem, writeText } from "./render-CfznwleY.mjs";
6
+ import { promptConfirm } from "./prompt-CFKoys7k.mjs";
7
+ import { streamProcess } from "./process-C7V8LJ-j.mjs";
8
8
  import { z } from "zod";
9
9
  import { realpathSync } from "node:fs";
10
10
  import { compare, valid } from "semver";
@@ -243,7 +243,7 @@ function safeRealpath(path) {
243
243
  }
244
244
 
245
245
  //#endregion
246
- //#region src/core/version.ts
246
+ //#region src/core/semver.ts
247
247
  const SEMVER_MESSAGE = "expected semver MAJOR.MINOR.PATCH[-prerelease][+build]";
248
248
  const SemverString = z.string().refine((value) => valid(value) !== null, { message: SEMVER_MESSAGE });
249
249
  function compareSemver(a, b) {
@@ -304,6 +304,7 @@ var upgrade_default = defineMetabaseCommand({
304
304
  name: "upgrade",
305
305
  description: "Upgrade the Metabase CLI itself to the latest published release"
306
306
  },
307
+ capabilities: null,
307
308
  args: {
308
309
  ...outputFlags,
309
310
  check: {
@@ -1,12 +1,12 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { defineMetabaseCommand, localUrl, outputFlags } from "./runtime-CDu6fykq.mjs";
6
- import { parseId } from "./parse-id-CysSaCbf.mjs";
7
- import "./poll-p9Y7-JEQ.mjs";
8
- import "./process-zJeVJZTM.mjs";
9
- import { checkDockerReady, requireWorkspaceContainerLocation } from "./docker-D5FTIoD0.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand, localUrl } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderScalar } from "./render-CfznwleY.mjs";
6
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
+ import "./poll-DHKDpCiq.mjs";
8
+ import "./process-C7V8LJ-j.mjs";
9
+ import { checkDockerReady, requireWorkspaceContainerLocation } from "./docker-Oq80q3tu.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/workspace/url.ts
@@ -29,6 +29,7 @@ var url_default = defineMetabaseCommand({
29
29
  name: "url",
30
30
  description: "Print the local URL the workspace's container is bound to"
31
31
  },
32
+ capabilities: null,
32
33
  args: {
33
34
  ...outputFlags,
34
35
  id: {
@@ -47,7 +48,7 @@ var url_default = defineMetabaseCommand({
47
48
  workspace_id: workspaceId,
48
49
  url: localUrl(hostPort)
49
50
  };
50
- renderItem(result, urlResultView, ctx);
51
+ renderScalar(result, urlResultView, result.url, ctx);
51
52
  }
52
53
  });
53
54
 
@@ -1,8 +1,8 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { writeJson, writeText } from "./render-DuoDUTVL.mjs";
4
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
5
- import { defineMetabaseCommand, outputFlags, parseInteger } from "./runtime-CDu6fykq.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand, parseInteger } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { writeJson, writeText } from "./render-CfznwleY.mjs";
6
6
  import { z } from "zod";
7
7
  import { randomUUID } from "node:crypto";
8
8
 
@@ -12,8 +12,10 @@ const UuidList = z.array(z.string().uuid());
12
12
  var uuid_default = defineMetabaseCommand({
13
13
  meta: {
14
14
  name: "uuid",
15
- description: "Mint UUID v4 strings (Node crypto.randomUUID) for MBQL `lib/uuid` slots, native template-tag ids, etc. Agents must call this to obtain UUIDs rather than authoring them by hand — hand-written placeholders fail the bundled MBQL 5 schema's `format: \"uuid\"` check."
15
+ description: "Mint random UUID v4 strings"
16
16
  },
17
+ details: "For MBQL `lib/uuid` slots, native template-tag ids, and other UUID fields. Mint fresh values here rather than authoring them by hand — the MBQL 5 schema rejects placeholder strings. See `mb skills get mbql`.",
18
+ capabilities: null,
17
19
  args: {
18
20
  ...outputFlags,
19
21
  count: {
@@ -1,4 +1,5 @@
1
- import { ConfigError, escapeJsonPointerSegment, isPlainObject } from "./predicates-CGO17Q15.mjs";
1
+ import { ConfigError, escapeJsonPointerSegment } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { isPlainObject } from "./capabilities-7e9MgquN.mjs";
2
3
  import { z } from "zod";
3
4
  import Ajv2020 from "ajv/dist/2020.js";
4
5
  import addFormats from "ajv-formats";
@@ -1,6 +1,6 @@
1
- import { writeJson } from "./render-DuoDUTVL.mjs";
2
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
3
- import { assertNotLegacyEnvelopeWrappingMbql5, isMbql5Query, validateQuery } from "./validate-CB0bu50i.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { writeJson } from "./render-CfznwleY.mjs";
3
+ import { assertNotLegacyEnvelopeWrappingMbql5, isMbql5Query, validateQuery } from "./validate-dPEOnOf8.mjs";
4
4
 
5
5
  //#region src/commands/validate-query.ts
6
6
  const skipValidateFlag = { "skip-validate": {
@@ -1,10 +1,10 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
6
- import { parseId } from "./parse-id-CysSaCbf.mjs";
7
- import { FieldValues, fieldValuesView } from "./field-B3gvaqpK.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { FieldValues, fieldValuesView } from "./field-yomXlkvl.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
8
 
9
9
  //#region src/commands/field/values.ts
10
10
  var values_default = defineMetabaseCommand({
@@ -12,6 +12,7 @@ var values_default = defineMetabaseCommand({
12
12
  name: "values",
13
13
  description: "Fetch the cached distinct values for a field (FieldValues list)"
14
14
  },
15
+ capabilities: { minVersion: 58 },
15
16
  args: {
16
17
  ...outputFlags,
17
18
  ...profileFlag,
@@ -0,0 +1,79 @@
1
+ import { MetabaseError, NetworkError, TimeoutError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { HttpError, createClient, probeServer } from "./runtime-Dmv5VtUK.mjs";
3
+ import { z } from "zod";
4
+
5
+ //#region src/domain/user.ts
6
+ const CurrentUser = z.object({
7
+ id: z.number().int(),
8
+ email: z.email(),
9
+ common_name: z.string(),
10
+ is_superuser: z.boolean()
11
+ }).loose();
12
+ const CurrentUserCompact = CurrentUser.pick({
13
+ id: true,
14
+ email: true,
15
+ common_name: true,
16
+ is_superuser: true
17
+ }).strip();
18
+
19
+ //#endregion
20
+ //#region src/core/auth/verify.ts
21
+ const VERIFY_TIMEOUT_MS = 15e3;
22
+ const USER_PATH = "/api/user/current";
23
+ async function verifyAndProbe(url, apiKey) {
24
+ const client = createClient({
25
+ url,
26
+ apiKey
27
+ });
28
+ const userPromise = client.requestParsed(CurrentUser, USER_PATH, {
29
+ timeoutMs: VERIFY_TIMEOUT_MS,
30
+ retries: 0
31
+ });
32
+ const serverPromise = probeServer(client);
33
+ const [userResult, serverResult] = await Promise.allSettled([userPromise, serverPromise]);
34
+ if (userResult.status === "rejected") return failure(userResult.reason, "user");
35
+ if (serverResult.status === "rejected") return failure(serverResult.reason, "server");
36
+ const probed = {
37
+ id: userResult.value.id,
38
+ name: userResult.value.common_name,
39
+ isAdmin: userResult.value.is_superuser
40
+ };
41
+ return {
42
+ ok: true,
43
+ user: probed,
44
+ server: serverResult.value
45
+ };
46
+ }
47
+ function failure(error, which) {
48
+ if (error instanceof HttpError) {
49
+ const kind = error.status === 401 || error.status === 403 ? "auth" : "server";
50
+ return {
51
+ ok: false,
52
+ which,
53
+ kind,
54
+ status: error.status,
55
+ message: error.userMessage
56
+ };
57
+ }
58
+ if (error instanceof NetworkError || error instanceof TimeoutError) return {
59
+ ok: false,
60
+ which,
61
+ kind: "network",
62
+ message: error.userMessage
63
+ };
64
+ if (error instanceof MetabaseError) return {
65
+ ok: false,
66
+ which,
67
+ kind: "server",
68
+ message: error.userMessage
69
+ };
70
+ return {
71
+ ok: false,
72
+ which,
73
+ kind: "server",
74
+ message: errorMessage(error)
75
+ };
76
+ }
77
+
78
+ //#endregion
79
+ export { verifyAndProbe };
@@ -1,5 +1,5 @@
1
- import { pollUntil } from "./poll-p9Y7-JEQ.mjs";
2
- import { Workspace } from "./workspace-DUfqhPm5.mjs";
1
+ import { pollUntil } from "./poll-DHKDpCiq.mjs";
2
+ import { Workspace } from "./workspace-BBXJczJK.mjs";
3
3
 
4
4
  //#region src/commands/workspace/database/wait.ts
5
5
  async function waitForDatabaseProvisioned(client, workspaceId, databaseId, schedule) {
@@ -1,11 +1,11 @@
1
- import "./package-DFUprkSZ.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
6
- import { parseId } from "./parse-id-CysSaCbf.mjs";
7
- import { SyncTaskOrIdle, pollSyncTask, syncTaskIdleView, syncTaskView, throwIfFailedTask } from "./poll-task-BQe0NvJZ.mjs";
8
- import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-p9Y7-JEQ.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
+ import { SyncTaskOrIdle, pollSyncTask, syncTaskIdleView, syncTaskView, throwIfFailedTask } from "./poll-task-Cooi0lQV.mjs";
8
+ import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-DHKDpCiq.mjs";
9
9
 
10
10
  //#region src/commands/git-sync/wait.ts
11
11
  const WaitResult = SyncTaskOrIdle;
@@ -14,6 +14,10 @@ var wait_default = defineMetabaseCommand({
14
14
  name: "wait",
15
15
  description: "Poll the current git-sync task until it reaches a terminal status"
16
16
  },
17
+ capabilities: {
18
+ minVersion: 60,
19
+ tokenFeature: "remote_sync"
20
+ },
17
21
  args: {
18
22
  ...outputFlags,
19
23
  ...profileFlag,
@@ -1,13 +1,8 @@
1
- import { parseId } from "./parse-id-CysSaCbf.mjs";
2
- import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-p9Y7-JEQ.mjs";
1
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
2
+ import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-DHKDpCiq.mjs";
3
3
 
4
4
  //#region src/commands/wait-flags.ts
5
- const waitFlags = {
6
- wait: {
7
- type: "boolean",
8
- description: "Poll until the operation reaches a terminal state",
9
- default: false
10
- },
5
+ const waitScheduleFlags = {
11
6
  timeout: {
12
7
  type: "string",
13
8
  description: "Polling timeout in ms (used with --wait)",
@@ -19,6 +14,22 @@ const waitFlags = {
19
14
  default: String(DEFAULT_INTERVAL_MS)
20
15
  }
21
16
  };
17
+ const waitFlags = {
18
+ wait: {
19
+ type: "boolean",
20
+ description: "Poll until the operation reaches a terminal state",
21
+ default: false
22
+ },
23
+ ...waitScheduleFlags
24
+ };
25
+ const gitSyncWaitFlags = {
26
+ wait: {
27
+ type: "boolean",
28
+ description: "Poll the resulting task until it reaches a terminal status (default: true; pass --no-wait to fire-and-forget)",
29
+ default: true
30
+ },
31
+ ...waitScheduleFlags
32
+ };
22
33
  function parseWaitFlags(args) {
23
34
  const interval = args.interval ?? String(DEFAULT_INTERVAL_MS);
24
35
  const timeout = args.timeout ?? String(DEFAULT_TIMEOUT_MS);
@@ -32,4 +43,4 @@ function parseWaitFlags(args) {
32
43
  }
33
44
 
34
45
  //#endregion
35
- export { parseWaitFlags, waitFlags };
46
+ export { gitSyncWaitFlags, parseWaitFlags, waitFlags };
@@ -0,0 +1,26 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/workspace/index.ts
4
+ var workspace_default = defineCommand({
5
+ meta: {
6
+ name: "workspace",
7
+ alias: "workspaces",
8
+ description: "Manage Metabase workspaces (workspace-manager)"
9
+ },
10
+ subCommands: {
11
+ list: () => import("./list-zSO0DMw-.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-CHF313Qg.mjs").then((mod) => mod.default),
13
+ database: () => import("./database-CIXwHKjK.mjs").then((mod) => mod.default),
14
+ start: () => import("./start-3PX3ahjT.mjs").then((mod) => mod.default),
15
+ stop: () => import("./stop-CQ0XGrN8.mjs").then((mod) => mod.default),
16
+ delete: () => import("./delete-CM3jnAeQ.mjs").then((mod) => mod.default),
17
+ logs: () => import("./logs-CywPikkL.mjs").then((mod) => mod.default),
18
+ url: () => import("./url-DWaT6WIZ.mjs").then((mod) => mod.default),
19
+ credentials: () => import("./credentials-dzeq7ckm.mjs").then((mod) => mod.default),
20
+ ps: () => import("./ps-DEroLgbI.mjs").then((mod) => mod.default),
21
+ license: () => import("./license-Dxarh-gG.mjs").then((mod) => mod.default)
22
+ }
23
+ });
24
+
25
+ //#endregion
26
+ export { workspace_default as default };
@@ -1,5 +1,5 @@
1
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
2
- import { parseYaml, stringifyYaml } from "./yaml-ECiog374.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { parseYaml, stringifyYaml } from "./yaml-YTQiYJ9s.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomBytes } from "node:crypto";
5
5
 
@@ -1,4 +1,4 @@
1
- import { ConfigError, ValidationError, errorMessage } from "./predicates-CGO17Q15.mjs";
1
+ import { ConfigError, ValidationError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
2
2
  import { YAMLParseError, parse, stringify } from "yaml";
3
3
 
4
4
  //#region src/runtime/yaml.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metabase/cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Metabase CLI",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
@@ -32,6 +32,7 @@
32
32
  "e2e:up": "docker compose -f tests/e2e/docker-compose.yml up -d --wait",
33
33
  "e2e:down": "docker compose -f tests/e2e/docker-compose.yml down -v",
34
34
  "e2e:bootstrap": "bun tests/e2e/setup/bootstrap.ts",
35
+ "e2e:matrix": "bun scripts/e2e-matrix.ts",
35
36
  "e2e:logs": "docker compose -f tests/e2e/docker-compose.yml logs -f metabase",
36
37
  "typecheck": "tsc --noEmit",
37
38
  "lint": "oxlint",