@metabase/cli 0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-collection-B_-eMU_k.mjs → add-collection-CC6KSwjX.mjs} +5 -5
- package/dist/{alert-Dalin_DD.mjs → alert-Dt6La9tK.mjs} +7 -7
- package/dist/{alerts-DpBgrjPI.mjs → alerts-ClKnJqgB.mjs} +6 -6
- package/dist/{append-C1JNVALm.mjs → append-pnaQWP_A.mjs} +4 -4
- package/dist/{archive-B51prFgS.mjs → archive-By1pLYtO.mjs} +3 -3
- package/dist/{archive-CwITzj_j.mjs → archive-CLu2TGW5.mjs} +5 -5
- package/dist/{archive-52ZHbFDm2.mjs → archive-COP9joWU.mjs} +4 -4
- package/dist/{archive-cAdUa1-2.mjs → archive-CSnBFcQ_.mjs} +3 -3
- package/dist/{archive-DA3OiLEE.mjs → archive-Ct1eyolN.mjs} +3 -3
- package/dist/{archive-CdKf_Eqq.mjs → archive-D7nAQcCz.mjs} +3 -3
- package/dist/{archive-CISXgZAI.mjs → archive-DEDA48w3.mjs} +5 -5
- package/dist/{archive-DVHxeDKS.mjs → archive-DJAsSzCz.mjs} +5 -5
- package/dist/{archive-BkITQyWW.mjs → archive-DtabbPUk.mjs} +4 -4
- package/dist/{archive-DckxlWBt.mjs → archive-YNpa8daf.mjs} +3 -3
- package/dist/{archive-CicPYX27.mjs → archive-ewitrKdx.mjs} +5 -5
- package/dist/{auth-A96JOCQx.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-CbcwWYL9.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-DpDcVY7M.mjs → cancel-DP03dXBf.mjs} +3 -3
- package/dist/{cancel-task-B4RDvIYb.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-BC0JX8Yg.mjs → cards-Cn2ywFTJ.mjs} +6 -6
- package/dist/cli.mjs +410 -111
- package/dist/{client-ClL6gf7G.mjs → client-ToLiPu9q.mjs} +785 -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-Dv0l-V9K.mjs → collection-namespace-CWW6hZxK.mjs} +2 -2
- package/dist/{content-translation-BXIXL4eW.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-BbjSOTN-.mjs → create-B2tuInV9.mjs} +4 -4
- package/dist/{create-Za1EskpV.mjs → create-B3TKri1E.mjs} +4 -4
- package/dist/{create--fiwuTWc.mjs → create-B4gXKDRr.mjs} +3 -3
- package/dist/create-B63JphYe.mjs +34 -0
- package/dist/{create-NCKHHdov.mjs → create-BH6kLjHS.mjs} +4 -4
- package/dist/{create-Dhai9zAt.mjs → create-BwifyhyL.mjs} +3 -3
- package/dist/{create-DWFJdyIr.mjs → create-Colz5bOO.mjs} +3 -3
- package/dist/{create-BcsVwXgS2.mjs → create-CulUZgN1.mjs} +4 -4
- package/dist/{create-D--Z1S3p2.mjs → create-Cxuqr3kT.mjs} +6 -6
- package/dist/{create-Bryrkb9g.mjs → create-CzW_UTE7.mjs} +6 -6
- package/dist/{create-kZIIEN2Y.mjs → create-DNR8RMvV.mjs} +6 -6
- package/dist/{create-DmN2gFc4.mjs → create-DSHeoV7e.mjs} +4 -4
- package/dist/{create-BVNhtAgF.mjs → create-DWbW2WSc.mjs} +6 -6
- package/dist/{create-CHr8MPPq.mjs → create-Dx8nfjGs.mjs} +3 -3
- package/dist/{create-B9qXQ_wV.mjs → create-XGomrTz5.mjs} +5 -5
- package/dist/{create-branch-CseVn3lp.mjs → create-branch-DxL7KUZp.mjs} +4 -4
- package/dist/{create-YetX69Re.mjs → create-g1f2yJ4s.mjs} +3 -3
- package/dist/{csv-DNzesu8y.mjs → csv-C6TEfLMi.mjs} +4 -4
- package/dist/{current-task-DRTKZcP9.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-BDijt81U.mjs → db-BFSeETMO.mjs} +7 -7
- package/dist/{delete-Dc8E5YwZ.mjs → delete-BUKgSJhh.mjs} +4 -4
- package/dist/{delete-BxjJ66BS.mjs → delete-CPBByycV.mjs} +4 -4
- package/dist/{delete-wFsy80db.mjs → delete-Cucqn4-V.mjs} +4 -4
- package/dist/{delete--15it-A8.mjs → delete-D79TlpcE.mjs} +4 -4
- package/dist/delete-DZJxBmdU.mjs +44 -0
- package/dist/{delete-BudvZkvK.mjs → delete-DndykJn2.mjs} +4 -4
- package/dist/delete-runtime-BbmRg_in.mjs +55 -0
- package/dist/{delete-table-5AQpn8OB.mjs → delete-table-CbsWcjh5.mjs} +4 -4
- package/dist/{dependencies-C1ogC3BV.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-CSLDYO-K.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-Ddap1OAo.mjs → download-DluF-vnU.mjs} +2 -2
- package/dist/{eid-HnrWhPoe.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-CXqetjcS.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-DxHxuxwO.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-eJilYnHk.mjs → get-B8DUMrCw.mjs} +5 -5
- package/dist/{get-C3cuZNeW.mjs → get-BGqvoGQM.mjs} +3 -3
- package/dist/{get-DmKtPNOy.mjs → get-BSUsfysk.mjs} +3 -3
- package/dist/{get-DW7mCaGe.mjs → get-BXsLkoit.mjs} +5 -5
- package/dist/{get-Dtre5jzh.mjs → get-BXssHyJ1.mjs} +5 -5
- package/dist/get-Bct52yPw.mjs +36 -0
- package/dist/{get-BiPclcIP.mjs → get-Besqwy32.mjs} +3 -3
- package/dist/{get-BcoJ9Aha.mjs → get-BfSX-OeS.mjs} +3 -3
- package/dist/{get-BF2vdF3W.mjs → get-Biy4gOzu2.mjs} +3 -3
- package/dist/{get-C_tdSMwW2.mjs → get-CYIeiTZ9.mjs} +4 -4
- package/dist/{get-b0CoPz5B.mjs → get-CaEiQnSw.mjs} +4 -4
- package/dist/{get-CxUQyhte.mjs → get-Cl81y0Md.mjs} +5 -5
- package/dist/{get-B2pj2q3X.mjs → get-D1NjMXAH.mjs} +4 -4
- package/dist/{get-D_x-ENFe.mjs → get-D2cPuOPR.mjs} +5 -5
- package/dist/{get-DjlQhgD4.mjs → get-DITlshJH.mjs} +3 -3
- package/dist/{get-CE9_4Q7E.mjs → get-DLyg6Al9.mjs} +3 -3
- package/dist/{get-CDnmpfHQ.mjs → get-DQZfaVNq.mjs} +4 -4
- package/dist/{get-BGLvyOO3.mjs → get-DtBqoGTa.mjs} +5 -5
- package/dist/{get-H6kInHIx.mjs → get-_ik_5_lQ.mjs} +5 -5
- package/dist/{get-run-BE1HtJDW.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-Cj1KhBOT.mjs → has-remote-changes-B8MmN6yh.mjs} +4 -4
- package/dist/{import-DLb9VN4l.mjs → import-Bhq15KgP.mjs} +19 -8
- package/dist/{input-D5tQEfqN.mjs → input-D8qW-KtR.mjs} +6 -2
- package/dist/{is-dirty-BxtgV2xF.mjs → is-dirty-CAsVuVx8.mjs} +2 -2
- package/dist/{items-DLUYc5-z.mjs → items-BZJomiDE.mjs} +8 -8
- package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
- package/dist/{library-BNSxXOpc.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-BUz6KOfw.mjs → list-B2uUl26x.mjs} +6 -6
- package/dist/{list-CERbeLbQ.mjs → list-B4luDSYj.mjs} +6 -6
- package/dist/{list-jhQSgh6i.mjs → list-B8ND9t2h.mjs} +3 -3
- package/dist/{list-M8J10Ozk.mjs → list-BT5t8ZOl.mjs} +4 -4
- package/dist/{list-Dat8QNcf.mjs → list-BT7xiUQe.mjs} +3 -3
- package/dist/{list-cIMww2Me.mjs → list-BWFCv_zk.mjs} +5 -5
- package/dist/{list-B1soS8QW.mjs → list-BtZVe1Nq.mjs} +6 -6
- package/dist/{list-C5mS_ehX.mjs → list-BwdSG-P5.mjs} +5 -5
- package/dist/{list-BQnOEB3W.mjs → list-C-A-2HFq.mjs} +3 -3
- package/dist/list-C9x--9Jq.mjs +101 -0
- package/dist/{list-CX9qZ-bx.mjs → list-CCdXig7b.mjs} +4 -4
- package/dist/{list-Sd7jGZoX.mjs → list-CJDFoOHb.mjs} +3 -3
- package/dist/{list-CzRzCbCY.mjs → list-CLFu3mQB.mjs} +3 -3
- package/dist/{list-CBLxhaNZ.mjs → list-Cd40Kr0R.mjs} +3 -3
- package/dist/{list-COLpwXW4.mjs → list-Cj_mTxbY.mjs} +4 -4
- package/dist/{list-CQbiSx26.mjs → list-CtS50R7m.mjs} +5 -5
- package/dist/{list-CehE6KBV.mjs → list-CvZyTwmV.mjs} +5 -5
- package/dist/list-DcnNlYQA.mjs +35 -0
- package/dist/{list-BcP1DTJH.mjs → list-DtgbtE3_.mjs} +3 -3
- package/dist/{login-BfLqBfCd.mjs → login-Bi_nGMJ9.mjs} +6 -6
- package/dist/{logout-BpRXB3Ze.mjs → logout-CiHQJWTu.mjs} +2 -2
- package/dist/{measure-Ds8O5Evr.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-DhrkLXoN.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-_GHFrTLx.mjs → path-K6LPLYPb.mjs} +4 -4
- package/dist/{poll-KLl4Eq8Y.mjs → poll-Dz4tUm2f.mjs} +2 -2
- package/dist/{preflight-BpYtF0IU.mjs → preflight-CX6cqB90.mjs} +3 -3
- package/dist/{process-CLtOWKBn.mjs → process-D0HdqZ3r.mjs} +1 -1
- package/dist/{publish-D-7Zlmuk.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-B1CZztxs.mjs → query-DmvkyDfo.mjs} +14 -33
- package/dist/remapping-CPAvDKHV.mjs +53 -0
- package/dist/{remove-collection-C4saCFxz.mjs → remove-collection-Bg-sNX3U.mjs} +5 -5
- package/dist/{render-6O_eF-P1.mjs → render-BSfDD6ip.mjs} +2 -2
- package/dist/{replace-BuR4f2Ai.mjs → replace-RCHeZLUT.mjs} +4 -4
- package/dist/{rescan-values-CNOiiWQ5.mjs → rescan-values-CpDGYZvf.mjs} +5 -5
- package/dist/rescan-values-PeMnpaFY.mjs +32 -0
- package/dist/{run-DijA_BXt.mjs → run-CaQ7kubO.mjs} +3 -3
- package/dist/{run-QEUbWNm7.mjs → run-DkRkZRgf.mjs} +7 -7
- package/dist/{runs-BSlhVeDO.mjs → runs-BDjoVJ0P.mjs} +5 -5
- package/dist/{runtime-Dtb93zKy.mjs → runtime-CZ5zh32z.mjs} +21 -82
- package/dist/{schema-tables-BE3rEb6I.mjs → schema-tables-C2qjLcPq.mjs} +6 -6
- package/dist/{schemas-yDjBiwlH.mjs → schemas-D8hfNduk.mjs} +4 -4
- package/dist/search-BrQQuNmh.mjs +131 -0
- package/dist/search-CnTXKJgx.mjs +85 -0
- package/dist/{segment-Cm6zQjJW.mjs → segment-Bi6eqj3e.mjs} +6 -6
- package/dist/{send-kC8oerkT.mjs → send-CAjgVNlA.mjs} +3 -3
- package/dist/{set-tFhPkxrL.mjs → set-BXTkYWid.mjs} +4 -4
- package/dist/{set-active-lDKhAlij.mjs → set-active-CBQVCePU.mjs} +3 -3
- package/dist/set-sensitivity-D39kGTob.mjs +57 -0
- package/dist/{setting-DrJXCaFE.mjs → setting-CPkvkc4H.mjs} +4 -4
- package/dist/{setup-BWY9M0iR.mjs → setup-Be3xDXHi.mjs} +3 -3
- package/dist/{signal-Csom0mt5.mjs → signal-CxWeLszu.mjs} +1 -1
- package/dist/{skill-list-CCes8pKe.mjs → skill-list-CBGq30sI.mjs} +2 -2
- package/dist/{skills-DE9ej5Rg.mjs → skills-CJ9eXouJ.mjs} +2 -2
- package/dist/{skills-DPRN2384.mjs → skills-DyiLycMY.mjs} +3 -3
- package/dist/snippet-QirK70R_.mjs +19 -0
- package/dist/{stash-C9oDvQ9P.mjs → stash-BVN3s5N_.mjs} +6 -6
- package/dist/{status-CkpujA26.mjs → status-BtbMmIWo.mjs} +7 -7
- package/dist/{status-DSdXmNC3.mjs → status-CxP6w3aL.mjs} +3 -3
- package/dist/{subscription-DKOKoHRG.mjs → subscription-Dr-YHARg.mjs} +6 -6
- package/dist/{subscriptions-C5SyJL4B.mjs → subscriptions-8tM8TTeQ.mjs} +6 -6
- package/dist/{summary-DTPgXsc0.mjs → summary-DKx6ptQe.mjs} +5 -5
- package/dist/sync-schema-B8RY0Ra4.mjs +32 -0
- package/dist/{sync-schema-DKKkNSR7.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-n4Lzet7l.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-D6NXqWaX.mjs → transform-tag-nTb0Ivpj.mjs} +5 -5
- package/dist/{transforms-O4NtXqFz.mjs → transforms-BSsAfwAg.mjs} +5 -5
- package/dist/tree-lMvw1jnZ.mjs +34 -0
- package/dist/{unpublish-DvWefKJi.mjs → unpublish-CYFDd828.mjs} +3 -3
- package/dist/unreferenced-8Xdq76Kw.mjs +36 -0
- package/dist/{update-AJ2JmwDl.mjs → update-6P_GYCLT.mjs} +5 -5
- package/dist/{update-76nzOc71.mjs → update-B28EJzrx.mjs} +13 -8
- package/dist/{update-To6A1Ugu.mjs → update-BDunZa7G.mjs} +4 -4
- package/dist/{update-2KIpYgyj.mjs → update-BT2yNB_g.mjs} +6 -6
- package/dist/{update-DmgRIp7o.mjs → update-BnMUSFYZ.mjs} +4 -4
- package/dist/update-BwrYeKso.mjs +41 -0
- package/dist/{update-DOdcflLH.mjs → update-C7DEMiu-.mjs} +7 -7
- package/dist/{update-CGJvIS-l.mjs → update-CITzAFG8.mjs} +4 -4
- package/dist/update-CLl8tE20.mjs +181 -0
- package/dist/{update-BB6Go_RX.mjs → update-CM5uuhjB.mjs} +4 -4
- package/dist/{update-xEegxIyH.mjs → update-CQXcsvaa.mjs} +5 -5
- package/dist/{update-DV54H3L5.mjs → update-Cs2zv_L2.mjs} +7 -7
- package/dist/{update-Bah7N8QX.mjs → update-D--Fw7-_.mjs} +5 -5
- package/dist/{update-H_fdjugs.mjs → update-D9p0N8ky.mjs} +4 -4
- package/dist/{update-7oKvP1HC.mjs → update-DAzRx0of.mjs} +5 -5
- package/dist/{update-DXmZuJho.mjs → update-D_DCOOAB.mjs} +6 -6
- package/dist/{update-D7dG7H-z.mjs → update-_sYM1GuU.mjs} +7 -7
- package/dist/{update-dashcard-DjT5QOkL.mjs → update-dashcard-VNnIqHDI.mjs} +6 -6
- package/dist/{upgrade-CuJx9fX4.mjs → upgrade-Tj_reACv.mjs} +4 -4
- package/dist/upload-BKxOpSz3.mjs +13 -0
- package/dist/{upload-DOO94rCQ.mjs → upload-C2fhpKkP.mjs} +2 -2
- package/dist/{upload-CboARPZm.mjs → upload-Dg91ldGg.mjs} +3 -3
- package/dist/{uuid-InwZlrpQ.mjs → uuid-Blpv_e0S.mjs} +2 -2
- package/dist/{validate-D6-Vg_kn.mjs → validate-D7e110oU.mjs} +1 -1
- package/dist/{validate-query-B90KYPQr.mjs → validate-query-C7LuKiUT.mjs} +2 -2
- package/dist/{values-CsZLk1Ls.mjs → values-PonkbYAK.mjs} +5 -5
- package/dist/verify-DixUBbd2.mjs +38 -0
- package/dist/verify-Dv7ER11c.mjs +38 -0
- package/dist/{verify-DrGjZwBM.mjs → verify-Mpb65a5v.mjs} +3 -3
- package/dist/verify-flags-CMpRkMPa.mjs +58 -0
- package/dist/{wait-BmzdarP9.mjs → wait-CaH6XHQV.mjs} +6 -6
- package/dist/{wait-flags-CiJGrTCT.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 +24 -23
- 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/skill-data/transform/SKILL.md +1 -63
- package/dist/body-CshgcV6U.mjs +0 -17
- package/dist/card-CefVYtF7.mjs +0 -24
- package/dist/collection-Be5AHVWP.mjs +0 -20
- package/dist/create-DiJ8bUb-.mjs +0 -34
- package/dist/dashboard-CMw13KXM.mjs +0 -33
- package/dist/database-JtHTqSpq.mjs +0 -26
- package/dist/delete-Bsdwqh7H.mjs +0 -44
- package/dist/delete-runtime-BKEzJn22.mjs +0 -49
- package/dist/document-BGzVip5_.mjs +0 -19
- package/dist/export-IFZdgYZ2.mjs +0 -63
- package/dist/field-BJ6HoLRd.mjs +0 -18
- package/dist/field-fDtIrY6D.mjs +0 -80
- package/dist/get-i0KInCw9.mjs +0 -32
- package/dist/get-jofVjU6e.mjs +0 -31
- package/dist/git-sync-TjX1r_wF.mjs +0 -136
- package/dist/git-sync-xKC1sqC4.mjs +0 -28
- package/dist/list-Cuhf2lKL.mjs +0 -35
- package/dist/list-D-SyhKFw.mjs +0 -34
- package/dist/parse-id-DtM6q9HU.mjs +0 -10
- package/dist/query-CxESKMve.mjs +0 -114
- package/dist/query-result-E4Q-Gra6.mjs +0 -15
- package/dist/run-FmRruANb.mjs +0 -64
- package/dist/search-CR_xNArA.mjs +0 -97
- package/dist/selectors-C-vgMcGK.mjs +0 -35
- package/dist/snippet-DWHTSo9c.mjs +0 -19
- package/dist/sync-task-BtDnTXCP.mjs +0 -38
- package/dist/table-C6h4tIRw.mjs +0 -37
- package/dist/table-I8NXSdUC.mjs +0 -18
- package/dist/timeline-B_ESH-6W.mjs +0 -21
- package/dist/transform-BNuNiH9d.mjs +0 -28
- package/dist/transform-job-B7yc6dfH.mjs +0 -22
- package/dist/transform-test-BjjCQ2xm.mjs +0 -169
- package/dist/transform-test-C1Oqtfb-.mjs +0 -16
- package/dist/transform-test-gzDcbypy.mjs +0 -25
- package/dist/transport-CyVo29u7.mjs +0 -313
- package/dist/tree-CuyF116R.mjs +0 -26
- package/dist/update-l3PyNQKG.mjs +0 -41
- package/dist/upload-2YFFBSln.mjs +0 -13
- package/skill-data/transform-test-plan/SKILL.md +0 -171
- package/skill-data/transform-test-plan/references/checklist.md +0 -81
- package/skill-data/transform-test-plan/references/checks.md +0 -263
|
@@ -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({
|