@metabase/cli 0.5.2 → 0.5.4
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.
- package/README.md +1 -1
- package/dist/{add-collection-C0BQHjJd.mjs → add-collection-D2x34KVO.mjs} +3 -3
- package/dist/{alert-mXHOt00T.mjs → alert-B-w0c61D.mjs} +7 -7
- package/dist/{alerts-CyB1Z7AU.mjs → alerts-nnrpqD-U.mjs} +6 -6
- package/dist/api-key-9jVV67hF.mjs +38 -0
- package/dist/api-key-CTyXuYui.mjs +13 -0
- package/dist/api-key-DbsqHlN6.mjs +31 -0
- package/dist/{append-DeHhUAeY.mjs → append-BPrVW4RB.mjs} +4 -4
- package/dist/{archive-DRMXvkiI.mjs → archive-BYo35OGC.mjs} +5 -5
- package/dist/{archive-Bi-Sfq5T.mjs → archive-BZVRJYTT.mjs} +5 -5
- package/dist/{archive-CCKxZEuq.mjs → archive-Bw_cvk_4.mjs} +3 -3
- package/dist/{archive-qy0CFo1s2.mjs → archive-CJFUFozc.mjs} +5 -5
- package/dist/{archive-CfNLlebd.mjs → archive-CTZs6Hl6.mjs} +5 -5
- package/dist/{archive-CDSAXKKB.mjs → archive-Ccf6Qqrf.mjs} +3 -3
- package/dist/{archive-DfDqPgtk.mjs → archive-Cwetg5kK.mjs} +5 -5
- package/dist/{archive-CjVd1fJ5.mjs → archive-DBQnauVo.mjs} +5 -5
- package/dist/{archive-CpvpGZlz.mjs → archive-F5hoWW7f.mjs} +5 -5
- package/dist/{archive-DpgtAdEa.mjs → archive-OZQaaQkK.mjs} +5 -5
- package/dist/{archive-B1MA5MZp.mjs → archive-p7gGwh0n.mjs} +5 -5
- package/dist/{archive-HCVTRXI2.mjs → archive-tmrsG41w.mjs} +3 -3
- package/dist/{auth-_cdypXeX.mjs → auth-eogOlU4X.mjs} +5 -5
- package/dist/{branch-flag-CPTQ4wXp.mjs → branch-flag-BvIdNB5z.mjs} +1 -1
- package/dist/{branches-C7mNYAky.mjs → branches-CERgKqFq.mjs} +3 -3
- package/dist/{breaking-BindR3ZW.mjs → breaking-B8f_vl0i.mjs} +6 -6
- package/dist/{broken-SoXfkx7d.mjs → broken-mrkOdV4j.mjs} +8 -8
- package/dist/{bulk-discard-values-D_d5_1w5.mjs → bulk-discard-values-BQ3z6nJb.mjs} +5 -5
- package/dist/{bulk-edit-Cce05vb_.mjs → bulk-edit-CJxoxDGQ.mjs} +7 -7
- package/dist/{bulk-rescan-values-DIQN4VT_.mjs → bulk-rescan-values-DflzyxEj.mjs} +5 -5
- package/dist/{bulk-sync-schema-DLWf5dCl.mjs → bulk-sync-schema-CBIs4yHs.mjs} +5 -5
- package/dist/{cancel-rnd6UI-6.mjs → cancel-CyTRWSOr.mjs} +3 -3
- package/dist/{cancel-task-acq1GT6Z.mjs → cancel-task-BuZsQuLp.mjs} +2 -2
- package/dist/{card-QR3zEu6E.mjs → card-BJRZ5D5Q.mjs} +2 -2
- package/dist/card-DA1W3Axw.mjs +25 -0
- package/dist/{card-3NmUiU5F.mjs → card-VipF12MJ.mjs} +1 -1
- package/dist/{cards-DmzPtx81.mjs → cards-BEeFNiCt.mjs} +6 -6
- package/dist/cli.mjs +142 -292
- package/dist/{client-D-Aw6JLk.mjs → client-DvWllzKd.mjs} +401 -189
- package/dist/{collection-D5vt2IJ_.mjs → collection-Bf3lv-zo.mjs} +1 -1
- package/dist/collection-C98jgufi.mjs +21 -0
- package/dist/{collection-DNmFKALA.mjs → collection-Cz2qLX2m.mjs} +1 -1
- package/dist/{collection-namespace-Dl8_7xII.mjs → collection-namespace-C0JcSEwN.mjs} +2 -1
- package/dist/{content-translation-DxT1OMnP.mjs → content-translation-1coWME1P.mjs} +3 -3
- package/dist/{copy-BTdTiDQo.mjs → copy-DVe4rcLK.mjs} +6 -6
- package/dist/{copy-flags-CTM91pxH.mjs → copy-flags-DZ5Cy-Gk.mjs} +2 -2
- package/dist/{copy-CyFf3e2Y.mjs → copy-hE6SaHfb.mjs} +6 -6
- package/dist/{create-CuJJd7Rh.mjs → create-B3P62NaN.mjs} +4 -5
- package/dist/{create-BH6zpwKD.mjs → create-B3kz_fHg.mjs} +4 -5
- package/dist/{create-Dn8V5siS.mjs → create-BPRuU7Mv.mjs} +7 -8
- package/dist/{create-DeCPAYJi.mjs → create-BjH0i2BC.mjs} +9 -10
- package/dist/{create-Ch-NbeMr.mjs → create-Btwnm6D2.mjs} +9 -10
- package/dist/{create-Ce5YVusp.mjs → create-CCb2_Kcc.mjs} +6 -7
- package/dist/{create-DeiBnRRz.mjs → create-D271V9Cf.mjs} +9 -9
- package/dist/create-D6Xm2b2D.mjs +37 -0
- package/dist/{create-roJbQOmm.mjs → create-DCoo3sI2.mjs} +4 -4
- package/dist/{create-B6dABrs7.mjs → create-DEIIUohY2.mjs} +10 -11
- package/dist/{create-qtTB8rIE.mjs → create-DJg0Ohj5.mjs} +9 -10
- package/dist/{create-C3rabvE_.mjs → create-DR5tpMUA.mjs} +4 -5
- package/dist/{create-BwIOlpLc.mjs → create-DR8g_rEL.mjs} +6 -7
- package/dist/{create-GU8_GNbN.mjs → create-DXivfl69.mjs} +4 -5
- package/dist/create-DdfFgF-w.mjs +33 -0
- package/dist/{create-DsCydgm22.mjs → create-DkFCjBp3.mjs} +6 -7
- package/dist/{create-B3QZpifA.mjs → create-Dz4c8E33.mjs} +9 -10
- package/dist/{create-Bg3WTMMU.mjs → create-LpdQKxUt.mjs} +7 -7
- package/dist/{create-D6NLpIzV.mjs → create-XCzUuT42.mjs} +4 -5
- package/dist/{create-DiG165B2.mjs → create-XVjr8IDS.mjs} +6 -7
- package/dist/{create-branch-C4Ql9G2g.mjs → create-branch-D_nbKxDS.mjs} +3 -2
- package/dist/{csv-DmuyyLdz.mjs → csv-LP7sE-CS.mjs} +4 -4
- package/dist/{current-task-C2PPBVVv.mjs → current-task-DhgwtGN3.mjs} +3 -3
- package/dist/{dashboard-D5E3fMKh.mjs → dashboard-Bx2sYijR.mjs} +1 -1
- package/dist/dashboard-CR97_zXn.mjs +35 -0
- package/dist/{dashboard-Chjy5GKR.mjs → dashboard-Cwsf-e9T.mjs} +23 -6
- package/dist/data-action-C4jE-RLb.mjs +24 -0
- package/dist/{data-action-DZxVB_hD.mjs → data-action-CuvI17XF.mjs} +8 -2
- package/dist/{data-action-R9qxJDPA.mjs → data-action-DLj9cgpu.mjs} +1 -1
- package/dist/data-app-BUW-HlUo.mjs +52 -0
- package/dist/data-app-BlBvvRzC.mjs +41 -0
- package/dist/data-app-Blz61mG5.mjs +29 -0
- package/dist/data-app-project-DjDDWgUF.mjs +58 -0
- package/dist/{database-CxykzTAA.mjs → database-C5ucihp3.mjs} +2 -2
- package/dist/{database-D8XzgJEz.mjs → database-u_spHEa0.mjs} +1 -1
- package/dist/{dataset-DIQLAp2P.mjs → dataset-LJxNN6p5.mjs} +3 -3
- package/dist/{db-BgKKN1-4.mjs → db-D8mPRqZc.mjs} +8 -8
- package/dist/{delete-DiZg2wit.mjs → delete-8k7oYDFr.mjs} +4 -4
- package/dist/{delete-_XC6R-Jn.mjs → delete-B1SbEVIc.mjs} +4 -4
- package/dist/{delete-CS6hsBnd.mjs → delete-CaaPrNOf.mjs} +4 -4
- package/dist/{delete-5ZOvFr-7.mjs → delete-CqyBkMCd.mjs} +4 -4
- package/dist/{delete-DeqGTuwO.mjs → delete-CuyGTe0i.mjs} +4 -4
- package/dist/delete-DC-DEYSq.mjs +44 -0
- package/dist/{delete-B3aylPHD.mjs → delete-DWTqIlbr.mjs} +4 -4
- package/dist/delete-DaqzPLcG.mjs +40 -0
- package/dist/{delete-DtIbkF42.mjs → delete-DuaJ8PUI.mjs} +4 -4
- package/dist/{delete-CH32Ew4m.mjs → delete-ZjLpkwgx.mjs} +4 -4
- package/dist/delete-runtime-DOOy3gzH.mjs +73 -0
- package/dist/{delete-table-BEuMlqw1.mjs → delete-table-CnGv1gx9.mjs} +4 -4
- package/dist/{dependencies-DD48u9i3.mjs → dependencies-D6SNdLW8.mjs} +6 -6
- package/dist/dependency-Bbg9x1V9.mjs +15 -0
- package/dist/{dependency-CaC6XuTY.mjs → dependency-C1DExO6k.mjs} +8 -5
- package/dist/{dependency-Dxvb2Znu.mjs → dependency-DcM96XJ-.mjs} +4 -3
- package/dist/{dependents-ByfHs8pO.mjs → dependents-BizQb14Q.mjs} +9 -9
- package/dist/{dirty-DsrGfLit.mjs → dirty-BHwdHOEj.mjs} +3 -3
- package/dist/{discard-values-BfpwwC62.mjs → discard-values-BWlh2ce8.mjs} +5 -5
- package/dist/document-B6254tue.mjs +20 -0
- package/dist/{document-UMG6me2P.mjs → document-BHOQq2T_.mjs} +2 -2
- package/dist/{document-DVIu3Vj4.mjs → document-lS1XZEF3.mjs} +1 -1
- package/dist/{download-kpgGtfpw.mjs → download-D2wEAgi_.mjs} +2 -2
- package/dist/{eid-Tp-ACZ4O.mjs → eid-KtWIPUCC.mjs} +5 -5
- package/dist/{entity-DjDkaMkB.mjs → entity-DICgy4Bl.mjs} +2 -2
- package/dist/{entry-flags-nhBrUS6p.mjs → entry-flags-DLS6r8Vf.mjs} +5 -6
- package/dist/{events-Dm9-ofXu.mjs → events-B8yMqrrD.mjs} +4 -4
- package/dist/{execute-BL0dAlrp.mjs → execute-Bebvab7D.mjs} +7 -8
- package/dist/{export-CIW-dHft.mjs → export-BNj3RvAl.mjs} +6 -5
- package/dist/{export-flags-CpukgETM.mjs → export-flags-iXfEILf7.mjs} +3 -2
- package/dist/{export-preflight-BMlz3Hp9.mjs → export-preflight-F3OapAD5.mjs} +3 -3
- package/dist/{field-DoWQUl7V.mjs → field-C2qOViFZ.mjs} +8 -2
- package/dist/{field-BVz4AS3f.mjs → field-CT4r6b92.mjs} +1 -1
- package/dist/field-DQAcCjXr.mjs +21 -0
- package/dist/{fields-CcerFaiu.mjs → fields-BkAS_wIA.mjs} +6 -6
- package/dist/{filter-flags-DhE4olyf.mjs → filter-flags-ezqqsOQL.mjs} +4 -4
- package/dist/{fks-CYfBesHV.mjs → fks--SaqvPw1.mjs} +6 -6
- package/dist/{get-DKbGKa6F.mjs → get-B1S1kW2N.mjs} +5 -5
- package/dist/{get-Be7yjY9v.mjs → get-B1uiZyyi.mjs} +5 -5
- package/dist/{get-BaiyMem3.mjs → get-B2nBYYCw.mjs} +4 -4
- package/dist/{get-CmxYFUuR.mjs → get-BSKpQJVB.mjs} +5 -5
- package/dist/{get-BFloqjrN.mjs → get-BjgB5l7X.mjs} +5 -5
- package/dist/{get-RCDF-hEq.mjs → get-Boql3_0n.mjs} +5 -5
- package/dist/{get-CEJE9Rmp.mjs → get-BseHija1.mjs} +5 -5
- package/dist/{get-eNRULmE5.mjs → get-C9VumVZ3.mjs} +6 -5
- package/dist/{get--E7UvR-v.mjs → get-CGPxAoow.mjs} +3 -3
- package/dist/{get-HzDQViDP2.mjs → get-CM9IOr82.mjs} +3 -3
- package/dist/{get-CRfrkxqc.mjs → get-CTTKQDr7.mjs} +5 -5
- package/dist/{get-DHSuVxrH.mjs → get-CU1zKfBS.mjs} +5 -5
- package/dist/{get-Dp45rXRS.mjs → get-CWDz6eV2.mjs} +3 -3
- package/dist/{get-p2sZvp7v.mjs → get-C_hatP_z.mjs} +3 -3
- package/dist/get-Cdcj1c9U.mjs +28 -0
- package/dist/{get-BLnQ2aut.mjs → get-CiLYhFjU.mjs} +5 -5
- package/dist/{get-LRTRu85E.mjs → get-De6qpuzO.mjs} +5 -5
- package/dist/{get-CZgAr8rM.mjs → get-VpGfaL7c.mjs} +5 -5
- package/dist/{get-BvEHWLGL.mjs → get-f2km9wsq.mjs} +3 -3
- package/dist/{get-Cj3-w_Nu.mjs → get-gGSl7Se4.mjs} +5 -5
- package/dist/{get-B0RQPTV-2.mjs → get-iOs1ci6x.mjs} +5 -5
- package/dist/{get-run-C3AHKn3-.mjs → get-run-CHup8cMl.mjs} +5 -5
- package/dist/{get-DRhcS76J.mjs → get-uHs9Ve-4.mjs} +5 -5
- package/dist/git-sync-Czena0TW.mjs +29 -0
- package/dist/glossary-BVxRpD7o.mjs +14 -0
- package/dist/{glossary-BkGmCI4X.mjs → glossary-CQRW3Z4d.mjs} +1 -1
- package/dist/{glossary-QN-hHfOT.mjs → glossary-iPIWrEbP.mjs} +1 -1
- package/dist/{graph-BGOYocJc.mjs → graph-B7SlzpkC.mjs} +6 -6
- package/dist/{group-81zoQcEP.mjs → group--6adAsqG.mjs} +2 -2
- package/dist/{has-remote-changes-DxsRvZsw.mjs → has-remote-changes-DZq7q2Wk.mjs} +2 -2
- package/dist/{import-izn2_OsW.mjs → import-DKZF0kMU.mjs} +6 -5
- package/dist/input-gate-registry-Dh8QjKgW.mjs +14 -0
- package/dist/{is-dirty-DHYYRl6Y.mjs → is-dirty-haRLODo1.mjs} +2 -2
- package/dist/{items-mIoZBqUc.mjs → items-BGWE5hLl.mjs} +7 -6
- package/dist/{key-BYEv4Wgq.mjs → key-DLrpCgdZ.mjs} +1 -1
- package/dist/{library-wUiD2jbw.mjs → library-BprxuqZl.mjs} +1 -1
- package/dist/{library-DKIqzyUk.mjs → library-C4g9pdiS.mjs} +8 -3
- package/dist/{library-5I0TlXmf.mjs → library-e3aiJ1Yb.mjs} +5 -5
- package/dist/{list-BKhJfFyB.mjs → list-B9yhUzCc.mjs} +5 -5
- package/dist/{list-CpxEOoqw.mjs → list-BNel4hYs.mjs} +6 -6
- package/dist/{list-D8jiz8YP.mjs → list-Bbc8VYDi.mjs} +3 -3
- package/dist/{list-CT7AOXTS.mjs → list-BiIZdUoN.mjs} +5 -5
- package/dist/list-C-AnwSRP.mjs +33 -0
- package/dist/list-CNiCM1NL.mjs +29 -0
- package/dist/{list-DV4wojtv.mjs → list-COPGHkWL.mjs} +5 -5
- package/dist/{list-CTlIVHeG.mjs → list-CsXdnNyp.mjs} +5 -5
- package/dist/{list-DVnPzc5m.mjs → list-D0ASRA_6.mjs} +6 -6
- package/dist/{list-B6TYzXyW.mjs → list-DAa4EWlv.mjs} +5 -5
- package/dist/{list-CmOTwt_z.mjs → list-DDt1iLXj.mjs} +4 -4
- package/dist/{list-C6roDyBd.mjs → list-DFuydMdV.mjs} +6 -6
- package/dist/{list-C1dEh2yq.mjs → list-DFxfpa4W.mjs} +6 -6
- package/dist/{list-OWPg67JC.mjs → list-DJyIkrY1.mjs} +5 -5
- package/dist/{list-CuEPFHrk.mjs → list-DUCxqhtn.mjs} +5 -5
- package/dist/{list-B8FPpgct.mjs → list-D_8GeDG-.mjs} +3 -3
- package/dist/{list-NeImhwLD.mjs → list-DcXqKZyg.mjs} +5 -5
- package/dist/{list-C3CXHKTW.mjs → list-DednUvr3.mjs} +3 -3
- package/dist/{list-O_nmgwSj.mjs → list-Dvf1iB8r.mjs} +3 -3
- package/dist/{list-jT5ndEGr.mjs → list-HI7Mpoy-.mjs} +5 -5
- package/dist/{list-BEBAq1xc.mjs → list-OUSeeuXb.mjs} +5 -5
- package/dist/{list-BxIulkp3.mjs → list-P7FnSsbZ.mjs} +6 -6
- package/dist/{list-C-f-G-cC.mjs → list-gcDxZ7Th.mjs} +5 -5
- package/dist/{login-DOW1mr40.mjs → login-APHXId1p.mjs} +6 -5
- package/dist/{logout-BQ8wywf7.mjs → logout-V0pxj6AM.mjs} +3 -2
- package/dist/{measure-CtfjqJFP.mjs → measure-BMWrX1ca.mjs} +3 -1
- package/dist/{measure-Bz-bGn-Z.mjs → measure-DnGWkKyx.mjs} +6 -6
- package/dist/{measure-4P0bOlZ3.mjs → measure-DqZG65of.mjs} +1 -1
- package/dist/{notification-DaA4bBHW.mjs → notification-B5yMuPmo.mjs} +6 -1
- package/dist/{notification-W2SVssyY.mjs → notification-BEJaEZS2.mjs} +2 -2
- package/dist/{parameter-DvRQMKd2.mjs → parameter-Bucz3cLJ.mjs} +1 -1
- package/dist/{parameter-values-B7rr6fcy.mjs → parameter-values-DfZSEK3O.mjs} +6 -5
- package/dist/{parse-enum-DAcTzG1q.mjs → parse-enum-CEXPuN9H.mjs} +1 -1
- package/dist/{parse-id-5BZGQ9Vd.mjs → parse-id-EXZan40V.mjs} +1 -1
- package/dist/{parse-ref-ByXc-pls.mjs → parse-ref-D28NvwpR.mjs} +1 -1
- package/dist/{parse-text-FgX60vIg.mjs → parse-text-C4LYzIFa.mjs} +1 -1
- package/dist/{path-CHQguAPa.mjs → path-Bni-pnKS.mjs} +4 -4
- package/dist/{poll-CgtcJopL.mjs → poll-vxN__4cz.mjs} +2 -2
- package/dist/predicates-0C0TsWcJ.mjs +219 -0
- package/dist/{preflight-ChTKhB8Y.mjs → preflight-4iy2qzsh.mjs} +3 -2
- package/dist/{process-aqXm5QgC.mjs → process-BQC3mK2k.mjs} +1 -1
- package/dist/{publish-CaoFOucS.mjs → publish-DkYn86ak.mjs} +5 -4
- package/dist/{pulse-CC81N2_0.mjs → pulse-B2AmIWsO.mjs} +11 -4
- package/dist/{pulse-JPrq6NFP.mjs → pulse-CPSpum5U.mjs} +2 -2
- package/dist/{query-0u1WR1bV.mjs → query-CZbI4Rlv.mjs} +17 -29
- package/dist/{query-CzDBwAZD.mjs → query-gHeYfWj_.mjs} +7 -6
- package/dist/{remapping-CodmT28F.mjs → remapping-hcWkFQsx.mjs} +5 -5
- package/dist/{remove-collection-DfUsf6Dd.mjs → remove-collection-Qne5ww6M.mjs} +3 -3
- package/dist/{render-DP6UoZNT.mjs → render-d1-sCPn_.mjs} +3 -2
- package/dist/{replace-qWiUOgmn.mjs → replace-DoU0IFGd.mjs} +4 -4
- package/dist/{requirement-check-sfmyH2PH.mjs → requirement-check-BoVSK1uK.mjs} +2 -2
- package/dist/{rescan-values-BuDmeda3.mjs → rescan-values-COzM86P5.mjs} +5 -5
- package/dist/{rescan-values-BcrhdSj_.mjs → rescan-values-s82n_You.mjs} +5 -5
- package/dist/{run-BG_5lR0x.mjs → run-Bwj4Uuxk.mjs} +4 -4
- package/dist/{run-BBRnFayr.mjs → run-JYNbEO_V.mjs} +6 -5
- package/dist/{run-DXXD-CnS.mjs → run-Q7fHux1F.mjs} +5 -4
- package/dist/{runs-CovgMSwy.mjs → runs-GQD6FO2k.mjs} +6 -6
- package/dist/{runtime-Cmes70jO.mjs → runtime-iIsqiOwO.mjs} +51 -9
- package/dist/scaffold-CJo9l-2p.mjs +50 -0
- package/dist/schema-2JhmK8FM.mjs +283 -0
- package/dist/{schema-tables-CjKl8jr5.mjs → schema-tables-CarGLayY.mjs} +6 -6
- package/dist/{schemas-CAGvBAD_.mjs → schemas-oSjtuQ4G.mjs} +4 -4
- package/dist/{search-DFU6FHRd.mjs → search-Ca0sIr28.mjs} +7 -6
- package/dist/{search-OpYS2Ub4.mjs → search-CvGEL2h-.mjs} +6 -5
- package/dist/{segment-D-SKpFzF.mjs → segment-BJCEJwNY.mjs} +6 -6
- package/dist/{segment-C_gl5ag6.mjs → segment-CWVASaM1.mjs} +1 -1
- package/dist/{segment-OsrbUDzw.mjs → segment-Cf-DrdjE.mjs} +3 -1
- package/dist/{send-DNu83_3E.mjs → send-B4nZI6CU.mjs} +3 -3
- package/dist/{set-CGYZcLVo.mjs → set-BjMZCdN8.mjs} +5 -6
- package/dist/{set-active-32IaLx1O.mjs → set-active-CWDdv3kN.mjs} +4 -4
- package/dist/set-bundle-C2uk4jdt.mjs +40 -0
- package/dist/{set-data-actions-DRhgAfhE.mjs → set-data-actions-lWl05ekf.mjs} +6 -6
- package/dist/set-enabled-CPhw1AX4.mjs +41 -0
- package/dist/{set-sensitivity-D_i3XEe8.mjs → set-sensitivity-B7WI5BJC.mjs} +6 -6
- package/dist/{setting-BBn9Lv9J.mjs → setting-BvPpFjJT.mjs} +4 -4
- package/dist/{setup-CO7QV-ao.mjs → setup-BnczkG96.mjs} +1 -1
- package/dist/{setup-8d7Uplhy.mjs → setup-DPRa8Uxm.mjs} +5 -6
- package/dist/{signal-D8MH3LMN.mjs → signal-BNUlQjpc.mjs} +1 -1
- package/dist/{skill-list-D2FhhYS3.mjs → skill-list-BoJITnw8.mjs} +1 -1
- package/dist/{skills-BeIDC-_H.mjs → skills-BCivFuuZ.mjs} +3 -3
- package/dist/{skills-BZGd_9d3.mjs → skills-BY3MCR8i.mjs} +3 -2
- package/dist/slug-COdwq63O.mjs +15 -0
- package/dist/snippet-BcN1UwoS.mjs +19 -0
- package/dist/{stash-Dyc1xZ8u.mjs → stash-leoW1fby.mjs} +5 -4
- package/dist/{status-CQZwl1PX.mjs → status-AA4APlwZ.mjs} +3 -3
- package/dist/{status-lCN8unWe.mjs → status-BezD_K-g.mjs} +4 -4
- package/dist/{subscription-CEFxmtGH.mjs → subscription-BDukZFlC.mjs} +6 -6
- package/dist/{subscriptions-AU14uznL.mjs → subscriptions-CU4E_p7B.mjs} +6 -6
- package/dist/{summary-Do9IBOQM.mjs → summary-BFspP71W.mjs} +5 -5
- package/dist/{sync-schema-_gw9RQyF.mjs → sync-schema-BhRhsm8Y.mjs} +6 -6
- package/dist/{sync-schema-B3nyoKZl.mjs → sync-schema-BtjC-PNY.mjs} +5 -5
- package/dist/{sync-task-DNKG9Bk4.mjs → sync-task-Gf86CU9l.mjs} +1 -1
- package/dist/{table-BDsqRU7a.mjs → table-BNA9Or05.mjs} +3 -3
- package/dist/table-Dzp1uANs.mjs +26 -0
- package/dist/{table-CF7zW9cI.mjs → table-hgrX1i-R.mjs} +36 -5
- package/dist/{table-selector-flags-CHfrVpYQ.mjs → table-selector-flags-BpFFoSaT.mjs} +4 -3
- package/dist/{text-C2VwKF9D.mjs → text-8nOxfC17.mjs} +1 -1
- package/dist/timeline-Cr5d4Oer.mjs +21 -0
- package/dist/{timeline-event-B-nGnoVL.mjs → timeline-event-BiYDbW3r.mjs} +6 -6
- package/dist/{transform-DiW7bREn.mjs → transform-B62craFM.mjs} +76 -7
- package/dist/transform-C-0nV5Et.mjs +28 -0
- package/dist/{transform-CWGJB8N_.mjs → transform-DKPtUV54.mjs} +2 -2
- package/dist/transform-job-B9MPk7S5.mjs +22 -0
- package/dist/{transform-job-ClX8e5iO.mjs → transform-job-CDIb3B9o.mjs} +6 -1
- package/dist/{transform-job-BBZ5L46v.mjs → transform-job-D18XRLBK.mjs} +1 -1
- package/dist/{transform-tag-dKCqQPTd.mjs → transform-tag-DQXOPhmt.mjs} +5 -5
- package/dist/transform-test-wmAjyaka.mjs +16 -0
- package/dist/{transforms-DRAws1f4.mjs → transforms-DcXL4Dox.mjs} +6 -6
- package/dist/{transport-Ck4anhoc.mjs → transport-DZSxmmtY.mjs} +5 -4
- package/dist/{tree-Ddsj298M.mjs → tree-DrYYCdXP.mjs} +4 -3
- package/dist/typed-schema-DEzmTY3J.mjs +45 -0
- package/dist/{unpublish-BMfjQ8UV.mjs → unpublish-D8hmulCx.mjs} +3 -3
- package/dist/{unreferenced-DRQrvH5r.mjs → unreferenced-C3CqO3tu.mjs} +6 -6
- package/dist/{update-C1VwtJWu.mjs → update-3lRE8G9k.mjs} +10 -11
- package/dist/{update-BCC1Igr2.mjs → update-4TDRNrV-.mjs} +7 -8
- package/dist/{update-0AoF6QJ_.mjs → update-4sOfpwpv.mjs} +5 -6
- package/dist/{update-BQLTaw3z.mjs → update-552UGPAG.mjs} +7 -8
- package/dist/{update-DpP1EEC0.mjs → update-7iXRB23T2.mjs} +7 -8
- package/dist/{update-Bpsdi6kM.mjs → update-B21GAnzT.mjs} +7 -8
- package/dist/{update-6sfqiInZ.mjs → update-BVz0oIwS.mjs} +10 -11
- package/dist/{update-CGpiLu7N.mjs → update-BxRFktpB.mjs} +8 -9
- package/dist/{update-CnxzmPRG.mjs → update-CEDMvgJI.mjs} +11 -12
- package/dist/{update-BIL0JPqm.mjs → update-CcNYCalv.mjs} +5 -6
- package/dist/{update-DlFHoUxe.mjs → update-CctMr2T1.mjs} +8 -8
- package/dist/{update-DrT10fxQ.mjs → update-Ch6AAOeh.mjs} +5 -6
- package/dist/{update-_hHnM1Hx.mjs → update-CtuLA42g.mjs} +11 -11
- package/dist/{update-C19B1Sry.mjs → update-DVD77mVR.mjs} +5 -6
- package/dist/{update-C1x90FSH.mjs → update-DmMHHn75.mjs} +10 -11
- package/dist/{update-D1aKeWfo.mjs → update-DvGIaZdl.mjs} +5 -6
- package/dist/{update-BtfUX9CN.mjs → update-LlJM4tUd.mjs} +10 -11
- package/dist/{update-8eXJso_l.mjs → update-Zv7PP8nl.mjs} +7 -8
- package/dist/{update-dashcard-CDI0Tnxy.mjs → update-dashcard-BijqiYQd.mjs} +7 -8
- package/dist/{update-pXVhyiFo.mjs → update-l4WRN6Jh.mjs} +7 -8
- package/dist/update-sma1ZRm2.mjs +36 -0
- package/dist/{upgrade-Cfouv1Ii.mjs → upgrade-TzILOkiM.mjs} +5 -4
- package/dist/upload-B37bUVl_.mjs +13 -0
- package/dist/{upload-DnLXgUA-.mjs → upload-CdiDKe69.mjs} +2 -2
- package/dist/{upload-DIEcI5iM.mjs → upload-Do-kOGtc.mjs} +3 -3
- package/dist/{uuid-D0sH5txV.mjs → uuid-Dqq2WfAT.mjs} +3 -2
- package/dist/{validate-BQ7vI8_x.mjs → validate-moGYlHxB.mjs} +8 -18
- package/dist/validate-query-Bf5FhhMI.mjs +72 -0
- package/dist/{values-BFPO6y5o.mjs → values-CtY5zv0m.mjs} +5 -5
- package/dist/{verify-C-StvB4f.mjs → verify-BiB8jzXB.mjs} +3 -3
- package/dist/{verify-CuGs0X3C.mjs → verify-DBTlWx-S.mjs} +3 -3
- package/dist/{verify-7fW020r_.mjs → verify-DJ7fGyLL.mjs} +4 -3
- package/dist/{wait-Cvt8xO0h.mjs → wait-DEYagfq4.mjs} +5 -5
- package/dist/{wait-flags-BnZ-dfE2.mjs → wait-flags-C3cu_O0w.mjs} +2 -2
- package/dist/{window-CfK_j6m1.mjs → window-D1w7B0vh.mjs} +1 -1
- package/package.json +2 -2
- package/skill-data/core/SKILL.md +14 -13
- package/skill-data/data-action/SKILL.md +1 -1
- package/skill-data/data-app/SKILL.md +138 -0
- package/skill-data/data-app/template/.env.local.example +2 -0
- package/skill-data/data-app/template/LICENSE +21 -0
- package/skill-data/data-app/template/README.md +29 -0
- package/skill-data/data-app/template/gitignore +5 -0
- package/skill-data/data-app/template/package.json +25 -0
- package/skill-data/data-app/template/src/App.tsx +9 -0
- package/skill-data/data-app/template/src/index.tsx +14 -0
- package/skill-data/data-app/template/src/theme.ts +25 -0
- package/skill-data/data-app/template/tsconfig.json +25 -0
- package/skill-data/data-app/template/vite.config.ts +3 -0
- package/skill-data/data-app-actions/SKILL.md +96 -0
- package/skill-data/data-app-data/SKILL.md +158 -0
- package/skill-data/data-app-filters/SKILL.md +87 -0
- package/skill-data/data-app-ui/SKILL.md +120 -0
- package/skill-data/mbql/SKILL.md +3 -3
- package/skill-data/native-sql/SKILL.md +1 -1
- package/skill-data/native-sql/references/template-tags.md +1 -1
- package/dist/body-C0VnEiRV.mjs +0 -16
- package/dist/card-BnL92zoT.mjs +0 -25
- package/dist/collection-DRHGwFSL.mjs +0 -21
- package/dist/dashboard-Bq1pae4N.mjs +0 -35
- package/dist/data-action-BZ2PvlaP.mjs +0 -24
- package/dist/delete-runtime-DRGveT8H.mjs +0 -55
- package/dist/dependency-6kfpR8Ga.mjs +0 -15
- package/dist/document-C0mZEg5w.mjs +0 -20
- package/dist/field-BUkyWiWk.mjs +0 -21
- package/dist/git-sync-CNTB5jvI.mjs +0 -29
- package/dist/glossary-B9Eo4hXc.mjs +0 -14
- package/dist/snippet-CpZ5cJ_y.mjs +0 -19
- package/dist/table-Cb_Uvw8m.mjs +0 -26
- package/dist/timeline-x0s_3sfc.mjs +0 -21
- package/dist/transform-job-Dlx2c6II.mjs +0 -22
- package/dist/transform-kP11Mv9_.mjs +0 -28
- package/dist/transform-test-jFuzVhlT.mjs +0 -16
- package/dist/upload-Cqv-In6j.mjs +0 -13
- package/dist/validate-query-YtH3d5BP.mjs +0 -38
package/dist/cli.mjs
CHANGED
|
@@ -1,206 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { a as ChainedRequestError, b as toMetabaseError, g as errorMessage, h as ValidationError, i as AbortError, l as MetabaseError, o as ConfigError, r as isPlainObject, x as KNOWN_RANGE } from "./predicates-0C0TsWcJ.mjs";
|
|
2
3
|
import { defineCommand, parseArgs, renderUsage, runMain } from "citty";
|
|
3
|
-
import {
|
|
4
|
+
import { z } from "zod";
|
|
4
5
|
import tls from "node:tls";
|
|
5
6
|
import { confirm, isCancel, password, select, text } from "@clack/prompts";
|
|
6
7
|
import Table from "cli-table3";
|
|
7
|
-
//#region ../client/src/json-pointer.ts
|
|
8
|
-
function escapeJsonPointerSegment(key) {
|
|
9
|
-
if (typeof key === "number") return String(key);
|
|
10
|
-
return (typeof key === "symbol" ? key.toString() : key).replaceAll("~", "~0").replaceAll("/", "~1");
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region ../client/src/version/known-range.ts
|
|
14
|
-
const KNOWN_RANGE = {
|
|
15
|
-
min: 58,
|
|
16
|
-
max: 64
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region ../client/src/errors.ts
|
|
20
|
-
var MetabaseError = class extends Error {
|
|
21
|
-
get userMessage() {
|
|
22
|
-
return this.message;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
var NetworkError = class extends MetabaseError {
|
|
26
|
-
category = "network";
|
|
27
|
-
isRetryable = true;
|
|
28
|
-
developerDetail;
|
|
29
|
-
constructor(message, developerDetail) {
|
|
30
|
-
super(message);
|
|
31
|
-
this.name = "NetworkError";
|
|
32
|
-
this.developerDetail = developerDetail;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
var TimeoutError = class extends MetabaseError {
|
|
36
|
-
category = "timeout";
|
|
37
|
-
isRetryable = true;
|
|
38
|
-
developerDetail;
|
|
39
|
-
constructor(message, developerDetail) {
|
|
40
|
-
super(message);
|
|
41
|
-
this.name = "TimeoutError";
|
|
42
|
-
this.developerDetail = developerDetail;
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
var ValidationError = class extends MetabaseError {
|
|
46
|
-
category = "validation";
|
|
47
|
-
isRetryable = false;
|
|
48
|
-
developerDetail;
|
|
49
|
-
constructor(message, developerDetail) {
|
|
50
|
-
super(message);
|
|
51
|
-
this.name = "ValidationError";
|
|
52
|
-
this.developerDetail = developerDetail;
|
|
53
|
-
}
|
|
54
|
-
get userMessage() {
|
|
55
|
-
const issues = this.developerDetail.zodIssues;
|
|
56
|
-
if (issues.length === 0) return this.message;
|
|
57
|
-
return `${this.message}\n${formatIssueLines(issues, VALIDATION_ISSUE_FORMAT)}`;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const VALIDATION_MAX_ISSUES = 10;
|
|
61
|
-
const RESPONSE_SHAPE_MAX_ISSUES = 5;
|
|
62
|
-
const VALIDATION_ISSUE_FORMAT = {
|
|
63
|
-
max: VALIDATION_MAX_ISSUES,
|
|
64
|
-
formatIssue: (issue) => `${formatZodIssuePointer(issue.path)}: ${issue.message}`
|
|
65
|
-
};
|
|
66
|
-
const RESPONSE_SHAPE_ISSUE_FORMAT = {
|
|
67
|
-
max: RESPONSE_SHAPE_MAX_ISSUES,
|
|
68
|
-
formatIssue: formatZodIssue
|
|
69
|
-
};
|
|
70
|
-
function formatIssueLines(issues, format) {
|
|
71
|
-
const head = issues.slice(0, format.max).map(format.formatIssue);
|
|
72
|
-
const overflow = issues.length - format.max;
|
|
73
|
-
if (overflow > 0) head.push(`... and ${overflow} more`);
|
|
74
|
-
return head.map((line) => ` ${line}`).join("\n");
|
|
75
|
-
}
|
|
76
|
-
function formatZodIssuePointer(path) {
|
|
77
|
-
if (path.length === 0) return "/";
|
|
78
|
-
return path.map((key) => `/${escapeJsonPointerSegment(key)}`).join("");
|
|
79
|
-
}
|
|
80
|
-
const RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION = "Metabase returned unexpected response shape";
|
|
81
|
-
var ResponseShapeError = class ResponseShapeError extends MetabaseError {
|
|
82
|
-
category = "response-shape";
|
|
83
|
-
isRetryable = false;
|
|
84
|
-
developerDetail;
|
|
85
|
-
constructor(message, developerDetail) {
|
|
86
|
-
super(message);
|
|
87
|
-
this.name = "ResponseShapeError";
|
|
88
|
-
this.developerDetail = developerDetail;
|
|
89
|
-
}
|
|
90
|
-
static fromZodIssues(developerDetail) {
|
|
91
|
-
return new ResponseShapeError(formatResponseShapeMessage(developerDetail), developerDetail);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
function formatResponseShapeMessage(detail) {
|
|
95
|
-
const { zodIssues: issues, serverTag, serverSkew } = detail;
|
|
96
|
-
const lead = serverTag === null ? RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION : `On Metabase ${describeServer(serverTag, serverSkew)} the response shape was unexpected`;
|
|
97
|
-
if (issues.length === 0) return lead;
|
|
98
|
-
return `${lead}:\n${formatIssueLines(issues, RESPONSE_SHAPE_ISSUE_FORMAT)}`;
|
|
99
|
-
}
|
|
100
|
-
function describeServer(tag, skew) {
|
|
101
|
-
if (skew === "newer-than-known") return `${tag} (newer than this client supports, up to v${KNOWN_RANGE.max})`;
|
|
102
|
-
if (skew === "development") return `development build ${tag} (newer than every release)`;
|
|
103
|
-
return tag;
|
|
104
|
-
}
|
|
105
|
-
var ConfigError = class extends MetabaseError {
|
|
106
|
-
category = "config";
|
|
107
|
-
isRetryable = false;
|
|
108
|
-
developerDetail = null;
|
|
109
|
-
constructor(message) {
|
|
110
|
-
super(message);
|
|
111
|
-
this.name = "ConfigError";
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
var InternalError = class extends MetabaseError {
|
|
115
|
-
category = "internal";
|
|
116
|
-
isRetryable = false;
|
|
117
|
-
developerDetail = null;
|
|
118
|
-
constructor(message) {
|
|
119
|
-
super(message);
|
|
120
|
-
this.name = "InternalError";
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
var FailedResultError = class extends MetabaseError {
|
|
124
|
-
category = "failed";
|
|
125
|
-
isRetryable = false;
|
|
126
|
-
developerDetail = null;
|
|
127
|
-
constructor(message) {
|
|
128
|
-
super(message);
|
|
129
|
-
this.name = "FailedResultError";
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
var AbortError = class extends MetabaseError {
|
|
133
|
-
category = "abort";
|
|
134
|
-
isRetryable = false;
|
|
135
|
-
developerDetail = null;
|
|
136
|
-
constructor(message = "aborted") {
|
|
137
|
-
super(message);
|
|
138
|
-
this.name = "AbortError";
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
function isNonInterruptFailure(error) {
|
|
142
|
-
return error instanceof MetabaseError && !(error instanceof AbortError);
|
|
143
|
-
}
|
|
144
|
-
var ChainedRequestError = class extends MetabaseError {
|
|
145
|
-
cause;
|
|
146
|
-
constructor(message, cause) {
|
|
147
|
-
super(message);
|
|
148
|
-
this.name = "ChainedRequestError";
|
|
149
|
-
this.cause = cause;
|
|
150
|
-
}
|
|
151
|
-
get category() {
|
|
152
|
-
return this.cause.category;
|
|
153
|
-
}
|
|
154
|
-
get isRetryable() {
|
|
155
|
-
return this.cause.isRetryable;
|
|
156
|
-
}
|
|
157
|
-
get developerDetail() {
|
|
158
|
-
return this.cause.developerDetail;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
var UnknownError = class extends MetabaseError {
|
|
162
|
-
category = "unknown";
|
|
163
|
-
isRetryable = false;
|
|
164
|
-
developerDetail;
|
|
165
|
-
constructor(input) {
|
|
166
|
-
super(input.originalMessage);
|
|
167
|
-
this.name = "UnknownError";
|
|
168
|
-
this.developerDetail = input;
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
var PartialWriteError = class extends MetabaseError {
|
|
172
|
-
category = "partial-write";
|
|
173
|
-
isRetryable = false;
|
|
174
|
-
developerDetail;
|
|
175
|
-
constructor(message, developerDetail) {
|
|
176
|
-
super(message);
|
|
177
|
-
this.name = "PartialWriteError";
|
|
178
|
-
this.developerDetail = developerDetail;
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
function toMetabaseError(error) {
|
|
182
|
-
if (error instanceof MetabaseError) return error;
|
|
183
|
-
if (error instanceof ZodError) return new ConfigError(error.issues.map(formatZodIssue).join("; "));
|
|
184
|
-
if (error instanceof Error) return new UnknownError({
|
|
185
|
-
originalMessage: error.message,
|
|
186
|
-
stack: error.stack ?? null
|
|
187
|
-
});
|
|
188
|
-
return new UnknownError({
|
|
189
|
-
originalMessage: String(error),
|
|
190
|
-
stack: null
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
function formatZodIssue(issue) {
|
|
194
|
-
const path = core.toDotPath(issue.path);
|
|
195
|
-
return path === "" ? issue.message : `${path}: ${issue.message}`;
|
|
196
|
-
}
|
|
197
|
-
function isFileNotFoundError(value) {
|
|
198
|
-
return value instanceof Error && "code" in value && value.code === "ENOENT";
|
|
199
|
-
}
|
|
200
|
-
function errorMessage(value) {
|
|
201
|
-
return value instanceof Error ? value.message : String(value);
|
|
202
|
-
}
|
|
203
|
-
//#endregion
|
|
204
8
|
//#region src/runtime/citty.ts
|
|
205
9
|
async function resolveCitty(value) {
|
|
206
10
|
if (value === void 0) return;
|
|
@@ -664,11 +468,12 @@ const profileFlag = { profile: {
|
|
|
664
468
|
description: "Named profile (default: 'default')",
|
|
665
469
|
alias: "p"
|
|
666
470
|
} };
|
|
471
|
+
const urlFlag = { url: {
|
|
472
|
+
type: "string",
|
|
473
|
+
description: "Metabase URL"
|
|
474
|
+
} };
|
|
667
475
|
const connectionFlags = {
|
|
668
|
-
|
|
669
|
-
type: "string",
|
|
670
|
-
description: "Metabase URL"
|
|
671
|
-
},
|
|
476
|
+
...urlFlag,
|
|
672
477
|
apiKey: {
|
|
673
478
|
type: "string",
|
|
674
479
|
description: "API key",
|
|
@@ -722,7 +527,7 @@ function trustSystemCa() {
|
|
|
722
527
|
//#endregion
|
|
723
528
|
//#region package.json
|
|
724
529
|
var name = "@metabase/cli";
|
|
725
|
-
var version = "0.5.
|
|
530
|
+
var version = "0.5.4";
|
|
726
531
|
var description = "Metabase CLI";
|
|
727
532
|
//#endregion
|
|
728
533
|
//#region src/runtime/command-augment.ts
|
|
@@ -742,40 +547,43 @@ const main = defineCommand({
|
|
|
742
547
|
description
|
|
743
548
|
},
|
|
744
549
|
subCommands: {
|
|
745
|
-
auth: () => import("./auth-
|
|
746
|
-
db: () => import("./db-
|
|
747
|
-
table: () => import("./table-
|
|
748
|
-
field: () => import("./field-
|
|
749
|
-
upload: () => import("./upload-
|
|
750
|
-
"content-translation": () => import("./content-translation-
|
|
751
|
-
card: () => import("./card-
|
|
752
|
-
dashboard: () => import("./dashboard-
|
|
753
|
-
subscription: () => import("./subscription-
|
|
754
|
-
"data-action": () => import("./data-action-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
"transform-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
550
|
+
auth: () => import("./auth-eogOlU4X.mjs").then((mod) => mod.default),
|
|
551
|
+
db: () => import("./db-D8mPRqZc.mjs").then((mod) => mod.default),
|
|
552
|
+
table: () => import("./table-Dzp1uANs.mjs").then((mod) => mod.default),
|
|
553
|
+
field: () => import("./field-DQAcCjXr.mjs").then((mod) => mod.default),
|
|
554
|
+
upload: () => import("./upload-B37bUVl_.mjs").then((mod) => mod.default),
|
|
555
|
+
"content-translation": () => import("./content-translation-1coWME1P.mjs").then((mod) => mod.default),
|
|
556
|
+
card: () => import("./card-DA1W3Axw.mjs").then((mod) => mod.default),
|
|
557
|
+
dashboard: () => import("./dashboard-CR97_zXn.mjs").then((mod) => mod.default),
|
|
558
|
+
subscription: () => import("./subscription-BDukZFlC.mjs").then((mod) => mod.default),
|
|
559
|
+
"data-action": () => import("./data-action-C4jE-RLb.mjs").then((mod) => mod.default),
|
|
560
|
+
"data-app": () => import("./data-app-BlBvvRzC.mjs").then((mod) => mod.default),
|
|
561
|
+
"api-key": () => import("./api-key-CTyXuYui.mjs").then((mod) => mod.default),
|
|
562
|
+
alert: () => import("./alert-B-w0c61D.mjs").then((mod) => mod.default),
|
|
563
|
+
collection: () => import("./collection-C98jgufi.mjs").then((mod) => mod.default),
|
|
564
|
+
library: () => import("./library-e3aiJ1Yb.mjs").then((mod) => mod.default),
|
|
565
|
+
document: () => import("./document-B6254tue.mjs").then((mod) => mod.default),
|
|
566
|
+
glossary: () => import("./glossary-BVxRpD7o.mjs").then((mod) => mod.default),
|
|
567
|
+
transform: () => import("./transform-C-0nV5Et.mjs").then((mod) => mod.default),
|
|
568
|
+
"transform-job": () => import("./transform-job-B9MPk7S5.mjs").then((mod) => mod.default),
|
|
569
|
+
"transform-tag": () => import("./transform-tag-DQXOPhmt.mjs").then((mod) => mod.default),
|
|
570
|
+
"transform-test": () => import("./transform-test-wmAjyaka.mjs").then((mod) => mod.default),
|
|
571
|
+
setting: () => import("./setting-BvPpFjJT.mjs").then((mod) => mod.default),
|
|
572
|
+
search: () => import("./search-CvGEL2h-.mjs").then((mod) => mod.default),
|
|
573
|
+
"git-sync": () => import("./git-sync-Czena0TW.mjs").then((mod) => mod.default),
|
|
574
|
+
setup: () => import("./setup-DPRa8Uxm.mjs").then((mod) => mod.default),
|
|
575
|
+
snippet: () => import("./snippet-BcN1UwoS.mjs").then((mod) => mod.default),
|
|
576
|
+
segment: () => import("./segment-BJCEJwNY.mjs").then((mod) => mod.default),
|
|
577
|
+
measure: () => import("./measure-DnGWkKyx.mjs").then((mod) => mod.default),
|
|
578
|
+
dependency: () => import("./dependency-Bbg9x1V9.mjs").then((mod) => mod.default),
|
|
579
|
+
timeline: () => import("./timeline-Cr5d4Oer.mjs").then((mod) => mod.default),
|
|
580
|
+
"timeline-event": () => import("./timeline-event-BiYDbW3r.mjs").then((mod) => mod.default),
|
|
581
|
+
eid: () => import("./eid-KtWIPUCC.mjs").then((mod) => mod.default),
|
|
582
|
+
query: () => import("./query-CZbI4Rlv.mjs").then((mod) => mod.default),
|
|
583
|
+
schema: () => import("./schema-2JhmK8FM.mjs").then((mod) => mod.default),
|
|
584
|
+
uuid: () => import("./uuid-Dqq2WfAT.mjs").then((mod) => mod.default),
|
|
585
|
+
upgrade: () => import("./upgrade-TzILOkiM.mjs").then((mod) => mod.default),
|
|
586
|
+
skills: () => import("./skills-BCivFuuZ.mjs").then((mod) => mod.default)
|
|
779
587
|
}
|
|
780
588
|
});
|
|
781
589
|
setMetabaseAugment(main, {
|
|
@@ -788,7 +596,7 @@ setMetabaseAugment(main, {
|
|
|
788
596
|
skill: "data-workflow",
|
|
789
597
|
purpose: "guided end-to-end: raw data → clean tables → metrics → answers → dashboards"
|
|
790
598
|
}],
|
|
791
|
-
|
|
599
|
+
input: null,
|
|
792
600
|
outputSchema: null,
|
|
793
601
|
requires: null
|
|
794
602
|
});
|
|
@@ -835,23 +643,6 @@ function isJsonContentType(contentType) {
|
|
|
835
643
|
return contentType !== null && contentType.includes("application/json");
|
|
836
644
|
}
|
|
837
645
|
//#endregion
|
|
838
|
-
//#region ../client/src/predicates.ts
|
|
839
|
-
function isPlainObject(value) {
|
|
840
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
841
|
-
}
|
|
842
|
-
const JAVA_WHITESPACE = " \n\v\f\r \u2028\u2029 ";
|
|
843
|
-
const UNICODE_ESCAPE_DIGITS = 4;
|
|
844
|
-
function unicodeEscape(char) {
|
|
845
|
-
return `\\u${char.charCodeAt(0).toString(16).padStart(UNICODE_ESCAPE_DIGITS, "0")}`;
|
|
846
|
-
}
|
|
847
|
-
const JAVA_WHITESPACE_ESCAPED = [...JAVA_WHITESPACE].map(unicodeEscape).join("");
|
|
848
|
-
/** Matches a string Metabase reads as not blank: one holding a character that is not Java whitespace. */
|
|
849
|
-
const NOT_BLANK = new RegExp(`[^${JAVA_WHITESPACE_ESCAPED}]`);
|
|
850
|
-
/** Whether Metabase reads `value` as blank: empty, or Java whitespace only. */
|
|
851
|
-
function isBlank(value) {
|
|
852
|
-
return !NOT_BLANK.test(value);
|
|
853
|
-
}
|
|
854
|
-
//#endregion
|
|
855
646
|
//#region ../client/src/http/sanitize.ts
|
|
856
647
|
const SECRET_HEADER_NAMES = /* @__PURE__ */ new Set([
|
|
857
648
|
"authorization",
|
|
@@ -1167,14 +958,22 @@ function defaultMessageForStatus(status) {
|
|
|
1167
958
|
const FEATURE_RULES = {
|
|
1168
959
|
dataActionCollections: { since: 65 },
|
|
1169
960
|
dataActionsWithoutModel: { since: 65 },
|
|
961
|
+
dataApps: {
|
|
962
|
+
since: 65,
|
|
963
|
+
tokenFeature: "data-apps"
|
|
964
|
+
},
|
|
1170
965
|
transforms: { since: 59 },
|
|
1171
966
|
transformJobActivation: { since: 61 },
|
|
1172
967
|
measures: { since: 59 },
|
|
968
|
+
collectionItemMeasures: { since: 61 },
|
|
969
|
+
explorations: { since: 65 },
|
|
970
|
+
tableFromDefinition: { since: 64 },
|
|
1173
971
|
library: {
|
|
1174
972
|
since: 59,
|
|
1175
973
|
tokenFeature: "library"
|
|
1176
974
|
},
|
|
1177
975
|
libraryDashboards: { since: 65 },
|
|
976
|
+
tablePublishTargetCollection: { since: 62 },
|
|
1178
977
|
remoteSync: {
|
|
1179
978
|
since: 58,
|
|
1180
979
|
tokenFeature: "remote_sync"
|
|
@@ -1202,6 +1001,7 @@ const FEATURE_RULES = {
|
|
|
1202
1001
|
tokenFeature: "content_verification"
|
|
1203
1002
|
},
|
|
1204
1003
|
transformTargetTableId: { since: 61 },
|
|
1004
|
+
transformSourceTablesAsList: { since: 60 },
|
|
1205
1005
|
transformTargetTableLinkedOnCreate: {
|
|
1206
1006
|
since: 61,
|
|
1207
1007
|
until: 61
|
|
@@ -1242,6 +1042,7 @@ const FEATURE_RULES = {
|
|
|
1242
1042
|
tokenFeature: "dependencies"
|
|
1243
1043
|
},
|
|
1244
1044
|
measureDependencyGraph: { since: 59 },
|
|
1045
|
+
actionDependencyGraph: { since: 65 },
|
|
1245
1046
|
tableListAccessFilters: { since: 59 },
|
|
1246
1047
|
tableListTransformTargets: { since: 60 },
|
|
1247
1048
|
tableListPublishedFilter: { since: 63 },
|
|
@@ -1267,7 +1068,7 @@ const FEATURE_RULES = {
|
|
|
1267
1068
|
tokenFeature: "transforms-python"
|
|
1268
1069
|
},
|
|
1269
1070
|
pythonTestRun: {
|
|
1270
|
-
since:
|
|
1071
|
+
since: 58,
|
|
1271
1072
|
tokenFeature: "transforms-python"
|
|
1272
1073
|
},
|
|
1273
1074
|
sourceReplacement: {
|
|
@@ -1284,6 +1085,23 @@ function isFeatureName(name) {
|
|
|
1284
1085
|
}
|
|
1285
1086
|
const FEATURE_NAMES = Object.keys(FEATURE_RULES).filter(isFeatureName);
|
|
1286
1087
|
const Features = z.record(z.enum(FEATURE_NAMES), z.boolean());
|
|
1088
|
+
/**
|
|
1089
|
+
* Which servers hold `feature`, as a reader says it: the majors its rule spans and the token
|
|
1090
|
+
* feature it needs, each left out where every supported server meets it.
|
|
1091
|
+
*/
|
|
1092
|
+
function featureAvailability(feature) {
|
|
1093
|
+
const rule = FEATURE_RULES[feature];
|
|
1094
|
+
const token = rule.tokenFeature === void 0 ? null : `token ${rule.tokenFeature}`;
|
|
1095
|
+
const parts = [majorSpan(rule), token].filter((part) => part !== null);
|
|
1096
|
+
if (parts.length === 0) throw new Error(`${feature} holds on every supported server, so it gates nothing`);
|
|
1097
|
+
return parts.join(", ");
|
|
1098
|
+
}
|
|
1099
|
+
function majorSpan(rule) {
|
|
1100
|
+
const floor = rule.since > KNOWN_RANGE.min ? `v${rule.since}` : null;
|
|
1101
|
+
if (rule.until === void 0) return floor === null ? null : `${floor}+`;
|
|
1102
|
+
if (floor === null) return `up to v${rule.until}`;
|
|
1103
|
+
return rule.since === rule.until ? `${floor} only` : `${floor}-v${rule.until}`;
|
|
1104
|
+
}
|
|
1287
1105
|
function evaluateFeatures(major, tokenFeatures) {
|
|
1288
1106
|
const entries = FEATURE_NAMES.map((name) => [name, ruleHolds(FEATURE_RULES[name], major, tokenFeatures)]);
|
|
1289
1107
|
return Features.parse(Object.fromEntries(entries));
|
|
@@ -1803,6 +1621,9 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
1803
1621
|
//#endregion
|
|
1804
1622
|
//#region ../client/src/version/requirements.ts
|
|
1805
1623
|
const METHOD_REQUIREMENTS = {
|
|
1624
|
+
"apiKey.list": [],
|
|
1625
|
+
"apiKey.create": [],
|
|
1626
|
+
"apiKey.delete": [],
|
|
1806
1627
|
"card.list": [],
|
|
1807
1628
|
"card.get": [],
|
|
1808
1629
|
"card.create": [],
|
|
@@ -1837,6 +1658,13 @@ const METHOD_REQUIREMENTS = {
|
|
|
1837
1658
|
"dataAction.archive": [],
|
|
1838
1659
|
"dataAction.delete": [],
|
|
1839
1660
|
"dataAction.execute": [],
|
|
1661
|
+
"dataApp.list": ["dataApps"],
|
|
1662
|
+
"dataApp.get": ["dataApps"],
|
|
1663
|
+
"dataApp.create": ["dataApps"],
|
|
1664
|
+
"dataApp.update": ["dataApps"],
|
|
1665
|
+
"dataApp.replaceBundle": ["dataApps"],
|
|
1666
|
+
"dataApp.typedSchema": ["dataApps"],
|
|
1667
|
+
"dataApp.delete": ["dataApps"],
|
|
1840
1668
|
"database.list": [],
|
|
1841
1669
|
"database.get": [],
|
|
1842
1670
|
"database.update": [],
|
|
@@ -2053,8 +1881,6 @@ z.object({
|
|
|
2053
1881
|
skills: z.array(CommandHelpSkill),
|
|
2054
1882
|
examples: z.array(z.string()),
|
|
2055
1883
|
args: z.array(CommandHelpArg),
|
|
2056
|
-
inputSchema: z.unknown().nullable(),
|
|
2057
|
-
outputSchema: z.unknown().nullable(),
|
|
2058
1884
|
requires: CommandHelpRequires.nullable()
|
|
2059
1885
|
});
|
|
2060
1886
|
const CommandIndexEntry = z.object({
|
|
@@ -2070,7 +1896,7 @@ const EMPTY_AUGMENT = {
|
|
|
2070
1896
|
examples: [],
|
|
2071
1897
|
details: null,
|
|
2072
1898
|
skills: [],
|
|
2073
|
-
|
|
1899
|
+
input: null,
|
|
2074
1900
|
outputSchema: null,
|
|
2075
1901
|
requires: null
|
|
2076
1902
|
};
|
|
@@ -2084,8 +1910,6 @@ async function buildHelpEntry(cmd, path) {
|
|
|
2084
1910
|
skills: Array.from(augment.skills),
|
|
2085
1911
|
examples: Array.from(augment.examples),
|
|
2086
1912
|
args: convertArgs(args),
|
|
2087
|
-
inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
|
|
2088
|
-
outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
|
|
2089
1913
|
requires: augment.requires
|
|
2090
1914
|
};
|
|
2091
1915
|
if (augment.details !== null) entry.details = augment.details;
|
|
@@ -2100,6 +1924,37 @@ async function buildHelpIndex(cmd, path) {
|
|
|
2100
1924
|
commands: await walk(cmd, path)
|
|
2101
1925
|
};
|
|
2102
1926
|
}
|
|
1927
|
+
async function resolveCommandPath(root, segments) {
|
|
1928
|
+
let current = root;
|
|
1929
|
+
for (const [index, segment] of segments.entries()) {
|
|
1930
|
+
const subCommands = await resolveCitty(current.subCommands);
|
|
1931
|
+
const match = subCommands === void 0 ? null : await findSubCommand(subCommands, segment);
|
|
1932
|
+
if (match === null) throw new ConfigError(`unknown command: ${segments.slice(0, index + 1).join(" ")}`);
|
|
1933
|
+
current = match.command;
|
|
1934
|
+
}
|
|
1935
|
+
return current;
|
|
1936
|
+
}
|
|
1937
|
+
async function findSubCommand(subCommands, token) {
|
|
1938
|
+
const direct = Object.hasOwn(subCommands, token) ? subCommands[token] : void 0;
|
|
1939
|
+
if (direct !== void 0) {
|
|
1940
|
+
const command = await resolveCitty(direct);
|
|
1941
|
+
if (command === void 0) return null;
|
|
1942
|
+
return {
|
|
1943
|
+
name: (await resolveCitty(command.meta))?.name ?? token,
|
|
1944
|
+
command
|
|
1945
|
+
};
|
|
1946
|
+
}
|
|
1947
|
+
for (const [key, loader] of Object.entries(subCommands)) {
|
|
1948
|
+
const command = await resolveCitty(loader);
|
|
1949
|
+
if (command === void 0) continue;
|
|
1950
|
+
const meta = await resolveCitty(command.meta);
|
|
1951
|
+
if (toAliasArray(meta?.alias).includes(token)) return {
|
|
1952
|
+
name: meta?.name ?? key,
|
|
1953
|
+
command
|
|
1954
|
+
};
|
|
1955
|
+
}
|
|
1956
|
+
return null;
|
|
1957
|
+
}
|
|
2103
1958
|
async function walk(cmd, path) {
|
|
2104
1959
|
const meta = await resolveCitty(cmd.meta);
|
|
2105
1960
|
if (meta?.hidden === true) return [];
|
|
@@ -2152,12 +2007,11 @@ const OPTIONS_HEADER = "OPTIONS";
|
|
|
2152
2007
|
const LINE_PREFIX = " ";
|
|
2153
2008
|
const COLUMN_GAP = " ";
|
|
2154
2009
|
const COMMAND_PLACEHOLDER = "<command> [options]";
|
|
2155
|
-
const CLI_NAME = "mb";
|
|
2156
2010
|
const HELP_FLAG_SPEC = "-h, --help";
|
|
2157
2011
|
const HELP_FLAG_DESCRIPTION = "Show help for this command";
|
|
2158
|
-
const GETTING_STARTED_HINT = `First time? Run
|
|
2012
|
+
const GETTING_STARTED_HINT = `First time? Run \`mb auth login\` to connect to a Metabase instance.`;
|
|
2159
2013
|
const SKILLS_HEADER = "AGENT SKILLS";
|
|
2160
|
-
const SKILLS_LIST_ITEM =
|
|
2014
|
+
const SKILLS_LIST_ITEM = `mb skills list — every bundled skill`;
|
|
2161
2015
|
async function showUsage(cmd, parent, breadcrumb) {
|
|
2162
2016
|
const lines = (await renderUsage(cmd, parent)).replace(ANSI_PATTERN, "").split("\n").map((line) => line.replace(TRAILING_WHITESPACE, ""));
|
|
2163
2017
|
const cmdMeta = await resolveCitty(cmd.meta);
|
|
@@ -2178,7 +2032,14 @@ async function showUsage(cmd, parent, breadcrumb) {
|
|
|
2178
2032
|
if (examples.length > 0) sections.push(renderExamples(examples));
|
|
2179
2033
|
if (skills.length > 0) sections.push(renderSkillsSection(skills, isRoot));
|
|
2180
2034
|
if (isRoot) sections.push(GETTING_STARTED_HINT);
|
|
2181
|
-
|
|
2035
|
+
const schemas = {
|
|
2036
|
+
body: augment !== null && augment.input !== null,
|
|
2037
|
+
output: augment !== null && augment.outputSchema !== null
|
|
2038
|
+
};
|
|
2039
|
+
sections.push(machineHelpHint(breadcrumb ?? cittyName, {
|
|
2040
|
+
hasSubCommands,
|
|
2041
|
+
schemas
|
|
2042
|
+
}));
|
|
2182
2043
|
await writeUsage(sections.join("\n\n") + "\n");
|
|
2183
2044
|
}
|
|
2184
2045
|
async function showUsageJson(cmd, breadcrumb) {
|
|
@@ -2193,12 +2054,22 @@ function writeUsage(text) {
|
|
|
2193
2054
|
}
|
|
2194
2055
|
function breadcrumbPath(breadcrumb) {
|
|
2195
2056
|
const segments = breadcrumb.split(" ").filter((segment) => segment.length > 0);
|
|
2196
|
-
return segments[0] ===
|
|
2057
|
+
return segments[0] === "mb" ? segments.slice(1) : segments;
|
|
2197
2058
|
}
|
|
2198
|
-
const MACHINE_HELP_LEAF_LABEL = "Machine-readable help (flags, output schema):";
|
|
2199
2059
|
const MACHINE_HELP_INDEX_LABEL = "Machine-readable command index:";
|
|
2200
|
-
|
|
2201
|
-
|
|
2060
|
+
const MACHINE_HELP_LEAF_LABEL = "Machine-readable help (flags):";
|
|
2061
|
+
function machineHelpHint(breadcrumb, target) {
|
|
2062
|
+
if (target.hasSubCommands) return `${MACHINE_HELP_INDEX_LABEL} ${breadcrumb} --help --json`;
|
|
2063
|
+
const helpLine = `${MACHINE_HELP_LEAF_LABEL} ${breadcrumb} --help --json`;
|
|
2064
|
+
const schemaLine = schemaHint(breadcrumbPath(breadcrumb).join(" "), target.schemas);
|
|
2065
|
+
return schemaLine === null ? helpLine : `${helpLine}\n${schemaLine}`;
|
|
2066
|
+
}
|
|
2067
|
+
function schemaHint(command, schemas) {
|
|
2068
|
+
const schema = `mb schema ${command}`;
|
|
2069
|
+
if (schemas.body && schemas.output) return `Body and output schemas: ${schema} [--output]`;
|
|
2070
|
+
if (schemas.body) return `Body schema: ${schema}`;
|
|
2071
|
+
if (schemas.output) return `Output schema: ${schema} --output`;
|
|
2072
|
+
return null;
|
|
2202
2073
|
}
|
|
2203
2074
|
function transformBody(lines, rewrite) {
|
|
2204
2075
|
return injectHelpOption(lines.map((line, index) => {
|
|
@@ -2314,7 +2185,7 @@ async function resolveLeafArgv(root, rawArgs) {
|
|
|
2314
2185
|
}
|
|
2315
2186
|
async function resolveBreadcrumb(root, rawArgs) {
|
|
2316
2187
|
const { segments } = await walkCommandPath(root, rawArgs);
|
|
2317
|
-
return segments.length > 0 ? segments.join(" ") :
|
|
2188
|
+
return segments.length > 0 ? segments.join(" ") : "mb";
|
|
2318
2189
|
}
|
|
2319
2190
|
async function findUnknownCommand(root, rawArgs) {
|
|
2320
2191
|
return (await walkCommandPath(root, rawArgs)).unknownToken;
|
|
@@ -2326,27 +2197,6 @@ function skipFlags(rawArgs, start, argsDef) {
|
|
|
2326
2197
|
}
|
|
2327
2198
|
return rawArgs.length;
|
|
2328
2199
|
}
|
|
2329
|
-
async function findSubCommand(subCommands, token) {
|
|
2330
|
-
const direct = subCommands[token];
|
|
2331
|
-
if (direct !== void 0) {
|
|
2332
|
-
const command = await resolveCitty(direct);
|
|
2333
|
-
if (command === void 0) return null;
|
|
2334
|
-
return {
|
|
2335
|
-
name: (await resolveCitty(command.meta))?.name ?? token,
|
|
2336
|
-
command
|
|
2337
|
-
};
|
|
2338
|
-
}
|
|
2339
|
-
for (const [key, loader] of Object.entries(subCommands)) {
|
|
2340
|
-
const command = await resolveCitty(loader);
|
|
2341
|
-
if (command === void 0) continue;
|
|
2342
|
-
const meta = await resolveCitty(command.meta);
|
|
2343
|
-
if (toAliasArray(meta?.alias).includes(token)) return {
|
|
2344
|
-
name: meta?.name ?? key,
|
|
2345
|
-
command
|
|
2346
|
-
};
|
|
2347
|
-
}
|
|
2348
|
-
return null;
|
|
2349
|
-
}
|
|
2350
2200
|
//#endregion
|
|
2351
2201
|
//#region src/runtime/interrupt.ts
|
|
2352
2202
|
const INTERRUPT_REASON = new AbortError("interrupted");
|
|
@@ -2442,4 +2292,4 @@ run().catch((error) => {
|
|
|
2442
2292
|
reportError(error);
|
|
2443
2293
|
});
|
|
2444
2294
|
//#endregion
|
|
2445
|
-
export {
|
|
2295
|
+
export { main as $, ENV_SKIP_PREFLIGHT as A, FEATURE_RULES as B, preflightSkippedNotice as C, resolveCitty as Ct, ENV_DISABLE_KEYRING as D, ENV_API_KEY as E, CapabilityError as F, ruleGap as G, evaluateFeatures as H, RequirementFailure as I, isRetryableStatus as J, HttpError as K, missingTokenFeatureMessage as L, consumeLegacyEnvWarnings as M, readEnv as N, ENV_PROFILE as O, ProfileRefreshedError as P, parseJsonResult as Q, versionTooOldMessage as R, listTruncationNotice as S, parseEnumCsv as St, warn as T, featureAvailability as U, Features as V, isFeatureName as W, parseJson as X, JSON_CONTENT_TYPE as Y, parseJsonOrPlain as Z, projectForList as _, listEnvelopeSchemaWithExtras as _t, reportError as a, formatFlags as at, promptSelect as b, parseCsv as bt, renderListWithExtras as c, listFlagsWithDefaultLimit as ct, serializeJson as d, urlFlag as dt, getMetabaseAugment as et, writeJson as f, resolveCommonFlags as ft, renderRows as g, listEnvelopeSchema as gt, formatScalar as h, parseOptionalInteger as ht, methodRequirements as i, connectionFlags as it, ENV_URL as j, ENV_SKILLS_DIR as k, renderSummary as l, outputFlags as lt, MALFORMED_CELL as m, parseInteger as mt, resolveCommandPath as n, name as nt, renderItem as o, listFlag as ot, writeText as p, resolveOutputFormat as pt, chainRequestFailure as q, isMethodKey as r, version as rt, renderList as s, listFlags as st, interruptSignal as t, setMetabaseAugment as tt, renderSummaryWithinMaxBytes as u, profileFlag as ut, promptConfirm as v, assertArgv as vt, preflightUncheckedNotice as w, promptText as x, parseEnum as xt, promptPassword as y, givenFlagKeys as yt, FEATURE_NAMES as z };
|