@metabase/cli 0.5.1 → 0.5.3

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 (316) hide show
  1. package/README.md +1 -1
  2. package/dist/{add-collection-BnGPc0Vv.mjs → add-collection-c1dfnavz.mjs} +4 -4
  3. package/dist/{alert-DQkF8jYR.mjs → alert-BkpPdBQ_.mjs} +6 -6
  4. package/dist/{alerts-BncG7w1_.mjs → alerts-TDYiIxjs.mjs} +3 -3
  5. package/dist/api-key-9jVV67hF.mjs +38 -0
  6. package/dist/api-key-DbsqHlN6.mjs +31 -0
  7. package/dist/api-key-wGtJ8kYy.mjs +13 -0
  8. package/dist/{append-D4ekYCuD.mjs → append-CoeZRD6u.mjs} +3 -3
  9. package/dist/{archive-ULXc3xzI.mjs → archive-3fdIvMsf.mjs} +2 -2
  10. package/dist/{archive-v08JESCM.mjs → archive-9uzfWGuq.mjs} +2 -2
  11. package/dist/{archive-BQ4OA-R4.mjs → archive-CAJHrKwd.mjs} +2 -2
  12. package/dist/{archive-DpCP4yR1.mjs → archive-CH1h8jz5.mjs} +2 -2
  13. package/dist/{archive-BifJXCHF.mjs → archive-D-BJwRLc.mjs} +2 -2
  14. package/dist/{archive-BXr9kFNz.mjs → archive-DQRehboT.mjs} +5 -5
  15. package/dist/{archive-DjHLWUfC.mjs → archive-DY76wU2k.mjs} +2 -2
  16. package/dist/{archive-EhW6blNc.mjs → archive-DZDkfhdH.mjs} +4 -4
  17. package/dist/{archive-D2WCz3Oe.mjs → archive-DxUnaV4x.mjs} +2 -2
  18. package/dist/{archive-DocyUIME.mjs → archive-N3lp1o-k.mjs} +4 -4
  19. package/dist/{archive-CxNUeWII2.mjs → archive-NfFWXRx5.mjs} +4 -4
  20. package/dist/{archive-DnCF-Ecm.mjs → archive-f7wKQ7Uy.mjs} +2 -2
  21. package/dist/{auth-BPbsm8yV.mjs → auth-hgkvHPpH.mjs} +4 -4
  22. package/dist/{body-BkkQkGJg.mjs → body-M5qsJoub.mjs} +2 -2
  23. package/dist/{branch-flag-CTDvbaBa.mjs → branch-flag-CPTQ4wXp.mjs} +1 -1
  24. package/dist/{branches-lPHtM_xR.mjs → branches-B3gHAanU.mjs} +2 -2
  25. package/dist/{breaking-DjMlCD96.mjs → breaking-DuWIof4T.mjs} +5 -5
  26. package/dist/{broken-DUX3GWS5.mjs → broken-D2ST8sTx.mjs} +7 -7
  27. package/dist/{bulk-discard-values-Dl8Lzypf.mjs → bulk-discard-values-77khEfpj.mjs} +4 -4
  28. package/dist/{bulk-edit-N2xLVtfG.mjs → bulk-edit-girwcjY6.mjs} +5 -5
  29. package/dist/{bulk-rescan-values-BK2rH2Ik.mjs → bulk-rescan-values-Df8KK8um.mjs} +4 -4
  30. package/dist/{bulk-sync-schema-BKJc9Rzq.mjs → bulk-sync-schema-DEPUZ6MN.mjs} +4 -4
  31. package/dist/{cancel-DzkRVGIk.mjs → cancel-Oek5PJnu.mjs} +2 -2
  32. package/dist/{cancel-task-BiTlDY7a.mjs → cancel-task-rkqY0qLU.mjs} +3 -3
  33. package/dist/{card-CQNUT9pm.mjs → card-3NmUiU5F.mjs} +1 -1
  34. package/dist/{card-BTBDBsu-.mjs → card-BWTjCE93.mjs} +8 -8
  35. package/dist/{card-P5mBknsl.mjs → card-QR3zEu6E.mjs} +39 -16
  36. package/dist/{cards-CSL8ukS1.mjs → cards-DWJOtZoN.mjs} +5 -5
  37. package/dist/cli.mjs +172 -37
  38. package/dist/{client-BBwYPXDW.mjs → client-BFP2Ssqu.mjs} +221 -39
  39. package/dist/{collection-B19phRNU.mjs → collection-9_mj8rVX.mjs} +7 -7
  40. package/dist/{collection-CTnYZ2Jj.mjs → collection-D5vt2IJ_.mjs} +1 -1
  41. package/dist/{collection-B2wRXyTF.mjs → collection-DNmFKALA.mjs} +1 -0
  42. package/dist/{collection-namespace-B1OkM7p1.mjs → collection-namespace-Dl8_7xII.mjs} +1 -1
  43. package/dist/{content-translation-DoGTQnvH.mjs → content-translation-B3oARbgD.mjs} +2 -2
  44. package/dist/{copy-BYukQEtf.mjs → copy-BzBp5FaY.mjs} +5 -5
  45. package/dist/{copy-XlCT3gvG.mjs → copy-C7Rc4qM7.mjs} +3 -3
  46. package/dist/{copy-flags-ByB2MicL.mjs → copy-flags-CTM91pxH.mjs} +2 -2
  47. package/dist/{create-T4PZPVE9.mjs → create-71_DODbc.mjs} +3 -3
  48. package/dist/{create-jr4xJgSI.mjs → create-BKRD11i-.mjs} +3 -3
  49. package/dist/{create-k1Bo7h7g.mjs → create-Bc4ADRmU.mjs} +2 -2
  50. package/dist/{create-Bnb1abv_.mjs → create-Bh3q3eHg.mjs} +5 -5
  51. package/dist/{create-3_oY9KHY.mjs → create-ByeGK_BE.mjs} +2 -2
  52. package/dist/{create-DZJQp3r7.mjs → create-C-2ivjed.mjs} +2 -2
  53. package/dist/{create-CLZ7w83R.mjs → create-C0gmhNnk.mjs} +3 -3
  54. package/dist/create-C3H9ljex.mjs +34 -0
  55. package/dist/{create-DxMmIHI4.mjs → create-CGE1D0Ay.mjs} +2 -2
  56. package/dist/{create-CbT4SPHV.mjs → create-CGxxztoE.mjs} +2 -2
  57. package/dist/{create-CYoarNrb.mjs → create-CfXKNnkK.mjs} +2 -2
  58. package/dist/{create-Bl9sS7v7.mjs → create-CjGEkSFz.mjs} +6 -6
  59. package/dist/{create-Cdt8u1wF.mjs → create-DO4ic4Kx.mjs} +5 -5
  60. package/dist/{create-BP39g5Jk.mjs → create-DQJ9h86G.mjs} +2 -2
  61. package/dist/{create-DBNxy5rN.mjs → create-YBDXZgyP.mjs} +2 -2
  62. package/dist/{create-D5_c5SHo.mjs → create-YIC3Q0a-.mjs} +2 -2
  63. package/dist/create-_rOCx5b8.mjs +38 -0
  64. package/dist/{create-branch-CUNFdKyB.mjs → create-branch-DBCBMDWh.mjs} +4 -4
  65. package/dist/{create-CqF7vqXC.mjs → create-f0bBEfDI.mjs} +4 -4
  66. package/dist/{create-B3fm5I-l2.mjs → create-myJ8HR4B.mjs} +4 -4
  67. package/dist/{create-CrtIqtXN.mjs → create-vgP9K2eH2.mjs} +4 -4
  68. package/dist/{csv-CcnhKpuj.mjs → csv-Dtgy7sTg.mjs} +3 -3
  69. package/dist/{current-task-nl2z8sHI.mjs → current-task-AwQisIT9.mjs} +3 -3
  70. package/dist/{dashboard-BP0p62fp.mjs → dashboard-BZV-0Qjp.mjs} +11 -11
  71. package/dist/{dashboard-Phz3XpRM.mjs → dashboard-Chjy5GKR.mjs} +52 -5
  72. package/dist/{dashboard-XSTr9QCr.mjs → dashboard-D5E3fMKh.mjs} +1 -1
  73. package/dist/{data-action-Cr17CfgE.mjs → data-action-B7kRpvCH.mjs} +7 -7
  74. package/dist/data-app-BIAvvV2P.mjs +41 -0
  75. package/dist/data-app-BUW-HlUo.mjs +52 -0
  76. package/dist/data-app-Blz61mG5.mjs +29 -0
  77. package/dist/data-app-project-BL4xpu_m.mjs +57 -0
  78. package/dist/{database-2HYCdHqK.mjs → database-CxykzTAA.mjs} +14 -3
  79. package/dist/{database-BewllGR7.mjs → database-D8XzgJEz.mjs} +19 -2
  80. package/dist/{dataset-D-x2Ho2i.mjs → dataset-DIQLAp2P.mjs} +5 -4
  81. package/dist/db-wsSYKqCB.mjs +25 -0
  82. package/dist/delete-4v4_lDwD.mjs +44 -0
  83. package/dist/{delete-BOma6qIq.mjs → delete-BHX_F8Qu.mjs} +3 -3
  84. package/dist/{delete-DulVnxD_.mjs → delete-BP9-YS-f.mjs} +3 -3
  85. package/dist/delete-BSgxmR3y.mjs +40 -0
  86. package/dist/{delete-BUCh72Bq.mjs → delete-BegkpIGi.mjs} +3 -3
  87. package/dist/{delete-xf2n7SNg.mjs → delete-D9FB7qjX.mjs} +3 -3
  88. package/dist/{delete-QHsiWYay.mjs → delete-DmM5L0wO.mjs} +3 -3
  89. package/dist/{delete-BrbmJ3sn.mjs → delete-E-g5b-HU.mjs} +3 -3
  90. package/dist/{delete-Oc2GE170.mjs → delete-WrV9I9uw.mjs} +3 -3
  91. package/dist/delete-runtime-CJ7gMYA1.mjs +72 -0
  92. package/dist/{delete-table-LgJ17t6j.mjs → delete-table-CJq8JM5J.mjs} +3 -3
  93. package/dist/{delete-BXMc-g3Q.mjs → delete-wnHUWWjX.mjs} +3 -3
  94. package/dist/{dependencies-BE5QW7Lb.mjs → dependencies-CnW3RSoZ.mjs} +3 -3
  95. package/dist/{dependency-qP1hx2YN.mjs → dependency-CaC6XuTY.mjs} +2 -2
  96. package/dist/{dependency-BlTYysYG.mjs → dependency-DDRGBlFL.mjs} +5 -5
  97. package/dist/{dependency-BACk_cVP.mjs → dependency-Dxvb2Znu.mjs} +1 -1
  98. package/dist/{dependents-mbgHQNiv.mjs → dependents-DHXqJ3lo.mjs} +8 -8
  99. package/dist/{dirty-fYlA1N1e.mjs → dirty-BRPWPUYH.mjs} +4 -4
  100. package/dist/{discard-values-cIRBP5nT.mjs → discard-values-DBHfVN8o.mjs} +4 -4
  101. package/dist/{document-BaRQ5fBd.mjs → document-BeLf7NqP.mjs} +6 -6
  102. package/dist/{download-CokVpeK6.mjs → download-BFu9xYHX.mjs} +1 -1
  103. package/dist/{eid-CaumGUFD.mjs → eid-eKmbXRds.mjs} +3 -4
  104. package/dist/{entity-BHYJtRxp.mjs → entity-DjDkaMkB.mjs} +2 -2
  105. package/dist/{entry-flags-DjICpQkc.mjs → entry-flags-Cxn09krz.mjs} +3 -3
  106. package/dist/{events-jEo9fytL.mjs → events-CZL9MU64.mjs} +3 -3
  107. package/dist/{execute-H09Qus4_.mjs → execute-DBJGtHHG.mjs} +3 -3
  108. package/dist/{export-flags-DzW0Ktkh.mjs → export-flags-CpukgETM.mjs} +13 -5
  109. package/dist/{export-preflight-Db_TChn5.mjs → export-preflight-SM9zJkBp.mjs} +4 -4
  110. package/dist/{export-YtdZo7LZ.mjs → export-xn_-NaBd.mjs} +24 -12
  111. package/dist/{field-wmN6raOG.mjs → field-BVz4AS3f.mjs} +1 -1
  112. package/dist/{field-DktidTPB.mjs → field-CQDz-6DK.mjs} +7 -7
  113. package/dist/{field-5nivEfd6.mjs → field-DoWQUl7V.mjs} +58 -45
  114. package/dist/{fields-DUXlosmx.mjs → fields-CB06GFBW.mjs} +5 -5
  115. package/dist/{filter-flags-DTDcU7OI.mjs → filter-flags-DhE4olyf.mjs} +4 -4
  116. package/dist/{fks-Cl2sq-c0.mjs → fks-CSoS7xZ6.mjs} +5 -5
  117. package/dist/{get-C_rjxpoe.mjs → get--1qTpTIQ.mjs} +4 -4
  118. package/dist/{get-BilMWiFq.mjs → get-B8xQXMU6.mjs} +2 -2
  119. package/dist/{get-okEsnkvC.mjs → get-B8xrmipw.mjs} +2 -2
  120. package/dist/{get-DPiNYmXo.mjs → get-BIf6eFWZ.mjs} +2 -2
  121. package/dist/{get-DtcChy9h.mjs → get-BQ7SAJEz.mjs} +2 -2
  122. package/dist/{get-XS-6R81E.mjs → get-BSPxmP_W.mjs} +4 -4
  123. package/dist/{get-zPMv3kZE.mjs → get-BW3jSR3y.mjs} +2 -2
  124. package/dist/{get-DyK_bvg6.mjs → get-BYAzIaGG.mjs} +2 -2
  125. package/dist/{get-Cg0up9gm.mjs → get-BZDUOZxI.mjs} +2 -2
  126. package/dist/{get-oQNL6pLY.mjs → get-BZFyqZXa.mjs} +2 -2
  127. package/dist/{get-CVMWhbA82.mjs → get-BfFZCiZR.mjs} +4 -4
  128. package/dist/get-Bq_9VSTa.mjs +28 -0
  129. package/dist/{get-FxCF0rxc.mjs → get-Bt4C-oxh.mjs} +2 -2
  130. package/dist/{get-GuWW4J24.mjs → get-C1rCVUYw.mjs} +3 -3
  131. package/dist/{get-CqlNUyFY.mjs → get-Cc4-e-Q_.mjs} +4 -4
  132. package/dist/{get-CTtzccwr.mjs → get-Cl-O6dFs.mjs} +3 -3
  133. package/dist/{get-Bt_zhviQ.mjs → get-CtDZOoWy.mjs} +5 -5
  134. package/dist/{get-CWyRAHpz.mjs → get-CuSwArMS.mjs} +5 -5
  135. package/dist/{get-CM596pmP.mjs → get-DIfjxTP8.mjs} +2 -2
  136. package/dist/{get-B-WT6ess.mjs → get-DePbMmjc.mjs} +5 -5
  137. package/dist/{get-DTDvlLT3.mjs → get-eZEHipwA.mjs} +2 -2
  138. package/dist/{get-DySyvotk2.mjs → get-jbOgdCQg.mjs} +2 -2
  139. package/dist/{get-run-CFGxSm_S.mjs → get-run-C-CNDbv3.mjs} +2 -2
  140. package/dist/{git-sync-Ch1V1fEK.mjs → git-sync-D1aKczo6.mjs} +15 -8
  141. package/dist/{git-sync-COokpYgc.mjs → git-sync-DP4wQFzm.mjs} +18 -1
  142. package/dist/git-sync-D_T9oNC6.mjs +29 -0
  143. package/dist/{glossary-BSgRQ2HO.mjs → glossary-BVK5DaLV.mjs} +4 -4
  144. package/dist/{graph-Wf4e0XIa.mjs → graph-CqBe2J4N.mjs} +5 -5
  145. package/dist/{has-remote-changes-BsS3XB0P.mjs → has-remote-changes-CDe1teSb.mjs} +3 -3
  146. package/dist/{import-CXd5HdB0.mjs → import-B64gjryF.mjs} +7 -7
  147. package/dist/{is-dirty-TDcfeOde.mjs → is-dirty-DhR3Xqjk.mjs} +1 -1
  148. package/dist/{items-BxvhoxYm.mjs → items-CLl2QgS8.mjs} +5 -5
  149. package/dist/{key-CUPbYxkk.mjs → key-BYEv4Wgq.mjs} +2 -2
  150. package/dist/{library-DzejNMqX.mjs → library-C3eO2J07.mjs} +4 -4
  151. package/dist/{library-BKSFtIV9.mjs → library-DKIqzyUk.mjs} +2 -2
  152. package/dist/{library-DuIrR8LS.mjs → library-wUiD2jbw.mjs} +1 -1
  153. package/dist/{list-DA1Fo6S6.mjs → list-B7Yvz5vA.mjs} +2 -2
  154. package/dist/{list-DlgjWr4r.mjs → list-BIqqh3A-.mjs} +2 -2
  155. package/dist/{list-CRXTfEFk.mjs → list-BiSwl56L.mjs} +2 -2
  156. package/dist/{list-DpK3ioES.mjs → list-BmvitCWZ.mjs} +5 -5
  157. package/dist/{list-D7yH-64Z.mjs → list-C3GBocvB.mjs} +4 -4
  158. package/dist/{list-B8V_OESj.mjs → list-C7TFreS8.mjs} +2 -2
  159. package/dist/{list-6nGX0Rqc.mjs → list-CA939qkn.mjs} +5 -5
  160. package/dist/list-CFaJA317.mjs +48 -0
  161. package/dist/{list-3Dh5yeq-.mjs → list-CdcFNphE.mjs} +2 -2
  162. package/dist/{list-DjlfBd7W.mjs → list-CjpZCiks.mjs} +2 -2
  163. package/dist/{list-B5kRBn7k.mjs → list-Cu6ET_yD.mjs} +4 -4
  164. package/dist/{list-BUjI5G0_.mjs → list-D4HNG282.mjs} +4 -4
  165. package/dist/{list-Ba7u5Ai9.mjs → list-DDPvxfhe.mjs} +5 -5
  166. package/dist/{list-Cr5Hoq-E.mjs → list-DLLzMaS3.mjs} +2 -2
  167. package/dist/{list-D_fsrh8w.mjs → list-DLwby7YA.mjs} +2 -2
  168. package/dist/{list-B3Pngm2j.mjs → list-D_IT8l9B.mjs} +2 -2
  169. package/dist/{list-CCCy6cBI.mjs → list-DpfOh8-5.mjs} +3 -3
  170. package/dist/{list-DsR58aMq.mjs → list-DrIcKxXX.mjs} +3 -3
  171. package/dist/{list-D1Q8H3jn.mjs → list-DyFu5Wx1.mjs} +3 -3
  172. package/dist/{list-Cf6A9Csi.mjs → list-DyQNRVAf.mjs} +2 -2
  173. package/dist/list-YFwmHXGG.mjs +33 -0
  174. package/dist/{list-Do-Xnz0I.mjs → list-eGlqXJno.mjs} +2 -2
  175. package/dist/list-s9_LlXCV.mjs +29 -0
  176. package/dist/{login-CXbCAcuB.mjs → login-Bg7Z3jDy.mjs} +15 -8
  177. package/dist/{logout-B6IGzkpG.mjs → logout-CAmp7DcS.mjs} +2 -2
  178. package/dist/{measure-CbMgNhlG.mjs → measure-C31HLp1C.mjs} +5 -5
  179. package/dist/{moderation-review-BdqEH6N1.mjs → moderation-review-Bf9bPNQI.mjs} +1 -1
  180. package/dist/{parameter-Celg0wZa.mjs → parameter-DvRQMKd2.mjs} +6 -6
  181. package/dist/{parameter-values-IWi_DNhp.mjs → parameter-values-3eHpqznI.mjs} +21 -7
  182. package/dist/{parse-enum-B2rGiC6p.mjs → parse-enum-DAcTzG1q.mjs} +1 -1
  183. package/dist/{parse-id-Cv5eM7sg.mjs → parse-id-5BZGQ9Vd.mjs} +1 -1
  184. package/dist/{parse-ref-DW7ik6ny.mjs → parse-ref-ByXc-pls.mjs} +1 -1
  185. package/dist/{parse-text-CUCSWOeR.mjs → parse-text-FgX60vIg.mjs} +1 -1
  186. package/dist/{path-C9r9urRK.mjs → path-XwdHlC23.mjs} +3 -3
  187. package/dist/{poll-CX3jPtXb.mjs → poll-CgtcJopL.mjs} +2 -2
  188. package/dist/{preflight-CiTgqNUy.mjs → preflight-ChTKhB8Y.mjs} +2 -2
  189. package/dist/{process-DImdroix.mjs → process-aqXm5QgC.mjs} +1 -1
  190. package/dist/{publish-xH1n74gd.mjs → publish-C2-pK0cf.mjs} +4 -4
  191. package/dist/{pulse-Dz0ocv0l.mjs → pulse-CC81N2_0.mjs} +1 -1
  192. package/dist/{pulse-CFj1WfIC.mjs → pulse-JPrq6NFP.mjs} +1 -1
  193. package/dist/{query-CN3BW5WB.mjs → query-DkaUzmMa.mjs} +12 -12
  194. package/dist/{query-BOCw0FBK.mjs → query-pmw23KkL.mjs} +17 -7
  195. package/dist/{remapping-Dggq2Fv0.mjs → remapping-C3htTzJn.mjs} +4 -4
  196. package/dist/{remove-collection-cxSSFxza.mjs → remove-collection-p_t9rUUX.mjs} +4 -4
  197. package/dist/{render-Cb8Hct67.mjs → render-C50k8-jc.mjs} +2 -2
  198. package/dist/{replace-wVi_XDut.mjs → replace-BQBuFJ1B.mjs} +3 -3
  199. package/dist/{requirement-check-BE3PuGsC.mjs → requirement-check-CpiVuL0H.mjs} +1 -1
  200. package/dist/{rescan-values-DAp_avxY.mjs → rescan-values-Ctq8wpkI.mjs} +4 -4
  201. package/dist/{rescan-values-C7b1Ghy-.mjs → rescan-values-DOqXJ3qH.mjs} +4 -4
  202. package/dist/{run-CUGs7mok.mjs → run-2xgPRuKR.mjs} +4 -4
  203. package/dist/{run-DywhwjNG.mjs → run-CtMbObQI.mjs} +4 -4
  204. package/dist/{run-CE6ei7s7.mjs → run-Dn3e8G4x.mjs} +2 -2
  205. package/dist/{runs--14jim_0.mjs → runs-CgNoQW6M.mjs} +3 -3
  206. package/dist/{runtime-Ckns6TKK.mjs → runtime-Y4VFWmmr.mjs} +63 -80
  207. package/dist/scaffold-BuL0_ptz.mjs +50 -0
  208. package/dist/{schema-tables-CeW0kpA5.mjs → schema-tables-BdXuo_lG.mjs} +5 -5
  209. package/dist/{schemas-CHMD0HrY.mjs → schemas-Dap3KFwY.mjs} +3 -3
  210. package/dist/{search-CXRavT7G.mjs → search-1et9tv_s.mjs} +21 -4
  211. package/dist/{search-LmBQu1Jg.mjs → search-DUmFK5Sy.mjs} +5 -5
  212. package/dist/{search-DyC54bGf.mjs → search-Dxcejw_v.mjs} +20 -5
  213. package/dist/{segment-DeT_Yic6.mjs → segment-CebcXn2E.mjs} +5 -5
  214. package/dist/{send-BWSJMrDL.mjs → send-DYdwcPTb.mjs} +2 -2
  215. package/dist/{set-active-C5cLG4_O.mjs → set-active-CVI_DDQi.mjs} +2 -2
  216. package/dist/set-bundle-DX5HqDji.mjs +40 -0
  217. package/dist/set-data-actions-DAI1XCQ2.mjs +46 -0
  218. package/dist/set-enabled-0QI-CHAT.mjs +41 -0
  219. package/dist/{set-sensitivity-BMLKazua.mjs → set-sensitivity-DqGkiLSr.mjs} +5 -5
  220. package/dist/{set-r2xiXrT_.mjs → set-xs8Vyvy2.mjs} +3 -3
  221. package/dist/{setting-CDRusiqP.mjs → setting-Bmry-y_l.mjs} +3 -3
  222. package/dist/{setup-BZaJVww3.mjs → setup-UM8N9Vh3.mjs} +2 -2
  223. package/dist/{signal-4tpCIkqR.mjs → signal-D8MH3LMN.mjs} +1 -1
  224. package/dist/{skills-9ihLaSmM.mjs → skills-BiSfuDqA.mjs} +3 -3
  225. package/dist/{skills-y2iVfW9k.mjs → skills-CcLTm3_2.mjs} +2 -2
  226. package/dist/slug-qeARO25o.mjs +15 -0
  227. package/dist/{snippet-Ce0o33Rj.mjs → snippet-DKARah-L.mjs} +5 -5
  228. package/dist/{stash-Dj-mnIa4.mjs → stash-e5cSvnj3.mjs} +6 -6
  229. package/dist/{status-BtWz7Pzn.mjs → status-BHiO3YBe.mjs} +36 -15
  230. package/dist/{status-B2Xj_q8f.mjs → status-CH7BAWGe.mjs} +2 -2
  231. package/dist/{subscription-Dh--agqE.mjs → subscription-DWleULhN.mjs} +5 -5
  232. package/dist/{subscriptions-CJ8Jdp9A.mjs → subscriptions-DcCOA2p1.mjs} +4 -4
  233. package/dist/{summary-ccbkNDbC.mjs → summary-CipFA6M6.mjs} +4 -4
  234. package/dist/{sync-schema-CewUOkmm.mjs → sync-schema-C45WO4db.mjs} +5 -5
  235. package/dist/{sync-schema-HwQectZd.mjs → sync-schema-D7p-P8F6.mjs} +4 -4
  236. package/dist/{sync-task-DEzhiaU9.mjs → sync-task-DNKG9Bk4.mjs} +2 -2
  237. package/dist/{table-CFZU-BRg.mjs → table-BDsqRU7a.mjs} +2 -2
  238. package/dist/table-BPYHnzyV.mjs +26 -0
  239. package/dist/{table-zAdW5_3H.mjs → table-CF7zW9cI.mjs} +33 -20
  240. package/dist/{table-selector-flags-p4jun7-v.mjs → table-selector-flags-CHfrVpYQ.mjs} +3 -3
  241. package/dist/{timeline-DLaBypse.mjs → timeline-C2m_QHxn.mjs} +7 -7
  242. package/dist/{timeline-event-xAAR6b-v.mjs → timeline-event-BF1dqSnD.mjs} +5 -5
  243. package/dist/transform-N_elgRuh.mjs +28 -0
  244. package/dist/transform-job-CTV6KRP2.mjs +22 -0
  245. package/dist/{transform-tag-BXusFzMX.mjs → transform-tag-BYoguZfW.mjs} +4 -4
  246. package/dist/{transform-test-UsH1udc4.mjs → transform-test-jaBpHOM5.mjs} +6 -6
  247. package/dist/{transforms-CqV01bMM.mjs → transforms-C6MFnT4C.mjs} +3 -3
  248. package/dist/{transport-0qFZhEuP.mjs → transport-k_fabWdF.mjs} +4 -4
  249. package/dist/{tree-Td6rgyOa.mjs → tree-C4Igf6xs.mjs} +3 -3
  250. package/dist/typed-schema-Bo0Q6C0S.mjs +45 -0
  251. package/dist/{unpublish-D4XTZsFW.mjs → unpublish-EStytsEm.mjs} +2 -2
  252. package/dist/{unreferenced-cR-l4zXN.mjs → unreferenced-DtUuyBrr.mjs} +5 -5
  253. package/dist/{update-C8xdeYI2.mjs → update-B0Na11v-.mjs} +5 -5
  254. package/dist/{update-C7Wmom6x.mjs → update-B1UXRPN-.mjs} +7 -7
  255. package/dist/{update-dQeji6RA.mjs → update-BOg1jZ_s.mjs} +5 -5
  256. package/dist/{update-CpwWURTp.mjs → update-BXLY92om.mjs} +4 -4
  257. package/dist/{update-DrVc25R8.mjs → update-Bba_zPSE.mjs} +4 -4
  258. package/dist/{update-C4iu-vQm.mjs → update-BogvN2Mb.mjs} +3 -3
  259. package/dist/{update-nGURR-y6.mjs → update-CCLpNTPa.mjs} +3 -3
  260. package/dist/{update-CHB4kvz-.mjs → update-CciLWH_s.mjs} +7 -8
  261. package/dist/{update-BqkqMOVN.mjs → update-DAG8m5f4.mjs} +5 -5
  262. package/dist/{update-Dk0E66Va.mjs → update-DECiEVlk.mjs} +7 -7
  263. package/dist/update-DIBaY-fy.mjs +37 -0
  264. package/dist/{update-C7dZLbsf.mjs → update-DT2ViMFr.mjs} +3 -3
  265. package/dist/{update-CND9At61.mjs → update-DT8U29Kk.mjs} +3 -3
  266. package/dist/{update-Js0IiqCq.mjs → update-DhgfReDD.mjs} +5 -5
  267. package/dist/{update-DFK2iUSP.mjs → update-DkvIK-eL.mjs} +3 -3
  268. package/dist/{update-DZHgr6Gu.mjs → update-FfeHReec.mjs} +4 -4
  269. package/dist/{update-BJL5975i.mjs → update-HbggUPuy.mjs} +3 -3
  270. package/dist/{update-D-cTgmb0.mjs → update-VGgvQu7W.mjs} +3 -3
  271. package/dist/{update-dashcard-BmkfJ7t9.mjs → update-dashcard-m-hkIGUu.mjs} +6 -6
  272. package/dist/{update-DROjGe3Q.mjs → update-pk0b6vXU.mjs} +3 -3
  273. package/dist/{update-DqCZsbLh.mjs → update-z8ZGCg1r.mjs} +3 -3
  274. package/dist/{upgrade-B6V_1cUh.mjs → upgrade-iETJ8fH2.mjs} +4 -4
  275. package/dist/{upload-B6zBzMPW.mjs → upload-BF5pdKRN.mjs} +3 -3
  276. package/dist/{upload-CfYmBv51.mjs → upload-CoK5LnyA.mjs} +2 -2
  277. package/dist/{upload-Dvjfz16M.mjs → upload-CqSGEZQW.mjs} +3 -3
  278. package/dist/{uuid-B8ynbkqG.mjs → uuid-8Ha-8bDX.mjs} +2 -2
  279. package/dist/{validate-C7DGkwb-.mjs → validate-BQ7vI8_x.mjs} +1 -1
  280. package/dist/{validate-query-CYUvRvVM.mjs → validate-query-YtH3d5BP.mjs} +2 -2
  281. package/dist/{values-36bzf9cK.mjs → values-BsgA7-6h.mjs} +4 -4
  282. package/dist/{verify-C4Tml4fD.mjs → verify-CzBZbP4W.mjs} +4 -4
  283. package/dist/{verify-BdW-GExk.mjs → verify-cjUPMF_B.mjs} +4 -4
  284. package/dist/{verify-Cs9e28YA.mjs → verify-crIrbGZV.mjs} +3 -3
  285. package/dist/{verify-flags-CMpRkMPa.mjs → verify-flags-DEVMB9w0.mjs} +1 -1
  286. package/dist/{wait-flags-DjyK03cm.mjs → wait-flags-BnZ-dfE2.mjs} +2 -2
  287. package/dist/{wait-BV6JOdgi.mjs → wait-mFUfpSaj.mjs} +5 -5
  288. package/package.json +2 -2
  289. package/skill-data/core/SKILL.md +1 -1
  290. package/skill-data/data-action/SKILL.md +18 -7
  291. package/skill-data/data-app/SKILL.md +138 -0
  292. package/skill-data/data-app/template/.env.local.example +2 -0
  293. package/skill-data/data-app/template/LICENSE +21 -0
  294. package/skill-data/data-app/template/README.md +29 -0
  295. package/skill-data/data-app/template/gitignore +5 -0
  296. package/skill-data/data-app/template/package.json +25 -0
  297. package/skill-data/data-app/template/src/App.tsx +9 -0
  298. package/skill-data/data-app/template/src/index.tsx +14 -0
  299. package/skill-data/data-app/template/src/theme.ts +25 -0
  300. package/skill-data/data-app/template/tsconfig.json +25 -0
  301. package/skill-data/data-app/template/vite.config.ts +3 -0
  302. package/skill-data/data-app-actions/SKILL.md +96 -0
  303. package/skill-data/data-app-data/SKILL.md +158 -0
  304. package/skill-data/data-app-filters/SKILL.md +87 -0
  305. package/skill-data/data-app-ui/SKILL.md +120 -0
  306. package/skill-data/git-sync/SKILL.md +3 -3
  307. package/skill-data/transform/SKILL.md +1 -1
  308. package/dist/db-m5bQcXdn.mjs +0 -24
  309. package/dist/delete-runtime-CkNvZfFA.mjs +0 -55
  310. package/dist/embedding-i-KqpefC.mjs +0 -9
  311. package/dist/git-sync-BwkWeJAz.mjs +0 -29
  312. package/dist/input-AXP2LCOV.mjs +0 -61
  313. package/dist/list-CUj04tg3.mjs +0 -38
  314. package/dist/table-P9ovwcaB.mjs +0 -26
  315. package/dist/transform-10YE8j5K.mjs +0 -28
  316. package/dist/transform-job-D97AutnF.mjs +0 -22
