@metabase/cli 0.3.1-alpha.support-worktrees.b634907 → 0.3.1-alpha.versioning.9ac5f50
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-CxzzDG4z.mjs → add-collection-Dmd-uNeU.mjs} +6 -10
- package/dist/{alert-CQ7Az16h.mjs → alert-D1u2MVZj.mjs} +7 -7
- package/dist/{alerts-DmwyyBfW.mjs → alerts-DcBjcfEE.mjs} +7 -8
- package/dist/{append-B0avMkvW.mjs → append-B9Htvmab.mjs} +5 -6
- package/dist/{archive-CMTHh4-w.mjs → archive-B660RguB.mjs} +4 -5
- package/dist/{archive-THcEfy9B.mjs → archive-BNivAYGr.mjs} +5 -6
- package/dist/{archive-DCyeRNfV.mjs → archive-BUoYMkxO.mjs} +4 -5
- package/dist/{archive-BZEu6UfT.mjs → archive-BVmFGFwG.mjs} +6 -7
- package/dist/archive-Bf014rFm.mjs +32 -0
- package/dist/{archive-DFofUIEC.mjs → archive-BmsZFOZY.mjs} +4 -5
- package/dist/archive-CNif6BKy.mjs +32 -0
- package/dist/{archive-BPSNe0Ul.mjs → archive-CgmidYZV.mjs} +4 -5
- package/dist/{archive-Cvrkz8F8.mjs → archive-CvU2z5192.mjs} +5 -6
- package/dist/{archive-BQ50OZ7y.mjs → archive-DhDQIKR_.mjs} +4 -5
- package/dist/{archive-BVblae-p.mjs → archive-bPdDITuY.mjs} +4 -5
- package/dist/{auth-BEEkuu4J.mjs → auth-CefYEPP5.mjs} +5 -5
- package/dist/{body-DxRSAMNC.mjs → body-C7m9q4cm.mjs} +3 -3
- package/dist/{branches-CmWc8NyL.mjs → branches-pz04OjF2.mjs} +4 -8
- package/dist/{cancel-DrQqmxvn.mjs → cancel-CNLnv19e.mjs} +4 -5
- package/dist/cancel-task-DbnxSh7U.mjs +25 -0
- package/dist/card-BRarvKYX.mjs +24 -0
- package/dist/{card-CrBGUkGQ.mjs → card-DZxRmver.mjs} +0 -1
- package/dist/{card-BEeafd4Y.mjs → card-zyUkr2nS.mjs} +1 -1
- package/dist/{cards-M_6X8wCI.mjs → cards-DtYlVoGP.mjs} +5 -6
- package/dist/cli.mjs +566 -170
- package/dist/{client-DYD8WZYy.mjs → client-Bv7Iwdvh.mjs} +285 -269
- package/dist/collection-CKeO8X7U.mjs +20 -0
- package/dist/{collection-CJHqsFKP.mjs → collection-DALwHnbz.mjs} +1 -1
- package/dist/{collection-BxE7OzcQ.mjs → collection-WFdBeyqa.mjs} +4 -7
- package/dist/{collection-namespace-CEoQ7G08.mjs → collection-namespace-CvT0TIZA.mjs} +2 -2
- package/dist/{content-translation-C8MlXPOF.mjs → content-translation-D7POzJJ6.mjs} +3 -3
- package/dist/{create-CoubLR5o.mjs → create-BEE8uvz2.mjs} +9 -6
- package/dist/{create-D0anrINz.mjs → create-Bh2j733n.mjs} +11 -16
- package/dist/{create-BupBEwR2.mjs → create-Bwg-5p08.mjs} +8 -13
- package/dist/{create-ByuJ6T4k.mjs → create-CGPle4nE.mjs} +7 -8
- package/dist/{create-hTc131aX.mjs → create-CGgPnb7L.mjs} +4 -5
- package/dist/{create-CY-SzM66.mjs → create-CLgalJUe.mjs} +12 -17
- package/dist/{create-C2XFfbjx.mjs → create-CN24yp_W.mjs} +6 -7
- package/dist/{create-BLWwN0uw.mjs → create-CuYGZ4gu2.mjs} +5 -6
- package/dist/{create-CJ7Am4Gc.mjs → create-DGHILnnk.mjs} +5 -6
- package/dist/{create-z-oMrlfT.mjs → create-DYd_o9BD.mjs} +5 -9
- package/dist/{create-BqpkCjx4.mjs → create-DhDREiiy.mjs} +4 -5
- package/dist/{create-myI6doga.mjs → create-Di4YvIbK.mjs} +5 -6
- package/dist/{create-ldrghMd1.mjs → create-DnqnjGGf.mjs} +4 -5
- package/dist/{create-C7iooS6W.mjs → create-Ds-DnSBe.mjs} +9 -15
- package/dist/{create-BA_tTDEk.mjs → create-JOXq0ULN.mjs} +5 -6
- package/dist/create-branch-DWcxC30N.mjs +31 -0
- package/dist/{csv-DBNzJiWK.mjs → csv-CUQvcCEk.mjs} +5 -6
- package/dist/{current-task-YzemU0Ic.mjs → current-task-D6P0eL21.mjs} +8 -16
- package/dist/{dashboard-B1mpfCq_.mjs → dashboard-BudI952R.mjs} +10 -10
- package/dist/{db-1tLH3nYI.mjs → db-C7UTd-6P.mjs} +7 -7
- package/dist/{delete-CD_-B4Kq.mjs → delete-DSxqbcFE.mjs} +5 -6
- package/dist/{delete-QNgBV6eS.mjs → delete-DbZZKcYj.mjs} +6 -11
- package/dist/{delete-DjAUp9mk.mjs → delete-Ds-zGh9C.mjs} +5 -6
- package/dist/{delete-eAUB7p-f.mjs → delete-Ud6iliGM.mjs} +6 -11
- package/dist/{delete-CpKH5ia4.mjs → delete-_IHffP-A.mjs} +5 -6
- package/dist/{delete-runtime-b2_ZMSjj.mjs → delete-runtime-BjHL1ryM.mjs} +1 -2
- package/dist/{delete-table-DamlxnSO.mjs → delete-table-DtXH6IN5.mjs} +6 -11
- package/dist/dependencies-CR1dlq-A.mjs +36 -0
- package/dist/dirty-CYxnOnh0.mjs +28 -0
- package/dist/document-BoILnE_1.mjs +19 -0
- package/dist/{download-C4v7u-AV.mjs → download-DPpmmYQe.mjs} +3 -7
- package/dist/{eid-CP35PdEF.mjs → eid-D-BbtWjt.mjs} +4 -6
- package/dist/{events-DmbzKIh_.mjs → events-CJEnn8WE.mjs} +5 -6
- package/dist/{export-i8D6laBG.mjs → export-BOgyuIOQ.mjs} +13 -29
- package/dist/{field-BKn9bt7I.mjs → field-CzHBOPER.mjs} +5 -5
- package/dist/{fields-8_p81BqN.mjs → fields-Bwgkrvus.mjs} +5 -6
- package/dist/get-B89DUSvw.mjs +31 -0
- package/dist/get-BL90QC64.mjs +36 -0
- package/dist/get-BLJSCw53.mjs +31 -0
- package/dist/{get-BBOfshz1.mjs → get-BOLwso0V.mjs} +6 -7
- package/dist/{get-BvW21ujw.mjs → get-BaPadzdM.mjs} +4 -5
- package/dist/{get-vvs0qzzM.mjs → get-BfVCLBqc.mjs} +4 -5
- package/dist/{get-B0g6VMBC.mjs → get-C1ZdOvMm.mjs} +4 -5
- package/dist/{get-N4dOaTsp.mjs → get-CLu4yzMp2.mjs} +5 -6
- package/dist/get-COwdtskS.mjs +27 -0
- package/dist/{get-CPTbySa7.mjs → get-CWfIiXwL.mjs} +4 -5
- package/dist/get-CqQ-pf0q.mjs +89 -0
- package/dist/{get-DnCE7K0y.mjs → get-CvIgxPXV.mjs} +5 -6
- package/dist/{get-vrccOMBk.mjs → get-D4OTJblo.mjs} +4 -5
- package/dist/{get-BbHPFNqr.mjs → get-D8lHwu4-.mjs} +4 -5
- package/dist/{get-CWf46UFu.mjs → get-DVi3a2nm.mjs} +6 -7
- package/dist/{get-DFkbi5L3.mjs → get-DgnYF7LR.mjs} +4 -5
- package/dist/{get-BHGgXqUq.mjs → get-DsKmZfM2.mjs} +4 -5
- package/dist/{get-CAzSP-7o.mjs → get-DyyPiiaB.mjs} +4 -5
- package/dist/{get-Bds6Izxk.mjs → get-Eqq13YY-.mjs} +4 -5
- package/dist/{get-run-4Ng8_awa.mjs → get-run-Iya0Yw9s.mjs} +6 -7
- package/dist/{git-sync-DLzJrdMi.mjs → git-sync-BDnxPrqU.mjs} +3 -22
- package/dist/git-sync-CdN0Maun.mjs +28 -0
- package/dist/{git-sync-LQIVMNxO.mjs → git-sync-DxD_ng48.mjs} +2 -31
- package/dist/{group-YN6jj2AN.mjs → group-CmVCLBDz.mjs} +3 -3
- package/dist/{has-remote-changes-BXPGI9xG.mjs → has-remote-changes-DfJUMP8F.mjs} +7 -18
- package/dist/{import-BoxOkA-G.mjs → import-FEAx-Y5A.mjs} +12 -32
- package/dist/{input-DH9i67x_.mjs → input-DFZ_qGW_.mjs} +1 -1
- package/dist/is-dirty-BsYjBSXG.mjs +32 -0
- package/dist/{items-Cv6iAzrI.mjs → items-D4rstE12.mjs} +10 -18
- package/dist/{key-BEhqIzIQ.mjs → key-BmWundO3.mjs} +1 -1
- package/dist/{library-fhVn1KDC.mjs → library-CmctxHjv.mjs} +1 -1
- package/dist/library-DXB8sm4r.mjs +81 -0
- package/dist/{library-CRaOhJnj.mjs → library-uzyHWBap.mjs} +5 -5
- package/dist/{list-DOaWCx8S.mjs → list-1DkkU82x.mjs} +17 -25
- package/dist/{list-BLJkJp5a.mjs → list-B7tqNV8B.mjs} +4 -5
- package/dist/{list-WSJLnunb.mjs → list-BRpPbvyS.mjs} +4 -5
- package/dist/{list-BBp9XjYs.mjs → list-BXL8HFr_.mjs} +4 -5
- package/dist/{list-L2U1l6R4.mjs → list-Bjj0z5BS.mjs} +6 -7
- package/dist/{list-DhrapAcy.mjs → list-BmMi_wPD.mjs} +5 -6
- package/dist/list-CC1M_n6Z.mjs +28 -0
- package/dist/list-CQy0z7f9.mjs +28 -0
- package/dist/{list-BwkfWtP2.mjs → list-D_zvX0ms.mjs} +4 -5
- package/dist/{list--2T-GUEF.mjs → list-DeNGm9G4.mjs} +5 -6
- package/dist/list-Dgm6TkqR.mjs +38 -0
- package/dist/list-DoTiQc3D.mjs +36 -0
- package/dist/{list-C8J3n8B8.mjs → list-DrS3ePsv.mjs} +4 -5
- package/dist/list-bN0RC14-.mjs +59 -0
- package/dist/{list-oAAgU5uE.mjs → list-ndIl9XqV.mjs} +11 -18
- package/dist/{list-tutXEQRW.mjs → list-sQcA4g05.mjs} +5 -6
- package/dist/{list-9uvk9dIA.mjs → list-squb_ioH.mjs} +4 -5
- package/dist/{list-DOZNpX4b.mjs → list-xMfCeuZc.mjs} +5 -6
- package/dist/{login-DqWRF3Og.mjs → login-D_1-zE4A.mjs} +15 -13
- package/dist/{logout-ChCz1bkf.mjs → logout-DPi2q1Wu.mjs} +3 -5
- package/dist/{measure-C5dIdFj1.mjs → measure-CdA8Nl3Z.mjs} +6 -6
- package/dist/{notification-DVrLkjFT.mjs → notification-Fcq1fIPw.mjs} +1 -1
- package/dist/{parameter-values-Dy4cBs5y.mjs → parameter-values-C6dj6I4g.mjs} +4 -6
- package/dist/{parse-enum-D0Jfm_Bz.mjs → parse-enum-B1t8S194.mjs} +1 -1
- package/dist/{parse-id-DDCn3VXx.mjs → parse-id-DR8aUSdL.mjs} +1 -1
- package/dist/{parse-ref-Wv21Roup.mjs → parse-ref-BJ_Q0tNW.mjs} +3 -7
- package/dist/{path-IYhuzjQV.mjs → path-B96DI8u2.mjs} +5 -6
- package/dist/{poll-75SvT7Zv.mjs → poll-By46YQ5J.mjs} +2 -2
- package/dist/{preflight-HLUVr2Yf.mjs → preflight-Bl1oitm8.mjs} +3 -4
- package/dist/{process-DBOOrmET.mjs → process-CcQM4qPv.mjs} +1 -1
- package/dist/{publish-CMkCSt8i.mjs → publish-BKJYvxif.mjs} +9 -10
- package/dist/{pulse-a-83M4DV.mjs → pulse-DhG6I9mI.mjs} +1 -1
- package/dist/{query-tWQAV9pb.mjs → query-BKSM-pbi.mjs} +9 -11
- package/dist/{query-Bka77J62.mjs → query-qBHjZQc_.mjs} +7 -10
- package/dist/{query-result-E4Q-Gra6.mjs → query-result-DBDwk8TS.mjs} +1 -1
- package/dist/{remove-collection-BV9wRQZD.mjs → remove-collection-BWFW7Rn6.mjs} +6 -10
- package/dist/{render-DHjCcUXn.mjs → render-DmykmrFB.mjs} +11 -8
- package/dist/{replace-mt47dlRV.mjs → replace-BmAqD3zY.mjs} +5 -6
- package/dist/{rescan-values-6cRjcpTs.mjs → rescan-values-BrCLrihF.mjs} +4 -5
- package/dist/{run-DI_pDxji.mjs → run-CtbzjDKY.mjs} +6 -7
- package/dist/{run-BmGmC-GQ.mjs → run-q5Y44Fxj.mjs} +26 -15
- package/dist/{runs-9Fu0mug5.mjs → runs-JFlbezkQ.mjs} +7 -8
- package/dist/{runtime-CNAZ_FuR.mjs → runtime-BQiGgbgZ.mjs} +851 -361
- package/dist/{schema-tables-CLG0mtQb.mjs → schema-tables-Bzx2ShyE.mjs} +5 -6
- package/dist/{schemas-Cm5NWy59.mjs → schemas-ww5mU2AS.mjs} +5 -6
- package/dist/{search-CljYyf2F.mjs → search-J4RwCof-.mjs} +9 -15
- package/dist/{segment-IRzlQggt.mjs → segment-XXTjU0eG.mjs} +6 -6
- package/dist/{selectors-D4iOP5uB.mjs → selectors-BAAZMi43.mjs} +3 -3
- package/dist/{send-D7DBnQbu.mjs → send-BmpDlw9O.mjs} +4 -5
- package/dist/{set-DKN8fuC6.mjs → set-DUWrSza9.mjs} +5 -6
- package/dist/{set-active-CkE0Eiqh.mjs → set-active-BiUlbNI5.mjs} +5 -6
- package/dist/{setting-CN4l8N-b.mjs → setting-B1KBQN3M.mjs} +4 -4
- package/dist/{setup-BpTptmdO.mjs → setup-CVaNVwOd.mjs} +4 -5
- package/dist/{signal-CMd0EFUa.mjs → signal-GhGmuHfx.mjs} +11 -2
- package/dist/{list-CtZAu4im.mjs → skill-list-DTnDhnL5.mjs} +17 -47
- package/dist/{skills-BSAiLI3Z.mjs → skills-BWrAlj9l.mjs} +3 -3
- package/dist/{skills-hVKSOCUf.mjs → skills-DkDsSH5F.mjs} +102 -14
- package/dist/snippet-CG75L2DS.mjs +19 -0
- package/dist/{snippet-BxgvQ09J.mjs → snippet-CyKAgIZl.mjs} +2 -5
- package/dist/{snippet-DecHB4Dn.mjs → snippet-oJLaYW9V.mjs} +1 -1
- package/dist/{stash-DJs6A6BA.mjs → stash-DMm8YF8V.mjs} +7 -12
- package/dist/{status-N_2EaWb7.mjs → status-BzEQjQ_t.mjs} +15 -23
- package/dist/{status-DtwBDRtc.mjs → status-ClWsQD6v.mjs} +22 -48
- package/dist/{subscription-BnGDp1oy.mjs → subscription-CdFn2hre.mjs} +6 -6
- package/dist/{subscriptions-BfFwV__x.mjs → subscriptions-DBda1pE5.mjs} +7 -8
- package/dist/{summary-CHiq-4mz.mjs → summary-B4GPiuqD.mjs} +4 -5
- package/dist/{sync-schema-DhnM-rpm.mjs → sync-schema-DsIM5g2U.mjs} +5 -6
- package/dist/{sync-task-G1K47Nvn.mjs → sync-task-BACcrs0i.mjs} +1 -1
- package/dist/{table-BQaiCSNS.mjs → table-D4Alrrwh.mjs} +5 -5
- package/dist/timeline-DmM0BuX8.mjs +21 -0
- package/dist/{timeline-event-B7H1y8s8.mjs → timeline-event-DWIh3Tdt.mjs} +6 -6
- package/dist/transform-BcV_XlSX.mjs +28 -0
- package/dist/{transform-CiDOJGBW.mjs → transform-Bk0D0nIs.mjs} +2 -2
- package/dist/{transform-BvOEn41C.mjs → transform-DpuG-ON3.mjs} +25 -7
- package/dist/{transform-job-50GZHhKH.mjs → transform-job-AaMZRxAq.mjs} +1 -1
- package/dist/{transform-job-DRrK28IH.mjs → transform-job-CCguL6LP.mjs} +41 -4
- package/dist/transform-job-CjtwBGoM.mjs +22 -0
- package/dist/{transform-tag-jBVd6wXd.mjs → transform-tag-CcElGp3C.mjs} +4 -9
- package/dist/{transform-tag-Dip51YBa.mjs → transform-tag-DJ3_bksm.mjs} +5 -5
- package/dist/{transform-tag-DiXWRCQG.mjs → transform-tag-Dmb4u3-Q.mjs} +1 -1
- package/dist/{transforms-C-jYgS6z.mjs → transforms-Dg2MfB2a.mjs} +7 -8
- package/dist/tree-BQL0f7YX.mjs +26 -0
- package/dist/{unpublish-BokbnLng.mjs → unpublish-DfSvb_Rs.mjs} +4 -8
- package/dist/{update-D9OTkZhw.mjs → update-B-hRR8gW.mjs} +5 -6
- package/dist/{update-CpLEEbiJ.mjs → update-BCgAyfj_.mjs} +8 -9
- package/dist/{update-BCGE5UYC.mjs → update-Bhmli02m.mjs} +6 -7
- package/dist/{update-rkbpH0lF.mjs → update-BxIyFtrX.mjs} +5 -6
- package/dist/{update-AZSXMJqu.mjs → update-CDo0Orvu.mjs} +9 -15
- package/dist/{update-B9DcRSBQ.mjs → update-CKoBDTL7.mjs} +13 -19
- package/dist/{update-CfQoYVTc.mjs → update-CiYxcf8M.mjs} +7 -8
- package/dist/{update-e7lyQPxq.mjs → update-Cr5zHb0D.mjs} +9 -15
- package/dist/{update-CPEU8ZEu.mjs → update-CtDHMxW8.mjs} +6 -7
- package/dist/{update-BBQInyiJ.mjs → update-D1QdfpKR.mjs} +6 -7
- package/dist/{update-C4PbAYgW.mjs → update-D4qdTlLF.mjs} +5 -6
- package/dist/{update-BRXKLeJH.mjs → update-DBGaJDsj.mjs} +5 -6
- package/dist/{update-BErxnZrj.mjs → update-Izqip6jY.mjs} +6 -7
- package/dist/{update-Bc8s1TL1.mjs → update-NZhIjTCf.mjs} +5 -6
- package/dist/{update-dashcard-St-dGcE3.mjs → update-dashcard-D5b971AO.mjs} +5 -6
- package/dist/{update-CKL2FtoX.mjs → update-sYLQIUgh.mjs} +6 -7
- package/dist/{upgrade-CUoRHfVg.mjs → upgrade-CD1xtsIv.mjs} +6 -9
- package/dist/{upload-CD555ui1.mjs → upload-BUd3MG90.mjs} +2 -2
- package/dist/upload-DzGTlldn.mjs +13 -0
- package/dist/{upload-BPd1Uzxc.mjs → upload-akKFxpVA.mjs} +4 -8
- package/dist/{uuid-CFN8LIkP.mjs → uuid-oVdJ62eA.mjs} +3 -5
- package/dist/{validate-BWchyW0V.mjs → validate-CWd6l6KZ.mjs} +1 -1
- package/dist/{validate-query-Chc43ezW.mjs → validate-query-Boi8-cAP.mjs} +2 -3
- package/dist/{values-BL_U-Zdw.mjs → values-DLwZl-P8.mjs} +4 -5
- package/dist/{verify-DnBaRmkI.mjs → verify-CH9Tw8yv.mjs} +3 -18
- package/dist/{wait-flags-DzytMEG8.mjs → wait-flags-DiQ_kRjZ.mjs} +3 -3
- package/dist/{wait-mPoOZxrw.mjs → wait-rfTdQWdi.mjs} +9 -17
- package/dist/{window-DSb1tqSe.mjs → window-BkvrP0gB.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +24 -16
- package/skill-data/data-workflow/references/building-clean-tables.md +6 -2
- package/skill-data/data-workflow/references/reusable-definitions.md +11 -3
- package/skill-data/document/SKILL.md +4 -1
- package/skill-data/git-sync/SKILL.md +6 -91
- package/skill-data/mbql/SKILL.md +1 -1
- package/skill-data/mbql/references/operators.md +20 -15
- package/skill-data/metadata/SKILL.md +1 -1
- package/skill-data/metadata/references/semantic-types.md +7 -1
- package/skill-data/native-sql/references/template-tags.md +6 -2
- package/skill-data/notification/SKILL.md +7 -1
- package/skill-data/transform/SKILL.md +13 -11
- package/skill-data/visualization/SKILL.md +11 -3
- package/skill-data/visualization/references/settings.md +6 -4
- package/skills/metabase-cli/SKILL.md +1 -1
- package/dist/archive-CqOKKrb2.mjs +0 -38
- package/dist/archive-DCjdICg7.mjs +0 -38
- package/dist/branch-BSeGrtP7.mjs +0 -28
- package/dist/cancel-task-BMQXtjW5.mjs +0 -34
- package/dist/card-RlzLDB2z.mjs +0 -24
- package/dist/collection-Bhe20ckt.mjs +0 -20
- package/dist/create-DwrhcI8r2.mjs +0 -144
- package/dist/create-branch-B3BMpF1g.mjs +0 -49
- package/dist/delete-D_OgiI4v.mjs +0 -86
- package/dist/dependencies-DEx0BsZ3.mjs +0 -41
- package/dist/dirty-dC1-Ud0G.mjs +0 -40
- package/dist/document-DOJbBWLF.mjs +0 -19
- package/dist/export-preflight-B5MvYhm3.mjs +0 -67
- package/dist/get-CNEQK0-9.mjs +0 -81
- package/dist/get-Cfagmy1i.mjs +0 -42
- package/dist/get-DvLuY5Xu.mjs +0 -38
- package/dist/get-DwdMvWXU.mjs +0 -44
- package/dist/get-jV8G90Zy.mjs +0 -42
- package/dist/get-mGEv-kag.mjs +0 -33
- package/dist/git-sync-DjoaNmRM.mjs +0 -29
- package/dist/is-dirty-Cwxq4_gd.mjs +0 -44
- package/dist/library-Cfw6eF35.mjs +0 -19
- package/dist/list-5Iojbr_p.mjs +0 -37
- package/dist/list-BD4onDqO.mjs +0 -37
- package/dist/list-C2yL7-CH.mjs +0 -45
- package/dist/list-CbbKip6U.mjs +0 -32
- package/dist/list-Dg2XeDON.mjs +0 -47
- package/dist/network-error-D6CiOEBw.mjs +0 -431
- package/dist/pin-BuZ_kg-u.mjs +0 -62
- package/dist/predicates-Bkm2IoeX.mjs +0 -170
- package/dist/scope-DsGuWG5w.mjs +0 -11
- package/dist/snippet-LlHz3FdJ.mjs +0 -19
- package/dist/timeline-C2VW0Ph6.mjs +0 -21
- package/dist/transform-DAf0Y02t.mjs +0 -28
- package/dist/transform-job-ntiT5Rrh.mjs +0 -22
- package/dist/tree-DtyJhD54.mjs +0 -36
- package/dist/unpin-DxbXmLtW.mjs +0 -45
- package/dist/upload-Dc3QLhZw.mjs +0 -13
- package/dist/worktree-ChdDlG3Q.mjs +0 -25
- package/dist/worktree-DC0kTxxQ.mjs +0 -20
- package/dist/worktree-xAro1xAB.mjs +0 -24
package/dist/cli.mjs
CHANGED
|
@@ -1,10 +1,338 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { i as ConfigError, m as toMetabaseError, n as AbortError, t as isPlainObject } from "./predicates-Bkm2IoeX.mjs";
|
|
3
2
|
import { defineCommand, renderUsage, runMain } from "citty";
|
|
4
|
-
import { z } from "zod";
|
|
3
|
+
import { ZodError, core, z } from "zod";
|
|
5
4
|
import tls from "node:tls";
|
|
6
5
|
import { confirm, isCancel, password, select, text } from "@clack/prompts";
|
|
7
6
|
import Table from "cli-table3";
|
|
7
|
+
//#region ../client/src/json-pointer.ts
|
|
8
|
+
function escapeJsonPointerSegment(key) {
|
|
9
|
+
if (typeof key === "number") return String(key);
|
|
10
|
+
return (typeof key === "symbol" ? key.toString() : key).replaceAll("~", "~0").replaceAll("/", "~1");
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region ../client/src/domain/session-properties.ts
|
|
14
|
+
const ServerVersion = z.object({
|
|
15
|
+
tag: z.string(),
|
|
16
|
+
date: z.string().optional(),
|
|
17
|
+
hash: z.string().optional()
|
|
18
|
+
}).loose();
|
|
19
|
+
const TokenFeatures = z.record(z.string(), z.boolean());
|
|
20
|
+
const SessionProperties = z.object({
|
|
21
|
+
version: ServerVersion,
|
|
22
|
+
"token-features": TokenFeatures.optional()
|
|
23
|
+
}).loose();
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region ../client/src/version/features.ts
|
|
26
|
+
const FEATURE_RULES = {
|
|
27
|
+
transforms: { since: 59 },
|
|
28
|
+
transformJobActivation: { since: 61 },
|
|
29
|
+
measures: { since: 59 },
|
|
30
|
+
library: {
|
|
31
|
+
since: 59,
|
|
32
|
+
tokenFeature: "library"
|
|
33
|
+
},
|
|
34
|
+
remoteSync: {
|
|
35
|
+
since: 60,
|
|
36
|
+
tokenFeature: "remote_sync"
|
|
37
|
+
},
|
|
38
|
+
contentTranslation: {
|
|
39
|
+
since: 58,
|
|
40
|
+
tokenFeature: "content_translation"
|
|
41
|
+
},
|
|
42
|
+
transformTargetTableId: { since: 61 },
|
|
43
|
+
transformTargetTableLinkedOnCreate: {
|
|
44
|
+
since: 61,
|
|
45
|
+
until: 61
|
|
46
|
+
},
|
|
47
|
+
transformJobRunIdIsNumeric: { since: 64 },
|
|
48
|
+
libraryChildrenCarryType: { since: 62 },
|
|
49
|
+
collectionItemsTotalOnEmptyPage: { since: 64 },
|
|
50
|
+
invalidMbqlIsBadRequest: { since: 59 },
|
|
51
|
+
boxplotDisplay: { since: 59 },
|
|
52
|
+
nativeTableTemplateTag: { since: 59 },
|
|
53
|
+
smartLinkMeasureModel: { since: 60 },
|
|
54
|
+
dashboardSubscriptionFilters: {
|
|
55
|
+
since: 58,
|
|
56
|
+
tokenFeature: "dashboard_subscription_filters"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
function isFeatureName(name) {
|
|
60
|
+
return Object.hasOwn(FEATURE_RULES, name);
|
|
61
|
+
}
|
|
62
|
+
const FEATURE_NAMES = Object.keys(FEATURE_RULES).filter(isFeatureName);
|
|
63
|
+
const Features = z.record(z.enum(FEATURE_NAMES), z.boolean());
|
|
64
|
+
function evaluateFeatures(effectiveMajor, tokenFeatures) {
|
|
65
|
+
const entries = FEATURE_NAMES.map((name) => [name, ruleHolds(FEATURE_RULES[name], effectiveMajor, tokenFeatures)]);
|
|
66
|
+
return Features.parse(Object.fromEntries(entries));
|
|
67
|
+
}
|
|
68
|
+
function ruleHolds(rule, effectiveMajor, tokenFeatures) {
|
|
69
|
+
return ruleGap(rule, effectiveMajor, tokenFeatures) === null;
|
|
70
|
+
}
|
|
71
|
+
function ruleGap(rule, effectiveMajor, tokenFeatures) {
|
|
72
|
+
if (effectiveMajor < rule.since) return { kind: "version" };
|
|
73
|
+
if (rule.until !== void 0 && effectiveMajor > rule.until) return { kind: "version" };
|
|
74
|
+
if (rule.tokenFeature === void 0) return null;
|
|
75
|
+
return tokenFeatures !== null && tokenFeatures[rule.tokenFeature] === true ? null : {
|
|
76
|
+
kind: "token",
|
|
77
|
+
tokenFeature: rule.tokenFeature
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region ../client/src/version/tag.ts
|
|
82
|
+
const ParsedVersion = z.object({
|
|
83
|
+
tag: z.string(),
|
|
84
|
+
major: z.number().int().nonnegative(),
|
|
85
|
+
patch: z.number().int().nonnegative()
|
|
86
|
+
});
|
|
87
|
+
const Edition = z.enum(["oss", "ee"]);
|
|
88
|
+
const TAG = /^v?([01])\.(\d+)\.(\d+)(?:\.\d+)?(?:-([0-9A-Za-z.-]+))?$/;
|
|
89
|
+
const OSS_EDITION_NUMBER = "0";
|
|
90
|
+
const DEV_BUILD_SUFFIX = "SNAPSHOT";
|
|
91
|
+
function tagParts(tag) {
|
|
92
|
+
const match = TAG.exec(tag);
|
|
93
|
+
if (match === null) return null;
|
|
94
|
+
const [, editionNumber, major, patch, prerelease] = match;
|
|
95
|
+
if (editionNumber === void 0 || major === void 0 || patch === void 0) return null;
|
|
96
|
+
return {
|
|
97
|
+
edition: editionNumber === OSS_EDITION_NUMBER ? "oss" : "ee",
|
|
98
|
+
major: Number(major),
|
|
99
|
+
patch: Number(patch),
|
|
100
|
+
prerelease: prerelease ?? null
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function tryParseTag(tag) {
|
|
104
|
+
const parts = tagParts(tag);
|
|
105
|
+
if (parts === null || parts.prerelease === DEV_BUILD_SUFFIX) return null;
|
|
106
|
+
return {
|
|
107
|
+
tag,
|
|
108
|
+
major: parts.major,
|
|
109
|
+
patch: parts.patch
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function editionFromTag(tag) {
|
|
113
|
+
const parts = tagParts(tag);
|
|
114
|
+
return parts === null ? null : parts.edition;
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region ../client/src/version/profile.ts
|
|
118
|
+
const KNOWN_RANGE = {
|
|
119
|
+
min: 58,
|
|
120
|
+
max: 63
|
|
121
|
+
};
|
|
122
|
+
const Skew = z.enum([
|
|
123
|
+
"supported",
|
|
124
|
+
"newer-than-known",
|
|
125
|
+
"unknown"
|
|
126
|
+
]);
|
|
127
|
+
z.object({
|
|
128
|
+
version: ParsedVersion.nullable(),
|
|
129
|
+
buildDate: z.string().nullable(),
|
|
130
|
+
hash: z.string().nullable(),
|
|
131
|
+
edition: Edition,
|
|
132
|
+
tokenFeatures: TokenFeatures.nullable(),
|
|
133
|
+
features: Features,
|
|
134
|
+
skew: Skew
|
|
135
|
+
});
|
|
136
|
+
function createServerProfile(info) {
|
|
137
|
+
const placement = place(info.version);
|
|
138
|
+
return {
|
|
139
|
+
version: info.version,
|
|
140
|
+
buildDate: info.date,
|
|
141
|
+
hash: info.hash,
|
|
142
|
+
edition: detectEdition(info),
|
|
143
|
+
tokenFeatures: info.tokenFeatures,
|
|
144
|
+
features: evaluateFeatures(placement.effectiveMajor, info.tokenFeatures),
|
|
145
|
+
skew: placement.skew
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function featureGap(profile, feature) {
|
|
149
|
+
const placement = place(profile.version);
|
|
150
|
+
return ruleGap(FEATURE_RULES[feature], placement.effectiveMajor, profile.tokenFeatures);
|
|
151
|
+
}
|
|
152
|
+
function place(version) {
|
|
153
|
+
if (version === null) return {
|
|
154
|
+
effectiveMajor: KNOWN_RANGE.max + 1,
|
|
155
|
+
skew: "unknown"
|
|
156
|
+
};
|
|
157
|
+
if (version.major > KNOWN_RANGE.max) return {
|
|
158
|
+
effectiveMajor: KNOWN_RANGE.max + 1,
|
|
159
|
+
skew: "newer-than-known"
|
|
160
|
+
};
|
|
161
|
+
return {
|
|
162
|
+
effectiveMajor: version.major,
|
|
163
|
+
skew: "supported"
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function detectEdition(info) {
|
|
167
|
+
if (info.edition !== null) return info.edition;
|
|
168
|
+
return grantsAnyFeature(info.tokenFeatures) ? "ee" : "oss";
|
|
169
|
+
}
|
|
170
|
+
function grantsAnyFeature(tokenFeatures) {
|
|
171
|
+
return tokenFeatures !== null && Object.values(tokenFeatures).some((enabled) => enabled);
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
//#region ../client/src/errors.ts
|
|
175
|
+
var MetabaseError = class extends Error {
|
|
176
|
+
get userMessage() {
|
|
177
|
+
return this.message;
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
var NetworkError = class extends MetabaseError {
|
|
181
|
+
category = "network";
|
|
182
|
+
isRetryable = true;
|
|
183
|
+
developerDetail;
|
|
184
|
+
constructor(message, developerDetail) {
|
|
185
|
+
super(message);
|
|
186
|
+
this.name = "NetworkError";
|
|
187
|
+
this.developerDetail = developerDetail;
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
var TimeoutError = class extends MetabaseError {
|
|
191
|
+
category = "timeout";
|
|
192
|
+
isRetryable = true;
|
|
193
|
+
developerDetail;
|
|
194
|
+
constructor(message, developerDetail) {
|
|
195
|
+
super(message);
|
|
196
|
+
this.name = "TimeoutError";
|
|
197
|
+
this.developerDetail = developerDetail;
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
var ValidationError = class extends MetabaseError {
|
|
201
|
+
category = "validation";
|
|
202
|
+
isRetryable = false;
|
|
203
|
+
developerDetail;
|
|
204
|
+
constructor(message, developerDetail) {
|
|
205
|
+
super(message);
|
|
206
|
+
this.name = "ValidationError";
|
|
207
|
+
this.developerDetail = developerDetail;
|
|
208
|
+
}
|
|
209
|
+
get userMessage() {
|
|
210
|
+
const issues = this.developerDetail.zodIssues;
|
|
211
|
+
if (issues.length === 0) return this.message;
|
|
212
|
+
return `${this.message}\n${formatIssueLines(issues, VALIDATION_ISSUE_FORMAT)}`;
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
const VALIDATION_MAX_ISSUES = 10;
|
|
216
|
+
const RESPONSE_SHAPE_MAX_ISSUES = 5;
|
|
217
|
+
const VALIDATION_ISSUE_FORMAT = {
|
|
218
|
+
max: VALIDATION_MAX_ISSUES,
|
|
219
|
+
formatIssue: (issue) => `${formatZodIssuePointer(issue.path)}: ${issue.message}`
|
|
220
|
+
};
|
|
221
|
+
const RESPONSE_SHAPE_ISSUE_FORMAT = {
|
|
222
|
+
max: RESPONSE_SHAPE_MAX_ISSUES,
|
|
223
|
+
formatIssue: formatZodIssue
|
|
224
|
+
};
|
|
225
|
+
function formatIssueLines(issues, format) {
|
|
226
|
+
const head = issues.slice(0, format.max).map(format.formatIssue);
|
|
227
|
+
const overflow = issues.length - format.max;
|
|
228
|
+
if (overflow > 0) head.push(`... and ${overflow} more`);
|
|
229
|
+
return head.map((line) => ` ${line}`).join("\n");
|
|
230
|
+
}
|
|
231
|
+
function formatZodIssuePointer(path) {
|
|
232
|
+
if (path.length === 0) return "/";
|
|
233
|
+
return path.map((key) => `/${escapeJsonPointerSegment(key)}`).join("");
|
|
234
|
+
}
|
|
235
|
+
const RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION = "Metabase returned unexpected response shape";
|
|
236
|
+
var ResponseShapeError = class ResponseShapeError extends MetabaseError {
|
|
237
|
+
category = "response-shape";
|
|
238
|
+
isRetryable = false;
|
|
239
|
+
developerDetail;
|
|
240
|
+
constructor(message, developerDetail) {
|
|
241
|
+
super(message);
|
|
242
|
+
this.name = "ResponseShapeError";
|
|
243
|
+
this.developerDetail = developerDetail;
|
|
244
|
+
}
|
|
245
|
+
static fromZodIssues(developerDetail) {
|
|
246
|
+
return new ResponseShapeError(formatResponseShapeMessage(developerDetail), developerDetail);
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
function formatResponseShapeMessage(detail) {
|
|
250
|
+
const { zodIssues: issues, serverTag, serverSkew } = detail;
|
|
251
|
+
const lead = serverTag === null ? RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION : `On Metabase ${describeServer(serverTag, serverSkew)} the response shape was unexpected`;
|
|
252
|
+
if (issues.length === 0) return lead;
|
|
253
|
+
return `${lead}:\n${formatIssueLines(issues, RESPONSE_SHAPE_ISSUE_FORMAT)}`;
|
|
254
|
+
}
|
|
255
|
+
function describeServer(tag, skew) {
|
|
256
|
+
if (skew === "newer-than-known") return `${tag} (newer than this client supports, up to v${KNOWN_RANGE.max})`;
|
|
257
|
+
return tag;
|
|
258
|
+
}
|
|
259
|
+
var ConfigError = class extends MetabaseError {
|
|
260
|
+
category = "config";
|
|
261
|
+
isRetryable = false;
|
|
262
|
+
developerDetail = null;
|
|
263
|
+
constructor(message) {
|
|
264
|
+
super(message);
|
|
265
|
+
this.name = "ConfigError";
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
var InternalError = class extends MetabaseError {
|
|
269
|
+
category = "internal";
|
|
270
|
+
isRetryable = false;
|
|
271
|
+
developerDetail = null;
|
|
272
|
+
constructor(message) {
|
|
273
|
+
super(message);
|
|
274
|
+
this.name = "InternalError";
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
var AbortError = class extends MetabaseError {
|
|
278
|
+
category = "abort";
|
|
279
|
+
isRetryable = false;
|
|
280
|
+
developerDetail = null;
|
|
281
|
+
constructor(message = "aborted") {
|
|
282
|
+
super(message);
|
|
283
|
+
this.name = "AbortError";
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
var ChainedRequestError = class extends MetabaseError {
|
|
287
|
+
cause;
|
|
288
|
+
constructor(message, cause) {
|
|
289
|
+
super(message);
|
|
290
|
+
this.name = "ChainedRequestError";
|
|
291
|
+
this.cause = cause;
|
|
292
|
+
}
|
|
293
|
+
get category() {
|
|
294
|
+
return this.cause.category;
|
|
295
|
+
}
|
|
296
|
+
get isRetryable() {
|
|
297
|
+
return this.cause.isRetryable;
|
|
298
|
+
}
|
|
299
|
+
get developerDetail() {
|
|
300
|
+
return this.cause.developerDetail;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
var UnknownError = class extends MetabaseError {
|
|
304
|
+
category = "unknown";
|
|
305
|
+
isRetryable = false;
|
|
306
|
+
developerDetail;
|
|
307
|
+
constructor(input) {
|
|
308
|
+
super(input.originalMessage);
|
|
309
|
+
this.name = "UnknownError";
|
|
310
|
+
this.developerDetail = input;
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
function toMetabaseError(error) {
|
|
314
|
+
if (error instanceof MetabaseError) return error;
|
|
315
|
+
if (error instanceof ZodError) return new ConfigError(error.issues.map(formatZodIssue).join("; "));
|
|
316
|
+
if (error instanceof Error) return new UnknownError({
|
|
317
|
+
originalMessage: error.message,
|
|
318
|
+
stack: error.stack ?? null
|
|
319
|
+
});
|
|
320
|
+
return new UnknownError({
|
|
321
|
+
originalMessage: String(error),
|
|
322
|
+
stack: null
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
function formatZodIssue(issue) {
|
|
326
|
+
const path = core.toDotPath(issue.path);
|
|
327
|
+
return path === "" ? issue.message : `${path}: ${issue.message}`;
|
|
328
|
+
}
|
|
329
|
+
function isFileNotFoundError(value) {
|
|
330
|
+
return value instanceof Error && "code" in value && value.code === "ENOENT";
|
|
331
|
+
}
|
|
332
|
+
function errorMessage(value) {
|
|
333
|
+
return value instanceof Error ? value.message : String(value);
|
|
334
|
+
}
|
|
335
|
+
//#endregion
|
|
8
336
|
//#region src/runtime/citty.ts
|
|
9
337
|
async function resolveCitty(value) {
|
|
10
338
|
if (value === void 0) return;
|
|
@@ -32,7 +360,16 @@ function flagConsumesValue(token, argsDef) {
|
|
|
32
360
|
//#region src/output/types.ts
|
|
33
361
|
const DEFAULT_MAX_BYTES = 24576;
|
|
34
362
|
function listEnvelopeSchema(item) {
|
|
363
|
+
return z.object(listEnvelopeShape(item));
|
|
364
|
+
}
|
|
365
|
+
function listEnvelopeSchemaWithExtras(item, extras) {
|
|
35
366
|
return z.object({
|
|
367
|
+
...listEnvelopeShape(item),
|
|
368
|
+
...extras
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
function listEnvelopeShape(item) {
|
|
372
|
+
return {
|
|
36
373
|
data: z.array(item).describe("The items in this window."),
|
|
37
374
|
returned: z.number().int().nonnegative().describe("Number of items in `data`; a short window is not proof the walk is over."),
|
|
38
375
|
offset: z.number().int().nonnegative().describe("Index of the first item in `data` within the full result set."),
|
|
@@ -44,7 +381,7 @@ function listEnvelopeSchema(item) {
|
|
|
44
381
|
reason: z.literal("max_bytes"),
|
|
45
382
|
bytes: z.number().int().nonnegative()
|
|
46
383
|
}).optional().describe("Present when the `--max-bytes` cap cut the output, not when the data ran out; its `bytes` is what the untruncated answer would have measured, so narrow rows with `--fields` rather than raising the cap.")
|
|
47
|
-
}
|
|
384
|
+
};
|
|
48
385
|
}
|
|
49
386
|
//#endregion
|
|
50
387
|
//#region src/commands/flags.ts
|
|
@@ -99,10 +436,6 @@ const profileFlag = { profile: {
|
|
|
99
436
|
description: "Named profile (default: 'default')",
|
|
100
437
|
alias: "p"
|
|
101
438
|
} };
|
|
102
|
-
const worktreeFlag = { worktree: {
|
|
103
|
-
type: "string",
|
|
104
|
-
description: "Scope to a git-sync worktree (id or branch); defaults to MB_WORKTREE or the profile's pinned worktree"
|
|
105
|
-
} };
|
|
106
439
|
const connectionFlags = {
|
|
107
440
|
url: {
|
|
108
441
|
type: "string",
|
|
@@ -127,8 +460,7 @@ const GLOBAL_FLAG_ARGS = {
|
|
|
127
460
|
...outputFlags,
|
|
128
461
|
...listFlags,
|
|
129
462
|
...profileFlag,
|
|
130
|
-
...connectionFlags
|
|
131
|
-
...worktreeFlag
|
|
463
|
+
...connectionFlags
|
|
132
464
|
};
|
|
133
465
|
const GLOBAL_FLAG_NAMES = buildGlobalFlagNames();
|
|
134
466
|
function buildGlobalFlagNames() {
|
|
@@ -180,7 +512,7 @@ function trustSystemCa() {
|
|
|
180
512
|
//#endregion
|
|
181
513
|
//#region package.json
|
|
182
514
|
var name = "@metabase/cli";
|
|
183
|
-
var version = "0.3.1-alpha.
|
|
515
|
+
var version = "0.3.1-alpha.versioning.9ac5f50";
|
|
184
516
|
var description = "Metabase CLI";
|
|
185
517
|
//#endregion
|
|
186
518
|
//#region src/runtime/command-augment.ts
|
|
@@ -200,37 +532,36 @@ const main = defineCommand({
|
|
|
200
532
|
description
|
|
201
533
|
},
|
|
202
534
|
subCommands: {
|
|
203
|
-
auth: () => import("./auth-
|
|
204
|
-
db: () => import("./db-
|
|
205
|
-
table: () => import("./table-
|
|
206
|
-
field: () => import("./field-
|
|
207
|
-
upload: () => import("./upload-
|
|
208
|
-
"content-translation": () => import("./content-translation-
|
|
209
|
-
card: () => import("./card-
|
|
210
|
-
dashboard: () => import("./dashboard-
|
|
211
|
-
subscription: () => import("./subscription-
|
|
212
|
-
alert: () => import("./alert-
|
|
213
|
-
collection: () => import("./collection-
|
|
214
|
-
library: () => import("./library-
|
|
215
|
-
document: () => import("./document-
|
|
216
|
-
transform: () => import("./transform-
|
|
217
|
-
"transform-job": () => import("./transform-job-
|
|
218
|
-
"transform-tag": () => import("./transform-tag-
|
|
219
|
-
setting: () => import("./setting-
|
|
220
|
-
search: () => import("./search-
|
|
221
|
-
"git-sync": () => import("./git-sync-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
timeline: () => import("./timeline-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
skills: () => import("./skills-BSAiLI3Z.mjs").then((mod) => mod.default)
|
|
535
|
+
auth: () => import("./auth-CefYEPP5.mjs").then((mod) => mod.default),
|
|
536
|
+
db: () => import("./db-C7UTd-6P.mjs").then((mod) => mod.default),
|
|
537
|
+
table: () => import("./table-D4Alrrwh.mjs").then((mod) => mod.default),
|
|
538
|
+
field: () => import("./field-CzHBOPER.mjs").then((mod) => mod.default),
|
|
539
|
+
upload: () => import("./upload-DzGTlldn.mjs").then((mod) => mod.default),
|
|
540
|
+
"content-translation": () => import("./content-translation-D7POzJJ6.mjs").then((mod) => mod.default),
|
|
541
|
+
card: () => import("./card-BRarvKYX.mjs").then((mod) => mod.default),
|
|
542
|
+
dashboard: () => import("./dashboard-BudI952R.mjs").then((mod) => mod.default),
|
|
543
|
+
subscription: () => import("./subscription-CdFn2hre.mjs").then((mod) => mod.default),
|
|
544
|
+
alert: () => import("./alert-D1u2MVZj.mjs").then((mod) => mod.default),
|
|
545
|
+
collection: () => import("./collection-CKeO8X7U.mjs").then((mod) => mod.default),
|
|
546
|
+
library: () => import("./library-uzyHWBap.mjs").then((mod) => mod.default),
|
|
547
|
+
document: () => import("./document-BoILnE_1.mjs").then((mod) => mod.default),
|
|
548
|
+
transform: () => import("./transform-BcV_XlSX.mjs").then((mod) => mod.default),
|
|
549
|
+
"transform-job": () => import("./transform-job-CjtwBGoM.mjs").then((mod) => mod.default),
|
|
550
|
+
"transform-tag": () => import("./transform-tag-DJ3_bksm.mjs").then((mod) => mod.default),
|
|
551
|
+
setting: () => import("./setting-B1KBQN3M.mjs").then((mod) => mod.default),
|
|
552
|
+
search: () => import("./search-J4RwCof-.mjs").then((mod) => mod.default),
|
|
553
|
+
"git-sync": () => import("./git-sync-CdN0Maun.mjs").then((mod) => mod.default),
|
|
554
|
+
setup: () => import("./setup-CVaNVwOd.mjs").then((mod) => mod.default),
|
|
555
|
+
snippet: () => import("./snippet-CG75L2DS.mjs").then((mod) => mod.default),
|
|
556
|
+
segment: () => import("./segment-XXTjU0eG.mjs").then((mod) => mod.default),
|
|
557
|
+
measure: () => import("./measure-CdA8Nl3Z.mjs").then((mod) => mod.default),
|
|
558
|
+
timeline: () => import("./timeline-DmM0BuX8.mjs").then((mod) => mod.default),
|
|
559
|
+
"timeline-event": () => import("./timeline-event-DWIh3Tdt.mjs").then((mod) => mod.default),
|
|
560
|
+
eid: () => import("./eid-D-BbtWjt.mjs").then((mod) => mod.default),
|
|
561
|
+
query: () => import("./query-BKSM-pbi.mjs").then((mod) => mod.default),
|
|
562
|
+
uuid: () => import("./uuid-oVdJ62eA.mjs").then((mod) => mod.default),
|
|
563
|
+
upgrade: () => import("./upgrade-CD1xtsIv.mjs").then((mod) => mod.default),
|
|
564
|
+
skills: () => import("./skills-BWrAlj9l.mjs").then((mod) => mod.default)
|
|
234
565
|
}
|
|
235
566
|
});
|
|
236
567
|
setMetabaseAugment(main, {
|
|
@@ -245,8 +576,8 @@ setMetabaseAugment(main, {
|
|
|
245
576
|
}],
|
|
246
577
|
inputSchema: null,
|
|
247
578
|
outputSchema: null,
|
|
248
|
-
|
|
249
|
-
|
|
579
|
+
requires: null,
|
|
580
|
+
capabilities: null
|
|
250
581
|
});
|
|
251
582
|
//#endregion
|
|
252
583
|
//#region src/core/env.ts
|
|
@@ -258,7 +589,6 @@ const ENV_VERBOSE = "MB_VERBOSE";
|
|
|
258
589
|
const ENV_SKIP_PREFLIGHT = "MB_CLI_SKIP_PREFLIGHT";
|
|
259
590
|
const ENV_DISABLE_KEYRING = "MB_CLI_DISABLE_KEYRING";
|
|
260
591
|
const ENV_SKILLS_DIR = "MB_SKILLS_DIR";
|
|
261
|
-
const ENV_WORKTREE = "MB_WORKTREE";
|
|
262
592
|
function legacyNameFor(canonical) {
|
|
263
593
|
return LEGACY_PREFIX + canonical.slice(3);
|
|
264
594
|
}
|
|
@@ -388,6 +718,11 @@ function jsonByteLength(value) {
|
|
|
388
718
|
return Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
389
719
|
}
|
|
390
720
|
//#endregion
|
|
721
|
+
//#region ../client/src/predicates.ts
|
|
722
|
+
function isPlainObject(value) {
|
|
723
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
724
|
+
}
|
|
725
|
+
//#endregion
|
|
391
726
|
//#region src/output/projection.ts
|
|
392
727
|
function projectForList(item, view, opts) {
|
|
393
728
|
const full = opts.format === "text" && opts.fields === void 0 ? false : opts.full;
|
|
@@ -521,8 +856,11 @@ function renderSummary(item, view, summaryText, opts) {
|
|
|
521
856
|
process.stdout.write(body);
|
|
522
857
|
}
|
|
523
858
|
function renderList(envelope, view, opts) {
|
|
859
|
+
renderListWithExtras(envelope, {}, view, opts);
|
|
860
|
+
}
|
|
861
|
+
function renderListWithExtras(envelope, extras, view, opts) {
|
|
524
862
|
if (opts.format === "json") {
|
|
525
|
-
renderJsonEnvelope(envelope, view, opts);
|
|
863
|
+
renderJsonEnvelope(envelope, extras, view, opts);
|
|
526
864
|
return;
|
|
527
865
|
}
|
|
528
866
|
if (envelope.data.length === 0) {
|
|
@@ -555,8 +893,11 @@ function projectedEnvelope(envelope, view, opts) {
|
|
|
555
893
|
data: envelope.data.map((item) => projectForList(item, view, opts))
|
|
556
894
|
};
|
|
557
895
|
}
|
|
558
|
-
function renderJsonEnvelope(envelope, view, opts) {
|
|
559
|
-
const capped = capListEnvelope(
|
|
896
|
+
function renderJsonEnvelope(envelope, extras, view, opts) {
|
|
897
|
+
const capped = capListEnvelope({
|
|
898
|
+
...projectedEnvelope(envelope, view, opts),
|
|
899
|
+
...extras
|
|
900
|
+
}, opts.maxBytes);
|
|
560
901
|
const ordered = {
|
|
561
902
|
returned: capped.returned,
|
|
562
903
|
offset: capped.offset,
|
|
@@ -565,6 +906,7 @@ function renderJsonEnvelope(envelope, view, opts) {
|
|
|
565
906
|
has_more: capped.has_more,
|
|
566
907
|
next_offset: capped.next_offset,
|
|
567
908
|
truncated: capped.truncated,
|
|
909
|
+
...extras,
|
|
568
910
|
data: capped.data
|
|
569
911
|
};
|
|
570
912
|
process.stdout.write(serializeJson(ordered, stdoutPretty()) + "\n");
|
|
@@ -662,107 +1004,169 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
662
1004
|
process.stderr.write(serializeJson(envelope, stderrPretty()) + "\n");
|
|
663
1005
|
}
|
|
664
1006
|
//#endregion
|
|
665
|
-
//#region ../client/src/version/
|
|
666
|
-
const
|
|
1007
|
+
//#region ../client/src/version/capability-summary.ts
|
|
1008
|
+
const CapabilitySummary = z.object({
|
|
667
1009
|
minVersion: z.number(),
|
|
668
1010
|
tokenFeature: z.string().optional()
|
|
669
1011
|
});
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
if (info.version === null) return {
|
|
680
|
-
reason: "unknown-version",
|
|
681
|
-
detail: "Could not detect Metabase server version. Proceeding without preflight check; failures may produce confusing errors."
|
|
1012
|
+
function summarizeCapabilities(features) {
|
|
1013
|
+
const rules = features.map((feature) => FEATURE_RULES[feature]);
|
|
1014
|
+
const minVersion = Math.max(KNOWN_RANGE.min, ...rules.map((rule) => rule.since));
|
|
1015
|
+
const tokenFeatures = [...new Set(rules.flatMap((rule) => rule.tokenFeature === void 0 ? [] : [rule.tokenFeature]))];
|
|
1016
|
+
if (tokenFeatures.length > 1) throw new Error(`a capability summary names one premium feature, got ${tokenFeatures.length}: ${tokenFeatures.join(", ")}`);
|
|
1017
|
+
const [tokenFeature] = tokenFeatures;
|
|
1018
|
+
return tokenFeature === void 0 ? { minVersion } : {
|
|
1019
|
+
minVersion,
|
|
1020
|
+
tokenFeature
|
|
682
1021
|
};
|
|
683
|
-
if (info.version.major < required.minVersion) return {
|
|
684
|
-
reason: "version-too-old",
|
|
685
|
-
detail: `This operation requires Metabase v${required.minVersion}+ (this server is ${info.version.tag}). Upgrade Metabase to use it.`
|
|
686
|
-
};
|
|
687
|
-
if (required.tokenFeature !== void 0) {
|
|
688
|
-
if (!(info.tokenFeatures?.[required.tokenFeature] === true)) return {
|
|
689
|
-
reason: "missing-token-feature",
|
|
690
|
-
detail: `This operation requires the '${required.tokenFeature}' premium feature (not enabled on this server).`
|
|
691
|
-
};
|
|
692
|
-
}
|
|
693
|
-
return null;
|
|
694
1022
|
}
|
|
695
1023
|
//#endregion
|
|
696
|
-
//#region src/
|
|
697
|
-
const
|
|
698
|
-
"
|
|
699
|
-
"
|
|
700
|
-
"
|
|
701
|
-
]
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
1024
|
+
//#region ../client/src/version/requirements.ts
|
|
1025
|
+
const METHOD_REQUIREMENTS = {
|
|
1026
|
+
"card.list": [],
|
|
1027
|
+
"card.get": [],
|
|
1028
|
+
"card.create": [],
|
|
1029
|
+
"card.update": [],
|
|
1030
|
+
"card.archive": [],
|
|
1031
|
+
"card.query": [],
|
|
1032
|
+
"card.exportQuery": [],
|
|
1033
|
+
"collection.list": [],
|
|
1034
|
+
"collection.listWithLibrary": [],
|
|
1035
|
+
"collection.get": [],
|
|
1036
|
+
"collection.create": [],
|
|
1037
|
+
"collection.update": [],
|
|
1038
|
+
"collection.archive": [],
|
|
1039
|
+
"collection.itemPages": [],
|
|
1040
|
+
"collection.tree": [],
|
|
1041
|
+
"contentTranslation.download": ["contentTranslation"],
|
|
1042
|
+
"contentTranslation.upload": ["contentTranslation"],
|
|
1043
|
+
"dashboard.list": [],
|
|
1044
|
+
"dashboard.get": [],
|
|
1045
|
+
"dashboard.create": [],
|
|
1046
|
+
"dashboard.update": [],
|
|
1047
|
+
"dashboard.archive": [],
|
|
1048
|
+
"dashboard.updateDashcard": [],
|
|
1049
|
+
"dashboard.checkCardReferences": [],
|
|
1050
|
+
"dashboard.parameterValues": [],
|
|
1051
|
+
"dashboard.searchParameterValues": [],
|
|
1052
|
+
"database.list": [],
|
|
1053
|
+
"database.get": [],
|
|
1054
|
+
"database.schemas": [],
|
|
1055
|
+
"database.schemaTables": [],
|
|
1056
|
+
"database.syncSchema": [],
|
|
1057
|
+
"database.rescanValues": [],
|
|
1058
|
+
"dataset.query": [],
|
|
1059
|
+
"document.list": [],
|
|
1060
|
+
"document.get": [],
|
|
1061
|
+
"document.create": [],
|
|
1062
|
+
"document.update": [],
|
|
1063
|
+
"document.archive": [],
|
|
1064
|
+
"eidTranslation.translate": [],
|
|
1065
|
+
"field.get": [],
|
|
1066
|
+
"field.update": [],
|
|
1067
|
+
"field.summary": [],
|
|
1068
|
+
"field.values": [],
|
|
1069
|
+
"gitSync.currentTask": ["remoteSync"],
|
|
1070
|
+
"gitSync.cancelTask": ["remoteSync"],
|
|
1071
|
+
"gitSync.isDirty": ["remoteSync"],
|
|
1072
|
+
"gitSync.dirty": ["remoteSync"],
|
|
1073
|
+
"gitSync.hasRemoteChanges": ["remoteSync"],
|
|
1074
|
+
"gitSync.import": ["remoteSync"],
|
|
1075
|
+
"gitSync.export": ["remoteSync"],
|
|
1076
|
+
"gitSync.stash": ["remoteSync"],
|
|
1077
|
+
"gitSync.branches": ["remoteSync"],
|
|
1078
|
+
"gitSync.createBranch": ["remoteSync"],
|
|
1079
|
+
"gitSync.setCollectionSynced": ["remoteSync"],
|
|
1080
|
+
"gitSync.syncedCollections": ["remoteSync"],
|
|
1081
|
+
"gitSync.remoteUrl": [],
|
|
1082
|
+
"gitSync.branch": [],
|
|
1083
|
+
"gitSync.waitForTask": ["remoteSync"],
|
|
1084
|
+
"library.get": ["library"],
|
|
1085
|
+
"library.create": ["library"],
|
|
1086
|
+
"library.ensureDataCollectionId": ["library"],
|
|
1087
|
+
"library.publishTables": ["library"],
|
|
1088
|
+
"library.unpublishTables": ["library"],
|
|
1089
|
+
"measure.list": ["measures"],
|
|
1090
|
+
"measure.get": ["measures"],
|
|
1091
|
+
"measure.create": ["measures"],
|
|
1092
|
+
"measure.update": ["measures"],
|
|
1093
|
+
"measure.archive": ["measures"],
|
|
1094
|
+
"notification.list": [],
|
|
1095
|
+
"notification.get": [],
|
|
1096
|
+
"notification.create": [],
|
|
1097
|
+
"notification.update": [],
|
|
1098
|
+
"notification.archive": [],
|
|
1099
|
+
"notification.send": [],
|
|
1100
|
+
"pulse.list": [],
|
|
1101
|
+
"pulse.get": [],
|
|
1102
|
+
"pulse.create": [],
|
|
1103
|
+
"pulse.update": [],
|
|
1104
|
+
"pulse.archive": [],
|
|
1105
|
+
"search.query": [],
|
|
1106
|
+
"segment.list": [],
|
|
1107
|
+
"segment.get": [],
|
|
1108
|
+
"segment.create": [],
|
|
1109
|
+
"segment.update": [],
|
|
1110
|
+
"segment.archive": [],
|
|
1111
|
+
"setting.list": [],
|
|
1112
|
+
"setting.get": [],
|
|
1113
|
+
"setting.set": [],
|
|
1114
|
+
"setup.create": [],
|
|
1115
|
+
"snippet.list": [],
|
|
1116
|
+
"snippet.get": [],
|
|
1117
|
+
"snippet.create": [],
|
|
1118
|
+
"snippet.update": [],
|
|
1119
|
+
"snippet.archive": [],
|
|
1120
|
+
"table.list": [],
|
|
1121
|
+
"table.get": [],
|
|
1122
|
+
"table.update": [],
|
|
1123
|
+
"table.queryMetadata": [],
|
|
1124
|
+
"table.appendCsv": [],
|
|
1125
|
+
"table.replaceCsv": [],
|
|
1126
|
+
"timeline.list": [],
|
|
1127
|
+
"timeline.get": [],
|
|
1128
|
+
"timeline.events": [],
|
|
1129
|
+
"timeline.create": [],
|
|
1130
|
+
"timeline.update": [],
|
|
1131
|
+
"timeline.archive": [],
|
|
1132
|
+
"timeline.delete": [],
|
|
1133
|
+
"timelineEvent.get": [],
|
|
1134
|
+
"timelineEvent.create": [],
|
|
1135
|
+
"timelineEvent.update": [],
|
|
1136
|
+
"timelineEvent.archive": [],
|
|
1137
|
+
"timelineEvent.delete": [],
|
|
1138
|
+
"transform.list": ["transforms"],
|
|
1139
|
+
"transform.get": ["transforms"],
|
|
1140
|
+
"transform.create": ["transforms"],
|
|
1141
|
+
"transform.update": ["transforms"],
|
|
1142
|
+
"transform.delete": ["transforms"],
|
|
1143
|
+
"transform.deleteTable": ["transforms"],
|
|
1144
|
+
"transform.dependencies": ["transforms"],
|
|
1145
|
+
"transform.cancel": ["transforms"],
|
|
1146
|
+
"transform.getRun": ["transforms"],
|
|
1147
|
+
"transform.runPages": ["transforms"],
|
|
1148
|
+
"transform.run": ["transforms"],
|
|
1149
|
+
"transformJob.list": ["transforms"],
|
|
1150
|
+
"transformJob.get": ["transforms"],
|
|
1151
|
+
"transformJob.create": ["transforms"],
|
|
1152
|
+
"transformJob.update": ["transforms"],
|
|
1153
|
+
"transformJob.delete": ["transforms"],
|
|
1154
|
+
"transformJob.run": ["transforms"],
|
|
1155
|
+
"transformJob.transforms": ["transforms"],
|
|
1156
|
+
"transformJob.setActive": ["transformJobActivation", "transforms"],
|
|
1157
|
+
"transformTag.list": ["transforms"],
|
|
1158
|
+
"transformTag.create": ["transforms"],
|
|
1159
|
+
"transformTag.update": ["transforms"],
|
|
1160
|
+
"transformTag.delete": ["transforms"],
|
|
1161
|
+
"upload.createFromCsv": [],
|
|
1162
|
+
"user.current": []
|
|
1163
|
+
};
|
|
1164
|
+
function isMethodKey(key) {
|
|
1165
|
+
return Object.hasOwn(METHOD_REQUIREMENTS, key);
|
|
763
1166
|
}
|
|
764
|
-
|
|
765
|
-
|
|
1167
|
+
const METHOD_KEYS = Object.keys(METHOD_REQUIREMENTS).filter(isMethodKey);
|
|
1168
|
+
function methodRequirements(key) {
|
|
1169
|
+
return METHOD_REQUIREMENTS[key];
|
|
766
1170
|
}
|
|
767
1171
|
//#endregion
|
|
768
1172
|
//#region src/runtime/command-help.ts
|
|
@@ -788,6 +1192,10 @@ const CommandHelpSkill = z.object({
|
|
|
788
1192
|
skill: z.string(),
|
|
789
1193
|
purpose: z.string()
|
|
790
1194
|
});
|
|
1195
|
+
const CommandHelpRequires = z.object({
|
|
1196
|
+
methods: z.array(z.enum(METHOD_KEYS)),
|
|
1197
|
+
features: z.array(z.enum(FEATURE_NAMES))
|
|
1198
|
+
});
|
|
791
1199
|
z.object({
|
|
792
1200
|
command: z.string(),
|
|
793
1201
|
description: z.string().nullable(),
|
|
@@ -797,8 +1205,8 @@ z.object({
|
|
|
797
1205
|
args: z.array(CommandHelpArg),
|
|
798
1206
|
inputSchema: z.unknown().nullable(),
|
|
799
1207
|
outputSchema: z.unknown().nullable(),
|
|
800
|
-
|
|
801
|
-
|
|
1208
|
+
requires: CommandHelpRequires.nullable(),
|
|
1209
|
+
capabilities: CapabilitySummary.nullable()
|
|
802
1210
|
});
|
|
803
1211
|
const CommandIndexEntry = z.object({
|
|
804
1212
|
command: z.string(),
|
|
@@ -815,8 +1223,8 @@ const EMPTY_AUGMENT = {
|
|
|
815
1223
|
skills: [],
|
|
816
1224
|
inputSchema: null,
|
|
817
1225
|
outputSchema: null,
|
|
818
|
-
|
|
819
|
-
|
|
1226
|
+
requires: null,
|
|
1227
|
+
capabilities: null
|
|
820
1228
|
};
|
|
821
1229
|
async function buildHelpEntry(cmd, path) {
|
|
822
1230
|
const meta = await resolveCitty(cmd.meta);
|
|
@@ -830,8 +1238,8 @@ async function buildHelpEntry(cmd, path) {
|
|
|
830
1238
|
args: convertArgs(args),
|
|
831
1239
|
inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
|
|
832
1240
|
outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
|
|
833
|
-
|
|
834
|
-
|
|
1241
|
+
requires: augment.requires,
|
|
1242
|
+
capabilities: augment.capabilities
|
|
835
1243
|
};
|
|
836
1244
|
if (augment.details !== null) entry.details = augment.details;
|
|
837
1245
|
return entry;
|
|
@@ -1045,14 +1453,12 @@ async function walkCommandPath(root, rawArgs) {
|
|
|
1045
1453
|
unknownToken: null
|
|
1046
1454
|
};
|
|
1047
1455
|
}
|
|
1048
|
-
async function
|
|
1049
|
-
const { segments
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
unknownToken
|
|
1055
|
-
};
|
|
1456
|
+
async function resolveBreadcrumb(root, rawArgs) {
|
|
1457
|
+
const { segments } = await walkCommandPath(root, rawArgs);
|
|
1458
|
+
return segments.length > 0 ? segments.join(" ") : CLI_NAME;
|
|
1459
|
+
}
|
|
1460
|
+
async function findUnknownCommand(root, rawArgs) {
|
|
1461
|
+
return (await walkCommandPath(root, rawArgs)).unknownToken;
|
|
1056
1462
|
}
|
|
1057
1463
|
function skipFlags(rawArgs, start, argsDef) {
|
|
1058
1464
|
let index = start;
|
|
@@ -1108,15 +1514,6 @@ function installInterruptHandler(exit) {
|
|
|
1108
1514
|
});
|
|
1109
1515
|
}
|
|
1110
1516
|
//#endregion
|
|
1111
|
-
//#region src/runtime/verb-chain.ts
|
|
1112
|
-
let verbChain = null;
|
|
1113
|
-
function setVerbChain(chain) {
|
|
1114
|
-
verbChain = chain;
|
|
1115
|
-
}
|
|
1116
|
-
function readVerbChain() {
|
|
1117
|
-
return verbChain;
|
|
1118
|
-
}
|
|
1119
|
-
//#endregion
|
|
1120
1517
|
//#region src/cli.ts
|
|
1121
1518
|
const HELP_FLAGS = /* @__PURE__ */ new Set(["--help", "-h"]);
|
|
1122
1519
|
const JSON_HELP_FLAG = "--json";
|
|
@@ -1126,7 +1523,7 @@ async function run() {
|
|
|
1126
1523
|
const rawArgs = hoistGlobalFlags(process.argv.slice(2));
|
|
1127
1524
|
const wantsJsonHelp = rawArgs.includes(JSON_HELP_FLAG);
|
|
1128
1525
|
const showUsageWithBreadcrumb = async (cmd, parent) => {
|
|
1129
|
-
const
|
|
1526
|
+
const breadcrumb = await resolveBreadcrumb(main, rawArgs);
|
|
1130
1527
|
if (wantsJsonHelp) {
|
|
1131
1528
|
await showUsageJson(cmd, breadcrumb);
|
|
1132
1529
|
return;
|
|
@@ -1138,12 +1535,11 @@ async function run() {
|
|
|
1138
1535
|
return;
|
|
1139
1536
|
}
|
|
1140
1537
|
if (!rawArgs.some((arg) => HELP_FLAGS.has(arg))) {
|
|
1141
|
-
const
|
|
1142
|
-
if (
|
|
1143
|
-
reportError(new ConfigError(`unknown command: ${
|
|
1538
|
+
const unknown = await findUnknownCommand(main, rawArgs);
|
|
1539
|
+
if (unknown !== null) {
|
|
1540
|
+
reportError(new ConfigError(`unknown command: ${unknown}`));
|
|
1144
1541
|
return;
|
|
1145
1542
|
}
|
|
1146
|
-
setVerbChain(verbs);
|
|
1147
1543
|
}
|
|
1148
1544
|
await runMain(main, {
|
|
1149
1545
|
showUsage: showUsageWithBreadcrumb,
|
|
@@ -1154,4 +1550,4 @@ run().catch((error) => {
|
|
|
1154
1550
|
reportError(error);
|
|
1155
1551
|
});
|
|
1156
1552
|
//#endregion
|
|
1157
|
-
export {
|
|
1553
|
+
export { ValidationError as $, setMetabaseAugment as A, listEnvelopeSchemaWithExtras as B, ENV_DISABLE_KEYRING as C, ENV_URL as D, ENV_SKIP_PREFLIGHT as E, listFlagsWithDefaultLimit as F, ChainedRequestError as G, normalizeFlag as H, outputFlags as I, MetabaseError as J, ConfigError as K, profileFlag as L, version as M, connectionFlags as N, consumeLegacyEnvWarnings as O, listFlags as P, UnknownError as Q, DEFAULT_MAX_BYTES as R, ENV_API_KEY as S, ENV_SKILLS_DIR as T, toAliasArray as U, flagConsumesValue as V, AbortError as W, ResponseShapeError as X, NetworkError as Y, TimeoutError as Z, promptPassword as _, renderItem as a, featureGap as at, listTruncationNotice as b, renderSummary as c, editionFromTag as ct, MALFORMED_CELL as d, FEATURE_RULES as dt, errorMessage as et, formatScalar as f, Features as ft, promptConfirm as g, escapeJsonPointerSegment as gt, isPlainObject as h, TokenFeatures as ht, reportError as i, createServerProfile as it, name as j, readEnv as k, writeJson as l, tryParseTag as lt, projectForList as m, SessionProperties as mt, methodRequirements as n, KNOWN_RANGE as nt, renderList as o, Edition as ot, renderRows as p, isFeatureName as pt, InternalError as q, summarizeCapabilities as r, Skew as rt, renderListWithExtras as s, ParsedVersion as st, interruptSignal as t, isFileNotFoundError as tt, writeText as u, FEATURE_NAMES as ut, promptSelect as v, ENV_PROFILE as w, warn as x, promptText as y, listEnvelopeSchema as z };
|