@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
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { s as FailedResultError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
5
|
+
import { c as TransformRunResult, p as isTransformRunFailed } from "./transform-B62craFM.mjs";
|
|
6
|
+
import { i as waitFlags, n as parseWaitFlags } from "./wait-flags-C3cu_O0w.mjs";
|
|
6
7
|
//#region src/commands/transform/run.ts
|
|
7
8
|
const transformRunResultView = {
|
|
8
9
|
compactPick: TransformRunResult,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
1
|
+
import { o as ConfigError, s as FailedResultError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { it as connectionFlags, lt as outputFlags, t as interruptSignal, u as renderSummaryWithinMaxBytes, ut as profileFlag } from "./cli.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
5
|
+
import { t as DEFAULT_TIMEOUT_MS } from "./transport-DZSxmmtY.mjs";
|
|
5
6
|
import { i as TransformTestRunResult } from "./transform-test-Bexa_K89.mjs";
|
|
6
7
|
import { t as transformTestRunResultView } from "./transform-test-C49ZTK7M.mjs";
|
|
7
8
|
//#region src/commands/transform-test/run.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
-
import { t as collectForOutput } from "./window-
|
|
5
|
-
import { s as TransformRunCompact } from "./transform-
|
|
6
|
-
import { t as transformRunView } from "./transform-
|
|
1
|
+
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
4
|
+
import { t as collectForOutput } from "./window-D1w7B0vh.mjs";
|
|
5
|
+
import { s as TransformRunCompact } from "./transform-B62craFM.mjs";
|
|
6
|
+
import { t as transformRunView } from "./transform-DKPtUV54.mjs";
|
|
7
7
|
//#region src/commands/transform/runs.ts
|
|
8
8
|
const TransformRunListEnvelope = listEnvelopeSchema(TransformRunCompact);
|
|
9
9
|
var runs_default = defineMetabaseCommand({
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { f as ResponseShapeError, g as errorMessage, h as ValidationError, o as ConfigError, p as TimeoutError, u as NetworkError, v as isFileNotFoundError, x as KNOWN_RANGE, y as isNonInterruptFailure } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { B as FEATURE_RULES, C as preflightSkippedNotice, D as ENV_DISABLE_KEYRING, E as ENV_API_KEY, G as ruleGap, H as evaluateFeatures, J as isRetryableStatus, K as HttpError, M as consumeLegacyEnvWarnings, N as readEnv, P as ProfileRefreshedError, Q as parseJsonResult, T as warn, V as Features, X as parseJson, Y as JSON_CONTENT_TYPE, a as reportError, ft as resolveCommonFlags, i as methodRequirements, j as ENV_URL, pt as resolveOutputFormat, rt as version, t as interruptSignal, tt as setMetabaseAugment, vt as assertArgv, w as preflightUncheckedNotice, yt as givenFlagKeys } from "./cli.mjs";
|
|
2
3
|
import { defineCommand } from "citty";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
import { readFile } from "node:fs/promises";
|
|
@@ -1171,9 +1172,9 @@ async function readCachedProbe(profileName, url) {
|
|
|
1171
1172
|
const hit = await lookupCachedProbe(profileName, url);
|
|
1172
1173
|
return hit.kind === "found" ? hit.probe : null;
|
|
1173
1174
|
}
|
|
1174
|
-
async function readCachedServerProfile(profileName) {
|
|
1175
|
-
const
|
|
1176
|
-
const hit = await lookupCachedProbe(profileName,
|
|
1175
|
+
async function readCachedServerProfile(profileName, urlFlag) {
|
|
1176
|
+
const url = urlFlag ?? readEnvCredentials().url;
|
|
1177
|
+
const hit = await lookupCachedProbe(profileName, url === null ? null : normalizeUrl(url));
|
|
1177
1178
|
if (hit.kind !== "found") return hit;
|
|
1178
1179
|
return {
|
|
1179
1180
|
kind: "found",
|
|
@@ -1182,6 +1183,19 @@ async function readCachedServerProfile(profileName) {
|
|
|
1182
1183
|
};
|
|
1183
1184
|
}
|
|
1184
1185
|
//#endregion
|
|
1186
|
+
//#region src/runtime/body.ts
|
|
1187
|
+
async function readJsonBody(sources, schema) {
|
|
1188
|
+
assertSingleSource(sources);
|
|
1189
|
+
return parseJson(await readInput(sources), schema, { source: sources.source ?? "request body" });
|
|
1190
|
+
}
|
|
1191
|
+
function assertSingleSource(sources) {
|
|
1192
|
+
const provided = [];
|
|
1193
|
+
if (givenValue(sources.flag) !== null) provided.push(DEFAULT_FLAG_NAME);
|
|
1194
|
+
if (givenValue(sources.file) !== null) provided.push("--file");
|
|
1195
|
+
if (givenValue(sources.positional) !== null) provided.push("positional");
|
|
1196
|
+
if (provided.length > 1) throw new ConfigError(`multiple body sources given (${provided.join(", ")}); pass exactly one`);
|
|
1197
|
+
}
|
|
1198
|
+
//#endregion
|
|
1185
1199
|
//#region src/commands/runtime.ts
|
|
1186
1200
|
function defineMetabaseCommand(def) {
|
|
1187
1201
|
const requirements = def.requires === null ? null : deriveRequirements(def.requires);
|
|
@@ -1212,7 +1226,7 @@ function defineMetabaseCommand(def) {
|
|
|
1212
1226
|
const probe = await readCachedProbe(resolved.profile, resolved.url);
|
|
1213
1227
|
const server = probe === null ? null : createServerProfile(probe);
|
|
1214
1228
|
const saveProbe = probe === null ? null : createProbeSaver(resolved.profile, probe);
|
|
1215
|
-
const { createClient } = await import("./client-
|
|
1229
|
+
const { createClient } = await import("./client-DvWllzKd.mjs").then((n) => n.t);
|
|
1216
1230
|
const client = createClient({
|
|
1217
1231
|
url: resolved.url,
|
|
1218
1232
|
credential: resolved.credential
|
|
@@ -1235,12 +1249,12 @@ function defineMetabaseCommand(def) {
|
|
|
1235
1249
|
return client;
|
|
1236
1250
|
};
|
|
1237
1251
|
try {
|
|
1238
|
-
await def
|
|
1252
|
+
await runCommandBody(def, {
|
|
1239
1253
|
args,
|
|
1240
1254
|
ctx,
|
|
1241
1255
|
getClient,
|
|
1242
1256
|
getResolvedConfig
|
|
1243
|
-
});
|
|
1257
|
+
}, args["skip-validate"] === true);
|
|
1244
1258
|
} catch (error) {
|
|
1245
1259
|
throw await diagnoseFailure(error, run);
|
|
1246
1260
|
} finally {
|
|
@@ -1256,12 +1270,40 @@ function defineMetabaseCommand(def) {
|
|
|
1256
1270
|
examples: def.examples ?? [],
|
|
1257
1271
|
details: def.details ? def.details : null,
|
|
1258
1272
|
skills: def.skills ?? [],
|
|
1259
|
-
|
|
1273
|
+
input: inputContract(def),
|
|
1260
1274
|
outputSchema: def.outputSchema ?? null,
|
|
1261
1275
|
requires: requirements
|
|
1262
1276
|
});
|
|
1263
1277
|
return cmd;
|
|
1264
1278
|
}
|
|
1279
|
+
function runCommandBody(def, context, skip) {
|
|
1280
|
+
if (def.inputSchema === void 0) return def.run(context);
|
|
1281
|
+
return def.run({
|
|
1282
|
+
...context,
|
|
1283
|
+
readBody: (sources) => readDeclaredBody(def, sources, skip)
|
|
1284
|
+
});
|
|
1285
|
+
}
|
|
1286
|
+
async function readDeclaredBody(body, sources, skip) {
|
|
1287
|
+
const parsed = await readJsonBody(sources, body.inputSchema);
|
|
1288
|
+
const embedded = body.embeddedDocuments ?? [];
|
|
1289
|
+
if (embedded.length > 0) {
|
|
1290
|
+
const { preflightEmbeddedQuery } = await import("./validate-query-Bf5FhhMI.mjs");
|
|
1291
|
+
for (const query of embedded) preflightEmbeddedQuery(parsed, query, { skip });
|
|
1292
|
+
}
|
|
1293
|
+
return parsed;
|
|
1294
|
+
}
|
|
1295
|
+
function inputContract(body) {
|
|
1296
|
+
if (body.inputDocuments !== void 0) return {
|
|
1297
|
+
kind: "documents",
|
|
1298
|
+
source: body.inputDocuments
|
|
1299
|
+
};
|
|
1300
|
+
if (body.inputSchema === void 0) return null;
|
|
1301
|
+
return {
|
|
1302
|
+
kind: "zod",
|
|
1303
|
+
schema: body.inputSchema,
|
|
1304
|
+
embedded: body.embeddedDocuments ?? []
|
|
1305
|
+
};
|
|
1306
|
+
}
|
|
1265
1307
|
function deriveRequirements(methods) {
|
|
1266
1308
|
return {
|
|
1267
1309
|
methods,
|
|
@@ -1382,4 +1424,4 @@ function buildConfigFlags(ctx) {
|
|
|
1382
1424
|
return flags;
|
|
1383
1425
|
}
|
|
1384
1426
|
//#endregion
|
|
1385
|
-
export { featureGap as $, revokeOAuthCredential as A, probeServer as B,
|
|
1427
|
+
export { featureGap as $, revokeOAuthCredential as A, probeServer as B, ProfileLastFailure as C, fileNotFoundError as D, USER_AGENT as E, tryDiscoverMetadata as F, credentialSecrets as G, serverInfoFromProperties as H, buildNetworkError as I, normalizeUrl as J, oauthCredentialFromTokens as K, isConnectionClosed as L, discoverLoginMetadata as M, exchangeCode as N, givenValue as O, registerClient as P, createServerProfile as Q, PROBE_PATH as R, ProfileAuthMethod as S, OAUTH_CLIENT_NAME as T, assertCredentialHeaderSafe as U, profileFromProperties as V, credentialAuthHeader as W, summarizeServer as X, ServerSummary as Y, Skew as Z, writeOAuthProfile as _, explicitProfileName as a, writeProfile as b, DEFAULT_PROFILE as c, consumeKeyringDowngradeWarning as d, describeVersion as et, keyringFallbackWarning as f, resolveRecordCredential as g, readProfileRecord as h, createCredentialRefresher as i, OAUTH_SCOPE as j, readInput as k, clearProfile as l, readProfileCredential as m, readJsonBody as n, readEnvCredentials as o, listProfileRecords as p, displayUrl as q, readCachedServerProfile as r, resolveProfileName as s, defineMetabaseCommand as t, SessionProperties as tt, consumeKeychainResidualWarning as u, writeProbeFailure as v, profileAuthMethod as w, ProbedUser as x, writeProbeResult as y, probeBudget as z };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { l as renderSummary, lt as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
3
|
+
import { n as findSkillByName, r as loadAllSkills } from "./skills-BY3MCR8i.mjs";
|
|
4
|
+
import { r as scaffoldDataAppProject } from "./data-app-project-DjDDWgUF.mjs";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
//#region src/commands/data-app/scaffold.ts
|
|
8
|
+
const TEMPLATE_SKILL = "data-app";
|
|
9
|
+
const TEMPLATE_DIR = "template";
|
|
10
|
+
const ScaffoldResult = z.object({ dir: z.string() });
|
|
11
|
+
const scaffoldResultView = {
|
|
12
|
+
compactPick: ScaffoldResult,
|
|
13
|
+
tableColumns: [{
|
|
14
|
+
key: "dir",
|
|
15
|
+
label: "Directory"
|
|
16
|
+
}]
|
|
17
|
+
};
|
|
18
|
+
var scaffold_default = defineMetabaseCommand({
|
|
19
|
+
meta: {
|
|
20
|
+
name: "scaffold",
|
|
21
|
+
description: "Copy the data app project template into a directory"
|
|
22
|
+
},
|
|
23
|
+
details: "Copies the Vite + React + TypeScript template into <dir> (the current directory by default), which must be missing or empty, and names the package after the directory (lowercase, dashes). It doesn't reach Metabase: create the app with `mb data-app create` and fetch its queries and actions with `mb data-app typed-schema <slug> --out src/metabase.ts`. Before `npm install`, install the SDK's beta tag for the instance's version, e.g. `npm install @metabase/embedding-sdk-react@66-beta` for v1.66.x: the template's `*` installs `latest`, which may not build the app.",
|
|
24
|
+
skills: [{
|
|
25
|
+
skill: "data-app",
|
|
26
|
+
purpose: "the steps after scaffolding"
|
|
27
|
+
}],
|
|
28
|
+
requires: null,
|
|
29
|
+
args: {
|
|
30
|
+
...outputFlags,
|
|
31
|
+
dir: {
|
|
32
|
+
type: "positional",
|
|
33
|
+
description: "Project directory",
|
|
34
|
+
required: false,
|
|
35
|
+
default: "."
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
outputSchema: ScaffoldResult,
|
|
39
|
+
examples: ["mb data-app scaffold sales-overview", "mb data-app scaffold ."],
|
|
40
|
+
async run({ args, ctx }) {
|
|
41
|
+
const templateDir = join(findSkillByName(loadAllSkills(), TEMPLATE_SKILL).dir, TEMPLATE_DIR);
|
|
42
|
+
await scaffoldDataAppProject({
|
|
43
|
+
dir: args.dir,
|
|
44
|
+
templateDir
|
|
45
|
+
});
|
|
46
|
+
renderSummary({ dir: args.dir }, scaffoldResultView, `Scaffolded a data app project in ${args.dir}.`, ctx);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//#endregion
|
|
50
|
+
export { scaffold_default as default };
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { C as unescapeJsonPointerSegment, o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { $ as main, Ct as resolveCitty, U as featureAvailability, at as formatFlags, dt as urlFlag, et as getMetabaseAugment, f as writeJson, n as resolveCommandPath, ut as profileFlag } from "./cli.mjs";
|
|
3
|
+
import { r as readCachedServerProfile, s as resolveProfileName, t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
4
|
+
import { n as inputGatesOf } from "./input-gate-registry-Dh8QjKgW.mjs";
|
|
5
|
+
import { c as FieldSemanticType, r as FieldBaseType } from "./field-C2qOViFZ.mjs";
|
|
6
|
+
import { n as ParameterMapping, r as ParameterTarget, t as Parameter } from "./parameter-Bucz3cLJ.mjs";
|
|
7
|
+
import { m as CollectionTreeNode } from "./collection-Cz2qLX2m.mjs";
|
|
8
|
+
import { f as Dashcard, u as DashboardTab } from "./dashboard-Cwsf-e9T.mjs";
|
|
9
|
+
import { a as TipTapNode } from "./document-BHOQq2T_.mjs";
|
|
10
|
+
import { t as QuerySchemaBundle } from "./validate-moGYlHxB.mjs";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
//#region src/runtime/json-schema.ts
|
|
13
|
+
const OPTIONALITY = {
|
|
14
|
+
input: "optin",
|
|
15
|
+
output: "optout"
|
|
16
|
+
};
|
|
17
|
+
const REFINED_PREFIX = "refined: ";
|
|
18
|
+
const LOCAL_DEFS_PREFIX = "#/$defs/";
|
|
19
|
+
const ALTERNATIVE_KEYWORDS = [
|
|
20
|
+
"anyOf",
|
|
21
|
+
"oneOf",
|
|
22
|
+
"allOf"
|
|
23
|
+
];
|
|
24
|
+
const CUSTOM_CHECK = "custom";
|
|
25
|
+
const UNREPORTED_ISSUE = {
|
|
26
|
+
code: "custom",
|
|
27
|
+
input: void 0
|
|
28
|
+
};
|
|
29
|
+
function toJsonSchema(schema, params) {
|
|
30
|
+
const { io } = params;
|
|
31
|
+
return z.toJSONSchema(schema, {
|
|
32
|
+
...params,
|
|
33
|
+
override: ({ zodSchema, jsonSchema }) => {
|
|
34
|
+
if (zodSchema instanceof z.core.$ZodTuple) restoreArity(zodSchema, jsonSchema, io);
|
|
35
|
+
noteRefinements(zodSchema, jsonSchema);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function restoreArity(tuple, json, io) {
|
|
40
|
+
if (json.prefixItems === void 0) return;
|
|
41
|
+
const { items, rest } = tuple._zod.def;
|
|
42
|
+
const required = items.findLastIndex((item) => item._zod[OPTIONALITY[io]] !== "optional") + 1;
|
|
43
|
+
json.minItems = json.minItems === void 0 ? required : Math.max(json.minItems, required);
|
|
44
|
+
if (rest === null) json.items = false;
|
|
45
|
+
}
|
|
46
|
+
function noteRefinements(schema, json) {
|
|
47
|
+
const notes = refinementMessages(schema, json).map((message) => `${REFINED_PREFIX}${message}`);
|
|
48
|
+
if (notes.length === 0) return;
|
|
49
|
+
json.description = [...json.description === void 0 ? [] : [json.description], ...notes].join("; ");
|
|
50
|
+
}
|
|
51
|
+
function refinementMessages(schema, json) {
|
|
52
|
+
const { checks } = schema._zod.def;
|
|
53
|
+
if (checks === void 0) return [];
|
|
54
|
+
const inherited = json.$ref === void 0 ? [] : schema._zod.parent?._zod.def.checks ?? [];
|
|
55
|
+
return checks.filter((check) => check._zod.def.check === CUSTOM_CHECK && !inherited.includes(check)).map((check) => refinementMessage(schema, check));
|
|
56
|
+
}
|
|
57
|
+
function refinementMessage(schema, check) {
|
|
58
|
+
const message = check instanceof z.core.$ZodCustom ? reportedMessage(check._zod.def.error?.(UNREPORTED_ISSUE)) : null;
|
|
59
|
+
if (message === null) throw new Error(`a refinement on a ${schema._zod.def.type} schema has no static message to note`);
|
|
60
|
+
return message;
|
|
61
|
+
}
|
|
62
|
+
function reportedMessage(reported) {
|
|
63
|
+
if (typeof reported === "string") return reported;
|
|
64
|
+
return reported?.message ?? null;
|
|
65
|
+
}
|
|
66
|
+
function notePaths(root, notes) {
|
|
67
|
+
return notes.reduce((noted, { path, note }) => {
|
|
68
|
+
const reached = notePath(noted, path, note, noted.$defs);
|
|
69
|
+
if (reached === null) throw new Error(`no member at "${path.join(".")}" to note`);
|
|
70
|
+
return reached;
|
|
71
|
+
}, root);
|
|
72
|
+
}
|
|
73
|
+
function notePath(schema, path, note, defs) {
|
|
74
|
+
if (typeof schema === "boolean") return null;
|
|
75
|
+
const [key, ...rest] = path;
|
|
76
|
+
if (key === void 0) {
|
|
77
|
+
const description = schema.description === void 0 ? [] : [schema.description];
|
|
78
|
+
return {
|
|
79
|
+
...schema,
|
|
80
|
+
description: [...description, note].join("; ")
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (schema.$ref !== void 0) return noteThroughRef(schema, schema.$ref, path, note, defs);
|
|
84
|
+
const noted = { ...schema };
|
|
85
|
+
let reached = false;
|
|
86
|
+
const property = schema.properties?.[key];
|
|
87
|
+
const notedProperty = property === void 0 ? null : notePath(property, rest, note, defs);
|
|
88
|
+
if (notedProperty !== null) {
|
|
89
|
+
noted.properties = {
|
|
90
|
+
...schema.properties,
|
|
91
|
+
[key]: notedProperty
|
|
92
|
+
};
|
|
93
|
+
reached = true;
|
|
94
|
+
}
|
|
95
|
+
for (const keyword of ALTERNATIVE_KEYWORDS) {
|
|
96
|
+
const alternatives = schema[keyword];
|
|
97
|
+
const notedAlternatives = alternatives === void 0 ? null : noteAlternatives(alternatives, path, note, defs);
|
|
98
|
+
if (notedAlternatives !== null) {
|
|
99
|
+
noted[keyword] = notedAlternatives;
|
|
100
|
+
reached = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return reached ? noted : null;
|
|
104
|
+
}
|
|
105
|
+
function noteAlternatives(alternatives, path, note, defs) {
|
|
106
|
+
const noted = alternatives.map((alternative) => notePath(alternative, path, note, defs));
|
|
107
|
+
if (noted.every((alternative) => alternative === null)) return null;
|
|
108
|
+
return alternatives.map((alternative, index) => noted[index] ?? alternative);
|
|
109
|
+
}
|
|
110
|
+
function noteThroughRef(schema, ref, path, note, defs) {
|
|
111
|
+
if (!ref.startsWith(LOCAL_DEFS_PREFIX)) throw new Error(`cannot note "${path.join(".")}" through $ref "${ref}"`);
|
|
112
|
+
const target = defs?.[unescapeJsonPointerSegment(ref.slice(8))];
|
|
113
|
+
if (target === void 0) throw new Error(`$ref "${ref}" points at no $defs entry`);
|
|
114
|
+
const notedTarget = notePath(target, path, note, defs);
|
|
115
|
+
if (notedTarget === null) return null;
|
|
116
|
+
const { $ref: _inlined, ...siblings } = schema;
|
|
117
|
+
return {
|
|
118
|
+
...siblings,
|
|
119
|
+
allOf: [...siblings.allOf ?? [], notedTarget]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//#endregion
|
|
123
|
+
//#region src/commands/schema.ts
|
|
124
|
+
const NAMED_SCHEMAS = {
|
|
125
|
+
Parameter,
|
|
126
|
+
ParameterMapping,
|
|
127
|
+
ParameterTarget,
|
|
128
|
+
Dashcard,
|
|
129
|
+
DashboardTab,
|
|
130
|
+
CollectionTreeNode,
|
|
131
|
+
TipTapNode,
|
|
132
|
+
FieldBaseType,
|
|
133
|
+
FieldSemanticType
|
|
134
|
+
};
|
|
135
|
+
var SchemaNames = class extends z.core.$ZodRegistry {
|
|
136
|
+
#ids;
|
|
137
|
+
#gateNotes;
|
|
138
|
+
constructor(named, gateNotes) {
|
|
139
|
+
super();
|
|
140
|
+
this.#ids = new Map(Object.entries(named).map(([id, schema]) => [schema, id]));
|
|
141
|
+
this.#gateNotes = gateNotes;
|
|
142
|
+
}
|
|
143
|
+
get(schema) {
|
|
144
|
+
const described = z.globalRegistry.get(schema);
|
|
145
|
+
const id = this.#ids.get(schema);
|
|
146
|
+
const named = id === void 0 ? described : {
|
|
147
|
+
...described,
|
|
148
|
+
id
|
|
149
|
+
};
|
|
150
|
+
const gates = inputGatesOf(schema);
|
|
151
|
+
if (this.#gateNotes === null || gates === null) return named;
|
|
152
|
+
const { server } = this.#gateNotes;
|
|
153
|
+
const prior = described?.description === void 0 ? [] : [described.description];
|
|
154
|
+
const notes = gates.map((gate) => gateNote(gate, server));
|
|
155
|
+
return {
|
|
156
|
+
...named,
|
|
157
|
+
description: [...prior, ...notes].join("; ")
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const SCHEMA_NAMES = new SchemaNames(NAMED_SCHEMAS, null);
|
|
162
|
+
const GATE_EFFECT_TEXT = {
|
|
163
|
+
needs: {
|
|
164
|
+
claim: "needs",
|
|
165
|
+
verdict: "this server lacks it"
|
|
166
|
+
},
|
|
167
|
+
supersededBy: {
|
|
168
|
+
claim: "read differently under",
|
|
169
|
+
verdict: "this server reads it differently"
|
|
170
|
+
},
|
|
171
|
+
droppedBy: {
|
|
172
|
+
claim: "dropped by",
|
|
173
|
+
verdict: "this server ignores it"
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
function gateNote(gate, server) {
|
|
177
|
+
const text = GATE_EFFECT_TEXT[gate.effect];
|
|
178
|
+
const feature = `${gate.feature} (${featureAvailability(gate.feature)})`;
|
|
179
|
+
const trigger = triggerText(gate.when);
|
|
180
|
+
const claim = `${text.claim} ${feature}`;
|
|
181
|
+
const note = trigger === null ? claim : `${claim} ${trigger}`;
|
|
182
|
+
return server !== null && serverActsOnGate(gate, server) ? `${note}; ${text.verdict}` : note;
|
|
183
|
+
}
|
|
184
|
+
function triggerText(when) {
|
|
185
|
+
switch (when.kind) {
|
|
186
|
+
case "present": return null;
|
|
187
|
+
case "values": return `for ${when.values.map((value) => JSON.stringify(value)).join(", ")}`;
|
|
188
|
+
case "nonEmpty": return "when non-empty";
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function serverActsOnGate(gate, server) {
|
|
192
|
+
const holds = server.features[gate.feature];
|
|
193
|
+
return gate.effect === "needs" ? !holds : holds;
|
|
194
|
+
}
|
|
195
|
+
const PrintedSchema = z.union([z.object({ $schema: z.string() }).loose(), QuerySchemaBundle]).describe("The JSON Schema (draft 2020-12) of the command's body or output; for query's body, the MBQL 5 schema documents");
|
|
196
|
+
var schema_default = defineMetabaseCommand({
|
|
197
|
+
meta: {
|
|
198
|
+
name: "schema",
|
|
199
|
+
description: "Print the schema of a command's JSON body or output"
|
|
200
|
+
},
|
|
201
|
+
details: "Names another command and prints the JSON Schema of the JSON body it accepts, or with --output of the JSON it prints. A body field only some servers take says in its description the feature it needs, as `needs fieldDataSensitivity (v64+)`. Those notes are judged against the server the profile last probed, read from its cache with no request: `this server lacks it` follows a field that server lacks the feature for, which the client refuses there, `this server reads it differently` a value it would take as another, and `this server ignores it` a field it drops unread. A field holding an MBQL 5 query names `mb schema query`, which prints the MBQL 5 query schema that query, card, transform, segment, measure and data-action bodies are checked against.",
|
|
202
|
+
requires: null,
|
|
203
|
+
args: {
|
|
204
|
+
...formatFlags,
|
|
205
|
+
...profileFlag,
|
|
206
|
+
...urlFlag,
|
|
207
|
+
output: {
|
|
208
|
+
type: "boolean",
|
|
209
|
+
description: "Print the schema of the command's output instead of its body"
|
|
210
|
+
},
|
|
211
|
+
command: {
|
|
212
|
+
type: "positional",
|
|
213
|
+
required: true,
|
|
214
|
+
description: "The command, or the group holding it (card, query, …)"
|
|
215
|
+
},
|
|
216
|
+
subcommand: {
|
|
217
|
+
type: "positional",
|
|
218
|
+
required: false,
|
|
219
|
+
description: "The command within that group (create, get, …)"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
outputSchema: PrintedSchema,
|
|
223
|
+
examples: [
|
|
224
|
+
"mb schema card create",
|
|
225
|
+
"mb schema dashboard get --output",
|
|
226
|
+
"mb schema query"
|
|
227
|
+
],
|
|
228
|
+
async run({ args }) {
|
|
229
|
+
if (args.format === "text") throw new ConfigError("schema output is JSON-only; --format text is not supported");
|
|
230
|
+
const path = args.subcommand === void 0 ? [args.command] : [args.command, args.subcommand];
|
|
231
|
+
const side = args.output === true ? "output" : "input";
|
|
232
|
+
writeJson(await schemaJson(path, side, { server: side === "input" ? await cachedServer(args.profile, args.url) : null }));
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
async function cachedServer(profile, url) {
|
|
236
|
+
const cached = await readCachedServerProfile(resolveProfileName(profile), url);
|
|
237
|
+
return cached.kind === "found" ? cached.profile : null;
|
|
238
|
+
}
|
|
239
|
+
async function schemaJson(path, side, gateNotes) {
|
|
240
|
+
return contractJson(await resolveContract(path, side), side, gateNotes);
|
|
241
|
+
}
|
|
242
|
+
async function resolveContract(path, side) {
|
|
243
|
+
const contract = readContract(getMetabaseAugment(await resolveLeaf(path)), side);
|
|
244
|
+
if (contract === null) throw missingSchema(path.join(" "), side);
|
|
245
|
+
return contract;
|
|
246
|
+
}
|
|
247
|
+
async function resolveLeaf(path) {
|
|
248
|
+
const command = await resolveCommandPath(main, path);
|
|
249
|
+
const subCommands = await resolveCitty(command.subCommands);
|
|
250
|
+
if (subCommands === void 0) return command;
|
|
251
|
+
throw new ConfigError(`${path.join(" ")} is a command group; name one of its commands: ${Object.keys(subCommands).join(", ")}`);
|
|
252
|
+
}
|
|
253
|
+
function readContract(augment, side) {
|
|
254
|
+
if (augment === null) return null;
|
|
255
|
+
if (side === "input") return augment.input;
|
|
256
|
+
if (augment.outputSchema === null) return null;
|
|
257
|
+
return {
|
|
258
|
+
kind: "zod",
|
|
259
|
+
schema: augment.outputSchema,
|
|
260
|
+
embedded: []
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
function missingSchema(command, side) {
|
|
264
|
+
if (side === "output") return new ConfigError(`${command} declares no output schema`);
|
|
265
|
+
return new ConfigError(`${command} takes no JSON body, so it has no input schema; pass --output for the schema of what it prints`);
|
|
266
|
+
}
|
|
267
|
+
function contractJson(contract, side, gateNotes) {
|
|
268
|
+
if (contract.kind === "documents") return contract.source.bundle;
|
|
269
|
+
const names = side === "input" ? new SchemaNames(NAMED_SCHEMAS, gateNotes) : SCHEMA_NAMES;
|
|
270
|
+
return notePaths(toJsonSchema(contract.schema, {
|
|
271
|
+
io: side,
|
|
272
|
+
reused: "ref",
|
|
273
|
+
metadata: names
|
|
274
|
+
}), embeddedQueryNotes(contract.embedded));
|
|
275
|
+
}
|
|
276
|
+
function embeddedQueryNotes(embedded) {
|
|
277
|
+
return embedded.map(({ path, documents }) => ({
|
|
278
|
+
path,
|
|
279
|
+
note: `${documents.title} checked against \`mb schema ${documents.command.join(" ")}\``
|
|
280
|
+
}));
|
|
281
|
+
}
|
|
282
|
+
//#endregion
|
|
283
|
+
export { schema_default as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
-
import { n as windowList } from "./window-
|
|
5
|
-
import {
|
|
6
|
-
import { u as tableView } from "./table-
|
|
1
|
+
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
4
|
+
import { n as windowList } from "./window-D1w7B0vh.mjs";
|
|
5
|
+
import { l as TableCompact } from "./table-hgrX1i-R.mjs";
|
|
6
|
+
import { u as tableView } from "./table-BNA9Or05.mjs";
|
|
7
7
|
//#region src/commands/db/schema-tables.ts
|
|
8
8
|
const DatabaseSchemaTablesEnvelope = listEnvelopeSchema(TableCompact);
|
|
9
9
|
var schema_tables_default = defineMetabaseCommand({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
-
import { n as windowList } from "./window-
|
|
1
|
+
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
4
|
+
import { n as windowList } from "./window-D1w7B0vh.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/db/schemas.ts
|
|
7
7
|
const SchemaName = z.object({ name: z.string() });
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
6
|
-
import { n as
|
|
1
|
+
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
5
|
+
import { t as collectForOutput } from "./window-D1w7B0vh.mjs";
|
|
6
|
+
import { n as parseText } from "./parse-text-C4LYzIFa.mjs";
|
|
7
|
+
import { n as FieldValueLabel, o as fieldValueLabelView, u as toValueLabel } from "./field-CT4r6b92.mjs";
|
|
7
8
|
//#region src/commands/field/search.ts
|
|
8
9
|
const FieldSearchListEnvelope = listEnvelopeSchema(FieldValueLabel);
|
|
9
10
|
function fieldSearchValue(value, limit) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
1
|
+
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { St as parseEnumCsv, ct as listFlagsWithDefaultLimit, gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, ot as listFlag, s as renderList, ut as profileFlag } from "./cli.mjs";
|
|
3
|
+
import { n as parseIdCsv, t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
5
|
+
import { r as windowServerPage } from "./window-D1w7B0vh.mjs";
|
|
5
6
|
import { i as SearchResultCompact, n as SearchModel, t as SEARCH_MODELS } from "./search-1et9tv_s.mjs";
|
|
6
|
-
import { t as parseOptionalText } from "./parse-text-
|
|
7
|
+
import { t as parseOptionalText } from "./parse-text-C4LYzIFa.mjs";
|
|
7
8
|
//#region src/output/views/search.ts
|
|
8
9
|
function searchLocation(row) {
|
|
9
10
|
const tableName = row.table_name;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group
|
|
1
|
+
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
2
|
//#region src/commands/segment/index.ts
|
|
3
3
|
var segment_default = defineCommandGroup({
|
|
4
4
|
name: "segment",
|
|
@@ -11,11 +11,11 @@ var segment_default = defineCommandGroup({
|
|
|
11
11
|
purpose: "define reusable segments"
|
|
12
12
|
}],
|
|
13
13
|
subCommands: {
|
|
14
|
-
list: () => import("./list-
|
|
15
|
-
get: () => import("./get-
|
|
16
|
-
create: () => import("./create-
|
|
17
|
-
update: () => import("./update-
|
|
18
|
-
archive: () => import("./archive-
|
|
14
|
+
list: () => import("./list-HI7Mpoy-.mjs").then((mod) => mod.default),
|
|
15
|
+
get: () => import("./get-BSKpQJVB.mjs").then((mod) => mod.default),
|
|
16
|
+
create: () => import("./create-DJg0Ohj5.mjs").then((mod) => mod.default),
|
|
17
|
+
update: () => import("./update-BVz0oIwS.mjs").then((mod) => mod.default),
|
|
18
|
+
archive: () => import("./archive-F5hoWW7f.mjs").then((mod) => mod.default)
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
//#endregion
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { t as gateInput } from "./input-gate-registry-Dh8QjKgW.mjs";
|
|
2
|
+
import { i as TABLE_FROM_DEFINITION_GATE } from "./table-hgrX1i-R.mjs";
|
|
1
3
|
import { z } from "zod";
|
|
2
4
|
//#region ../client/src/domain/segment.ts
|
|
3
5
|
const Segment = z.object({
|
|
@@ -26,7 +28,7 @@ const SegmentCompact = Segment.pick({
|
|
|
26
28
|
const SegmentDefinition = z.record(z.string(), z.unknown()).describe("MBQL query holding the filter");
|
|
27
29
|
const SegmentCreateInput = z.object({
|
|
28
30
|
name: z.string().min(1),
|
|
29
|
-
table_id: z.number().int().positive(),
|
|
31
|
+
table_id: gateInput(z.number().int().positive(), TABLE_FROM_DEFINITION_GATE),
|
|
30
32
|
definition: SegmentDefinition,
|
|
31
33
|
description: z.string().nullable().optional()
|
|
32
34
|
}).loose();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
1
|
+
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
+
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-iIsqiOwO.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region src/commands/alert/send.ts
|
|
6
6
|
const AlertSendResult = z.object({
|