@@ -0,0 +1,34 @@
1
+ import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
+ import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
+ import { i as CreatedApiKey, r as ApiKeyCreateInput } from "./api-key-DbsqHlN6.mjs";
6
+ import { n as createdApiKeyView } from "./api-key-9jVV67hF.mjs";
7
+ //#region src/commands/api-key/create.ts
8
+ var create_default = defineMetabaseCommand({
9
+ meta: {
10
+ name: "create",
11
+ description: "Create an API key acting as a member of a group"
12
+ },
13
+ details: "The JSON body needs `name` and `group_id` (2 is Administrators). The key is printed once, as `unmasked_key` under --json, and no later read returns it: store it where it is needed and never paste it into chat.",
14
+ requires: ["apiKey.create"],
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ ...bodyInputFlags
20
+ },
21
+ inputSchema: ApiKeyCreateInput,
22
+ outputSchema: CreatedApiKey,
23
+ examples: ["mb api-key create --body '{\"name\":\"ci\",\"group_id\":2}' --json"],
24
+ async run({ args, ctx, getClient }) {
25
+ const body = await readBody({
26
+ flag: args.body,
27
+ file: args.file
28
+ }, ApiKeyCreateInput);
29
+ const created = await (await getClient()).apiKey.create(body);
30
+ renderSummary(created, createdApiKeyView, `Created API key ${created.id} "${created.name}": ${created.unmasked_key}`, ctx);
31
+ }
32
+ });
33
+ //#endregion
34
+ export { create_default as default };
@@ -1,6 +1,6 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { r as DocumentCreateInput, t as Document } from "./document-UMG6me2P.mjs";
6
6
  import { t as documentView } from "./document-DVIu3Vj4.mjs";
