@metabase/cli 0.3.0 → 0.3.1-alpha.fix-transform-test-ee-path.a3ca6dd
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-B3Ty8SzB.mjs → add-collection-BEg-1pt8.mjs} +6 -9
- package/dist/{alert-DT-ee7yf.mjs → alert-CBwtJ3lE.mjs} +7 -7
- package/dist/{alerts-Bf2RH_p_.mjs → alerts-Bn9ZhFYK.mjs} +7 -7
- package/dist/{append-DFzQRPMd.mjs → append-F7kfyk0p.mjs} +6 -5
- package/dist/{archive-ByvA49Kz.mjs → archive-2VqBgcyE.mjs} +5 -5
- package/dist/{archive-4tmm946K.mjs → archive-3_KVbxIk.mjs} +4 -4
- package/dist/{archive-Cd29QC0c.mjs → archive-7tZyaUWv.mjs} +4 -4
- package/dist/{archive-Dr9Xnx_Z.mjs → archive-Bonv-Hcf.mjs} +6 -6
- package/dist/{archive-C7w49Grr.mjs → archive-BzEvapLz.mjs} +6 -6
- package/dist/{archive-CwAdlv63.mjs → archive-CAwDiQWt2.mjs} +6 -6
- package/dist/{archive-lQqs13Uz.mjs → archive-CE-RKcle.mjs} +6 -6
- package/dist/{archive-B6eXiyER.mjs → archive-Da3-hnRM.mjs} +4 -4
- package/dist/{archive-gid9Y09v.mjs → archive-IBHOtOMk.mjs} +4 -4
- package/dist/{archive-BxNPHxOY.mjs → archive-TBo05bZZ.mjs} +6 -6
- package/dist/{archive-ChORH5JH.mjs → archive-k79AXZhh.mjs} +4 -4
- package/dist/{auth-Dltxua89.mjs → auth-CLZuUSzL.mjs} +5 -5
- package/dist/{body-Cur4NJt9.mjs → body-Q8iNnt-X.mjs} +3 -3
- package/dist/{branches-DchlyU0i.mjs → branches-CjMIMKse.mjs} +4 -7
- package/dist/{cancel-BMQa5R1Z.mjs → cancel-H4vYr5Jv.mjs} +4 -4
- package/dist/{cancel-task-C5CU1pxU.mjs → cancel-task-p09LCbgs.mjs} +5 -8
- package/dist/{card-zyUkr2nS.mjs → card-CEkp1mcI.mjs} +1 -1
- package/dist/card-DlVb10D3.mjs +24 -0
- package/dist/{card-DZxRmver.mjs → card-voh1k4hl.mjs} +14 -11
- package/dist/{cards-SccWvRQD.mjs → cards-DDG6RObF.mjs} +7 -7
- package/dist/cli.mjs +567 -68
- package/dist/client-toDDqakD.mjs +4093 -0
- package/dist/{collection-CfulNRBG.mjs → collection-BxdPxD38.mjs} +1 -1
- package/dist/{collection-CGoVLvcD.mjs → collection-DYM0p3Xl.mjs} +1 -1
- package/dist/{collection-namespace-GwydWBF3.mjs → collection-namespace-DDI9-HgU.mjs} +2 -2
- package/dist/collection-p_sficxo.mjs +20 -0
- package/dist/content-translation-BrHOrmj9.mjs +5 -0
- package/dist/content-translation-DcTEH_d7.mjs +12 -0
- package/dist/{create-CAWytBE5.mjs → create-BLxdMJgQ.mjs} +5 -5
- package/dist/{create-BNQ_DytP.mjs → create-BPN1cX7b.mjs} +4 -4
- package/dist/{create-CHQx7jq4.mjs → create-BjCpsMQM.mjs} +5 -5
- package/dist/{create-CD008jdE.mjs → create-BovrhBQn.mjs} +12 -8
- package/dist/{create-DV-Ln5Mo.mjs → create-CVCPD-1F.mjs} +4 -4
- package/dist/{create-DJmXXQoq.mjs → create-CVPGOx7u2.mjs} +8 -8
- package/dist/{create-Beh-2uoN.mjs → create-Chs5c8vx.mjs} +6 -6
- package/dist/{create-BOLwWt8Q.mjs → create-D04fl6ec.mjs} +5 -5
- package/dist/{create-C79vErX0.mjs → create-D5mN20oE.mjs} +7 -7
- package/dist/{create-DF4QtgDL.mjs → create-D88Im3X22.mjs} +6 -6
- package/dist/{create-tQbnuz-I.mjs → create-DQfOV9Sm.mjs} +6 -6
- package/dist/{create-CCh_LyW9.mjs → create-DWU4j22P.mjs} +4 -4
- package/dist/create-DjP2yUyn.mjs +34 -0
- package/dist/{create-CAQV2g6V.mjs → create-Dk6Zm3ZH.mjs} +7 -7
- package/dist/{create-zeveFdnd.mjs → create-DkmeJGMy.mjs} +5 -8
- package/dist/{create-i14Wv3Tj.mjs → create-TQr3briq.mjs} +4 -4
- package/dist/{create-branch-CYo6jZth.mjs → create-branch-Bs6BlkgQ.mjs} +5 -9
- package/dist/{csv-B2Jgb1GM.mjs → csv-BsN6FmY-.mjs} +6 -5
- package/dist/{current-task-MpBFGttd.mjs → current-task-cCmLLVcv.mjs} +5 -8
- package/dist/{dashboard-BHJBoaG7.mjs → dashboard-CpIEKEgu.mjs} +10 -10
- package/dist/{dashboard-BCpSq_G-.mjs → dashboard-D0hwTC-f.mjs} +12 -2
- package/dist/{dashboard-CsIFFpzK.mjs → dashboard-DgK81azj.mjs} +1 -1
- package/dist/{database-B19qlLKZ.mjs → database-C3E9PZSx.mjs} +1 -1
- package/dist/{database-C8G6ZKG0.mjs → database-JtHTqSpq.mjs} +1 -1
- package/dist/{db-DsfojyeH.mjs → db-BbvcmfWM.mjs} +7 -7
- package/dist/{delete-B8e01xAG.mjs → delete-C4_rcfNu.mjs} +5 -5
- package/dist/delete-CLdDYdYG.mjs +44 -0
- package/dist/{delete-DFmX7jTp.mjs → delete-D13SLwhr.mjs} +5 -5
- package/dist/{delete-Ob06PPie.mjs → delete-D3-jMLu5.mjs} +5 -5
- package/dist/{delete-BApOjQvl.mjs → delete-DLirF5iq.mjs} +5 -5
- package/dist/{delete-Ck0q4Dzp.mjs → delete-JBjvxdIU.mjs} +5 -5
- package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-BKEzJn22.mjs} +1 -2
- package/dist/{delete-table-DuyhGrvA.mjs → delete-table-Gwk7JL5c.mjs} +5 -5
- package/dist/{dependencies-Bj3QrGIm.mjs → dependencies-B7vl9Ovb.mjs} +7 -7
- package/dist/{dirty-DNYoM6Bp.mjs → dirty-CIZeASXG.mjs} +6 -9
- package/dist/{document-Cd2mmqCp.mjs → document-BHpLJbKU.mjs} +5 -0
- package/dist/{document-D6OybtP2.mjs → document-CA0Q6lqu.mjs} +1 -1
- package/dist/document-ceJW4VuL.mjs +19 -0
- package/dist/download-B-krJch0.mjs +25 -0
- package/dist/{eid-WTZmDdsr.mjs → eid-C0D92gZW.mjs} +4 -5
- package/dist/{events-Bn7jh5lP.mjs → events-CuLeaey6.mjs} +5 -5
- package/dist/{export-BjfoZRDJ.mjs → export-DeuLpt3x.mjs} +7 -10
- package/dist/{field-Zau6Hc6X.mjs → field-B8Hndt4p.mjs} +5 -5
- package/dist/{field-Cr2DPUG9.mjs → field-CcN4oZy6.mjs} +16 -1
- package/dist/{field-BPsNa-TO.mjs → field-fDtIrY6D.mjs} +1 -1
- package/dist/{fields-CBBa-Prp.mjs → fields-CAchmFh4.mjs} +7 -7
- package/dist/{get-CDJFVvhj.mjs → get-BH3Tgfgf.mjs} +4 -4
- package/dist/{get-CDMGbgrh.mjs → get-BJOxfbDP.mjs} +4 -4
- package/dist/{get-B_xdF1kq.mjs → get-BOjTqIMx.mjs} +6 -6
- package/dist/{get-D_h-G9bn.mjs → get-C1BPEbyl.mjs} +6 -6
- package/dist/{get-Dmj9Ygz1.mjs → get-C8dcHjd6.mjs} +6 -6
- package/dist/{get-DkWO0EI0.mjs → get-CArTALOt.mjs} +6 -6
- package/dist/get-CMCAgpxn.mjs +93 -0
- package/dist/{get-CnbUCzDM.mjs → get-CjDHpz6A.mjs} +4 -4
- package/dist/{get-ByBOq30r.mjs → get-ClNkea9I.mjs} +6 -6
- package/dist/{get-DRvsATp-.mjs → get-CvAMxfPD.mjs} +6 -6
- package/dist/{get-B7sMgsFs.mjs → get-D8qaSSEH.mjs} +4 -4
- package/dist/{get-00lyLv6R.mjs → get-DCvnNk3f.mjs} +6 -6
- package/dist/{get-DY03Azx9.mjs → get-DEwfm3Yl.mjs} +5 -8
- package/dist/{get-C2-Q3iQ5.mjs → get-DXWrGwWH.mjs} +4 -4
- package/dist/get-DbXTkB4u.mjs +32 -0
- package/dist/{get-DYO1kywc.mjs → get-DvF9oooq.mjs} +5 -5
- package/dist/{get-DdsoHaKH.mjs → get-d055CJ1T.mjs} +4 -4
- package/dist/{get-Bz99dAxK.mjs → get-kBTeBtLe.mjs} +6 -6
- package/dist/{get-DmpB6J9g.mjs → get-ohue3YrV2.mjs} +6 -6
- package/dist/{get-run-Cnux9ln0.mjs → get-run-X6zhp0dW.mjs} +6 -6
- package/dist/{get-Dn9ZiSZr.mjs → get-wIZrb7oN.mjs} +6 -6
- package/dist/git-sync-BkTmSgdD.mjs +28 -0
- package/dist/{git-sync-BDnxPrqU.mjs → git-sync-BwBRmEhE.mjs} +18 -1
- package/dist/{git-sync-DxD_ng48.mjs → git-sync-TjX1r_wF.mjs} +1 -1
- package/dist/{group-DBM87IgC.mjs → group-YQQ5GIcP.mjs} +2 -2
- package/dist/{has-remote-changes-C684Redh.mjs → has-remote-changes-zCtdEGs-.mjs} +5 -8
- package/dist/{import-Rmmttboo.mjs → import-DkAy_Xi8.mjs} +7 -10
- package/dist/{input-DH9i67x_.mjs → input-DEvkIjGr.mjs} +1 -1
- package/dist/{is-dirty-DYeJYhBz.mjs → is-dirty-Dfk2Xf-W.mjs} +3 -6
- package/dist/{items-CQlPXBXE.mjs → items-CiSBrc9d.mjs} +7 -7
- package/dist/{key-BEhqIzIQ.mjs → key-PYetuQ13.mjs} +1 -1
- package/dist/library-BPIzb3K_.mjs +81 -0
- package/dist/{library-Bsm5KsFF.mjs → library-FBj2Je-M.mjs} +5 -5
- package/dist/{library-DfYAT2Ep.mjs → library-PGCfm0UA.mjs} +1 -1
- package/dist/list-9CJczyF5.mjs +60 -0
- package/dist/{list-DE9FM957.mjs → list-B6tDzQsv.mjs} +4 -4
- package/dist/{list-BtkWNtvY.mjs → list-BDJkJc8s.mjs} +7 -7
- package/dist/{list-BzVTHOoH.mjs → list-Br0g0oDR.mjs} +6 -6
- package/dist/{list-CNUiF8Z7.mjs → list-C9-2J0Nu.mjs} +6 -6
- package/dist/{list-B4hJuMhA.mjs → list-CGjdrAhT.mjs} +7 -7
- package/dist/{list-BtmsNOEn.mjs → list-CHOJQ1uR.mjs} +4 -4
- package/dist/{list-CKK-s3Ty.mjs → list-CK4S_aDK.mjs} +4 -4
- package/dist/{list-C5Zs8nrb.mjs → list-CYONHM9n.mjs} +6 -6
- package/dist/{list-CQwOgIlj.mjs → list-CrwbvMEG.mjs} +6 -6
- package/dist/{list-BOET6zhP.mjs → list-D6WZmnG_.mjs} +4 -4
- package/dist/{list-DMKDsBRd.mjs → list-DD_tjCmP.mjs} +7 -7
- package/dist/{list-DF2rvoO1.mjs → list-Dqv3nOEe.mjs} +14 -13
- package/dist/{list-CQDprvW0.mjs → list-Hjsg2N8L.mjs} +7 -7
- package/dist/{list-CMpoc2TN.mjs → list-M4Twal0d.mjs} +5 -5
- package/dist/{list-BpFp9Wre.mjs → list-UbzhJFFn.mjs} +4 -4
- package/dist/list-W5y4079U.mjs +35 -0
- package/dist/{list-BP3MPq-M.mjs → list-f5HIVoLN.mjs} +4 -4
- package/dist/{list-B8nAGwP4.mjs → list-uCAP4vmQ.mjs} +6 -6
- package/dist/{login-CGHeSjlP.mjs → login-CIzUMkf3.mjs} +15 -12
- package/dist/{logout-DAxOlbv4.mjs → logout-CRm_AaoF.mjs} +3 -4
- package/dist/{measure-BsYv0p26.mjs → measure-DPXeIN18.mjs} +6 -6
- package/dist/{notification-Fcq1fIPw.mjs → notification-DVrLkjFT.mjs} +1 -1
- package/dist/{parameter-DUKR8NXo.mjs → parameter-Celg0wZa.mjs} +1 -1
- package/dist/{parameter-values-CJTdqd8c.mjs → parameter-values-rOHoy3k0.mjs} +5 -6
- package/dist/{parse-enum-D0Jfm_Bz.mjs → parse-enum-Dc0dMZ3P.mjs} +1 -1
- package/dist/{parse-id-C_jmKFaa.mjs → parse-id-CYZAIB58.mjs} +1 -1
- package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-DTDld_LJ.mjs} +1 -1
- package/dist/{path-B5gHvrYL.mjs → path-D9_unWc1.mjs} +5 -5
- package/dist/{poll-75SvT7Zv.mjs → poll-CZeXepUQ.mjs} +2 -2
- package/dist/{preflight-YpPQo-sa.mjs → preflight-BIxRV-bm.mjs} +3 -4
- package/dist/{process-DBOOrmET.mjs → process-CTrfxxaC.mjs} +1 -1
- package/dist/{publish-DijrxaCW.mjs → publish-N509vd0U.mjs} +9 -9
- package/dist/{pulse-BmsDenXm.mjs → pulse-Dz0ocv0l.mjs} +1 -1
- package/dist/{pulse-DhG6I9mI.mjs → pulse-x0gFxWfG.mjs} +2 -2
- package/dist/{query-Dc__-KJH.mjs → query-JvMjF22L.mjs} +9 -10
- package/dist/{query-result-DBDwk8TS.mjs → query-result-E4Q-Gra6.mjs} +1 -1
- package/dist/{query-BbqECzmF.mjs → query-yh5Wkfmc.mjs} +11 -18
- package/dist/{remove-collection-BOnxYvhj.mjs → remove-collection-B0E0dlZt.mjs} +6 -9
- package/dist/{render-CI93iP0I.mjs → render-Tlz6OCMU.mjs} +13 -2
- package/dist/{replace-Cq4CxVa-.mjs → replace-BwbYo6-2.mjs} +6 -5
- package/dist/{rescan-values-Dr_j416g.mjs → rescan-values-BiMPb5Z5.mjs} +6 -6
- package/dist/{run-DdGJ544X.mjs → run-B9aA1aNI.mjs} +26 -14
- package/dist/run-D37ntUQo.mjs +50 -0
- package/dist/{run-C3DkS6NP.mjs → run-Dbh3nvzF.mjs} +6 -6
- package/dist/{runs-CUNWiidL.mjs → runs-BuUzKR-x.mjs} +7 -7
- package/dist/{runtime-DiKyBxOw.mjs → runtime-CwhhhwcB.mjs} +946 -246
- package/dist/{schema-tables-CV386fnC.mjs → schema-tables-9PvvygPu.mjs} +7 -7
- package/dist/{schemas-DM-UqZBQ.mjs → schemas-DqkQI39t.mjs} +5 -5
- package/dist/{search-DFBwUc6d.mjs → search-BAXg-EJw.mjs} +2 -1
- package/dist/{search-DmGScXs8.mjs → search-BjAwR-oP.mjs} +6 -6
- package/dist/{segment-BzUGM2Fr.mjs → segment-1nBcugv8.mjs} +6 -6
- package/dist/{selectors-DGDn0Hto.mjs → selectors-DFNdyhPn.mjs} +3 -3
- package/dist/{send-CVxxEpDB.mjs → send-D4tYN3aN.mjs} +4 -4
- package/dist/{set-DFolTjbd.mjs → set-D_Mh2eVO.mjs} +5 -5
- package/dist/{set-active-BD8L1lPX.mjs → set-active-jY5VZsO8.mjs} +5 -5
- package/dist/{setting-DyhaeICs.mjs → setting-9ULb5wjN.mjs} +4 -4
- package/dist/{setup-BbDQN8fe.mjs → setup-DMaIuuCV.mjs} +4 -4
- package/dist/{signal-CMd0EFUa.mjs → signal-k7cm5N6h.mjs} +11 -2
- package/dist/skill-list-Bucy7UE2.mjs +76 -0
- package/dist/{skills--vK6J-e4.mjs → skills-Dyfqgobg.mjs} +3 -3
- package/dist/skills-PjjRtYqi.mjs +351 -0
- package/dist/snippet-DNoTIGAs.mjs +19 -0
- package/dist/{stash-D0S4JmAz.mjs → stash-C6BEM6_u.mjs} +7 -11
- package/dist/{status-BhswxJL1.mjs → status-DiP093Vm.mjs} +11 -9
- package/dist/{status-hL1am-HV.mjs → status-wAg5ajzM.mjs} +12 -11
- package/dist/stream-McixcoUl.mjs +7 -0
- package/dist/{subscription-_d5fB45F.mjs → subscription-CEeI0pSr.mjs} +6 -6
- package/dist/{subscriptions-s4TF6Ax3.mjs → subscriptions-B9cMNuIS.mjs} +7 -7
- package/dist/{summary-CsPvcUwW.mjs → summary-D0NP2NoT.mjs} +6 -6
- package/dist/{sync-schema-DaZ_MV-u.mjs → sync-schema-BgJ6KEqa.mjs} +7 -7
- package/dist/{sync-task-BACcrs0i.mjs → sync-task-BXeWuARG.mjs} +1 -1
- package/dist/{table-DYoC1kPn.mjs → table-9bTG6zSa.mjs} +5 -5
- package/dist/{table-CsIJNPFf.mjs → table-C6h4tIRw.mjs} +1 -1
- package/dist/{table-CeeTJgQb.mjs → table-DfuY0N8e.mjs} +51 -4
- package/dist/timeline-Ck53UgDh.mjs +21 -0
- package/dist/{timeline-event-CNQdCTDg.mjs → timeline-event-POmQ2TD2.mjs} +6 -6
- package/dist/transform-BC39AgQF.mjs +28 -0
- package/dist/{transform-DoTyyXAu.mjs → transform-CtqB1WYo.mjs} +2 -2
- package/dist/{transform-D3QX0jxA.mjs → transform-DiW7bREn.mjs} +68 -5
- 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-D-zUFmZU.mjs +22 -0
- package/dist/{transform-tag-_tgwlsdB.mjs → transform-tag-CP7FRU5G.mjs} +5 -5
- package/dist/transform-test-BjjCQ2xm.mjs +169 -0
- package/dist/transform-test-CKNQS_kC.mjs +16 -0
- package/dist/transform-test-gzDcbypy.mjs +25 -0
- package/dist/{transforms-oU4zizbO.mjs → transforms-DDSNP4eL.mjs} +7 -7
- package/dist/{tree-CH-f3bjP.mjs → tree-CAnMS2dm.mjs} +4 -5
- package/dist/{unpublish-BUl9RU5C.mjs → unpublish-DF1XQMWJ.mjs} +4 -7
- package/dist/{update-BZPllQoR.mjs → update-BS1yiwOO.mjs} +5 -5
- package/dist/{update-CO4m4wH3.mjs → update-Bb89y-0M.mjs} +8 -8
- package/dist/{update-C4YJQFDS.mjs → update-BbiVvdm1.mjs} +7 -7
- package/dist/{update-BCS5FxKr.mjs → update-BcdLQu7-.mjs} +9 -9
- package/dist/{update-cYkvbqK8.mjs → update-BjcWwrPc.mjs} +5 -5
- package/dist/{update-tX9mKBN_.mjs → update-BoJJ6Gel.mjs} +9 -9
- package/dist/{update-CHNSUHK4.mjs → update-C09GGTjN.mjs} +5 -5
- package/dist/{update-BzMDeZiU.mjs → update-C33R41eM.mjs} +7 -7
- package/dist/{update-CmDTljK-.mjs → update-C6KQZMDF.mjs} +7 -7
- package/dist/{update-bD_Jh5-s.mjs → update-CFqdElFO.mjs} +6 -6
- package/dist/{update-CVPAwJaH.mjs → update-CHsXoUJQ.mjs} +6 -6
- package/dist/update-CaJO1rWk.mjs +41 -0
- package/dist/{update-CvOO8TED.mjs → update-CmXGZPCR.mjs} +7 -7
- package/dist/{update-D-NE60AV.mjs → update-DFJSD3_l.mjs} +7 -7
- package/dist/{update-Nfi44RrE.mjs → update-DOeBAoul.mjs} +6 -6
- package/dist/{update-BiFDBcEH.mjs → update-DiowA7ud.mjs} +5 -5
- package/dist/{update-dashcard-C3TuYO_k.mjs → update-dashcard-DSL6Bogg.mjs} +7 -7
- package/dist/{upgrade-DXMV4AyP.mjs → upgrade-CBxr91bH.mjs} +6 -8
- package/dist/upload-C3z5ZaXA.mjs +24 -0
- package/dist/upload-CSHcnonI.mjs +13 -0
- package/dist/upload-DTyF-p8X.mjs +39 -0
- package/dist/upload-Do2PBSeH.mjs +23 -0
- package/dist/{uuid-BJkDWj9p.mjs → uuid-CwEbjDp8.mjs} +3 -4
- package/dist/{validate-BWchyW0V.mjs → validate-EAB-1EkK.mjs} +1 -1
- package/dist/{validate-query-DaGYSmpQ.mjs → validate-query-CQG86147.mjs} +2 -3
- package/dist/{values-Dxf1JEoA.mjs → values-69IZEVXu.mjs} +6 -6
- package/dist/{verify-K96rItG5.mjs → verify-Dg5YBI0l.mjs} +3 -18
- package/dist/{wait-DoMDH226.mjs → wait-DVXEJXd3.mjs} +7 -10
- package/dist/{wait-flags-DWEF9tX4.mjs → wait-flags-CkRgnfww.mjs} +2 -2
- package/dist/{window-BkvrP0gB.mjs → window-DSb1tqSe.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +31 -14
- package/skill-data/dashboard/SKILL.md +2 -2
- 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 +5 -0
- 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 +75 -3
- package/skill-data/transform-test-plan/SKILL.md +171 -0
- package/skill-data/transform-test-plan/references/checklist.md +81 -0
- package/skill-data/transform-test-plan/references/checks.md +259 -0
- 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/card-CHI2bmds.mjs +0 -24
- package/dist/client-BqhzKdLM.mjs +0 -2194
- package/dist/collection-CY0AB99E.mjs +0 -20
- package/dist/document-BbskZPTT.mjs +0 -19
- package/dist/get-CvI--9S_.mjs +0 -80
- package/dist/git-sync-MQQYRYLg.mjs +0 -28
- package/dist/library-ClLgrAXy.mjs +0 -19
- package/dist/list-UhpKG6_m.mjs +0 -98
- package/dist/network-error-CEb9ymDW.mjs +0 -423
- package/dist/predicates-Bkm2IoeX.mjs +0 -170
- package/dist/skills-DTCrMcix.mjs +0 -216
- package/dist/snippet-DRwKb2x7.mjs +0 -19
- package/dist/timeline-xlDbEKWg.mjs +0 -21
- package/dist/transform-Bs0EWijQ.mjs +0 -28
- package/dist/transform-job-BcLChRup.mjs +0 -22
- package/dist/upload-CH632qW6.mjs +0 -46
- package/dist/upload-Dey_8rLf.mjs +0 -13
package/dist/cli.mjs
CHANGED
|
@@ -1,10 +1,183 @@
|
|
|
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/version/known-range.ts
|
|
14
|
+
const KNOWN_RANGE = {
|
|
15
|
+
min: 58,
|
|
16
|
+
max: 64
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region ../client/src/errors.ts
|
|
20
|
+
var MetabaseError = class extends Error {
|
|
21
|
+
get userMessage() {
|
|
22
|
+
return this.message;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var NetworkError = class extends MetabaseError {
|
|
26
|
+
category = "network";
|
|
27
|
+
isRetryable = true;
|
|
28
|
+
developerDetail;
|
|
29
|
+
constructor(message, developerDetail) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = "NetworkError";
|
|
32
|
+
this.developerDetail = developerDetail;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var TimeoutError = class extends MetabaseError {
|
|
36
|
+
category = "timeout";
|
|
37
|
+
isRetryable = true;
|
|
38
|
+
developerDetail;
|
|
39
|
+
constructor(message, developerDetail) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.name = "TimeoutError";
|
|
42
|
+
this.developerDetail = developerDetail;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var ValidationError = class extends MetabaseError {
|
|
46
|
+
category = "validation";
|
|
47
|
+
isRetryable = false;
|
|
48
|
+
developerDetail;
|
|
49
|
+
constructor(message, developerDetail) {
|
|
50
|
+
super(message);
|
|
51
|
+
this.name = "ValidationError";
|
|
52
|
+
this.developerDetail = developerDetail;
|
|
53
|
+
}
|
|
54
|
+
get userMessage() {
|
|
55
|
+
const issues = this.developerDetail.zodIssues;
|
|
56
|
+
if (issues.length === 0) return this.message;
|
|
57
|
+
return `${this.message}\n${formatIssueLines(issues, VALIDATION_ISSUE_FORMAT)}`;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const VALIDATION_MAX_ISSUES = 10;
|
|
61
|
+
const RESPONSE_SHAPE_MAX_ISSUES = 5;
|
|
62
|
+
const VALIDATION_ISSUE_FORMAT = {
|
|
63
|
+
max: VALIDATION_MAX_ISSUES,
|
|
64
|
+
formatIssue: (issue) => `${formatZodIssuePointer(issue.path)}: ${issue.message}`
|
|
65
|
+
};
|
|
66
|
+
const RESPONSE_SHAPE_ISSUE_FORMAT = {
|
|
67
|
+
max: RESPONSE_SHAPE_MAX_ISSUES,
|
|
68
|
+
formatIssue: formatZodIssue
|
|
69
|
+
};
|
|
70
|
+
function formatIssueLines(issues, format) {
|
|
71
|
+
const head = issues.slice(0, format.max).map(format.formatIssue);
|
|
72
|
+
const overflow = issues.length - format.max;
|
|
73
|
+
if (overflow > 0) head.push(`... and ${overflow} more`);
|
|
74
|
+
return head.map((line) => ` ${line}`).join("\n");
|
|
75
|
+
}
|
|
76
|
+
function formatZodIssuePointer(path) {
|
|
77
|
+
if (path.length === 0) return "/";
|
|
78
|
+
return path.map((key) => `/${escapeJsonPointerSegment(key)}`).join("");
|
|
79
|
+
}
|
|
80
|
+
const RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION = "Metabase returned unexpected response shape";
|
|
81
|
+
var ResponseShapeError = class ResponseShapeError extends MetabaseError {
|
|
82
|
+
category = "response-shape";
|
|
83
|
+
isRetryable = false;
|
|
84
|
+
developerDetail;
|
|
85
|
+
constructor(message, developerDetail) {
|
|
86
|
+
super(message);
|
|
87
|
+
this.name = "ResponseShapeError";
|
|
88
|
+
this.developerDetail = developerDetail;
|
|
89
|
+
}
|
|
90
|
+
static fromZodIssues(developerDetail) {
|
|
91
|
+
return new ResponseShapeError(formatResponseShapeMessage(developerDetail), developerDetail);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
function formatResponseShapeMessage(detail) {
|
|
95
|
+
const { zodIssues: issues, serverTag, serverSkew } = detail;
|
|
96
|
+
const lead = serverTag === null ? RESPONSE_SHAPE_LEAD_UNKNOWN_VERSION : `On Metabase ${describeServer(serverTag, serverSkew)} the response shape was unexpected`;
|
|
97
|
+
if (issues.length === 0) return lead;
|
|
98
|
+
return `${lead}:\n${formatIssueLines(issues, RESPONSE_SHAPE_ISSUE_FORMAT)}`;
|
|
99
|
+
}
|
|
100
|
+
function describeServer(tag, skew) {
|
|
101
|
+
if (skew === "newer-than-known") return `${tag} (newer than this client supports, up to v${KNOWN_RANGE.max})`;
|
|
102
|
+
return tag;
|
|
103
|
+
}
|
|
104
|
+
var ConfigError = class extends MetabaseError {
|
|
105
|
+
category = "config";
|
|
106
|
+
isRetryable = false;
|
|
107
|
+
developerDetail = null;
|
|
108
|
+
constructor(message) {
|
|
109
|
+
super(message);
|
|
110
|
+
this.name = "ConfigError";
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var InternalError = class extends MetabaseError {
|
|
114
|
+
category = "internal";
|
|
115
|
+
isRetryable = false;
|
|
116
|
+
developerDetail = null;
|
|
117
|
+
constructor(message) {
|
|
118
|
+
super(message);
|
|
119
|
+
this.name = "InternalError";
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
var AbortError = class extends MetabaseError {
|
|
123
|
+
category = "abort";
|
|
124
|
+
isRetryable = false;
|
|
125
|
+
developerDetail = null;
|
|
126
|
+
constructor(message = "aborted") {
|
|
127
|
+
super(message);
|
|
128
|
+
this.name = "AbortError";
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
var ChainedRequestError = class extends MetabaseError {
|
|
132
|
+
cause;
|
|
133
|
+
constructor(message, cause) {
|
|
134
|
+
super(message);
|
|
135
|
+
this.name = "ChainedRequestError";
|
|
136
|
+
this.cause = cause;
|
|
137
|
+
}
|
|
138
|
+
get category() {
|
|
139
|
+
return this.cause.category;
|
|
140
|
+
}
|
|
141
|
+
get isRetryable() {
|
|
142
|
+
return this.cause.isRetryable;
|
|
143
|
+
}
|
|
144
|
+
get developerDetail() {
|
|
145
|
+
return this.cause.developerDetail;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
var UnknownError = class extends MetabaseError {
|
|
149
|
+
category = "unknown";
|
|
150
|
+
isRetryable = false;
|
|
151
|
+
developerDetail;
|
|
152
|
+
constructor(input) {
|
|
153
|
+
super(input.originalMessage);
|
|
154
|
+
this.name = "UnknownError";
|
|
155
|
+
this.developerDetail = input;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
function toMetabaseError(error) {
|
|
159
|
+
if (error instanceof MetabaseError) return error;
|
|
160
|
+
if (error instanceof ZodError) return new ConfigError(error.issues.map(formatZodIssue).join("; "));
|
|
161
|
+
if (error instanceof Error) return new UnknownError({
|
|
162
|
+
originalMessage: error.message,
|
|
163
|
+
stack: error.stack ?? null
|
|
164
|
+
});
|
|
165
|
+
return new UnknownError({
|
|
166
|
+
originalMessage: String(error),
|
|
167
|
+
stack: null
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function formatZodIssue(issue) {
|
|
171
|
+
const path = core.toDotPath(issue.path);
|
|
172
|
+
return path === "" ? issue.message : `${path}: ${issue.message}`;
|
|
173
|
+
}
|
|
174
|
+
function isFileNotFoundError(value) {
|
|
175
|
+
return value instanceof Error && "code" in value && value.code === "ENOENT";
|
|
176
|
+
}
|
|
177
|
+
function errorMessage(value) {
|
|
178
|
+
return value instanceof Error ? value.message : String(value);
|
|
179
|
+
}
|
|
180
|
+
//#endregion
|
|
8
181
|
//#region src/runtime/citty.ts
|
|
9
182
|
async function resolveCitty(value) {
|
|
10
183
|
if (value === void 0) return;
|
|
@@ -32,7 +205,16 @@ function flagConsumesValue(token, argsDef) {
|
|
|
32
205
|
//#region src/output/types.ts
|
|
33
206
|
const DEFAULT_MAX_BYTES = 24576;
|
|
34
207
|
function listEnvelopeSchema(item) {
|
|
208
|
+
return z.object(listEnvelopeShape(item));
|
|
209
|
+
}
|
|
210
|
+
function listEnvelopeSchemaWithExtras(item, extras) {
|
|
35
211
|
return z.object({
|
|
212
|
+
...listEnvelopeShape(item),
|
|
213
|
+
...extras
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
function listEnvelopeShape(item) {
|
|
217
|
+
return {
|
|
36
218
|
data: z.array(item).describe("The items in this window."),
|
|
37
219
|
returned: z.number().int().nonnegative().describe("Number of items in `data`; a short window is not proof the walk is over."),
|
|
38
220
|
offset: z.number().int().nonnegative().describe("Index of the first item in `data` within the full result set."),
|
|
@@ -44,7 +226,7 @@ function listEnvelopeSchema(item) {
|
|
|
44
226
|
reason: z.literal("max_bytes"),
|
|
45
227
|
bytes: z.number().int().nonnegative()
|
|
46
228
|
}).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
|
-
}
|
|
229
|
+
};
|
|
48
230
|
}
|
|
49
231
|
//#endregion
|
|
50
232
|
//#region src/commands/flags.ts
|
|
@@ -175,7 +357,7 @@ function trustSystemCa() {
|
|
|
175
357
|
//#endregion
|
|
176
358
|
//#region package.json
|
|
177
359
|
var name = "@metabase/cli";
|
|
178
|
-
var version = "0.3.
|
|
360
|
+
var version = "0.3.1-alpha.fix-transform-test-ee-path.a3ca6dd";
|
|
179
361
|
var description = "Metabase CLI";
|
|
180
362
|
//#endregion
|
|
181
363
|
//#region src/runtime/command-augment.ts
|
|
@@ -195,35 +377,37 @@ const main = defineCommand({
|
|
|
195
377
|
description
|
|
196
378
|
},
|
|
197
379
|
subCommands: {
|
|
198
|
-
auth: () => import("./auth-
|
|
199
|
-
db: () => import("./db-
|
|
200
|
-
table: () => import("./table-
|
|
201
|
-
field: () => import("./field-
|
|
202
|
-
upload: () => import("./upload-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
"transform-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
380
|
+
auth: () => import("./auth-CLZuUSzL.mjs").then((mod) => mod.default),
|
|
381
|
+
db: () => import("./db-BbvcmfWM.mjs").then((mod) => mod.default),
|
|
382
|
+
table: () => import("./table-9bTG6zSa.mjs").then((mod) => mod.default),
|
|
383
|
+
field: () => import("./field-B8Hndt4p.mjs").then((mod) => mod.default),
|
|
384
|
+
upload: () => import("./upload-CSHcnonI.mjs").then((mod) => mod.default),
|
|
385
|
+
"content-translation": () => import("./content-translation-DcTEH_d7.mjs").then((mod) => mod.default),
|
|
386
|
+
card: () => import("./card-DlVb10D3.mjs").then((mod) => mod.default),
|
|
387
|
+
dashboard: () => import("./dashboard-CpIEKEgu.mjs").then((mod) => mod.default),
|
|
388
|
+
subscription: () => import("./subscription-CEeI0pSr.mjs").then((mod) => mod.default),
|
|
389
|
+
alert: () => import("./alert-CBwtJ3lE.mjs").then((mod) => mod.default),
|
|
390
|
+
collection: () => import("./collection-p_sficxo.mjs").then((mod) => mod.default),
|
|
391
|
+
library: () => import("./library-FBj2Je-M.mjs").then((mod) => mod.default),
|
|
392
|
+
document: () => import("./document-ceJW4VuL.mjs").then((mod) => mod.default),
|
|
393
|
+
transform: () => import("./transform-BC39AgQF.mjs").then((mod) => mod.default),
|
|
394
|
+
"transform-job": () => import("./transform-job-D-zUFmZU.mjs").then((mod) => mod.default),
|
|
395
|
+
"transform-tag": () => import("./transform-tag-CP7FRU5G.mjs").then((mod) => mod.default),
|
|
396
|
+
"transform-test": () => import("./transform-test-CKNQS_kC.mjs").then((mod) => mod.default),
|
|
397
|
+
setting: () => import("./setting-9ULb5wjN.mjs").then((mod) => mod.default),
|
|
398
|
+
search: () => import("./search-BjAwR-oP.mjs").then((mod) => mod.default),
|
|
399
|
+
"git-sync": () => import("./git-sync-BkTmSgdD.mjs").then((mod) => mod.default),
|
|
400
|
+
setup: () => import("./setup-DMaIuuCV.mjs").then((mod) => mod.default),
|
|
401
|
+
snippet: () => import("./snippet-DNoTIGAs.mjs").then((mod) => mod.default),
|
|
402
|
+
segment: () => import("./segment-1nBcugv8.mjs").then((mod) => mod.default),
|
|
403
|
+
measure: () => import("./measure-DPXeIN18.mjs").then((mod) => mod.default),
|
|
404
|
+
timeline: () => import("./timeline-Ck53UgDh.mjs").then((mod) => mod.default),
|
|
405
|
+
"timeline-event": () => import("./timeline-event-POmQ2TD2.mjs").then((mod) => mod.default),
|
|
406
|
+
eid: () => import("./eid-C0D92gZW.mjs").then((mod) => mod.default),
|
|
407
|
+
query: () => import("./query-JvMjF22L.mjs").then((mod) => mod.default),
|
|
408
|
+
uuid: () => import("./uuid-CwEbjDp8.mjs").then((mod) => mod.default),
|
|
409
|
+
upgrade: () => import("./upgrade-CBxr91bH.mjs").then((mod) => mod.default),
|
|
410
|
+
skills: () => import("./skills-Dyfqgobg.mjs").then((mod) => mod.default)
|
|
227
411
|
}
|
|
228
412
|
});
|
|
229
413
|
setMetabaseAugment(main, {
|
|
@@ -238,9 +422,22 @@ setMetabaseAugment(main, {
|
|
|
238
422
|
}],
|
|
239
423
|
inputSchema: null,
|
|
240
424
|
outputSchema: null,
|
|
241
|
-
|
|
425
|
+
requires: null
|
|
242
426
|
});
|
|
243
427
|
//#endregion
|
|
428
|
+
//#region src/core/profile-refreshed-error.ts
|
|
429
|
+
var ProfileRefreshedError = class extends MetabaseError {
|
|
430
|
+
category;
|
|
431
|
+
isRetryable = false;
|
|
432
|
+
developerDetail;
|
|
433
|
+
constructor(cause, note) {
|
|
434
|
+
super(`${cause.userMessage}\n${note}`);
|
|
435
|
+
this.name = "ProfileRefreshedError";
|
|
436
|
+
this.category = cause.category;
|
|
437
|
+
this.developerDetail = cause.developerDetail;
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
//#endregion
|
|
244
441
|
//#region src/core/env.ts
|
|
245
442
|
const LEGACY_PREFIX = "METABASE_";
|
|
246
443
|
const ENV_URL = "MB_URL";
|
|
@@ -379,6 +576,11 @@ function jsonByteLength(value) {
|
|
|
379
576
|
return Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
380
577
|
}
|
|
381
578
|
//#endregion
|
|
579
|
+
//#region ../client/src/predicates.ts
|
|
580
|
+
function isPlainObject(value) {
|
|
581
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
582
|
+
}
|
|
583
|
+
//#endregion
|
|
382
584
|
//#region src/output/projection.ts
|
|
383
585
|
function projectForList(item, view, opts) {
|
|
384
586
|
const full = opts.format === "text" && opts.fields === void 0 ? false : opts.full;
|
|
@@ -512,8 +714,11 @@ function renderSummary(item, view, summaryText, opts) {
|
|
|
512
714
|
process.stdout.write(body);
|
|
513
715
|
}
|
|
514
716
|
function renderList(envelope, view, opts) {
|
|
717
|
+
renderListWithExtras(envelope, {}, view, opts);
|
|
718
|
+
}
|
|
719
|
+
function renderListWithExtras(envelope, extras, view, opts) {
|
|
515
720
|
if (opts.format === "json") {
|
|
516
|
-
renderJsonEnvelope(envelope, view, opts);
|
|
721
|
+
renderJsonEnvelope(envelope, extras, view, opts);
|
|
517
722
|
return;
|
|
518
723
|
}
|
|
519
724
|
if (envelope.data.length === 0) {
|
|
@@ -546,8 +751,11 @@ function projectedEnvelope(envelope, view, opts) {
|
|
|
546
751
|
data: envelope.data.map((item) => projectForList(item, view, opts))
|
|
547
752
|
};
|
|
548
753
|
}
|
|
549
|
-
function renderJsonEnvelope(envelope, view, opts) {
|
|
550
|
-
const capped = capListEnvelope(
|
|
754
|
+
function renderJsonEnvelope(envelope, extras, view, opts) {
|
|
755
|
+
const capped = capListEnvelope({
|
|
756
|
+
...projectedEnvelope(envelope, view, opts),
|
|
757
|
+
...extras
|
|
758
|
+
}, opts.maxBytes);
|
|
551
759
|
const ordered = {
|
|
552
760
|
returned: capped.returned,
|
|
553
761
|
offset: capped.offset,
|
|
@@ -556,6 +764,7 @@ function renderJsonEnvelope(envelope, view, opts) {
|
|
|
556
764
|
has_more: capped.has_more,
|
|
557
765
|
next_offset: capped.next_offset,
|
|
558
766
|
truncated: capped.truncated,
|
|
767
|
+
...extras,
|
|
559
768
|
data: capped.data
|
|
560
769
|
};
|
|
561
770
|
process.stdout.write(serializeJson(ordered, stdoutPretty()) + "\n");
|
|
@@ -625,6 +834,7 @@ function isRouteMissing(handled) {
|
|
|
625
834
|
return "kind" in handled && handled.kind === ROUTE_MISSING_KIND;
|
|
626
835
|
}
|
|
627
836
|
function remediesFor(handled) {
|
|
837
|
+
if (handled instanceof ProfileRefreshedError) return [];
|
|
628
838
|
if (isVersionTooOld(handled.developerDetail)) return [DOWNGRADE_REMEDY];
|
|
629
839
|
if (isRouteMissing(handled)) return [ROUTE_MISSING_REMEDY];
|
|
630
840
|
return [];
|
|
@@ -653,35 +863,320 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
653
863
|
process.stderr.write(serializeJson(envelope, stderrPretty()) + "\n");
|
|
654
864
|
}
|
|
655
865
|
//#endregion
|
|
656
|
-
//#region ../client/src/version/
|
|
657
|
-
const
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
866
|
+
//#region ../client/src/version/features.ts
|
|
867
|
+
const FEATURE_RULES = {
|
|
868
|
+
transforms: { since: 59 },
|
|
869
|
+
transformJobActivation: { since: 61 },
|
|
870
|
+
measures: { since: 59 },
|
|
871
|
+
library: {
|
|
872
|
+
since: 59,
|
|
873
|
+
tokenFeature: "library"
|
|
874
|
+
},
|
|
875
|
+
remoteSync: {
|
|
876
|
+
since: 60,
|
|
877
|
+
tokenFeature: "remote_sync"
|
|
878
|
+
},
|
|
879
|
+
remoteSyncExportPreflight: {
|
|
880
|
+
since: 63,
|
|
881
|
+
tokenFeature: "remote_sync"
|
|
882
|
+
},
|
|
883
|
+
contentTranslation: {
|
|
884
|
+
since: 58,
|
|
885
|
+
tokenFeature: "content_translation"
|
|
886
|
+
},
|
|
887
|
+
contentVerification: {
|
|
888
|
+
since: 58,
|
|
889
|
+
tokenFeature: "content_verification"
|
|
890
|
+
},
|
|
891
|
+
transformTargetTableId: { since: 61 },
|
|
892
|
+
transformTargetTableLinkedOnCreate: {
|
|
893
|
+
since: 61,
|
|
894
|
+
until: 61
|
|
895
|
+
},
|
|
896
|
+
transformJobRunIdIsNumeric: { since: 64 },
|
|
897
|
+
transformCheckpointReset: { since: 60 },
|
|
898
|
+
fieldDataSensitivity: { since: 64 },
|
|
899
|
+
transformDagRuns: { since: 64 },
|
|
900
|
+
unifiedTransformRuns: { since: 64 },
|
|
901
|
+
transformTests: {
|
|
902
|
+
since: 65,
|
|
903
|
+
tokenFeature: "transforms-testing"
|
|
904
|
+
},
|
|
905
|
+
libraryChildrenCarryType: { since: 62 },
|
|
906
|
+
collectionItemsTotalOnEmptyPage: { since: 64 },
|
|
907
|
+
invalidMbqlIsBadRequest: { since: 59 },
|
|
908
|
+
boxplotDisplay: { since: 59 },
|
|
909
|
+
nativeTableTemplateTag: { since: 59 },
|
|
910
|
+
smartLinkMeasureModel: { since: 60 },
|
|
911
|
+
dashboardSubscriptionFilters: {
|
|
912
|
+
since: 58,
|
|
913
|
+
tokenFeature: "dashboard_subscription_filters"
|
|
914
|
+
},
|
|
915
|
+
dependencyGraph: {
|
|
916
|
+
since: 58,
|
|
917
|
+
tokenFeature: "dependencies"
|
|
918
|
+
},
|
|
919
|
+
dependencyItemListings: {
|
|
920
|
+
since: 59,
|
|
921
|
+
tokenFeature: "dependencies"
|
|
922
|
+
},
|
|
923
|
+
dependencyKebabCaseFilters: { since: 60 },
|
|
924
|
+
tableListAccessFilters: { since: 59 },
|
|
925
|
+
tableListTransformTargets: { since: 60 },
|
|
926
|
+
tableUnusedFilter: {
|
|
927
|
+
since: 58,
|
|
928
|
+
tokenFeature: "dependencies"
|
|
929
|
+
},
|
|
930
|
+
tableDataLayerTiers: { since: 59 },
|
|
931
|
+
bulkTableEdit: { since: 59 },
|
|
932
|
+
erd: {
|
|
933
|
+
since: 62,
|
|
934
|
+
tokenFeature: "schema-viewer"
|
|
935
|
+
},
|
|
936
|
+
documentCopy: { since: 59 },
|
|
937
|
+
transformInspector: {
|
|
938
|
+
since: 60,
|
|
939
|
+
tokenFeature: "transforms-python"
|
|
940
|
+
},
|
|
941
|
+
pythonLibrary: {
|
|
942
|
+
since: 58,
|
|
943
|
+
tokenFeature: "transforms-python"
|
|
944
|
+
},
|
|
945
|
+
pythonTestRun: {
|
|
946
|
+
since: 60,
|
|
947
|
+
tokenFeature: "transforms-python"
|
|
948
|
+
},
|
|
949
|
+
sourceReplacement: {
|
|
950
|
+
since: 60,
|
|
951
|
+
tokenFeature: "dependencies"
|
|
952
|
+
},
|
|
953
|
+
metricDefinitionQuery: { since: 60 },
|
|
954
|
+
metricDimensionListing: { since: 64 }
|
|
955
|
+
};
|
|
956
|
+
function isFeatureName(name) {
|
|
957
|
+
return Object.hasOwn(FEATURE_RULES, name);
|
|
958
|
+
}
|
|
959
|
+
const FEATURE_NAMES = Object.keys(FEATURE_RULES).filter(isFeatureName);
|
|
960
|
+
const Features = z.record(z.enum(FEATURE_NAMES), z.boolean());
|
|
961
|
+
function evaluateFeatures(effectiveMajor, tokenFeatures) {
|
|
962
|
+
const entries = FEATURE_NAMES.map((name) => [name, ruleHolds(FEATURE_RULES[name], effectiveMajor, tokenFeatures)]);
|
|
963
|
+
return Features.parse(Object.fromEntries(entries));
|
|
964
|
+
}
|
|
965
|
+
function ruleHolds(rule, effectiveMajor, tokenFeatures) {
|
|
966
|
+
return ruleGap(rule, effectiveMajor, tokenFeatures) === null;
|
|
967
|
+
}
|
|
968
|
+
function ruleGap(rule, effectiveMajor, tokenFeatures) {
|
|
969
|
+
if (effectiveMajor < rule.since) return { kind: "version" };
|
|
970
|
+
if (rule.until !== void 0 && effectiveMajor > rule.until) return { kind: "version" };
|
|
971
|
+
if (rule.tokenFeature === void 0) return null;
|
|
972
|
+
return tokenFeatures !== null && tokenFeatures[rule.tokenFeature] === true ? null : {
|
|
973
|
+
kind: "token",
|
|
974
|
+
tokenFeature: rule.tokenFeature
|
|
667
975
|
};
|
|
668
976
|
}
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
977
|
+
//#endregion
|
|
978
|
+
//#region ../client/src/version/requirements.ts
|
|
979
|
+
const METHOD_REQUIREMENTS = {
|
|
980
|
+
"card.list": [],
|
|
981
|
+
"card.get": [],
|
|
982
|
+
"card.create": [],
|
|
983
|
+
"card.update": [],
|
|
984
|
+
"card.archive": [],
|
|
985
|
+
"card.query": [],
|
|
986
|
+
"card.exportQuery": [],
|
|
987
|
+
"card.queryMetadata": [],
|
|
988
|
+
"collection.list": [],
|
|
989
|
+
"collection.listWithLibrary": [],
|
|
990
|
+
"collection.get": [],
|
|
991
|
+
"collection.create": [],
|
|
992
|
+
"collection.update": [],
|
|
993
|
+
"collection.archive": [],
|
|
994
|
+
"collection.itemPages": [],
|
|
995
|
+
"collection.tree": [],
|
|
996
|
+
"contentTranslation.download": ["contentTranslation"],
|
|
997
|
+
"contentTranslation.upload": ["contentTranslation"],
|
|
998
|
+
"dashboard.list": [],
|
|
999
|
+
"dashboard.get": [],
|
|
1000
|
+
"dashboard.create": [],
|
|
1001
|
+
"dashboard.update": [],
|
|
1002
|
+
"dashboard.archive": [],
|
|
1003
|
+
"dashboard.copy": [],
|
|
1004
|
+
"dashboard.updateDashcard": [],
|
|
1005
|
+
"dashboard.checkCardReferences": [],
|
|
1006
|
+
"dashboard.parameterValues": [],
|
|
1007
|
+
"dashboard.searchParameterValues": [],
|
|
1008
|
+
"database.list": [],
|
|
1009
|
+
"database.get": [],
|
|
1010
|
+
"database.schemas": [],
|
|
1011
|
+
"database.schemaTables": [],
|
|
1012
|
+
"database.syncSchema": [],
|
|
1013
|
+
"database.rescanValues": [],
|
|
1014
|
+
"dataset.query": [],
|
|
1015
|
+
"dataset.native": [],
|
|
1016
|
+
"dataset.queryMetadata": [],
|
|
1017
|
+
"dataset.exportQuery": [],
|
|
1018
|
+
"dependency.breakingPages": ["dependencyItemListings"],
|
|
1019
|
+
"dependency.broken": ["dependencyItemListings"],
|
|
1020
|
+
"dependency.dependents": ["dependencyItemListings"],
|
|
1021
|
+
"dependency.graph": ["dependencyGraph"],
|
|
1022
|
+
"dependency.unreferencedPages": ["dependencyItemListings"],
|
|
1023
|
+
"document.list": [],
|
|
1024
|
+
"document.get": [],
|
|
1025
|
+
"document.create": [],
|
|
1026
|
+
"document.update": [],
|
|
1027
|
+
"document.archive": [],
|
|
1028
|
+
"document.copy": ["documentCopy"],
|
|
1029
|
+
"eidTranslation.translate": [],
|
|
1030
|
+
"erd.get": ["erd"],
|
|
1031
|
+
"field.get": [],
|
|
1032
|
+
"field.update": [],
|
|
1033
|
+
"field.search": [],
|
|
1034
|
+
"field.remapping": [],
|
|
1035
|
+
"field.summary": [],
|
|
1036
|
+
"field.values": [],
|
|
1037
|
+
"gitSync.currentTask": ["remoteSync"],
|
|
1038
|
+
"gitSync.cancelTask": ["remoteSync"],
|
|
1039
|
+
"gitSync.isDirty": ["remoteSync"],
|
|
1040
|
+
"gitSync.dirty": ["remoteSync"],
|
|
1041
|
+
"gitSync.hasRemoteChanges": ["remoteSync"],
|
|
1042
|
+
"gitSync.import": ["remoteSync"],
|
|
1043
|
+
"gitSync.export": ["remoteSync"],
|
|
1044
|
+
"gitSync.exportPreflight": ["remoteSyncExportPreflight"],
|
|
1045
|
+
"gitSync.stash": ["remoteSync"],
|
|
1046
|
+
"gitSync.branches": ["remoteSync"],
|
|
1047
|
+
"gitSync.createBranch": ["remoteSync"],
|
|
1048
|
+
"gitSync.setCollectionSynced": ["remoteSync"],
|
|
1049
|
+
"gitSync.syncedCollections": ["remoteSync"],
|
|
1050
|
+
"gitSync.remoteUrl": [],
|
|
1051
|
+
"gitSync.branch": [],
|
|
1052
|
+
"gitSync.waitForTask": ["remoteSync"],
|
|
1053
|
+
"glossary.list": [],
|
|
1054
|
+
"glossary.create": [],
|
|
1055
|
+
"glossary.update": [],
|
|
1056
|
+
"glossary.delete": [],
|
|
1057
|
+
"library.get": ["library"],
|
|
1058
|
+
"library.create": ["library"],
|
|
1059
|
+
"library.ensureDataCollectionId": ["library"],
|
|
1060
|
+
"library.publishTables": ["library"],
|
|
1061
|
+
"library.unpublishTables": ["library"],
|
|
1062
|
+
"metric.query": ["metricDefinitionQuery"],
|
|
1063
|
+
"metric.breakoutValues": ["metricDefinitionQuery"],
|
|
1064
|
+
"metric.dimensions": ["metricDimensionListing"],
|
|
1065
|
+
"measure.list": ["measures"],
|
|
1066
|
+
"measure.get": ["measures"],
|
|
1067
|
+
"measure.create": ["measures"],
|
|
1068
|
+
"measure.update": ["measures"],
|
|
1069
|
+
"measure.archive": ["measures"],
|
|
1070
|
+
"moderationReview.create": ["contentVerification"],
|
|
1071
|
+
"notification.list": [],
|
|
1072
|
+
"notification.get": [],
|
|
1073
|
+
"notification.create": [],
|
|
1074
|
+
"notification.update": [],
|
|
1075
|
+
"notification.archive": [],
|
|
1076
|
+
"notification.send": [],
|
|
1077
|
+
"permission.graph": [],
|
|
1078
|
+
"permission.databaseGraph": [],
|
|
1079
|
+
"permission.groupGraph": [],
|
|
1080
|
+
"pulse.list": [],
|
|
1081
|
+
"pulse.get": [],
|
|
1082
|
+
"pulse.create": [],
|
|
1083
|
+
"pulse.update": [],
|
|
1084
|
+
"pulse.archive": [],
|
|
1085
|
+
"replacement.checkReplaceSource": ["sourceReplacement"],
|
|
1086
|
+
"replacement.replaceSource": ["sourceReplacement"],
|
|
1087
|
+
"replacement.replaceModelWithTransform": ["sourceReplacement"],
|
|
1088
|
+
"replacement.listRuns": ["sourceReplacement"],
|
|
1089
|
+
"replacement.getRun": ["sourceReplacement"],
|
|
1090
|
+
"replacement.cancelRun": ["sourceReplacement"],
|
|
1091
|
+
"revision.list": [],
|
|
1092
|
+
"revision.revert": [],
|
|
1093
|
+
"search.query": [],
|
|
1094
|
+
"segment.list": [],
|
|
1095
|
+
"segment.get": [],
|
|
1096
|
+
"segment.create": [],
|
|
1097
|
+
"segment.update": [],
|
|
1098
|
+
"segment.archive": [],
|
|
1099
|
+
"setting.list": [],
|
|
1100
|
+
"setting.get": [],
|
|
1101
|
+
"setting.set": [],
|
|
1102
|
+
"setup.create": [],
|
|
1103
|
+
"snippet.list": [],
|
|
1104
|
+
"snippet.get": [],
|
|
1105
|
+
"snippet.create": [],
|
|
1106
|
+
"snippet.update": [],
|
|
1107
|
+
"snippet.archive": [],
|
|
1108
|
+
"table.list": [],
|
|
1109
|
+
"table.get": [],
|
|
1110
|
+
"table.update": [],
|
|
1111
|
+
"table.queryMetadata": [],
|
|
1112
|
+
"table.fks": [],
|
|
1113
|
+
"table.syncSchema": [],
|
|
1114
|
+
"table.rescanValues": [],
|
|
1115
|
+
"table.bulkEdit": ["bulkTableEdit"],
|
|
1116
|
+
"table.appendCsv": [],
|
|
1117
|
+
"table.replaceCsv": [],
|
|
1118
|
+
"timeline.list": [],
|
|
1119
|
+
"timeline.get": [],
|
|
1120
|
+
"timeline.events": [],
|
|
1121
|
+
"timeline.create": [],
|
|
1122
|
+
"timeline.update": [],
|
|
1123
|
+
"timeline.archive": [],
|
|
1124
|
+
"timeline.delete": [],
|
|
1125
|
+
"timelineEvent.get": [],
|
|
1126
|
+
"timelineEvent.create": [],
|
|
1127
|
+
"timelineEvent.update": [],
|
|
1128
|
+
"timelineEvent.archive": [],
|
|
1129
|
+
"timelineEvent.delete": [],
|
|
1130
|
+
"transform.list": ["transforms"],
|
|
1131
|
+
"transform.get": ["transforms"],
|
|
1132
|
+
"transform.create": ["transforms"],
|
|
1133
|
+
"transform.update": ["transforms"],
|
|
1134
|
+
"transform.delete": ["transforms"],
|
|
1135
|
+
"transform.deleteTable": ["transforms"],
|
|
1136
|
+
"transform.dependencies": ["transforms"],
|
|
1137
|
+
"transform.cancel": ["transforms"],
|
|
1138
|
+
"transform.getRun": ["transforms"],
|
|
1139
|
+
"transform.runPages": ["transforms"],
|
|
1140
|
+
"transform.runSummaryPages": ["unifiedTransformRuns", "transforms"],
|
|
1141
|
+
"transform.resetCheckpoint": ["transformCheckpointReset", "transforms"],
|
|
1142
|
+
"transform.runDag": ["transformDagRuns", "transforms"],
|
|
1143
|
+
"transform.dagTransforms": ["transformDagRuns", "transforms"],
|
|
1144
|
+
"transform.run": ["transforms"],
|
|
1145
|
+
"transformDagRun.transformRuns": ["transformDagRuns", "transforms"],
|
|
1146
|
+
"transformDagRun.cancel": ["transformDagRuns", "transforms"],
|
|
1147
|
+
"transformInspector.discover": ["transformInspector"],
|
|
1148
|
+
"transformInspector.lens": ["transformInspector"],
|
|
1149
|
+
"transformInspector.query": ["transformInspector"],
|
|
1150
|
+
"transformJob.list": ["transforms"],
|
|
1151
|
+
"transformJob.get": ["transforms"],
|
|
1152
|
+
"transformJob.create": ["transforms"],
|
|
1153
|
+
"transformJob.update": ["transforms"],
|
|
1154
|
+
"transformJob.delete": ["transforms"],
|
|
1155
|
+
"transformJob.run": ["transforms"],
|
|
1156
|
+
"transformJob.transforms": ["transforms"],
|
|
1157
|
+
"transformJob.setActive": ["transformJobActivation", "transforms"],
|
|
1158
|
+
"transformPython.getLibrary": ["pythonLibrary"],
|
|
1159
|
+
"transformPython.updateLibrary": ["pythonLibrary"],
|
|
1160
|
+
"transformPython.testRun": ["pythonTestRun"],
|
|
1161
|
+
"transformTag.list": ["transforms"],
|
|
1162
|
+
"transformTag.create": ["transforms"],
|
|
1163
|
+
"transformTag.update": ["transforms"],
|
|
1164
|
+
"transformTag.delete": ["transforms"],
|
|
1165
|
+
"transformTest.list": ["transformTests"],
|
|
1166
|
+
"transformTest.get": ["transformTests"],
|
|
1167
|
+
"transformTest.create": ["transformTests"],
|
|
1168
|
+
"transformTest.update": ["transformTests"],
|
|
1169
|
+
"transformTest.delete": ["transformTests"],
|
|
1170
|
+
"transformTest.run": ["transformTests"],
|
|
1171
|
+
"upload.createFromCsv": [],
|
|
1172
|
+
"user.current": []
|
|
1173
|
+
};
|
|
1174
|
+
function isMethodKey(key) {
|
|
1175
|
+
return Object.hasOwn(METHOD_REQUIREMENTS, key);
|
|
1176
|
+
}
|
|
1177
|
+
const METHOD_KEYS = Object.keys(METHOD_REQUIREMENTS).filter(isMethodKey);
|
|
1178
|
+
function methodRequirements(key) {
|
|
1179
|
+
return METHOD_REQUIREMENTS[key];
|
|
685
1180
|
}
|
|
686
1181
|
//#endregion
|
|
687
1182
|
//#region src/runtime/command-help.ts
|
|
@@ -707,6 +1202,10 @@ const CommandHelpSkill = z.object({
|
|
|
707
1202
|
skill: z.string(),
|
|
708
1203
|
purpose: z.string()
|
|
709
1204
|
});
|
|
1205
|
+
const CommandHelpRequires = z.object({
|
|
1206
|
+
methods: z.array(z.enum(METHOD_KEYS)),
|
|
1207
|
+
features: z.array(z.enum(FEATURE_NAMES))
|
|
1208
|
+
});
|
|
710
1209
|
z.object({
|
|
711
1210
|
command: z.string(),
|
|
712
1211
|
description: z.string().nullable(),
|
|
@@ -716,7 +1215,7 @@ z.object({
|
|
|
716
1215
|
args: z.array(CommandHelpArg),
|
|
717
1216
|
inputSchema: z.unknown().nullable(),
|
|
718
1217
|
outputSchema: z.unknown().nullable(),
|
|
719
|
-
|
|
1218
|
+
requires: CommandHelpRequires.nullable()
|
|
720
1219
|
});
|
|
721
1220
|
const CommandIndexEntry = z.object({
|
|
722
1221
|
command: z.string(),
|
|
@@ -733,7 +1232,7 @@ const EMPTY_AUGMENT = {
|
|
|
733
1232
|
skills: [],
|
|
734
1233
|
inputSchema: null,
|
|
735
1234
|
outputSchema: null,
|
|
736
|
-
|
|
1235
|
+
requires: null
|
|
737
1236
|
};
|
|
738
1237
|
async function buildHelpEntry(cmd, path) {
|
|
739
1238
|
const meta = await resolveCitty(cmd.meta);
|
|
@@ -747,7 +1246,7 @@ async function buildHelpEntry(cmd, path) {
|
|
|
747
1246
|
args: convertArgs(args),
|
|
748
1247
|
inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
|
|
749
1248
|
outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
|
|
750
|
-
|
|
1249
|
+
requires: augment.requires
|
|
751
1250
|
};
|
|
752
1251
|
if (augment.details !== null) entry.details = augment.details;
|
|
753
1252
|
return entry;
|
|
@@ -1058,4 +1557,4 @@ run().catch((error) => {
|
|
|
1058
1557
|
reportError(error);
|
|
1059
1558
|
});
|
|
1060
1559
|
//#endregion
|
|
1061
|
-
export {
|
|
1560
|
+
export { InternalError as $, ENV_SKILLS_DIR as A, listFlags as B, promptSelect as C, ENV_API_KEY as D, warn as E, ProfileRefreshedError as F, listEnvelopeSchema as G, outputFlags as H, setMetabaseAugment as I, normalizeFlag as J, listEnvelopeSchemaWithExtras as K, name as L, ENV_URL as M, consumeLegacyEnvWarnings as N, ENV_DISABLE_KEYRING as O, readEnv as P, ConfigError as Q, version as R, promptPassword as S, listTruncationNotice as T, profileFlag as U, listFlagsWithDefaultLimit as V, DEFAULT_MAX_BYTES as W, AbortError as X, toAliasArray as Y, ChainedRequestError as Z, formatScalar as _, Features as a, ValidationError as at, isPlainObject as b, ruleGap as c, KNOWN_RANGE as ct, renderList as d, MetabaseError as et, renderListWithExtras as f, MALFORMED_CELL as g, writeText as h, FEATURE_RULES as i, UnknownError as it, ENV_SKIP_PREFLIGHT as j, ENV_PROFILE as k, reportError as l, escapeJsonPointerSegment as lt, writeJson as m, methodRequirements as n, ResponseShapeError as nt, evaluateFeatures as o, errorMessage as ot, renderSummary as p, flagConsumesValue as q, FEATURE_NAMES as r, TimeoutError as rt, isFeatureName as s, isFileNotFoundError as st, interruptSignal as t, NetworkError as tt, renderItem as u, renderRows as v, promptText as w, promptConfirm as x, projectForList as y, connectionFlags as z };
|