@metabase/cli 0.3.2 → 0.4.0-alpha.release-65-integration-branch.31ca6bb

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 (304) hide show
  1. package/dist/{add-collection-BjVAdZ1n.mjs → add-collection-B-Kczwcj.mjs} +5 -5
  2. package/dist/{alert-DCLhfwdv.mjs → alert-Ne0ivd5m.mjs} +7 -7
  3. package/dist/{alerts-DRin_wt2.mjs → alerts-Fakzg9iP.mjs} +6 -6
  4. package/dist/{append-DQ9rPJHZ.mjs → append-DCDVqPmR.mjs} +4 -4
  5. package/dist/archive-55sDfnHf.mjs +32 -0
  6. package/dist/{archive-_c-ISZmi.mjs → archive-BNJit8eD.mjs} +3 -3
  7. package/dist/{archive-o5cWV3vZ.mjs → archive-BbNqts-V.mjs} +3 -3
  8. package/dist/{archive-D6xzHaM3.mjs → archive-C93UR4Uc.mjs} +3 -3
  9. package/dist/{archive-BzVxRqpL.mjs → archive-CGmvQht4.mjs} +5 -5
  10. package/dist/{archive-COFQAHAL.mjs → archive-CL8wqAzm.mjs} +3 -3
  11. package/dist/{archive-BVRKE9Ev.mjs → archive-CSdktxvW.mjs} +5 -5
  12. package/dist/{archive-D3yPvUtz.mjs → archive-CpCSY4RT.mjs} +5 -5
  13. package/dist/{archive-xcgoVPwv.mjs → archive-DCCkQTjQ.mjs} +5 -5
  14. package/dist/{archive-BPCgmLcV.mjs → archive-DCE087yD.mjs} +4 -4
  15. package/dist/{archive-1YVo-Wsu.mjs → archive-DEef7eB8.mjs} +3 -3
  16. package/dist/{archive-HeRygdKz2.mjs → archive-DIZu7o4C.mjs} +4 -4
  17. package/dist/{auth-DJn5T6zA.mjs → auth-Bx4QQhqt.mjs} +5 -5
  18. package/dist/body-CB2eDFFb.mjs +17 -0
  19. package/dist/branch-flag-pFQPNYKr.mjs +9 -0
  20. package/dist/{branches-CUyPxeeW.mjs → branches-B6ilUG-7.mjs} +3 -3
  21. package/dist/breaking-Dg3-8yDF.mjs +36 -0
  22. package/dist/broken-BNBD4Eo3.mjs +37 -0
  23. package/dist/bulk-discard-values-DfKXuZpR.mjs +49 -0
  24. package/dist/bulk-edit-oUCfDQ_M.mjs +53 -0
  25. package/dist/bulk-rescan-values-B8pNlXUH.mjs +28 -0
  26. package/dist/bulk-sync-schema-tRp7jBJt.mjs +28 -0
  27. package/dist/{cancel-BNuVls58.mjs → cancel-Bl4BMkwI.mjs} +3 -3
  28. package/dist/{cancel-task-DUmlQQpi.mjs → cancel-task-CWWo7vLf.mjs} +4 -4
  29. package/dist/card-CQD4D8mw.mjs +25 -0
  30. package/dist/{card-CEkp1mcI.mjs → card-CQNUT9pm.mjs} +1 -1
  31. package/dist/{card-voh1k4hl.mjs → card-P5mBknsl.mjs} +3 -11
  32. package/dist/{cards-_gbvw3wp.mjs → cards-BIUYdSIR.mjs} +6 -6
  33. package/dist/cli.mjs +420 -100
  34. package/dist/{client-BnK0evYf.mjs → client-BHIFvEg2.mjs} +394 -316
  35. package/dist/{collection-DYM0p3Xl.mjs → collection-BG3Ksea-.mjs} +1 -1
  36. package/dist/collection-CuaTd10G.mjs +21 -0
  37. package/dist/{collection-BxdPxD38.mjs → collection-D3KXhvnc.mjs} +7 -5
  38. package/dist/{collection-namespace-DM90lA8C.mjs → collection-namespace-ZQePD67z.mjs} +2 -2
  39. package/dist/{content-translation-CqB3peU9.mjs → content-translation-BRdNdAmn.mjs} +3 -3
  40. package/dist/copy-BMEaYmTb.mjs +55 -0
  41. package/dist/copy-CbDfVZRC.mjs +36 -0
  42. package/dist/copy-flags-anRhAvB5.mjs +32 -0
  43. package/dist/{create-BIUVvIGH.mjs → create-5cDaZcRL.mjs} +3 -3
  44. package/dist/{create-CwXUMOMd.mjs → create-BEN-2XFK.mjs} +3 -3
  45. package/dist/create-BJG630xB.mjs +48 -0
  46. package/dist/{create-IFjwHs0G.mjs → create-BTQB1lqX.mjs} +4 -4
  47. package/dist/{create-BMKuihoI.mjs → create-C3TmU1Bi.mjs} +6 -6
  48. package/dist/create-C7O9tPL2.mjs +34 -0
  49. package/dist/{create-DVo8-IzZ.mjs → create-C8hsOv_D.mjs} +6 -6
  50. package/dist/{create-DNx9TGHs.mjs → create-CBSsW8Hm.mjs} +6 -6
  51. package/dist/{create-Cm9Z-rfe2.mjs → create-CG6WWY6k.mjs} +4 -4
  52. package/dist/{create-BSvTs-EV.mjs → create-D2Shlb7t.mjs} +3 -3
  53. package/dist/{create-DMVw9nrZ.mjs → create-DVEqry26.mjs} +4 -4
  54. package/dist/{create-B48rmY8v.mjs → create-D_pNX7d0.mjs} +3 -3
  55. package/dist/{create-D4Y69cDF.mjs → create-R0Q-nRlq.mjs} +4 -4
  56. package/dist/{create-CUHpxANR.mjs → create-SqmOf6WQ.mjs} +6 -6
  57. package/dist/{create-branch-Cw-uXows.mjs → create-branch-Cb3CWojg.mjs} +4 -4
  58. package/dist/{create-CnJKj9Nl.mjs → create-c2zR9y4J.mjs} +4 -4
  59. package/dist/{create-va8bByVt.mjs → create-xt4ff6fP.mjs} +3 -3
  60. package/dist/{create-B7S5fCkD.mjs → create-zpJIRn9j.mjs} +5 -5
  61. package/dist/{csv-CaKx1oFZ.mjs → csv-CRNOhy4X.mjs} +4 -4
  62. package/dist/{current-task-lGh69Z1i.mjs → current-task-DFo1ZJ51.mjs} +4 -4
  63. package/dist/dashboard-D11YAa7I.mjs +35 -0
  64. package/dist/{dashboard-D0hwTC-f.mjs → dashboard-Phz3XpRM.mjs} +2 -1
  65. package/dist/{dashboard-DgK81azj.mjs → dashboard-XSTr9QCr.mjs} +6 -2
  66. package/dist/data-action-BiHjjVjc.mjs +24 -0
  67. package/dist/data-action-DZxVB_hD.mjs +85 -0
  68. package/dist/data-action-R9qxJDPA.mjs +40 -0
  69. package/dist/database-BT7DVgSr.mjs +45 -0
  70. package/dist/{database-C3E9PZSx.mjs → database-Kq2AL5jH.mjs} +1 -1
  71. package/dist/dataset-BmvCxGoE.mjs +66 -0
  72. package/dist/{db-BRHPjshe.mjs → db-C8lj73Dz.mjs} +7 -7
  73. package/dist/delete-09O7BTNw.mjs +44 -0
  74. package/dist/{delete-Ci0aDYpf.mjs → delete-CYgNpHl7.mjs} +4 -4
  75. package/dist/{delete-G6EiGn2Q.mjs → delete-D_ZNoYVv.mjs} +4 -4
  76. package/dist/{delete-BxBadE3q.mjs → delete-HWeQtc4M.mjs} +4 -4
  77. package/dist/delete-I4eFpsed.mjs +44 -0
  78. package/dist/{delete-DMETa-37.mjs → delete-My8TX-B2.mjs} +4 -4
  79. package/dist/{delete-CQWCfqHf.mjs → delete-qwdN0N7e.mjs} +4 -4
  80. package/dist/delete-runtime-BbmRg_in.mjs +55 -0
  81. package/dist/{delete-table-N4rZtt1T.mjs → delete-table-BCvjX7bh.mjs} +4 -4
  82. package/dist/{dependencies-edN0P1SS.mjs → dependencies-BAE4YPXX.mjs} +5 -5
  83. package/dist/dependency-CIam7zmr.mjs +15 -0
  84. package/dist/dependency-DzLH3J8P.mjs +165 -0
  85. package/dist/dependency-zElFM-os.mjs +111 -0
  86. package/dist/dependents-Dv6tLdSs.mjs +52 -0
  87. package/dist/{dirty-U51bMoCP.mjs → dirty-CZORg0i0.mjs} +5 -5
  88. package/dist/discard-values-DKnP-JHr.mjs +55 -0
  89. package/dist/{document-CA0Q6lqu.mjs → document-C18b5rM6.mjs} +1 -1
  90. package/dist/{document-BHpLJbKU.mjs → document-DFCj1Az_.mjs} +2 -1
  91. package/dist/document-uxz96Lah.mjs +20 -0
  92. package/dist/{download-BJA6k-e6.mjs → download-BImtTll0.mjs} +2 -2
  93. package/dist/{eid-BtlRU1E0.mjs → eid-D0FxhT9H.mjs} +11 -10
  94. package/dist/entity-DWp9WJbU.mjs +20 -0
  95. package/dist/entry-flags-3sDWwa90.mjs +42 -0
  96. package/dist/{events-B5rnOo-L.mjs → events-BzCjVA3-.mjs} +4 -4
  97. package/dist/execute-BhHbkBqf.mjs +45 -0
  98. package/dist/export-CjqjDnaZ.mjs +74 -0
  99. package/dist/export-flags-BETJHNcw.mjs +81 -0
  100. package/dist/export-preflight-DzvIP6TB.mjs +35 -0
  101. package/dist/{field-CcN4oZy6.mjs → field-5nivEfd6.mjs} +33 -3
  102. package/dist/field-fBpiGiqr.mjs +21 -0
  103. package/dist/field-wmN6raOG.mjs +128 -0
  104. package/dist/{fields-zQ6O_W_H.mjs → fields-C-au1eLO.mjs} +6 -6
  105. package/dist/filter-flags-BIFcA2TT.mjs +72 -0
  106. package/dist/fks-83QIm8xb.mjs +36 -0
  107. package/dist/{get-93wuhTn2.mjs → get-BMHbEGbr.mjs} +4 -4
  108. package/dist/{get-DXwlZjw0.mjs → get-BTCOzSkl.mjs} +3 -3
  109. package/dist/{get-CekXFP3x.mjs → get-BawLhSwW.mjs} +3 -3
  110. package/dist/{get-BLjcCXp8.mjs → get-BjqqFG2m.mjs} +3 -3
  111. package/dist/{get-is8x5f2n.mjs → get-C-R_Fdsi.mjs} +3 -3
  112. package/dist/{get-DC_huYD8.mjs → get-C73V2KsB.mjs} +5 -5
  113. package/dist/{get-CG6G-mzV.mjs → get-C9sq2boy.mjs} +5 -5
  114. package/dist/{get-Cf6a4fFN.mjs → get-Cggv6yLC.mjs} +4 -4
  115. package/dist/{get-xPv7e5Ez.mjs → get-CkXc0Xld.mjs} +5 -5
  116. package/dist/{get-BLcS4il2.mjs → get-CqNEVAX_2.mjs} +3 -3
  117. package/dist/{get-DhpMuTSt.mjs → get-D7h7uH4k.mjs} +5 -5
  118. package/dist/get-DGmE5fmp.mjs +31 -0
  119. package/dist/{get-EFsmL4le.mjs → get-DTTsPd-c.mjs} +5 -5
  120. package/dist/{get-CeSQptdl.mjs → get-DXBXhPrU.mjs} +5 -5
  121. package/dist/{get-CTp5l7aU.mjs → get-D_v1IAL1.mjs} +3 -3
  122. package/dist/{get-BDrmBZ1z.mjs → get-DkzO3G5p.mjs} +5 -5
  123. package/dist/{get-Dg-S07ri.mjs → get-Dvr_69L7.mjs} +3 -3
  124. package/dist/get-NOMvMvYJ.mjs +36 -0
  125. package/dist/{get-BSoMWp4t2.mjs → get-YPDWhgm_2.mjs} +4 -4
  126. package/dist/{get-CwiJWeH4.mjs → get-Z36_0HX_.mjs} +4 -4
  127. package/dist/{get-run-DwY4sFGy.mjs → get-run-v1QHn-Mx.mjs} +4 -4
  128. package/dist/{git-sync-BwBRmEhE.mjs → git-sync-COokpYgc.mjs} +12 -3
  129. package/dist/git-sync-DspFahwV.mjs +165 -0
  130. package/dist/git-sync-VAqASCQ5.mjs +29 -0
  131. package/dist/glossary-BlNCrYbw.mjs +30 -0
  132. package/dist/glossary-Brnk2PBi.mjs +14 -0
  133. package/dist/glossary-LmZWwCNP.mjs +21 -0
  134. package/dist/graph-B6OliqnW.mjs +34 -0
  135. package/dist/{group-YQQ5GIcP.mjs → group-bpD_KcjA.mjs} +1 -1
  136. package/dist/{has-remote-changes-DE2_14FK.mjs → has-remote-changes-iTRCU9j0.mjs} +4 -4
  137. package/dist/{import-Cs7wk058.mjs → import-CdSs5CtT.mjs} +19 -8
  138. package/dist/{input-DEvkIjGr.mjs → input-D8qW-KtR.mjs} +6 -2
  139. package/dist/{is-dirty-XqDfqXGi.mjs → is-dirty-B5fj9NeS.mjs} +2 -2
  140. package/dist/{items-BloAjPwA.mjs → items-BxWnNEh7.mjs} +8 -8
  141. package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
  142. package/dist/{library-Dgq_5BFh.mjs → library-BHHgurW0.mjs} +5 -5
  143. package/dist/{library-PGCfm0UA.mjs → library-BOv5SY24.mjs} +1 -1
  144. package/dist/{library-BPIzb3K_.mjs → library-Ck0EK5bi.mjs} +4 -2
  145. package/dist/{list-D9d5ocYi.mjs → list-BPMOLrwn.mjs} +5 -5
  146. package/dist/{list-D04uiS3F.mjs → list-BTcEm4td.mjs} +3 -3
  147. package/dist/{list-CghNKfYJ.mjs → list-BTgAbqeS.mjs} +4 -4
  148. package/dist/{list-3ErmGdY0.mjs → list-Bop1NTbU.mjs} +6 -6
  149. package/dist/{list-yV6CyPzn.mjs → list-By9XJRiv.mjs} +3 -3
  150. package/dist/list-CNC-XHbN.mjs +35 -0
  151. package/dist/{list-CUJ1wem9.mjs → list-CPWgBkPa.mjs} +4 -4
  152. package/dist/{list-sdCIS2Df.mjs → list-Cpa0Se7M.mjs} +5 -5
  153. package/dist/list-DA9KsA0o.mjs +101 -0
  154. package/dist/{list-VzrtA9lt.mjs → list-DE9gYY3I.mjs} +3 -3
  155. package/dist/{list-CUXlZiS1.mjs → list-DFJt2-fY.mjs} +4 -4
  156. package/dist/{list-BZnf3RmA.mjs → list-DUcnAb1h.mjs} +3 -3
  157. package/dist/{list-vsXIMssK.mjs → list-DW4-u7eO.mjs} +5 -5
  158. package/dist/{list-f8Csdjyc.mjs → list-DbXnSL2x.mjs} +5 -5
  159. package/dist/list-DgsM9YQX.mjs +28 -0
  160. package/dist/{list-BfLo1xI8.mjs → list-Dzzt6Yee.mjs} +3 -3
  161. package/dist/{list-CZCaqPoo.mjs → list-ZHLsjxXg.mjs} +6 -6
  162. package/dist/{list-Bzm5mXRo.mjs → list-e7yvJYMw.mjs} +3 -3
  163. package/dist/{list-DboUvg-Y.mjs → list-hN_Tu2T6.mjs} +6 -6
  164. package/dist/{list-DuJezLm_.mjs → list-zyKxxNvn.mjs} +3 -3
  165. package/dist/{login-Vw51Gts5.mjs → login-B7nGQDZK.mjs} +6 -6
  166. package/dist/{logout-BDIqoVhv.mjs → logout-pZffAh1G.mjs} +2 -2
  167. package/dist/{measure-LY9Tp9QZ.mjs → measure-AtnrCTCC.mjs} +6 -6
  168. package/dist/moderation-review-BdqEH6N1.mjs +31 -0
  169. package/dist/{notification-DVrLkjFT.mjs → notification-DOYdl0ao.mjs} +1 -1
  170. package/dist/{parameter-values-DWjmO7Ai.mjs → parameter-values-CxTkEjCs.mjs} +3 -3
  171. package/dist/{parse-enum-Dc0dMZ3P.mjs → parse-enum-CLIXMsd8.mjs} +1 -1
  172. package/dist/parse-id-7ja3HUdB.mjs +13 -0
  173. package/dist/{parse-ref-DTDld_LJ.mjs → parse-ref-Cw5fa4FI.mjs} +1 -1
  174. package/dist/parse-text-T0lTXzTZ.mjs +11 -0
  175. package/dist/{path-BUUAGYO5.mjs → path-DM4vyihl.mjs} +4 -4
  176. package/dist/{poll-CZeXepUQ.mjs → poll-Dz4tUm2f.mjs} +2 -2
  177. package/dist/{preflight-DcULqq8E.mjs → preflight-DaZ2z2C1.mjs} +3 -3
  178. package/dist/{process-CTrfxxaC.mjs → process-D0HdqZ3r.mjs} +1 -1
  179. package/dist/{publish-qVFmJQ1E.mjs → publish-C0HCL04a.mjs} +4 -4
  180. package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
  181. package/dist/{query-Cq1lmqL5.mjs → query-BC-C6efK.mjs} +14 -33
  182. package/dist/query-BKtMP5eH.mjs +13 -0
  183. package/dist/query-CAFPlqfi.mjs +329 -0
  184. package/dist/remapping-CgA6UJGU.mjs +53 -0
  185. package/dist/{remove-collection-DBqh2Lqm.mjs → remove-collection-DoctJa9g.mjs} +5 -5
  186. package/dist/{render-Gx1hR7IF.mjs → render-Bvm9mta6.mjs} +2 -2
  187. package/dist/{replace-CujInVY9.mjs → replace-CaFJd9fO.mjs} +4 -4
  188. package/dist/rescan-values-7VOGCLMe.mjs +32 -0
  189. package/dist/{rescan-values-HypqBCSK.mjs → rescan-values-sJRwcHsk.mjs} +5 -5
  190. package/dist/{run-DEkQSOQa.mjs → run-COHDQ5J4.mjs} +3 -3
  191. package/dist/{run-b3jyF29q.mjs → run-RXpFlDAB.mjs} +4 -4
  192. package/dist/{runs-GHqHLGy4.mjs → runs-CUYdCKiE.mjs} +5 -5
  193. package/dist/{runtime-nCPku2nN.mjs → runtime-B8RtMb4B.mjs} +21 -82
  194. package/dist/{schema-tables-B5L05Y1L.mjs → schema-tables-CO5qyZBe.mjs} +6 -6
  195. package/dist/{schemas-Clx26p_4.mjs → schemas-CzHHgDdF.mjs} +4 -4
  196. package/dist/search-BWb052_b.mjs +131 -0
  197. package/dist/search-Cc9vHNae.mjs +85 -0
  198. package/dist/{segment-DiRJcbam.mjs → segment-C_rsUkHK.mjs} +6 -6
  199. package/dist/{send-DIHkDNBN.mjs → send-C-3bkpni.mjs} +3 -3
  200. package/dist/{set-D77qUZML.mjs → set-BDkT37OT.mjs} +4 -4
  201. package/dist/{set-active-DCdFgD0O.mjs → set-active-CDJTfQEc.mjs} +3 -3
  202. package/dist/set-sensitivity-DVrINHde.mjs +57 -0
  203. package/dist/{setting-DR9bj232.mjs → setting-CoLzd08x.mjs} +4 -4
  204. package/dist/{setup-DGa2LLEp.mjs → setup-C4F4XYbU.mjs} +3 -3
  205. package/dist/{signal-k7cm5N6h.mjs → signal-CxWeLszu.mjs} +1 -1
  206. package/dist/{skill-list-DAvGGHzS.mjs → skill-list-BgihWuPf.mjs} +2 -2
  207. package/dist/{skills-CqtNuSXM.mjs → skills-4qDjKRSk.mjs} +2 -2
  208. package/dist/{skills-CCn7cyMP.mjs → skills-BWEFRpUj.mjs} +3 -3
  209. package/dist/snippet-CYd8D9SK.mjs +19 -0
  210. package/dist/{stash-BTtsV0AG.mjs → stash-CZ1x0rox.mjs} +6 -6
  211. package/dist/{status-XgSS3StV.mjs → status-BM6eYW7I.mjs} +3 -3
  212. package/dist/{status-CW7Dt-nV.mjs → status-gqpPZvue.mjs} +7 -7
  213. package/dist/{subscription-CofRU47d.mjs → subscription-pSuO241O.mjs} +6 -6
  214. package/dist/{subscriptions-DCuuPF6U.mjs → subscriptions-n5zJ9rYZ.mjs} +6 -6
  215. package/dist/{summary-uGlgKE3C.mjs → summary-DvIf2EiO.mjs} +5 -5
  216. package/dist/sync-schema-Cc21crxQ.mjs +32 -0
  217. package/dist/{sync-schema-Cu9rD3eH.mjs → sync-schema-D1t8rhdQ.mjs} +6 -6
  218. package/dist/sync-task-CXFoqlpF.mjs +53 -0
  219. package/dist/{table-DfuY0N8e.mjs → table-Ci6bhZkb.mjs} +35 -12
  220. package/dist/table-CxvaDiIZ.mjs +155 -0
  221. package/dist/table-Dc0dLfyg.mjs +26 -0
  222. package/dist/table-selector-flags-BVZvnhUa.mjs +42 -0
  223. package/dist/text-DaNkPRwt.mjs +6 -0
  224. package/dist/timeline-BqU5sOb6.mjs +21 -0
  225. package/dist/{timeline-event-D-h0A_oh.mjs → timeline-event-jn1SOKd4.mjs} +6 -6
  226. package/dist/transform-BUIlFqpv.mjs +28 -0
  227. package/dist/{transform-CtqB1WYo.mjs → transform-CNBIV7No.mjs} +1 -1
  228. package/dist/transform-job-DsbY9mme.mjs +22 -0
  229. package/dist/{transform-tag-BLp_p9J-.mjs → transform-tag-C0jzV6Dk.mjs} +5 -5
  230. package/dist/{transforms-n2IwEcbU.mjs → transforms-DwTy_Quh.mjs} +5 -5
  231. package/dist/tree-p2j6IVy-.mjs +34 -0
  232. package/dist/{unpublish-DVQCAa3g.mjs → unpublish-B-961jX1.mjs} +3 -3
  233. package/dist/unreferenced-Dxy-aYI7.mjs +36 -0
  234. package/dist/{update-CnkPYL2i.mjs → update-BFYRBbRu.mjs} +6 -6
  235. package/dist/{update-ChpOukqq.mjs → update-BGeaPntx.mjs} +5 -5
  236. package/dist/{update-NGq0yXZk.mjs → update-BnIEN390.mjs} +5 -5
  237. package/dist/{update-DffrdV4b.mjs → update-CALlEgIC.mjs} +4 -4
  238. package/dist/{update-DFdBeJwc.mjs → update-CHkVN69L.mjs} +13 -8
  239. package/dist/{update-oQeQyqKO.mjs → update-CKqL9PmU.mjs} +5 -5
  240. package/dist/{update-rFRPLlb6.mjs → update-CYGYUCFQ.mjs} +4 -4
  241. package/dist/update-CuQy2g51.mjs +52 -0
  242. package/dist/{update-B7CikkI0.mjs → update-D4TGE6FS.mjs} +7 -7
  243. package/dist/{update-D9H6Lh5U.mjs → update-D7xi-0bU.mjs} +4 -4
  244. package/dist/{update-DKO9HF1f.mjs → update-DK77vtFF.mjs} +6 -6
  245. package/dist/{update-CKDRuduL.mjs → update-DKDQTlnV.mjs} +5 -5
  246. package/dist/update-DXxJHC8y.mjs +41 -0
  247. package/dist/update-DiJK0uRG.mjs +181 -0
  248. package/dist/{update-CAsqNhDC.mjs → update-MD1Kwq1P.mjs} +4 -4
  249. package/dist/{update-dashcard-DvPqLJ3N.mjs → update-dashcard-DuTjOh14.mjs} +6 -6
  250. package/dist/{update-DScUzKLI.mjs → update-hvO4VpfZ.mjs} +7 -7
  251. package/dist/{update-D4ggtuG4.mjs → update-qDZvnwvf.mjs} +7 -7
  252. package/dist/{update-C05J2nZ2.mjs → update-tltXCUwR.mjs} +4 -4
  253. package/dist/{upgrade-BRgw0fvn.mjs → upgrade-Ca-Ss5jb.mjs} +4 -4
  254. package/dist/{upload-Do2PBSeH.mjs → upload-C2fhpKkP.mjs} +2 -2
  255. package/dist/upload-Dw7mVr9u.mjs +13 -0
  256. package/dist/{upload-BrfbcbBW.mjs → upload-t6dkccqn.mjs} +3 -3
  257. package/dist/{uuid-B4eij1d7.mjs → uuid-BMlJZT8z.mjs} +2 -2
  258. package/dist/{validate-xR_MHBNR.mjs → validate-D7e110oU.mjs} +1 -1
  259. package/dist/{validate-query-D6_ad-Gi.mjs → validate-query-BzbZmenf.mjs} +7 -3
  260. package/dist/{values-xgOftPq5.mjs → values-CXN4xTTh.mjs} +5 -5
  261. package/dist/verify-CPVfwKSu.mjs +38 -0
  262. package/dist/verify-flags-CMpRkMPa.mjs +58 -0
  263. package/dist/verify-k-JB-k3D.mjs +38 -0
  264. package/dist/{verify-DTOA_wVM.mjs → verify-t-CEmvoG.mjs} +3 -3
  265. package/dist/{wait-BjeFgR13.mjs → wait-KSkq7kKW.mjs} +6 -6
  266. package/dist/{wait-flags-BCeCnaz3.mjs → wait-flags-KX7NHdj4.mjs} +2 -2
  267. package/dist/{window-DSb1tqSe.mjs → window-CI_QD04s.mjs} +1 -1
  268. package/package.json +1 -1
  269. package/skill-data/core/SKILL.md +18 -11
  270. package/skill-data/dashboard/SKILL.md +1 -1
  271. package/skill-data/data-action/SKILL.md +125 -0
  272. package/skill-data/document/SKILL.md +12 -1
  273. package/skill-data/git-sync/SKILL.md +61 -9
  274. package/skill-data/mbql/SKILL.md +5 -0
  275. package/skill-data/metadata/SKILL.md +36 -6
  276. package/skill-data/native-sql/SKILL.md +1 -1
  277. package/dist/body-Cu94pH4P.mjs +0 -17
  278. package/dist/card-ByOzVxpI.mjs +0 -24
  279. package/dist/collection-BGbW7u_Q.mjs +0 -20
  280. package/dist/dashboard-Bzjz2v6u.mjs +0 -33
  281. package/dist/database-JtHTqSpq.mjs +0 -26
  282. package/dist/delete-runtime-BKEzJn22.mjs +0 -49
  283. package/dist/document-DqJ7Cysa.mjs +0 -19
  284. package/dist/export-DO2josC0.mjs +0 -63
  285. package/dist/field-CHZByaXa.mjs +0 -18
  286. package/dist/field-fDtIrY6D.mjs +0 -80
  287. package/dist/get-yHIEezeG.mjs +0 -31
  288. package/dist/git-sync-NhfLSZA6.mjs +0 -28
  289. package/dist/git-sync-TjX1r_wF.mjs +0 -136
  290. package/dist/list-DgteFn01.mjs +0 -34
  291. package/dist/parse-id-whJX4DAb.mjs +0 -10
  292. package/dist/query-BPtIy79s.mjs +0 -114
  293. package/dist/query-result-E4Q-Gra6.mjs +0 -15
  294. package/dist/search-DxiuY5EV.mjs +0 -97
  295. package/dist/selectors-rEFuyXPZ.mjs +0 -35
  296. package/dist/snippet-g9JTDxqu.mjs +0 -19
  297. package/dist/sync-task-BXeWuARG.mjs +0 -37
  298. package/dist/table-C6h4tIRw.mjs +0 -37
  299. package/dist/table-Di-EY7pg.mjs +0 -18
  300. package/dist/timeline-D7EsWZm6.mjs +0 -21
  301. package/dist/transform-8XK1LIgC.mjs +0 -28
  302. package/dist/transform-job-CTizQkWy.mjs +0 -22
  303. package/dist/tree-cqxiDh2b.mjs +0 -26
  304. package/dist/upload-VXBFKzLT.mjs +0 -13