@@ -1,6 +1,6 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { i as TransformJobCreateInput, t as TransformJob } from "./transform-job-ClX8e5iO.mjs";
6
6
  import { t as transformJobView } from "./transform-job-BBZ5L46v.mjs";
@@ -1,9 +1,9 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
2
  import { a as NotificationCreateInput, n as Notification } from "./notification-DaA4bBHW.mjs";
3
3
  import { t as notificationView } from "./notification-W2SVssyY.mjs";
4
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
4
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
5
5
  import { t as describeAlert } from "./summary-BytbDz6e.mjs";
6
- import { t as readBody } from "./body-BkkQkGJg.mjs";
6
+ import { t as readBody } from "./body-M5qsJoub.mjs";
7
7
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
8
8
  //#region src/commands/alert/create.ts
9
9
  var create_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
- import { r as CardCreateInput, t as Card } from "./card-P5mBknsl.mjs";
6
- import { n as cardView } from "./card-CQNUT9pm.mjs";
7
- import { o as preflightMbql5Query, s as skipValidateFlag, t as CARD_DATASET_QUERY_LABELS } from "./validate-query-CYUvRvVM.mjs";
5
+ import { i as CardDetail, r as CardCreateInput } from "./card-QR3zEu6E.mjs";
6
+ import { n as cardView } from "./card-3NmUiU5F.mjs";
7
+ import { o as preflightMbql5Query, s as skipValidateFlag, t as CARD_DATASET_QUERY_LABELS } from "./validate-query-YtH3d5BP.mjs";
8
8
  //#region src/commands/card/create.ts
