@metabase/cli 0.3.2 → 0.4.0

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 (291) hide show
  1. package/dist/{add-collection-BjVAdZ1n.mjs → add-collection-CC6KSwjX.mjs} +5 -5
  2. package/dist/{alert-DCLhfwdv.mjs → alert-Dt6La9tK.mjs} +7 -7
  3. package/dist/{alerts-DRin_wt2.mjs → alerts-ClKnJqgB.mjs} +6 -6
  4. package/dist/{append-DQ9rPJHZ.mjs → append-pnaQWP_A.mjs} +4 -4
  5. package/dist/{archive-D6xzHaM3.mjs → archive-By1pLYtO.mjs} +3 -3
  6. package/dist/{archive-xcgoVPwv.mjs → archive-CLu2TGW5.mjs} +5 -5
  7. package/dist/{archive-HeRygdKz2.mjs → archive-COP9joWU.mjs} +4 -4
  8. package/dist/{archive-COFQAHAL.mjs → archive-CSnBFcQ_.mjs} +3 -3
  9. package/dist/{archive-1YVo-Wsu.mjs → archive-Ct1eyolN.mjs} +3 -3
  10. package/dist/{archive-_c-ISZmi.mjs → archive-D7nAQcCz.mjs} +3 -3
  11. package/dist/{archive-BzVxRqpL.mjs → archive-DEDA48w3.mjs} +5 -5
  12. package/dist/{archive-BVRKE9Ev.mjs → archive-DJAsSzCz.mjs} +5 -5
  13. package/dist/{archive-BPCgmLcV.mjs → archive-DtabbPUk.mjs} +4 -4
  14. package/dist/{archive-o5cWV3vZ.mjs → archive-YNpa8daf.mjs} +3 -3
  15. package/dist/{archive-D3yPvUtz.mjs → archive-ewitrKdx.mjs} +5 -5
  16. package/dist/{auth-DJn5T6zA.mjs → auth-DdLhXCn-.mjs} +5 -5
  17. package/dist/body-Dd-TwYYL.mjs +17 -0
  18. package/dist/branch-flag-pFQPNYKr.mjs +9 -0
  19. package/dist/{branches-CUyPxeeW.mjs → branches-ZvGNhed6.mjs} +3 -3
  20. package/dist/breaking-BLswgvkA.mjs +36 -0
  21. package/dist/broken-BN0nL2hf.mjs +37 -0
  22. package/dist/bulk-discard-values-DFJUjSnE.mjs +49 -0
  23. package/dist/bulk-edit-Brqr67bu.mjs +53 -0
  24. package/dist/bulk-rescan-values-DndXXi2N.mjs +28 -0
  25. package/dist/bulk-sync-schema-mO-t2QlL.mjs +28 -0
  26. package/dist/{cancel-BNuVls58.mjs → cancel-DP03dXBf.mjs} +3 -3
  27. package/dist/{cancel-task-DUmlQQpi.mjs → cancel-task-CELBfBPP.mjs} +4 -4
  28. package/dist/{card-voh1k4hl.mjs → card-Bv4ZN0oV.mjs} +5 -3
  29. package/dist/card-CFd-GUEM.mjs +25 -0
  30. package/dist/{card-CEkp1mcI.mjs → card-DSrgU7lT.mjs} +1 -1
  31. package/dist/{cards-_gbvw3wp.mjs → cards-Cn2ywFTJ.mjs} +6 -6
  32. package/dist/cli.mjs +410 -100
  33. package/dist/{client-BnK0evYf.mjs → client-ToLiPu9q.mjs} +316 -316
  34. package/dist/{collection-DYM0p3Xl.mjs → collection-BG3Ksea-.mjs} +1 -1
  35. package/dist/collection-BKNShKcY.mjs +21 -0
  36. package/dist/{collection-BxdPxD38.mjs → collection-D3KXhvnc.mjs} +7 -5
  37. package/dist/{collection-namespace-DM90lA8C.mjs → collection-namespace-CWW6hZxK.mjs} +2 -2
  38. package/dist/{content-translation-CqB3peU9.mjs → content-translation-C19SqZWp.mjs} +3 -3
  39. package/dist/copy-BGK8Wz6d.mjs +55 -0
  40. package/dist/copy-COLUuiuF.mjs +36 -0
  41. package/dist/copy-flags-eU8aa0zj.mjs +32 -0
  42. package/dist/{create-CnJKj9Nl.mjs → create-B2tuInV9.mjs} +4 -4
  43. package/dist/{create-D4Y69cDF.mjs → create-B3TKri1E.mjs} +4 -4
  44. package/dist/{create-BSvTs-EV.mjs → create-B4gXKDRr.mjs} +3 -3
  45. package/dist/create-B63JphYe.mjs +34 -0
  46. package/dist/{create-IFjwHs0G.mjs → create-BH6kLjHS.mjs} +4 -4
  47. package/dist/{create-BIUVvIGH.mjs → create-BwifyhyL.mjs} +3 -3
  48. package/dist/{create-CwXUMOMd.mjs → create-Colz5bOO.mjs} +3 -3
  49. package/dist/{create-Cm9Z-rfe2.mjs → create-CulUZgN1.mjs} +4 -4
  50. package/dist/{create-DNx9TGHs.mjs → create-Cxuqr3kT.mjs} +6 -6
  51. package/dist/{create-CUHpxANR.mjs → create-CzW_UTE7.mjs} +6 -6
  52. package/dist/{create-BMKuihoI.mjs → create-DNR8RMvV.mjs} +6 -6
  53. package/dist/{create-DMVw9nrZ.mjs → create-DSHeoV7e.mjs} +4 -4
  54. package/dist/{create-DVo8-IzZ.mjs → create-DWbW2WSc.mjs} +6 -6
  55. package/dist/{create-va8bByVt.mjs → create-Dx8nfjGs.mjs} +3 -3
  56. package/dist/{create-B7S5fCkD.mjs → create-XGomrTz5.mjs} +5 -5
  57. package/dist/{create-branch-Cw-uXows.mjs → create-branch-DxL7KUZp.mjs} +4 -4
  58. package/dist/{create-B48rmY8v.mjs → create-g1f2yJ4s.mjs} +3 -3
  59. package/dist/{csv-CaKx1oFZ.mjs → csv-C6TEfLMi.mjs} +4 -4
  60. package/dist/{current-task-lGh69Z1i.mjs → current-task-CHs0zNFM.mjs} +4 -4
  61. package/dist/dashboard-AWrXqQ7a.mjs +35 -0
  62. package/dist/{dashboard-D0hwTC-f.mjs → dashboard-Phz3XpRM.mjs} +2 -1
  63. package/dist/{dashboard-DgK81azj.mjs → dashboard-XSTr9QCr.mjs} +6 -2
  64. package/dist/database-D-CRyRIv.mjs +45 -0
  65. package/dist/{database-C3E9PZSx.mjs → database-MlUPpitM.mjs} +1 -1
  66. package/dist/dataset-p5oNPQgL.mjs +66 -0
  67. package/dist/{db-BRHPjshe.mjs → db-BFSeETMO.mjs} +7 -7
  68. package/dist/{delete-DMETa-37.mjs → delete-BUKgSJhh.mjs} +4 -4
  69. package/dist/{delete-CQWCfqHf.mjs → delete-CPBByycV.mjs} +4 -4
  70. package/dist/{delete-Ci0aDYpf.mjs → delete-Cucqn4-V.mjs} +4 -4
  71. package/dist/{delete-BxBadE3q.mjs → delete-D79TlpcE.mjs} +4 -4
  72. package/dist/delete-DZJxBmdU.mjs +44 -0
  73. package/dist/{delete-G6EiGn2Q.mjs → delete-DndykJn2.mjs} +4 -4
  74. package/dist/delete-runtime-BbmRg_in.mjs +55 -0
  75. package/dist/{delete-table-N4rZtt1T.mjs → delete-table-CbsWcjh5.mjs} +4 -4
  76. package/dist/{dependencies-edN0P1SS.mjs → dependencies-B-880phi.mjs} +5 -5
  77. package/dist/dependency-DBUJwXqv.mjs +15 -0
  78. package/dist/dependency-DKSjKT8P.mjs +165 -0
  79. package/dist/dependency-DSxKm9oS.mjs +111 -0
  80. package/dist/dependents-C_FDnpZs.mjs +52 -0
  81. package/dist/{dirty-U51bMoCP.mjs → dirty-B-Is68--.mjs} +5 -5
  82. package/dist/discard-values-yzH-kIsr.mjs +55 -0
  83. package/dist/document-BRaba87v.mjs +20 -0
  84. package/dist/{document-CA0Q6lqu.mjs → document-C18b5rM6.mjs} +1 -1
  85. package/dist/{document-BHpLJbKU.mjs → document-DFCj1Az_.mjs} +2 -1
  86. package/dist/{download-BJA6k-e6.mjs → download-DluF-vnU.mjs} +2 -2
  87. package/dist/{eid-BtlRU1E0.mjs → eid-Dz-mP40j.mjs} +11 -10
  88. package/dist/entity-CA4zfRt4.mjs +20 -0
  89. package/dist/entry-flags-7x7bIyOQ.mjs +42 -0
  90. package/dist/{events-B5rnOo-L.mjs → events-2sOk6H09.mjs} +4 -4
  91. package/dist/export-BKkAJOFb.mjs +74 -0
  92. package/dist/export-flags-NiZ7C3Gm.mjs +81 -0
  93. package/dist/export-preflight-CwJ_3-iX.mjs +35 -0
  94. package/dist/{field-CcN4oZy6.mjs → field-5nivEfd6.mjs} +33 -3
  95. package/dist/field-BARgq5I9.mjs +21 -0
  96. package/dist/field-wmN6raOG.mjs +128 -0
  97. package/dist/{fields-zQ6O_W_H.mjs → fields-Bod0s_uV.mjs} +6 -6
  98. package/dist/filter-flags-BYcbB85j.mjs +71 -0
  99. package/dist/fks-IUw66K_Q.mjs +36 -0
  100. package/dist/{get-BDrmBZ1z.mjs → get-B8DUMrCw.mjs} +5 -5
  101. package/dist/{get-is8x5f2n.mjs → get-BGqvoGQM.mjs} +3 -3
  102. package/dist/{get-CekXFP3x.mjs → get-BSUsfysk.mjs} +3 -3
  103. package/dist/{get-CeSQptdl.mjs → get-BXsLkoit.mjs} +5 -5
  104. package/dist/{get-DhpMuTSt.mjs → get-BXssHyJ1.mjs} +5 -5
  105. package/dist/get-Bct52yPw.mjs +36 -0
  106. package/dist/{get-DXwlZjw0.mjs → get-Besqwy32.mjs} +3 -3
  107. package/dist/{get-BLjcCXp8.mjs → get-BfSX-OeS.mjs} +3 -3
  108. package/dist/{get-BLcS4il2.mjs → get-Biy4gOzu2.mjs} +3 -3
  109. package/dist/{get-BSoMWp4t2.mjs → get-CYIeiTZ9.mjs} +4 -4
  110. package/dist/{get-CwiJWeH4.mjs → get-CaEiQnSw.mjs} +4 -4
  111. package/dist/{get-xPv7e5Ez.mjs → get-Cl81y0Md.mjs} +5 -5
  112. package/dist/{get-Cf6a4fFN.mjs → get-D1NjMXAH.mjs} +4 -4
  113. package/dist/{get-EFsmL4le.mjs → get-D2cPuOPR.mjs} +5 -5
  114. package/dist/{get-Dg-S07ri.mjs → get-DITlshJH.mjs} +3 -3
  115. package/dist/{get-CTp5l7aU.mjs → get-DLyg6Al9.mjs} +3 -3
  116. package/dist/{get-93wuhTn2.mjs → get-DQZfaVNq.mjs} +4 -4
  117. package/dist/{get-CG6G-mzV.mjs → get-DtBqoGTa.mjs} +5 -5
  118. package/dist/{get-DC_huYD8.mjs → get-_ik_5_lQ.mjs} +5 -5
  119. package/dist/{get-run-DwY4sFGy.mjs → get-run-CEc_tr5b.mjs} +4 -4
  120. package/dist/{git-sync-BwBRmEhE.mjs → git-sync-COokpYgc.mjs} +12 -3
  121. package/dist/git-sync-DKcaddkV.mjs +29 -0
  122. package/dist/git-sync-DspFahwV.mjs +165 -0
  123. package/dist/glossary-BlNCrYbw.mjs +30 -0
  124. package/dist/glossary-CWIX8Zh6.mjs +14 -0
  125. package/dist/glossary-LmZWwCNP.mjs +21 -0
  126. package/dist/graph-f6Bp1e8U.mjs +34 -0
  127. package/dist/{group-YQQ5GIcP.mjs → group-bpD_KcjA.mjs} +1 -1
  128. package/dist/{has-remote-changes-DE2_14FK.mjs → has-remote-changes-B8MmN6yh.mjs} +4 -4
  129. package/dist/{import-Cs7wk058.mjs → import-Bhq15KgP.mjs} +19 -8
  130. package/dist/{input-DEvkIjGr.mjs → input-D8qW-KtR.mjs} +6 -2
  131. package/dist/{is-dirty-XqDfqXGi.mjs → is-dirty-CAsVuVx8.mjs} +2 -2
  132. package/dist/{items-BloAjPwA.mjs → items-BZJomiDE.mjs} +8 -8
  133. package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
  134. package/dist/{library-Dgq_5BFh.mjs → library-B7wDH-Nc.mjs} +5 -5
  135. package/dist/{library-PGCfm0UA.mjs → library-BOv5SY24.mjs} +1 -1
  136. package/dist/{library-BPIzb3K_.mjs → library-Ck0EK5bi.mjs} +4 -2
  137. package/dist/{list-CZCaqPoo.mjs → list-B2uUl26x.mjs} +6 -6
  138. package/dist/{list-3ErmGdY0.mjs → list-B4luDSYj.mjs} +6 -6
  139. package/dist/{list-D04uiS3F.mjs → list-B8ND9t2h.mjs} +3 -3
  140. package/dist/{list-CghNKfYJ.mjs → list-BT5t8ZOl.mjs} +4 -4
  141. package/dist/{list-VzrtA9lt.mjs → list-BT7xiUQe.mjs} +3 -3
  142. package/dist/{list-D9d5ocYi.mjs → list-BWFCv_zk.mjs} +5 -5
  143. package/dist/{list-DboUvg-Y.mjs → list-BtZVe1Nq.mjs} +6 -6
  144. package/dist/{list-sdCIS2Df.mjs → list-BwdSG-P5.mjs} +5 -5
  145. package/dist/{list-yV6CyPzn.mjs → list-C-A-2HFq.mjs} +3 -3
  146. package/dist/list-C9x--9Jq.mjs +101 -0
  147. package/dist/{list-CUJ1wem9.mjs → list-CCdXig7b.mjs} +4 -4
  148. package/dist/{list-BfLo1xI8.mjs → list-CJDFoOHb.mjs} +3 -3
  149. package/dist/{list-Bzm5mXRo.mjs → list-CLFu3mQB.mjs} +3 -3
  150. package/dist/{list-BZnf3RmA.mjs → list-Cd40Kr0R.mjs} +3 -3
  151. package/dist/{list-CUXlZiS1.mjs → list-Cj_mTxbY.mjs} +4 -4
  152. package/dist/{list-f8Csdjyc.mjs → list-CtS50R7m.mjs} +5 -5
  153. package/dist/{list-vsXIMssK.mjs → list-CvZyTwmV.mjs} +5 -5
  154. package/dist/list-DcnNlYQA.mjs +35 -0
  155. package/dist/{list-DuJezLm_.mjs → list-DtgbtE3_.mjs} +3 -3
  156. package/dist/{login-Vw51Gts5.mjs → login-Bi_nGMJ9.mjs} +6 -6
  157. package/dist/{logout-BDIqoVhv.mjs → logout-CiHQJWTu.mjs} +2 -2
  158. package/dist/{measure-LY9Tp9QZ.mjs → measure-D2qq5e8f.mjs} +6 -6
  159. package/dist/moderation-review-BdqEH6N1.mjs +31 -0
  160. package/dist/{notification-DVrLkjFT.mjs → notification-DOYdl0ao.mjs} +1 -1
  161. package/dist/{parameter-values-DWjmO7Ai.mjs → parameter-values-CZow98nb.mjs} +3 -3
  162. package/dist/{parse-enum-Dc0dMZ3P.mjs → parse-enum-CLIXMsd8.mjs} +1 -1
  163. package/dist/parse-id-BW09NysN.mjs +13 -0
  164. package/dist/{parse-ref-DTDld_LJ.mjs → parse-ref-Cw5fa4FI.mjs} +1 -1
  165. package/dist/parse-text-T0lTXzTZ.mjs +11 -0
  166. package/dist/{path-BUUAGYO5.mjs → path-K6LPLYPb.mjs} +4 -4
  167. package/dist/{poll-CZeXepUQ.mjs → poll-Dz4tUm2f.mjs} +2 -2
  168. package/dist/{preflight-DcULqq8E.mjs → preflight-CX6cqB90.mjs} +3 -3
  169. package/dist/{process-CTrfxxaC.mjs → process-D0HdqZ3r.mjs} +1 -1
  170. package/dist/{publish-qVFmJQ1E.mjs → publish-COatW4Un.mjs} +4 -4
  171. package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
  172. package/dist/query-BJXTIDhy.mjs +328 -0
  173. package/dist/{query-Cq1lmqL5.mjs → query-DmvkyDfo.mjs} +14 -33
  174. package/dist/remapping-CPAvDKHV.mjs +53 -0
  175. package/dist/{remove-collection-DBqh2Lqm.mjs → remove-collection-Bg-sNX3U.mjs} +5 -5
  176. package/dist/{render-Gx1hR7IF.mjs → render-BSfDD6ip.mjs} +2 -2
  177. package/dist/{replace-CujInVY9.mjs → replace-RCHeZLUT.mjs} +4 -4
  178. package/dist/{rescan-values-HypqBCSK.mjs → rescan-values-CpDGYZvf.mjs} +5 -5
  179. package/dist/rescan-values-PeMnpaFY.mjs +32 -0
  180. package/dist/{run-DEkQSOQa.mjs → run-CaQ7kubO.mjs} +3 -3
  181. package/dist/{run-b3jyF29q.mjs → run-DkRkZRgf.mjs} +4 -4
  182. package/dist/{runs-GHqHLGy4.mjs → runs-BDjoVJ0P.mjs} +5 -5
  183. package/dist/{runtime-nCPku2nN.mjs → runtime-CZ5zh32z.mjs} +21 -82
  184. package/dist/{schema-tables-B5L05Y1L.mjs → schema-tables-C2qjLcPq.mjs} +6 -6
  185. package/dist/{schemas-Clx26p_4.mjs → schemas-D8hfNduk.mjs} +4 -4
  186. package/dist/search-BrQQuNmh.mjs +131 -0
  187. package/dist/search-CnTXKJgx.mjs +85 -0
  188. package/dist/{segment-DiRJcbam.mjs → segment-Bi6eqj3e.mjs} +6 -6
  189. package/dist/{send-DIHkDNBN.mjs → send-CAjgVNlA.mjs} +3 -3
  190. package/dist/{set-D77qUZML.mjs → set-BXTkYWid.mjs} +4 -4
  191. package/dist/{set-active-DCdFgD0O.mjs → set-active-CBQVCePU.mjs} +3 -3
  192. package/dist/set-sensitivity-D39kGTob.mjs +57 -0
  193. package/dist/{setting-DR9bj232.mjs → setting-CPkvkc4H.mjs} +4 -4
  194. package/dist/{setup-DGa2LLEp.mjs → setup-Be3xDXHi.mjs} +3 -3
  195. package/dist/{signal-k7cm5N6h.mjs → signal-CxWeLszu.mjs} +1 -1
  196. package/dist/{skill-list-DAvGGHzS.mjs → skill-list-CBGq30sI.mjs} +2 -2
  197. package/dist/{skills-CqtNuSXM.mjs → skills-CJ9eXouJ.mjs} +2 -2
  198. package/dist/{skills-CCn7cyMP.mjs → skills-DyiLycMY.mjs} +3 -3
  199. package/dist/snippet-QirK70R_.mjs +19 -0
  200. package/dist/{stash-BTtsV0AG.mjs → stash-BVN3s5N_.mjs} +6 -6
  201. package/dist/{status-CW7Dt-nV.mjs → status-BtbMmIWo.mjs} +7 -7
  202. package/dist/{status-XgSS3StV.mjs → status-CxP6w3aL.mjs} +3 -3
  203. package/dist/{subscription-CofRU47d.mjs → subscription-Dr-YHARg.mjs} +6 -6
  204. package/dist/{subscriptions-DCuuPF6U.mjs → subscriptions-8tM8TTeQ.mjs} +6 -6
  205. package/dist/{summary-uGlgKE3C.mjs → summary-DKx6ptQe.mjs} +5 -5
  206. package/dist/sync-schema-B8RY0Ra4.mjs +32 -0
  207. package/dist/{sync-schema-Cu9rD3eH.mjs → sync-schema-kNriXZjG.mjs} +6 -6
  208. package/dist/sync-task-CXFoqlpF.mjs +53 -0
  209. package/dist/table-CZnT6d9x.mjs +26 -0
  210. package/dist/{table-DfuY0N8e.mjs → table-Ci6bhZkb.mjs} +35 -12
  211. package/dist/table-CxvaDiIZ.mjs +155 -0
  212. package/dist/table-selector-flags-1bYkAKld.mjs +42 -0
  213. package/dist/text-DaNkPRwt.mjs +6 -0
  214. package/dist/timeline-CUzx6uXi.mjs +21 -0
  215. package/dist/{timeline-event-D-h0A_oh.mjs → timeline-event-DpNm4dkn.mjs} +6 -6
  216. package/dist/{transform-CtqB1WYo.mjs → transform-CNBIV7No.mjs} +1 -1
  217. package/dist/transform-g4-HHzDp.mjs +28 -0
  218. package/dist/transform-job-DqBtnTrG.mjs +22 -0
  219. package/dist/{transform-tag-BLp_p9J-.mjs → transform-tag-nTb0Ivpj.mjs} +5 -5
  220. package/dist/{transforms-n2IwEcbU.mjs → transforms-BSsAfwAg.mjs} +5 -5
  221. package/dist/tree-lMvw1jnZ.mjs +34 -0
  222. package/dist/{unpublish-DVQCAa3g.mjs → unpublish-CYFDd828.mjs} +3 -3
  223. package/dist/unreferenced-8Xdq76Kw.mjs +36 -0
  224. package/dist/{update-oQeQyqKO.mjs → update-6P_GYCLT.mjs} +5 -5
  225. package/dist/{update-DFdBeJwc.mjs → update-B28EJzrx.mjs} +13 -8
  226. package/dist/{update-DffrdV4b.mjs → update-BDunZa7G.mjs} +4 -4
  227. package/dist/{update-DKO9HF1f.mjs → update-BT2yNB_g.mjs} +6 -6
  228. package/dist/{update-rFRPLlb6.mjs → update-BnMUSFYZ.mjs} +4 -4
  229. package/dist/update-BwrYeKso.mjs +41 -0
  230. package/dist/{update-B7CikkI0.mjs → update-C7DEMiu-.mjs} +7 -7
  231. package/dist/{update-CAsqNhDC.mjs → update-CITzAFG8.mjs} +4 -4
  232. package/dist/update-CLl8tE20.mjs +181 -0
  233. package/dist/{update-C05J2nZ2.mjs → update-CM5uuhjB.mjs} +4 -4
  234. package/dist/{update-ChpOukqq.mjs → update-CQXcsvaa.mjs} +5 -5
  235. package/dist/{update-D4ggtuG4.mjs → update-Cs2zv_L2.mjs} +7 -7
  236. package/dist/{update-NGq0yXZk.mjs → update-D--Fw7-_.mjs} +5 -5
  237. package/dist/{update-D9H6Lh5U.mjs → update-D9p0N8ky.mjs} +4 -4
  238. package/dist/{update-CKDRuduL.mjs → update-DAzRx0of.mjs} +5 -5
  239. package/dist/{update-CnkPYL2i.mjs → update-D_DCOOAB.mjs} +6 -6
  240. package/dist/{update-DScUzKLI.mjs → update-_sYM1GuU.mjs} +7 -7
  241. package/dist/{update-dashcard-DvPqLJ3N.mjs → update-dashcard-VNnIqHDI.mjs} +6 -6
  242. package/dist/{upgrade-BRgw0fvn.mjs → upgrade-Tj_reACv.mjs} +4 -4
  243. package/dist/upload-BKxOpSz3.mjs +13 -0
  244. package/dist/{upload-Do2PBSeH.mjs → upload-C2fhpKkP.mjs} +2 -2
  245. package/dist/{upload-BrfbcbBW.mjs → upload-Dg91ldGg.mjs} +3 -3
  246. package/dist/{uuid-B4eij1d7.mjs → uuid-Blpv_e0S.mjs} +2 -2
  247. package/dist/{validate-xR_MHBNR.mjs → validate-D7e110oU.mjs} +1 -1
  248. package/dist/{validate-query-D6_ad-Gi.mjs → validate-query-C7LuKiUT.mjs} +2 -2
  249. package/dist/{values-xgOftPq5.mjs → values-PonkbYAK.mjs} +5 -5
  250. package/dist/verify-DixUBbd2.mjs +38 -0
  251. package/dist/verify-Dv7ER11c.mjs +38 -0
  252. package/dist/{verify-DTOA_wVM.mjs → verify-Mpb65a5v.mjs} +3 -3
  253. package/dist/verify-flags-CMpRkMPa.mjs +58 -0
  254. package/dist/{wait-BjeFgR13.mjs → wait-CaH6XHQV.mjs} +6 -6
  255. package/dist/{wait-flags-BCeCnaz3.mjs → wait-flags-rUU4NUrv.mjs} +2 -2
  256. package/dist/{window-DSb1tqSe.mjs → window-CI_QD04s.mjs} +1 -1
  257. package/package.json +1 -1
  258. package/skill-data/core/SKILL.md +18 -11
  259. package/skill-data/dashboard/SKILL.md +1 -1
  260. package/skill-data/document/SKILL.md +12 -1
  261. package/skill-data/git-sync/SKILL.md +61 -9
  262. package/skill-data/mbql/SKILL.md +5 -0
  263. package/skill-data/metadata/SKILL.md +36 -6
  264. package/dist/body-Cu94pH4P.mjs +0 -17
  265. package/dist/card-ByOzVxpI.mjs +0 -24
  266. package/dist/collection-BGbW7u_Q.mjs +0 -20
  267. package/dist/dashboard-Bzjz2v6u.mjs +0 -33
  268. package/dist/database-JtHTqSpq.mjs +0 -26
  269. package/dist/delete-runtime-BKEzJn22.mjs +0 -49
  270. package/dist/document-DqJ7Cysa.mjs +0 -19
  271. package/dist/export-DO2josC0.mjs +0 -63
  272. package/dist/field-CHZByaXa.mjs +0 -18
  273. package/dist/field-fDtIrY6D.mjs +0 -80
  274. package/dist/get-yHIEezeG.mjs +0 -31
  275. package/dist/git-sync-NhfLSZA6.mjs +0 -28
  276. package/dist/git-sync-TjX1r_wF.mjs +0 -136
  277. package/dist/list-DgteFn01.mjs +0 -34
  278. package/dist/parse-id-whJX4DAb.mjs +0 -10
  279. package/dist/query-BPtIy79s.mjs +0 -114
  280. package/dist/query-result-E4Q-Gra6.mjs +0 -15
  281. package/dist/search-DxiuY5EV.mjs +0 -97
  282. package/dist/selectors-rEFuyXPZ.mjs +0 -35
  283. package/dist/snippet-g9JTDxqu.mjs +0 -19
  284. package/dist/sync-task-BXeWuARG.mjs +0 -37
  285. package/dist/table-C6h4tIRw.mjs +0 -37
  286. package/dist/table-Di-EY7pg.mjs +0 -18
  287. package/dist/timeline-D7EsWZm6.mjs +0 -21
  288. package/dist/transform-8XK1LIgC.mjs +0 -28
  289. package/dist/transform-job-CTizQkWy.mjs +0 -22
  290. package/dist/tree-cqxiDh2b.mjs +0 -26
  291. package/dist/upload-VXBFKzLT.mjs +0 -13
