@metabase/cli 0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a → 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 (305) hide show
  1. package/dist/{add-collection-B_-eMU_k.mjs → add-collection-CC6KSwjX.mjs} +5 -5
  2. package/dist/{alert-Dalin_DD.mjs → alert-Dt6La9tK.mjs} +7 -7
  3. package/dist/{alerts-DpBgrjPI.mjs → alerts-ClKnJqgB.mjs} +6 -6
  4. package/dist/{append-C1JNVALm.mjs → append-pnaQWP_A.mjs} +4 -4
  5. package/dist/{archive-B51prFgS.mjs → archive-By1pLYtO.mjs} +3 -3
  6. package/dist/{archive-CwITzj_j.mjs → archive-CLu2TGW5.mjs} +5 -5
  7. package/dist/{archive-52ZHbFDm2.mjs → archive-COP9joWU.mjs} +4 -4
  8. package/dist/{archive-cAdUa1-2.mjs → archive-CSnBFcQ_.mjs} +3 -3
  9. package/dist/{archive-DA3OiLEE.mjs → archive-Ct1eyolN.mjs} +3 -3
  10. package/dist/{archive-CdKf_Eqq.mjs → archive-D7nAQcCz.mjs} +3 -3
  11. package/dist/{archive-CISXgZAI.mjs → archive-DEDA48w3.mjs} +5 -5
  12. package/dist/{archive-DVHxeDKS.mjs → archive-DJAsSzCz.mjs} +5 -5
  13. package/dist/{archive-BkITQyWW.mjs → archive-DtabbPUk.mjs} +4 -4
  14. package/dist/{archive-DckxlWBt.mjs → archive-YNpa8daf.mjs} +3 -3
  15. package/dist/{archive-CicPYX27.mjs → archive-ewitrKdx.mjs} +5 -5
  16. package/dist/{auth-A96JOCQx.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-CbcwWYL9.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-DpDcVY7M.mjs → cancel-DP03dXBf.mjs} +3 -3
  27. package/dist/{cancel-task-B4RDvIYb.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-BC0JX8Yg.mjs → cards-Cn2ywFTJ.mjs} +6 -6
  32. package/dist/cli.mjs +410 -111
  33. package/dist/{client-ClL6gf7G.mjs → client-ToLiPu9q.mjs} +785 -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-Dv0l-V9K.mjs → collection-namespace-CWW6hZxK.mjs} +2 -2
  38. package/dist/{content-translation-BXIXL4eW.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-BbjSOTN-.mjs → create-B2tuInV9.mjs} +4 -4
  43. package/dist/{create-Za1EskpV.mjs → create-B3TKri1E.mjs} +4 -4
  44. package/dist/{create--fiwuTWc.mjs → create-B4gXKDRr.mjs} +3 -3
  45. package/dist/create-B63JphYe.mjs +34 -0
  46. package/dist/{create-NCKHHdov.mjs → create-BH6kLjHS.mjs} +4 -4
  47. package/dist/{create-Dhai9zAt.mjs → create-BwifyhyL.mjs} +3 -3
  48. package/dist/{create-DWFJdyIr.mjs → create-Colz5bOO.mjs} +3 -3
  49. package/dist/{create-BcsVwXgS2.mjs → create-CulUZgN1.mjs} +4 -4
  50. package/dist/{create-D--Z1S3p2.mjs → create-Cxuqr3kT.mjs} +6 -6
  51. package/dist/{create-Bryrkb9g.mjs → create-CzW_UTE7.mjs} +6 -6
  52. package/dist/{create-kZIIEN2Y.mjs → create-DNR8RMvV.mjs} +6 -6
  53. package/dist/{create-DmN2gFc4.mjs → create-DSHeoV7e.mjs} +4 -4
  54. package/dist/{create-BVNhtAgF.mjs → create-DWbW2WSc.mjs} +6 -6
  55. package/dist/{create-CHr8MPPq.mjs → create-Dx8nfjGs.mjs} +3 -3
  56. package/dist/{create-B9qXQ_wV.mjs → create-XGomrTz5.mjs} +5 -5
  57. package/dist/{create-branch-CseVn3lp.mjs → create-branch-DxL7KUZp.mjs} +4 -4
  58. package/dist/{create-YetX69Re.mjs → create-g1f2yJ4s.mjs} +3 -3
  59. package/dist/{csv-DNzesu8y.mjs → csv-C6TEfLMi.mjs} +4 -4
  60. package/dist/{current-task-DRTKZcP9.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-BDijt81U.mjs → db-BFSeETMO.mjs} +7 -7
  68. package/dist/{delete-Dc8E5YwZ.mjs → delete-BUKgSJhh.mjs} +4 -4
  69. package/dist/{delete-BxjJ66BS.mjs → delete-CPBByycV.mjs} +4 -4
  70. package/dist/{delete-wFsy80db.mjs → delete-Cucqn4-V.mjs} +4 -4
  71. package/dist/{delete--15it-A8.mjs → delete-D79TlpcE.mjs} +4 -4
  72. package/dist/delete-DZJxBmdU.mjs +44 -0
  73. package/dist/{delete-BudvZkvK.mjs → delete-DndykJn2.mjs} +4 -4
  74. package/dist/delete-runtime-BbmRg_in.mjs +55 -0
  75. package/dist/{delete-table-5AQpn8OB.mjs → delete-table-CbsWcjh5.mjs} +4 -4
  76. package/dist/{dependencies-C1ogC3BV.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-CSLDYO-K.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-Ddap1OAo.mjs → download-DluF-vnU.mjs} +2 -2
  87. package/dist/{eid-HnrWhPoe.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-CXqetjcS.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-DxHxuxwO.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-eJilYnHk.mjs → get-B8DUMrCw.mjs} +5 -5
  101. package/dist/{get-C3cuZNeW.mjs → get-BGqvoGQM.mjs} +3 -3
  102. package/dist/{get-DmKtPNOy.mjs → get-BSUsfysk.mjs} +3 -3
  103. package/dist/{get-DW7mCaGe.mjs → get-BXsLkoit.mjs} +5 -5
  104. package/dist/{get-Dtre5jzh.mjs → get-BXssHyJ1.mjs} +5 -5
  105. package/dist/get-Bct52yPw.mjs +36 -0
  106. package/dist/{get-BiPclcIP.mjs → get-Besqwy32.mjs} +3 -3
  107. package/dist/{get-BcoJ9Aha.mjs → get-BfSX-OeS.mjs} +3 -3
  108. package/dist/{get-BF2vdF3W.mjs → get-Biy4gOzu2.mjs} +3 -3
  109. package/dist/{get-C_tdSMwW2.mjs → get-CYIeiTZ9.mjs} +4 -4
  110. package/dist/{get-b0CoPz5B.mjs → get-CaEiQnSw.mjs} +4 -4
  111. package/dist/{get-CxUQyhte.mjs → get-Cl81y0Md.mjs} +5 -5
  112. package/dist/{get-B2pj2q3X.mjs → get-D1NjMXAH.mjs} +4 -4
  113. package/dist/{get-D_x-ENFe.mjs → get-D2cPuOPR.mjs} +5 -5
  114. package/dist/{get-DjlQhgD4.mjs → get-DITlshJH.mjs} +3 -3
  115. package/dist/{get-CE9_4Q7E.mjs → get-DLyg6Al9.mjs} +3 -3
  116. package/dist/{get-CDnmpfHQ.mjs → get-DQZfaVNq.mjs} +4 -4
  117. package/dist/{get-BGLvyOO3.mjs → get-DtBqoGTa.mjs} +5 -5
  118. package/dist/{get-H6kInHIx.mjs → get-_ik_5_lQ.mjs} +5 -5
  119. package/dist/{get-run-BE1HtJDW.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-Cj1KhBOT.mjs → has-remote-changes-B8MmN6yh.mjs} +4 -4
  129. package/dist/{import-DLb9VN4l.mjs → import-Bhq15KgP.mjs} +19 -8
  130. package/dist/{input-D5tQEfqN.mjs → input-D8qW-KtR.mjs} +6 -2
  131. package/dist/{is-dirty-BxtgV2xF.mjs → is-dirty-CAsVuVx8.mjs} +2 -2
  132. package/dist/{items-DLUYc5-z.mjs → items-BZJomiDE.mjs} +8 -8
  133. package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
  134. package/dist/{library-BNSxXOpc.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-BUz6KOfw.mjs → list-B2uUl26x.mjs} +6 -6
  138. package/dist/{list-CERbeLbQ.mjs → list-B4luDSYj.mjs} +6 -6
  139. package/dist/{list-jhQSgh6i.mjs → list-B8ND9t2h.mjs} +3 -3
  140. package/dist/{list-M8J10Ozk.mjs → list-BT5t8ZOl.mjs} +4 -4
  141. package/dist/{list-Dat8QNcf.mjs → list-BT7xiUQe.mjs} +3 -3
  142. package/dist/{list-cIMww2Me.mjs → list-BWFCv_zk.mjs} +5 -5
  143. package/dist/{list-B1soS8QW.mjs → list-BtZVe1Nq.mjs} +6 -6
  144. package/dist/{list-C5mS_ehX.mjs → list-BwdSG-P5.mjs} +5 -5
  145. package/dist/{list-BQnOEB3W.mjs → list-C-A-2HFq.mjs} +3 -3
  146. package/dist/list-C9x--9Jq.mjs +101 -0
  147. package/dist/{list-CX9qZ-bx.mjs → list-CCdXig7b.mjs} +4 -4
  148. package/dist/{list-Sd7jGZoX.mjs → list-CJDFoOHb.mjs} +3 -3
  149. package/dist/{list-CzRzCbCY.mjs → list-CLFu3mQB.mjs} +3 -3
  150. package/dist/{list-CBLxhaNZ.mjs → list-Cd40Kr0R.mjs} +3 -3
  151. package/dist/{list-COLpwXW4.mjs → list-Cj_mTxbY.mjs} +4 -4
  152. package/dist/{list-CQbiSx26.mjs → list-CtS50R7m.mjs} +5 -5
  153. package/dist/{list-CehE6KBV.mjs → list-CvZyTwmV.mjs} +5 -5
  154. package/dist/list-DcnNlYQA.mjs +35 -0
  155. package/dist/{list-BcP1DTJH.mjs → list-DtgbtE3_.mjs} +3 -3
  156. package/dist/{login-BfLqBfCd.mjs → login-Bi_nGMJ9.mjs} +6 -6
  157. package/dist/{logout-BpRXB3Ze.mjs → logout-CiHQJWTu.mjs} +2 -2
  158. package/dist/{measure-Ds8O5Evr.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-DhrkLXoN.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-_GHFrTLx.mjs → path-K6LPLYPb.mjs} +4 -4
  167. package/dist/{poll-KLl4Eq8Y.mjs → poll-Dz4tUm2f.mjs} +2 -2
  168. package/dist/{preflight-BpYtF0IU.mjs → preflight-CX6cqB90.mjs} +3 -3
  169. package/dist/{process-CLtOWKBn.mjs → process-D0HdqZ3r.mjs} +1 -1
  170. package/dist/{publish-D-7Zlmuk.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-B1CZztxs.mjs → query-DmvkyDfo.mjs} +14 -33
  174. package/dist/remapping-CPAvDKHV.mjs +53 -0
  175. package/dist/{remove-collection-C4saCFxz.mjs → remove-collection-Bg-sNX3U.mjs} +5 -5
  176. package/dist/{render-6O_eF-P1.mjs → render-BSfDD6ip.mjs} +2 -2
  177. package/dist/{replace-BuR4f2Ai.mjs → replace-RCHeZLUT.mjs} +4 -4
  178. package/dist/{rescan-values-CNOiiWQ5.mjs → rescan-values-CpDGYZvf.mjs} +5 -5
  179. package/dist/rescan-values-PeMnpaFY.mjs +32 -0
  180. package/dist/{run-DijA_BXt.mjs → run-CaQ7kubO.mjs} +3 -3
  181. package/dist/{run-QEUbWNm7.mjs → run-DkRkZRgf.mjs} +7 -7
  182. package/dist/{runs-BSlhVeDO.mjs → runs-BDjoVJ0P.mjs} +5 -5
  183. package/dist/{runtime-Dtb93zKy.mjs → runtime-CZ5zh32z.mjs} +21 -82
  184. package/dist/{schema-tables-BE3rEb6I.mjs → schema-tables-C2qjLcPq.mjs} +6 -6
  185. package/dist/{schemas-yDjBiwlH.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-Cm6zQjJW.mjs → segment-Bi6eqj3e.mjs} +6 -6
  189. package/dist/{send-kC8oerkT.mjs → send-CAjgVNlA.mjs} +3 -3
  190. package/dist/{set-tFhPkxrL.mjs → set-BXTkYWid.mjs} +4 -4
  191. package/dist/{set-active-lDKhAlij.mjs → set-active-CBQVCePU.mjs} +3 -3
  192. package/dist/set-sensitivity-D39kGTob.mjs +57 -0
  193. package/dist/{setting-DrJXCaFE.mjs → setting-CPkvkc4H.mjs} +4 -4
  194. package/dist/{setup-BWY9M0iR.mjs → setup-Be3xDXHi.mjs} +3 -3
  195. package/dist/{signal-Csom0mt5.mjs → signal-CxWeLszu.mjs} +1 -1
  196. package/dist/{skill-list-CCes8pKe.mjs → skill-list-CBGq30sI.mjs} +2 -2
  197. package/dist/{skills-DE9ej5Rg.mjs → skills-CJ9eXouJ.mjs} +2 -2
  198. package/dist/{skills-DPRN2384.mjs → skills-DyiLycMY.mjs} +3 -3
  199. package/dist/snippet-QirK70R_.mjs +19 -0
  200. package/dist/{stash-C9oDvQ9P.mjs → stash-BVN3s5N_.mjs} +6 -6
  201. package/dist/{status-CkpujA26.mjs → status-BtbMmIWo.mjs} +7 -7
  202. package/dist/{status-DSdXmNC3.mjs → status-CxP6w3aL.mjs} +3 -3
  203. package/dist/{subscription-DKOKoHRG.mjs → subscription-Dr-YHARg.mjs} +6 -6
  204. package/dist/{subscriptions-C5SyJL4B.mjs → subscriptions-8tM8TTeQ.mjs} +6 -6
  205. package/dist/{summary-DTPgXsc0.mjs → summary-DKx6ptQe.mjs} +5 -5
  206. package/dist/sync-schema-B8RY0Ra4.mjs +32 -0
  207. package/dist/{sync-schema-DKKkNSR7.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-n4Lzet7l.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-D6NXqWaX.mjs → transform-tag-nTb0Ivpj.mjs} +5 -5
  220. package/dist/{transforms-O4NtXqFz.mjs → transforms-BSsAfwAg.mjs} +5 -5
  221. package/dist/tree-lMvw1jnZ.mjs +34 -0
  222. package/dist/{unpublish-DvWefKJi.mjs → unpublish-CYFDd828.mjs} +3 -3
  223. package/dist/unreferenced-8Xdq76Kw.mjs +36 -0
  224. package/dist/{update-AJ2JmwDl.mjs → update-6P_GYCLT.mjs} +5 -5
  225. package/dist/{update-76nzOc71.mjs → update-B28EJzrx.mjs} +13 -8
  226. package/dist/{update-To6A1Ugu.mjs → update-BDunZa7G.mjs} +4 -4
  227. package/dist/{update-2KIpYgyj.mjs → update-BT2yNB_g.mjs} +6 -6
  228. package/dist/{update-DmgRIp7o.mjs → update-BnMUSFYZ.mjs} +4 -4
  229. package/dist/update-BwrYeKso.mjs +41 -0
  230. package/dist/{update-DOdcflLH.mjs → update-C7DEMiu-.mjs} +7 -7
  231. package/dist/{update-CGJvIS-l.mjs → update-CITzAFG8.mjs} +4 -4
  232. package/dist/update-CLl8tE20.mjs +181 -0
  233. package/dist/{update-BB6Go_RX.mjs → update-CM5uuhjB.mjs} +4 -4
  234. package/dist/{update-xEegxIyH.mjs → update-CQXcsvaa.mjs} +5 -5
  235. package/dist/{update-DV54H3L5.mjs → update-Cs2zv_L2.mjs} +7 -7
  236. package/dist/{update-Bah7N8QX.mjs → update-D--Fw7-_.mjs} +5 -5
  237. package/dist/{update-H_fdjugs.mjs → update-D9p0N8ky.mjs} +4 -4
  238. package/dist/{update-7oKvP1HC.mjs → update-DAzRx0of.mjs} +5 -5
  239. package/dist/{update-DXmZuJho.mjs → update-D_DCOOAB.mjs} +6 -6
  240. package/dist/{update-D7dG7H-z.mjs → update-_sYM1GuU.mjs} +7 -7
  241. package/dist/{update-dashcard-DjT5QOkL.mjs → update-dashcard-VNnIqHDI.mjs} +6 -6
  242. package/dist/{upgrade-CuJx9fX4.mjs → upgrade-Tj_reACv.mjs} +4 -4
  243. package/dist/upload-BKxOpSz3.mjs +13 -0
  244. package/dist/{upload-DOO94rCQ.mjs → upload-C2fhpKkP.mjs} +2 -2
  245. package/dist/{upload-CboARPZm.mjs → upload-Dg91ldGg.mjs} +3 -3
  246. package/dist/{uuid-InwZlrpQ.mjs → uuid-Blpv_e0S.mjs} +2 -2
  247. package/dist/{validate-D6-Vg_kn.mjs → validate-D7e110oU.mjs} +1 -1
  248. package/dist/{validate-query-B90KYPQr.mjs → validate-query-C7LuKiUT.mjs} +2 -2
  249. package/dist/{values-CsZLk1Ls.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-DrGjZwBM.mjs → verify-Mpb65a5v.mjs} +3 -3
  253. package/dist/verify-flags-CMpRkMPa.mjs +58 -0
  254. package/dist/{wait-BmzdarP9.mjs → wait-CaH6XHQV.mjs} +6 -6
  255. package/dist/{wait-flags-CiJGrTCT.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 +24 -23
  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/skill-data/transform/SKILL.md +1 -63
  265. package/dist/body-CshgcV6U.mjs +0 -17
  266. package/dist/card-CefVYtF7.mjs +0 -24
  267. package/dist/collection-Be5AHVWP.mjs +0 -20
  268. package/dist/create-DiJ8bUb-.mjs +0 -34
  269. package/dist/dashboard-CMw13KXM.mjs +0 -33
  270. package/dist/database-JtHTqSpq.mjs +0 -26
  271. package/dist/delete-Bsdwqh7H.mjs +0 -44
  272. package/dist/delete-runtime-BKEzJn22.mjs +0 -49
  273. package/dist/document-BGzVip5_.mjs +0 -19
  274. package/dist/export-IFZdgYZ2.mjs +0 -63
  275. package/dist/field-BJ6HoLRd.mjs +0 -18
  276. package/dist/field-fDtIrY6D.mjs +0 -80
  277. package/dist/get-i0KInCw9.mjs +0 -32
  278. package/dist/get-jofVjU6e.mjs +0 -31
  279. package/dist/git-sync-TjX1r_wF.mjs +0 -136
  280. package/dist/git-sync-xKC1sqC4.mjs +0 -28
  281. package/dist/list-Cuhf2lKL.mjs +0 -35
  282. package/dist/list-D-SyhKFw.mjs +0 -34
  283. package/dist/parse-id-DtM6q9HU.mjs +0 -10
  284. package/dist/query-CxESKMve.mjs +0 -114
  285. package/dist/query-result-E4Q-Gra6.mjs +0 -15
  286. package/dist/run-FmRruANb.mjs +0 -64
  287. package/dist/search-CR_xNArA.mjs +0 -97
  288. package/dist/selectors-C-vgMcGK.mjs +0 -35
  289. package/dist/snippet-DWHTSo9c.mjs +0 -19
  290. package/dist/sync-task-BtDnTXCP.mjs +0 -38
  291. package/dist/table-C6h4tIRw.mjs +0 -37
  292. package/dist/table-I8NXSdUC.mjs +0 -18
  293. package/dist/timeline-B_ESH-6W.mjs +0 -21
  294. package/dist/transform-BNuNiH9d.mjs +0 -28
  295. package/dist/transform-job-B7yc6dfH.mjs +0 -22
  296. package/dist/transform-test-BjjCQ2xm.mjs +0 -169
  297. package/dist/transform-test-C1Oqtfb-.mjs +0 -16
  298. package/dist/transform-test-gzDcbypy.mjs +0 -25
  299. package/dist/transport-CyVo29u7.mjs +0 -313
  300. package/dist/tree-CuyF116R.mjs +0 -26
  301. package/dist/update-l3PyNQKG.mjs +0 -41
  302. package/dist/upload-2YFFBSln.mjs +0 -13
  303. package/skill-data/transform-test-plan/SKILL.md +0 -171
  304. package/skill-data/transform-test-plan/references/checklist.md +0 -81
  305. package/skill-data/transform-test-plan/references/checks.md +0 -263
@@ -0,0 +1,55 @@
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
3
+ import { t as parseId } from "./parse-id-BW09NysN.mjs";
4
+ import { l as tableValuesDiscardResultView, n as TableValuesDiscardResult } from "./table-CxvaDiIZ.mjs";
5
+ import { r as confirmDestructive } from "./delete-runtime-BbmRg_in.mjs";
6
+ //#region src/commands/table/discard-values.ts
7
+ var discard_values_default = defineMetabaseCommand({
8
+ meta: {
9
+ name: "discard-values",
10
+ description: "Discard the cached field values of one table"
11
+ },
12
+ details: "Deletes the cached distinct values behind this table's filter dropdowns, and with them any custom display values set on those values. No scan recreates a discarded set, neither `mb table rescan-values` nor the database's scheduled scan; Metabase rebuilds a set, without its display values, the next time it is read (a filter dropdown, `mb field values <id>`). Asks for confirmation on a terminal; pass --yes to skip it, which a non-interactive run must. To discard a set of tables use `mb table bulk-discard-values`.",
13
+ requires: ["table.discardValues"],
14
+ args: {
15
+ ...outputFlags,
16
+ ...profileFlag,
17
+ ...connectionFlags,
18
+ yes: {
19
+ type: "boolean",
20
+ description: "Skip confirmation",
21
+ default: false
22
+ },
23
+ id: {
24
+ type: "positional",
25
+ description: "Table id",
26
+ required: true
27
+ }
28
+ },
29
+ outputSchema: TableValuesDiscardResult,
30
+ examples: ["mb table discard-values 42 --yes", "mb table discard-values 42"],
31
+ async run({ args, ctx, getClient }) {
32
+ const id = parseId(args.id);
33
+ const client = await getClient();
34
+ if (!await confirmDestructive({
35
+ yes: args.yes,
36
+ action: `discard the field values of table ${id}`,
37
+ promptMessage: `Discard the cached field values of table ${id}, custom display values included?`
38
+ })) {
39
+ renderSummary({
40
+ id,
41
+ discarded: false,
42
+ aborted: true
43
+ }, tableValuesDiscardResultView, `Aborted; the field values of table ${id} were not discarded.`, ctx);
44
+ return;
45
+ }
46
+ await client.table.discardValues(id);
47
+ renderSummary({
48
+ id,
49
+ discarded: true,
50
+ aborted: false
51
+ }, tableValuesDiscardResultView, `Cached field values discarded for table ${id}.`, ctx);
52
+ }
53
+ });
54
+ //#endregion
55
+ export { discard_values_default as default };
@@ -0,0 +1,20 @@
1
+ import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
2
+ //#region src/commands/document/index.ts
3
+ var document_default = defineCommandGroup({
4
+ name: "document",
5
+ description: "Manage Metabase documents",
6
+ skills: [{
7
+ skill: "document",
8
+ purpose: "author the ProseMirror document body"
9
+ }],
10
+ subCommands: {
11
+ list: () => import("./list-CvZyTwmV.mjs").then((mod) => mod.default),
12
+ get: () => import("./get-BXsLkoit.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-XGomrTz5.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-BT2yNB_g.mjs").then((mod) => mod.default),
15
+ copy: () => import("./copy-COLUuiuF.mjs").then((mod) => mod.default),
16
+ archive: () => import("./archive-ewitrKdx.mjs").then((mod) => mod.default)
17
+ }
18
+ });
19
+ //#endregion
20
+ export { document_default as default };
@@ -1,4 +1,4 @@
1
- import { n as DocumentCompact } from "./document-BHpLJbKU.mjs";
1
+ import { n as DocumentCompact } from "./document-DFCj1Az_.mjs";
2
2
  //#region src/output/views/document.ts
3
3
  const documentView = {
4
4
  compactPick: DocumentCompact,
@@ -1,3 +1,4 @@
1
+ import { t as NonBlankText } from "./text-DaNkPRwt.mjs";
1
2
  import { z } from "zod";
2
3
  //#region ../client/src/domain/document.ts
3
4
  const TipTapNode = z.looseObject({
@@ -85,7 +86,7 @@ const DocumentUpdateInput = z.object({
85
86
  cards: z.record(z.string().regex(/^-?\d+$/), DocumentCardInput).nullable().optional().describe("cards keyed by card id; negative ids create new cards")
86
87
  }).loose();
87
88
  z.object({
88
- name: DocumentName.nullable().optional(),
89
+ name: NonBlankText.nullable().optional(),
89
90
  collection_id: z.number().int().positive().nullable().optional(),
90
91
  collection_position: z.number().int().positive().nullable().optional()
91
92
  }).strict();
@@ -1,5 +1,5 @@
1
- import { U as profileFlag, z as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
1
+ import { H as connectionFlags, J as profileFlag } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
3
3
  import { t as pipeToStdout } from "./stream-McixcoUl.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/content-translation/download.ts
@@ -1,6 +1,7 @@
1
- import { H as outputFlags, Q as ConfigError, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
2
- import { n as parseCsv, t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
3
- import { t as readBody } from "./body-CshgcV6U.mjs";
1
+ import { H as connectionFlags, J as profileFlag, at as ConfigError, et as parseCsv, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
3
+ import { r as givenValue } from "./input-D8qW-KtR.mjs";
4
+ import { t as readBody } from "./body-Dd-TwYYL.mjs";
4
5
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
6
  import { a as EidTranslateResultCompact, i as EidTranslateResult, n as EidModel, r as EidTranslateInput, t as EID_MODELS } from "./eid-translation-zEHtr5Oc.mjs";
6
7
  //#region src/output/views/eid-translation.ts
@@ -14,14 +15,14 @@ const eidTranslateView = {
14
15
  //#endregion
15
16
  //#region src/commands/flag-pair.ts
16
17
  function requireBothOrNeither(first, second) {
17
- const firstSet = first.value !== void 0 && first.value !== "";
18
- const secondSet = second.value !== void 0 && second.value !== "";
19
- if (!firstSet && !secondSet) return null;
20
- if (!firstSet) throw new ConfigError(`${first.name} is required when using ${second.name}`);
21
- if (!secondSet) throw new ConfigError(`${second.name} is required when using ${first.name}`);
18
+ const firstValue = givenValue(first.value);
19
+ const secondValue = givenValue(second.value);
20
+ if (firstValue === null && secondValue === null) return null;
21
+ if (firstValue === null) throw new ConfigError(`${first.name} is required when using ${second.name}`);
22
+ if (secondValue === null) throw new ConfigError(`${second.name} is required when using ${first.name}`);
22
23
  return {
23
- first: first.value,
24
- second: second.value
24
+ first: firstValue,
25
+ second: secondValue
25
26
  };
26
27
  }
27
28
  //#endregion
@@ -0,0 +1,20 @@
1
+ import { f as DependencyType } from "./dependency-DKSjKT8P.mjs";
2
+ import { t as parseEnumFlag } from "./parse-enum-CLIXMsd8.mjs";
3
+ //#region src/commands/dependency/entity.ts
4
+ const entityArgs = {
5
+ type: {
6
+ type: "positional",
7
+ description: `Entity kind (${DependencyType.options.join(" | ")})`,
8
+ required: true
9
+ },
10
+ id: {
11
+ type: "positional",
12
+ description: "Entity id",
13
+ required: true
14
+ }
15
+ };
16
+ function parseDependencyType(value) {
17
+ return parseEnumFlag(value, DependencyType, "type");
18
+ }
19
+ //#endregion
20
+ export { parseDependencyType as n, entityArgs as t };
@@ -0,0 +1,42 @@
1
+ import { at as ConfigError } from "./cli.mjs";
2
+ import { r as givenValue } from "./input-D8qW-KtR.mjs";
3
+ import { t as readBody } from "./body-Dd-TwYYL.mjs";
4
+ import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
+ import { r as GlossaryCreateInput } from "./glossary-BlNCrYbw.mjs";
6
+ //#region src/commands/glossary/entry-flags.ts
7
+ const entryFlags = {
8
+ ...bodyInputFlags,
9
+ term: {
10
+ type: "string",
11
+ description: "The term (used with --definition)"
12
+ },
13
+ definition: {
14
+ type: "string",
15
+ description: "The definition (used with --term)"
16
+ }
17
+ };
18
+ /**
19
+ * The flag pair and a body are alternatives, so a `--body` or `--file` beside the flags is refused
20
+ * rather than dropped. A body piped on stdin is not read while the flags are given: telling an
21
+ * idle inherited pipe from one still to send would cost every flag-driven call the stdin wait.
22
+ */
23
+ async function readEntryInput(args) {
24
+ if (args.term === void 0 && args.definition === void 0) return readBody({
25
+ flag: args.body,
26
+ file: args.file
27
+ }, GlossaryCreateInput);
28
+ if (givenValue(args.body) !== null || givenValue(args.file) !== null) throw new ConfigError("--term, --definition cannot be combined with --body or --file");
29
+ if (args.term === void 0) throw new ConfigError("--term is required when using --definition");
30
+ if (args.definition === void 0) throw new ConfigError("--definition is required when using --term");
31
+ return {
32
+ term: parseFlag(GlossaryCreateInput.shape.term, args.term, "--term"),
33
+ definition: parseFlag(GlossaryCreateInput.shape.definition, args.definition, "--definition")
34
+ };
35
+ }
36
+ function parseFlag(schema, value, flag) {
37
+ const parsed = schema.safeParse(value);
38
+ if (!parsed.success) throw new ConfigError(`${flag} ${parsed.error.issues.map((issue) => issue.message).join("; ")}`);
39
+ return parsed.data;
40
+ }
41
+ //#endregion
42
+ export { readEntryInput as n, entryFlags as t };
@@ -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-Dtb93zKy.mjs";
3
- import { t as parseId } from "./parse-id-DtM6q9HU.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-CZ5zh32z.mjs";
3
+ import { t as parseId } from "./parse-id-BW09NysN.mjs";
4
+ import { n as windowList } from "./window-CI_QD04s.mjs";
5
5
  import { a as TimelineEventCompact } from "./timeline-CCSU2qOS.mjs";
6
6
  import { t as timelineEventView } from "./timeline-uDCmwGFT.mjs";
7
7
  //#region src/commands/timeline/events.ts
@@ -0,0 +1,74 @@
1
+ import { H as connectionFlags, J as profileFlag, at as ConfigError, k as warn, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
3
+ import { o as SyncExportResult } from "./git-sync-COokpYgc.mjs";
4
+ import { n as parseWaitFlags, t as gitSyncWaitFlags } from "./wait-flags-rUU4NUrv.mjs";
5
+ import { a as syncExportView } from "./git-sync-DspFahwV.mjs";
6
+ import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask } from "./sync-task-CXFoqlpF.mjs";
7
+ import { t as branchFlag } from "./branch-flag-pFQPNYKr.mjs";
8
+ //#region src/commands/git-sync/export.ts
9
+ var export_default = defineMetabaseCommand({
10
+ meta: {
11
+ name: "export",
12
+ description: "Export Metabase changes back to the configured git remote"
13
+ },
14
+ details: "The export targets the branch git-sync tracks. On Metabase 63+ `--branch` defaults to it and must name it (the server answers 409 for any other branch); older servers export to the branch `--branch` names and switch git-sync to it, refusing with 400 when that branch's tip is not the last synced commit unless --force is given. To push to a new branch, use `git-sync stash` or `git-sync create-branch` first. When the remote has moved past the last sync, a plain export ends in a `conflict` task on 63+ and is refused with 400 on older servers. --merge (63+) folds the remote's changes in by a three-way merge (entities changed on both sides still end in `conflict`), --force overwrites them. `git-sync export-preflight` previews which applies. A task that ends in `conflict` makes the server count the remote commit it saw as synced, so a retry, --merge included, no longer sees the remote's changes: resolve a conflict with --force on the side to keep, or `git-sync create-branch` then export, never with a retry.",
15
+ requires: ["gitSync.export"],
16
+ args: {
17
+ ...outputFlags,
18
+ ...profileFlag,
19
+ ...connectionFlags,
20
+ branch: {
21
+ type: "string",
22
+ description: "Branch to export to (defaults to the remote-sync-branch setting; on 63+ it must be that branch)",
23
+ alias: "b"
24
+ },
25
+ message: {
26
+ type: "string",
27
+ description: "Commit message",
28
+ alias: "m"
29
+ },
30
+ force: {
31
+ type: "boolean",
32
+ description: "Force-push / overwrite remote",
33
+ default: false
34
+ },
35
+ merge: {
36
+ type: "boolean",
37
+ description: "When the remote moved on, fold its changes in by a three-way merge instead of ending in conflict",
38
+ default: false
39
+ },
40
+ ...gitSyncWaitFlags
41
+ },
42
+ outputSchema: SyncExportResult,
43
+ examples: [
44
+ "mb git-sync export -m \"update dashboards\"",
45
+ "mb git-sync export --merge -m \"update dashboards\"",
46
+ "mb git-sync export --branch main --json",
47
+ "mb git-sync export --no-wait"
48
+ ],
49
+ async run({ args, ctx, getClient }) {
50
+ const wait = parseWaitFlags(args);
51
+ if (args.merge && args.force) throw new ConfigError("--merge cannot be combined with --force");
52
+ const branch = branchFlag(args.branch);
53
+ const params = {};
54
+ if (branch !== null) params.branch = branch;
55
+ if (args.message !== void 0 && args.message !== "") params.message = args.message;
56
+ if (args.force) params.force = true;
57
+ if (args.merge) params.merge = true;
58
+ if (wait.enabled) params.wait = taskPollOptions(wait.schedule);
59
+ const result = await (await getClient()).gitSync.export(params);
60
+ if (!wait.enabled) renderSummary(result, syncExportView, `Started export task #${result.task_id}.`, ctx);
61
+ else {
62
+ const final = result.final ?? null;
63
+ renderSummary(result, syncExportView, final === null ? `Export task #${result.task_id} finished.` : formatSyncTask(final), ctx);
64
+ throwIfFailedTask(final, "export");
65
+ }
66
+ emitRealignHint(ctx);
67
+ }
68
+ });
69
+ function emitRealignHint(ctx) {
70
+ if (ctx.format !== "text") return;
71
+ warn("\nNote: if exporting to a host-bound repo, realign the host working tree with:\n git -C <repo-path> restore --staged --worktree .");
72
+ }
73
+ //#endregion
74
+ export { export_default as default };
@@ -0,0 +1,81 @@
1
+ import { at as ConfigError, v as formatScalar, y as renderRows } from "./cli.mjs";
2
+ import { d as PivotExportFormat, u as ExportFormat } from "./card-Bv4ZN0oV.mjs";
3
+ import { t as parseEnumFlag } from "./parse-enum-CLIXMsd8.mjs";
4
+ //#region src/output/query-result.ts
5
+ function formatQueryResult(result) {
6
+ if (result.status !== "completed" || result.data === void 0) {
7
+ const detail = typeof result.error === "string" && result.error !== "" ? `: ${result.error}` : "";
8
+ return `Query ${result.status}${detail}`;
9
+ }
10
+ const head = result.data.cols.map((col) => col.display_name ?? col.name);
11
+ const rowCount = result.row_count ?? result.data.rows.length;
12
+ const summary = `${rowCount} row${rowCount === 1 ? "" : "s"}.`;
13
+ if (result.data.rows.length === 0) return summary;
14
+ return `${renderRows(head, result.data.rows.map((row) => Array.isArray(row) ? row.map((cell) => formatScalar(cell)) : [formatScalar(row)]))}\n${summary}`;
15
+ }
16
+ //#endregion
17
+ //#region src/commands/export-flags.ts
18
+ const PIVOT_FORMATS = PivotExportFormat.options.join(" or ");
19
+ const exportOnlyFlags = {
20
+ "format-rows": {
21
+ type: "boolean",
22
+ description: "Streamed exports only: format values as Metabase displays them, column settings included",
23
+ default: false
24
+ },
25
+ "pivot-results": {
26
+ type: "boolean",
27
+ description: `With --export-format ${PIVOT_FORMATS}: lay a pivot table's rows out as the pivot, with its subtotals; refused when the server has pivoted exports turned off`,
28
+ default: false
29
+ },
30
+ "csv-include-bom": {
31
+ type: "boolean",
32
+ description: "With --export-format csv: open the file with a UTF-8 byte order mark, so Excel reads it as UTF-8",
33
+ default: false
34
+ }
35
+ };
36
+ const exportFlags = {
37
+ "export-format": {
38
+ type: "string",
39
+ description: `Bypass the JSON envelope and stream the raw export: ${ExportFormat.options.join(" | ")}`
40
+ },
41
+ ...exportOnlyFlags
42
+ };
43
+ function isExportOnlyFlag(flag) {
44
+ return flag in exportOnlyFlags;
45
+ }
46
+ const EXPORT_ONLY_FLAGS = Object.keys(exportOnlyFlags).filter(isExportOnlyFlag);
47
+ /**
48
+ * The export the flags ask for, or `null` when `--export-format` is absent. An export-only flag
49
+ * given without a format would be ignored silently, so it is refused.
50
+ */
51
+ function readExportRequest(args) {
52
+ const raw = args["export-format"];
53
+ if (raw === void 0 || raw === "") {
54
+ const stray = EXPORT_ONLY_FLAGS.find((flag) => args[flag]);
55
+ if (stray !== void 0) throw new ConfigError(`--${stray} requires --export-format`);
56
+ return null;
57
+ }
58
+ const format = parseEnumFlag(raw, ExportFormat, "--export-format");
59
+ if (args["csv-include-bom"] && format !== "csv") throw new ConfigError("--csv-include-bom requires --export-format csv");
60
+ if (args["pivot-results"] && !PivotExportFormat.safeParse(format).success) throw new ConfigError(`--pivot-results requires --export-format ${PIVOT_FORMATS}`);
61
+ return {
62
+ format,
63
+ params: {
64
+ format_rows: args["format-rows"],
65
+ pivot_results: args["pivot-results"],
66
+ csv_include_bom: args["csv-include-bom"]
67
+ }
68
+ };
69
+ }
70
+ /**
71
+ * A streamed export is the server's bytes, so a flag that shapes the JSON output would be ignored
72
+ * silently and is refused. `--json` and `--format` still pick the shape of an error report.
73
+ */
74
+ function assertStreamedOutput(ctx) {
75
+ if (ctx.full) throw new ConfigError("--full cannot be combined with --export-format");
76
+ if (ctx.fields !== void 0) throw new ConfigError("--fields cannot be combined with --export-format");
77
+ if (ctx.maxBytesGiven) throw new ConfigError("--max-bytes cannot be combined with --export-format");
78
+ if (ctx.range.limit !== void 0) throw new ConfigError("--limit cannot be combined with --export-format");
79
+ }
80
+ //#endregion
81
+ export { formatQueryResult as i, exportFlags as n, readExportRequest as r, assertStreamedOutput as t };
@@ -0,0 +1,35 @@
1
+ import { H as connectionFlags, J as profileFlag, p as renderSummary, q as outputFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
3
+ import { i as SyncExportPreflight } from "./git-sync-COokpYgc.mjs";
4
+ import { i as syncExportPreflightView, t as formatExportPreflight } from "./git-sync-DspFahwV.mjs";
5
+ import { t as branchFlag } from "./branch-flag-pFQPNYKr.mjs";
6
+ //#region src/commands/git-sync/export-preflight.ts
7
+ var export_preflight_default = defineMetabaseCommand({
8
+ meta: {
9
+ name: "export-preflight",
10
+ description: "Preview what an export would do against the live remote branch, without writing"
11
+ },
12
+ details: "Compares the current Metabase content with the remote branch. `has_changes` says whether the remote has advanced past the last synced version (false when nothing has been synced yet, and after a task that ended in `conflict`, which the server counts as synced), `clean` whether a three-way merge would apply without conflicts, `conflicts` names the entities that would conflict, `summary` counts the remote changes a merge would fold in, `force_push_casualties` names the remote content a force push would discard (empty when nothing has been synced yet, although a forced export then replaces the remote's managed directories wholesale), and `reason` is `history-rewritten` when the remote was force-pushed or rebased so no merge base exists. The branch must be the one git-sync tracks; the server answers 409 otherwise.",
13
+ requires: ["gitSync.exportPreflight", "gitSync.trackedBranch"],
14
+ args: {
15
+ ...outputFlags,
16
+ ...profileFlag,
17
+ ...connectionFlags,
18
+ branch: {
19
+ type: "string",
20
+ description: "Branch to preview against (defaults to the remote-sync-branch setting; must be that branch)",
21
+ alias: "b"
22
+ }
23
+ },
24
+ outputSchema: SyncExportPreflight,
25
+ examples: ["mb git-sync export-preflight", "mb git-sync export-preflight --branch main --json"],
26
+ async run({ args, ctx, getClient }) {
27
+ const given = branchFlag(args.branch);
28
+ const mb = await getClient();
29
+ const branch = given ?? await mb.gitSync.trackedBranch();
30
+ const result = await mb.gitSync.exportPreflight({ branch });
31
+ renderSummary(result, syncExportPreflightView, () => formatExportPreflight(branch, result), ctx);
32
+ }
33
+ });
34
+ //#endregion
35
+ export { export_preflight_default as default };
@@ -187,6 +187,17 @@ const FieldCompact = Field.pick({
187
187
  semantic_type: true,
188
188
  fk_target_field_id: true
189
189
  }).strip();
190
+ const FieldWithDataSensitivity = Field.extend({ data_sensitivity: FieldDataSensitivity.nullable() });
191
+ const FieldDetail = z.union([FieldWithDataSensitivity, Field]);
192
+ /** The shape `GET` and `PUT /api/field/{id}` answer on a server with `features`. */
193
+ function fieldDetailSchema(features) {
194
+ return features.fieldDataSensitivity ? FieldWithDataSensitivity : Field;
195
+ }
196
+ /** Whether `field` came from a server that labels data sensitivity. */
197
+ function hasDataSensitivity(field) {
198
+ return "data_sensitivity" in field && FieldWithDataSensitivity.shape.data_sensitivity.safeParse(field.data_sensitivity).success;
199
+ }
200
+ const FieldWithDataSensitivityCompact = FieldCompact.extend({ data_sensitivity: FieldDataSensitivity.nullable() }).strip();
190
201
  const NonBlankNullable = z.string().min(1).nullable();
191
202
  const FieldUpdateInput = z.object({
192
203
  display_name: NonBlankNullable.optional(),
@@ -214,12 +225,31 @@ const FieldValuesCompact = FieldValues.pick({
214
225
  field_id: true,
215
226
  has_more_values: true
216
227
  }).strip();
217
- const FieldSearchMatches = z.array(z.array(z.unknown()));
218
- const FieldRemappedValue = z.tuple([z.unknown(), z.unknown()]);
228
+ const FieldSearchMatches = z.array(z.union([z.tuple([z.unknown()]), z.tuple([z.unknown(), z.unknown()])]));
229
+ const FieldRemappedPair = z.tuple([z.unknown(), z.unknown()]);
230
+ const FieldRemappedSingle = z.tuple([z.unknown()]).transform(([value]) => [value, value]);
231
+ const FieldRemappedValue = z.union([FieldRemappedPair, FieldRemappedSingle]);
232
+ const FieldRemappedRowWireV59 = z.array(z.unknown()).min(1);
233
+ function firstTwoCells(row) {
234
+ const [value, second] = row;
235
+ return row.length === 1 ? [value, value] : [value, second];
236
+ }
237
+ function valueTwice(row) {
238
+ const [value] = row;
239
+ return [value, value];
240
+ }
241
+ /**
242
+ * The row `GET /api/field/{id}/remapping/{remapped-id}` answers on a server with `features`, read as
243
+ * `FieldRemappedValue`. `sameField` says the two ids name one field.
244
+ */
245
+ function fieldRemappedValueSchema(features, sameField) {
246
+ if (!features.fieldRemappingAppendsDisplayColumns) return FieldRemappedValue;
247
+ return FieldRemappedRowWireV59.transform(sameField ? valueTwice : firstTwoCells);
248
+ }
219
249
  const FieldSummary = z.object({
220
250
  field_id: z.number().int(),
221
251
  count: z.number().int(),
222
252
  distincts: z.number().int()
223
253
  });
224
254
  //#endregion
225
- export { FieldSearchMatches as a, FieldUpdateInput as c, FieldRemappedValue as i, FieldValues as l, FieldBaseType as n, FieldSemanticType as o, FieldCompact as r, FieldSummary as s, Field as t, FieldValuesCompact as u };
255
+ export { FieldDetail as a, FieldSummary as c, FieldValuesCompact as d, FieldWithDataSensitivity as f, hasDataSensitivity as g, fieldRemappedValueSchema as h, FieldDataSensitivity as i, FieldUpdateInput as l, fieldDetailSchema as m, FieldBaseType as n, FieldSearchMatches as o, FieldWithDataSensitivityCompact as p, FieldCompact as r, FieldSemanticType as s, Field as t, FieldValues as u };
@@ -0,0 +1,21 @@
1
+ import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
2
+ //#region src/commands/field/index.ts
3
+ var field_default = defineCommandGroup({
4
+ name: "field",
5
+ description: "Manage Metabase fields",
6
+ skills: [{
7
+ skill: "metadata",
8
+ purpose: "semantic types, FK targets, visibility, dropdown behavior"
9
+ }],
10
+ subCommands: {
11
+ get: () => import("./get-Bct52yPw.mjs").then((m) => m.default),
12
+ values: () => import("./values-PonkbYAK.mjs").then((m) => m.default),
13
+ summary: () => import("./summary-DKx6ptQe.mjs").then((m) => m.default),
14
+ update: () => import("./update-B28EJzrx.mjs").then((m) => m.default),
15
+ search: () => import("./search-CnTXKJgx.mjs").then((m) => m.default),
16
+ remapping: () => import("./remapping-CPAvDKHV.mjs").then((m) => m.default),
17
+ "set-sensitivity": () => import("./set-sensitivity-D39kGTob.mjs").then((m) => m.default)
18
+ }
19
+ });
20
+ //#endregion
21
+ export { field_default as default };
@@ -0,0 +1,128 @@
1
+ import { c as FieldSummary, d as FieldValuesCompact, p as FieldWithDataSensitivityCompact, r as FieldCompact } from "./field-5nivEfd6.mjs";
2
+ import { z } from "zod";
3
+ //#region src/output/views/field.ts
4
+ function formatTypeTag(value) {
5
+ return typeof value === "string" ? value.replace(/^type\//, "") : "";
6
+ }
7
+ function formatFkTarget(value) {
8
+ return typeof value === "number" ? `field ${value}` : "";
9
+ }
10
+ const FIELD_COLUMNS = [
11
+ {
12
+ key: "id",
13
+ label: "ID"
14
+ },
15
+ {
16
+ key: "name",
17
+ label: "Name"
18
+ },
19
+ {
20
+ key: "display_name",
21
+ label: "Display Name"
22
+ },
23
+ {
24
+ key: "base_type",
25
+ label: "Base Type",
26
+ format: formatTypeTag
27
+ },
28
+ {
29
+ key: "semantic_type",
30
+ label: "Semantic Type",
31
+ format: formatTypeTag
32
+ },
33
+ {
34
+ key: "fk_target_field_id",
35
+ label: "FK Target",
36
+ format: formatFkTarget
37
+ },
38
+ {
39
+ key: "description",
40
+ label: "Description"
41
+ }
42
+ ];
43
+ const fieldView = {
44
+ compactPick: FieldCompact,
45
+ tableColumns: FIELD_COLUMNS
46
+ };
47
+ const fieldWithDataSensitivityView = {
48
+ compactPick: FieldWithDataSensitivityCompact,
49
+ tableColumns: [...FIELD_COLUMNS, {
50
+ key: "data_sensitivity",
51
+ label: "Sensitivity"
52
+ }]
53
+ };
54
+ const FieldValueLabel = z.object({
55
+ value: z.unknown(),
56
+ label: z.unknown()
57
+ });
58
+ function toValueLabel(row) {
59
+ const [value, label = null] = row;
60
+ return {
61
+ value,
62
+ label
63
+ };
64
+ }
65
+ const VALUE_LABEL_COLUMNS = [{
66
+ key: "value",
67
+ label: "Value"
68
+ }, {
69
+ key: "label",
70
+ label: "Label"
71
+ }];
72
+ const fieldValueLabelView = {
73
+ compactPick: FieldValueLabel,
74
+ tableColumns: VALUE_LABEL_COLUMNS
75
+ };
76
+ const FieldRemappingMatch = z.object({
77
+ found: z.literal(true),
78
+ ...FieldValueLabel.shape
79
+ });
80
+ const FieldRemappingMiss = z.object({ found: z.literal(false) });
81
+ const FieldRemappingResult = z.discriminatedUnion("found", [FieldRemappingMatch, FieldRemappingMiss]);
82
+ const fieldRemappingMatchView = {
83
+ compactPick: FieldRemappingMatch,
84
+ tableColumns: VALUE_LABEL_COLUMNS
85
+ };
86
+ const fieldRemappingMissView = {
87
+ compactPick: FieldRemappingMiss,
88
+ tableColumns: [{
89
+ key: "found",
90
+ label: "Found"
91
+ }]
92
+ };
93
+ const fieldValuesView = {
94
+ compactPick: FieldValuesCompact,
95
+ tableColumns: [
96
+ {
97
+ key: "field_id",
98
+ label: "Field"
99
+ },
100
+ {
101
+ key: "has_more_values",
102
+ label: "Has More"
103
+ },
104
+ {
105
+ key: "values",
106
+ label: "Values"
107
+ }
108
+ ]
109
+ };
110
+ const fieldSummaryView = {
111
+ compactPick: FieldSummary,
112
+ tableColumns: [
113
+ {
114
+ key: "field_id",
115
+ label: "Field"
116
+ },
117
+ {
118
+ key: "count",
119
+ label: "Count"
120
+ },
121
+ {
122
+ key: "distincts",
123
+ label: "Distinct"
124
+ }
125
+ ]
126
+ };
127
+ //#endregion
128
+ export { fieldSummaryView as a, fieldView as c, fieldRemappingMissView as i, fieldWithDataSensitivityView as l, FieldValueLabel as n, fieldValueLabelView as o, fieldRemappingMatchView as r, fieldValuesView as s, FieldRemappingResult as t, toValueLabel as u };
@@ -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-Dtb93zKy.mjs";
3
- import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
4
- import { n as windowList } from "./window-DSb1tqSe.mjs";
5
- import { r as FieldCompact } from "./field-CcN4oZy6.mjs";
6
- import { r as fieldView } from "./field-fDtIrY6D.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-CZ5zh32z.mjs";
3
+ import { t as parseId } from "./parse-id-BW09NysN.mjs";
4
+ import { n as windowList } from "./window-CI_QD04s.mjs";
5
+ import { r as FieldCompact } from "./field-5nivEfd6.mjs";
6
+ import { c as fieldView } from "./field-wmN6raOG.mjs";
7
7
  //#region src/commands/table/fields.ts
8
8
  const FieldListEnvelope = listEnvelopeSchema(FieldCompact);
9
9
  var fields_default = defineMetabaseCommand({