@@ -1,8 +1,8 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { a as DatabaseSyncResult } from "./database-JtHTqSpq.mjs";
5
- import { t as databaseSyncResultView } from "./database-C3E9PZSx.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { a as DatabaseSyncResult } from "./database-BT7DVgSr.mjs";
5
+ import { t as databaseSyncResultView } from "./database-Kq2AL5jH.mjs";
6
6
  //#region src/commands/db/rescan-values.ts
7
7
  var rescan_values_default = defineMetabaseCommand({
8
8
  meta: {
@@ -1,6 +1,6 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
4
  import { a as TransformJobRunResult } from "./transform-job-CCguL6LP.mjs";
5
5
  //#region src/commands/transform-job/run.ts
6
6
  const transformJobRunResultView = {
@@ -1,8 +1,8 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
4
  import { c as TransformRunResult, p as isTransformRunFailed } from "./transform-DiW7bREn.mjs";
5
- import { i as waitFlags, n as parseWaitFlags } from "./wait-flags-BCeCnaz3.mjs";
5
+ import { i as waitFlags, n as parseWaitFlags } from "./wait-flags-KX7NHdj4.mjs";
6
6
  //#region src/commands/transform/run.ts
7
7
  const transformRunResultView = {
8
8
  compactPick: TransformRunResult,
@@ -1,9 +1,9 @@
1
- import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, U as profileFlag, d as renderList, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { t as collectForOutput } from "./window-DSb1tqSe.mjs";
1
+ import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { t as collectForOutput } from "./window-CI_QD04s.mjs";
5
5
  import { s as TransformRunCompact } from "./transform-DiW7bREn.mjs";
6
- import { t as transformRunView } from "./transform-CtqB1WYo.mjs";
6
+ import { t as transformRunView } from "./transform-CNBIV7No.mjs";
7
7
  //#region src/commands/transform/runs.ts
8
8
  const TransformRunListEnvelope = listEnvelopeSchema(TransformRunCompact);
9
9
  var runs_default = defineMetabaseCommand({
@@ -1,4 +1,4 @@
1
- import { D as ENV_API_KEY, E as warn, F as ProfileRefreshedError, I as setMetabaseAugment, J as normalizeFlag, M as ENV_URL, N as consumeLegacyEnvWarnings, O as ENV_DISABLE_KEYRING, P as readEnv, Q as ConfigError, R as version, Y as toAliasArray, Z as ChainedRequestError, a as Features, at as ValidationError, b as isPlainObject, c as ruleGap, ct as KNOWN_RANGE, et as MetabaseError, i as FEATURE_RULES, j as ENV_SKIP_PREFLIGHT, l as reportError, n as methodRequirements, nt as ResponseShapeError, o as evaluateFeatures, ot as errorMessage, q as flagConsumesValue, r as FEATURE_NAMES, rt as TimeoutError, st as isFileNotFoundError, t as interruptSignal, tt as NetworkError } from "./cli.mjs";
1
+ import { $ as givenFlagKeys, A as ENV_API_KEY, C as isPlainObject, F as ENV_URL, I as consumeLegacyEnvWarnings, L as readEnv, P as ENV_SKIP_PREFLIGHT, Q as assertArgv, R as ProfileRefreshedError, V as version, a as Features, at as ConfigError, c as ruleGap, ct as NetworkError, et as parseCsv, ft as ValidationError, gt as KNOWN_RANGE, ht as isFileNotFoundError, i as FEATURE_RULES, it as ChainedRequestError, j as ENV_DISABLE_KEYRING, k as warn, l as reportError, lt as ResponseShapeError, n as methodRequirements, o as evaluateFeatures, pt as errorMessage, r as FEATURE_NAMES, st as MetabaseError, t as interruptSignal, ut as TimeoutError, z as setMetabaseAugment } from "./cli.mjs";
2
2
  import { defineCommand } from "citty";
3
3
  import { z } from "zod";
4
4
  import { Entry } from "@napi-rs/keyring";
@@ -9,7 +9,10 @@ import { homedir } from "node:os";
9
9
  const INTEGER_PATTERN = /^-?\d+$/;
10
10
  function parseInteger(value, options) {
11
11
  const trimmed = value.trim();
12
- if (!INTEGER_PATTERN.test(trimmed)) throw new ConfigError(`invalid ${options.name}: "${value}" (expected integer)`);
12
+ if (!INTEGER_PATTERN.test(trimmed)) {
13
+ const expected = options.expected ?? "integer";
14
+ throw new ConfigError(`invalid ${options.name}: "${value}" (expected ${expected})`);
15
+ }
13
16
  const parsed = Number.parseInt(trimmed, 10);
14
17
  if (parsed < options.min) throw new ConfigError(`invalid ${options.name}: ${parsed} (must be ≥ ${options.min})`);
15
18
  return parsed;
@@ -1462,34 +1465,6 @@ function resolveFormat({ json, format, isTty }) {
1462
1465
  return isTty ? "text" : "json";
1463
1466
  }
1464
1467
  //#endregion
1465
- //#region src/runtime/csv.ts
1466
- function parseCsv(raw) {
1467
- return raw.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
1468
- }
1469
- function parseEnumCsv(raw, schema, flagName) {
1470
- if (raw === void 0 || raw === "") return;
1471
- const parts = parseCsv(raw);
1472
- if (parts.length === 0) return;
1473
- const accepted = [];
1474
- const rejected = [];
1475
- for (const part of parts) {
1476
- const result = schema.safeParse(part);
1477
- if (result.success) accepted.push(result.data);
1478
- else rejected.push(part);
1479
- }
1480
- if (rejected.length > 0) {
1481
- const allowed = Object.values(schema.enum).join(", ");
1482
- throw new ConfigError(`invalid ${flagName} value: ${rejected.join(", ")} (expected one of: ${allowed})`);
1483
- }
1484
- return accepted;
1485
- }
1486
- function parseEnum(raw, schema, flagName) {
1487
- if (raw === void 0 || raw === "") return;
1488
- const result = schema.safeParse(raw);
1489
- if (!result.success) throw new ConfigError(`invalid ${flagName} value: "${raw}" (expected one of: ${Object.values(schema.enum).join(", ")})`);
1490
- return result.data;
1491
- }
1492
- //#endregion
1493
1468
  //#region src/commands/context.ts
1494
1469
  function resolveOutputFormat(args, options = {}) {
1495
1470
  return resolveFormat({
@@ -1507,6 +1482,7 @@ function resolveCommonFlags(args, options = {}) {
1507
1482
  full,
1508
1483
  fields,
1509
1484
  maxBytes: parseMaxBytes(args.maxBytes),
1485
+ maxBytesGiven: args.maxBytes !== void 0,
1510
1486
  range: parseRange(args.limit, args.offset),
1511
1487
  url: args.url,
1512
1488
  apiKey: args.apiKey,
@@ -1539,51 +1515,6 @@ function parseRange(limit, offset) {
1539
1515
  };
1540
1516
  }
1541
1517
  //#endregion
1542
- //#region src/commands/known-flags.ts
1543
- const ARGUMENT_SEPARATOR = "--";
1544
- const NEGATION_PREFIX = "no-";
1545
- const BUILTIN_FLAGS = [
1546
- "help",
1547
- "h",
1548
- "version",
1549
- "v"
1550
- ];
1551
- function assertKnownFlags(rawArgs, argsDef) {
1552
- const allowed = allowedFlagKeys(argsDef);
1553
- let index = 0;
1554
- while (index < rawArgs.length) {
1555
- const token = rawArgs[index];
1556
- if (token === void 0 || token === ARGUMENT_SEPARATOR) return;
1557
- if (!isFlagToken(token)) {
1558
- index += 1;
1559
- continue;
1560
- }
1561
- if (!flagCandidates(token).some((candidate) => allowed.has(candidate))) throw new ConfigError(`unknown flag: ${displayFlag(token)}`);
1562
- index += flagConsumesValue(token, argsDef) ? 2 : 1;
1563
- }
1564
- }
1565
- function allowedFlagKeys(argsDef) {
1566
- const keys = new Set(BUILTIN_FLAGS.map(normalizeFlag));
1567
- for (const [name, def] of Object.entries(argsDef)) {
1568
- keys.add(normalizeFlag(name));
1569
- if ("alias" in def) for (const alias of toAliasArray(def.alias)) keys.add(normalizeFlag(alias));
1570
- }
1571
- return keys;
1572
- }
1573
- function isFlagToken(token) {
1574
- return token.startsWith("-") && token !== "-";
1575
- }
1576
- function displayFlag(token) {
1577
- const equals = token.indexOf("=");
1578
- return equals === -1 ? token : token.slice(0, equals);
1579
- }
1580
- function flagCandidates(token) {
1581
- const name = displayFlag(token).replace(/^-+/, "");
1582
- const candidates = [normalizeFlag(name)];
1583
- if (name.startsWith(NEGATION_PREFIX)) candidates.push(normalizeFlag(name.slice(3)));
1584
- return candidates;
1585
- }
1586
- //#endregion
1587
1518
  //#region src/commands/runtime.ts
1588
1519
  function defineMetabaseCommand(def) {
1589
1520
  const requirements = def.requires === null ? null : deriveRequirements(def.requires);
@@ -1591,12 +1522,12 @@ function defineMetabaseCommand(def) {
1591
1522
  meta: def.meta,
1592
1523
  args: def.args,
1593
1524
  async run({ args, rawArgs }) {
1594
- const commonArgs = pickCommonArgs(args);
1525
+ const commonArgs = pickCommonArgs(args, givenFlagKeys(rawArgs, def.args));
1595
1526
  let reportFormat;
1596
1527
  try {
1597
- reportFormat = resolveOutputFormat(commonArgs);
1528
+ reportFormat = resolveReportFormat(commonArgs, rawArgs, def.args);
1529
+ assertArgv(rawArgs, def.args);
1598
1530
  const ctx = resolveCommonFlags(commonArgs);
1599
- assertKnownFlags(rawArgs, def.args);
1600
1531
  let cachedConfig = null;
1601
1532
  let cachedClient = null;
1602
1533
  const getResolvedConfig = async () => {
@@ -1611,7 +1542,7 @@ function defineMetabaseCommand(def) {
1611
1542
  const resolved = await getResolvedConfig();
1612
1543
  const probe = await readCachedProbe(resolved.profile, resolved.url);
1613
1544
  const server = probe === null ? null : createServerProfile(probe);
1614
- const { createClient } = await import("./client-BnK0evYf.mjs").then((n) => n.t);
1545
+ const { createClient } = await import("./client-BHIFvEg2.mjs").then((n) => n.t);
1615
1546
  cachedClient = createClient({
1616
1547
  url: resolved.url,
1617
1548
  credential: resolved.credential
@@ -1723,13 +1654,21 @@ async function refreshChangedProbe(cached) {
1723
1654
  });
1724
1655
  return note;
1725
1656
  }
1726
- function pickCommonArgs(args) {
1657
+ function resolveReportFormat(commonArgs, rawArgs, argsDef) {
1658
+ try {
1659
+ return resolveOutputFormat(commonArgs);
1660
+ } catch (error) {
1661
+ assertArgv(rawArgs, argsDef);
1662
+ throw error;
1663
+ }
1664
+ }
1665
+ function pickCommonArgs(args, given) {
1727
1666
  const out = {};
1728
1667
  if (typeof args["format"] === "string") out.format = args["format"];
1729
1668
  if (typeof args["json"] === "boolean") out.json = args["json"];
1730
1669
  if (typeof args["full"] === "boolean") out.full = args["full"];
1731
1670
  if (typeof args["fields"] === "string") out.fields = args["fields"];
1732
- if (typeof args["maxBytes"] === "string") out.maxBytes = args["maxBytes"];
1671
+ if (typeof args["maxBytes"] === "string" && given.has("maxBytes")) out.maxBytes = args["maxBytes"];
1733
1672
  if (typeof args["limit"] === "string") out.limit = args["limit"];
1734
1673
  if (typeof args["offset"] === "string") out.offset = args["offset"];
1735
1674
  if (typeof args["profile"] === "string") out.profile = args["profile"];
@@ -1746,4 +1685,4 @@ function buildConfigFlags(ctx) {
1746
1685
  return flags;
1747
1686
  }
1748
1687
  //#endregion
1749
- export { createServerProfile as $, OAUTH_SCOPE as A, JSON_CONTENT_TYPE as B, ProbedUser as C, OAUTH_CLIENT_NAME as D, profileAuthMethod as E, buildNetworkError as F, credentialSecrets as G, parseJsonOrPlain as H, isConnectionClosed as I, normalizeUrl as J, oauthCredentialFromTokens as K, HttpError as L, exchangeCode as M, registerClient as N, USER_AGENT as O, tryDiscoverMetadata as P, Skew as Q, chainRequestFailure as R, writeProfile as S, ProfileLastFailure as T, assertCredentialHeaderSafe as U, parseJson as V, credentialAuthHeader as W, summarizeServer as X, ServerSummary as Y, checkFeatures as Z, readProfileRecord as _, readCachedServerProfile as a, writeProbeFailure as b, readEnvCredentials as c, clearProfile as d, probeServer as et, consumeKeychainResidualWarning as f, readProfileCredential as g, listProfileRecords as h, parseEnumCsv as i, parseOptionalInteger as it, discoverLoginMetadata as j, revokeOAuthCredential as k, resolveProfileName as l, keyringFallbackWarning as m, parseCsv as n, RequirementFailure as nt, createCredentialRefresher as o, consumeKeyringDowngradeWarning as p, displayUrl as q, parseEnum as r, parseInteger as rt, explicitProfileName as s, defineMetabaseCommand as t, CapabilityError as tt, DEFAULT_PROFILE as u, resolveRecordCredential as v, ProfileAuthMethod as w, writeProbeResult as x, writeOAuthProfile as y, isRetryableStatus as z };
1688
+ export { CapabilityError as $, registerClient as A, assertCredentialHeaderSafe as B, profileAuthMethod as C, OAUTH_SCOPE as D, revokeOAuthCredential as E, chainRequestFailure as F, normalizeUrl as G, credentialSecrets as H, isRetryableStatus as I, checkFeatures as J, ServerSummary as K, JSON_CONTENT_TYPE as L, buildNetworkError as M, isConnectionClosed as N, discoverLoginMetadata as O, HttpError as P, probeServer as Q, parseJson as R, ProfileLastFailure as S, USER_AGENT as T, oauthCredentialFromTokens as U, credentialAuthHeader as V, displayUrl as W, createServerProfile as X, Skew as Y, PROBE_PATH as Z, writeProbeFailure as _, readEnvCredentials as a, ProbedUser as b, clearProfile as c, keyringFallbackWarning as d, RequirementFailure as et, listProfileRecords as f, writeOAuthProfile as g, resolveRecordCredential as h, explicitProfileName as i, tryDiscoverMetadata as j, exchangeCode as k, consumeKeychainResidualWarning as l, readProfileRecord as m, readCachedServerProfile as n, parseOptionalInteger as nt, resolveProfileName as o, readProfileCredential as p, summarizeServer as q, createCredentialRefresher as r, DEFAULT_PROFILE as s, defineMetabaseCommand as t, parseInteger as tt, consumeKeyringDowngradeWarning as u, writeProbeResult as v, OAUTH_CLIENT_NAME as w, ProfileAuthMethod as x, writeProfile as y, parseJsonOrPlain as z };
@@ -1,9 +1,9 @@
1
- import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, U as profileFlag, d as renderList, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { n as windowList } from "./window-DSb1tqSe.mjs";
5
- import { n as TableCompact } from "./table-DfuY0N8e.mjs";
6
- import { t as tableView } from "./table-C6h4tIRw.mjs";
1
+ import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { n as windowList } from "./window-CI_QD04s.mjs";
5
+ import { a as TableCompact } from "./table-Ci6bhZkb.mjs";
6
+ import { u as tableView } from "./table-CxvaDiIZ.mjs";
7
7
  //#region src/commands/db/schema-tables.ts
8
8
  const DatabaseSchemaTablesEnvelope = listEnvelopeSchema(TableCompact);
9
9
  var schema_tables_default = defineMetabaseCommand({
@@ -1,7 +1,7 @@
1
- import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, U as profileFlag, d as renderList, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
4
- import { n as windowList } from "./window-DSb1tqSe.mjs";
1
+ import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { n as windowList } from "./window-CI_QD04s.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/db/schemas.ts
7
7
  const SchemaName = z.object({ name: z.string() });
@@ -0,0 +1,131 @@
1
+ import { H as connectionFlags, J as profileFlag, K as listFlagsWithDefaultLimit, W as listFlag, X as listEnvelopeSchema, at as ConfigError, d as renderList, nt as parseEnumCsv, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { n as parseIdCsv, t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { r as windowServerPage } from "./window-CI_QD04s.mjs";
5
+ import { i as SearchResultCompact, n as SearchModel, t as SEARCH_MODELS } from "./search-BAXg-EJw.mjs";
6
+ import { t as parseOptionalText } from "./parse-text-T0lTXzTZ.mjs";
7
+ //#region src/output/views/search.ts
8
+ const searchResultView = {
9
+ compactPick: SearchResultCompact,
10
+ tableColumns: [
11
+ {
12
+ key: "id",
13
+ label: "ID"
14
+ },
15
+ {
16
+ key: "model",
17
+ label: "Model"
18
+ },
19
+ {
20
+ key: "name",
21
+ label: "Name"
22
+ }
23
+ ]
24
+ };
25
+ //#endregion
26
+ //#region src/commands/search.ts
27
+ const DEFAULT_LIMIT = 20;
28
+ const SEARCH_MODELS_DESCRIPTION = `Comma-separated model filter: ${SEARCH_MODELS.join(",")}`;
29
+ const RESULT_METADATA = "result_metadata";
30
+ const SearchListEnvelope = listEnvelopeSchema(SearchResultCompact);
31
+ var search_default = defineMetabaseCommand({
32
+ meta: {
33
+ name: "search",
34
+ description: "Search Metabase content (cards, dashboards, collections, …)"
35
+ },
36
+ details: "Ranks content against a query string. To simply enumerate a resource, prefer its `… list` verb.",
37
+ skills: [{
38
+ skill: "core",
39
+ purpose: "search vs. list"
40
+ }],
41
+ requires: ["search.query"],
42
+ args: {
43
+ ...outputFlags,
44
+ ...listFlagsWithDefaultLimit(DEFAULT_LIMIT),
45
+ ...profileFlag,
46
+ ...connectionFlags,
47
+ query: {
48
+ type: "positional",
49
+ description: "Search query string",
50
+ required: false
51
+ },
52
+ models: listFlag({
53
+ type: "string",
54
+ description: SEARCH_MODELS_DESCRIPTION,
55
+ alias: "m"
56
+ }),
57
+ archived: {
58
+ type: "boolean",
59
+ description: "Search only archived items (instead of only active ones)",
60
+ default: false
61
+ },
62
+ "db-id": {
63
+ type: "string",
64
+ description: "Restrict to items on a given database id"
65
+ },
66
+ verified: {
67
+ type: "boolean",
68
+ description: "Only verified content"
69
+ },
70
+ collection: {
71
+ type: "string",
72
+ description: "Restrict to one collection by id: its own row, subcollections and the content filed under them, never segments, measures or transforms (dashboard questions need --include-dashboard-questions)"
73
+ },
74
+ "created-by": listFlag({
75
+ type: "string",
76
+ description: "Comma-separated user ids; matches items created by any of them (drops models with no creator)"
77
+ }),
78
+ "search-native-query": {
79
+ type: "boolean",
80
+ description: "Also match native query text; narrows to cards, models, metrics, actions and transforms"
81
+ },
82
+ "include-metadata": {
83
+ type: "boolean",
84
+ description: "Attach result_metadata to card, model and metric rows (needs --json --full, or --fields naming result_metadata)"
85
+ },
86
+ "include-dashboard-questions": {
87
+ type: "boolean",
88
+ description: "Also match questions saved into a dashboard (excluded by default)"
89
+ }
90
+ },
91
+ outputSchema: SearchListEnvelope,
92
+ examples: [
93
+ "mb search orders",
94
+ "mb search --models card,dashboard --limit 10 --json",
95
+ "mb search products --archived",
96
+ "mb search --collection 12 --created-by 3,7 --include-dashboard-questions --json",
97
+ "mb search revenue --search-native-query --include-metadata --full --json"
98
+ ],
99
+ async run({ args, ctx, getClient }) {
100
+ const tableDbIdRaw = args["db-id"];
101
+ const tableDbId = tableDbIdRaw === void 0 ? void 0 : parseId(tableDbIdRaw, "--db-id");
102
+ const models = parseEnumCsv(args.models, SearchModel, "--models");
103
+ const collection = args.collection === void 0 ? void 0 : parseId(args.collection, "--collection");
104
+ const createdByRaw = args["created-by"];
105
+ const createdBy = createdByRaw === void 0 ? void 0 : parseIdCsv(createdByRaw, "--created-by");
106
+ const includeMetadata = args["include-metadata"] === true;
107
+ if (includeMetadata && !printsResultMetadata(ctx)) throw new ConfigError("--include-metadata needs --json --full, or --fields naming result_metadata: every other output drops it");
108
+ const q = parseOptionalText(args.query, "query");
109
+ const { data, total } = await (await getClient()).search.query({
110
+ q,
111
+ models,
112
+ archived: args.archived ? true : void 0,
113
+ limit: ctx.range.limit,
114
+ offset: ctx.range.offset,
115
+ table_db_id: tableDbId,
116
+ verified: args.verified ? true : void 0,
117
+ collection,
118
+ created_by: createdBy,
119
+ search_native_query: args["search-native-query"] ? true : void 0,
120
+ include_metadata: includeMetadata ? true : void 0,
121
+ include_dashboard_questions: args["include-dashboard-questions"] ? true : void 0
122
+ });
123
+ renderList(windowServerPage(data, total, ctx.range), searchResultView, ctx);
124
+ }
125
+ });
126
+ function printsResultMetadata(ctx) {
127
+ if (ctx.fields !== void 0) return ctx.fields.some((path) => path === RESULT_METADATA || path.startsWith(`${RESULT_METADATA}.`));
128
+ return ctx.full && ctx.format === "json";
129
+ }
130
+ //#endregion
131
+ export { search_default as default };
@@ -0,0 +1,85 @@
1
+ import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, at as ConfigError, d as renderList, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { t as collectForOutput } from "./window-CI_QD04s.mjs";
5
+ import { n as parseText } from "./parse-text-T0lTXzTZ.mjs";
6
+ import { n as FieldValueLabel, o as fieldValueLabelView, u as toValueLabel } from "./field-wmN6raOG.mjs";
7
+ //#region src/commands/field/search.ts
8
+ const FieldSearchListEnvelope = listEnvelopeSchema(FieldValueLabel);
9
+ function fieldSearchValue(value, limit) {
10
+ if (value === void 0) {
11
+ if (limit === void 0) throw new ConfigError("--limit is required when --value is absent");
12
+ return;
13
+ }
14
+ return parseText(value, "--value");
15
+ }
16
+ const FIRST_SEARCH_SPAN = 1e3;
17
+ const SEARCH_SPAN_GROWTH = 2;
18
+ async function* searchPages(searchRows, request) {
19
+ const windowSpan = request.max ?? Number.POSITIVE_INFINITY;
20
+ let span = Math.min(windowSpan, FIRST_SEARCH_SPAN);
21
+ let seen = request.offset;
22
+ let filledBound = true;
23
+ while (filledBound) {
24
+ const bound = request.offset + span;
25
+ const rows = await searchRows(bound);
26
+ yield {
27
+ items: rows.slice(seen).map(toValueLabel),
28
+ total: null
29
+ };
30
+ filledBound = rows.length === bound && span < windowSpan;
31
+ seen = bound;
32
+ span = Math.min(span * SEARCH_SPAN_GROWTH, windowSpan);
33
+ }
34
+ }
35
+ var search_default = defineMetabaseCommand({
36
+ meta: {
37
+ name: "search",
38
+ description: "Search a field's values, answering them paired with the values of another field"
39
+ },
40
+ details: "Each row is a distinct pair of a value of `<id>` and the value of `<search-id>` on the same warehouse row, ordered by value. A FK on either side is followed to the key it points at, so searching an id column by a name column answers id/name pairs; after that both fields must be on one table, and a pair that is not answers no rows rather than an error, as does any failure of the warehouse query. `--value` keeps the rows whose `<search-id>` value contains it, case-insensitively; without it the first `--limit` rows are answered, so one of the two is required. `label` is null when `<id>` and `<search-id>` resolve to the same field once FKs are followed. A field with custom display values answers every mapped value instead, with its display value as `label`, matching `--value` against the display value and ignoring `<search-id>`. The endpoint takes no offset and reports no count, so `total` is null, every request asks for the rows from the first, at most 1000 at first and twice as many on each request after until the window is covered, and `has_more` is proven by one row fetched past it.",
41
+ requires: ["field.search"],
42
+ args: {
43
+ ...outputFlags,
44
+ ...listFlags,
45
+ limit: {
46
+ type: "string",
47
+ description: "Max items to return; required without --value (with it, default: as many as fit the output cap)"
48
+ },
49
+ ...profileFlag,
50
+ ...connectionFlags,
51
+ id: {
52
+ type: "positional",
53
+ description: "Field id whose values are answered",
54
+ required: true
55
+ },
56
+ "search-id": {
57
+ type: "positional",
58
+ description: "Field id whose values are searched",
59
+ required: true
60
+ },
61
+ value: {
62
+ type: "string",
63
+ description: "Text the searched values must contain (case-insensitive)"
64
+ }
65
+ },
66
+ outputSchema: FieldSearchListEnvelope,
67
+ examples: [
68
+ "mb field search 100 101 --value ada",
69
+ "mb field search 100 101 --value ada --limit 5 --json",
70
+ "mb field search 100 101 --limit 20 --json"
71
+ ],
72
+ async run({ args, ctx, getClient }) {
73
+ const id = parseId(args.id);
74
+ const searchId = parseId(args["search-id"], "search-id");
75
+ const value = fieldSearchValue(args.value, ctx.range.limit);
76
+ const client = await getClient();
77
+ const searchRows = (limit) => client.field.search(id, searchId, value === void 0 ? { limit } : {
78
+ value,
79
+ limit
80
+ });
81
+ renderList(await collectForOutput((request) => searchPages(searchRows, request), fieldValueLabelView, ctx), fieldValueLabelView, ctx);
82
+ }
83
+ });
84
+ //#endregion
85
+ export { search_default as default };
@@ -1,4 +1,4 @@
1
- import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
1
+ import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
2
2
  //#region src/commands/segment/index.ts
3
3
  var segment_default = defineCommandGroup({
4
4
  name: "segment",
@@ -11,11 +11,11 @@ var segment_default = defineCommandGroup({
11
11
  purpose: "define reusable segments"
12
12
  }],
13
13
  subCommands: {
14
- list: () => import("./list-BfLo1xI8.mjs").then((mod) => mod.default),
15
- get: () => import("./get-BLjcCXp8.mjs").then((mod) => mod.default),
16
- create: () => import("./create-D4Y69cDF.mjs").then((mod) => mod.default),
17
- update: () => import("./update-NGq0yXZk.mjs").then((mod) => mod.default),
18
- archive: () => import("./archive-o5cWV3vZ.mjs").then((mod) => mod.default)
14
+ list: () => import("./list-Dzzt6Yee.mjs").then((mod) => mod.default),
15
+ get: () => import("./get-BjqqFG2m.mjs").then((mod) => mod.default),
16
+ create: () => import("./create-R0Q-nRlq.mjs").then((mod) => mod.default),
17
+ update: () => import("./update-BnIEN390.mjs").then((mod) => mod.default),
18
+ archive: () => import("./archive-BbNqts-V.mjs").then((mod) => mod.default)
19
19
  }
20
20
  });
21
21
  //#endregion
@@ -1,6 +1,6 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as parseId } from "./parse-id-whJX4DAb.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/alert/send.ts
6
6
  const AlertSendResult = z.object({
@@ -1,9 +1,9 @@
1
- import { H as outputFlags, U as profileFlag, _ as formatScalar, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as readBody } from "./body-Cu94pH4P.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags, v as formatScalar } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as readBody } from "./body-CB2eDFFb.mjs";
4
4
  import { r as SettingValue } from "./setting-DTiLCW8g.mjs";
5
5
  import { t as settingValueView } from "./setting-CwRYgHYN.mjs";
6
- import { t as parseSettingKey } from "./key-PYetuQ13.mjs";
6
+ import { t as parseSettingKey } from "./key-BynJSK9u.mjs";
7
7
  import { z } from "zod";
8
8
  //#region src/commands/setting/set.ts
9
9
  const SettingValueInput = z.unknown().describe("Any JSON value; the setting's own type constraints are enforced server-side");
@@ -1,7 +1,7 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
3
  import { n as TransformJobActiveResult } from "./transform-job-CCguL6LP.mjs";
4
- import { t as parseEnumFlag } from "./parse-enum-Dc0dMZ3P.mjs";
4
+ import { t as parseEnumFlag } from "./parse-enum-CLIXMsd8.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/transform-job/set-active.ts
7
7
  const ActiveWord = z.enum(["true", "false"]);
@@ -0,0 +1,57 @@
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as parseId } from "./parse-id-7ja3HUdB.mjs";
4
+ import { f as FieldWithDataSensitivity, i as FieldDataSensitivity } from "./field-5nivEfd6.mjs";
5
+ import { t as parseEnumFlag } from "./parse-enum-CLIXMsd8.mjs";
6
+ import { l as fieldWithDataSensitivityView } from "./field-wmN6raOG.mjs";
7
+ import { z } from "zod";
8
+ //#region src/commands/field/set-sensitivity.ts
9
+ const NONE = "none";
10
+ const SensitivityArg = z.enum([...FieldDataSensitivity.options, NONE]);
11
+ function parseSensitivity(value) {
12
+ const parsed = parseEnumFlag(value, SensitivityArg, "label");
13
+ return parsed === NONE ? null : parsed;
14
+ }
15
+ function summarize(field, sensitivity) {
16
+ if (sensitivity !== null) return `Labelled field ${field.id} "${field.display_name}" as ${sensitivity}.`;
17
+ const unset = `Field ${field.id} "${field.display_name}" carries no hand-set label`;
18
+ if (field.data_sensitivity === null) return `${unset} and is unlabelled.`;
19
+ return `${unset} and shows the classifier's ${field.data_sensitivity}.`;
20
+ }
21
+ var set_sensitivity_default = defineMetabaseCommand({
22
+ meta: {
23
+ name: "set-sensitivity",
24
+ description: "Label a field's data sensitivity by hand, or withdraw the label with `none`"
25
+ },
26
+ details: "A label set here is a person's call that the server's classifier never overwrites; `none` withdraws it, and the field then shows the label the classifier wrote, if it wrote one, else none. Answers the field with its `data_sensitivity`.",
27
+ requires: ["field.setDataSensitivity"],
28
+ args: {
29
+ ...outputFlags,
30
+ ...profileFlag,
31
+ ...connectionFlags,
32
+ id: {
33
+ type: "positional",
34
+ description: "Field id",
35
+ required: true
36
+ },
37
+ label: {
38
+ type: "positional",
39
+ description: `Sensitivity label (${SensitivityArg.options.join(" | ")})`,
40
+ required: true
41
+ }
42
+ },
43
+ outputSchema: FieldWithDataSensitivity,
44
+ examples: [
45
+ "mb field set-sensitivity 100 PII",
46
+ "mb field set-sensitivity 100 none",
47
+ "mb field set-sensitivity 100 PHI --json"
48
+ ],
49
+ async run({ args, ctx, getClient }) {
50
+ const id = parseId(args.id);
51
+ const sensitivity = parseSensitivity(args.label);
52
+ const field = await (await getClient()).field.setDataSensitivity(id, { data_sensitivity: sensitivity });
53
+ renderSummary(field, fieldWithDataSensitivityView, summarize(field, sensitivity), ctx);
54
+ }
55
+ });
56
+ //#endregion
57
+ export { set_sensitivity_default as default };
@@ -1,4 +1,4 @@
1
- import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
1
+ import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
2
2
  //#region src/commands/setting/index.ts
3
3
  var setting_default = defineCommandGroup({
4
4
  name: "setting",
@@ -8,9 +8,9 @@ var setting_default = defineCommandGroup({
8
8
  purpose: "setting get/set JSON value quoting"
9
9
  }],
10
10
  subCommands: {
11
- list: () => import("./list-BZnf3RmA.mjs").then((m) => m.default),
12
- get: () => import("./get-CTp5l7aU.mjs").then((m) => m.default),
13
- set: () => import("./set-D77qUZML.mjs").then((m) => m.default)
11
+ list: () => import("./list-DUcnAb1h.mjs").then((m) => m.default),
12
+ get: () => import("./get-D_v1IAL1.mjs").then((m) => m.default),
13
+ set: () => import("./set-BDkT37OT.mjs").then((m) => m.default)
14
14
  }
15
15
  });
16
16
  //#endregion
@@ -1,6 +1,6 @@
1
- import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-nCPku2nN.mjs";
3
- import { t as readBody } from "./body-Cu94pH4P.mjs";
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-B8RtMb4B.mjs";
3
+ import { t as readBody } from "./body-CB2eDFFb.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { n as SetupResult, r as SetupResultCompact, t as SetupInput } from "./setup-CO7QV-ao.mjs";
6
6
  //#region src/output/views/setup.ts
@@ -1,4 +1,4 @@
1
- import { X as AbortError, et as MetabaseError, ot as errorMessage } from "./cli.mjs";
1
+ import { pt as errorMessage, rt as AbortError, st as MetabaseError } from "./cli.mjs";
2
2
  //#region ../client/src/signal.ts
3
3
  function combineAborts(...signals) {
4
4
  return AbortSignal.any(signals.filter((signal) => signal !== void 0));