@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
package/dist/cli.mjs
CHANGED
|
@@ -189,18 +189,283 @@ function toAliasArray(alias) {
|
|
|
189
189
|
if (alias === void 0) return [];
|
|
190
190
|
return Array.isArray(alias) ? alias : [alias];
|
|
191
191
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
const NEGATION_PREFIX = "--no-";
|
|
193
|
+
const INLINE_VALUE = "=";
|
|
194
|
+
const LONG_PREFIX = "--";
|
|
195
|
+
const SHORT_PREFIX = "-";
|
|
196
|
+
const SHORT_FLAG_LENGTH = 2;
|
|
197
|
+
const WORD_SEPARATORS = /* @__PURE__ */ new Set([
|
|
198
|
+
"-",
|
|
199
|
+
"_",
|
|
200
|
+
"/",
|
|
201
|
+
"."
|
|
202
|
+
]);
|
|
203
|
+
const NEGATIVE_NUMBER = /^-\.?\d/;
|
|
204
|
+
const DIGIT = /\d/;
|
|
205
|
+
function flagSpellings(argsDef) {
|
|
206
|
+
const spellings = /* @__PURE__ */ new Map();
|
|
198
207
|
for (const [key, def] of Object.entries(argsDef)) {
|
|
199
|
-
if (def.type
|
|
200
|
-
|
|
201
|
-
|
|
208
|
+
if (def.type === "positional") continue;
|
|
209
|
+
const takes = flagTakes(def);
|
|
210
|
+
const aliases = "alias" in def ? toAliasArray(def.alias) : [];
|
|
211
|
+
const words = splitWords(key);
|
|
212
|
+
for (const name of /* @__PURE__ */ new Set([
|
|
213
|
+
key,
|
|
214
|
+
camelCase(words),
|
|
215
|
+
kebabCase(words),
|
|
216
|
+
...aliases
|
|
217
|
+
])) {
|
|
218
|
+
spellings.set(`${LONG_PREFIX}${name}`, {
|
|
219
|
+
key,
|
|
220
|
+
negated: false,
|
|
221
|
+
takes
|
|
222
|
+
});
|
|
223
|
+
spellings.set(`${NEGATION_PREFIX}${name}`, {
|
|
224
|
+
key,
|
|
225
|
+
negated: true,
|
|
226
|
+
takes
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
for (const letter of aliases.filter((alias) => alias.length === 1)) spellings.set(`${SHORT_PREFIX}${letter}`, {
|
|
230
|
+
key,
|
|
231
|
+
negated: false,
|
|
232
|
+
takes
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
return spellings;
|
|
236
|
+
}
|
|
237
|
+
function flagTakes(def) {
|
|
238
|
+
if (def.type === "string" && "list" in def && def.list === true) return "list";
|
|
239
|
+
return def.type === "string" || def.type === "enum" ? "value" : "nothing";
|
|
240
|
+
}
|
|
241
|
+
function parseFlagToken(token, spellings) {
|
|
242
|
+
const equals = token.indexOf(INLINE_VALUE);
|
|
243
|
+
const name = equals === -1 ? token : token.slice(0, equals);
|
|
244
|
+
const inlineValue = equals === -1 ? null : readInlineValue(token, name);
|
|
245
|
+
const flag = spellings.get(name);
|
|
246
|
+
if (flag !== void 0) return {
|
|
247
|
+
name,
|
|
248
|
+
flag: flag.negated && inlineValue !== null ? null : flag,
|
|
249
|
+
inlineValue
|
|
250
|
+
};
|
|
251
|
+
const short = name.slice(0, SHORT_FLAG_LENGTH);
|
|
252
|
+
const shortFlag = name.startsWith(LONG_PREFIX) ? void 0 : spellings.get(short);
|
|
253
|
+
if (shortFlag !== void 0 && shortFlag.takes !== "nothing") return {
|
|
254
|
+
name: short,
|
|
255
|
+
flag: shortFlag,
|
|
256
|
+
inlineValue: readInlineValue(token, short)
|
|
257
|
+
};
|
|
258
|
+
return {
|
|
259
|
+
name,
|
|
260
|
+
flag: null,
|
|
261
|
+
inlineValue
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function readInlineValue(token, name) {
|
|
265
|
+
const start = name.startsWith(LONG_PREFIX) ? name.length + 1 : name.length;
|
|
266
|
+
return token.slice(start);
|
|
267
|
+
}
|
|
268
|
+
function isFlagToken(token) {
|
|
269
|
+
return token.startsWith(SHORT_PREFIX) && token !== SHORT_PREFIX && !NEGATIVE_NUMBER.test(token);
|
|
270
|
+
}
|
|
271
|
+
function isNegativeNumber(token) {
|
|
272
|
+
return NEGATIVE_NUMBER.test(token);
|
|
273
|
+
}
|
|
274
|
+
function* readArgv(rawArgs, spellings, start = 0) {
|
|
275
|
+
let index = start;
|
|
276
|
+
while (index < rawArgs.length) {
|
|
277
|
+
const token = rawArgs[index];
|
|
278
|
+
if (token === void 0) return;
|
|
279
|
+
if (token === "--") {
|
|
280
|
+
yield {
|
|
281
|
+
kind: "separator",
|
|
282
|
+
index
|
|
283
|
+
};
|
|
284
|
+
for (const [offset, rest] of rawArgs.slice(index + 1).entries()) yield {
|
|
285
|
+
kind: "positional",
|
|
286
|
+
index: index + 1 + offset,
|
|
287
|
+
token: rest
|
|
288
|
+
};
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (!isFlagToken(token)) {
|
|
292
|
+
yield {
|
|
293
|
+
kind: "positional",
|
|
294
|
+
index,
|
|
295
|
+
token
|
|
296
|
+
};
|
|
297
|
+
index += 1;
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
const item = readFlag(rawArgs, index, parseFlagToken(token, spellings));
|
|
301
|
+
yield item;
|
|
302
|
+
index = item.end;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
function readFlag(rawArgs, index, parsed) {
|
|
306
|
+
const { flag } = parsed;
|
|
307
|
+
const consumesNext = flag !== null && flag.takes !== "nothing" && !flag.negated && parsed.inlineValue === null;
|
|
308
|
+
const next = consumesNext ? rawArgs[index + 1] : void 0;
|
|
309
|
+
const end = next === void 0 ? index + 1 : index + 2;
|
|
310
|
+
const value = consumesNext ? next ?? null : parsed.inlineValue;
|
|
311
|
+
return {
|
|
312
|
+
kind: "flag",
|
|
313
|
+
index,
|
|
314
|
+
...parsed,
|
|
315
|
+
consumesNext,
|
|
316
|
+
value,
|
|
317
|
+
end
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
function splitWords(name) {
|
|
321
|
+
const words = [];
|
|
322
|
+
let word = "";
|
|
323
|
+
let previousUpper = null;
|
|
324
|
+
for (const char of name) {
|
|
325
|
+
if (WORD_SEPARATORS.has(char)) {
|
|
326
|
+
words.push(word);
|
|
327
|
+
word = "";
|
|
328
|
+
previousUpper = null;
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
const upper = DIGIT.test(char) ? null : char !== char.toLowerCase();
|
|
332
|
+
if (previousUpper === false && upper === true) {
|
|
333
|
+
words.push(word);
|
|
334
|
+
word = char;
|
|
335
|
+
} else if (previousUpper === true && upper === false && word.length > 1) {
|
|
336
|
+
words.push(word.slice(0, -1));
|
|
337
|
+
word = `${word.slice(-1)}${char}`;
|
|
338
|
+
} else word += char;
|
|
339
|
+
previousUpper = upper;
|
|
202
340
|
}
|
|
203
|
-
|
|
341
|
+
words.push(word);
|
|
342
|
+
return words;
|
|
343
|
+
}
|
|
344
|
+
function camelCase(words) {
|
|
345
|
+
const pascal = words.map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join("");
|
|
346
|
+
return `${pascal.charAt(0).toLowerCase()}${pascal.slice(1)}`;
|
|
347
|
+
}
|
|
348
|
+
function kebabCase(words) {
|
|
349
|
+
return words.map((word) => word.toLowerCase()).join("-");
|
|
350
|
+
}
|
|
351
|
+
function parseCsv(raw) {
|
|
352
|
+
return raw.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
|
|
353
|
+
}
|
|
354
|
+
function parseEnumCsv(raw, schema, flagName) {
|
|
355
|
+
if (raw === void 0) return;
|
|
356
|
+
const allowed = Object.values(schema.enum).join(", ");
|
|
357
|
+
const parts = parseCsv(raw);
|
|
358
|
+
if (parts.length === 0) throw new ConfigError(`invalid ${flagName} value: "${raw}" (expected one of: ${allowed})`);
|
|
359
|
+
const accepted = [];
|
|
360
|
+
const rejected = [];
|
|
361
|
+
for (const part of parts) {
|
|
362
|
+
const result = schema.safeParse(part);
|
|
363
|
+
if (result.success) accepted.push(result.data);
|
|
364
|
+
else rejected.push(part);
|
|
365
|
+
}
|
|
366
|
+
if (rejected.length > 0) throw new ConfigError(`invalid ${flagName} value: ${rejected.join(", ")} (expected one of: ${allowed})`);
|
|
367
|
+
return accepted;
|
|
368
|
+
}
|
|
369
|
+
function parseEnum(raw, schema, flagName) {
|
|
370
|
+
if (raw === void 0 || raw === "") return;
|
|
371
|
+
const result = schema.safeParse(raw);
|
|
372
|
+
if (!result.success) throw new ConfigError(`invalid ${flagName} value: "${raw}" (expected one of: ${Object.values(schema.enum).join(", ")})`);
|
|
373
|
+
return result.data;
|
|
374
|
+
}
|
|
375
|
+
//#endregion
|
|
376
|
+
//#region src/commands/argv.ts
|
|
377
|
+
const BUILTIN_FLAGS = [
|
|
378
|
+
"--help",
|
|
379
|
+
"-h",
|
|
380
|
+
"--version",
|
|
381
|
+
"-v"
|
|
382
|
+
];
|
|
383
|
+
const SHELL_SAFE_WORD = /^[\w.,:/@%+=-]+$/;
|
|
384
|
+
function commandSpellings(argsDef) {
|
|
385
|
+
const builtins = BUILTIN_FLAGS.map((flag) => [flag, {
|
|
386
|
+
key: flag,
|
|
387
|
+
negated: false,
|
|
388
|
+
takes: "nothing"
|
|
389
|
+
}]);
|
|
390
|
+
return new Map([...builtins, ...flagSpellings(argsDef)]);
|
|
391
|
+
}
|
|
392
|
+
function separatePositionals(rawArgs, argsDef) {
|
|
393
|
+
const flagTokens = [];
|
|
394
|
+
const positionals = [];
|
|
395
|
+
for (const item of readArgv(rawArgs, commandSpellings(argsDef))) if (item.kind === "flag") flagTokens.push(...rawArgs.slice(item.index, item.end));
|
|
396
|
+
else if (item.kind === "positional") positionals.push(item.token);
|
|
397
|
+
if (!positionals.some(isNegativeNumber)) return [...rawArgs];
|
|
398
|
+
return [
|
|
399
|
+
...flagTokens,
|
|
400
|
+
"--",
|
|
401
|
+
...positionals
|
|
402
|
+
];
|
|
403
|
+
}
|
|
404
|
+
function givenFlagKeys(rawArgs, argsDef) {
|
|
405
|
+
const keys = /* @__PURE__ */ new Set();
|
|
406
|
+
for (const item of readArgv(rawArgs, flagSpellings(argsDef))) if (item.kind === "flag" && item.flag !== null && !item.flag.negated) keys.add(item.flag.key);
|
|
407
|
+
return keys;
|
|
408
|
+
}
|
|
409
|
+
function assertArgv(rawArgs, argsDef) {
|
|
410
|
+
const spellings = commandSpellings(argsDef);
|
|
411
|
+
const valueFlags = [];
|
|
412
|
+
const positionals = [];
|
|
413
|
+
for (const item of readArgv(rawArgs, spellings)) if (item.kind === "positional") positionals.push(item.token);
|
|
414
|
+
else if (item.kind === "flag") {
|
|
415
|
+
const valueFlag = readValueFlag(item, spellings);
|
|
416
|
+
if (valueFlag !== null) valueFlags.push(valueFlag);
|
|
417
|
+
}
|
|
418
|
+
assertEachGivenOnce(valueFlags);
|
|
419
|
+
assertPositionalCount(positionals, argsDef);
|
|
420
|
+
}
|
|
421
|
+
function readValueFlag(item, spellings) {
|
|
422
|
+
const { flag, name } = item;
|
|
423
|
+
if (flag === null) throw new ConfigError(`unknown flag: ${name}`);
|
|
424
|
+
if (flag.takes === "nothing") return null;
|
|
425
|
+
if (flag.negated) throw new ConfigError(`${name}: ${`--${name.slice(5)}`} takes a value, so it cannot be negated`);
|
|
426
|
+
return {
|
|
427
|
+
name,
|
|
428
|
+
flag,
|
|
429
|
+
value: readFlagValue(item, spellings)
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
function assertPositionalCount(positionals, argsDef) {
|
|
433
|
+
const declared = Object.entries(argsDef).filter(([, def]) => def.type === "positional").map(([name]) => `<${name}>`);
|
|
434
|
+
const extra = positionals[declared.length];
|
|
435
|
+
if (extra === void 0) return;
|
|
436
|
+
throw new ConfigError(`unexpected argument: "${extra}" (${declared.length === 0 ? "this command takes no positional arguments" : `this command takes ${declared.join(" ")}; quote an argument that contains spaces`})`);
|
|
437
|
+
}
|
|
438
|
+
function assertEachGivenOnce(valueFlags) {
|
|
439
|
+
const first = /* @__PURE__ */ new Map();
|
|
440
|
+
for (const repeat of valueFlags) {
|
|
441
|
+
const earlier = first.get(repeat.flag.key);
|
|
442
|
+
if (earlier === void 0) {
|
|
443
|
+
first.set(repeat.flag.key, repeat);
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
const also = earlier.name === repeat.name ? "" : ` (also as ${earlier.name})`;
|
|
447
|
+
const joined = joinedSpelling(repeat, valueFlags);
|
|
448
|
+
throw new ConfigError(`${repeat.name} is given more than once${also}; pass it once${joined}`);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
function joinedSpelling(repeat, valueFlags) {
|
|
452
|
+
if (repeat.flag.takes !== "list") return "";
|
|
453
|
+
const joined = valueFlags.filter((valueFlag) => valueFlag.flag.key === repeat.flag.key).map((valueFlag) => valueFlag.value).join(",");
|
|
454
|
+
return `, as --${repeat.flag.key}=${quoteForShell(joined)}`;
|
|
455
|
+
}
|
|
456
|
+
function quoteForShell(value) {
|
|
457
|
+
if (SHELL_SAFE_WORD.test(value)) return value;
|
|
458
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
459
|
+
}
|
|
460
|
+
function readFlagValue(item, spellings) {
|
|
461
|
+
const { name, value, consumesNext } = item;
|
|
462
|
+
if (value === null || consumesNext && value === "--") throw new ConfigError(`${name} needs a value`);
|
|
463
|
+
if (consumesNext && readsAsFlag(value, spellings)) throw new ConfigError(`${name} needs a value, but the flag ${parseFlagToken(value, spellings).name} follows it; write ${name}=<value> for a value that starts with "-"`);
|
|
464
|
+
return value;
|
|
465
|
+
}
|
|
466
|
+
function readsAsFlag(value, spellings) {
|
|
467
|
+
if (!isFlagToken(value)) return false;
|
|
468
|
+
return value.startsWith("--no-") || parseFlagToken(value, spellings).flag !== null;
|
|
204
469
|
}
|
|
205
470
|
//#endregion
|
|
206
471
|
//#region src/output/types.ts
|
|
@@ -231,7 +496,13 @@ function listEnvelopeShape(item) {
|
|
|
231
496
|
}
|
|
232
497
|
//#endregion
|
|
233
498
|
//#region src/commands/flags.ts
|
|
234
|
-
|
|
499
|
+
function listFlag(def) {
|
|
500
|
+
return {
|
|
501
|
+
...def,
|
|
502
|
+
list: true
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
const formatFlags = {
|
|
235
506
|
format: {
|
|
236
507
|
type: "string",
|
|
237
508
|
description: "auto | json | text",
|
|
@@ -240,15 +511,18 @@ const outputFlags = {
|
|
|
240
511
|
json: {
|
|
241
512
|
type: "boolean",
|
|
242
513
|
description: "Shorthand for --format json"
|
|
243
|
-
}
|
|
514
|
+
}
|
|
515
|
+
};
|
|
516
|
+
const outputFlags = {
|
|
517
|
+
...formatFlags,
|
|
244
518
|
full: {
|
|
245
519
|
type: "boolean",
|
|
246
520
|
description: "Return the full object (default: compact)"
|
|
247
521
|
},
|
|
248
|
-
fields: {
|
|
522
|
+
fields: listFlag({
|
|
249
523
|
type: "string",
|
|
250
524
|
description: "Dot-paths, comma separated (mutually exclusive with --full)"
|
|
251
|
-
},
|
|
525
|
+
}),
|
|
252
526
|
maxBytes: {
|
|
253
527
|
type: "string",
|
|
254
528
|
description: "Output size cap; 0 disables",
|
|
@@ -300,50 +574,32 @@ const connectionFlags = {
|
|
|
300
574
|
};
|
|
301
575
|
//#endregion
|
|
302
576
|
//#region src/commands/global-flags.ts
|
|
303
|
-
const
|
|
304
|
-
const NEGATION_PREFIX = "no-";
|
|
305
|
-
const GLOBAL_FLAG_ARGS = {
|
|
577
|
+
const GLOBAL_FLAG_SPELLINGS = flagSpellings({
|
|
306
578
|
...outputFlags,
|
|
307
579
|
...listFlags,
|
|
308
580
|
...profileFlag,
|
|
309
581
|
...connectionFlags
|
|
310
|
-
};
|
|
311
|
-
const GLOBAL_FLAG_NAMES = buildGlobalFlagNames();
|
|
312
|
-
function buildGlobalFlagNames() {
|
|
313
|
-
const names = /* @__PURE__ */ new Set();
|
|
314
|
-
for (const [key, def] of Object.entries(GLOBAL_FLAG_ARGS)) {
|
|
315
|
-
names.add(normalizeFlag(key));
|
|
316
|
-
if ("alias" in def) for (const alias of toAliasArray(def.alias)) names.add(normalizeFlag(alias));
|
|
317
|
-
}
|
|
318
|
-
return names;
|
|
319
|
-
}
|
|
320
|
-
function isGlobalFlag(token) {
|
|
321
|
-
if (!token.startsWith("-") || token === ARGUMENT_SEPARATOR) return false;
|
|
322
|
-
const raw = token.includes("=") ? token.slice(0, token.indexOf("=")) : token;
|
|
323
|
-
const name = normalizeFlag(raw);
|
|
324
|
-
if (GLOBAL_FLAG_NAMES.has(name)) return true;
|
|
325
|
-
const bare = raw.replace(/^-+/, "");
|
|
326
|
-
if (bare.startsWith(NEGATION_PREFIX)) return GLOBAL_FLAG_NAMES.has(normalizeFlag(bare.slice(3)));
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
582
|
+
});
|
|
329
583
|
function hoistGlobalFlags(rawArgs) {
|
|
330
|
-
const
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
584
|
+
const end = leadingGlobalFlagsEnd(rawArgs);
|
|
585
|
+
if (end === 0) return [...rawArgs];
|
|
586
|
+
const leading = rawArgs.slice(0, end);
|
|
587
|
+
const rest = rawArgs.slice(end);
|
|
588
|
+
const separator = rest.indexOf("--");
|
|
589
|
+
if (separator === -1) return [...rest, ...leading];
|
|
590
|
+
return [
|
|
591
|
+
...rest.slice(0, separator),
|
|
592
|
+
...leading,
|
|
593
|
+
...rest.slice(separator)
|
|
594
|
+
];
|
|
595
|
+
}
|
|
596
|
+
function leadingGlobalFlagsEnd(rawArgs) {
|
|
597
|
+
let end = 0;
|
|
598
|
+
for (const item of readArgv(rawArgs, GLOBAL_FLAG_SPELLINGS)) {
|
|
599
|
+
if (item.kind !== "flag" || item.flag === null) return end;
|
|
600
|
+
end = item.end;
|
|
344
601
|
}
|
|
345
|
-
|
|
346
|
-
return [...rawArgs.slice(index), ...leading];
|
|
602
|
+
return end;
|
|
347
603
|
}
|
|
348
604
|
//#endregion
|
|
349
605
|
//#region src/core/system-ca.ts
|
|
@@ -358,7 +614,7 @@ function trustSystemCa() {
|
|
|
358
614
|
//#endregion
|
|
359
615
|
//#region package.json
|
|
360
616
|
var name = "@metabase/cli";
|
|
361
|
-
var version = "0.
|
|
617
|
+
var version = "0.4.0";
|
|
362
618
|
var description = "Metabase CLI";
|
|
363
619
|
//#endregion
|
|
364
620
|
//#region src/runtime/command-augment.ts
|
|
@@ -378,36 +634,38 @@ const main = defineCommand({
|
|
|
378
634
|
description
|
|
379
635
|
},
|
|
380
636
|
subCommands: {
|
|
381
|
-
auth: () => import("./auth-
|
|
382
|
-
db: () => import("./db-
|
|
383
|
-
table: () => import("./table-
|
|
384
|
-
field: () => import("./field-
|
|
385
|
-
upload: () => import("./upload-
|
|
386
|
-
"content-translation": () => import("./content-translation-
|
|
387
|
-
card: () => import("./card-
|
|
388
|
-
dashboard: () => import("./dashboard-
|
|
389
|
-
subscription: () => import("./subscription-
|
|
390
|
-
alert: () => import("./alert-
|
|
391
|
-
collection: () => import("./collection-
|
|
392
|
-
library: () => import("./library-
|
|
393
|
-
document: () => import("./document-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
"transform-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
637
|
+
auth: () => import("./auth-DdLhXCn-.mjs").then((mod) => mod.default),
|
|
638
|
+
db: () => import("./db-BFSeETMO.mjs").then((mod) => mod.default),
|
|
639
|
+
table: () => import("./table-CZnT6d9x.mjs").then((mod) => mod.default),
|
|
640
|
+
field: () => import("./field-BARgq5I9.mjs").then((mod) => mod.default),
|
|
641
|
+
upload: () => import("./upload-BKxOpSz3.mjs").then((mod) => mod.default),
|
|
642
|
+
"content-translation": () => import("./content-translation-C19SqZWp.mjs").then((mod) => mod.default),
|
|
643
|
+
card: () => import("./card-CFd-GUEM.mjs").then((mod) => mod.default),
|
|
644
|
+
dashboard: () => import("./dashboard-AWrXqQ7a.mjs").then((mod) => mod.default),
|
|
645
|
+
subscription: () => import("./subscription-Dr-YHARg.mjs").then((mod) => mod.default),
|
|
646
|
+
alert: () => import("./alert-Dt6La9tK.mjs").then((mod) => mod.default),
|
|
647
|
+
collection: () => import("./collection-BKNShKcY.mjs").then((mod) => mod.default),
|
|
648
|
+
library: () => import("./library-B7wDH-Nc.mjs").then((mod) => mod.default),
|
|
649
|
+
document: () => import("./document-BRaba87v.mjs").then((mod) => mod.default),
|
|
650
|
+
glossary: () => import("./glossary-CWIX8Zh6.mjs").then((mod) => mod.default),
|
|
651
|
+
transform: () => import("./transform-g4-HHzDp.mjs").then((mod) => mod.default),
|
|
652
|
+
"transform-job": () => import("./transform-job-DqBtnTrG.mjs").then((mod) => mod.default),
|
|
653
|
+
"transform-tag": () => import("./transform-tag-nTb0Ivpj.mjs").then((mod) => mod.default),
|
|
654
|
+
setting: () => import("./setting-CPkvkc4H.mjs").then((mod) => mod.default),
|
|
655
|
+
search: () => import("./search-BrQQuNmh.mjs").then((mod) => mod.default),
|
|
656
|
+
"git-sync": () => import("./git-sync-DKcaddkV.mjs").then((mod) => mod.default),
|
|
657
|
+
setup: () => import("./setup-Be3xDXHi.mjs").then((mod) => mod.default),
|
|
658
|
+
snippet: () => import("./snippet-QirK70R_.mjs").then((mod) => mod.default),
|
|
659
|
+
segment: () => import("./segment-Bi6eqj3e.mjs").then((mod) => mod.default),
|
|
660
|
+
measure: () => import("./measure-D2qq5e8f.mjs").then((mod) => mod.default),
|
|
661
|
+
dependency: () => import("./dependency-DBUJwXqv.mjs").then((mod) => mod.default),
|
|
662
|
+
timeline: () => import("./timeline-CUzx6uXi.mjs").then((mod) => mod.default),
|
|
663
|
+
"timeline-event": () => import("./timeline-event-DpNm4dkn.mjs").then((mod) => mod.default),
|
|
664
|
+
eid: () => import("./eid-Dz-mP40j.mjs").then((mod) => mod.default),
|
|
665
|
+
query: () => import("./query-BJXTIDhy.mjs").then((mod) => mod.default),
|
|
666
|
+
uuid: () => import("./uuid-Blpv_e0S.mjs").then((mod) => mod.default),
|
|
667
|
+
upgrade: () => import("./upgrade-Tj_reACv.mjs").then((mod) => mod.default),
|
|
668
|
+
skills: () => import("./skills-DyiLycMY.mjs").then((mod) => mod.default)
|
|
411
669
|
}
|
|
412
670
|
});
|
|
413
671
|
setMetabaseAugment(main, {
|
|
@@ -580,6 +838,18 @@ function jsonByteLength(value) {
|
|
|
580
838
|
function isPlainObject(value) {
|
|
581
839
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
582
840
|
}
|
|
841
|
+
const JAVA_WHITESPACE = " \n\v\f\r \u2028\u2029 ";
|
|
842
|
+
const UNICODE_ESCAPE_DIGITS = 4;
|
|
843
|
+
function unicodeEscape(char) {
|
|
844
|
+
return `\\u${char.charCodeAt(0).toString(16).padStart(UNICODE_ESCAPE_DIGITS, "0")}`;
|
|
845
|
+
}
|
|
846
|
+
const JAVA_WHITESPACE_ESCAPED = [...JAVA_WHITESPACE].map(unicodeEscape).join("");
|
|
847
|
+
/** Matches a string Metabase reads as not blank: one holding a character that is not Java whitespace. */
|
|
848
|
+
const NOT_BLANK = new RegExp(`[^${JAVA_WHITESPACE_ESCAPED}]`);
|
|
849
|
+
/** Whether Metabase reads `value` as blank: empty, or Java whitespace only. */
|
|
850
|
+
function isBlank(value) {
|
|
851
|
+
return !NOT_BLANK.test(value);
|
|
852
|
+
}
|
|
583
853
|
//#endregion
|
|
584
854
|
//#region src/output/projection.ts
|
|
585
855
|
function projectForList(item, view, opts) {
|
|
@@ -672,7 +942,7 @@ function renderRows(head, rows) {
|
|
|
672
942
|
return table.toString();
|
|
673
943
|
}
|
|
674
944
|
function formatCell(row, column) {
|
|
675
|
-
const value = row[column.key];
|
|
945
|
+
const value = column.value === void 0 ? row[column.key] : column.value(row);
|
|
676
946
|
if (column.format !== void 0) return column.format(value);
|
|
677
947
|
return formatScalar(value);
|
|
678
948
|
}
|
|
@@ -880,6 +1150,11 @@ const FEATURE_RULES = {
|
|
|
880
1150
|
since: 63,
|
|
881
1151
|
tokenFeature: "remote_sync"
|
|
882
1152
|
},
|
|
1153
|
+
remoteSyncBranchGuard: { since: 63 },
|
|
1154
|
+
remoteSyncMerge: {
|
|
1155
|
+
since: 63,
|
|
1156
|
+
tokenFeature: "remote_sync"
|
|
1157
|
+
},
|
|
883
1158
|
contentTranslation: {
|
|
884
1159
|
since: 58,
|
|
885
1160
|
tokenFeature: "content_translation"
|
|
@@ -896,6 +1171,10 @@ const FEATURE_RULES = {
|
|
|
896
1171
|
transformJobRunIdIsNumeric: { since: 64 },
|
|
897
1172
|
transformCheckpointReset: { since: 60 },
|
|
898
1173
|
fieldDataSensitivity: { since: 64 },
|
|
1174
|
+
fieldRemappingAppendsDisplayColumns: {
|
|
1175
|
+
since: 58,
|
|
1176
|
+
until: 59
|
|
1177
|
+
},
|
|
899
1178
|
transformDagRuns: { since: 64 },
|
|
900
1179
|
unifiedTransformRuns: { since: 64 },
|
|
901
1180
|
transformTests: {
|
|
@@ -907,6 +1186,10 @@ const FEATURE_RULES = {
|
|
|
907
1186
|
invalidMbqlIsBadRequest: { since: 59 },
|
|
908
1187
|
boxplotDisplay: { since: 59 },
|
|
909
1188
|
nativeTableTemplateTag: { since: 59 },
|
|
1189
|
+
compiledQueryOmitsCollection: {
|
|
1190
|
+
since: 59,
|
|
1191
|
+
until: 62
|
|
1192
|
+
},
|
|
910
1193
|
smartLinkMeasureModel: { since: 60 },
|
|
911
1194
|
dashboardSubscriptionFilters: {
|
|
912
1195
|
since: 58,
|
|
@@ -920,15 +1203,22 @@ const FEATURE_RULES = {
|
|
|
920
1203
|
since: 59,
|
|
921
1204
|
tokenFeature: "dependencies"
|
|
922
1205
|
},
|
|
923
|
-
|
|
1206
|
+
dependencyAsyncBackfill: {
|
|
1207
|
+
since: 60,
|
|
1208
|
+
tokenFeature: "dependencies"
|
|
1209
|
+
},
|
|
1210
|
+
measureDependencyGraph: { since: 59 },
|
|
924
1211
|
tableListAccessFilters: { since: 59 },
|
|
925
1212
|
tableListTransformTargets: { since: 60 },
|
|
1213
|
+
tableListPublishedFilter: { since: 63 },
|
|
926
1214
|
tableUnusedFilter: {
|
|
927
1215
|
since: 58,
|
|
928
1216
|
tokenFeature: "dependencies"
|
|
929
1217
|
},
|
|
930
1218
|
tableDataLayerTiers: { since: 59 },
|
|
931
1219
|
bulkTableEdit: { since: 59 },
|
|
1220
|
+
tableUserValueWithdrawal: { since: 64 },
|
|
1221
|
+
bulkTableSync: { since: 59 },
|
|
932
1222
|
erd: {
|
|
933
1223
|
since: 62,
|
|
934
1224
|
tokenFeature: "schema-viewer"
|
|
@@ -952,7 +1242,8 @@ const FEATURE_RULES = {
|
|
|
952
1242
|
},
|
|
953
1243
|
metricDefinitionQuery: { since: 60 },
|
|
954
1244
|
metricDimensionListing: { since: 64 },
|
|
955
|
-
oauthFullAccessScope: { since: 63 }
|
|
1245
|
+
oauthFullAccessScope: { since: 63 },
|
|
1246
|
+
exportCsvByteOrderMark: { since: 63 }
|
|
956
1247
|
};
|
|
957
1248
|
function isFeatureName(name) {
|
|
958
1249
|
return Object.hasOwn(FEATURE_RULES, name);
|
|
@@ -990,7 +1281,6 @@ const METHOD_REQUIREMENTS = {
|
|
|
990
1281
|
"card.exportQuery": [],
|
|
991
1282
|
"card.queryMetadata": [],
|
|
992
1283
|
"collection.list": [],
|
|
993
|
-
"collection.listWithLibrary": [],
|
|
994
1284
|
"collection.get": [],
|
|
995
1285
|
"collection.create": [],
|
|
996
1286
|
"collection.update": [],
|
|
@@ -1034,6 +1324,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1034
1324
|
"erd.get": ["erd"],
|
|
1035
1325
|
"field.get": [],
|
|
1036
1326
|
"field.update": [],
|
|
1327
|
+
"field.setDataSensitivity": ["fieldDataSensitivity"],
|
|
1037
1328
|
"field.search": [],
|
|
1038
1329
|
"field.remapping": [],
|
|
1039
1330
|
"field.summary": [],
|
|
@@ -1053,6 +1344,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1053
1344
|
"gitSync.syncedCollections": ["remoteSync"],
|
|
1054
1345
|
"gitSync.remoteUrl": [],
|
|
1055
1346
|
"gitSync.branch": [],
|
|
1347
|
+
"gitSync.trackedBranch": [],
|
|
1056
1348
|
"gitSync.waitForTask": ["remoteSync"],
|
|
1057
1349
|
"glossary.list": [],
|
|
1058
1350
|
"glossary.create": [],
|
|
@@ -1116,7 +1408,11 @@ const METHOD_REQUIREMENTS = {
|
|
|
1116
1408
|
"table.fks": [],
|
|
1117
1409
|
"table.syncSchema": [],
|
|
1118
1410
|
"table.rescanValues": [],
|
|
1411
|
+
"table.discardValues": [],
|
|
1119
1412
|
"table.bulkEdit": ["bulkTableEdit"],
|
|
1413
|
+
"table.bulkSyncSchema": ["bulkTableSync"],
|
|
1414
|
+
"table.bulkRescanValues": ["bulkTableSync"],
|
|
1415
|
+
"table.bulkDiscardValues": ["bulkTableSync"],
|
|
1120
1416
|
"table.appendCsv": [],
|
|
1121
1417
|
"table.replaceCsv": [],
|
|
1122
1418
|
"timeline.list": [],
|
|
@@ -1453,7 +1749,9 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1453
1749
|
const match = await findSubCommand(subCommands, token);
|
|
1454
1750
|
if (match === null) return {
|
|
1455
1751
|
segments,
|
|
1456
|
-
unknownToken: token
|
|
1752
|
+
unknownToken: token,
|
|
1753
|
+
command: current,
|
|
1754
|
+
argsStart: index
|
|
1457
1755
|
};
|
|
1458
1756
|
segments.push(match.name);
|
|
1459
1757
|
current = match.command;
|
|
@@ -1461,7 +1759,17 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1461
1759
|
}
|
|
1462
1760
|
return {
|
|
1463
1761
|
segments,
|
|
1464
|
-
unknownToken: null
|
|
1762
|
+
unknownToken: null,
|
|
1763
|
+
command: current,
|
|
1764
|
+
argsStart: index
|
|
1765
|
+
};
|
|
1766
|
+
}
|
|
1767
|
+
async function resolveLeafArgv(root, rawArgs) {
|
|
1768
|
+
const path = await walkCommandPath(root, rawArgs);
|
|
1769
|
+
if (path.unknownToken !== null || await resolveCitty(path.command.subCommands) !== void 0) return null;
|
|
1770
|
+
return {
|
|
1771
|
+
argsDef: await resolveCitty(path.command.args) ?? {},
|
|
1772
|
+
argsStart: path.argsStart
|
|
1465
1773
|
};
|
|
1466
1774
|
}
|
|
1467
1775
|
async function resolveBreadcrumb(root, rawArgs) {
|
|
@@ -1472,16 +1780,11 @@ async function findUnknownCommand(root, rawArgs) {
|
|
|
1472
1780
|
return (await walkCommandPath(root, rawArgs)).unknownToken;
|
|
1473
1781
|
}
|
|
1474
1782
|
function skipFlags(rawArgs, start, argsDef) {
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
if (token === void 0) return index;
|
|
1479
|
-
if (token === "--") return rawArgs.length;
|
|
1480
|
-
if (!token.startsWith("-")) return index;
|
|
1481
|
-
if (flagConsumesValue(token, argsDef)) index += 1;
|
|
1482
|
-
index += 1;
|
|
1783
|
+
for (const item of readArgv(rawArgs, flagSpellings(argsDef), start)) {
|
|
1784
|
+
if (item.kind === "positional") return item.index;
|
|
1785
|
+
if (item.kind === "separator") return rawArgs.length;
|
|
1483
1786
|
}
|
|
1484
|
-
return
|
|
1787
|
+
return rawArgs.length;
|
|
1485
1788
|
}
|
|
1486
1789
|
async function findSubCommand(subCommands, token) {
|
|
1487
1790
|
const direct = subCommands[token];
|
|
@@ -1531,7 +1834,7 @@ const JSON_HELP_FLAG = "--json";
|
|
|
1531
1834
|
async function run() {
|
|
1532
1835
|
installInterruptHandler((code) => process.exit(code));
|
|
1533
1836
|
trustSystemCa();
|
|
1534
|
-
const rawArgs =
|
|
1837
|
+
const rawArgs = await normalizeArgv(process.argv.slice(2));
|
|
1535
1838
|
const wantsJsonHelp = rawArgs.includes(JSON_HELP_FLAG);
|
|
1536
1839
|
const showUsageWithBreadcrumb = async (cmd, parent) => {
|
|
1537
1840
|
const breadcrumb = await resolveBreadcrumb(main, rawArgs);
|
|
@@ -1557,8 +1860,15 @@ async function run() {
|
|
|
1557
1860
|
rawArgs
|
|
1558
1861
|
});
|
|
1559
1862
|
}
|
|
1863
|
+
async function normalizeArgv(argv) {
|
|
1864
|
+
const hoisted = hoistGlobalFlags(argv);
|
|
1865
|
+
const leaf = await resolveLeafArgv(main, hoisted);
|
|
1866
|
+
if (leaf === null) return hoisted;
|
|
1867
|
+
const leafArgs = separatePositionals(hoisted.slice(leaf.argsStart), leaf.argsDef);
|
|
1868
|
+
return [...hoisted.slice(0, leaf.argsStart), ...leafArgs];
|
|
1869
|
+
}
|
|
1560
1870
|
run().catch((error) => {
|
|
1561
1871
|
reportError(error);
|
|
1562
1872
|
});
|
|
1563
1873
|
//#endregion
|
|
1564
|
-
export {
|
|
1874
|
+
export { givenFlagKeys as $, ENV_API_KEY as A, name as B, isPlainObject as C, promptText as D, promptSelect as E, ENV_URL as F, listFlags as G, connectionFlags as H, consumeLegacyEnvWarnings as I, profileFlag as J, listFlagsWithDefaultLimit as K, readEnv as L, ENV_PROFILE as M, ENV_SKILLS_DIR as N, listTruncationNotice as O, ENV_SKIP_PREFLIGHT as P, assertArgv as Q, ProfileRefreshedError as R, isBlank as S, promptPassword as T, formatFlags as U, version as V, listFlag as W, listEnvelopeSchema as X, DEFAULT_MAX_BYTES as Y, listEnvelopeSchemaWithExtras as Z, MALFORMED_CELL as _, escapeJsonPointerSegment as _t, Features as a, ConfigError as at, projectForList as b, ruleGap as c, NetworkError as ct, renderList as d, UnknownError as dt, parseCsv as et, renderListWithExtras as f, ValidationError as ft, writeText as g, KNOWN_RANGE as gt, writeJson as h, isFileNotFoundError as ht, FEATURE_RULES as i, ChainedRequestError as it, ENV_DISABLE_KEYRING as j, warn as k, reportError as l, ResponseShapeError as lt, serializeJson as m, formatZodIssue as mt, methodRequirements as n, parseEnumCsv as nt, evaluateFeatures as o, InternalError as ot, renderSummary as p, errorMessage as pt, outputFlags as q, FEATURE_NAMES as r, AbortError as rt, isFeatureName as s, MetabaseError as st, interruptSignal as t, parseEnum as tt, renderItem as u, TimeoutError as ut, formatScalar as v, promptConfirm as w, NOT_BLANK as x, renderRows as y, setMetabaseAugment as z };
|