9
9
  var create_default = defineMetabaseCommand({
10
10
  meta: {
@@ -35,7 +35,7 @@ var create_default = defineMetabaseCommand({
35
35
  ...skipValidateFlag
36
36
  },
37
37
  inputSchema: CardCreateInput,
38
- outputSchema: Card,
38
+ outputSchema: CardDetail,
39
39
  examples: [
40
40
  "cat card.json | mb card create",
41
41
  "mb card create --file card.json",
@@ -1,10 +1,10 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
- import { f as CollectionNamespace, o as CollectionCreateInput, r as Collection } from "./collection-B2wRXyTF.mjs";
6
- import { t as parseEnumFlag } from "./parse-enum-B2rGiC6p.mjs";
7
- import { n as collectionView } from "./collection-CTnYZ2Jj.mjs";
5
+ import { f as CollectionNamespace, o as CollectionCreateInput, r as Collection } from "./collection-DNmFKALA.mjs";
6
+ import { t as parseEnumFlag } from "./parse-enum-DAcTzG1q.mjs";
7
+ import { n as collectionView } from "./collection-D5vt2IJ_.mjs";
8
8
  //#region src/commands/collection/create.ts
9
9
  var create_default = defineMetabaseCommand({
10
10
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { i as TimelineEvent, o as TimelineEventCreateInput } from "./timeline-DcsCXNUt.mjs";
6
6
  import { t as timelineEventView } from "./timeline-BgWz8DYK.mjs";
@@ -1,6 +1,6 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { r as TimelineCreateInput, t as Timeline } from "./timeline-DcsCXNUt.mjs";
6
6
  import { n as timelineView } from "./timeline-BgWz8DYK.mjs";
@@ -1,8 +1,8 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
3
  import { r as GlossaryCreateInput, t as Glossary } from "./glossary-QN-hHfOT.mjs";
4
4
  import { t as glossaryView } from "./glossary-BkGmCI4X.mjs";
5
- import { n as readEntryInput, t as entryFlags } from "./entry-flags-DjICpQkc.mjs";
5
+ import { n as readEntryInput, t as entryFlags } from "./entry-flags-Cxn09krz.mjs";
6
6
  //#region src/commands/glossary/create.ts
7
7
  var create_default = defineMetabaseCommand({
8
8
  meta: {
@@ -0,0 +1,38 @@
1
+ import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
+ import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
+ import { r as DataAppCreateInput, t as DataApp } from "./data-app-BUW-HlUo.mjs";
6
+ import { t as dataAppView } from "./data-app-Blz61mG5.mjs";
7
+ //#region src/commands/data-app/create.ts
8
+ var create_default = defineMetabaseCommand({
9
+ meta: {
10
+ name: "create",
11
+ description: "Create a data app and its collection from JSON"
12
+ },
13
+ details: "The JSON body needs `name`, the slug. Optional: `display_name` (the slug by default), `description`, `allowed_hosts`, `enabled` (false by default), `bundle_path` and `version`. The app starts with an empty bundle; `mb data-app set-bundle` replaces it. The answer's `resource_collection_id` is the app's collection, where its questions and actions go. `mb data-app scaffold` copies the project template.",
14
+ skills: [{
15
+ skill: "data-app",
16
+ purpose: "how an app is created, built and published"
17
+ }],
18
+ requires: ["dataApp.create"],
19
+ args: {
20
+ ...outputFlags,
21
+ ...profileFlag,
22
+ ...connectionFlags,
23
+ ...bodyInputFlags
24
+ },
25
+ inputSchema: DataAppCreateInput,
26
+ outputSchema: DataApp,
27
+ examples: ["mb data-app create --body '{\"name\":\"sales-overview\",\"display_name\":\"Sales overview\"}'", "mb data-app create --file app.json --json"],
28
+ async run({ args, ctx, getClient }) {
29
+ const body = await readBody({
30
+ flag: args.body,
31
+ file: args.file
32
+ }, DataAppCreateInput);
33
+ const created = await (await getClient()).dataApp.create(body);
34
+ renderSummary(created, dataAppView, `Created data app ${created.name} with collection ${created.resource_collection_id}.`, ctx);
35
+ }
36
+ });
37
+ //#endregion
38
+ export { create_default as default };
@@ -1,7 +1,7 @@
1
- import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags, yt as ConfigError } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as SyncBranchCreated } from "./git-sync-COokpYgc.mjs";
4
- import { n as syncBranchCreatedView } from "./git-sync-Ch1V1fEK.mjs";
1
+ import { St as ConfigError, c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { n as SyncBranchCreated } from "./git-sync-DP4wQFzm.mjs";
4
+ import { n as syncBranchCreatedView } from "./git-sync-D1aKczo6.mjs";
5
5
  //#region src/commands/git-sync/create-branch.ts
6
6
  var create_branch_default = defineMetabaseCommand({
7
7
  meta: {
@@ -1,9 +1,9 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { r as DataActionCreateInput, t as DataAction } from "./data-action-DZxVB_hD.mjs";
6
- import { n as DATA_ACTION_DATASET_QUERY_LABELS, o as preflightMbql5Query, s as skipValidateFlag } from "./validate-query-CYUvRvVM.mjs";
6
+ import { n as DATA_ACTION_DATASET_QUERY_LABELS, o as preflightMbql5Query, s as skipValidateFlag } from "./validate-query-YtH3d5BP.mjs";
7
7
  import { n as dataActionView } from "./data-action-R9qxJDPA.mjs";
8
8
  //#region src/commands/data-action/create.ts
9
9
  var create_default = defineMetabaseCommand({
@@ -11,7 +11,7 @@ var create_default = defineMetabaseCommand({
11
11
  name: "create",
12
12
  description: "Create a data action from JSON"
13
13
  },
14
- details: "A data action is a parameterized native query that writes to a database, filed in a collection. The JSON body needs `name`, `type: \"query\"`, `database_id`, a native `dataset_query` whose `{{tag}}` placeholders are its inputs, and `parameters` targeting those tags; `collection_id` picks the collection (omit for the root). Data actions must be enabled on the database. An MBQL 5 `dataset_query` is checked against a bundled JSON Schema before sending; pass --skip-validate to bypass.",
14
+ details: "A data action is a parameterized native query that writes to a database, filed in a collection. The JSON body needs `name`, `type: \"query\"`, `database_id`, a native `dataset_query` whose `{{tag}}` placeholders are its inputs, and `parameters` targeting those tags; `collection_id` picks a collection in the `data-actions` or `data-apps` namespace (omit for the data actions root; a regular collection is refused). Data actions must be enabled on the database (`mb db set-data-actions <id> true`). An MBQL 5 `dataset_query` is checked against a bundled JSON Schema before sending; pass --skip-validate to bypass.",
15
15
  skills: [{
16
16
  skill: "data-action",
17
17
  purpose: "author a data action and its parameters"
@@ -1,9 +1,9 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
- import { i as PulseCreateInput, t as Pulse } from "./pulse-Dz0ocv0l.mjs";
6
- import { t as pulseView } from "./pulse-CFj1WfIC.mjs";
5
+ import { i as PulseCreateInput, t as Pulse } from "./pulse-CC81N2_0.mjs";
6
+ import { t as pulseView } from "./pulse-JPrq6NFP.mjs";
7
7
  //#region src/commands/subscription/create.ts
8
8
  var create_default = defineMetabaseCommand({
9
9
  meta: {
@@ -1,11 +1,11 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as readBody } from "./body-BkkQkGJg.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { t as readBody } from "./body-M5qsJoub.mjs";
4
4
  import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
5
5
  import { r as TransformCreateInput, t as Transform } from "./transform-DiW7bREn.mjs";
6
- import { a as TRANSFORM_SOURCE_QUERY_LABELS, o as preflightMbql5Query, s as skipValidateFlag } from "./validate-query-CYUvRvVM.mjs";
6
+ import { a as TRANSFORM_SOURCE_QUERY_LABELS, o as preflightMbql5Query, s as skipValidateFlag } from "./validate-query-YtH3d5BP.mjs";
7
7
  import { n as transformView } from "./transform-CWGJB8N_.mjs";
8
- import { t as enrichTransformCollectionError } from "./collection-namespace-B1OkM7p1.mjs";
8
+ import { t as enrichTransformCollectionError } from "./collection-namespace-Dl8_7xII.mjs";
9
9
  //#region src/commands/transform/create.ts
10
10
  var create_default = defineMetabaseCommand({
11
11
  meta: {
@@ -1,8 +1,8 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { t as parseId } from "./parse-id-Cv5eM7sg.mjs";
2
+ import { t as parseId } from "./parse-id-5BZGQ9Vd.mjs";
3
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
4
4
  import { t as UploadResult } from "./upload-DAtxBBms.mjs";
5
- import { n as requireUploadFilePath, t as readCsvFile } from "./upload-B6zBzMPW.mjs";
5
+ import { n as requireUploadFilePath, t as readCsvFile } from "./upload-BF5pdKRN.mjs";
6
6
  import { t as uploadResultView } from "./upload-C3z5ZaXA.mjs";
7
7
  //#region src/commands/upload/csv.ts
8
8
  const ROOT_COLLECTION = "root";
@@ -1,7 +1,7 @@
1
1
  import { c as renderSummary, ct as outputFlags, lt as profileFlag, rt as connectionFlags } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-Ckns6TKK.mjs";
3
- import { u as syncTaskView } from "./git-sync-Ch1V1fEK.mjs";
4
- import { n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-DEzhiaU9.mjs";
2
+ import { t as defineMetabaseCommand } from "./runtime-Y4VFWmmr.mjs";
3
+ import { u as syncTaskView } from "./git-sync-D1aKczo6.mjs";
4
+ import { n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-DNKG9Bk4.mjs";
5
5
  //#region src/commands/git-sync/current-task.ts
6
6
  const CurrentTaskResult = SyncTaskOrIdle;
7
7
  var current_task_default = defineMetabaseCommand({
@@ -18,17 +18,17 @@ var dashboard_default = defineCommandGroup({
18
18
  }
19
19
  ],
20
20
  subCommands: {
21
- list: () => import("./list-6nGX0Rqc.mjs").then((mod) => mod.default),
22
- get: () => import("./get-C_rjxpoe.mjs").then((mod) => mod.default),
23
- cards: () => import("./cards-CSL8ukS1.mjs").then((mod) => mod.default),
24
- "parameter-values": () => import("./parameter-values-IWi_DNhp.mjs").then((mod) => mod.default),
25
- subscriptions: () => import("./subscriptions-CJ8Jdp9A.mjs").then((mod) => mod.default),
26
- create: () => import("./create-Bnb1abv_.mjs").then((mod) => mod.default),
27
- update: () => import("./update-C7Wmom6x.mjs").then((mod) => mod.default),
28
- "update-dashcard": () => import("./update-dashcard-BmkfJ7t9.mjs").then((mod) => mod.default),
29
- copy: () => import("./copy-BYukQEtf.mjs").then((mod) => mod.default),
30
- verify: () => import("./verify-BdW-GExk.mjs").then((mod) => mod.default),
31
- archive: () => import("./archive-EhW6blNc.mjs").then((mod) => mod.default)
21
+ list: () => import("./list-CA939qkn.mjs").then((mod) => mod.default),
22
+ get: () => import("./get--1qTpTIQ.mjs").then((mod) => mod.default),
23
+ cards: () => import("./cards-DWJOtZoN.mjs").then((mod) => mod.default),
24
+ "parameter-values": () => import("./parameter-values-3eHpqznI.mjs").then((mod) => mod.default),
25
+ subscriptions: () => import("./subscriptions-DcCOA2p1.mjs").then((mod) => mod.default),
26
+ create: () => import("./create-Bh3q3eHg.mjs").then((mod) => mod.default),
27
+ update: () => import("./update-B1UXRPN-.mjs").then((mod) => mod.default),
28
+ "update-dashcard": () => import("./update-dashcard-m-hkIGUu.mjs").then((mod) => mod.default),
29
+ copy: () => import("./copy-BzBp5FaY.mjs").then((mod) => mod.default),
30
+ verify: () => import("./verify-cjUPMF_B.mjs").then((mod) => mod.default),
31
+ archive: () => import("./archive-DZDkfhdH.mjs").then((mod) => mod.default)
32
32
  }
33
33
  });
34
34
  //#endregion
@@ -1,5 +1,5 @@
1
- import { t as EmbeddingParams } from "./embedding-i-KqpefC.mjs";
2
- import { n as ParameterMapping, t as Parameter } from "./parameter-Celg0wZa.mjs";
1
+ import { t as Card, u as EmbeddingParams } from "./card-QR3zEu6E.mjs";
2
+ import { n as ParameterMapping, t as Parameter } from "./parameter-DvRQMKd2.mjs";
3
3
  import { z } from "zod";
4
4
  //#region ../client/src/domain/dashboard.ts
5
5
  const DashboardWidth = z.enum(["fixed", "full"]);
@@ -30,8 +30,44 @@ const DashcardCompact = Dashcard.pick({
30
30
  row: true,
31
31
  col: true,
32
32
  size_x: true,
33
- size_y: true
33
+ size_y: true,
34
+ parameter_mappings: true
34
35
  }).strip();
36
+ /**
37
+ * What a dashcard that is not a chart of a card shows. `display` names it: `text`, `heading`,
38
+ * `link`, `iframe`, `placeholder`, or `action` for an action button. The server stores the
39
+ * settings without checking them, so `display` is an open string another client may leave out.
40
+ */
41
+ const DashcardVirtualCard = z.object({ display: z.string().optional() }).loose();
42
+ /**
43
+ * A dashcard's visualization settings. Every key is free-form except the two that say what a
44
+ * dashcard is when it is not a chart: `virtual_card`, and `text`, the Markdown a text or heading
45
+ * dashcard shows.
46
+ */
47
+ const DashcardVisualizationSettings = z.object({
48
+ virtual_card: DashcardVirtualCard.nullable().optional(),
49
+ text: z.string().nullable().optional()
50
+ }).loose();
51
+ /**
52
+ * A card the caller cannot read. The server cuts it down to its `id` before answering, so a
53
+ * dashboard the caller can read still lists it; a readable card always carries its `name`, which is
54
+ * what tells the two apart.
55
+ */
56
+ const UnreadableCard = z.object({
57
+ id: z.number().int(),
58
+ name: z.never().optional()
59
+ }).loose();
60
+ /**
61
+ * A dashcard as a dashboard read or write returns it, with its card whole in `card`. An action
62
+ * button bound to a model carries the model there and the action in `action_id`. A dashcard bound to
63
+ * no card (a text, heading, link, iframe or placeholder dashcard, or an action button bound to no
64
+ * model, which `visualization_settings.virtual_card` names) has `card_id` and `card` both `null`.
65
+ */
66
+ const DashcardDetail = Dashcard.extend({
67
+ action_id: z.number().int().nullable(),
68
+ visualization_settings: DashcardVisualizationSettings,
69
+ card: z.union([Card, UnreadableCard]).nullable()
70
+ });
35
71
  const DashboardTab = z.object({
36
72
  id: z.number().int(),
37
73
  dashboard_id: z.number().int(),
@@ -58,13 +94,14 @@ const Dashboard = z.object({
58
94
  enable_embedding: z.boolean(),
59
95
  public_uuid: z.string().nullable(),
60
96
  cache_ttl: z.number().int().nullable(),
97
+ collection_position: z.number().int().nullable(),
61
98
  parameters: z.array(Parameter).nullable(),
62
99
  dashcards: z.array(Dashcard).optional(),
63
100
  tabs: z.array(DashboardTab).optional()
64
101
  }).loose();
65
102
  const DashboardDetail = Dashboard.extend({
66
103
  parameters: z.array(Parameter),
67
- dashcards: z.array(Dashcard),
104
+ dashcards: z.array(DashcardDetail),
68
105
  tabs: z.array(DashboardTab)
69
106
  });
70
107
  const DashboardCompact = Dashboard.pick({
@@ -142,5 +179,15 @@ z.object({
142
179
  const DashboardUncopiedCard = z.object({ id: z.number().int() }).loose();
143
180
  const DashboardCopy = Dashboard.extend({ uncopied: z.array(DashboardUncopiedCard).optional() });
144
181
  const DashboardCopyCompact = DashboardCompact.extend({ uncopied: z.array(DashboardUncopiedCard.pick({ id: true }).strip()).optional() });
182
+ const ParameterConstraintValue = z.union([
183
+ z.string(),
184
+ z.number(),
185
+ z.boolean()
186
+ ]);
187
+ /**
188
+ * Values of other parameters on a dashboard, by parameter id, that narrow the values a linked
189
+ * parameter offers. An array sets several values for one parameter.
190
+ */
191
+ const DashboardParameterConstraints = z.record(z.string().min(1), z.union([ParameterConstraintValue, z.array(ParameterConstraintValue)]));
145
192
  //#endregion
146
- export { DashboardCreateInput as a, DashboardUpdateInput as c, DashcardPatchInput as d, DashboardCopyCompact as i, Dashcard as l, DashboardCompact as n, DashboardDetail as o, DashboardCopy as r, DashboardListFilter as s, Dashboard as t, DashcardCompact as u };
193
+ export { DashboardCreateInput as a, DashboardParameterConstraints as c, DashcardCompact as d, DashcardDetail as f, DashboardCopyCompact as i, DashboardUpdateInput as l, DashboardCompact as n, DashboardDetail as o, DashcardPatchInput as p, DashboardCopy as r, DashboardListFilter as s, Dashboard as t, Dashcard as u };
@@ -1,4 +1,4 @@
1
- import { i as DashboardCopyCompact, n as DashboardCompact, u as DashcardCompact } from "./dashboard-Phz3XpRM.mjs";
1
+ import { d as DashcardCompact, i as DashboardCopyCompact, n as DashboardCompact } from "./dashboard-Chjy5GKR.mjs";
2
2
  //#region src/output/views/dashboard.ts
3
3
  const dashcardView = {
4
4
  compactPick: DashcardCompact,
@@ -11,13 +11,13 @@ var data_action_default = defineCommandGroup({
11
11
  purpose: "the data action's native query and its template tags"
12
12
  }],
13
13
  subCommands: {
14
- list: () => import("./list-CRXTfEFk.mjs").then((mod) => mod.default),
15
- get: () => import("./get-okEsnkvC.mjs").then((mod) => mod.default),
16
- create: () => import("./create-CqF7vqXC.mjs").then((mod) => mod.default),
17
- update: () => import("./update-DZHgr6Gu.mjs").then((mod) => mod.default),
18
- archive: () => import("./archive-ULXc3xzI.mjs").then((mod) => mod.default),
19
- delete: () => import("./delete-BOma6qIq.mjs").then((mod) => mod.default),
20
- execute: () => import("./execute-H09Qus4_.mjs").then((mod) => mod.default)
14
+ list: () => import("./list-BiSwl56L.mjs").then((mod) => mod.default),
15
+ get: () => import("./get-B8xrmipw.mjs").then((mod) => mod.default),
16
+ create: () => import("./create-f0bBEfDI.mjs").then((mod) => mod.default),
17
+ update: () => import("./update-FfeHReec.mjs").then((mod) => mod.default),
18
+ archive: () => import("./archive-3fdIvMsf.mjs").then((mod) => mod.default),
19
+ delete: () => import("./delete-BHX_F8Qu.mjs").then((mod) => mod.default),
20
+ execute: () => import("./execute-DBJGtHHG.mjs").then((mod) => mod.default)
21
21
  }
22
22
  });
23
23
  //#endregion
@@ -0,0 +1,41 @@
1
+ import { t as defineCommandGroup } from "./group-81zoQcEP.mjs";
2
+ //#region src/commands/data-app/index.ts
3
+ var data_app_default = defineCommandGroup({
4
+ name: "data-app",
5
+ description: "Manage Metabase data apps",
6
+ skills: [
7
+ {
8
+ skill: "data-app",
9
+ purpose: "create, preview, build and publish a data app"
10
+ },
11
+ {
12
+ skill: "data-app-ui",
13
+ purpose: "the app's UI: sandbox, layout, theme, charts, pages"
14
+ },
15
+ {
16
+ skill: "data-app-data",
17
+ purpose: "the questions a data app runs, and its read hooks"
18
+ },
19
+ {
20
+ skill: "data-app-filters",
21
+ purpose: "filter controls and date ranges"
22
+ },
23
+ {
24
+ skill: "data-app-actions",
25
+ purpose: "writes: actions, forms and refresh"
26
+ }
27
+ ],
28
+ subCommands: {
29
+ scaffold: () => import("./scaffold-BuL0_ptz.mjs").then((mod) => mod.default),
30
+ list: () => import("./list-YFwmHXGG.mjs").then((mod) => mod.default),
31
+ get: () => import("./get-Bq_9VSTa.mjs").then((mod) => mod.default),
32
+ create: () => import("./create-_rOCx5b8.mjs").then((mod) => mod.default),
33
+ update: () => import("./update-DIBaY-fy.mjs").then((mod) => mod.default),
34
+ "typed-schema": () => import("./typed-schema-Bo0Q6C0S.mjs").then((mod) => mod.default),
35
+ "set-bundle": () => import("./set-bundle-DX5HqDji.mjs").then((mod) => mod.default),
36
+ "set-enabled": () => import("./set-enabled-0QI-CHAT.mjs").then((mod) => mod.default),
37
+ delete: () => import("./delete-BSgxmR3y.mjs").then((mod) => mod.default)
38
+ }
39
+ });
40
+ //#endregion
41
+ export { data_app_default as default };
@@ -0,0 +1,52 @@
1
+ import { z } from "zod";
2
+ //#region ../client/src/domain/data-app.ts
3
+ const DATA_APP_SLUG_MAX_LENGTH = 100;
4
+ const RESERVED_DATA_APP_SLUGS = /* @__PURE__ */ new Set(["repo-status", "sandbox-host"]);
5
+ const DataAppSlug = z.string().max(DATA_APP_SLUG_MAX_LENGTH, `must be at most ${DATA_APP_SLUG_MAX_LENGTH} characters`).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "must be dash-cased: a-z, 0-9 and single dashes").refine((slug) => !RESERVED_DATA_APP_SLUGS.has(slug), "is reserved by Metabase");
6
+ const DataApp = z.object({
7
+ id: z.number().int(),
8
+ name: z.string(),
9
+ display_name: z.string(),
10
+ description: z.string().nullable(),
11
+ version: z.number().int(),
12
+ outdated: z.boolean(),
13
+ bundle_path: z.string(),
14
+ enabled: z.boolean(),
15
+ allowed_hosts: z.array(z.string()),
16
+ resource_collection_id: z.number().int(),
17
+ bundle_hash: z.string().nullable(),
18
+ created_at: z.string(),
19
+ updated_at: z.string()
20
+ }).loose();
21
+ const DataAppSummary = z.object({
22
+ name: z.string(),
23
+ display_name: z.string()
24
+ }).strict();
25
+ const DataAppEntry = z.union([DataApp, DataAppSummary]);
26
+ const DataAppCompact = DataApp.pick({
27
+ name: true,
28
+ display_name: true,
29
+ enabled: true,
30
+ resource_collection_id: true,
31
+ outdated: true
32
+ }).strip().partial({
33
+ enabled: true,
34
+ resource_collection_id: true,
35
+ outdated: true
36
+ });
37
+ z.object({ available: z.boolean().optional() }).strict();
38
+ const DataAppFields = {
39
+ display_name: z.string().min(1).optional(),
40
+ description: z.string().nullable().optional(),
41
+ version: z.number().int().positive().optional(),
42
+ bundle_path: z.string().min(1).optional(),
43
+ allowed_hosts: z.array(z.string()).optional(),
44
+ enabled: z.boolean().optional()
45
+ };
46
+ const DataAppCreateInput = z.object({
47
+ name: DataAppSlug,
48
+ ...DataAppFields
49
+ }).strict();
50
+ const DataAppUpdateInput = z.object(DataAppFields).strict();
51
+ //#endregion
52
+ export { DataAppSlug as a, DataAppEntry as i, DataAppCompact as n, DataAppUpdateInput as o, DataAppCreateInput as r, DataApp as t };
@@ -0,0 +1,29 @@
1
+ import { n as DataAppCompact } from "./data-app-BUW-HlUo.mjs";
2
+ //#region src/output/views/data-app.ts
3
+ const dataAppView = {
4
+ compactPick: DataAppCompact,
5
+ tableColumns: [
6
+ {
7
+ key: "name",
8
+ label: "Slug"
9
+ },
10
+ {
11
+ key: "display_name",
12
+ label: "Name"
13
+ },
14
+ {
15
+ key: "enabled",
16
+ label: "Enabled"
17
+ },
18
+ {
19
+ key: "resource_collection_id",
20
+ label: "Collection"
21
+ },
22
+ {
23
+ key: "outdated",
24
+ label: "Outdated"
25
+ }
26
+ ]
27
+ };
28
+ //#endregion
29
+ export { dataAppView as t };
@@ -0,0 +1,57 @@
1
+ import { Pt as isFileNotFoundError, St as ConfigError, Z as parseJson } from "./cli.mjs";
2
+ import { z } from "zod";
3
+ import { cp, mkdir, readFile, readdir, rename, stat, writeFile } from "node:fs/promises";
4
+ import { basename, dirname, join, resolve } from "node:path";
5
+ //#region src/runtime/data-app-project.ts
6
+ const DEFAULT_BUNDLE_PATH = "dist/index.js";
7
+ const PackageManifest = z.object({}).loose();
8
+ const SHIPPED_GITIGNORE = "gitignore";
9
+ async function readBundle(path) {
10
+ try {
11
+ return await readFile(path, "utf8");
12
+ } catch (error) {
13
+ if (isFileNotFoundError(error)) throw new ConfigError(`bundle not found: ${path} — build the app first (npm run build)`);
14
+ throw error;
15
+ }
16
+ }
17
+ async function writeProjectFile(path, text) {
18
+ await mkdir(dirname(path), { recursive: true });
19
+ await writeFile(path, text, "utf8");
20
+ }
21
+ async function statOrNull(path) {
22
+ try {
23
+ return await stat(path);
24
+ } catch (error) {
25
+ if (isFileNotFoundError(error)) return null;
26
+ throw error;
27
+ }
28
+ }
29
+ async function isMissingOrEmpty(dir) {
30
+ const entry = await statOrNull(dir);
31
+ if (entry === null) return true;
32
+ if (!entry.isDirectory()) throw new ConfigError(`${dir} is not a directory — scaffold into a new or empty directory`);
33
+ return (await readdir(dir)).length === 0;
34
+ }
35
+ function packageNameFor(dir) {
36
+ const name = basename(resolve(dir)).toLowerCase().replace(/[^a-z0-9._~-]+/g, "-").replace(/^[-._]+/, "").replace(/-+$/, "");
37
+ if (name === "") throw new ConfigError(`cannot name the package after ${dir} — scaffold into a directory whose name has a letter or a digit`);
38
+ return name;
39
+ }
40
+ async function renamePackage(dir, name) {
41
+ const path = join(dir, "package.json");
42
+ const manifest = parseJson(await readFile(path, "utf8"), PackageManifest);
43
+ await writeFile(path, `${JSON.stringify({
44
+ ...manifest,
45
+ name
46
+ }, null, 2)}\n`, "utf8");
47
+ }
48
+ /** Copies the app template into `dir`, which must be missing or empty, and names its package after `dir`. */
49
+ async function scaffoldDataAppProject({ dir, templateDir }) {
50
+ const packageName = packageNameFor(dir);
51
+ if (!await isMissingOrEmpty(dir)) throw new ConfigError(`${dir} is not empty — scaffold into a new or empty directory`);
52
+ await cp(templateDir, dir, { recursive: true });
53
+ await rename(join(dir, SHIPPED_GITIGNORE), join(dir, ".gitignore"));
54
+ await renamePackage(dir, packageName);
55
+ }
56
+ //#endregion
57
+ export { writeProjectFile as i, readBundle as n, scaffoldDataAppProject as r, DEFAULT_BUNDLE_PATH as t };