@metabase/cli 0.3.1-alpha.transform-tests.3fbcf8b → 0.3.1-alpha.transform-tests.d9ed765
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-C-XJPp3F.mjs → add-collection-v_uw_8VC.mjs} +6 -9
- package/dist/{alert-Klz8Bhst.mjs → alert-2MDhiuxT.mjs} +7 -7
- package/dist/{alerts-Bp2vByJf.mjs → alerts-BDoIryWj.mjs} +7 -7
- package/dist/{append-D16_s1HW.mjs → append-CeHVEN3m.mjs} +5 -5
- package/dist/{archive-RzzXt2V0.mjs → archive-B9DiDia8.mjs} +6 -6
- package/dist/{archive-nDvHMzTv.mjs → archive-BMQBzQMw.mjs} +4 -4
- package/dist/{archive-C9iNjXcI.mjs → archive-BU3VZ1An.mjs} +5 -5
- package/dist/{archive-CA-HIfQq.mjs → archive-BopUoNoz.mjs} +4 -4
- package/dist/{archive-BOJUGwyL.mjs → archive-BuHy5_kr.mjs} +4 -4
- package/dist/{archive-Q_qUuYh8.mjs → archive-CVTpSQ0H.mjs} +6 -6
- package/dist/{archive-Dd7ZTibw.mjs → archive-CYaJZhBs.mjs} +4 -4
- package/dist/{archive-vzu8ghZZ.mjs → archive-CxzoUCE_.mjs} +6 -6
- package/dist/{archive-D4nGMs8A.mjs → archive-D5QNFMmn.mjs} +4 -4
- package/dist/{archive-Bj4MjbJY.mjs → archive-IBEbIm_S2.mjs} +6 -6
- package/dist/{archive-lDnTIypd.mjs → archive-M2_D7zAj.mjs} +6 -6
- package/dist/{auth-kyPQfiND.mjs → auth-DuGPC1Q0.mjs} +5 -5
- package/dist/{body-DxRSAMNC.mjs → body-hAwPMqBg.mjs} +3 -3
- package/dist/{branches-QixvzIpl.mjs → branches-CIP60haa.mjs} +4 -7
- package/dist/{cancel-CPStS4zJ.mjs → cancel-C9hrQ1yg.mjs} +4 -4
- package/dist/{cancel-task--cuSISnl.mjs → cancel-task-BeviniVd.mjs} +5 -8
- package/dist/{card-zyUkr2nS.mjs → card-CEkp1mcI.mjs} +1 -1
- package/dist/card-DqPrL79i.mjs +24 -0
- package/dist/{card-DZxRmver.mjs → card-voh1k4hl.mjs} +14 -11
- package/dist/{cards-CNbV8aGO.mjs → cards-CvWT-tKQ.mjs} +7 -7
- package/dist/cli.mjs +567 -70
- package/dist/client-yPhazV6T.mjs +4093 -0
- package/dist/collection-BsXk1V41.mjs +20 -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-CEoQ7G08.mjs → collection-namespace-C5SNf6Yw.mjs} +2 -2
- package/dist/{content-translation-CxTabpLF.mjs → content-translation-BNYQ8fJ3.mjs} +3 -3
- package/dist/{create-CEP4Jsrd.mjs → create-BVd4Y4py2.mjs} +6 -6
- package/dist/{create-ku05K1Oj.mjs → create-BZyLtvg5.mjs} +6 -6
- package/dist/{create-UxWtLwXT.mjs → create-BsiUuwSb.mjs} +5 -5
- package/dist/{create-WIIp7MVV.mjs → create-C1fVgFBd.mjs} +4 -4
- package/dist/{create-M8qXs24L.mjs → create-C4U9DGDG.mjs} +7 -7
- package/dist/{create-BTvSwLws.mjs → create-CHn7P-Bz.mjs} +5 -5
- package/dist/{create-BikaTHCw.mjs → create-CL4xkZ4j.mjs} +6 -6
- package/dist/{create-CYhsYOOJ.mjs → create-CcOTodqT.mjs} +4 -4
- package/dist/{create-BGV7ejai.mjs → create-Cmgq35ZB.mjs} +4 -4
- package/dist/{create-U15wd8_9.mjs → create-DPb3b69Y.mjs} +4 -4
- package/dist/{create-DMLjSEkF.mjs → create-DRyA-nuP.mjs} +5 -5
- package/dist/{create-CtDaASGO.mjs → create-DTfaHMNw.mjs} +6 -6
- package/dist/{create-BGy4L_yh.mjs → create-Db3QVXRi.mjs} +7 -7
- package/dist/{create-BsvpUxJq.mjs → create-DqKDw2zq.mjs} +5 -8
- package/dist/{create-CsABLrSI.mjs → create-S0jXAtl2.mjs} +11 -7
- package/dist/{create-BMokmmLp2.mjs → create-Z_gzD_p-2.mjs} +8 -8
- package/dist/{create-branch-Bkq9rtf7.mjs → create-branch-hYwnfY8X.mjs} +5 -9
- package/dist/{csv-GincCch9.mjs → csv-DOEqRG95.mjs} +5 -5
- package/dist/{current-task-CbnNWQ7H.mjs → current-task-DVo5aDfA.mjs} +5 -8
- package/dist/{dashboard-CKUR8ZpQ.mjs → dashboard-D0hwTC-f.mjs} +11 -2
- package/dist/{dashboard-ReNaou5J.mjs → dashboard-D8Yjjwfr.mjs} +10 -10
- package/dist/{dashboard-BlbNszi8.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-2hSYsqHk.mjs → db-ntq1NYVT.mjs} +7 -7
- package/dist/{delete-Bv3_SIqh.mjs → delete-BQWk6Ogb.mjs} +5 -5
- package/dist/{delete-CZqleA9Q.mjs → delete-C2iVm203.mjs} +5 -5
- package/dist/{delete-C1YmyeVy.mjs → delete-CPzdQGKf.mjs} +5 -5
- package/dist/{delete-DNsY94Ok.mjs → delete-CW8xJwDm.mjs} +5 -5
- package/dist/{delete-BEPw7WRT.mjs → delete-CZqaDxkf.mjs} +5 -5
- package/dist/{delete-B2wmUpj_.mjs → delete-Qsf-OKkl.mjs} +5 -5
- package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-BKEzJn22.mjs} +1 -2
- package/dist/{delete-table-DySwoEaq.mjs → delete-table-DLufNvzW.mjs} +5 -5
- package/dist/{dependencies-ygT6uMu4.mjs → dependencies-BGtd-eIR.mjs} +7 -7
- package/dist/{dirty-BkiHZ8gb.mjs → dirty-BiiJ5Ngh.mjs} +6 -9
- package/dist/{document-Cd2mmqCp.mjs → document-BHpLJbKU.mjs} +5 -0
- package/dist/document-BiS-U56S.mjs +19 -0
- package/dist/{document-D6OybtP2.mjs → document-CA0Q6lqu.mjs} +1 -1
- package/dist/{download-Chr-YNTG.mjs → download-DrcL0yRr.mjs} +3 -6
- package/dist/{eid-BvY-YGpN.mjs → eid-Bn3Impnq.mjs} +4 -5
- package/dist/{events-B01P0G7C.mjs → events-CfnrXbim.mjs} +5 -5
- package/dist/{export-CG23iezf.mjs → export-CFK8cMvK.mjs} +7 -10
- package/dist/{field-Cr2DPUG9.mjs → field-CcN4oZy6.mjs} +16 -1
- package/dist/{field-DikmNcAt.mjs → field-CeP-41qf.mjs} +5 -5
- package/dist/{field-BPsNa-TO.mjs → field-fDtIrY6D.mjs} +1 -1
- package/dist/{fields-C9BF3jHL.mjs → fields-B3tJI4X2.mjs} +7 -7
- package/dist/{get-B3jvGI0b.mjs → get-3ymehUjQ.mjs} +6 -6
- package/dist/{get-gFM8-HHP.mjs → get-B9fPTBEQ.mjs} +5 -8
- package/dist/{get-PKhv8WUf.mjs → get-BFh5ctuV.mjs} +6 -6
- package/dist/{get-N5EUCDL0.mjs → get-BMZ3UoJz.mjs} +6 -6
- package/dist/{get-DZpRq_Fw.mjs → get-Be9oShms.mjs} +4 -4
- package/dist/{get-DvqYIBp5.mjs → get-BkTiIo_7.mjs} +4 -4
- package/dist/{get-Blbcl76m.mjs → get-C-E-I10i.mjs} +6 -6
- package/dist/{get-FJofgEPB.mjs → get-CIlXE4zy.mjs} +6 -6
- package/dist/{get-UW0DOjH5.mjs → get-Cqfb4zZM.mjs} +4 -4
- package/dist/{get-BtauixMx.mjs → get-Cxvi9pSj.mjs} +6 -6
- package/dist/{get-Buxkx-RX.mjs → get-D2Bt3r3M.mjs} +4 -4
- package/dist/{get-DdSB-fpR.mjs → get-DJDV3NMU.mjs} +5 -5
- package/dist/{get-DY-e5oP7.mjs → get-D_f0INnl.mjs} +6 -6
- package/dist/{get-BHpVRSbm.mjs → get-Diozf-D0.mjs} +6 -6
- package/dist/{get-C1V7vZse.mjs → get-Dl9WoeCd.mjs} +4 -4
- package/dist/{get-C99cjjD0.mjs → get-DlPhNHPX.mjs} +6 -6
- package/dist/{get-BYSFFlsd.mjs → get-DnVGJfW42.mjs} +6 -6
- package/dist/get-Dx4k6_Qt.mjs +93 -0
- package/dist/{get-CkMLxzVy.mjs → get-lRUl1Dnb.mjs} +4 -4
- package/dist/{get-CMMXBVff.mjs → get-pGqPQ0Of.mjs} +6 -6
- package/dist/{get-run-F7ARJeAD.mjs → get-run-DmtNpSbG.mjs} +6 -6
- 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/git-sync-jvNlPu2I.mjs +28 -0
- package/dist/{group-DBM87IgC.mjs → group-YQQ5GIcP.mjs} +2 -2
- package/dist/{has-remote-changes-Bwyp8mc-.mjs → has-remote-changes-BS6jOb2-.mjs} +5 -8
- package/dist/{import-CPY8aM8d.mjs → import-Cur2I6Yc.mjs} +7 -10
- package/dist/{input-DH9i67x_.mjs → input-DEvkIjGr.mjs} +1 -1
- package/dist/{is-dirty-0F_UJY7Q.mjs → is-dirty-7Jo0tglq.mjs} +3 -6
- package/dist/{items-FUop0zGR.mjs → items-BBJSvqWt.mjs} +7 -7
- package/dist/{key-BEhqIzIQ.mjs → key-PYetuQ13.mjs} +1 -1
- package/dist/library-BPIzb3K_.mjs +81 -0
- package/dist/{library-DpOtb0E0.mjs → library-CpDosMc5.mjs} +5 -5
- package/dist/{library-DfYAT2Ep.mjs → library-PGCfm0UA.mjs} +1 -1
- package/dist/{list-B-74c1BD.mjs → list--Frwwg4i.mjs} +7 -7
- package/dist/{list-BASNYNJr.mjs → list-40V_8T3H.mjs} +4 -4
- package/dist/{list-xC99-2X0.mjs → list-BAO7rPNU.mjs} +4 -4
- package/dist/{list--B2EUWJg.mjs → list-BAaBsdMk.mjs} +6 -6
- package/dist/{list-rQ-6XSua.mjs → list-BCD9lkxc.mjs} +4 -4
- package/dist/{list-BQaXU1bp.mjs → list-BuZaFlV-.mjs} +4 -4
- package/dist/{list-Beoh2AYD.mjs → list-C7kqJAc8.mjs} +4 -4
- package/dist/{list-CGkgypYz.mjs → list-CBGsfTib.mjs} +7 -7
- package/dist/{list-Uc1OxV36.mjs → list-CFJyXUsF.mjs} +14 -13
- package/dist/{list-DfbsmsHv.mjs → list-CQJoLqy0.mjs} +7 -7
- package/dist/{list-DdFViPYS.mjs → list-CVs3TyU7.mjs} +6 -6
- package/dist/{list-DMlFbccD.mjs → list-CX2668xz.mjs} +6 -6
- package/dist/{list-ba7lI44w.mjs → list-CcyZu5Jp.mjs} +6 -6
- package/dist/{list-C2qxVTu7.mjs → list-DPvJihmj.mjs} +7 -7
- package/dist/{list-BQrk4Ua4.mjs → list-D_Kv8Ezq.mjs} +7 -7
- package/dist/{list-GyP4b_tU.mjs → list-DuZlYCTl.mjs} +5 -5
- package/dist/{list-Bqm0F1Y-.mjs → list-_6JwpPXA.mjs} +6 -6
- package/dist/{list-lzIKVtE9.mjs → list-bCtszwHJ.mjs} +4 -4
- package/dist/list-rojRNBu5.mjs +60 -0
- package/dist/{login-D5jt0q9K.mjs → login-BCxYB6ii.mjs} +15 -12
- package/dist/{logout-DViy0VzV.mjs → logout-BVEYg9pV.mjs} +3 -4
- package/dist/{measure-IPlonpqU.mjs → measure-DYmGuTVW.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-CHyOCxmR.mjs → parameter-values-D4qte8qc.mjs} +5 -6
- package/dist/{parse-enum-D0Jfm_Bz.mjs → parse-enum-Dc0dMZ3P.mjs} +1 -1
- package/dist/{parse-id-CPINxy7h.mjs → parse-id-BSdAXN-r.mjs} +1 -1
- package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-DTDld_LJ.mjs} +1 -1
- package/dist/{path-bMZzUOVo.mjs → path-BNZf4ETt.mjs} +5 -5
- package/dist/{poll-75SvT7Zv.mjs → poll-CZeXepUQ.mjs} +2 -2
- package/dist/{preflight-CoF1Em99.mjs → preflight-BsT-Ik4Z.mjs} +3 -4
- package/dist/{process-DBOOrmET.mjs → process-CTrfxxaC.mjs} +1 -1
- package/dist/{publish-Cs-OUG6n.mjs → publish-3Qlrs4CC.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-CEdmSEq8.mjs → query-B8MCziCM.mjs} +9 -10
- package/dist/{query-CpD46hL6.mjs → query-DxjE4Hq2.mjs} +10 -12
- package/dist/{query-result-DBDwk8TS.mjs → query-result-E4Q-Gra6.mjs} +1 -1
- package/dist/{remove-collection-DynsqkwG.mjs → remove-collection-CNWmp8C-.mjs} +6 -9
- package/dist/{render-CI93iP0I.mjs → render-MoT089RO.mjs} +13 -2
- package/dist/{replace-C6YqqCG9.mjs → replace-DOmUXCyk.mjs} +5 -5
- package/dist/{rescan-values-C6PB02uT.mjs → rescan-values-DpU_Ex0F.mjs} +6 -6
- package/dist/{run-C7PXBBEl.mjs → run-B8Vys-6V.mjs} +5 -5
- package/dist/{run-Cb86sH_c.mjs → run-CCPUWI0V.mjs} +6 -6
- package/dist/{run-CpmWoOGp.mjs → run-cyUFpMX3.mjs} +26 -14
- package/dist/{runs-CCRszsbB.mjs → runs-92XSK8ij.mjs} +7 -7
- package/dist/{runtime-BMJv4VOi.mjs → runtime-DzVkvFHY.mjs} +946 -246
- package/dist/{schema-tables-BQdFNy1B.mjs → schema-tables-lMGk2fyi.mjs} +7 -7
- package/dist/{schemas-CNAPFh4n.mjs → schemas-C83Q8dYY.mjs} +5 -5
- package/dist/{search-DFBwUc6d.mjs → search-BAXg-EJw.mjs} +2 -1
- package/dist/{search-BKVV6YtB.mjs → search-D6qBaNsw.mjs} +6 -6
- package/dist/{segment-CDoZHSYX.mjs → segment-BFJd2-ck.mjs} +6 -6
- package/dist/{selectors-BXbjj36S.mjs → selectors-Dcp25rNo.mjs} +3 -3
- package/dist/{send-D2eXL9lt.mjs → send-Be-_KmWr.mjs} +4 -4
- package/dist/{set-sHBtSGLi.mjs → set-Bg_4elCb.mjs} +5 -5
- package/dist/{set-active-DT61WwV0.mjs → set-active-CtQiMzt7.mjs} +5 -5
- package/dist/{setting-dkfKvCxc.mjs → setting-BNEblMco.mjs} +4 -4
- package/dist/{setup-TOwWatgm.mjs → setup-DFnxwJGX.mjs} +4 -4
- package/dist/{signal-CMd0EFUa.mjs → signal-k7cm5N6h.mjs} +11 -2
- package/dist/skill-list-Ro6J0pyV.mjs +76 -0
- package/dist/skills-BdrMrbXh.mjs +351 -0
- package/dist/{skills-BcOjZldN.mjs → skills-CGYk6b2r.mjs} +3 -3
- package/dist/snippet-vMnFtNwi.mjs +19 -0
- package/dist/{stash-BgWw2lyu.mjs → stash-C9SZwusp.mjs} +7 -11
- package/dist/{status-B14FO8n7.mjs → status-D0n7AuQU.mjs} +12 -11
- package/dist/{status-J4pEIm-c.mjs → status-Dj04FCCv.mjs} +11 -9
- package/dist/{subscription-B1uuKxM7.mjs → subscription-B5Iax7Ci.mjs} +6 -6
- package/dist/{subscriptions-BHIATSN6.mjs → subscriptions-DwvHRO1v.mjs} +7 -7
- package/dist/{summary-B1V5TXaZ.mjs → summary-DaA6Twxk.mjs} +6 -6
- package/dist/{sync-schema-D1vX-rpv.mjs → sync-schema-BFWKEC3r.mjs} +7 -7
- package/dist/{sync-task-BACcrs0i.mjs → sync-task-BXeWuARG.mjs} +1 -1
- package/dist/{table-CsIJNPFf.mjs → table-C6h4tIRw.mjs} +1 -1
- package/dist/{table-CDeO1WbH.mjs → table-DW1dG3Rl.mjs} +5 -5
- package/dist/{table-CeeTJgQb.mjs → table-DfuY0N8e.mjs} +51 -4
- package/dist/timeline-C0rqHF4p.mjs +21 -0
- package/dist/{timeline-event-oGmne082.mjs → timeline-event-D1MUnexK.mjs} +6 -6
- package/dist/{transform-DoTyyXAu.mjs → transform-CtqB1WYo.mjs} +2 -2
- package/dist/transform-D08iA4H_.mjs +28 -0
- 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-Me5CeV2z.mjs +22 -0
- package/dist/{transform-tag-Bpj8l5Ci.mjs → transform-tag-CbgjSy76.mjs} +5 -5
- package/dist/{transform-test-BJOPAwKl.mjs → transform-test-B-gVzODx.mjs} +1 -1
- package/dist/transform-test-BB_IFtZS.mjs +163 -0
- package/dist/transform-test-CwonhnyQ.mjs +16 -0
- package/dist/{transforms-K7Y4ON_q.mjs → transforms-Bhtk_Gil.mjs} +7 -7
- package/dist/{tree-CtFtroe4.mjs → tree-DLorrdEm.mjs} +4 -5
- package/dist/{unpublish-D7UaaIWA.mjs → unpublish-DOQhmLAx.mjs} +4 -7
- package/dist/{update-BvbPpgOL.mjs → update-BF4DWRT5.mjs} +6 -6
- package/dist/{update-dRAPKE3c.mjs → update-BeU02D8b.mjs} +6 -6
- package/dist/{update-C_wTtrtX.mjs → update-Bpb2V8Gm.mjs} +9 -9
- package/dist/{update-DUNJEk8m.mjs → update-CHNSRFKO.mjs} +7 -7
- package/dist/{update-BpuZsX9z.mjs → update-CSqPKfTk.mjs} +8 -8
- package/dist/{update-bix8NoKq.mjs → update-CTCcgeaY.mjs} +7 -7
- package/dist/{update-BlBEKrNE.mjs → update-Ch43eYU-.mjs} +5 -5
- package/dist/{update-MWaDj2VX.mjs → update-D2dis8s_.mjs} +8 -8
- package/dist/{update-YkB3xWUh.mjs → update-DEULsCgK.mjs} +6 -6
- package/dist/{update-B7veBLhx.mjs → update-DTZ07XFM.mjs} +5 -5
- package/dist/{update-CGJXd_E3.mjs → update-DWhC3xYc.mjs} +5 -5
- package/dist/{update-HqUKBeM2.mjs → update-DeA4gyTG.mjs} +5 -5
- package/dist/{update-BicO3Lio.mjs → update-Dq-KEeyS.mjs} +7 -7
- package/dist/{update-dashcard-BGqKMqQb.mjs → update-dashcard-CfDqxOlj.mjs} +7 -7
- package/dist/{update-3ksm443P.mjs → update-ezD5XTpy.mjs} +7 -7
- package/dist/{update-e4ufwrkF.mjs → update-mmeImeUo.mjs} +7 -7
- package/dist/{update-D9Nfv864.mjs → update-xjuN7bdu.mjs} +7 -7
- package/dist/{upgrade-DkQ1wk4z.mjs → upgrade-DgmbeOoJ.mjs} +6 -8
- package/dist/upload-BsPrAjN-.mjs +13 -0
- package/dist/{upload-CD555ui1.mjs → upload-Do2PBSeH.mjs} +2 -2
- package/dist/{upload-BfGc-L4t.mjs → upload-DzFBdNxM.mjs} +4 -7
- package/dist/{uuid-BLBLkWAF.mjs → uuid-DYYGRv9y.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-8CrXBkyg.mjs → values-Dk2CAR4T.mjs} +6 -6
- package/dist/{verify-nNVN-0CR.mjs → verify-8TnYrSNm.mjs} +3 -18
- package/dist/{wait-YrD7UYFF.mjs → wait-Oz6xFpyA.mjs} +7 -10
- package/dist/{wait-flags-CDtMS8FP.mjs → wait-flags-ClJx9LJ9.mjs} +2 -2
- package/dist/{window-BkvrP0gB.mjs → window-DSb1tqSe.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +29 -13
- 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 +25 -7
- 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-p2r_szeS.mjs +0 -24
- package/dist/client-DynvZqa0.mjs +0 -2282
- package/dist/collection-CAM47Der.mjs +0 -20
- package/dist/document-DGbDloCb.mjs +0 -19
- package/dist/get-B4GltkXP.mjs +0 -80
- package/dist/git-sync-IW4T2sKq.mjs +0 -28
- package/dist/library-ClLgrAXy.mjs +0 -19
- package/dist/list-CvzWE6CS.mjs +0 -98
- package/dist/network-error-D6CiOEBw.mjs +0 -431
- package/dist/predicates-Bkm2IoeX.mjs +0 -170
- package/dist/skills-DTCrMcix.mjs +0 -216
- package/dist/snippet-DMdFqvNq.mjs +0 -19
- package/dist/timeline-MQFX3Fla.mjs +0 -21
- package/dist/transform-CWIqW64R.mjs +0 -28
- package/dist/transform-job-DpF2MARE.mjs +0 -22
- package/dist/transform-test-BhkpwFqD.mjs +0 -16
- package/dist/transform-test-Dhcj7u-U.mjs +0 -142
- package/dist/upload-JN6EK96c.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.1-alpha.transform-tests.
|
|
360
|
+
var version = "0.3.1-alpha.transform-tests.d9ed765";
|
|
179
361
|
var description = "Metabase CLI";
|
|
180
362
|
//#endregion
|
|
181
363
|
//#region src/runtime/command-augment.ts
|
|
@@ -195,37 +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
|
-
"content-translation": () => import("./content-translation-
|
|
204
|
-
card: () => import("./card-
|
|
205
|
-
dashboard: () => import("./dashboard-
|
|
206
|
-
subscription: () => import("./subscription-
|
|
207
|
-
alert: () => import("./alert-
|
|
208
|
-
collection: () => import("./collection-
|
|
209
|
-
library: () => import("./library-
|
|
210
|
-
document: () => import("./document-
|
|
211
|
-
transform: () => import("./transform-
|
|
212
|
-
"transform-job": () => import("./transform-job-
|
|
213
|
-
"transform-tag": () => import("./transform-tag-
|
|
214
|
-
"transform-test": () => import("./transform-test-
|
|
215
|
-
setting: () => import("./setting-
|
|
216
|
-
search: () => import("./search-
|
|
217
|
-
"git-sync": () => import("./git-sync-
|
|
218
|
-
setup: () => import("./setup-
|
|
219
|
-
snippet: () => import("./snippet-
|
|
220
|
-
segment: () => import("./segment-
|
|
221
|
-
measure: () => import("./measure-
|
|
222
|
-
timeline: () => import("./timeline-
|
|
223
|
-
"timeline-event": () => import("./timeline-event-
|
|
224
|
-
eid: () => import("./eid-
|
|
225
|
-
query: () => import("./query-
|
|
226
|
-
uuid: () => import("./uuid-
|
|
227
|
-
upgrade: () => import("./upgrade-
|
|
228
|
-
skills: () => import("./skills-
|
|
380
|
+
auth: () => import("./auth-DuGPC1Q0.mjs").then((mod) => mod.default),
|
|
381
|
+
db: () => import("./db-ntq1NYVT.mjs").then((mod) => mod.default),
|
|
382
|
+
table: () => import("./table-DW1dG3Rl.mjs").then((mod) => mod.default),
|
|
383
|
+
field: () => import("./field-CeP-41qf.mjs").then((mod) => mod.default),
|
|
384
|
+
upload: () => import("./upload-BsPrAjN-.mjs").then((mod) => mod.default),
|
|
385
|
+
"content-translation": () => import("./content-translation-BNYQ8fJ3.mjs").then((mod) => mod.default),
|
|
386
|
+
card: () => import("./card-DqPrL79i.mjs").then((mod) => mod.default),
|
|
387
|
+
dashboard: () => import("./dashboard-D8Yjjwfr.mjs").then((mod) => mod.default),
|
|
388
|
+
subscription: () => import("./subscription-B5Iax7Ci.mjs").then((mod) => mod.default),
|
|
389
|
+
alert: () => import("./alert-2MDhiuxT.mjs").then((mod) => mod.default),
|
|
390
|
+
collection: () => import("./collection-BsXk1V41.mjs").then((mod) => mod.default),
|
|
391
|
+
library: () => import("./library-CpDosMc5.mjs").then((mod) => mod.default),
|
|
392
|
+
document: () => import("./document-BiS-U56S.mjs").then((mod) => mod.default),
|
|
393
|
+
transform: () => import("./transform-D08iA4H_.mjs").then((mod) => mod.default),
|
|
394
|
+
"transform-job": () => import("./transform-job-Me5CeV2z.mjs").then((mod) => mod.default),
|
|
395
|
+
"transform-tag": () => import("./transform-tag-CbgjSy76.mjs").then((mod) => mod.default),
|
|
396
|
+
"transform-test": () => import("./transform-test-CwonhnyQ.mjs").then((mod) => mod.default),
|
|
397
|
+
setting: () => import("./setting-BNEblMco.mjs").then((mod) => mod.default),
|
|
398
|
+
search: () => import("./search-D6qBaNsw.mjs").then((mod) => mod.default),
|
|
399
|
+
"git-sync": () => import("./git-sync-jvNlPu2I.mjs").then((mod) => mod.default),
|
|
400
|
+
setup: () => import("./setup-DFnxwJGX.mjs").then((mod) => mod.default),
|
|
401
|
+
snippet: () => import("./snippet-vMnFtNwi.mjs").then((mod) => mod.default),
|
|
402
|
+
segment: () => import("./segment-BFJd2-ck.mjs").then((mod) => mod.default),
|
|
403
|
+
measure: () => import("./measure-DYmGuTVW.mjs").then((mod) => mod.default),
|
|
404
|
+
timeline: () => import("./timeline-C0rqHF4p.mjs").then((mod) => mod.default),
|
|
405
|
+
"timeline-event": () => import("./timeline-event-D1MUnexK.mjs").then((mod) => mod.default),
|
|
406
|
+
eid: () => import("./eid-Bn3Impnq.mjs").then((mod) => mod.default),
|
|
407
|
+
query: () => import("./query-B8MCziCM.mjs").then((mod) => mod.default),
|
|
408
|
+
uuid: () => import("./uuid-DYYGRv9y.mjs").then((mod) => mod.default),
|
|
409
|
+
upgrade: () => import("./upgrade-DgmbeOoJ.mjs").then((mod) => mod.default),
|
|
410
|
+
skills: () => import("./skills-CGYk6b2r.mjs").then((mod) => mod.default)
|
|
229
411
|
}
|
|
230
412
|
});
|
|
231
413
|
setMetabaseAugment(main, {
|
|
@@ -240,9 +422,22 @@ setMetabaseAugment(main, {
|
|
|
240
422
|
}],
|
|
241
423
|
inputSchema: null,
|
|
242
424
|
outputSchema: null,
|
|
243
|
-
|
|
425
|
+
requires: null
|
|
244
426
|
});
|
|
245
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
|
|
246
441
|
//#region src/core/env.ts
|
|
247
442
|
const LEGACY_PREFIX = "METABASE_";
|
|
248
443
|
const ENV_URL = "MB_URL";
|
|
@@ -381,6 +576,11 @@ function jsonByteLength(value) {
|
|
|
381
576
|
return Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
382
577
|
}
|
|
383
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
|
|
384
584
|
//#region src/output/projection.ts
|
|
385
585
|
function projectForList(item, view, opts) {
|
|
386
586
|
const full = opts.format === "text" && opts.fields === void 0 ? false : opts.full;
|
|
@@ -514,8 +714,11 @@ function renderSummary(item, view, summaryText, opts) {
|
|
|
514
714
|
process.stdout.write(body);
|
|
515
715
|
}
|
|
516
716
|
function renderList(envelope, view, opts) {
|
|
717
|
+
renderListWithExtras(envelope, {}, view, opts);
|
|
718
|
+
}
|
|
719
|
+
function renderListWithExtras(envelope, extras, view, opts) {
|
|
517
720
|
if (opts.format === "json") {
|
|
518
|
-
renderJsonEnvelope(envelope, view, opts);
|
|
721
|
+
renderJsonEnvelope(envelope, extras, view, opts);
|
|
519
722
|
return;
|
|
520
723
|
}
|
|
521
724
|
if (envelope.data.length === 0) {
|
|
@@ -548,8 +751,11 @@ function projectedEnvelope(envelope, view, opts) {
|
|
|
548
751
|
data: envelope.data.map((item) => projectForList(item, view, opts))
|
|
549
752
|
};
|
|
550
753
|
}
|
|
551
|
-
function renderJsonEnvelope(envelope, view, opts) {
|
|
552
|
-
const capped = capListEnvelope(
|
|
754
|
+
function renderJsonEnvelope(envelope, extras, view, opts) {
|
|
755
|
+
const capped = capListEnvelope({
|
|
756
|
+
...projectedEnvelope(envelope, view, opts),
|
|
757
|
+
...extras
|
|
758
|
+
}, opts.maxBytes);
|
|
553
759
|
const ordered = {
|
|
554
760
|
returned: capped.returned,
|
|
555
761
|
offset: capped.offset,
|
|
@@ -558,6 +764,7 @@ function renderJsonEnvelope(envelope, view, opts) {
|
|
|
558
764
|
has_more: capped.has_more,
|
|
559
765
|
next_offset: capped.next_offset,
|
|
560
766
|
truncated: capped.truncated,
|
|
767
|
+
...extras,
|
|
561
768
|
data: capped.data
|
|
562
769
|
};
|
|
563
770
|
process.stdout.write(serializeJson(ordered, stdoutPretty()) + "\n");
|
|
@@ -627,6 +834,7 @@ function isRouteMissing(handled) {
|
|
|
627
834
|
return "kind" in handled && handled.kind === ROUTE_MISSING_KIND;
|
|
628
835
|
}
|
|
629
836
|
function remediesFor(handled) {
|
|
837
|
+
if (handled instanceof ProfileRefreshedError) return [];
|
|
630
838
|
if (isVersionTooOld(handled.developerDetail)) return [DOWNGRADE_REMEDY];
|
|
631
839
|
if (isRouteMissing(handled)) return [ROUTE_MISSING_REMEDY];
|
|
632
840
|
return [];
|
|
@@ -655,35 +863,320 @@ function writeJsonError(handled, exitCode, verbose) {
|
|
|
655
863
|
process.stderr.write(serializeJson(envelope, stderrPretty()) + "\n");
|
|
656
864
|
}
|
|
657
865
|
//#endregion
|
|
658
|
-
//#region ../client/src/version/
|
|
659
|
-
const
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
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
|
|
669
975
|
};
|
|
670
976
|
}
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
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];
|
|
687
1180
|
}
|
|
688
1181
|
//#endregion
|
|
689
1182
|
//#region src/runtime/command-help.ts
|
|
@@ -709,6 +1202,10 @@ const CommandHelpSkill = z.object({
|
|
|
709
1202
|
skill: z.string(),
|
|
710
1203
|
purpose: z.string()
|
|
711
1204
|
});
|
|
1205
|
+
const CommandHelpRequires = z.object({
|
|
1206
|
+
methods: z.array(z.enum(METHOD_KEYS)),
|
|
1207
|
+
features: z.array(z.enum(FEATURE_NAMES))
|
|
1208
|
+
});
|
|
712
1209
|
z.object({
|
|
713
1210
|
command: z.string(),
|
|
714
1211
|
description: z.string().nullable(),
|
|
@@ -718,7 +1215,7 @@ z.object({
|
|
|
718
1215
|
args: z.array(CommandHelpArg),
|
|
719
1216
|
inputSchema: z.unknown().nullable(),
|
|
720
1217
|
outputSchema: z.unknown().nullable(),
|
|
721
|
-
|
|
1218
|
+
requires: CommandHelpRequires.nullable()
|
|
722
1219
|
});
|
|
723
1220
|
const CommandIndexEntry = z.object({
|
|
724
1221
|
command: z.string(),
|
|
@@ -735,7 +1232,7 @@ const EMPTY_AUGMENT = {
|
|
|
735
1232
|
skills: [],
|
|
736
1233
|
inputSchema: null,
|
|
737
1234
|
outputSchema: null,
|
|
738
|
-
|
|
1235
|
+
requires: null
|
|
739
1236
|
};
|
|
740
1237
|
async function buildHelpEntry(cmd, path) {
|
|
741
1238
|
const meta = await resolveCitty(cmd.meta);
|
|
@@ -749,7 +1246,7 @@ async function buildHelpEntry(cmd, path) {
|
|
|
749
1246
|
args: convertArgs(args),
|
|
750
1247
|
inputSchema: augment.inputSchema ? z.toJSONSchema(augment.inputSchema) : null,
|
|
751
1248
|
outputSchema: augment.outputSchema ? z.toJSONSchema(augment.outputSchema) : null,
|
|
752
|
-
|
|
1249
|
+
requires: augment.requires
|
|
753
1250
|
};
|
|
754
1251
|
if (augment.details !== null) entry.details = augment.details;
|
|
755
1252
|
return entry;
|
|
@@ -1060,4 +1557,4 @@ run().catch((error) => {
|
|
|
1060
1557
|
reportError(error);
|
|
1061
1558
|
});
|
|
1062
1559
|
//#endregion
|
|
1063
|
-
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 };
|