@metabase/cli 0.3.2 → 0.4.0-alpha.release-65-integration-branch.31ca6bb
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-B-Kczwcj.mjs} +5 -5
- package/dist/{alert-DCLhfwdv.mjs → alert-Ne0ivd5m.mjs} +7 -7
- package/dist/{alerts-DRin_wt2.mjs → alerts-Fakzg9iP.mjs} +6 -6
- package/dist/{append-DQ9rPJHZ.mjs → append-DCDVqPmR.mjs} +4 -4
- package/dist/archive-55sDfnHf.mjs +32 -0
- package/dist/{archive-_c-ISZmi.mjs → archive-BNJit8eD.mjs} +3 -3
- package/dist/{archive-o5cWV3vZ.mjs → archive-BbNqts-V.mjs} +3 -3
- package/dist/{archive-D6xzHaM3.mjs → archive-C93UR4Uc.mjs} +3 -3
- package/dist/{archive-BzVxRqpL.mjs → archive-CGmvQht4.mjs} +5 -5
- package/dist/{archive-COFQAHAL.mjs → archive-CL8wqAzm.mjs} +3 -3
- package/dist/{archive-BVRKE9Ev.mjs → archive-CSdktxvW.mjs} +5 -5
- package/dist/{archive-D3yPvUtz.mjs → archive-CpCSY4RT.mjs} +5 -5
- package/dist/{archive-xcgoVPwv.mjs → archive-DCCkQTjQ.mjs} +5 -5
- package/dist/{archive-BPCgmLcV.mjs → archive-DCE087yD.mjs} +4 -4
- package/dist/{archive-1YVo-Wsu.mjs → archive-DEef7eB8.mjs} +3 -3
- package/dist/{archive-HeRygdKz2.mjs → archive-DIZu7o4C.mjs} +4 -4
- package/dist/{auth-DJn5T6zA.mjs → auth-Bx4QQhqt.mjs} +5 -5
- package/dist/body-CB2eDFFb.mjs +17 -0
- package/dist/branch-flag-pFQPNYKr.mjs +9 -0
- package/dist/{branches-CUyPxeeW.mjs → branches-B6ilUG-7.mjs} +3 -3
- package/dist/breaking-Dg3-8yDF.mjs +36 -0
- package/dist/broken-BNBD4Eo3.mjs +37 -0
- package/dist/bulk-discard-values-DfKXuZpR.mjs +49 -0
- package/dist/bulk-edit-oUCfDQ_M.mjs +53 -0
- package/dist/bulk-rescan-values-B8pNlXUH.mjs +28 -0
- package/dist/bulk-sync-schema-tRp7jBJt.mjs +28 -0
- package/dist/{cancel-BNuVls58.mjs → cancel-Bl4BMkwI.mjs} +3 -3
- package/dist/{cancel-task-DUmlQQpi.mjs → cancel-task-CWWo7vLf.mjs} +4 -4
- package/dist/card-CQD4D8mw.mjs +25 -0
- package/dist/{card-CEkp1mcI.mjs → card-CQNUT9pm.mjs} +1 -1
- package/dist/{card-voh1k4hl.mjs → card-P5mBknsl.mjs} +3 -11
- package/dist/{cards-_gbvw3wp.mjs → cards-BIUYdSIR.mjs} +6 -6
- package/dist/cli.mjs +420 -100
- package/dist/{client-BnK0evYf.mjs → client-BHIFvEg2.mjs} +394 -316
- package/dist/{collection-DYM0p3Xl.mjs → collection-BG3Ksea-.mjs} +1 -1
- package/dist/collection-CuaTd10G.mjs +21 -0
- package/dist/{collection-BxdPxD38.mjs → collection-D3KXhvnc.mjs} +7 -5
- package/dist/{collection-namespace-DM90lA8C.mjs → collection-namespace-ZQePD67z.mjs} +2 -2
- package/dist/{content-translation-CqB3peU9.mjs → content-translation-BRdNdAmn.mjs} +3 -3
- package/dist/copy-BMEaYmTb.mjs +55 -0
- package/dist/copy-CbDfVZRC.mjs +36 -0
- package/dist/copy-flags-anRhAvB5.mjs +32 -0
- package/dist/{create-BIUVvIGH.mjs → create-5cDaZcRL.mjs} +3 -3
- package/dist/{create-CwXUMOMd.mjs → create-BEN-2XFK.mjs} +3 -3
- package/dist/create-BJG630xB.mjs +48 -0
- package/dist/{create-IFjwHs0G.mjs → create-BTQB1lqX.mjs} +4 -4
- package/dist/{create-BMKuihoI.mjs → create-C3TmU1Bi.mjs} +6 -6
- package/dist/create-C7O9tPL2.mjs +34 -0
- package/dist/{create-DVo8-IzZ.mjs → create-C8hsOv_D.mjs} +6 -6
- package/dist/{create-DNx9TGHs.mjs → create-CBSsW8Hm.mjs} +6 -6
- package/dist/{create-Cm9Z-rfe2.mjs → create-CG6WWY6k.mjs} +4 -4
- package/dist/{create-BSvTs-EV.mjs → create-D2Shlb7t.mjs} +3 -3
- package/dist/{create-DMVw9nrZ.mjs → create-DVEqry26.mjs} +4 -4
- package/dist/{create-B48rmY8v.mjs → create-D_pNX7d0.mjs} +3 -3
- package/dist/{create-D4Y69cDF.mjs → create-R0Q-nRlq.mjs} +4 -4
- package/dist/{create-CUHpxANR.mjs → create-SqmOf6WQ.mjs} +6 -6
- package/dist/{create-branch-Cw-uXows.mjs → create-branch-Cb3CWojg.mjs} +4 -4
- package/dist/{create-CnJKj9Nl.mjs → create-c2zR9y4J.mjs} +4 -4
- package/dist/{create-va8bByVt.mjs → create-xt4ff6fP.mjs} +3 -3
- package/dist/{create-B7S5fCkD.mjs → create-zpJIRn9j.mjs} +5 -5
- package/dist/{csv-CaKx1oFZ.mjs → csv-CRNOhy4X.mjs} +4 -4
- package/dist/{current-task-lGh69Z1i.mjs → current-task-DFo1ZJ51.mjs} +4 -4
- package/dist/dashboard-D11YAa7I.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/data-action-BiHjjVjc.mjs +24 -0
- package/dist/data-action-DZxVB_hD.mjs +85 -0
- package/dist/data-action-R9qxJDPA.mjs +40 -0
- package/dist/database-BT7DVgSr.mjs +45 -0
- package/dist/{database-C3E9PZSx.mjs → database-Kq2AL5jH.mjs} +1 -1
- package/dist/dataset-BmvCxGoE.mjs +66 -0
- package/dist/{db-BRHPjshe.mjs → db-C8lj73Dz.mjs} +7 -7
- package/dist/delete-09O7BTNw.mjs +44 -0
- package/dist/{delete-Ci0aDYpf.mjs → delete-CYgNpHl7.mjs} +4 -4
- package/dist/{delete-G6EiGn2Q.mjs → delete-D_ZNoYVv.mjs} +4 -4
- package/dist/{delete-BxBadE3q.mjs → delete-HWeQtc4M.mjs} +4 -4
- package/dist/delete-I4eFpsed.mjs +44 -0
- package/dist/{delete-DMETa-37.mjs → delete-My8TX-B2.mjs} +4 -4
- package/dist/{delete-CQWCfqHf.mjs → delete-qwdN0N7e.mjs} +4 -4
- package/dist/delete-runtime-BbmRg_in.mjs +55 -0
- package/dist/{delete-table-N4rZtt1T.mjs → delete-table-BCvjX7bh.mjs} +4 -4
- package/dist/{dependencies-edN0P1SS.mjs → dependencies-BAE4YPXX.mjs} +5 -5
- package/dist/dependency-CIam7zmr.mjs +15 -0
- package/dist/dependency-DzLH3J8P.mjs +165 -0
- package/dist/dependency-zElFM-os.mjs +111 -0
- package/dist/dependents-Dv6tLdSs.mjs +52 -0
- package/dist/{dirty-U51bMoCP.mjs → dirty-CZORg0i0.mjs} +5 -5
- package/dist/discard-values-DKnP-JHr.mjs +55 -0
- package/dist/{document-CA0Q6lqu.mjs → document-C18b5rM6.mjs} +1 -1
- package/dist/{document-BHpLJbKU.mjs → document-DFCj1Az_.mjs} +2 -1
- package/dist/document-uxz96Lah.mjs +20 -0
- package/dist/{download-BJA6k-e6.mjs → download-BImtTll0.mjs} +2 -2
- package/dist/{eid-BtlRU1E0.mjs → eid-D0FxhT9H.mjs} +11 -10
- package/dist/entity-DWp9WJbU.mjs +20 -0
- package/dist/entry-flags-3sDWwa90.mjs +42 -0
- package/dist/{events-B5rnOo-L.mjs → events-BzCjVA3-.mjs} +4 -4
- package/dist/execute-BhHbkBqf.mjs +45 -0
- package/dist/export-CjqjDnaZ.mjs +74 -0
- package/dist/export-flags-BETJHNcw.mjs +81 -0
- package/dist/export-preflight-DzvIP6TB.mjs +35 -0
- package/dist/{field-CcN4oZy6.mjs → field-5nivEfd6.mjs} +33 -3
- package/dist/field-fBpiGiqr.mjs +21 -0
- package/dist/field-wmN6raOG.mjs +128 -0
- package/dist/{fields-zQ6O_W_H.mjs → fields-C-au1eLO.mjs} +6 -6
- package/dist/filter-flags-BIFcA2TT.mjs +72 -0
- package/dist/fks-83QIm8xb.mjs +36 -0
- package/dist/{get-93wuhTn2.mjs → get-BMHbEGbr.mjs} +4 -4
- package/dist/{get-DXwlZjw0.mjs → get-BTCOzSkl.mjs} +3 -3
- package/dist/{get-CekXFP3x.mjs → get-BawLhSwW.mjs} +3 -3
- package/dist/{get-BLjcCXp8.mjs → get-BjqqFG2m.mjs} +3 -3
- package/dist/{get-is8x5f2n.mjs → get-C-R_Fdsi.mjs} +3 -3
- package/dist/{get-DC_huYD8.mjs → get-C73V2KsB.mjs} +5 -5
- package/dist/{get-CG6G-mzV.mjs → get-C9sq2boy.mjs} +5 -5
- package/dist/{get-Cf6a4fFN.mjs → get-Cggv6yLC.mjs} +4 -4
- package/dist/{get-xPv7e5Ez.mjs → get-CkXc0Xld.mjs} +5 -5
- package/dist/{get-BLcS4il2.mjs → get-CqNEVAX_2.mjs} +3 -3
- package/dist/{get-DhpMuTSt.mjs → get-D7h7uH4k.mjs} +5 -5
- package/dist/get-DGmE5fmp.mjs +31 -0
- package/dist/{get-EFsmL4le.mjs → get-DTTsPd-c.mjs} +5 -5
- package/dist/{get-CeSQptdl.mjs → get-DXBXhPrU.mjs} +5 -5
- package/dist/{get-CTp5l7aU.mjs → get-D_v1IAL1.mjs} +3 -3
- package/dist/{get-BDrmBZ1z.mjs → get-DkzO3G5p.mjs} +5 -5
- package/dist/{get-Dg-S07ri.mjs → get-Dvr_69L7.mjs} +3 -3
- package/dist/get-NOMvMvYJ.mjs +36 -0
- package/dist/{get-BSoMWp4t2.mjs → get-YPDWhgm_2.mjs} +4 -4
- package/dist/{get-CwiJWeH4.mjs → get-Z36_0HX_.mjs} +4 -4
- package/dist/{get-run-DwY4sFGy.mjs → get-run-v1QHn-Mx.mjs} +4 -4
- package/dist/{git-sync-BwBRmEhE.mjs → git-sync-COokpYgc.mjs} +12 -3
- package/dist/git-sync-DspFahwV.mjs +165 -0
- package/dist/git-sync-VAqASCQ5.mjs +29 -0
- package/dist/glossary-BlNCrYbw.mjs +30 -0
- package/dist/glossary-Brnk2PBi.mjs +14 -0
- package/dist/glossary-LmZWwCNP.mjs +21 -0
- package/dist/graph-B6OliqnW.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-iTRCU9j0.mjs} +4 -4
- package/dist/{import-Cs7wk058.mjs → import-CdSs5CtT.mjs} +19 -8
- package/dist/{input-DEvkIjGr.mjs → input-D8qW-KtR.mjs} +6 -2
- package/dist/{is-dirty-XqDfqXGi.mjs → is-dirty-B5fj9NeS.mjs} +2 -2
- package/dist/{items-BloAjPwA.mjs → items-BxWnNEh7.mjs} +8 -8
- package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
- package/dist/{library-Dgq_5BFh.mjs → library-BHHgurW0.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-D9d5ocYi.mjs → list-BPMOLrwn.mjs} +5 -5
- package/dist/{list-D04uiS3F.mjs → list-BTcEm4td.mjs} +3 -3
- package/dist/{list-CghNKfYJ.mjs → list-BTgAbqeS.mjs} +4 -4
- package/dist/{list-3ErmGdY0.mjs → list-Bop1NTbU.mjs} +6 -6
- package/dist/{list-yV6CyPzn.mjs → list-By9XJRiv.mjs} +3 -3
- package/dist/list-CNC-XHbN.mjs +35 -0
- package/dist/{list-CUJ1wem9.mjs → list-CPWgBkPa.mjs} +4 -4
- package/dist/{list-sdCIS2Df.mjs → list-Cpa0Se7M.mjs} +5 -5
- package/dist/list-DA9KsA0o.mjs +101 -0
- package/dist/{list-VzrtA9lt.mjs → list-DE9gYY3I.mjs} +3 -3
- package/dist/{list-CUXlZiS1.mjs → list-DFJt2-fY.mjs} +4 -4
- package/dist/{list-BZnf3RmA.mjs → list-DUcnAb1h.mjs} +3 -3
- package/dist/{list-vsXIMssK.mjs → list-DW4-u7eO.mjs} +5 -5
- package/dist/{list-f8Csdjyc.mjs → list-DbXnSL2x.mjs} +5 -5
- package/dist/list-DgsM9YQX.mjs +28 -0
- package/dist/{list-BfLo1xI8.mjs → list-Dzzt6Yee.mjs} +3 -3
- package/dist/{list-CZCaqPoo.mjs → list-ZHLsjxXg.mjs} +6 -6
- package/dist/{list-Bzm5mXRo.mjs → list-e7yvJYMw.mjs} +3 -3
- package/dist/{list-DboUvg-Y.mjs → list-hN_Tu2T6.mjs} +6 -6
- package/dist/{list-DuJezLm_.mjs → list-zyKxxNvn.mjs} +3 -3
- package/dist/{login-Vw51Gts5.mjs → login-B7nGQDZK.mjs} +6 -6
- package/dist/{logout-BDIqoVhv.mjs → logout-pZffAh1G.mjs} +2 -2
- package/dist/{measure-LY9Tp9QZ.mjs → measure-AtnrCTCC.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-CxTkEjCs.mjs} +3 -3
- package/dist/{parse-enum-Dc0dMZ3P.mjs → parse-enum-CLIXMsd8.mjs} +1 -1
- package/dist/parse-id-7ja3HUdB.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-DM4vyihl.mjs} +4 -4
- package/dist/{poll-CZeXepUQ.mjs → poll-Dz4tUm2f.mjs} +2 -2
- package/dist/{preflight-DcULqq8E.mjs → preflight-DaZ2z2C1.mjs} +3 -3
- package/dist/{process-CTrfxxaC.mjs → process-D0HdqZ3r.mjs} +1 -1
- package/dist/{publish-qVFmJQ1E.mjs → publish-C0HCL04a.mjs} +4 -4
- package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
- package/dist/{query-Cq1lmqL5.mjs → query-BC-C6efK.mjs} +14 -33
- package/dist/query-BKtMP5eH.mjs +13 -0
- package/dist/query-CAFPlqfi.mjs +329 -0
- package/dist/remapping-CgA6UJGU.mjs +53 -0
- package/dist/{remove-collection-DBqh2Lqm.mjs → remove-collection-DoctJa9g.mjs} +5 -5
- package/dist/{render-Gx1hR7IF.mjs → render-Bvm9mta6.mjs} +2 -2
- package/dist/{replace-CujInVY9.mjs → replace-CaFJd9fO.mjs} +4 -4
- package/dist/rescan-values-7VOGCLMe.mjs +32 -0
- package/dist/{rescan-values-HypqBCSK.mjs → rescan-values-sJRwcHsk.mjs} +5 -5
- package/dist/{run-DEkQSOQa.mjs → run-COHDQ5J4.mjs} +3 -3
- package/dist/{run-b3jyF29q.mjs → run-RXpFlDAB.mjs} +4 -4
- package/dist/{runs-GHqHLGy4.mjs → runs-CUYdCKiE.mjs} +5 -5
- package/dist/{runtime-nCPku2nN.mjs → runtime-B8RtMb4B.mjs} +21 -82
- package/dist/{schema-tables-B5L05Y1L.mjs → schema-tables-CO5qyZBe.mjs} +6 -6
- package/dist/{schemas-Clx26p_4.mjs → schemas-CzHHgDdF.mjs} +4 -4
- package/dist/search-BWb052_b.mjs +131 -0
- package/dist/search-Cc9vHNae.mjs +85 -0
- package/dist/{segment-DiRJcbam.mjs → segment-C_rsUkHK.mjs} +6 -6
- package/dist/{send-DIHkDNBN.mjs → send-C-3bkpni.mjs} +3 -3
- package/dist/{set-D77qUZML.mjs → set-BDkT37OT.mjs} +4 -4
- package/dist/{set-active-DCdFgD0O.mjs → set-active-CDJTfQEc.mjs} +3 -3
- package/dist/set-sensitivity-DVrINHde.mjs +57 -0
- package/dist/{setting-DR9bj232.mjs → setting-CoLzd08x.mjs} +4 -4
- package/dist/{setup-DGa2LLEp.mjs → setup-C4F4XYbU.mjs} +3 -3
- package/dist/{signal-k7cm5N6h.mjs → signal-CxWeLszu.mjs} +1 -1
- package/dist/{skill-list-DAvGGHzS.mjs → skill-list-BgihWuPf.mjs} +2 -2
- package/dist/{skills-CqtNuSXM.mjs → skills-4qDjKRSk.mjs} +2 -2
- package/dist/{skills-CCn7cyMP.mjs → skills-BWEFRpUj.mjs} +3 -3
- package/dist/snippet-CYd8D9SK.mjs +19 -0
- package/dist/{stash-BTtsV0AG.mjs → stash-CZ1x0rox.mjs} +6 -6
- package/dist/{status-XgSS3StV.mjs → status-BM6eYW7I.mjs} +3 -3
- package/dist/{status-CW7Dt-nV.mjs → status-gqpPZvue.mjs} +7 -7
- package/dist/{subscription-CofRU47d.mjs → subscription-pSuO241O.mjs} +6 -6
- package/dist/{subscriptions-DCuuPF6U.mjs → subscriptions-n5zJ9rYZ.mjs} +6 -6
- package/dist/{summary-uGlgKE3C.mjs → summary-DvIf2EiO.mjs} +5 -5
- package/dist/sync-schema-Cc21crxQ.mjs +32 -0
- package/dist/{sync-schema-Cu9rD3eH.mjs → sync-schema-D1t8rhdQ.mjs} +6 -6
- package/dist/sync-task-CXFoqlpF.mjs +53 -0
- package/dist/{table-DfuY0N8e.mjs → table-Ci6bhZkb.mjs} +35 -12
- package/dist/table-CxvaDiIZ.mjs +155 -0
- package/dist/table-Dc0dLfyg.mjs +26 -0
- package/dist/table-selector-flags-BVZvnhUa.mjs +42 -0
- package/dist/text-DaNkPRwt.mjs +6 -0
- package/dist/timeline-BqU5sOb6.mjs +21 -0
- package/dist/{timeline-event-D-h0A_oh.mjs → timeline-event-jn1SOKd4.mjs} +6 -6
- package/dist/transform-BUIlFqpv.mjs +28 -0
- package/dist/{transform-CtqB1WYo.mjs → transform-CNBIV7No.mjs} +1 -1
- package/dist/transform-job-DsbY9mme.mjs +22 -0
- package/dist/{transform-tag-BLp_p9J-.mjs → transform-tag-C0jzV6Dk.mjs} +5 -5
- package/dist/{transforms-n2IwEcbU.mjs → transforms-DwTy_Quh.mjs} +5 -5
- package/dist/tree-p2j6IVy-.mjs +34 -0
- package/dist/{unpublish-DVQCAa3g.mjs → unpublish-B-961jX1.mjs} +3 -3
- package/dist/unreferenced-Dxy-aYI7.mjs +36 -0
- package/dist/{update-CnkPYL2i.mjs → update-BFYRBbRu.mjs} +6 -6
- package/dist/{update-ChpOukqq.mjs → update-BGeaPntx.mjs} +5 -5
- package/dist/{update-NGq0yXZk.mjs → update-BnIEN390.mjs} +5 -5
- package/dist/{update-DffrdV4b.mjs → update-CALlEgIC.mjs} +4 -4
- package/dist/{update-DFdBeJwc.mjs → update-CHkVN69L.mjs} +13 -8
- package/dist/{update-oQeQyqKO.mjs → update-CKqL9PmU.mjs} +5 -5
- package/dist/{update-rFRPLlb6.mjs → update-CYGYUCFQ.mjs} +4 -4
- package/dist/update-CuQy2g51.mjs +52 -0
- package/dist/{update-B7CikkI0.mjs → update-D4TGE6FS.mjs} +7 -7
- package/dist/{update-D9H6Lh5U.mjs → update-D7xi-0bU.mjs} +4 -4
- package/dist/{update-DKO9HF1f.mjs → update-DK77vtFF.mjs} +6 -6
- package/dist/{update-CKDRuduL.mjs → update-DKDQTlnV.mjs} +5 -5
- package/dist/update-DXxJHC8y.mjs +41 -0
- package/dist/update-DiJK0uRG.mjs +181 -0
- package/dist/{update-CAsqNhDC.mjs → update-MD1Kwq1P.mjs} +4 -4
- package/dist/{update-dashcard-DvPqLJ3N.mjs → update-dashcard-DuTjOh14.mjs} +6 -6
- package/dist/{update-DScUzKLI.mjs → update-hvO4VpfZ.mjs} +7 -7
- package/dist/{update-D4ggtuG4.mjs → update-qDZvnwvf.mjs} +7 -7
- package/dist/{update-C05J2nZ2.mjs → update-tltXCUwR.mjs} +4 -4
- package/dist/{upgrade-BRgw0fvn.mjs → upgrade-Ca-Ss5jb.mjs} +4 -4
- package/dist/{upload-Do2PBSeH.mjs → upload-C2fhpKkP.mjs} +2 -2
- package/dist/upload-Dw7mVr9u.mjs +13 -0
- package/dist/{upload-BrfbcbBW.mjs → upload-t6dkccqn.mjs} +3 -3
- package/dist/{uuid-B4eij1d7.mjs → uuid-BMlJZT8z.mjs} +2 -2
- package/dist/{validate-xR_MHBNR.mjs → validate-D7e110oU.mjs} +1 -1
- package/dist/{validate-query-D6_ad-Gi.mjs → validate-query-BzbZmenf.mjs} +7 -3
- package/dist/{values-xgOftPq5.mjs → values-CXN4xTTh.mjs} +5 -5
- package/dist/verify-CPVfwKSu.mjs +38 -0
- package/dist/verify-flags-CMpRkMPa.mjs +58 -0
- package/dist/verify-k-JB-k3D.mjs +38 -0
- package/dist/{verify-DTOA_wVM.mjs → verify-t-CEmvoG.mjs} +3 -3
- package/dist/{wait-BjeFgR13.mjs → wait-KSkq7kKW.mjs} +6 -6
- package/dist/{wait-flags-BCeCnaz3.mjs → wait-flags-KX7NHdj4.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/data-action/SKILL.md +125 -0
- 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/native-sql/SKILL.md +1 -1
- 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-alpha.release-65-integration-branch.31ca6bb";
|
|
362
618
|
var description = "Metabase CLI";
|
|
363
619
|
//#endregion
|
|
364
620
|
//#region src/runtime/command-augment.ts
|
|
@@ -378,36 +634,39 @@ 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
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
637
|
+
auth: () => import("./auth-Bx4QQhqt.mjs").then((mod) => mod.default),
|
|
638
|
+
db: () => import("./db-C8lj73Dz.mjs").then((mod) => mod.default),
|
|
639
|
+
table: () => import("./table-Dc0dLfyg.mjs").then((mod) => mod.default),
|
|
640
|
+
field: () => import("./field-fBpiGiqr.mjs").then((mod) => mod.default),
|
|
641
|
+
upload: () => import("./upload-Dw7mVr9u.mjs").then((mod) => mod.default),
|
|
642
|
+
"content-translation": () => import("./content-translation-BRdNdAmn.mjs").then((mod) => mod.default),
|
|
643
|
+
card: () => import("./card-CQD4D8mw.mjs").then((mod) => mod.default),
|
|
644
|
+
dashboard: () => import("./dashboard-D11YAa7I.mjs").then((mod) => mod.default),
|
|
645
|
+
subscription: () => import("./subscription-pSuO241O.mjs").then((mod) => mod.default),
|
|
646
|
+
"data-action": () => import("./data-action-BiHjjVjc.mjs").then((mod) => mod.default),
|
|
647
|
+
alert: () => import("./alert-Ne0ivd5m.mjs").then((mod) => mod.default),
|
|
648
|
+
collection: () => import("./collection-CuaTd10G.mjs").then((mod) => mod.default),
|
|
649
|
+
library: () => import("./library-BHHgurW0.mjs").then((mod) => mod.default),
|
|
650
|
+
document: () => import("./document-uxz96Lah.mjs").then((mod) => mod.default),
|
|
651
|
+
glossary: () => import("./glossary-Brnk2PBi.mjs").then((mod) => mod.default),
|
|
652
|
+
transform: () => import("./transform-BUIlFqpv.mjs").then((mod) => mod.default),
|
|
653
|
+
"transform-job": () => import("./transform-job-DsbY9mme.mjs").then((mod) => mod.default),
|
|
654
|
+
"transform-tag": () => import("./transform-tag-C0jzV6Dk.mjs").then((mod) => mod.default),
|
|
655
|
+
setting: () => import("./setting-CoLzd08x.mjs").then((mod) => mod.default),
|
|
656
|
+
search: () => import("./search-BWb052_b.mjs").then((mod) => mod.default),
|
|
657
|
+
"git-sync": () => import("./git-sync-VAqASCQ5.mjs").then((mod) => mod.default),
|
|
658
|
+
setup: () => import("./setup-C4F4XYbU.mjs").then((mod) => mod.default),
|
|
659
|
+
snippet: () => import("./snippet-CYd8D9SK.mjs").then((mod) => mod.default),
|
|
660
|
+
segment: () => import("./segment-C_rsUkHK.mjs").then((mod) => mod.default),
|
|
661
|
+
measure: () => import("./measure-AtnrCTCC.mjs").then((mod) => mod.default),
|
|
662
|
+
dependency: () => import("./dependency-CIam7zmr.mjs").then((mod) => mod.default),
|
|
663
|
+
timeline: () => import("./timeline-BqU5sOb6.mjs").then((mod) => mod.default),
|
|
664
|
+
"timeline-event": () => import("./timeline-event-jn1SOKd4.mjs").then((mod) => mod.default),
|
|
665
|
+
eid: () => import("./eid-D0FxhT9H.mjs").then((mod) => mod.default),
|
|
666
|
+
query: () => import("./query-CAFPlqfi.mjs").then((mod) => mod.default),
|
|
667
|
+
uuid: () => import("./uuid-BMlJZT8z.mjs").then((mod) => mod.default),
|
|
668
|
+
upgrade: () => import("./upgrade-Ca-Ss5jb.mjs").then((mod) => mod.default),
|
|
669
|
+
skills: () => import("./skills-BWEFRpUj.mjs").then((mod) => mod.default)
|
|
411
670
|
}
|
|
412
671
|
});
|
|
413
672
|
setMetabaseAugment(main, {
|
|
@@ -580,6 +839,18 @@ function jsonByteLength(value) {
|
|
|
580
839
|
function isPlainObject(value) {
|
|
581
840
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
582
841
|
}
|
|
842
|
+
const JAVA_WHITESPACE = " \n\v\f\r \u2028\u2029 ";
|
|
843
|
+
const UNICODE_ESCAPE_DIGITS = 4;
|
|
844
|
+
function unicodeEscape(char) {
|
|
845
|
+
return `\\u${char.charCodeAt(0).toString(16).padStart(UNICODE_ESCAPE_DIGITS, "0")}`;
|
|
846
|
+
}
|
|
847
|
+
const JAVA_WHITESPACE_ESCAPED = [...JAVA_WHITESPACE].map(unicodeEscape).join("");
|
|
848
|
+
/** Matches a string Metabase reads as not blank: one holding a character that is not Java whitespace. */
|
|
849
|
+
const NOT_BLANK = new RegExp(`[^${JAVA_WHITESPACE_ESCAPED}]`);
|
|
850
|
+
/** Whether Metabase reads `value` as blank: empty, or Java whitespace only. */
|
|
851
|
+
function isBlank(value) {
|
|
852
|
+
return !NOT_BLANK.test(value);
|
|
853
|
+
}
|
|
583
854
|
//#endregion
|
|
584
855
|
//#region src/output/projection.ts
|
|
585
856
|
function projectForList(item, view, opts) {
|
|
@@ -672,7 +943,7 @@ function renderRows(head, rows) {
|
|
|
672
943
|
return table.toString();
|
|
673
944
|
}
|
|
674
945
|
function formatCell(row, column) {
|
|
675
|
-
const value = row[column.key];
|
|
946
|
+
const value = column.value === void 0 ? row[column.key] : column.value(row);
|
|
676
947
|
if (column.format !== void 0) return column.format(value);
|
|
677
948
|
return formatScalar(value);
|
|
678
949
|
}
|
|
@@ -865,6 +1136,8 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
865
1136
|
//#endregion
|
|
866
1137
|
//#region ../client/src/version/features.ts
|
|
867
1138
|
const FEATURE_RULES = {
|
|
1139
|
+
dataActionCollections: { since: 65 },
|
|
1140
|
+
dataActionsWithoutModel: { since: 65 },
|
|
868
1141
|
transforms: { since: 59 },
|
|
869
1142
|
transformJobActivation: { since: 61 },
|
|
870
1143
|
measures: { since: 59 },
|
|
@@ -880,6 +1153,11 @@ const FEATURE_RULES = {
|
|
|
880
1153
|
since: 63,
|
|
881
1154
|
tokenFeature: "remote_sync"
|
|
882
1155
|
},
|
|
1156
|
+
remoteSyncBranchGuard: { since: 63 },
|
|
1157
|
+
remoteSyncMerge: {
|
|
1158
|
+
since: 63,
|
|
1159
|
+
tokenFeature: "remote_sync"
|
|
1160
|
+
},
|
|
883
1161
|
contentTranslation: {
|
|
884
1162
|
since: 58,
|
|
885
1163
|
tokenFeature: "content_translation"
|
|
@@ -896,6 +1174,10 @@ const FEATURE_RULES = {
|
|
|
896
1174
|
transformJobRunIdIsNumeric: { since: 64 },
|
|
897
1175
|
transformCheckpointReset: { since: 60 },
|
|
898
1176
|
fieldDataSensitivity: { since: 64 },
|
|
1177
|
+
fieldRemappingAppendsDisplayColumns: {
|
|
1178
|
+
since: 58,
|
|
1179
|
+
until: 59
|
|
1180
|
+
},
|
|
899
1181
|
transformDagRuns: { since: 64 },
|
|
900
1182
|
unifiedTransformRuns: { since: 64 },
|
|
901
1183
|
transformTests: {
|
|
@@ -907,6 +1189,10 @@ const FEATURE_RULES = {
|
|
|
907
1189
|
invalidMbqlIsBadRequest: { since: 59 },
|
|
908
1190
|
boxplotDisplay: { since: 59 },
|
|
909
1191
|
nativeTableTemplateTag: { since: 59 },
|
|
1192
|
+
compiledQueryOmitsCollection: {
|
|
1193
|
+
since: 59,
|
|
1194
|
+
until: 62
|
|
1195
|
+
},
|
|
910
1196
|
smartLinkMeasureModel: { since: 60 },
|
|
911
1197
|
dashboardSubscriptionFilters: {
|
|
912
1198
|
since: 58,
|
|
@@ -920,15 +1206,22 @@ const FEATURE_RULES = {
|
|
|
920
1206
|
since: 59,
|
|
921
1207
|
tokenFeature: "dependencies"
|
|
922
1208
|
},
|
|
923
|
-
|
|
1209
|
+
dependencyAsyncBackfill: {
|
|
1210
|
+
since: 60,
|
|
1211
|
+
tokenFeature: "dependencies"
|
|
1212
|
+
},
|
|
1213
|
+
measureDependencyGraph: { since: 59 },
|
|
924
1214
|
tableListAccessFilters: { since: 59 },
|
|
925
1215
|
tableListTransformTargets: { since: 60 },
|
|
1216
|
+
tableListPublishedFilter: { since: 63 },
|
|
926
1217
|
tableUnusedFilter: {
|
|
927
1218
|
since: 58,
|
|
928
1219
|
tokenFeature: "dependencies"
|
|
929
1220
|
},
|
|
930
1221
|
tableDataLayerTiers: { since: 59 },
|
|
931
1222
|
bulkTableEdit: { since: 59 },
|
|
1223
|
+
tableUserValueWithdrawal: { since: 64 },
|
|
1224
|
+
bulkTableSync: { since: 59 },
|
|
932
1225
|
erd: {
|
|
933
1226
|
since: 62,
|
|
934
1227
|
tokenFeature: "schema-viewer"
|
|
@@ -952,7 +1245,8 @@ const FEATURE_RULES = {
|
|
|
952
1245
|
},
|
|
953
1246
|
metricDefinitionQuery: { since: 60 },
|
|
954
1247
|
metricDimensionListing: { since: 64 },
|
|
955
|
-
oauthFullAccessScope: { since: 63 }
|
|
1248
|
+
oauthFullAccessScope: { since: 63 },
|
|
1249
|
+
exportCsvByteOrderMark: { since: 63 }
|
|
956
1250
|
};
|
|
957
1251
|
function isFeatureName(name) {
|
|
958
1252
|
return Object.hasOwn(FEATURE_RULES, name);
|
|
@@ -990,7 +1284,6 @@ const METHOD_REQUIREMENTS = {
|
|
|
990
1284
|
"card.exportQuery": [],
|
|
991
1285
|
"card.queryMetadata": [],
|
|
992
1286
|
"collection.list": [],
|
|
993
|
-
"collection.listWithLibrary": [],
|
|
994
1287
|
"collection.get": [],
|
|
995
1288
|
"collection.create": [],
|
|
996
1289
|
"collection.update": [],
|
|
@@ -1009,6 +1302,13 @@ const METHOD_REQUIREMENTS = {
|
|
|
1009
1302
|
"dashboard.checkCardReferences": [],
|
|
1010
1303
|
"dashboard.parameterValues": [],
|
|
1011
1304
|
"dashboard.searchParameterValues": [],
|
|
1305
|
+
"dataAction.list": [],
|
|
1306
|
+
"dataAction.get": [],
|
|
1307
|
+
"dataAction.create": ["dataActionsWithoutModel"],
|
|
1308
|
+
"dataAction.update": [],
|
|
1309
|
+
"dataAction.archive": [],
|
|
1310
|
+
"dataAction.delete": [],
|
|
1311
|
+
"dataAction.execute": [],
|
|
1012
1312
|
"database.list": [],
|
|
1013
1313
|
"database.get": [],
|
|
1014
1314
|
"database.schemas": [],
|
|
@@ -1034,6 +1334,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1034
1334
|
"erd.get": ["erd"],
|
|
1035
1335
|
"field.get": [],
|
|
1036
1336
|
"field.update": [],
|
|
1337
|
+
"field.setDataSensitivity": ["fieldDataSensitivity"],
|
|
1037
1338
|
"field.search": [],
|
|
1038
1339
|
"field.remapping": [],
|
|
1039
1340
|
"field.summary": [],
|
|
@@ -1053,6 +1354,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1053
1354
|
"gitSync.syncedCollections": ["remoteSync"],
|
|
1054
1355
|
"gitSync.remoteUrl": [],
|
|
1055
1356
|
"gitSync.branch": [],
|
|
1357
|
+
"gitSync.trackedBranch": [],
|
|
1056
1358
|
"gitSync.waitForTask": ["remoteSync"],
|
|
1057
1359
|
"glossary.list": [],
|
|
1058
1360
|
"glossary.create": [],
|
|
@@ -1116,7 +1418,11 @@ const METHOD_REQUIREMENTS = {
|
|
|
1116
1418
|
"table.fks": [],
|
|
1117
1419
|
"table.syncSchema": [],
|
|
1118
1420
|
"table.rescanValues": [],
|
|
1421
|
+
"table.discardValues": [],
|
|
1119
1422
|
"table.bulkEdit": ["bulkTableEdit"],
|
|
1423
|
+
"table.bulkSyncSchema": ["bulkTableSync"],
|
|
1424
|
+
"table.bulkRescanValues": ["bulkTableSync"],
|
|
1425
|
+
"table.bulkDiscardValues": ["bulkTableSync"],
|
|
1120
1426
|
"table.appendCsv": [],
|
|
1121
1427
|
"table.replaceCsv": [],
|
|
1122
1428
|
"timeline.list": [],
|
|
@@ -1453,7 +1759,9 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1453
1759
|
const match = await findSubCommand(subCommands, token);
|
|
1454
1760
|
if (match === null) return {
|
|
1455
1761
|
segments,
|
|
1456
|
-
unknownToken: token
|
|
1762
|
+
unknownToken: token,
|
|
1763
|
+
command: current,
|
|
1764
|
+
argsStart: index
|
|
1457
1765
|
};
|
|
1458
1766
|
segments.push(match.name);
|
|
1459
1767
|
current = match.command;
|
|
@@ -1461,7 +1769,17 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1461
1769
|
}
|
|
1462
1770
|
return {
|
|
1463
1771
|
segments,
|
|
1464
|
-
unknownToken: null
|
|
1772
|
+
unknownToken: null,
|
|
1773
|
+
command: current,
|
|
1774
|
+
argsStart: index
|
|
1775
|
+
};
|
|
1776
|
+
}
|
|
1777
|
+
async function resolveLeafArgv(root, rawArgs) {
|
|
1778
|
+
const path = await walkCommandPath(root, rawArgs);
|
|
1779
|
+
if (path.unknownToken !== null || await resolveCitty(path.command.subCommands) !== void 0) return null;
|
|
1780
|
+
return {
|
|
1781
|
+
argsDef: await resolveCitty(path.command.args) ?? {},
|
|
1782
|
+
argsStart: path.argsStart
|
|
1465
1783
|
};
|
|
1466
1784
|
}
|
|
1467
1785
|
async function resolveBreadcrumb(root, rawArgs) {
|
|
@@ -1472,16 +1790,11 @@ async function findUnknownCommand(root, rawArgs) {
|
|
|
1472
1790
|
return (await walkCommandPath(root, rawArgs)).unknownToken;
|
|
1473
1791
|
}
|
|
1474
1792
|
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;
|
|
1793
|
+
for (const item of readArgv(rawArgs, flagSpellings(argsDef), start)) {
|
|
1794
|
+
if (item.kind === "positional") return item.index;
|
|
1795
|
+
if (item.kind === "separator") return rawArgs.length;
|
|
1483
1796
|
}
|
|
1484
|
-
return
|
|
1797
|
+
return rawArgs.length;
|
|
1485
1798
|
}
|
|
1486
1799
|
async function findSubCommand(subCommands, token) {
|
|
1487
1800
|
const direct = subCommands[token];
|
|
@@ -1531,7 +1844,7 @@ const JSON_HELP_FLAG = "--json";
|
|
|
1531
1844
|
async function run() {
|
|
1532
1845
|
installInterruptHandler((code) => process.exit(code));
|
|
1533
1846
|
trustSystemCa();
|
|
1534
|
-
const rawArgs =
|
|
1847
|
+
const rawArgs = await normalizeArgv(process.argv.slice(2));
|
|
1535
1848
|
const wantsJsonHelp = rawArgs.includes(JSON_HELP_FLAG);
|
|
1536
1849
|
const showUsageWithBreadcrumb = async (cmd, parent) => {
|
|
1537
1850
|
const breadcrumb = await resolveBreadcrumb(main, rawArgs);
|
|
@@ -1557,8 +1870,15 @@ async function run() {
|
|
|
1557
1870
|
rawArgs
|
|
1558
1871
|
});
|
|
1559
1872
|
}
|
|
1873
|
+
async function normalizeArgv(argv) {
|
|
1874
|
+
const hoisted = hoistGlobalFlags(argv);
|
|
1875
|
+
const leaf = await resolveLeafArgv(main, hoisted);
|
|
1876
|
+
if (leaf === null) return hoisted;
|
|
1877
|
+
const leafArgs = separatePositionals(hoisted.slice(leaf.argsStart), leaf.argsDef);
|
|
1878
|
+
return [...hoisted.slice(0, leaf.argsStart), ...leafArgs];
|
|
1879
|
+
}
|
|
1560
1880
|
run().catch((error) => {
|
|
1561
1881
|
reportError(error);
|
|
1562
1882
|
});
|
|
1563
1883
|
//#endregion
|
|
1564
|
-
export {
|
|
1884
|
+
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 };
|