package/dist/cli.mjs CHANGED
@@ -189,18 +189,283 @@ function toAliasArray(alias) {
189
189
  if (alias === void 0) return [];
190
190
  return Array.isArray(alias) ? alias : [alias];
191
191
  }
192
- function normalizeFlag(value) {
193
- return value.replace(/^-+/, "").replace(/-/g, "").toLowerCase();
194
- }
195
- function flagConsumesValue(token, argsDef) {
196
- if (token.includes("=")) return false;
197
- const name = normalizeFlag(token);
192
+ const NEGATION_PREFIX = "--no-";
193
+ const INLINE_VALUE = "=";
194
+ const LONG_PREFIX = "--";
195
+ const SHORT_PREFIX = "-";
196
+ const SHORT_FLAG_LENGTH = 2;
197
+ const WORD_SEPARATORS = /* @__PURE__ */ new Set([
198
+ "-",
199
+ "_",
200
+ "/",
201
+ "."
202
+ ]);
203
+ const NEGATIVE_NUMBER = /^-\.?\d/;
204
+ const DIGIT = /\d/;
205
+ function flagSpellings(argsDef) {
206
+ const spellings = /* @__PURE__ */ new Map();
198
207
  for (const [key, def] of Object.entries(argsDef)) {
199
- if (def.type !== "string" && def.type !== "enum") continue;
200
- if (normalizeFlag(key) === name) return true;
201
- if (toAliasArray(def.alias).some((alias) => normalizeFlag(alias) === name)) return true;
208
+ if (def.type === "positional") continue;
209
+ const takes = flagTakes(def);
210
+ const aliases = "alias" in def ? toAliasArray(def.alias) : [];
211
+ const words = splitWords(key);
212
+ for (const name of /* @__PURE__ */ new Set([
213
+ key,
214
+ camelCase(words),
215
+ kebabCase(words),
216
+ ...aliases
217
+ ])) {
218
+ spellings.set(`${LONG_PREFIX}${name}`, {
219
+ key,
220
+ negated: false,
221
+ takes
222
+ });
223
+ spellings.set(`${NEGATION_PREFIX}${name}`, {
224
+ key,
225
+ negated: true,
226
+ takes
227
+ });
228
+ }
229
+ for (const letter of aliases.filter((alias) => alias.length === 1)) spellings.set(`${SHORT_PREFIX}${letter}`, {
230
+ key,
231
+ negated: false,
232
+ takes
233
+ });
234
+ }
235
+ return spellings;
236
+ }
237
+ function flagTakes(def) {
238
+ if (def.type === "string" && "list" in def && def.list === true) return "list";
239
+ return def.type === "string" || def.type === "enum" ? "value" : "nothing";
240
+ }
241
+ function parseFlagToken(token, spellings) {
242
+ const equals = token.indexOf(INLINE_VALUE);
243
+ const name = equals === -1 ? token : token.slice(0, equals);
244
+ const inlineValue = equals === -1 ? null : readInlineValue(token, name);
245
+ const flag = spellings.get(name);
246
+ if (flag !== void 0) return {
247
+ name,
248
+ flag: flag.negated && inlineValue !== null ? null : flag,
249
+ inlineValue
250
+ };
251
+ const short = name.slice(0, SHORT_FLAG_LENGTH);
252
+ const shortFlag = name.startsWith(LONG_PREFIX) ? void 0 : spellings.get(short);
253
+ if (shortFlag !== void 0 && shortFlag.takes !== "nothing") return {
254
+ name: short,
255
+ flag: shortFlag,
256
+ inlineValue: readInlineValue(token, short)
257
+ };
258
+ return {
259
+ name,
260
+ flag: null,
261
+ inlineValue
262
+ };
263
+ }
264
+ function readInlineValue(token, name) {
265
+ const start = name.startsWith(LONG_PREFIX) ? name.length + 1 : name.length;
266
+ return token.slice(start);
267
+ }
268
+ function isFlagToken(token) {
269
+ return token.startsWith(SHORT_PREFIX) && token !== SHORT_PREFIX && !NEGATIVE_NUMBER.test(token);
270
+ }
271
+ function isNegativeNumber(token) {
272
+ return NEGATIVE_NUMBER.test(token);
273
+ }
274
+ function* readArgv(rawArgs, spellings, start = 0) {
275
+ let index = start;
276
+ while (index < rawArgs.length) {
277
+ const token = rawArgs[index];
278
+ if (token === void 0) return;
279
+ if (token === "--") {
280
+ yield {
281
+ kind: "separator",
282
+ index
283
+ };
284
+ for (const [offset, rest] of rawArgs.slice(index + 1).entries()) yield {
285
+ kind: "positional",
286
+ index: index + 1 + offset,
287
+ token: rest
288
+ };
289
+ return;
290
+ }
291
+ if (!isFlagToken(token)) {
292
+ yield {
293
+ kind: "positional",
294
+ index,
295
+ token
296
+ };
297
+ index += 1;
298
+ continue;
299
+ }
300
+ const item = readFlag(rawArgs, index, parseFlagToken(token, spellings));
301
+ yield item;
302
+ index = item.end;
303
+ }
304
+ }
305
+ function readFlag(rawArgs, index, parsed) {
306
+ const { flag } = parsed;
307
+ const consumesNext = flag !== null && flag.takes !== "nothing" && !flag.negated && parsed.inlineValue === null;
308
+ const next = consumesNext ? rawArgs[index + 1] : void 0;
309
+ const end = next === void 0 ? index + 1 : index + 2;
310
+ const value = consumesNext ? next ?? null : parsed.inlineValue;
311
+ return {
312
+ kind: "flag",
313
+ index,
314
+ ...parsed,
315
+ consumesNext,
316
+ value,
317
+ end
318
+ };
319
+ }
320
+ function splitWords(name) {
321
+ const words = [];
322
+ let word = "";
323
+ let previousUpper = null;
324
+ for (const char of name) {
325
+ if (WORD_SEPARATORS.has(char)) {
326
+ words.push(word);
327
+ word = "";
328
+ previousUpper = null;
329
+ continue;
330
+ }
331
+ const upper = DIGIT.test(char) ? null : char !== char.toLowerCase();
332
+ if (previousUpper === false && upper === true) {
333
+ words.push(word);
334
+ word = char;
335
+ } else if (previousUpper === true && upper === false && word.length > 1) {
336
+ words.push(word.slice(0, -1));
337
+ word = `${word.slice(-1)}${char}`;
338
+ } else word += char;
339
+ previousUpper = upper;
202
340
  }
203
- return false;
341
+ words.push(word);
342
+ return words;
343
+ }
344
+ function camelCase(words) {
345
+ const pascal = words.map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join("");
346
+ return `${pascal.charAt(0).toLowerCase()}${pascal.slice(1)}`;
347
+ }
348
+ function kebabCase(words) {
349
+ return words.map((word) => word.toLowerCase()).join("-");
350
+ }
351
+ function parseCsv(raw) {
352
+ return raw.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
353
+ }
354
+ function parseEnumCsv(raw, schema, flagName) {
355
+ if (raw === void 0) return;
356
+ const allowed = Object.values(schema.enum).join(", ");
357
+ const parts = parseCsv(raw);
358
+ if (parts.length === 0) throw new ConfigError(`invalid ${flagName} value: "${raw}" (expected one of: ${allowed})`);
359
+ const accepted = [];
360
+ const rejected = [];
361
+ for (const part of parts) {
362
+ const result = schema.safeParse(part);
363
+ if (result.success) accepted.push(result.data);
364
+ else rejected.push(part);
365
+ }
366
+ if (rejected.length > 0) throw new ConfigError(`invalid ${flagName} value: ${rejected.join(", ")} (expected one of: ${allowed})`);
367
+ return accepted;
368
+ }
369
+ function parseEnum(raw, schema, flagName) {
370
+ if (raw === void 0 || raw === "") return;
371
+ const result = schema.safeParse(raw);
372
+ if (!result.success) throw new ConfigError(`invalid ${flagName} value: "${raw}" (expected one of: ${Object.values(schema.enum).join(", ")})`);
373
+ return result.data;
374
+ }
375
+ //#endregion
376
+ //#region src/commands/argv.ts
377
+ const BUILTIN_FLAGS = [
378
+ "--help",
379
+ "-h",
380
+ "--version",
381
+ "-v"
382
+ ];
383
+ const SHELL_SAFE_WORD = /^[\w.,:/@%+=-]+$/;
384
+ function commandSpellings(argsDef) {
385
+ const builtins = BUILTIN_FLAGS.map((flag) => [flag, {
386
+ key: flag,
387
+ negated: false,
388
+ takes: "nothing"
389
+ }]);
390
+ return new Map([...builtins, ...flagSpellings(argsDef)]);
391
+ }
392
+ function separatePositionals(rawArgs, argsDef) {
393
+ const flagTokens = [];
394
+ const positionals = [];
395
+ for (const item of readArgv(rawArgs, commandSpellings(argsDef))) if (item.kind === "flag") flagTokens.push(...rawArgs.slice(item.index, item.end));
396
+ else if (item.kind === "positional") positionals.push(item.token);
397
+ if (!positionals.some(isNegativeNumber)) return [...rawArgs];
398
+ return [
399
+ ...flagTokens,
400
+ "--",
401
+ ...positionals
402
+ ];
403
+ }
404
+ function givenFlagKeys(rawArgs, argsDef) {
405
+ const keys = /* @__PURE__ */ new Set();
406
+ for (const item of readArgv(rawArgs, flagSpellings(argsDef))) if (item.kind === "flag" && item.flag !== null && !item.flag.negated) keys.add(item.flag.key);
407
+ return keys;
408
+ }
409
+ function assertArgv(rawArgs, argsDef) {
410
+ const spellings = commandSpellings(argsDef);
411
+ const valueFlags = [];
412
+ const positionals = [];
413
+ for (const item of readArgv(rawArgs, spellings)) if (item.kind === "positional") positionals.push(item.token);
414
+ else if (item.kind === "flag") {
415
+ const valueFlag = readValueFlag(item, spellings);
416
+ if (valueFlag !== null) valueFlags.push(valueFlag);
417
+ }
418
+ assertEachGivenOnce(valueFlags);
419
+ assertPositionalCount(positionals, argsDef);
420
+ }
421
+ function readValueFlag(item, spellings) {
422
+ const { flag, name } = item;
423
+ if (flag === null) throw new ConfigError(`unknown flag: ${name}`);
424
+ if (flag.takes === "nothing") return null;
425
+ if (flag.negated) throw new ConfigError(`${name}: ${`--${name.slice(5)}`} takes a value, so it cannot be negated`);
426
+ return {
427
+ name,
428
+ flag,
429
+ value: readFlagValue(item, spellings)
430
+ };
431
+ }
432
+ function assertPositionalCount(positionals, argsDef) {
433
+ const declared = Object.entries(argsDef).filter(([, def]) => def.type === "positional").map(([name]) => `<${name}>`);
434
+ const extra = positionals[declared.length];
435
+ if (extra === void 0) return;
436
+ throw new ConfigError(`unexpected argument: "${extra}" (${declared.length === 0 ? "this command takes no positional arguments" : `this command takes ${declared.join(" ")}; quote an argument that contains spaces`})`);
437
+ }
438
+ function assertEachGivenOnce(valueFlags) {
439
+ const first = /* @__PURE__ */ new Map();
440
+ for (const repeat of valueFlags) {
441
+ const earlier = first.get(repeat.flag.key);
442
+ if (earlier === void 0) {
443
+ first.set(repeat.flag.key, repeat);
444
+ continue;
445
+ }
446
+ const also = earlier.name === repeat.name ? "" : ` (also as ${earlier.name})`;
447
+ const joined = joinedSpelling(repeat, valueFlags);
448
+ throw new ConfigError(`${repeat.name} is given more than once${also}; pass it once${joined}`);
449
+ }
450
+ }
451
+ function joinedSpelling(repeat, valueFlags) {
452
+ if (repeat.flag.takes !== "list") return "";
453
+ const joined = valueFlags.filter((valueFlag) => valueFlag.flag.key === repeat.flag.key).map((valueFlag) => valueFlag.value).join(",");
454
+ return `, as --${repeat.flag.key}=${quoteForShell(joined)}`;
455
+ }
456
+ function quoteForShell(value) {
457
+ if (SHELL_SAFE_WORD.test(value)) return value;
458
+ return `'${value.replaceAll("'", `'\\''`)}'`;
459
+ }
460
+ function readFlagValue(item, spellings) {
461
+ const { name, value, consumesNext } = item;
462
+ if (value === null || consumesNext && value === "--") throw new ConfigError(`${name} needs a value`);
463
+ if (consumesNext && readsAsFlag(value, spellings)) throw new ConfigError(`${name} needs a value, but the flag ${parseFlagToken(value, spellings).name} follows it; write ${name}=<value> for a value that starts with "-"`);
464
+ return value;
465
+ }
466
+ function readsAsFlag(value, spellings) {
467
+ if (!isFlagToken(value)) return false;
468
+ return value.startsWith("--no-") || parseFlagToken(value, spellings).flag !== null;
204
469
  }
205
470
  //#endregion
206
471
  //#region src/output/types.ts
@@ -231,7 +496,13 @@ function listEnvelopeShape(item) {
231
496
  }
232
497
  //#endregion
233
498
  //#region src/commands/flags.ts
234
- const outputFlags = {
499
+ function listFlag(def) {
500
+ return {
501
+ ...def,
502
+ list: true
503
+ };
504
+ }
505
+ const formatFlags = {
235
506
  format: {
236
507
  type: "string",
237
508
  description: "auto | json | text",
@@ -240,15 +511,18 @@ const outputFlags = {
240
511
  json: {
241
512
  type: "boolean",
242
513
  description: "Shorthand for --format json"
243
- },
514
+ }
515
+ };
516
+ const outputFlags = {
517
+ ...formatFlags,
244
518
  full: {
245
519
  type: "boolean",
246
520
  description: "Return the full object (default: compact)"
247
521
  },
248
- fields: {
522
+ fields: listFlag({
249
523
  type: "string",
250
524
  description: "Dot-paths, comma separated (mutually exclusive with --full)"
251
- },
525
+ }),
252
526
  maxBytes: {
253
527
  type: "string",
254
528
  description: "Output size cap; 0 disables",
@@ -300,50 +574,32 @@ const connectionFlags = {
300
574
  };
301
575
  //#endregion
302
576
  //#region src/commands/global-flags.ts
303
- const ARGUMENT_SEPARATOR = "--";
304
- const NEGATION_PREFIX = "no-";
305
- const GLOBAL_FLAG_ARGS = {
577
+ const GLOBAL_FLAG_SPELLINGS = flagSpellings({
306
578
  ...outputFlags,
307
579
  ...listFlags,
308
580
  ...profileFlag,
309
581
  ...connectionFlags
310
- };
311
- const GLOBAL_FLAG_NAMES = buildGlobalFlagNames();
312
- function buildGlobalFlagNames() {
313
- const names = /* @__PURE__ */ new Set();
314
- for (const [key, def] of Object.entries(GLOBAL_FLAG_ARGS)) {
315
- names.add(normalizeFlag(key));
316
- if ("alias" in def) for (const alias of toAliasArray(def.alias)) names.add(normalizeFlag(alias));
317
- }
318
- return names;
319
- }
320
- function isGlobalFlag(token) {
321
- if (!token.startsWith("-") || token === ARGUMENT_SEPARATOR) return false;
322
- const raw = token.includes("=") ? token.slice(0, token.indexOf("=")) : token;
323
- const name = normalizeFlag(raw);
324
- if (GLOBAL_FLAG_NAMES.has(name)) return true;
325
- const bare = raw.replace(/^-+/, "");
326
- if (bare.startsWith(NEGATION_PREFIX)) return GLOBAL_FLAG_NAMES.has(normalizeFlag(bare.slice(3)));
327
- return false;
328
- }
582
+ });
329
583
  function hoistGlobalFlags(rawArgs) {
330
- const leading = [];
331
- let index = 0;
332
- while (index < rawArgs.length) {
333
- const token = rawArgs[index];
334
- if (token === void 0 || !isGlobalFlag(token)) break;
335
- leading.push(token);
336
- index += 1;
337
- if (flagConsumesValue(token, GLOBAL_FLAG_ARGS) && index < rawArgs.length) {
338
- const value = rawArgs[index];
339
- if (value !== void 0) {
340
- leading.push(value);
341
- index += 1;
342
- }
343
- }
584
+ const end = leadingGlobalFlagsEnd(rawArgs);
585
+ if (end === 0) return [...rawArgs];
586
+ const leading = rawArgs.slice(0, end);
587
+ const rest = rawArgs.slice(end);
588
+ const separator = rest.indexOf("--");
589
+ if (separator === -1) return [...rest, ...leading];
590
+ return [
591
+ ...rest.slice(0, separator),
592
+ ...leading,
593
+ ...rest.slice(separator)
594
+ ];
595
+ }
596
+ function leadingGlobalFlagsEnd(rawArgs) {
597
+ let end = 0;
598
+ for (const item of readArgv(rawArgs, GLOBAL_FLAG_SPELLINGS)) {
599
+ if (item.kind !== "flag" || item.flag === null) return end;
600
+ end = item.end;
344
601
  }
345
- if (leading.length === 0) return [...rawArgs];
346
- return [...rawArgs.slice(index), ...leading];
602
+ return end;
347
603
  }
348
604
  //#endregion
349
605
  //#region src/core/system-ca.ts
@@ -358,7 +614,7 @@ function trustSystemCa() {
358
614
  //#endregion
359
615
  //#region package.json
360
616
  var name = "@metabase/cli";
361
- var version = "0.3.2";
617
+ var version = "0.4.0";
362
618
  var description = "Metabase CLI";
363
619
  //#endregion
364
620
  //#region src/runtime/command-augment.ts
@@ -378,36 +634,38 @@ const main = defineCommand({
378
634
  description
379
635
  },
380
636
  subCommands: {
381
- auth: () => import("./auth-DJn5T6zA.mjs").then((mod) => mod.default),
382
- db: () => import("./db-BRHPjshe.mjs").then((mod) => mod.default),
383
- table: () => import("./table-Di-EY7pg.mjs").then((mod) => mod.default),
384
- field: () => import("./field-CHZByaXa.mjs").then((mod) => mod.default),
385
- upload: () => import("./upload-VXBFKzLT.mjs").then((mod) => mod.default),
386
- "content-translation": () => import("./content-translation-CqB3peU9.mjs").then((mod) => mod.default),
387
- card: () => import("./card-ByOzVxpI.mjs").then((mod) => mod.default),
388
- dashboard: () => import("./dashboard-Bzjz2v6u.mjs").then((mod) => mod.default),
389
- subscription: () => import("./subscription-CofRU47d.mjs").then((mod) => mod.default),
390
- alert: () => import("./alert-DCLhfwdv.mjs").then((mod) => mod.default),
391
- collection: () => import("./collection-BGbW7u_Q.mjs").then((mod) => mod.default),
392
- library: () => import("./library-Dgq_5BFh.mjs").then((mod) => mod.default),
393
- document: () => import("./document-DqJ7Cysa.mjs").then((mod) => mod.default),
394
- transform: () => import("./transform-8XK1LIgC.mjs").then((mod) => mod.default),
395
- "transform-job": () => import("./transform-job-CTizQkWy.mjs").then((mod) => mod.default),
396
- "transform-tag": () => import("./transform-tag-BLp_p9J-.mjs").then((mod) => mod.default),
397
- setting: () => import("./setting-DR9bj232.mjs").then((mod) => mod.default),
398
- search: () => import("./search-DxiuY5EV.mjs").then((mod) => mod.default),
399
- "git-sync": () => import("./git-sync-NhfLSZA6.mjs").then((mod) => mod.default),
400
- setup: () => import("./setup-DGa2LLEp.mjs").then((mod) => mod.default),
401
- snippet: () => import("./snippet-g9JTDxqu.mjs").then((mod) => mod.default),
402
- segment: () => import("./segment-DiRJcbam.mjs").then((mod) => mod.default),
403
- measure: () => import("./measure-LY9Tp9QZ.mjs").then((mod) => mod.default),
404
- timeline: () => import("./timeline-D7EsWZm6.mjs").then((mod) => mod.default),
405
- "timeline-event": () => import("./timeline-event-D-h0A_oh.mjs").then((mod) => mod.default),
406
- eid: () => import("./eid-BtlRU1E0.mjs").then((mod) => mod.default),
407
- query: () => import("./query-BPtIy79s.mjs").then((mod) => mod.default),
408
- uuid: () => import("./uuid-B4eij1d7.mjs").then((mod) => mod.default),
409
- upgrade: () => import("./upgrade-BRgw0fvn.mjs").then((mod) => mod.default),
410
- skills: () => import("./skills-CCn7cyMP.mjs").then((mod) => mod.default)
637
+ auth: () => import("./auth-DdLhXCn-.mjs").then((mod) => mod.default),
638
+ db: () => import("./db-BFSeETMO.mjs").then((mod) => mod.default),
639
+ table: () => import("./table-CZnT6d9x.mjs").then((mod) => mod.default),
640
+ field: () => import("./field-BARgq5I9.mjs").then((mod) => mod.default),
641
+ upload: () => import("./upload-BKxOpSz3.mjs").then((mod) => mod.default),
642
+ "content-translation": () => import("./content-translation-C19SqZWp.mjs").then((mod) => mod.default),
643
+ card: () => import("./card-CFd-GUEM.mjs").then((mod) => mod.default),
644
+ dashboard: () => import("./dashboard-AWrXqQ7a.mjs").then((mod) => mod.default),
645
+ subscription: () => import("./subscription-Dr-YHARg.mjs").then((mod) => mod.default),
646
+ alert: () => import("./alert-Dt6La9tK.mjs").then((mod) => mod.default),
647
+ collection: () => import("./collection-BKNShKcY.mjs").then((mod) => mod.default),
648
+ library: () => import("./library-B7wDH-Nc.mjs").then((mod) => mod.default),
649
+ document: () => import("./document-BRaba87v.mjs").then((mod) => mod.default),
650
+ glossary: () => import("./glossary-CWIX8Zh6.mjs").then((mod) => mod.default),
651
+ transform: () => import("./transform-g4-HHzDp.mjs").then((mod) => mod.default),
652
+ "transform-job": () => import("./transform-job-DqBtnTrG.mjs").then((mod) => mod.default),
653
+ "transform-tag": () => import("./transform-tag-nTb0Ivpj.mjs").then((mod) => mod.default),
654
+ setting: () => import("./setting-CPkvkc4H.mjs").then((mod) => mod.default),
655
+ search: () => import("./search-BrQQuNmh.mjs").then((mod) => mod.default),
656
+ "git-sync": () => import("./git-sync-DKcaddkV.mjs").then((mod) => mod.default),
657
+ setup: () => import("./setup-Be3xDXHi.mjs").then((mod) => mod.default),
658
+ snippet: () => import("./snippet-QirK70R_.mjs").then((mod) => mod.default),
659
+ segment: () => import("./segment-Bi6eqj3e.mjs").then((mod) => mod.default),
660
+ measure: () => import("./measure-D2qq5e8f.mjs").then((mod) => mod.default),
661
+ dependency: () => import("./dependency-DBUJwXqv.mjs").then((mod) => mod.default),
662
+ timeline: () => import("./timeline-CUzx6uXi.mjs").then((mod) => mod.default),
663
+ "timeline-event": () => import("./timeline-event-DpNm4dkn.mjs").then((mod) => mod.default),
664
+ eid: () => import("./eid-Dz-mP40j.mjs").then((mod) => mod.default),
665
+ query: () => import("./query-BJXTIDhy.mjs").then((mod) => mod.default),
666
+ uuid: () => import("./uuid-Blpv_e0S.mjs").then((mod) => mod.default),
667
+ upgrade: () => import("./upgrade-Tj_reACv.mjs").then((mod) => mod.default),
668
+ skills: () => import("./skills-DyiLycMY.mjs").then((mod) => mod.default)
411
669
  }
412
670
  });
413
671
  setMetabaseAugment(main, {
@@ -580,6 +838,18 @@ function jsonByteLength(value) {
580
838
  function isPlainObject(value) {
581
839
  return typeof value === "object" && value !== null && !Array.isArray(value);
582
840
  }
841
+ const JAVA_WHITESPACE = " \n\v\f\r            \u2028\u2029  ";
842
+ const UNICODE_ESCAPE_DIGITS = 4;
843
+ function unicodeEscape(char) {
844
+ return `\\u${char.charCodeAt(0).toString(16).padStart(UNICODE_ESCAPE_DIGITS, "0")}`;
845
+ }
846
+ const JAVA_WHITESPACE_ESCAPED = [...JAVA_WHITESPACE].map(unicodeEscape).join("");
847
+ /** Matches a string Metabase reads as not blank: one holding a character that is not Java whitespace. */
848
+ const NOT_BLANK = new RegExp(`[^${JAVA_WHITESPACE_ESCAPED}]`);
849
+ /** Whether Metabase reads `value` as blank: empty, or Java whitespace only. */
850
+ function isBlank(value) {
851
+ return !NOT_BLANK.test(value);
852
+ }
583
853
  //#endregion
584
854
  //#region src/output/projection.ts
585
855
  function projectForList(item, view, opts) {
@@ -672,7 +942,7 @@ function renderRows(head, rows) {
672
942
  return table.toString();
673
943
  }
674
944
  function formatCell(row, column) {
675
- const value = row[column.key];
945
+ const value = column.value === void 0 ? row[column.key] : column.value(row);
676
946
  if (column.format !== void 0) return column.format(value);
677
947
  return formatScalar(value);
678
948
  }
@@ -880,6 +1150,11 @@ const FEATURE_RULES = {
880
1150
  since: 63,
881
1151
  tokenFeature: "remote_sync"
882
1152
  },
1153
+ remoteSyncBranchGuard: { since: 63 },
1154
+ remoteSyncMerge: {
1155
+ since: 63,
1156
+ tokenFeature: "remote_sync"
1157
+ },
883
1158
  contentTranslation: {
884
1159
  since: 58,
885
1160
  tokenFeature: "content_translation"
@@ -896,6 +1171,10 @@ const FEATURE_RULES = {
896
1171
  transformJobRunIdIsNumeric: { since: 64 },
897
1172
  transformCheckpointReset: { since: 60 },
898
1173
  fieldDataSensitivity: { since: 64 },
1174
+ fieldRemappingAppendsDisplayColumns: {
1175
+ since: 58,
1176
+ until: 59
1177
+ },
899
1178
  transformDagRuns: { since: 64 },
900
1179
  unifiedTransformRuns: { since: 64 },
901
1180
  transformTests: {
@@ -907,6 +1186,10 @@ const FEATURE_RULES = {
907
1186
  invalidMbqlIsBadRequest: { since: 59 },
908
1187
  boxplotDisplay: { since: 59 },
909
1188
  nativeTableTemplateTag: { since: 59 },
1189
+ compiledQueryOmitsCollection: {
1190
+ since: 59,
1191
+ until: 62
1192
+ },
910
1193
  smartLinkMeasureModel: { since: 60 },
911
1194
  dashboardSubscriptionFilters: {
912
1195
  since: 58,
@@ -920,15 +1203,22 @@ const FEATURE_RULES = {
920
1203
  since: 59,
921
1204
  tokenFeature: "dependencies"
922
1205
  },
923
- dependencyKebabCaseFilters: { since: 60 },
1206
+ dependencyAsyncBackfill: {
1207
+ since: 60,
1208
+ tokenFeature: "dependencies"
1209
+ },
1210
+ measureDependencyGraph: { since: 59 },
924
1211
  tableListAccessFilters: { since: 59 },
925
1212
  tableListTransformTargets: { since: 60 },
1213
+ tableListPublishedFilter: { since: 63 },
926
1214
  tableUnusedFilter: {
927
1215
  since: 58,
928
1216
  tokenFeature: "dependencies"
929
1217
  },
930
1218
  tableDataLayerTiers: { since: 59 },
931
1219
  bulkTableEdit: { since: 59 },
1220
+ tableUserValueWithdrawal: { since: 64 },
1221
+ bulkTableSync: { since: 59 },
932
1222
  erd: {
933
1223
  since: 62,
934
1224
  tokenFeature: "schema-viewer"
@@ -952,7 +1242,8 @@ const FEATURE_RULES = {
952
1242
  },
953
1243
  metricDefinitionQuery: { since: 60 },
954
1244
  metricDimensionListing: { since: 64 },
955
- oauthFullAccessScope: { since: 63 }
1245
+ oauthFullAccessScope: { since: 63 },
1246
+ exportCsvByteOrderMark: { since: 63 }
956
1247
  };
957
1248
  function isFeatureName(name) {
958
1249
  return Object.hasOwn(FEATURE_RULES, name);
@@ -990,7 +1281,6 @@ const METHOD_REQUIREMENTS = {
990
1281
  "card.exportQuery": [],
991
1282
  "card.queryMetadata": [],
992
1283
  "collection.list": [],
993
- "collection.listWithLibrary": [],
994
1284
  "collection.get": [],
995
1285
  "collection.create": [],
996
1286
  "collection.update": [],
@@ -1034,6 +1324,7 @@ const METHOD_REQUIREMENTS = {
1034
1324
  "erd.get": ["erd"],
1035
1325
  "field.get": [],
1036
1326
  "field.update": [],
1327
+ "field.setDataSensitivity": ["fieldDataSensitivity"],
1037
1328
  "field.search": [],
1038
1329
  "field.remapping": [],
1039
1330
  "field.summary": [],
@@ -1053,6 +1344,7 @@ const METHOD_REQUIREMENTS = {
1053
1344
  "gitSync.syncedCollections": ["remoteSync"],
1054
1345
  "gitSync.remoteUrl": [],
1055
1346
  "gitSync.branch": [],
1347
+ "gitSync.trackedBranch": [],
1056
1348
  "gitSync.waitForTask": ["remoteSync"],
1057
1349
  "glossary.list": [],
1058
1350
  "glossary.create": [],
@@ -1116,7 +1408,11 @@ const METHOD_REQUIREMENTS = {
1116
1408
  "table.fks": [],
1117
1409
  "table.syncSchema": [],
1118
1410
  "table.rescanValues": [],
1411
+ "table.discardValues": [],
1119
1412
  "table.bulkEdit": ["bulkTableEdit"],
1413
+ "table.bulkSyncSchema": ["bulkTableSync"],
1414
+ "table.bulkRescanValues": ["bulkTableSync"],
1415
+ "table.bulkDiscardValues": ["bulkTableSync"],
1120
1416
  "table.appendCsv": [],
1121
1417
  "table.replaceCsv": [],
1122
1418
  "timeline.list": [],
@@ -1453,7 +1749,9 @@ async function walkCommandPath(root, rawArgs) {
1453
1749
  const match = await findSubCommand(subCommands, token);
1454
1750
  if (match === null) return {
1455
1751
  segments,
1456
- unknownToken: token
1752
+ unknownToken: token,
1753
+ command: current,
1754
+ argsStart: index
1457
1755
  };
1458
1756
  segments.push(match.name);
1459
1757
  current = match.command;
@@ -1461,7 +1759,17 @@ async function walkCommandPath(root, rawArgs) {
1461
1759
  }
1462
1760
  return {
1463
1761
  segments,
1464
- unknownToken: null
1762
+ unknownToken: null,
1763
+ command: current,
1764
+ argsStart: index
1765
+ };
1766
+ }
1767
+ async function resolveLeafArgv(root, rawArgs) {
1768
+ const path = await walkCommandPath(root, rawArgs);
1769
+ if (path.unknownToken !== null || await resolveCitty(path.command.subCommands) !== void 0) return null;
1770
+ return {
1771
+ argsDef: await resolveCitty(path.command.args) ?? {},
1772
+ argsStart: path.argsStart
1465
1773
  };
1466
1774
  }
1467
1775
  async function resolveBreadcrumb(root, rawArgs) {
@@ -1472,16 +1780,11 @@ async function findUnknownCommand(root, rawArgs) {
1472
1780
  return (await walkCommandPath(root, rawArgs)).unknownToken;
1473
1781
  }
1474
1782
  function skipFlags(rawArgs, start, argsDef) {
1475
- let index = start;
1476
- while (index < rawArgs.length) {
1477
- const token = rawArgs[index];
1478
- if (token === void 0) return index;
1479
- if (token === "--") return rawArgs.length;
1480
- if (!token.startsWith("-")) return index;
1481
- if (flagConsumesValue(token, argsDef)) index += 1;
1482
- index += 1;
1783
+ for (const item of readArgv(rawArgs, flagSpellings(argsDef), start)) {
1784
+ if (item.kind === "positional") return item.index;
1785
+ if (item.kind === "separator") return rawArgs.length;
1483
1786
  }
1484
- return index;
1787
+ return rawArgs.length;
1485
1788
  }
1486
1789
  async function findSubCommand(subCommands, token) {
1487
1790
  const direct = subCommands[token];
@@ -1531,7 +1834,7 @@ const JSON_HELP_FLAG = "--json";
1531
1834
  async function run() {
1532
1835
  installInterruptHandler((code) => process.exit(code));
1533
1836
  trustSystemCa();
1534
- const rawArgs = hoistGlobalFlags(process.argv.slice(2));
1837
+ const rawArgs = await normalizeArgv(process.argv.slice(2));
1535
1838
  const wantsJsonHelp = rawArgs.includes(JSON_HELP_FLAG);
1536
1839
  const showUsageWithBreadcrumb = async (cmd, parent) => {
1537
1840
  const breadcrumb = await resolveBreadcrumb(main, rawArgs);
@@ -1557,8 +1860,15 @@ async function run() {
1557
1860
  rawArgs
1558
1861
  });
1559
1862
  }
1863
+ async function normalizeArgv(argv) {
1864
+ const hoisted = hoistGlobalFlags(argv);
1865
+ const leaf = await resolveLeafArgv(main, hoisted);
1866
+ if (leaf === null) return hoisted;
1867
+ const leafArgs = separatePositionals(hoisted.slice(leaf.argsStart), leaf.argsDef);
1868
+ return [...hoisted.slice(0, leaf.argsStart), ...leafArgs];
1869
+ }
1560
1870
  run().catch((error) => {
1561
1871
  reportError(error);
1562
1872
  });
1563
1873
  //#endregion
1564
- 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 };
1874
+ export { givenFlagKeys as $, ENV_API_KEY as A, name as B, isPlainObject as C, promptText as D, promptSelect as E, ENV_URL as F, listFlags as G, connectionFlags as H, consumeLegacyEnvWarnings as I, profileFlag as J, listFlagsWithDefaultLimit as K, readEnv as L, ENV_PROFILE as M, ENV_SKILLS_DIR as N, listTruncationNotice as O, ENV_SKIP_PREFLIGHT as P, assertArgv as Q, ProfileRefreshedError as R, isBlank as S, promptPassword as T, formatFlags as U, version as V, listFlag as W, listEnvelopeSchema as X, DEFAULT_MAX_BYTES as Y, listEnvelopeSchemaWithExtras as Z, MALFORMED_CELL as _, escapeJsonPointerSegment as _t, Features as a, ConfigError as at, projectForList as b, ruleGap as c, NetworkError as ct, renderList as d, UnknownError as dt, parseCsv as et, renderListWithExtras as f, ValidationError as ft, writeText as g, KNOWN_RANGE as gt, writeJson as h, isFileNotFoundError as ht, FEATURE_RULES as i, ChainedRequestError as it, ENV_DISABLE_KEYRING as j, warn as k, reportError as l, ResponseShapeError as lt, serializeJson as m, formatZodIssue as mt, methodRequirements as n, parseEnumCsv as nt, evaluateFeatures as o, InternalError as ot, renderSummary as p, errorMessage as pt, outputFlags as q, FEATURE_NAMES as r, AbortError as rt, isFeatureName as s, MetabaseError as st, interruptSignal as t, parseEnum as tt, renderItem as u, TimeoutError as ut, formatScalar as v, promptConfirm as w, NOT_BLANK as x, renderRows as y, setMetabaseAugment as z };