@metabase/cli 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-collection-BjVAdZ1n.mjs → add-collection-CC6KSwjX.mjs} +5 -5
- package/dist/{alert-DCLhfwdv.mjs → alert-Dt6La9tK.mjs} +7 -7
- package/dist/{alerts-DRin_wt2.mjs → alerts-ClKnJqgB.mjs} +6 -6
- package/dist/{append-DQ9rPJHZ.mjs → append-pnaQWP_A.mjs} +4 -4
- package/dist/{archive-D6xzHaM3.mjs → archive-By1pLYtO.mjs} +3 -3
- package/dist/{archive-xcgoVPwv.mjs → archive-CLu2TGW5.mjs} +5 -5
- package/dist/{archive-HeRygdKz2.mjs → archive-COP9joWU.mjs} +4 -4
- package/dist/{archive-COFQAHAL.mjs → archive-CSnBFcQ_.mjs} +3 -3
- package/dist/{archive-1YVo-Wsu.mjs → archive-Ct1eyolN.mjs} +3 -3
- package/dist/{archive-_c-ISZmi.mjs → archive-D7nAQcCz.mjs} +3 -3
- package/dist/{archive-BzVxRqpL.mjs → archive-DEDA48w3.mjs} +5 -5
- package/dist/{archive-BVRKE9Ev.mjs → archive-DJAsSzCz.mjs} +5 -5
- package/dist/{archive-BPCgmLcV.mjs → archive-DtabbPUk.mjs} +4 -4
- package/dist/{archive-o5cWV3vZ.mjs → archive-YNpa8daf.mjs} +3 -3
- package/dist/{archive-D3yPvUtz.mjs → archive-ewitrKdx.mjs} +5 -5
- package/dist/{auth-DJn5T6zA.mjs → auth-DdLhXCn-.mjs} +5 -5
- package/dist/body-Dd-TwYYL.mjs +17 -0
- package/dist/branch-flag-pFQPNYKr.mjs +9 -0
- package/dist/{branches-CUyPxeeW.mjs → branches-ZvGNhed6.mjs} +3 -3
- package/dist/breaking-BLswgvkA.mjs +36 -0
- package/dist/broken-BN0nL2hf.mjs +37 -0
- package/dist/bulk-discard-values-DFJUjSnE.mjs +49 -0
- package/dist/bulk-edit-Brqr67bu.mjs +53 -0
- package/dist/bulk-rescan-values-DndXXi2N.mjs +28 -0
- package/dist/bulk-sync-schema-mO-t2QlL.mjs +28 -0
- package/dist/{cancel-BNuVls58.mjs → cancel-DP03dXBf.mjs} +3 -3
- package/dist/{cancel-task-DUmlQQpi.mjs → cancel-task-CELBfBPP.mjs} +4 -4
- package/dist/{card-voh1k4hl.mjs → card-Bv4ZN0oV.mjs} +5 -3
- package/dist/card-CFd-GUEM.mjs +25 -0
- package/dist/{card-CEkp1mcI.mjs → card-DSrgU7lT.mjs} +1 -1
- package/dist/{cards-_gbvw3wp.mjs → cards-Cn2ywFTJ.mjs} +6 -6
- package/dist/cli.mjs +410 -100
- package/dist/{client-BnK0evYf.mjs → client-ToLiPu9q.mjs} +316 -316
- package/dist/{collection-DYM0p3Xl.mjs → collection-BG3Ksea-.mjs} +1 -1
- package/dist/collection-BKNShKcY.mjs +21 -0
- package/dist/{collection-BxdPxD38.mjs → collection-D3KXhvnc.mjs} +7 -5
- package/dist/{collection-namespace-DM90lA8C.mjs → collection-namespace-CWW6hZxK.mjs} +2 -2
- package/dist/{content-translation-CqB3peU9.mjs → content-translation-C19SqZWp.mjs} +3 -3
- package/dist/copy-BGK8Wz6d.mjs +55 -0
- package/dist/copy-COLUuiuF.mjs +36 -0
- package/dist/copy-flags-eU8aa0zj.mjs +32 -0
- package/dist/{create-CnJKj9Nl.mjs → create-B2tuInV9.mjs} +4 -4
- package/dist/{create-D4Y69cDF.mjs → create-B3TKri1E.mjs} +4 -4
- package/dist/{create-BSvTs-EV.mjs → create-B4gXKDRr.mjs} +3 -3
- package/dist/create-B63JphYe.mjs +34 -0
- package/dist/{create-IFjwHs0G.mjs → create-BH6kLjHS.mjs} +4 -4
- package/dist/{create-BIUVvIGH.mjs → create-BwifyhyL.mjs} +3 -3
- package/dist/{create-CwXUMOMd.mjs → create-Colz5bOO.mjs} +3 -3
- package/dist/{create-Cm9Z-rfe2.mjs → create-CulUZgN1.mjs} +4 -4
- package/dist/{create-DNx9TGHs.mjs → create-Cxuqr3kT.mjs} +6 -6
- package/dist/{create-CUHpxANR.mjs → create-CzW_UTE7.mjs} +6 -6
- package/dist/{create-BMKuihoI.mjs → create-DNR8RMvV.mjs} +6 -6
- package/dist/{create-DMVw9nrZ.mjs → create-DSHeoV7e.mjs} +4 -4
- package/dist/{create-DVo8-IzZ.mjs → create-DWbW2WSc.mjs} +6 -6
- package/dist/{create-va8bByVt.mjs → create-Dx8nfjGs.mjs} +3 -3
- package/dist/{create-B7S5fCkD.mjs → create-XGomrTz5.mjs} +5 -5
- package/dist/{create-branch-Cw-uXows.mjs → create-branch-DxL7KUZp.mjs} +4 -4
- package/dist/{create-B48rmY8v.mjs → create-g1f2yJ4s.mjs} +3 -3
- package/dist/{csv-CaKx1oFZ.mjs → csv-C6TEfLMi.mjs} +4 -4
- package/dist/{current-task-lGh69Z1i.mjs → current-task-CHs0zNFM.mjs} +4 -4
- package/dist/dashboard-AWrXqQ7a.mjs +35 -0
- package/dist/{dashboard-D0hwTC-f.mjs → dashboard-Phz3XpRM.mjs} +2 -1
- package/dist/{dashboard-DgK81azj.mjs → dashboard-XSTr9QCr.mjs} +6 -2
- package/dist/database-D-CRyRIv.mjs +45 -0
- package/dist/{database-C3E9PZSx.mjs → database-MlUPpitM.mjs} +1 -1
- package/dist/dataset-p5oNPQgL.mjs +66 -0
- package/dist/{db-BRHPjshe.mjs → db-BFSeETMO.mjs} +7 -7
- package/dist/{delete-DMETa-37.mjs → delete-BUKgSJhh.mjs} +4 -4
- package/dist/{delete-CQWCfqHf.mjs → delete-CPBByycV.mjs} +4 -4
- package/dist/{delete-Ci0aDYpf.mjs → delete-Cucqn4-V.mjs} +4 -4
- package/dist/{delete-BxBadE3q.mjs → delete-D79TlpcE.mjs} +4 -4
- package/dist/delete-DZJxBmdU.mjs +44 -0
- package/dist/{delete-G6EiGn2Q.mjs → delete-DndykJn2.mjs} +4 -4
- package/dist/delete-runtime-BbmRg_in.mjs +55 -0
- package/dist/{delete-table-N4rZtt1T.mjs → delete-table-CbsWcjh5.mjs} +4 -4
- package/dist/{dependencies-edN0P1SS.mjs → dependencies-B-880phi.mjs} +5 -5
- package/dist/dependency-DBUJwXqv.mjs +15 -0
- package/dist/dependency-DKSjKT8P.mjs +165 -0
- package/dist/dependency-DSxKm9oS.mjs +111 -0
- package/dist/dependents-C_FDnpZs.mjs +52 -0
- package/dist/{dirty-U51bMoCP.mjs → dirty-B-Is68--.mjs} +5 -5
- package/dist/discard-values-yzH-kIsr.mjs +55 -0
- package/dist/document-BRaba87v.mjs +20 -0
- package/dist/{document-CA0Q6lqu.mjs → document-C18b5rM6.mjs} +1 -1
- package/dist/{document-BHpLJbKU.mjs → document-DFCj1Az_.mjs} +2 -1
- package/dist/{download-BJA6k-e6.mjs → download-DluF-vnU.mjs} +2 -2
- package/dist/{eid-BtlRU1E0.mjs → eid-Dz-mP40j.mjs} +11 -10
- package/dist/entity-CA4zfRt4.mjs +20 -0
- package/dist/entry-flags-7x7bIyOQ.mjs +42 -0
- package/dist/{events-B5rnOo-L.mjs → events-2sOk6H09.mjs} +4 -4
- package/dist/export-BKkAJOFb.mjs +74 -0
- package/dist/export-flags-NiZ7C3Gm.mjs +81 -0
- package/dist/export-preflight-CwJ_3-iX.mjs +35 -0
- package/dist/{field-CcN4oZy6.mjs → field-5nivEfd6.mjs} +33 -3
- package/dist/field-BARgq5I9.mjs +21 -0
- package/dist/field-wmN6raOG.mjs +128 -0
- package/dist/{fields-zQ6O_W_H.mjs → fields-Bod0s_uV.mjs} +6 -6
- package/dist/filter-flags-BYcbB85j.mjs +71 -0
- package/dist/fks-IUw66K_Q.mjs +36 -0
- package/dist/{get-BDrmBZ1z.mjs → get-B8DUMrCw.mjs} +5 -5
- package/dist/{get-is8x5f2n.mjs → get-BGqvoGQM.mjs} +3 -3
- package/dist/{get-CekXFP3x.mjs → get-BSUsfysk.mjs} +3 -3
- package/dist/{get-CeSQptdl.mjs → get-BXsLkoit.mjs} +5 -5
- package/dist/{get-DhpMuTSt.mjs → get-BXssHyJ1.mjs} +5 -5
- package/dist/get-Bct52yPw.mjs +36 -0
- package/dist/{get-DXwlZjw0.mjs → get-Besqwy32.mjs} +3 -3
- package/dist/{get-BLjcCXp8.mjs → get-BfSX-OeS.mjs} +3 -3
- package/dist/{get-BLcS4il2.mjs → get-Biy4gOzu2.mjs} +3 -3
- package/dist/{get-BSoMWp4t2.mjs → get-CYIeiTZ9.mjs} +4 -4
- package/dist/{get-CwiJWeH4.mjs → get-CaEiQnSw.mjs} +4 -4
- package/dist/{get-xPv7e5Ez.mjs → get-Cl81y0Md.mjs} +5 -5
- package/dist/{get-Cf6a4fFN.mjs → get-D1NjMXAH.mjs} +4 -4
- package/dist/{get-EFsmL4le.mjs → get-D2cPuOPR.mjs} +5 -5
- package/dist/{get-Dg-S07ri.mjs → get-DITlshJH.mjs} +3 -3
- package/dist/{get-CTp5l7aU.mjs → get-DLyg6Al9.mjs} +3 -3
- package/dist/{get-93wuhTn2.mjs → get-DQZfaVNq.mjs} +4 -4
- package/dist/{get-CG6G-mzV.mjs → get-DtBqoGTa.mjs} +5 -5
- package/dist/{get-DC_huYD8.mjs → get-_ik_5_lQ.mjs} +5 -5
- package/dist/{get-run-DwY4sFGy.mjs → get-run-CEc_tr5b.mjs} +4 -4
- package/dist/{git-sync-BwBRmEhE.mjs → git-sync-COokpYgc.mjs} +12 -3
- package/dist/git-sync-DKcaddkV.mjs +29 -0
- package/dist/git-sync-DspFahwV.mjs +165 -0
- package/dist/glossary-BlNCrYbw.mjs +30 -0
- package/dist/glossary-CWIX8Zh6.mjs +14 -0
- package/dist/glossary-LmZWwCNP.mjs +21 -0
- package/dist/graph-f6Bp1e8U.mjs +34 -0
- package/dist/{group-YQQ5GIcP.mjs → group-bpD_KcjA.mjs} +1 -1
- package/dist/{has-remote-changes-DE2_14FK.mjs → has-remote-changes-B8MmN6yh.mjs} +4 -4
- package/dist/{import-Cs7wk058.mjs → import-Bhq15KgP.mjs} +19 -8
- package/dist/{input-DEvkIjGr.mjs → input-D8qW-KtR.mjs} +6 -2
- package/dist/{is-dirty-XqDfqXGi.mjs → is-dirty-CAsVuVx8.mjs} +2 -2
- package/dist/{items-BloAjPwA.mjs → items-BZJomiDE.mjs} +8 -8
- package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
- package/dist/{library-Dgq_5BFh.mjs → library-B7wDH-Nc.mjs} +5 -5
- package/dist/{library-PGCfm0UA.mjs → library-BOv5SY24.mjs} +1 -1
- package/dist/{library-BPIzb3K_.mjs → library-Ck0EK5bi.mjs} +4 -2
- package/dist/{list-CZCaqPoo.mjs → list-B2uUl26x.mjs} +6 -6
- package/dist/{list-3ErmGdY0.mjs → list-B4luDSYj.mjs} +6 -6
- package/dist/{list-D04uiS3F.mjs → list-B8ND9t2h.mjs} +3 -3
- package/dist/{list-CghNKfYJ.mjs → list-BT5t8ZOl.mjs} +4 -4
- package/dist/{list-VzrtA9lt.mjs → list-BT7xiUQe.mjs} +3 -3
- package/dist/{list-D9d5ocYi.mjs → list-BWFCv_zk.mjs} +5 -5
- package/dist/{list-DboUvg-Y.mjs → list-BtZVe1Nq.mjs} +6 -6
- package/dist/{list-sdCIS2Df.mjs → list-BwdSG-P5.mjs} +5 -5
- package/dist/{list-yV6CyPzn.mjs → list-C-A-2HFq.mjs} +3 -3
- package/dist/list-C9x--9Jq.mjs +101 -0
- package/dist/{list-CUJ1wem9.mjs → list-CCdXig7b.mjs} +4 -4
- package/dist/{list-BfLo1xI8.mjs → list-CJDFoOHb.mjs} +3 -3
- package/dist/{list-Bzm5mXRo.mjs → list-CLFu3mQB.mjs} +3 -3
- package/dist/{list-BZnf3RmA.mjs → list-Cd40Kr0R.mjs} +3 -3
- package/dist/{list-CUXlZiS1.mjs → list-Cj_mTxbY.mjs} +4 -4
- package/dist/{list-f8Csdjyc.mjs → list-CtS50R7m.mjs} +5 -5
- package/dist/{list-vsXIMssK.mjs → list-CvZyTwmV.mjs} +5 -5
- package/dist/list-DcnNlYQA.mjs +35 -0
- package/dist/{list-DuJezLm_.mjs → list-DtgbtE3_.mjs} +3 -3
- package/dist/{login-Vw51Gts5.mjs → login-Bi_nGMJ9.mjs} +6 -6
- package/dist/{logout-BDIqoVhv.mjs → logout-CiHQJWTu.mjs} +2 -2
- package/dist/{measure-LY9Tp9QZ.mjs → measure-D2qq5e8f.mjs} +6 -6
- package/dist/moderation-review-BdqEH6N1.mjs +31 -0
- package/dist/{notification-DVrLkjFT.mjs → notification-DOYdl0ao.mjs} +1 -1
- package/dist/{parameter-values-DWjmO7Ai.mjs → parameter-values-CZow98nb.mjs} +3 -3
- package/dist/{parse-enum-Dc0dMZ3P.mjs → parse-enum-CLIXMsd8.mjs} +1 -1
- package/dist/parse-id-BW09NysN.mjs +13 -0
- package/dist/{parse-ref-DTDld_LJ.mjs → parse-ref-Cw5fa4FI.mjs} +1 -1
- package/dist/parse-text-T0lTXzTZ.mjs +11 -0
- package/dist/{path-BUUAGYO5.mjs → path-K6LPLYPb.mjs} +4 -4
- package/dist/{poll-CZeXepUQ.mjs → poll-Dz4tUm2f.mjs} +2 -2
- package/dist/{preflight-DcULqq8E.mjs → preflight-CX6cqB90.mjs} +3 -3
- package/dist/{process-CTrfxxaC.mjs → process-D0HdqZ3r.mjs} +1 -1
- package/dist/{publish-qVFmJQ1E.mjs → publish-COatW4Un.mjs} +4 -4
- package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
- package/dist/query-BJXTIDhy.mjs +328 -0
- package/dist/{query-Cq1lmqL5.mjs → query-DmvkyDfo.mjs} +14 -33
- package/dist/remapping-CPAvDKHV.mjs +53 -0
- package/dist/{remove-collection-DBqh2Lqm.mjs → remove-collection-Bg-sNX3U.mjs} +5 -5
- package/dist/{render-Gx1hR7IF.mjs → render-BSfDD6ip.mjs} +2 -2
- package/dist/{replace-CujInVY9.mjs → replace-RCHeZLUT.mjs} +4 -4
- package/dist/{rescan-values-HypqBCSK.mjs → rescan-values-CpDGYZvf.mjs} +5 -5
- package/dist/rescan-values-PeMnpaFY.mjs +32 -0
- package/dist/{run-DEkQSOQa.mjs → run-CaQ7kubO.mjs} +3 -3
- package/dist/{run-b3jyF29q.mjs → run-DkRkZRgf.mjs} +4 -4
- package/dist/{runs-GHqHLGy4.mjs → runs-BDjoVJ0P.mjs} +5 -5
- package/dist/{runtime-nCPku2nN.mjs → runtime-CZ5zh32z.mjs} +21 -82
- package/dist/{schema-tables-B5L05Y1L.mjs → schema-tables-C2qjLcPq.mjs} +6 -6
- package/dist/{schemas-Clx26p_4.mjs → schemas-D8hfNduk.mjs} +4 -4
- package/dist/search-BrQQuNmh.mjs +131 -0
- package/dist/search-CnTXKJgx.mjs +85 -0
- package/dist/{segment-DiRJcbam.mjs → segment-Bi6eqj3e.mjs} +6 -6
- package/dist/{send-DIHkDNBN.mjs → send-CAjgVNlA.mjs} +3 -3
- package/dist/{set-D77qUZML.mjs → set-BXTkYWid.mjs} +4 -4
- package/dist/{set-active-DCdFgD0O.mjs → set-active-CBQVCePU.mjs} +3 -3
- package/dist/set-sensitivity-D39kGTob.mjs +57 -0
- package/dist/{setting-DR9bj232.mjs → setting-CPkvkc4H.mjs} +4 -4
- package/dist/{setup-DGa2LLEp.mjs → setup-Be3xDXHi.mjs} +3 -3
- package/dist/{signal-k7cm5N6h.mjs → signal-CxWeLszu.mjs} +1 -1
- package/dist/{skill-list-DAvGGHzS.mjs → skill-list-CBGq30sI.mjs} +2 -2
- package/dist/{skills-CqtNuSXM.mjs → skills-CJ9eXouJ.mjs} +2 -2
- package/dist/{skills-CCn7cyMP.mjs → skills-DyiLycMY.mjs} +3 -3
- package/dist/snippet-QirK70R_.mjs +19 -0
- package/dist/{stash-BTtsV0AG.mjs → stash-BVN3s5N_.mjs} +6 -6
- package/dist/{status-CW7Dt-nV.mjs → status-BtbMmIWo.mjs} +7 -7
- package/dist/{status-XgSS3StV.mjs → status-CxP6w3aL.mjs} +3 -3
- package/dist/{subscription-CofRU47d.mjs → subscription-Dr-YHARg.mjs} +6 -6
- package/dist/{subscriptions-DCuuPF6U.mjs → subscriptions-8tM8TTeQ.mjs} +6 -6
- package/dist/{summary-uGlgKE3C.mjs → summary-DKx6ptQe.mjs} +5 -5
- package/dist/sync-schema-B8RY0Ra4.mjs +32 -0
- package/dist/{sync-schema-Cu9rD3eH.mjs → sync-schema-kNriXZjG.mjs} +6 -6
- package/dist/sync-task-CXFoqlpF.mjs +53 -0
- package/dist/table-CZnT6d9x.mjs +26 -0
- package/dist/{table-DfuY0N8e.mjs → table-Ci6bhZkb.mjs} +35 -12
- package/dist/table-CxvaDiIZ.mjs +155 -0
- package/dist/table-selector-flags-1bYkAKld.mjs +42 -0
- package/dist/text-DaNkPRwt.mjs +6 -0
- package/dist/timeline-CUzx6uXi.mjs +21 -0
- package/dist/{timeline-event-D-h0A_oh.mjs → timeline-event-DpNm4dkn.mjs} +6 -6
- package/dist/{transform-CtqB1WYo.mjs → transform-CNBIV7No.mjs} +1 -1
- package/dist/transform-g4-HHzDp.mjs +28 -0
- package/dist/transform-job-DqBtnTrG.mjs +22 -0
- package/dist/{transform-tag-BLp_p9J-.mjs → transform-tag-nTb0Ivpj.mjs} +5 -5
- package/dist/{transforms-n2IwEcbU.mjs → transforms-BSsAfwAg.mjs} +5 -5
- package/dist/tree-lMvw1jnZ.mjs +34 -0
- package/dist/{unpublish-DVQCAa3g.mjs → unpublish-CYFDd828.mjs} +3 -3
- package/dist/unreferenced-8Xdq76Kw.mjs +36 -0
- package/dist/{update-oQeQyqKO.mjs → update-6P_GYCLT.mjs} +5 -5
- package/dist/{update-DFdBeJwc.mjs → update-B28EJzrx.mjs} +13 -8
- package/dist/{update-DffrdV4b.mjs → update-BDunZa7G.mjs} +4 -4
- package/dist/{update-DKO9HF1f.mjs → update-BT2yNB_g.mjs} +6 -6
- package/dist/{update-rFRPLlb6.mjs → update-BnMUSFYZ.mjs} +4 -4
- package/dist/update-BwrYeKso.mjs +41 -0
- package/dist/{update-B7CikkI0.mjs → update-C7DEMiu-.mjs} +7 -7
- package/dist/{update-CAsqNhDC.mjs → update-CITzAFG8.mjs} +4 -4
- package/dist/update-CLl8tE20.mjs +181 -0
- package/dist/{update-C05J2nZ2.mjs → update-CM5uuhjB.mjs} +4 -4
- package/dist/{update-ChpOukqq.mjs → update-CQXcsvaa.mjs} +5 -5
- package/dist/{update-D4ggtuG4.mjs → update-Cs2zv_L2.mjs} +7 -7
- package/dist/{update-NGq0yXZk.mjs → update-D--Fw7-_.mjs} +5 -5
- package/dist/{update-D9H6Lh5U.mjs → update-D9p0N8ky.mjs} +4 -4
- package/dist/{update-CKDRuduL.mjs → update-DAzRx0of.mjs} +5 -5
- package/dist/{update-CnkPYL2i.mjs → update-D_DCOOAB.mjs} +6 -6
- package/dist/{update-DScUzKLI.mjs → update-_sYM1GuU.mjs} +7 -7
- package/dist/{update-dashcard-DvPqLJ3N.mjs → update-dashcard-VNnIqHDI.mjs} +6 -6
- package/dist/{upgrade-BRgw0fvn.mjs → upgrade-Tj_reACv.mjs} +4 -4
- package/dist/upload-BKxOpSz3.mjs +13 -0
- package/dist/{upload-Do2PBSeH.mjs → upload-C2fhpKkP.mjs} +2 -2
- package/dist/{upload-BrfbcbBW.mjs → upload-Dg91ldGg.mjs} +3 -3
- package/dist/{uuid-B4eij1d7.mjs → uuid-Blpv_e0S.mjs} +2 -2
- package/dist/{validate-xR_MHBNR.mjs → validate-D7e110oU.mjs} +1 -1
- package/dist/{validate-query-D6_ad-Gi.mjs → validate-query-C7LuKiUT.mjs} +2 -2
- package/dist/{values-xgOftPq5.mjs → values-PonkbYAK.mjs} +5 -5
- package/dist/verify-DixUBbd2.mjs +38 -0
- package/dist/verify-Dv7ER11c.mjs +38 -0
- package/dist/{verify-DTOA_wVM.mjs → verify-Mpb65a5v.mjs} +3 -3
- package/dist/verify-flags-CMpRkMPa.mjs +58 -0
- package/dist/{wait-BjeFgR13.mjs → wait-CaH6XHQV.mjs} +6 -6
- package/dist/{wait-flags-BCeCnaz3.mjs → wait-flags-rUU4NUrv.mjs} +2 -2
- package/dist/{window-DSb1tqSe.mjs → window-CI_QD04s.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +18 -11
- package/skill-data/dashboard/SKILL.md +1 -1
- package/skill-data/document/SKILL.md +12 -1
- package/skill-data/git-sync/SKILL.md +61 -9
- package/skill-data/mbql/SKILL.md +5 -0
- package/skill-data/metadata/SKILL.md +36 -6
- package/dist/body-Cu94pH4P.mjs +0 -17
- package/dist/card-ByOzVxpI.mjs +0 -24
- package/dist/collection-BGbW7u_Q.mjs +0 -20
- package/dist/dashboard-Bzjz2v6u.mjs +0 -33
- package/dist/database-JtHTqSpq.mjs +0 -26
- package/dist/delete-runtime-BKEzJn22.mjs +0 -49
- package/dist/document-DqJ7Cysa.mjs +0 -19
- package/dist/export-DO2josC0.mjs +0 -63
- package/dist/field-CHZByaXa.mjs +0 -18
- package/dist/field-fDtIrY6D.mjs +0 -80
- package/dist/get-yHIEezeG.mjs +0 -31
- package/dist/git-sync-NhfLSZA6.mjs +0 -28
- package/dist/git-sync-TjX1r_wF.mjs +0 -136
- package/dist/list-DgteFn01.mjs +0 -34
- package/dist/parse-id-whJX4DAb.mjs +0 -10
- package/dist/query-BPtIy79s.mjs +0 -114
- package/dist/query-result-E4Q-Gra6.mjs +0 -15
- package/dist/search-DxiuY5EV.mjs +0 -97
- package/dist/selectors-rEFuyXPZ.mjs +0 -35
- package/dist/snippet-g9JTDxqu.mjs +0 -19
- package/dist/sync-task-BXeWuARG.mjs +0 -37
- package/dist/table-C6h4tIRw.mjs +0 -37
- package/dist/table-Di-EY7pg.mjs +0 -18
- package/dist/timeline-D7EsWZm6.mjs +0 -21
- package/dist/transform-8XK1LIgC.mjs +0 -28
- package/dist/transform-job-CTizQkWy.mjs +0 -22
- package/dist/tree-cqxiDh2b.mjs +0 -26
- package/dist/upload-VXBFKzLT.mjs +0 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DatabaseSyncResult, n as DatabaseCompact } from "./database-
|
|
1
|
+
import { a as DatabaseSyncResult, n as DatabaseCompact } from "./database-D-CRyRIv.mjs";
|
|
2
2
|
//#region src/output/views/database.ts
|
|
3
3
|
const databaseView = {
|
|
4
4
|
compactPick: DatabaseCompact,
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { n as FieldBaseType, r as FieldCompact, s as FieldSemanticType, t as Field } from "./field-5nivEfd6.mjs";
|
|
2
|
+
import { m as TableQueryMetadataCompact, p as TableQueryMetadata } from "./table-Ci6bhZkb.mjs";
|
|
3
|
+
import { n as DatabaseCompact, o as DatabaseVirtualTable, s as DatabaseVirtualTableCompact, t as Database } from "./database-D-CRyRIv.mjs";
|
|
4
|
+
import { n as SnippetCompact, t as Snippet } from "./snippet-CyKAgIZl.mjs";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
//#region ../client/src/domain/dataset.ts
|
|
7
|
+
const CompiledQuery = z.object({
|
|
8
|
+
query: z.union([z.string(), z.array(z.unknown())]),
|
|
9
|
+
params: z.array(z.unknown()).nullable().optional(),
|
|
10
|
+
collection: z.string().nullable().optional()
|
|
11
|
+
}).loose();
|
|
12
|
+
const CompiledQueryWireWithoutCollection = CompiledQuery.omit({ collection: true });
|
|
13
|
+
function withUnknownCollection(wire) {
|
|
14
|
+
return {
|
|
15
|
+
...wire,
|
|
16
|
+
collection: null
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** The shape `POST /api/dataset/native` answers on a server with `features`, read as `CompiledQuery`. */
|
|
20
|
+
function compiledQuerySchema(features) {
|
|
21
|
+
return features.compiledQueryOmitsCollection ? CompiledQueryWireWithoutCollection.transform(withUnknownCollection) : CompiledQuery;
|
|
22
|
+
}
|
|
23
|
+
const CompiledQueryCompact = CompiledQuery.pick({
|
|
24
|
+
query: true,
|
|
25
|
+
params: true,
|
|
26
|
+
collection: true
|
|
27
|
+
}).strip();
|
|
28
|
+
const FieldRef = z.tuple([
|
|
29
|
+
z.literal("field"),
|
|
30
|
+
z.string(),
|
|
31
|
+
z.object({ "base-type": FieldBaseType }).loose()
|
|
32
|
+
]);
|
|
33
|
+
const VirtualField = z.object({
|
|
34
|
+
id: z.union([z.number().int(), FieldRef]),
|
|
35
|
+
table_id: z.string(),
|
|
36
|
+
name: z.string(),
|
|
37
|
+
display_name: z.string(),
|
|
38
|
+
base_type: FieldBaseType,
|
|
39
|
+
semantic_type: FieldSemanticType.nullable(),
|
|
40
|
+
fk_target_field_id: z.number().int().nullable().optional()
|
|
41
|
+
}).loose();
|
|
42
|
+
const VirtualFieldCompact = VirtualField.pick({
|
|
43
|
+
id: true,
|
|
44
|
+
table_id: true,
|
|
45
|
+
name: true,
|
|
46
|
+
display_name: true,
|
|
47
|
+
base_type: true,
|
|
48
|
+
semantic_type: true,
|
|
49
|
+
fk_target_field_id: true
|
|
50
|
+
}).strip();
|
|
51
|
+
const VirtualTable = DatabaseVirtualTable.extend({ fields: z.array(VirtualField) });
|
|
52
|
+
const VirtualTableCompact = DatabaseVirtualTableCompact.extend({ fields: z.array(VirtualFieldCompact) });
|
|
53
|
+
const QueryMetadata = z.object({
|
|
54
|
+
databases: z.array(Database),
|
|
55
|
+
tables: z.array(z.union([TableQueryMetadata, VirtualTable])),
|
|
56
|
+
fields: z.array(Field),
|
|
57
|
+
snippets: z.array(Snippet)
|
|
58
|
+
}).loose();
|
|
59
|
+
const QueryMetadataCompact = z.object({
|
|
60
|
+
databases: z.array(DatabaseCompact),
|
|
61
|
+
tables: z.array(z.union([TableQueryMetadataCompact, VirtualTableCompact])),
|
|
62
|
+
fields: z.array(FieldCompact),
|
|
63
|
+
snippets: z.array(SnippetCompact)
|
|
64
|
+
});
|
|
65
|
+
//#endregion
|
|
66
|
+
export { VirtualTable as a, QueryMetadataCompact as i, CompiledQueryCompact as n, compiledQuerySchema as o, QueryMetadata as r, CompiledQuery as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-
|
|
1
|
+
import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
|
|
2
2
|
//#region src/commands/db/index.ts
|
|
3
3
|
var db_default = defineCommandGroup({
|
|
4
4
|
name: "db",
|
|
@@ -12,12 +12,12 @@ var db_default = defineCommandGroup({
|
|
|
12
12
|
purpose: "model a raw database into clean tables"
|
|
13
13
|
}],
|
|
14
14
|
subCommands: {
|
|
15
|
-
list: () => import("./list-
|
|
16
|
-
get: () => import("./get-
|
|
17
|
-
schemas: () => import("./schemas-
|
|
18
|
-
"schema-tables": () => import("./schema-tables-
|
|
19
|
-
"sync-schema": () => import("./sync-schema-
|
|
20
|
-
"rescan-values": () => import("./rescan-values-
|
|
15
|
+
list: () => import("./list-CtS50R7m.mjs").then((m) => m.default),
|
|
16
|
+
get: () => import("./get-B8DUMrCw.mjs").then((m) => m.default),
|
|
17
|
+
schemas: () => import("./schemas-D8hfNduk.mjs").then((m) => m.default),
|
|
18
|
+
"schema-tables": () => import("./schema-tables-C2qjLcPq.mjs").then((m) => m.default),
|
|
19
|
+
"sync-schema": () => import("./sync-schema-kNriXZjG.mjs").then((m) => m.default),
|
|
20
|
+
"rescan-values": () => import("./rescan-values-CpDGYZvf.mjs").then((m) => m.default)
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/transform-job/delete.ts
|
|
6
6
|
var delete_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/transform/delete.ts
|
|
6
6
|
var delete_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/timeline/delete.ts
|
|
6
6
|
var delete_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/timeline-event/delete.ts
|
|
6
6
|
var delete_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
|
+
//#region src/commands/glossary/delete.ts
|
|
6
|
+
var delete_default = defineMetabaseCommand({
|
|
7
|
+
meta: {
|
|
8
|
+
name: "delete",
|
|
9
|
+
description: "Delete a glossary entry by id"
|
|
10
|
+
},
|
|
11
|
+
requires: ["glossary.delete"],
|
|
12
|
+
args: {
|
|
13
|
+
...outputFlags,
|
|
14
|
+
...profileFlag,
|
|
15
|
+
...connectionFlags,
|
|
16
|
+
yes: {
|
|
17
|
+
type: "boolean",
|
|
18
|
+
description: "Skip confirmation",
|
|
19
|
+
default: false
|
|
20
|
+
},
|
|
21
|
+
id: {
|
|
22
|
+
type: "positional",
|
|
23
|
+
description: "Glossary entry id",
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
outputSchema: DeleteResult,
|
|
28
|
+
examples: ["mb glossary delete 3 --yes", "mb glossary delete 3"],
|
|
29
|
+
async run({ args, ctx, getClient }) {
|
|
30
|
+
const id = parseId(args.id);
|
|
31
|
+
const client = await getClient();
|
|
32
|
+
await confirmAndDelete({
|
|
33
|
+
id,
|
|
34
|
+
yes: args.yes,
|
|
35
|
+
promptMessage: `Delete glossary entry ${id}?`,
|
|
36
|
+
successMessage: `Deleted glossary entry ${id}.`,
|
|
37
|
+
abortMessage: `Aborted; glossary entry ${id} was not deleted.`,
|
|
38
|
+
deleteResource: () => client.glossary.delete(id),
|
|
39
|
+
ctx
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { delete_default as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/transform-tag/delete.ts
|
|
6
6
|
var delete_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { at as ConfigError, p as renderSummary, w as promptConfirm } from "./cli.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/commands/delete-runtime.ts
|
|
4
|
+
const DeleteResult = z.object({
|
|
5
|
+
deleted: z.boolean(),
|
|
6
|
+
aborted: z.boolean(),
|
|
7
|
+
id: z.number().int()
|
|
8
|
+
});
|
|
9
|
+
const deleteResultView = {
|
|
10
|
+
compactPick: DeleteResult,
|
|
11
|
+
tableColumns: [
|
|
12
|
+
{
|
|
13
|
+
key: "id",
|
|
14
|
+
label: "ID"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
key: "deleted",
|
|
18
|
+
label: "Deleted"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
key: "aborted",
|
|
22
|
+
label: "Aborted"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
async function confirmDestructive(args) {
|
|
27
|
+
if (args.yes) return true;
|
|
28
|
+
if (process.stdin.isTTY !== true) throw new ConfigError(`refusing to ${args.action} without confirmation — pass --yes to proceed non-interactively`);
|
|
29
|
+
return promptConfirm({
|
|
30
|
+
message: args.promptMessage,
|
|
31
|
+
initialValue: false
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async function confirmAndDelete(args) {
|
|
35
|
+
if (!await confirmDestructive({
|
|
36
|
+
yes: args.yes,
|
|
37
|
+
action: `delete ${args.id}`,
|
|
38
|
+
promptMessage: args.promptMessage
|
|
39
|
+
})) {
|
|
40
|
+
renderSummary({
|
|
41
|
+
deleted: false,
|
|
42
|
+
aborted: true,
|
|
43
|
+
id: args.id
|
|
44
|
+
}, deleteResultView, args.abortMessage, args.ctx);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
await args.deleteResource();
|
|
48
|
+
renderSummary({
|
|
49
|
+
deleted: true,
|
|
50
|
+
aborted: false,
|
|
51
|
+
id: args.id
|
|
52
|
+
}, deleteResultView, args.successMessage, args.ctx);
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { confirmAndDelete as n, confirmDestructive as r, DeleteResult as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { H as
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-
|
|
1
|
+
import { H as connectionFlags, J as profileFlag, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as confirmAndDelete, t as DeleteResult } from "./delete-runtime-BbmRg_in.mjs";
|
|
5
5
|
//#region src/commands/transform/delete-table.ts
|
|
6
6
|
var delete_table_default = defineMetabaseCommand({
|
|
7
7
|
meta: {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as windowList } from "./window-
|
|
1
|
+
import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as windowList } from "./window-CI_QD04s.mjs";
|
|
5
5
|
import { n as TransformCompact } from "./transform-DiW7bREn.mjs";
|
|
6
|
-
import { n as transformView } from "./transform-
|
|
6
|
+
import { n as transformView } from "./transform-CNBIV7No.mjs";
|
|
7
7
|
//#region src/commands/transform/dependencies.ts
|
|
8
8
|
const TransformDependenciesEnvelope = listEnvelopeSchema(TransformCompact);
|
|
9
9
|
var dependencies_default = defineMetabaseCommand({
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-bpD_KcjA.mjs";
|
|
2
|
+
//#region src/commands/dependency/index.ts
|
|
3
|
+
var dependency_default = defineCommandGroup({
|
|
4
|
+
name: "dependency",
|
|
5
|
+
description: "Trace what Metabase content depends on and what depends on it",
|
|
6
|
+
subCommands: {
|
|
7
|
+
graph: () => import("./graph-f6Bp1e8U.mjs").then((m) => m.default),
|
|
8
|
+
dependents: () => import("./dependents-C_FDnpZs.mjs").then((m) => m.default),
|
|
9
|
+
broken: () => import("./broken-BN0nL2hf.mjs").then((m) => m.default),
|
|
10
|
+
unreferenced: () => import("./unreferenced-8Xdq76Kw.mjs").then((m) => m.default),
|
|
11
|
+
breaking: () => import("./breaking-BLswgvkA.mjs").then((m) => m.default)
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { dependency_default as default };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { s as CardType } from "./card-Bv4ZN0oV.mjs";
|
|
2
|
+
import { i as CollectionAuthorityLevel, s as CollectionId } from "./collection-D3KXhvnc.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region ../client/src/domain/dependency.ts
|
|
5
|
+
const DependencyType = z.enum([
|
|
6
|
+
"table",
|
|
7
|
+
"card",
|
|
8
|
+
"snippet",
|
|
9
|
+
"transform",
|
|
10
|
+
"dashboard",
|
|
11
|
+
"document",
|
|
12
|
+
"sandbox",
|
|
13
|
+
"segment",
|
|
14
|
+
"measure"
|
|
15
|
+
]);
|
|
16
|
+
const DependencyUsageType = z.enum([
|
|
17
|
+
"table",
|
|
18
|
+
"snippet",
|
|
19
|
+
"transform",
|
|
20
|
+
"dashboard",
|
|
21
|
+
"document",
|
|
22
|
+
"sandbox",
|
|
23
|
+
"segment",
|
|
24
|
+
"question",
|
|
25
|
+
"model",
|
|
26
|
+
"metric",
|
|
27
|
+
"measure"
|
|
28
|
+
]);
|
|
29
|
+
const DependencyFindingErrorType = z.enum([
|
|
30
|
+
"missing-column",
|
|
31
|
+
"missing-table-alias",
|
|
32
|
+
"missing-table",
|
|
33
|
+
"missing-card",
|
|
34
|
+
"duplicate-column",
|
|
35
|
+
"syntax-error",
|
|
36
|
+
"validation-exception-error"
|
|
37
|
+
]);
|
|
38
|
+
const DependencyErrorSourceType = z.enum([
|
|
39
|
+
"table",
|
|
40
|
+
"card",
|
|
41
|
+
"transform"
|
|
42
|
+
]);
|
|
43
|
+
const DependentsSortColumn = z.enum([
|
|
44
|
+
"name",
|
|
45
|
+
"location",
|
|
46
|
+
"view-count"
|
|
47
|
+
]);
|
|
48
|
+
const DependencyItemsSortColumn = z.enum([
|
|
49
|
+
"name",
|
|
50
|
+
"location",
|
|
51
|
+
"dependents-with-errors",
|
|
52
|
+
"dependents-errors"
|
|
53
|
+
]);
|
|
54
|
+
const DependencyCollectionRef = z.object({
|
|
55
|
+
id: CollectionId,
|
|
56
|
+
name: z.string(),
|
|
57
|
+
authority_level: CollectionAuthorityLevel.nullable(),
|
|
58
|
+
is_personal: z.boolean().optional()
|
|
59
|
+
}).loose();
|
|
60
|
+
const DependencyContainerRef = z.object({
|
|
61
|
+
id: z.number().int(),
|
|
62
|
+
name: z.string()
|
|
63
|
+
}).loose();
|
|
64
|
+
const DependencyDatabaseRef = z.object({
|
|
65
|
+
id: z.number().int(),
|
|
66
|
+
name: z.string()
|
|
67
|
+
}).loose();
|
|
68
|
+
const DependencyTableRef = z.object({
|
|
69
|
+
id: z.number().int(),
|
|
70
|
+
name: z.string(),
|
|
71
|
+
display_name: z.string()
|
|
72
|
+
}).loose();
|
|
73
|
+
const DependencyEntityData = z.object({
|
|
74
|
+
name: z.string().nullable().optional(),
|
|
75
|
+
display_name: z.string().nullable().optional(),
|
|
76
|
+
description: z.string().nullable().optional(),
|
|
77
|
+
type: CardType.nullable().optional(),
|
|
78
|
+
display: z.string().nullable().optional(),
|
|
79
|
+
database_id: z.number().int().nullable().optional(),
|
|
80
|
+
db_id: z.number().int().nullable().optional(),
|
|
81
|
+
schema: z.string().nullable().optional(),
|
|
82
|
+
collection_id: CollectionId.nullable().optional(),
|
|
83
|
+
collection: DependencyCollectionRef.nullable().optional(),
|
|
84
|
+
dashboard_id: z.number().int().nullable().optional(),
|
|
85
|
+
dashboard: DependencyContainerRef.nullable().optional(),
|
|
86
|
+
document_id: z.number().int().nullable().optional(),
|
|
87
|
+
document: DependencyContainerRef.nullable().optional(),
|
|
88
|
+
db: DependencyDatabaseRef.nullable().optional(),
|
|
89
|
+
table_id: z.number().int().nullable().optional(),
|
|
90
|
+
table: DependencyTableRef.nullable().optional(),
|
|
91
|
+
view_count: z.number().int().nullable().optional()
|
|
92
|
+
}).loose();
|
|
93
|
+
const DependencyEntity = z.object({
|
|
94
|
+
id: z.number().int(),
|
|
95
|
+
type: DependencyType,
|
|
96
|
+
data: DependencyEntityData
|
|
97
|
+
}).loose();
|
|
98
|
+
const DependencyEntityDataCompact = DependencyEntityData.pick({
|
|
99
|
+
name: true,
|
|
100
|
+
display_name: true,
|
|
101
|
+
description: true,
|
|
102
|
+
type: true,
|
|
103
|
+
database_id: true,
|
|
104
|
+
db_id: true,
|
|
105
|
+
schema: true,
|
|
106
|
+
table_id: true,
|
|
107
|
+
collection_id: true,
|
|
108
|
+
dashboard_id: true,
|
|
109
|
+
document_id: true,
|
|
110
|
+
view_count: true
|
|
111
|
+
}).strip().extend({
|
|
112
|
+
db: DependencyDatabaseRef.pick({
|
|
113
|
+
id: true,
|
|
114
|
+
name: true
|
|
115
|
+
}).strip().nullable().optional(),
|
|
116
|
+
table: DependencyTableRef.pick({
|
|
117
|
+
id: true,
|
|
118
|
+
name: true,
|
|
119
|
+
display_name: true
|
|
120
|
+
}).strip().nullable().optional(),
|
|
121
|
+
collection: DependencyCollectionRef.pick({
|
|
122
|
+
id: true,
|
|
123
|
+
name: true,
|
|
124
|
+
authority_level: true,
|
|
125
|
+
is_personal: true
|
|
126
|
+
}).strip().nullable().optional(),
|
|
127
|
+
dashboard: DependencyContainerRef.pick({
|
|
128
|
+
id: true,
|
|
129
|
+
name: true
|
|
130
|
+
}).strip().nullable().optional(),
|
|
131
|
+
document: DependencyContainerRef.pick({
|
|
132
|
+
id: true,
|
|
133
|
+
name: true
|
|
134
|
+
}).strip().nullable().optional()
|
|
135
|
+
});
|
|
136
|
+
const DependencyEntityCompact = DependencyEntity.pick({
|
|
137
|
+
id: true,
|
|
138
|
+
type: true
|
|
139
|
+
}).strip().extend({ data: DependencyEntityDataCompact });
|
|
140
|
+
const DependencyNode = DependencyEntity.extend({ dependents_count: z.partialRecord(DependencyUsageType, z.number().int()).nullable() });
|
|
141
|
+
const DependencyNodeCompact = DependencyEntityCompact.extend({ dependents_count: DependencyNode.shape.dependents_count });
|
|
142
|
+
const DependencyFindingError = z.object({
|
|
143
|
+
id: z.number().int(),
|
|
144
|
+
analyzed_entity_type: DependencyType,
|
|
145
|
+
analyzed_entity_id: z.number().int(),
|
|
146
|
+
error_type: DependencyFindingErrorType,
|
|
147
|
+
error_detail: z.string().nullable().optional(),
|
|
148
|
+
source_entity_type: DependencyErrorSourceType.nullable().optional(),
|
|
149
|
+
source_entity_id: z.number().int().nullable().optional()
|
|
150
|
+
}).loose();
|
|
151
|
+
const BreakingSource = DependencyNode.extend({ dependents_errors: z.array(DependencyFindingError).nullable().optional() });
|
|
152
|
+
const BreakingSourceCompact = DependencyNodeCompact.extend({ dependents_errors: BreakingSource.shape.dependents_errors });
|
|
153
|
+
const DependencyEdge = z.object({
|
|
154
|
+
from_entity_type: DependencyType,
|
|
155
|
+
from_entity_id: z.number().int(),
|
|
156
|
+
to_entity_type: DependencyType,
|
|
157
|
+
to_entity_id: z.number().int()
|
|
158
|
+
}).loose();
|
|
159
|
+
const DependencyGraph = z.object({
|
|
160
|
+
nodes: z.array(DependencyNode),
|
|
161
|
+
edges: z.array(DependencyEdge)
|
|
162
|
+
}).loose();
|
|
163
|
+
const DependencyGraphCompact = DependencyGraph.pick({ edges: true }).strip().extend({ nodes: z.array(DependencyNodeCompact) });
|
|
164
|
+
//#endregion
|
|
165
|
+
export { DependencyEntityCompact as a, DependencyGraphCompact as c, DependencyNodeCompact as d, DependencyType as f, DependencyEntity as i, DependencyItemsSortColumn as l, BreakingSourceCompact as n, DependencyEntityData as o, DependentsSortColumn as p, DependencyEdge as r, DependencyGraph as s, BreakingSource as t, DependencyNode as u };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { _ as MALFORMED_CELL, v as formatScalar } from "./cli.mjs";
|
|
2
|
+
import { a as DependencyEntityCompact, c as DependencyGraphCompact, d as DependencyNodeCompact, n as BreakingSourceCompact, o as DependencyEntityData, r as DependencyEdge } from "./dependency-DKSjKT8P.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region src/output/views/dependency.ts
|
|
5
|
+
const DependentsCount = DependencyNodeCompact.shape.dependents_count;
|
|
6
|
+
const DependentsErrors = BreakingSourceCompact.shape.dependents_errors;
|
|
7
|
+
const GraphNodes = z.array(DependencyNodeCompact);
|
|
8
|
+
const GraphEdges = z.array(DependencyEdge);
|
|
9
|
+
const GRAPH_ITEM_SEPARATOR = "; ";
|
|
10
|
+
function formatEntityName(value) {
|
|
11
|
+
const parsed = DependencyEntityData.safeParse(value);
|
|
12
|
+
if (!parsed.success) return MALFORMED_CELL;
|
|
13
|
+
return formatScalar(parsed.data.display_name ?? parsed.data.name);
|
|
14
|
+
}
|
|
15
|
+
function entityLocation({ type, data }) {
|
|
16
|
+
switch (type) {
|
|
17
|
+
case "card": return (data.dashboard ?? data.document ?? data.collection)?.name ?? null;
|
|
18
|
+
case "table": return data.db?.name ?? null;
|
|
19
|
+
case "segment":
|
|
20
|
+
case "measure": return data.table?.display_name ?? null;
|
|
21
|
+
case "snippet":
|
|
22
|
+
case "dashboard":
|
|
23
|
+
case "document": return data.collection?.name ?? null;
|
|
24
|
+
case "transform":
|
|
25
|
+
case "sandbox": return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function formatDependentsCount(value) {
|
|
29
|
+
const parsed = DependentsCount.safeParse(value);
|
|
30
|
+
if (!parsed.success) return MALFORMED_CELL;
|
|
31
|
+
if (parsed.data === null) return "";
|
|
32
|
+
return Object.entries(parsed.data).map(([usage, count]) => `${usage}: ${count}`).join(", ");
|
|
33
|
+
}
|
|
34
|
+
function formatDependentsErrors(value) {
|
|
35
|
+
const parsed = DependentsErrors.safeParse(value);
|
|
36
|
+
if (!parsed.success) return MALFORMED_CELL;
|
|
37
|
+
if (parsed.data === null || parsed.data === void 0) return "";
|
|
38
|
+
return parsed.data.map(formatFindingError).join("; ");
|
|
39
|
+
}
|
|
40
|
+
function formatFindingError(error) {
|
|
41
|
+
return `${error.analyzed_entity_type} ${error.analyzed_entity_id}: ${error.error_type}`;
|
|
42
|
+
}
|
|
43
|
+
function formatGraphNodes(value) {
|
|
44
|
+
const parsed = GraphNodes.safeParse(value);
|
|
45
|
+
if (!parsed.success) return MALFORMED_CELL;
|
|
46
|
+
return parsed.data.map((node) => `${node.type} ${node.id} ${formatEntityName(node.data)}`.trimEnd()).join(GRAPH_ITEM_SEPARATOR);
|
|
47
|
+
}
|
|
48
|
+
function formatGraphEdges(value) {
|
|
49
|
+
const parsed = GraphEdges.safeParse(value);
|
|
50
|
+
if (!parsed.success) return MALFORMED_CELL;
|
|
51
|
+
return parsed.data.map((edge) => `${edge.from_entity_type} ${edge.from_entity_id} -> ${edge.to_entity_type} ${edge.to_entity_id}`).join(GRAPH_ITEM_SEPARATOR);
|
|
52
|
+
}
|
|
53
|
+
const entityColumns = [
|
|
54
|
+
{
|
|
55
|
+
key: "id",
|
|
56
|
+
label: "ID"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
key: "type",
|
|
60
|
+
label: "Type"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
key: "data",
|
|
64
|
+
label: "Name",
|
|
65
|
+
format: formatEntityName
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
key: "data",
|
|
69
|
+
label: "Location",
|
|
70
|
+
value: entityLocation
|
|
71
|
+
}
|
|
72
|
+
];
|
|
73
|
+
const dependentsCountColumn = {
|
|
74
|
+
key: "dependents_count",
|
|
75
|
+
label: "Dependents",
|
|
76
|
+
format: formatDependentsCount
|
|
77
|
+
};
|
|
78
|
+
const dependencyEntityView = {
|
|
79
|
+
compactPick: DependencyEntityCompact,
|
|
80
|
+
tableColumns: entityColumns
|
|
81
|
+
};
|
|
82
|
+
const dependencyNodeView = {
|
|
83
|
+
compactPick: DependencyNodeCompact,
|
|
84
|
+
tableColumns: [...entityColumns, dependentsCountColumn]
|
|
85
|
+
};
|
|
86
|
+
const breakingSourceView = {
|
|
87
|
+
compactPick: BreakingSourceCompact,
|
|
88
|
+
tableColumns: [
|
|
89
|
+
...entityColumns,
|
|
90
|
+
dependentsCountColumn,
|
|
91
|
+
{
|
|
92
|
+
key: "dependents_errors",
|
|
93
|
+
label: "Errors",
|
|
94
|
+
format: formatDependentsErrors
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
};
|
|
98
|
+
const dependencyGraphView = {
|
|
99
|
+
compactPick: DependencyGraphCompact,
|
|
100
|
+
tableColumns: [{
|
|
101
|
+
key: "nodes",
|
|
102
|
+
label: "Nodes",
|
|
103
|
+
format: formatGraphNodes
|
|
104
|
+
}, {
|
|
105
|
+
key: "edges",
|
|
106
|
+
label: "Edges",
|
|
107
|
+
format: formatGraphEdges
|
|
108
|
+
}]
|
|
109
|
+
};
|
|
110
|
+
//#endregion
|
|
111
|
+
export { dependencyNodeView as i, dependencyEntityView as n, dependencyGraphView as r, breakingSourceView as t };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-BW09NysN.mjs";
|
|
4
|
+
import { n as windowList } from "./window-CI_QD04s.mjs";
|
|
5
|
+
import { d as DependencyNodeCompact } from "./dependency-DKSjKT8P.mjs";
|
|
6
|
+
import { t as parseOptionalText } from "./parse-text-T0lTXzTZ.mjs";
|
|
7
|
+
import { i as dependencyNodeView } from "./dependency-DSxKm9oS.mjs";
|
|
8
|
+
import { i as readDependentFilters, r as queryFlag, t as dependentFilterFlags } from "./filter-flags-BYcbB85j.mjs";
|
|
9
|
+
import { n as parseDependencyType, t as entityArgs } from "./entity-CA4zfRt4.mjs";
|
|
10
|
+
//#region src/commands/dependency/dependents.ts
|
|
11
|
+
const DependencyDependentsListEnvelope = listEnvelopeSchema(DependencyNodeCompact);
|
|
12
|
+
var dependents_default = defineMetabaseCommand({
|
|
13
|
+
meta: {
|
|
14
|
+
name: "dependents",
|
|
15
|
+
description: "List the entities that depend directly on an entity"
|
|
16
|
+
},
|
|
17
|
+
details: "Each row is a dependent with its own `dependents_count` by kind, so a chain can be followed one hop at a time. `--broken` keeps only the dependents whose query analysis failed, whatever the cause, and each row's `dependents_count` then counts only its broken dependents. The server sorts and filters; the window is applied here.",
|
|
18
|
+
requires: ["dependency.dependents"],
|
|
19
|
+
args: {
|
|
20
|
+
...outputFlags,
|
|
21
|
+
...listFlags,
|
|
22
|
+
...profileFlag,
|
|
23
|
+
...connectionFlags,
|
|
24
|
+
...entityArgs,
|
|
25
|
+
...dependentFilterFlags,
|
|
26
|
+
...queryFlag,
|
|
27
|
+
broken: {
|
|
28
|
+
type: "boolean",
|
|
29
|
+
description: "Only the dependents whose query analysis failed, whatever the cause"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
outputSchema: DependencyDependentsListEnvelope,
|
|
33
|
+
examples: [
|
|
34
|
+
"mb dependency dependents table 12",
|
|
35
|
+
"mb dependency dependents card 1 --dependent-types card,dashboard --json",
|
|
36
|
+
"mb dependency dependents table 12 --broken --json",
|
|
37
|
+
"mb dependency dependents card 1 --sort-column view-count --sort-direction desc"
|
|
38
|
+
],
|
|
39
|
+
async run({ args, ctx, getClient }) {
|
|
40
|
+
const type = parseDependencyType(args.type);
|
|
41
|
+
const id = parseId(args.id);
|
|
42
|
+
const filters = readDependentFilters(args);
|
|
43
|
+
const { data } = await (await getClient()).dependency.dependents(type, id, {
|
|
44
|
+
...filters,
|
|
45
|
+
broken: args.broken ? true : void 0,
|
|
46
|
+
query: parseOptionalText(args.query, "--query")
|
|
47
|
+
});
|
|
48
|
+
renderList(windowList(data, ctx.range), dependencyNodeView, ctx);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
//#endregion
|
|
52
|
+
export { dependents_default as default };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { n as windowList } from "./window-
|
|
4
|
-
import { r as SyncDirtyItemCompact } from "./git-sync-
|
|
5
|
-
import {
|
|
1
|
+
import { G as listFlags, H as connectionFlags, J as profileFlag, X as listEnvelopeSchema, d as renderList, q as outputFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CZ5zh32z.mjs";
|
|
3
|
+
import { n as windowList } from "./window-CI_QD04s.mjs";
|
|
4
|
+
import { r as SyncDirtyItemCompact } from "./git-sync-COokpYgc.mjs";
|
|
5
|
+
import { r as syncDirtyItemView } from "./git-sync-DspFahwV.mjs";
|
|
6
6
|
//#region src/commands/git-sync/dirty.ts
|
|
7
7
|
const SyncDirtyListEnvelope = listEnvelopeSchema(SyncDirtyItemCompact);
|
|
8
8
|
var dirty_default = defineMetabaseCommand({
|