@metabase/cli 0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a → 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-B_-eMU_k.mjs → add-collection-B-Kczwcj.mjs} +5 -5
- package/dist/{alert-Dalin_DD.mjs → alert-Ne0ivd5m.mjs} +7 -7
- package/dist/{alerts-DpBgrjPI.mjs → alerts-Fakzg9iP.mjs} +6 -6
- package/dist/{append-C1JNVALm.mjs → append-DCDVqPmR.mjs} +4 -4
- package/dist/archive-55sDfnHf.mjs +32 -0
- package/dist/{archive-CdKf_Eqq.mjs → archive-BNJit8eD.mjs} +3 -3
- package/dist/{archive-DckxlWBt.mjs → archive-BbNqts-V.mjs} +3 -3
- package/dist/{archive-B51prFgS.mjs → archive-C93UR4Uc.mjs} +3 -3
- package/dist/{archive-CISXgZAI.mjs → archive-CGmvQht4.mjs} +5 -5
- package/dist/{archive-cAdUa1-2.mjs → archive-CL8wqAzm.mjs} +3 -3
- package/dist/{archive-DVHxeDKS.mjs → archive-CSdktxvW.mjs} +5 -5
- package/dist/{archive-CicPYX27.mjs → archive-CpCSY4RT.mjs} +5 -5
- package/dist/{archive-CwITzj_j.mjs → archive-DCCkQTjQ.mjs} +5 -5
- package/dist/{archive-BkITQyWW.mjs → archive-DCE087yD.mjs} +4 -4
- package/dist/{archive-DA3OiLEE.mjs → archive-DEef7eB8.mjs} +3 -3
- package/dist/{archive-52ZHbFDm2.mjs → archive-DIZu7o4C.mjs} +4 -4
- package/dist/{auth-A96JOCQx.mjs → auth-Bx4QQhqt.mjs} +5 -5
- package/dist/body-CB2eDFFb.mjs +17 -0
- package/dist/branch-flag-pFQPNYKr.mjs +9 -0
- package/dist/{branches-CbcwWYL9.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-DpDcVY7M.mjs → cancel-Bl4BMkwI.mjs} +3 -3
- package/dist/{cancel-task-B4RDvIYb.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-BC0JX8Yg.mjs → cards-BIUYdSIR.mjs} +6 -6
- package/dist/cli.mjs +420 -111
- package/dist/{client-ClL6gf7G.mjs → client-BHIFvEg2.mjs} +863 -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-Dv0l-V9K.mjs → collection-namespace-ZQePD67z.mjs} +2 -2
- package/dist/{content-translation-BXIXL4eW.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-Dhai9zAt.mjs → create-5cDaZcRL.mjs} +3 -3
- package/dist/{create-DWFJdyIr.mjs → create-BEN-2XFK.mjs} +3 -3
- package/dist/create-BJG630xB.mjs +48 -0
- package/dist/{create-NCKHHdov.mjs → create-BTQB1lqX.mjs} +4 -4
- package/dist/{create-kZIIEN2Y.mjs → create-C3TmU1Bi.mjs} +6 -6
- package/dist/create-C7O9tPL2.mjs +34 -0
- package/dist/{create-BVNhtAgF.mjs → create-C8hsOv_D.mjs} +6 -6
- package/dist/{create-D--Z1S3p2.mjs → create-CBSsW8Hm.mjs} +6 -6
- package/dist/{create-BcsVwXgS2.mjs → create-CG6WWY6k.mjs} +4 -4
- package/dist/{create--fiwuTWc.mjs → create-D2Shlb7t.mjs} +3 -3
- package/dist/{create-DmN2gFc4.mjs → create-DVEqry26.mjs} +4 -4
- package/dist/{create-YetX69Re.mjs → create-D_pNX7d0.mjs} +3 -3
- package/dist/{create-Za1EskpV.mjs → create-R0Q-nRlq.mjs} +4 -4
- package/dist/{create-Bryrkb9g.mjs → create-SqmOf6WQ.mjs} +6 -6
- package/dist/{create-branch-CseVn3lp.mjs → create-branch-Cb3CWojg.mjs} +4 -4
- package/dist/{create-BbjSOTN-.mjs → create-c2zR9y4J.mjs} +4 -4
- package/dist/{create-CHr8MPPq.mjs → create-xt4ff6fP.mjs} +3 -3
- package/dist/{create-B9qXQ_wV.mjs → create-zpJIRn9j.mjs} +5 -5
- package/dist/{csv-DNzesu8y.mjs → csv-CRNOhy4X.mjs} +4 -4
- package/dist/{current-task-DRTKZcP9.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-BDijt81U.mjs → db-C8lj73Dz.mjs} +7 -7
- package/dist/delete-09O7BTNw.mjs +44 -0
- package/dist/{delete-wFsy80db.mjs → delete-CYgNpHl7.mjs} +4 -4
- package/dist/{delete-BudvZkvK.mjs → delete-D_ZNoYVv.mjs} +4 -4
- package/dist/{delete--15it-A8.mjs → delete-HWeQtc4M.mjs} +4 -4
- package/dist/delete-I4eFpsed.mjs +44 -0
- package/dist/{delete-Dc8E5YwZ.mjs → delete-My8TX-B2.mjs} +4 -4
- package/dist/{delete-BxjJ66BS.mjs → delete-qwdN0N7e.mjs} +4 -4
- package/dist/delete-runtime-BbmRg_in.mjs +55 -0
- package/dist/{delete-table-5AQpn8OB.mjs → delete-table-BCvjX7bh.mjs} +4 -4
- package/dist/{dependencies-C1ogC3BV.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-CSLDYO-K.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-Ddap1OAo.mjs → download-BImtTll0.mjs} +2 -2
- package/dist/{eid-HnrWhPoe.mjs → eid-D0FxhT9H.mjs} +11 -10
- package/dist/entity-DWp9WJbU.mjs +20 -0
- package/dist/entry-flags-3sDWwa90.mjs +42 -0
- package/dist/{events-CXqetjcS.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-DxHxuxwO.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-CDnmpfHQ.mjs → get-BMHbEGbr.mjs} +4 -4
- package/dist/{get-BiPclcIP.mjs → get-BTCOzSkl.mjs} +3 -3
- package/dist/{get-DmKtPNOy.mjs → get-BawLhSwW.mjs} +3 -3
- package/dist/{get-BcoJ9Aha.mjs → get-BjqqFG2m.mjs} +3 -3
- package/dist/{get-C3cuZNeW.mjs → get-C-R_Fdsi.mjs} +3 -3
- package/dist/{get-H6kInHIx.mjs → get-C73V2KsB.mjs} +5 -5
- package/dist/{get-BGLvyOO3.mjs → get-C9sq2boy.mjs} +5 -5
- package/dist/{get-B2pj2q3X.mjs → get-Cggv6yLC.mjs} +4 -4
- package/dist/{get-CxUQyhte.mjs → get-CkXc0Xld.mjs} +5 -5
- package/dist/{get-BF2vdF3W.mjs → get-CqNEVAX_2.mjs} +3 -3
- package/dist/{get-Dtre5jzh.mjs → get-D7h7uH4k.mjs} +5 -5
- package/dist/get-DGmE5fmp.mjs +31 -0
- package/dist/{get-D_x-ENFe.mjs → get-DTTsPd-c.mjs} +5 -5
- package/dist/{get-DW7mCaGe.mjs → get-DXBXhPrU.mjs} +5 -5
- package/dist/{get-CE9_4Q7E.mjs → get-D_v1IAL1.mjs} +3 -3
- package/dist/{get-eJilYnHk.mjs → get-DkzO3G5p.mjs} +5 -5
- package/dist/{get-DjlQhgD4.mjs → get-Dvr_69L7.mjs} +3 -3
- package/dist/get-NOMvMvYJ.mjs +36 -0
- package/dist/{get-C_tdSMwW2.mjs → get-YPDWhgm_2.mjs} +4 -4
- package/dist/{get-b0CoPz5B.mjs → get-Z36_0HX_.mjs} +4 -4
- package/dist/{get-run-BE1HtJDW.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-Cj1KhBOT.mjs → has-remote-changes-iTRCU9j0.mjs} +4 -4
- package/dist/{import-DLb9VN4l.mjs → import-CdSs5CtT.mjs} +19 -8
- package/dist/{input-D5tQEfqN.mjs → input-D8qW-KtR.mjs} +6 -2
- package/dist/{is-dirty-BxtgV2xF.mjs → is-dirty-B5fj9NeS.mjs} +2 -2
- package/dist/{items-DLUYc5-z.mjs → items-BxWnNEh7.mjs} +8 -8
- package/dist/{key-PYetuQ13.mjs → key-BynJSK9u.mjs} +1 -1
- package/dist/{library-BNSxXOpc.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-cIMww2Me.mjs → list-BPMOLrwn.mjs} +5 -5
- package/dist/{list-jhQSgh6i.mjs → list-BTcEm4td.mjs} +3 -3
- package/dist/{list-M8J10Ozk.mjs → list-BTgAbqeS.mjs} +4 -4
- package/dist/{list-CERbeLbQ.mjs → list-Bop1NTbU.mjs} +6 -6
- package/dist/{list-BQnOEB3W.mjs → list-By9XJRiv.mjs} +3 -3
- package/dist/list-CNC-XHbN.mjs +35 -0
- package/dist/{list-CX9qZ-bx.mjs → list-CPWgBkPa.mjs} +4 -4
- package/dist/{list-C5mS_ehX.mjs → list-Cpa0Se7M.mjs} +5 -5
- package/dist/list-DA9KsA0o.mjs +101 -0
- package/dist/{list-Dat8QNcf.mjs → list-DE9gYY3I.mjs} +3 -3
- package/dist/{list-COLpwXW4.mjs → list-DFJt2-fY.mjs} +4 -4
- package/dist/{list-CBLxhaNZ.mjs → list-DUcnAb1h.mjs} +3 -3
- package/dist/{list-CehE6KBV.mjs → list-DW4-u7eO.mjs} +5 -5
- package/dist/{list-CQbiSx26.mjs → list-DbXnSL2x.mjs} +5 -5
- package/dist/list-DgsM9YQX.mjs +28 -0
- package/dist/{list-Sd7jGZoX.mjs → list-Dzzt6Yee.mjs} +3 -3
- package/dist/{list-BUz6KOfw.mjs → list-ZHLsjxXg.mjs} +6 -6
- package/dist/{list-CzRzCbCY.mjs → list-e7yvJYMw.mjs} +3 -3
- package/dist/{list-B1soS8QW.mjs → list-hN_Tu2T6.mjs} +6 -6
- package/dist/{list-BcP1DTJH.mjs → list-zyKxxNvn.mjs} +3 -3
- package/dist/{login-BfLqBfCd.mjs → login-B7nGQDZK.mjs} +6 -6
- package/dist/{logout-BpRXB3Ze.mjs → logout-pZffAh1G.mjs} +2 -2
- package/dist/{measure-Ds8O5Evr.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-DhrkLXoN.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-_GHFrTLx.mjs → path-DM4vyihl.mjs} +4 -4
- package/dist/{poll-KLl4Eq8Y.mjs → poll-Dz4tUm2f.mjs} +2 -2
- package/dist/{preflight-BpYtF0IU.mjs → preflight-DaZ2z2C1.mjs} +3 -3
- package/dist/{process-CLtOWKBn.mjs → process-D0HdqZ3r.mjs} +1 -1
- package/dist/{publish-D-7Zlmuk.mjs → publish-C0HCL04a.mjs} +4 -4
- package/dist/{pulse-x0gFxWfG.mjs → pulse-D1uh8UIU.mjs} +1 -1
- package/dist/{query-B1CZztxs.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-C4saCFxz.mjs → remove-collection-DoctJa9g.mjs} +5 -5
- package/dist/{render-6O_eF-P1.mjs → render-Bvm9mta6.mjs} +2 -2
- package/dist/{replace-BuR4f2Ai.mjs → replace-CaFJd9fO.mjs} +4 -4
- package/dist/rescan-values-7VOGCLMe.mjs +32 -0
- package/dist/{rescan-values-CNOiiWQ5.mjs → rescan-values-sJRwcHsk.mjs} +5 -5
- package/dist/{run-DijA_BXt.mjs → run-COHDQ5J4.mjs} +3 -3
- package/dist/{run-QEUbWNm7.mjs → run-RXpFlDAB.mjs} +7 -7
- package/dist/{runs-BSlhVeDO.mjs → runs-CUYdCKiE.mjs} +5 -5
- package/dist/{runtime-Dtb93zKy.mjs → runtime-B8RtMb4B.mjs} +21 -82
- package/dist/{schema-tables-BE3rEb6I.mjs → schema-tables-CO5qyZBe.mjs} +6 -6
- package/dist/{schemas-yDjBiwlH.mjs → schemas-CzHHgDdF.mjs} +4 -4
- package/dist/search-BWb052_b.mjs +131 -0
- package/dist/search-Cc9vHNae.mjs +85 -0
- package/dist/{segment-Cm6zQjJW.mjs → segment-C_rsUkHK.mjs} +6 -6
- package/dist/{send-kC8oerkT.mjs → send-C-3bkpni.mjs} +3 -3
- package/dist/{set-tFhPkxrL.mjs → set-BDkT37OT.mjs} +4 -4
- package/dist/{set-active-lDKhAlij.mjs → set-active-CDJTfQEc.mjs} +3 -3
- package/dist/set-sensitivity-DVrINHde.mjs +57 -0
- package/dist/{setting-DrJXCaFE.mjs → setting-CoLzd08x.mjs} +4 -4
- package/dist/{setup-BWY9M0iR.mjs → setup-C4F4XYbU.mjs} +3 -3
- package/dist/{signal-Csom0mt5.mjs → signal-CxWeLszu.mjs} +1 -1
- package/dist/{skill-list-CCes8pKe.mjs → skill-list-BgihWuPf.mjs} +2 -2
- package/dist/{skills-DE9ej5Rg.mjs → skills-4qDjKRSk.mjs} +2 -2
- package/dist/{skills-DPRN2384.mjs → skills-BWEFRpUj.mjs} +3 -3
- package/dist/snippet-CYd8D9SK.mjs +19 -0
- package/dist/{stash-C9oDvQ9P.mjs → stash-CZ1x0rox.mjs} +6 -6
- package/dist/{status-DSdXmNC3.mjs → status-BM6eYW7I.mjs} +3 -3
- package/dist/{status-CkpujA26.mjs → status-gqpPZvue.mjs} +7 -7
- package/dist/{subscription-DKOKoHRG.mjs → subscription-pSuO241O.mjs} +6 -6
- package/dist/{subscriptions-C5SyJL4B.mjs → subscriptions-n5zJ9rYZ.mjs} +6 -6
- package/dist/{summary-DTPgXsc0.mjs → summary-DvIf2EiO.mjs} +5 -5
- package/dist/sync-schema-Cc21crxQ.mjs +32 -0
- package/dist/{sync-schema-DKKkNSR7.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-n4Lzet7l.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-D6NXqWaX.mjs → transform-tag-C0jzV6Dk.mjs} +5 -5
- package/dist/{transforms-O4NtXqFz.mjs → transforms-DwTy_Quh.mjs} +5 -5
- package/dist/tree-p2j6IVy-.mjs +34 -0
- package/dist/{unpublish-DvWefKJi.mjs → unpublish-B-961jX1.mjs} +3 -3
- package/dist/unreferenced-Dxy-aYI7.mjs +36 -0
- package/dist/{update-DXmZuJho.mjs → update-BFYRBbRu.mjs} +6 -6
- package/dist/{update-xEegxIyH.mjs → update-BGeaPntx.mjs} +5 -5
- package/dist/{update-Bah7N8QX.mjs → update-BnIEN390.mjs} +5 -5
- package/dist/{update-To6A1Ugu.mjs → update-CALlEgIC.mjs} +4 -4
- package/dist/{update-76nzOc71.mjs → update-CHkVN69L.mjs} +13 -8
- package/dist/{update-AJ2JmwDl.mjs → update-CKqL9PmU.mjs} +5 -5
- package/dist/{update-DmgRIp7o.mjs → update-CYGYUCFQ.mjs} +4 -4
- package/dist/update-CuQy2g51.mjs +52 -0
- package/dist/{update-DOdcflLH.mjs → update-D4TGE6FS.mjs} +7 -7
- package/dist/{update-H_fdjugs.mjs → update-D7xi-0bU.mjs} +4 -4
- package/dist/{update-2KIpYgyj.mjs → update-DK77vtFF.mjs} +6 -6
- package/dist/{update-7oKvP1HC.mjs → update-DKDQTlnV.mjs} +5 -5
- package/dist/update-DXxJHC8y.mjs +41 -0
- package/dist/update-DiJK0uRG.mjs +181 -0
- package/dist/{update-CGJvIS-l.mjs → update-MD1Kwq1P.mjs} +4 -4
- package/dist/{update-dashcard-DjT5QOkL.mjs → update-dashcard-DuTjOh14.mjs} +6 -6
- package/dist/{update-D7dG7H-z.mjs → update-hvO4VpfZ.mjs} +7 -7
- package/dist/{update-DV54H3L5.mjs → update-qDZvnwvf.mjs} +7 -7
- package/dist/{update-BB6Go_RX.mjs → update-tltXCUwR.mjs} +4 -4
- package/dist/{upgrade-CuJx9fX4.mjs → upgrade-Ca-Ss5jb.mjs} +4 -4
- package/dist/{upload-DOO94rCQ.mjs → upload-C2fhpKkP.mjs} +2 -2
- package/dist/upload-Dw7mVr9u.mjs +13 -0
- package/dist/{upload-CboARPZm.mjs → upload-t6dkccqn.mjs} +3 -3
- package/dist/{uuid-InwZlrpQ.mjs → uuid-BMlJZT8z.mjs} +2 -2
- package/dist/{validate-D6-Vg_kn.mjs → validate-D7e110oU.mjs} +1 -1
- package/dist/{validate-query-B90KYPQr.mjs → validate-query-BzbZmenf.mjs} +7 -3
- package/dist/{values-CsZLk1Ls.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-DrGjZwBM.mjs → verify-t-CEmvoG.mjs} +3 -3
- package/dist/{wait-BmzdarP9.mjs → wait-KSkq7kKW.mjs} +6 -6
- package/dist/{wait-flags-CiJGrTCT.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 +24 -23
- 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/skill-data/transform/SKILL.md +1 -63
- package/dist/body-CshgcV6U.mjs +0 -17
- package/dist/card-CefVYtF7.mjs +0 -24
- package/dist/collection-Be5AHVWP.mjs +0 -20
- package/dist/create-DiJ8bUb-.mjs +0 -34
- package/dist/dashboard-CMw13KXM.mjs +0 -33
- package/dist/database-JtHTqSpq.mjs +0 -26
- package/dist/delete-Bsdwqh7H.mjs +0 -44
- package/dist/delete-runtime-BKEzJn22.mjs +0 -49
- package/dist/document-BGzVip5_.mjs +0 -19
- package/dist/export-IFZdgYZ2.mjs +0 -63
- package/dist/field-BJ6HoLRd.mjs +0 -18
- package/dist/field-fDtIrY6D.mjs +0 -80
- package/dist/get-i0KInCw9.mjs +0 -32
- package/dist/get-jofVjU6e.mjs +0 -31
- package/dist/git-sync-TjX1r_wF.mjs +0 -136
- package/dist/git-sync-xKC1sqC4.mjs +0 -28
- package/dist/list-Cuhf2lKL.mjs +0 -35
- package/dist/list-D-SyhKFw.mjs +0 -34
- package/dist/parse-id-DtM6q9HU.mjs +0 -10
- package/dist/query-CxESKMve.mjs +0 -114
- package/dist/query-result-E4Q-Gra6.mjs +0 -15
- package/dist/run-FmRruANb.mjs +0 -64
- package/dist/search-CR_xNArA.mjs +0 -97
- package/dist/selectors-C-vgMcGK.mjs +0 -35
- package/dist/snippet-DWHTSo9c.mjs +0 -19
- package/dist/sync-task-BtDnTXCP.mjs +0 -38
- package/dist/table-C6h4tIRw.mjs +0 -37
- package/dist/table-I8NXSdUC.mjs +0 -18
- package/dist/timeline-B_ESH-6W.mjs +0 -21
- package/dist/transform-BNuNiH9d.mjs +0 -28
- package/dist/transform-job-B7yc6dfH.mjs +0 -22
- package/dist/transform-test-BjjCQ2xm.mjs +0 -169
- package/dist/transform-test-C1Oqtfb-.mjs +0 -16
- package/dist/transform-test-gzDcbypy.mjs +0 -25
- package/dist/transport-CyVo29u7.mjs +0 -313
- package/dist/tree-CuyF116R.mjs +0 -26
- package/dist/update-l3PyNQKG.mjs +0 -41
- package/dist/upload-2YFFBSln.mjs +0 -13
- package/skill-data/transform-test-plan/SKILL.md +0 -171
- package/skill-data/transform-test-plan/references/checklist.md +0 -81
- package/skill-data/transform-test-plan/references/checks.md +0 -263
package/dist/cli.mjs
CHANGED
|
@@ -120,15 +120,6 @@ var InternalError = class extends MetabaseError {
|
|
|
120
120
|
this.name = "InternalError";
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
|
-
var FailedResultError = class extends MetabaseError {
|
|
124
|
-
category = "failed";
|
|
125
|
-
isRetryable = false;
|
|
126
|
-
developerDetail = null;
|
|
127
|
-
constructor(message) {
|
|
128
|
-
super(message);
|
|
129
|
-
this.name = "FailedResultError";
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
123
|
var AbortError = class extends MetabaseError {
|
|
133
124
|
category = "abort";
|
|
134
125
|
isRetryable = false;
|
|
@@ -198,18 +189,283 @@ function toAliasArray(alias) {
|
|
|
198
189
|
if (alias === void 0) return [];
|
|
199
190
|
return Array.isArray(alias) ? alias : [alias];
|
|
200
191
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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();
|
|
207
207
|
for (const [key, def] of Object.entries(argsDef)) {
|
|
208
|
-
if (def.type
|
|
209
|
-
|
|
210
|
-
|
|
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
|
+
});
|
|
211
234
|
}
|
|
212
|
-
return
|
|
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;
|
|
340
|
+
}
|
|
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;
|
|
213
469
|
}
|
|
214
470
|
//#endregion
|
|
215
471
|
//#region src/output/types.ts
|
|
@@ -240,7 +496,13 @@ function listEnvelopeShape(item) {
|
|
|
240
496
|
}
|
|
241
497
|
//#endregion
|
|
242
498
|
//#region src/commands/flags.ts
|
|
243
|
-
|
|
499
|
+
function listFlag(def) {
|
|
500
|
+
return {
|
|
501
|
+
...def,
|
|
502
|
+
list: true
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
const formatFlags = {
|
|
244
506
|
format: {
|
|
245
507
|
type: "string",
|
|
246
508
|
description: "auto | json | text",
|
|
@@ -249,15 +511,18 @@ const outputFlags = {
|
|
|
249
511
|
json: {
|
|
250
512
|
type: "boolean",
|
|
251
513
|
description: "Shorthand for --format json"
|
|
252
|
-
}
|
|
514
|
+
}
|
|
515
|
+
};
|
|
516
|
+
const outputFlags = {
|
|
517
|
+
...formatFlags,
|
|
253
518
|
full: {
|
|
254
519
|
type: "boolean",
|
|
255
520
|
description: "Return the full object (default: compact)"
|
|
256
521
|
},
|
|
257
|
-
fields: {
|
|
522
|
+
fields: listFlag({
|
|
258
523
|
type: "string",
|
|
259
524
|
description: "Dot-paths, comma separated (mutually exclusive with --full)"
|
|
260
|
-
},
|
|
525
|
+
}),
|
|
261
526
|
maxBytes: {
|
|
262
527
|
type: "string",
|
|
263
528
|
description: "Output size cap; 0 disables",
|
|
@@ -309,50 +574,32 @@ const connectionFlags = {
|
|
|
309
574
|
};
|
|
310
575
|
//#endregion
|
|
311
576
|
//#region src/commands/global-flags.ts
|
|
312
|
-
const
|
|
313
|
-
const NEGATION_PREFIX = "no-";
|
|
314
|
-
const GLOBAL_FLAG_ARGS = {
|
|
577
|
+
const GLOBAL_FLAG_SPELLINGS = flagSpellings({
|
|
315
578
|
...outputFlags,
|
|
316
579
|
...listFlags,
|
|
317
580
|
...profileFlag,
|
|
318
581
|
...connectionFlags
|
|
319
|
-
};
|
|
320
|
-
const GLOBAL_FLAG_NAMES = buildGlobalFlagNames();
|
|
321
|
-
function buildGlobalFlagNames() {
|
|
322
|
-
const names = /* @__PURE__ */ new Set();
|
|
323
|
-
for (const [key, def] of Object.entries(GLOBAL_FLAG_ARGS)) {
|
|
324
|
-
names.add(normalizeFlag(key));
|
|
325
|
-
if ("alias" in def) for (const alias of toAliasArray(def.alias)) names.add(normalizeFlag(alias));
|
|
326
|
-
}
|
|
327
|
-
return names;
|
|
328
|
-
}
|
|
329
|
-
function isGlobalFlag(token) {
|
|
330
|
-
if (!token.startsWith("-") || token === ARGUMENT_SEPARATOR) return false;
|
|
331
|
-
const raw = token.includes("=") ? token.slice(0, token.indexOf("=")) : token;
|
|
332
|
-
const name = normalizeFlag(raw);
|
|
333
|
-
if (GLOBAL_FLAG_NAMES.has(name)) return true;
|
|
334
|
-
const bare = raw.replace(/^-+/, "");
|
|
335
|
-
if (bare.startsWith(NEGATION_PREFIX)) return GLOBAL_FLAG_NAMES.has(normalizeFlag(bare.slice(3)));
|
|
336
|
-
return false;
|
|
337
|
-
}
|
|
582
|
+
});
|
|
338
583
|
function hoistGlobalFlags(rawArgs) {
|
|
339
|
-
const
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
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;
|
|
353
601
|
}
|
|
354
|
-
|
|
355
|
-
return [...rawArgs.slice(index), ...leading];
|
|
602
|
+
return end;
|
|
356
603
|
}
|
|
357
604
|
//#endregion
|
|
358
605
|
//#region src/core/system-ca.ts
|
|
@@ -367,7 +614,7 @@ function trustSystemCa() {
|
|
|
367
614
|
//#endregion
|
|
368
615
|
//#region package.json
|
|
369
616
|
var name = "@metabase/cli";
|
|
370
|
-
var version = "0.
|
|
617
|
+
var version = "0.4.0-alpha.release-65-integration-branch.31ca6bb";
|
|
371
618
|
var description = "Metabase CLI";
|
|
372
619
|
//#endregion
|
|
373
620
|
//#region src/runtime/command-augment.ts
|
|
@@ -387,37 +634,39 @@ const main = defineCommand({
|
|
|
387
634
|
description
|
|
388
635
|
},
|
|
389
636
|
subCommands: {
|
|
390
|
-
auth: () => import("./auth-
|
|
391
|
-
db: () => import("./db-
|
|
392
|
-
table: () => import("./table-
|
|
393
|
-
field: () => import("./field-
|
|
394
|
-
upload: () => import("./upload-
|
|
395
|
-
"content-translation": () => import("./content-translation-
|
|
396
|
-
card: () => import("./card-
|
|
397
|
-
dashboard: () => import("./dashboard-
|
|
398
|
-
subscription: () => import("./subscription-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
"transform-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
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)
|
|
421
670
|
}
|
|
422
671
|
});
|
|
423
672
|
setMetabaseAugment(main, {
|
|
@@ -590,6 +839,18 @@ function jsonByteLength(value) {
|
|
|
590
839
|
function isPlainObject(value) {
|
|
591
840
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
592
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
|
+
}
|
|
593
854
|
//#endregion
|
|
594
855
|
//#region src/output/projection.ts
|
|
595
856
|
function projectForList(item, view, opts) {
|
|
@@ -682,7 +943,7 @@ function renderRows(head, rows) {
|
|
|
682
943
|
return table.toString();
|
|
683
944
|
}
|
|
684
945
|
function formatCell(row, column) {
|
|
685
|
-
const value = row[column.key];
|
|
946
|
+
const value = column.value === void 0 ? row[column.key] : column.value(row);
|
|
686
947
|
if (column.format !== void 0) return column.format(value);
|
|
687
948
|
return formatScalar(value);
|
|
688
949
|
}
|
|
@@ -825,7 +1086,6 @@ function exitCodeFor(category) {
|
|
|
825
1086
|
case "response-shape":
|
|
826
1087
|
case "timeout":
|
|
827
1088
|
case "internal":
|
|
828
|
-
case "failed":
|
|
829
1089
|
case "unknown": return FAILURE_EXIT_CODE;
|
|
830
1090
|
}
|
|
831
1091
|
}
|
|
@@ -876,6 +1136,8 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
876
1136
|
//#endregion
|
|
877
1137
|
//#region ../client/src/version/features.ts
|
|
878
1138
|
const FEATURE_RULES = {
|
|
1139
|
+
dataActionCollections: { since: 65 },
|
|
1140
|
+
dataActionsWithoutModel: { since: 65 },
|
|
879
1141
|
transforms: { since: 59 },
|
|
880
1142
|
transformJobActivation: { since: 61 },
|
|
881
1143
|
measures: { since: 59 },
|
|
@@ -891,6 +1153,11 @@ const FEATURE_RULES = {
|
|
|
891
1153
|
since: 63,
|
|
892
1154
|
tokenFeature: "remote_sync"
|
|
893
1155
|
},
|
|
1156
|
+
remoteSyncBranchGuard: { since: 63 },
|
|
1157
|
+
remoteSyncMerge: {
|
|
1158
|
+
since: 63,
|
|
1159
|
+
tokenFeature: "remote_sync"
|
|
1160
|
+
},
|
|
894
1161
|
contentTranslation: {
|
|
895
1162
|
since: 58,
|
|
896
1163
|
tokenFeature: "content_translation"
|
|
@@ -907,6 +1174,10 @@ const FEATURE_RULES = {
|
|
|
907
1174
|
transformJobRunIdIsNumeric: { since: 64 },
|
|
908
1175
|
transformCheckpointReset: { since: 60 },
|
|
909
1176
|
fieldDataSensitivity: { since: 64 },
|
|
1177
|
+
fieldRemappingAppendsDisplayColumns: {
|
|
1178
|
+
since: 58,
|
|
1179
|
+
until: 59
|
|
1180
|
+
},
|
|
910
1181
|
transformDagRuns: { since: 64 },
|
|
911
1182
|
unifiedTransformRuns: { since: 64 },
|
|
912
1183
|
transformTests: {
|
|
@@ -918,6 +1189,10 @@ const FEATURE_RULES = {
|
|
|
918
1189
|
invalidMbqlIsBadRequest: { since: 59 },
|
|
919
1190
|
boxplotDisplay: { since: 59 },
|
|
920
1191
|
nativeTableTemplateTag: { since: 59 },
|
|
1192
|
+
compiledQueryOmitsCollection: {
|
|
1193
|
+
since: 59,
|
|
1194
|
+
until: 62
|
|
1195
|
+
},
|
|
921
1196
|
smartLinkMeasureModel: { since: 60 },
|
|
922
1197
|
dashboardSubscriptionFilters: {
|
|
923
1198
|
since: 58,
|
|
@@ -931,15 +1206,22 @@ const FEATURE_RULES = {
|
|
|
931
1206
|
since: 59,
|
|
932
1207
|
tokenFeature: "dependencies"
|
|
933
1208
|
},
|
|
934
|
-
|
|
1209
|
+
dependencyAsyncBackfill: {
|
|
1210
|
+
since: 60,
|
|
1211
|
+
tokenFeature: "dependencies"
|
|
1212
|
+
},
|
|
1213
|
+
measureDependencyGraph: { since: 59 },
|
|
935
1214
|
tableListAccessFilters: { since: 59 },
|
|
936
1215
|
tableListTransformTargets: { since: 60 },
|
|
1216
|
+
tableListPublishedFilter: { since: 63 },
|
|
937
1217
|
tableUnusedFilter: {
|
|
938
1218
|
since: 58,
|
|
939
1219
|
tokenFeature: "dependencies"
|
|
940
1220
|
},
|
|
941
1221
|
tableDataLayerTiers: { since: 59 },
|
|
942
1222
|
bulkTableEdit: { since: 59 },
|
|
1223
|
+
tableUserValueWithdrawal: { since: 64 },
|
|
1224
|
+
bulkTableSync: { since: 59 },
|
|
943
1225
|
erd: {
|
|
944
1226
|
since: 62,
|
|
945
1227
|
tokenFeature: "schema-viewer"
|
|
@@ -963,7 +1245,8 @@ const FEATURE_RULES = {
|
|
|
963
1245
|
},
|
|
964
1246
|
metricDefinitionQuery: { since: 60 },
|
|
965
1247
|
metricDimensionListing: { since: 64 },
|
|
966
|
-
oauthFullAccessScope: { since: 63 }
|
|
1248
|
+
oauthFullAccessScope: { since: 63 },
|
|
1249
|
+
exportCsvByteOrderMark: { since: 63 }
|
|
967
1250
|
};
|
|
968
1251
|
function isFeatureName(name) {
|
|
969
1252
|
return Object.hasOwn(FEATURE_RULES, name);
|
|
@@ -1001,7 +1284,6 @@ const METHOD_REQUIREMENTS = {
|
|
|
1001
1284
|
"card.exportQuery": [],
|
|
1002
1285
|
"card.queryMetadata": [],
|
|
1003
1286
|
"collection.list": [],
|
|
1004
|
-
"collection.listWithLibrary": [],
|
|
1005
1287
|
"collection.get": [],
|
|
1006
1288
|
"collection.create": [],
|
|
1007
1289
|
"collection.update": [],
|
|
@@ -1020,6 +1302,13 @@ const METHOD_REQUIREMENTS = {
|
|
|
1020
1302
|
"dashboard.checkCardReferences": [],
|
|
1021
1303
|
"dashboard.parameterValues": [],
|
|
1022
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": [],
|
|
1023
1312
|
"database.list": [],
|
|
1024
1313
|
"database.get": [],
|
|
1025
1314
|
"database.schemas": [],
|
|
@@ -1045,6 +1334,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1045
1334
|
"erd.get": ["erd"],
|
|
1046
1335
|
"field.get": [],
|
|
1047
1336
|
"field.update": [],
|
|
1337
|
+
"field.setDataSensitivity": ["fieldDataSensitivity"],
|
|
1048
1338
|
"field.search": [],
|
|
1049
1339
|
"field.remapping": [],
|
|
1050
1340
|
"field.summary": [],
|
|
@@ -1064,6 +1354,7 @@ const METHOD_REQUIREMENTS = {
|
|
|
1064
1354
|
"gitSync.syncedCollections": ["remoteSync"],
|
|
1065
1355
|
"gitSync.remoteUrl": [],
|
|
1066
1356
|
"gitSync.branch": [],
|
|
1357
|
+
"gitSync.trackedBranch": [],
|
|
1067
1358
|
"gitSync.waitForTask": ["remoteSync"],
|
|
1068
1359
|
"glossary.list": [],
|
|
1069
1360
|
"glossary.create": [],
|
|
@@ -1127,7 +1418,11 @@ const METHOD_REQUIREMENTS = {
|
|
|
1127
1418
|
"table.fks": [],
|
|
1128
1419
|
"table.syncSchema": [],
|
|
1129
1420
|
"table.rescanValues": [],
|
|
1421
|
+
"table.discardValues": [],
|
|
1130
1422
|
"table.bulkEdit": ["bulkTableEdit"],
|
|
1423
|
+
"table.bulkSyncSchema": ["bulkTableSync"],
|
|
1424
|
+
"table.bulkRescanValues": ["bulkTableSync"],
|
|
1425
|
+
"table.bulkDiscardValues": ["bulkTableSync"],
|
|
1131
1426
|
"table.appendCsv": [],
|
|
1132
1427
|
"table.replaceCsv": [],
|
|
1133
1428
|
"timeline.list": [],
|
|
@@ -1464,7 +1759,9 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1464
1759
|
const match = await findSubCommand(subCommands, token);
|
|
1465
1760
|
if (match === null) return {
|
|
1466
1761
|
segments,
|
|
1467
|
-
unknownToken: token
|
|
1762
|
+
unknownToken: token,
|
|
1763
|
+
command: current,
|
|
1764
|
+
argsStart: index
|
|
1468
1765
|
};
|
|
1469
1766
|
segments.push(match.name);
|
|
1470
1767
|
current = match.command;
|
|
@@ -1472,7 +1769,17 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1472
1769
|
}
|
|
1473
1770
|
return {
|
|
1474
1771
|
segments,
|
|
1475
|
-
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
|
|
1476
1783
|
};
|
|
1477
1784
|
}
|
|
1478
1785
|
async function resolveBreadcrumb(root, rawArgs) {
|
|
@@ -1483,16 +1790,11 @@ async function findUnknownCommand(root, rawArgs) {
|
|
|
1483
1790
|
return (await walkCommandPath(root, rawArgs)).unknownToken;
|
|
1484
1791
|
}
|
|
1485
1792
|
function skipFlags(rawArgs, start, argsDef) {
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
if (token === void 0) return index;
|
|
1490
|
-
if (token === "--") return rawArgs.length;
|
|
1491
|
-
if (!token.startsWith("-")) return index;
|
|
1492
|
-
if (flagConsumesValue(token, argsDef)) index += 1;
|
|
1493
|
-
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;
|
|
1494
1796
|
}
|
|
1495
|
-
return
|
|
1797
|
+
return rawArgs.length;
|
|
1496
1798
|
}
|
|
1497
1799
|
async function findSubCommand(subCommands, token) {
|
|
1498
1800
|
const direct = subCommands[token];
|
|
@@ -1542,7 +1844,7 @@ const JSON_HELP_FLAG = "--json";
|
|
|
1542
1844
|
async function run() {
|
|
1543
1845
|
installInterruptHandler((code) => process.exit(code));
|
|
1544
1846
|
trustSystemCa();
|
|
1545
|
-
const rawArgs =
|
|
1847
|
+
const rawArgs = await normalizeArgv(process.argv.slice(2));
|
|
1546
1848
|
const wantsJsonHelp = rawArgs.includes(JSON_HELP_FLAG);
|
|
1547
1849
|
const showUsageWithBreadcrumb = async (cmd, parent) => {
|
|
1548
1850
|
const breadcrumb = await resolveBreadcrumb(main, rawArgs);
|
|
@@ -1568,8 +1870,15 @@ async function run() {
|
|
|
1568
1870
|
rawArgs
|
|
1569
1871
|
});
|
|
1570
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
|
+
}
|
|
1571
1880
|
run().catch((error) => {
|
|
1572
1881
|
reportError(error);
|
|
1573
1882
|
});
|
|
1574
1883
|
//#endregion
|
|
1575
|
-
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 };
|