@metabase/cli 0.3.1 → 0.3.2-alpha.fix-transform-test-ee-path.8ac2a7a
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-CYDUm_XO.mjs → add-collection-B_-eMU_k.mjs} +6 -9
- package/dist/{alert-ClyhtxIz.mjs → alert-Dalin_DD.mjs} +7 -7
- package/dist/{alerts-Dt3D1gcz.mjs → alerts-DpBgrjPI.mjs} +7 -7
- package/dist/{append-Bl_Ensmr.mjs → append-C1JNVALm.mjs} +5 -5
- package/dist/{archive-BOyKhNOz.mjs → archive-52ZHbFDm2.mjs} +6 -6
- package/dist/{archive-DiGxCojL.mjs → archive-B51prFgS.mjs} +4 -4
- package/dist/{archive-CWceyy8x.mjs → archive-BkITQyWW.mjs} +5 -5
- package/dist/{archive-BJZ7Dace.mjs → archive-CISXgZAI.mjs} +6 -6
- package/dist/{archive-D3a3Wgz0.mjs → archive-CdKf_Eqq.mjs} +4 -4
- package/dist/{archive-DVGDg8mP.mjs → archive-CicPYX27.mjs} +6 -6
- package/dist/{archive-CNblz55j.mjs → archive-CwITzj_j.mjs} +6 -6
- package/dist/{archive-DSMqHRr1.mjs → archive-DA3OiLEE.mjs} +4 -4
- package/dist/{archive-nKD3mOB8.mjs → archive-DVHxeDKS.mjs} +6 -6
- package/dist/{archive-BdHXQg4I.mjs → archive-DckxlWBt.mjs} +4 -4
- package/dist/{archive-DDru3vdy.mjs → archive-cAdUa1-2.mjs} +4 -4
- package/dist/{auth-aCksg8q2.mjs → auth-A96JOCQx.mjs} +5 -5
- package/dist/{body-DxRSAMNC.mjs → body-CshgcV6U.mjs} +3 -3
- package/dist/{branches-_0VWR2Zm.mjs → branches-CbcwWYL9.mjs} +4 -7
- package/dist/{cancel-ctpVE8uC.mjs → cancel-DpDcVY7M.mjs} +4 -4
- package/dist/{cancel-task-FtxBka-M.mjs → cancel-task-B4RDvIYb.mjs} +5 -8
- package/dist/{card-zyUkr2nS.mjs → card-CEkp1mcI.mjs} +1 -1
- package/dist/card-CefVYtF7.mjs +24 -0
- package/dist/{card-DZxRmver.mjs → card-voh1k4hl.mjs} +14 -11
- package/dist/{cards-DHOWAvfv.mjs → cards-BC0JX8Yg.mjs} +7 -7
- package/dist/cli.mjs +582 -69
- package/dist/client-ClL6gf7G.mjs +3783 -0
- package/dist/collection-Be5AHVWP.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-Dv0l-V9K.mjs} +2 -2
- package/dist/{content-translation-DNKerjS3.mjs → content-translation-BXIXL4eW.mjs} +3 -3
- package/dist/{create-DmvoibX8.mjs → create--fiwuTWc.mjs} +4 -4
- package/dist/{create-CLG2-bso.mjs → create-B9qXQ_wV.mjs} +6 -6
- package/dist/{create-CEydRMWS.mjs → create-BVNhtAgF.mjs} +7 -7
- package/dist/{create-C9vy4ZG6.mjs → create-BbjSOTN-.mjs} +5 -5
- package/dist/{create-BdPVWYSi.mjs → create-BcsVwXgS2.mjs} +6 -6
- package/dist/{create-CcLchJAN.mjs → create-Bryrkb9g.mjs} +7 -7
- package/dist/{create-7ddYK4TA.mjs → create-CHr8MPPq.mjs} +6 -6
- package/dist/{create-DaYRnK5P.mjs → create-D--Z1S3p2.mjs} +8 -8
- package/dist/{create-F4Lf09xq.mjs → create-DWFJdyIr.mjs} +4 -4
- package/dist/{create-vlrlY-2E.mjs → create-Dhai9zAt.mjs} +4 -4
- package/dist/create-DiJ8bUb-.mjs +34 -0
- package/dist/{create-C78g8Crb.mjs → create-DmN2gFc4.mjs} +5 -5
- package/dist/{create-wJR4CxHA.mjs → create-NCKHHdov.mjs} +5 -8
- package/dist/{create-C3IaXXty.mjs → create-YetX69Re.mjs} +4 -4
- package/dist/{create-e650zxzX.mjs → create-Za1EskpV.mjs} +5 -5
- package/dist/{create-branch-B8C7jl-J.mjs → create-branch-CseVn3lp.mjs} +5 -9
- package/dist/{create-DIVhBIyE.mjs → create-kZIIEN2Y.mjs} +11 -7
- package/dist/{csv-BLPJtlSC.mjs → csv-DNzesu8y.mjs} +5 -5
- package/dist/{current-task-C-ldJbWE.mjs → current-task-DRTKZcP9.mjs} +5 -8
- package/dist/{dashboard-CtO_3EfC.mjs → dashboard-CMw13KXM.mjs} +10 -10
- package/dist/{dashboard-CKUR8ZpQ.mjs → dashboard-D0hwTC-f.mjs} +11 -2
- 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-xXselnBq.mjs → db-BDijt81U.mjs} +7 -7
- package/dist/{delete-BZZHw6pm.mjs → delete--15it-A8.mjs} +5 -5
- package/dist/delete-Bsdwqh7H.mjs +44 -0
- package/dist/{delete-ZJJyqsRh.mjs → delete-BudvZkvK.mjs} +5 -5
- package/dist/{delete-BwSPQy7m.mjs → delete-BxjJ66BS.mjs} +5 -5
- package/dist/{delete-BZwAOQxG.mjs → delete-Dc8E5YwZ.mjs} +5 -5
- package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-BKEzJn22.mjs} +1 -2
- package/dist/{delete-table-CJktZE3w.mjs → delete-table-5AQpn8OB.mjs} +5 -5
- package/dist/{delete-D6WxgWRp.mjs → delete-wFsy80db.mjs} +5 -5
- package/dist/{dependencies-BdqIqEIy.mjs → dependencies-C1ogC3BV.mjs} +7 -7
- package/dist/{dirty-BW2As2wS.mjs → dirty-CSLDYO-K.mjs} +6 -9
- package/dist/document-BGzVip5_.mjs +19 -0
- package/dist/{document-Cd2mmqCp.mjs → document-BHpLJbKU.mjs} +5 -0
- package/dist/{document-D6OybtP2.mjs → document-CA0Q6lqu.mjs} +1 -1
- package/dist/{download-mfFJ9oRS.mjs → download-Ddap1OAo.mjs} +3 -6
- package/dist/{eid-DZ-4t2xe.mjs → eid-HnrWhPoe.mjs} +4 -5
- package/dist/{events-D6yFmXP1.mjs → events-CXqetjcS.mjs} +5 -5
- package/dist/{export-DYZjz1WP.mjs → export-IFZdgYZ2.mjs} +7 -10
- package/dist/{field-BJ54wmIX.mjs → field-BJ6HoLRd.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-FUWCgPOa.mjs → fields-DxHxuxwO.mjs} +7 -7
- package/dist/{get-ByZJf9nO.mjs → get-B2pj2q3X.mjs} +5 -5
- package/dist/{get-C_5AbfpO.mjs → get-BF2vdF3W.mjs} +4 -4
- package/dist/{get-DAOSGt5Z.mjs → get-BGLvyOO3.mjs} +6 -6
- package/dist/{get-DMECsioX.mjs → get-BcoJ9Aha.mjs} +4 -4
- package/dist/{get-CsN7NBI0.mjs → get-BiPclcIP.mjs} +4 -4
- package/dist/{get-DCutQeiV.mjs → get-C3cuZNeW.mjs} +4 -4
- package/dist/{get-CQ0-fFWP.mjs → get-CDnmpfHQ.mjs} +5 -8
- package/dist/{get-DRJtsS1_.mjs → get-CE9_4Q7E.mjs} +4 -4
- package/dist/{get-C5q49Dgx.mjs → get-C_tdSMwW2.mjs} +6 -6
- package/dist/{get-CWnriw33.mjs → get-CxUQyhte.mjs} +6 -6
- package/dist/{get-DVyesErX.mjs → get-DW7mCaGe.mjs} +6 -6
- package/dist/{get-DYaQpixt.mjs → get-D_x-ENFe.mjs} +6 -6
- package/dist/{get-Ba2HRdrx.mjs → get-DjlQhgD4.mjs} +6 -6
- package/dist/{get-DhkltKIV.mjs → get-DmKtPNOy.mjs} +4 -4
- package/dist/{get-BWl3vzsf.mjs → get-Dtre5jzh.mjs} +6 -6
- package/dist/get-H6kInHIx.mjs +93 -0
- package/dist/{get-BraVQ1FJ.mjs → get-b0CoPz5B.mjs} +6 -6
- package/dist/{get-LAew34ID.mjs → get-eJilYnHk.mjs} +6 -6
- package/dist/get-i0KInCw9.mjs +32 -0
- package/dist/{get-_ggLr1tY.mjs → get-jofVjU6e.mjs} +6 -6
- package/dist/{get-run-oH4dRCBx.mjs → get-run-BE1HtJDW.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-xKC1sqC4.mjs +28 -0
- package/dist/{group-DBM87IgC.mjs → group-YQQ5GIcP.mjs} +2 -2
- package/dist/{has-remote-changes-CnmyIw_7.mjs → has-remote-changes-Cj1KhBOT.mjs} +5 -8
- package/dist/{import-B7Si-bSI.mjs → import-DLb9VN4l.mjs} +7 -10
- package/dist/{input-DH9i67x_.mjs → input-D5tQEfqN.mjs} +1 -1
- package/dist/{is-dirty-BOH_VEA8.mjs → is-dirty-BxtgV2xF.mjs} +3 -6
- package/dist/{items-DouHkWev.mjs → items-DLUYc5-z.mjs} +7 -7
- package/dist/{key-BEhqIzIQ.mjs → key-PYetuQ13.mjs} +1 -1
- package/dist/{library-1J_4Dicw.mjs → library-BNSxXOpc.mjs} +5 -5
- package/dist/library-BPIzb3K_.mjs +81 -0
- package/dist/{library-DfYAT2Ep.mjs → library-PGCfm0UA.mjs} +1 -1
- package/dist/{list-D25ofn4v.mjs → list-B1soS8QW.mjs} +7 -7
- package/dist/{list-Cy0w4Fap.mjs → list-BQnOEB3W.mjs} +4 -4
- package/dist/{list-BeMYIeiI.mjs → list-BUz6KOfw.mjs} +7 -7
- package/dist/{list-C1bAtgO1.mjs → list-BcP1DTJH.mjs} +4 -4
- package/dist/{list-DJK9_BEF.mjs → list-C5mS_ehX.mjs} +14 -13
- package/dist/{list-qs9wAtC3.mjs → list-CBLxhaNZ.mjs} +4 -4
- package/dist/{list-aKUk-a1Y.mjs → list-CERbeLbQ.mjs} +7 -7
- package/dist/{list-B2Ddf4W0.mjs → list-COLpwXW4.mjs} +5 -5
- package/dist/{list-sDpy4nDU.mjs → list-CQbiSx26.mjs} +6 -6
- package/dist/{list-C0zJ2ehz.mjs → list-CX9qZ-bx.mjs} +6 -6
- package/dist/{list-DhViDVx_.mjs → list-CehE6KBV.mjs} +6 -6
- package/dist/list-Cuhf2lKL.mjs +35 -0
- package/dist/{list-D2IYZ6lk.mjs → list-CzRzCbCY.mjs} +6 -6
- package/dist/{list-DWLGpMvr.mjs → list-D-SyhKFw.mjs} +7 -7
- package/dist/{list-DptEWB5Y.mjs → list-Dat8QNcf.mjs} +4 -4
- package/dist/{list-C7UvO3Uw.mjs → list-M8J10Ozk.mjs} +6 -6
- package/dist/{list-BXlTYsYA.mjs → list-Sd7jGZoX.mjs} +4 -4
- package/dist/list-cIMww2Me.mjs +60 -0
- package/dist/{list-BK_6VNm_.mjs → list-jhQSgh6i.mjs} +4 -4
- package/dist/{login-BmyCAfRV.mjs → login-BfLqBfCd.mjs} +18 -15
- package/dist/{logout-DUR32q0V.mjs → logout-BpRXB3Ze.mjs} +3 -4
- package/dist/{measure-DdVp-8jw.mjs → measure-Ds8O5Evr.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-CBR-cBev.mjs → parameter-values-DhrkLXoN.mjs} +5 -6
- package/dist/{parse-enum-D0Jfm_Bz.mjs → parse-enum-Dc0dMZ3P.mjs} +1 -1
- package/dist/{parse-id-B3YwNojT.mjs → parse-id-DtM6q9HU.mjs} +1 -1
- package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-DTDld_LJ.mjs} +1 -1
- package/dist/{path-D8BQmEhL.mjs → path-_GHFrTLx.mjs} +5 -5
- package/dist/{poll-75SvT7Zv.mjs → poll-KLl4Eq8Y.mjs} +2 -2
- package/dist/{preflight-CoF1Em99.mjs → preflight-BpYtF0IU.mjs} +3 -4
- package/dist/{process-DBOOrmET.mjs → process-CLtOWKBn.mjs} +1 -1
- package/dist/{publish-Cb7XrQ3X.mjs → publish-D-7Zlmuk.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-D35B588l.mjs → query-B1CZztxs.mjs} +10 -12
- package/dist/query-CxESKMve.mjs +114 -0
- package/dist/{query-result-DBDwk8TS.mjs → query-result-E4Q-Gra6.mjs} +1 -1
- package/dist/{remove-collection-DJem6V26.mjs → remove-collection-C4saCFxz.mjs} +6 -9
- package/dist/{render-CI93iP0I.mjs → render-6O_eF-P1.mjs} +13 -2
- package/dist/{replace-CtsWICrD.mjs → replace-BuR4f2Ai.mjs} +5 -5
- package/dist/{rescan-values-CaXUL6z5.mjs → rescan-values-CNOiiWQ5.mjs} +6 -6
- package/dist/{run-CM-Amtbf.mjs → run-DijA_BXt.mjs} +26 -14
- package/dist/run-FmRruANb.mjs +64 -0
- package/dist/{run-BeLm17F4.mjs → run-QEUbWNm7.mjs} +9 -9
- package/dist/{runs-DFG63zgr.mjs → runs-BSlhVeDO.mjs} +7 -7
- package/dist/{runtime-z8rra6-I.mjs → runtime-Dtb93zKy.mjs} +994 -252
- package/dist/{schema-tables-COAHkIcy.mjs → schema-tables-BE3rEb6I.mjs} +7 -7
- package/dist/{schemas-BX5BATiV.mjs → schemas-yDjBiwlH.mjs} +5 -5
- package/dist/{search-DFBwUc6d.mjs → search-BAXg-EJw.mjs} +2 -1
- package/dist/{search-CPvvmhdt.mjs → search-CR_xNArA.mjs} +6 -6
- package/dist/{segment-C62L6BI3.mjs → segment-Cm6zQjJW.mjs} +6 -6
- package/dist/{selectors-P4QnrORk.mjs → selectors-C-vgMcGK.mjs} +3 -3
- package/dist/{send-PZh5IKF8.mjs → send-kC8oerkT.mjs} +4 -4
- package/dist/{set-active-DL4QzWDO.mjs → set-active-lDKhAlij.mjs} +5 -5
- package/dist/{set-DbCtUoFd.mjs → set-tFhPkxrL.mjs} +5 -5
- package/dist/{setting-BlRcZbhC.mjs → setting-DrJXCaFE.mjs} +4 -4
- package/dist/{setup-D_SLaC-3.mjs → setup-BWY9M0iR.mjs} +4 -4
- package/dist/{signal-CMd0EFUa.mjs → signal-Csom0mt5.mjs} +11 -2
- package/dist/skill-list-CCes8pKe.mjs +76 -0
- package/dist/skills-DE9ej5Rg.mjs +351 -0
- package/dist/{skills-D991LB1M.mjs → skills-DPRN2384.mjs} +3 -3
- package/dist/snippet-DWHTSo9c.mjs +19 -0
- package/dist/{stash-DyBxFoP6.mjs → stash-C9oDvQ9P.mjs} +7 -11
- package/dist/{status-DUsiogz5.mjs → status-CkpujA26.mjs} +11 -9
- package/dist/{status-cfDHqK2Q.mjs → status-DSdXmNC3.mjs} +12 -11
- package/dist/{subscription-Bn0AU7GN.mjs → subscription-DKOKoHRG.mjs} +6 -6
- package/dist/{subscriptions-DwqjCVlc.mjs → subscriptions-C5SyJL4B.mjs} +7 -7
- package/dist/{summary-BGwSNzf4.mjs → summary-DTPgXsc0.mjs} +6 -6
- package/dist/{sync-schema-dtkDOAKe.mjs → sync-schema-DKKkNSR7.mjs} +7 -7
- package/dist/{sync-task-BACcrs0i.mjs → sync-task-BtDnTXCP.mjs} +3 -2
- package/dist/{table-CsIJNPFf.mjs → table-C6h4tIRw.mjs} +1 -1
- package/dist/{table-CeeTJgQb.mjs → table-DfuY0N8e.mjs} +51 -4
- package/dist/{table-BJoEAoCU.mjs → table-I8NXSdUC.mjs} +5 -5
- package/dist/timeline-B_ESH-6W.mjs +21 -0
- package/dist/{timeline-event-BsF7YqzZ.mjs → timeline-event-n4Lzet7l.mjs} +6 -6
- package/dist/transform-BNuNiH9d.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-B7yc6dfH.mjs +22 -0
- package/dist/{transform-job-DRrK28IH.mjs → transform-job-CCguL6LP.mjs} +41 -4
- package/dist/{transform-tag-VM9R7Q_M.mjs → transform-tag-D6NXqWaX.mjs} +5 -5
- package/dist/transform-test-BjjCQ2xm.mjs +169 -0
- package/dist/transform-test-C1Oqtfb-.mjs +16 -0
- package/dist/transform-test-gzDcbypy.mjs +25 -0
- package/dist/{transforms-BjACGbBp.mjs → transforms-O4NtXqFz.mjs} +7 -7
- package/dist/transport-CyVo29u7.mjs +313 -0
- package/dist/{tree-BwS6JAmk.mjs → tree-CuyF116R.mjs} +4 -5
- package/dist/{unpublish-DWdPnENY.mjs → unpublish-DvWefKJi.mjs} +4 -7
- package/dist/{update-DkviXwSg.mjs → update-2KIpYgyj.mjs} +7 -7
- package/dist/{update-DKEHY-gt.mjs → update-76nzOc71.mjs} +7 -7
- package/dist/{update-B2CF2DK4.mjs → update-7oKvP1HC.mjs} +6 -6
- package/dist/{update-DTmRHBik.mjs → update-AJ2JmwDl.mjs} +7 -7
- package/dist/{update-BR_vkkd1.mjs → update-BB6Go_RX.mjs} +5 -5
- package/dist/{update-DCjAjihm.mjs → update-Bah7N8QX.mjs} +6 -6
- package/dist/{update-cqR1U6DU.mjs → update-CGJvIS-l.mjs} +5 -5
- package/dist/{update-tLIhVIPp.mjs → update-D7dG7H-z.mjs} +8 -8
- package/dist/{update-C1FBVLfC.mjs → update-DOdcflLH.mjs} +8 -8
- package/dist/{update-DlTaD1x3.mjs → update-DV54H3L5.mjs} +9 -9
- package/dist/{update-C4y3iQsv.mjs → update-DXmZuJho.mjs} +7 -7
- package/dist/{update-3idz42uD.mjs → update-DmgRIp7o.mjs} +7 -7
- package/dist/{update-DsZttiSC.mjs → update-H_fdjugs.mjs} +5 -5
- package/dist/{update-BCT9qpVr.mjs → update-To6A1Ugu.mjs} +5 -5
- package/dist/{update-dashcard-DlE_bb2F.mjs → update-dashcard-DjT5QOkL.mjs} +7 -7
- package/dist/update-l3PyNQKG.mjs +41 -0
- package/dist/{update-BpPaacCF.mjs → update-xEegxIyH.mjs} +6 -6
- package/dist/{upgrade-mNV7XuJG.mjs → upgrade-CuJx9fX4.mjs} +6 -8
- package/dist/upload-2YFFBSln.mjs +13 -0
- package/dist/{upload-CEGVxmYB.mjs → upload-CboARPZm.mjs} +4 -7
- package/dist/{upload-CD555ui1.mjs → upload-DOO94rCQ.mjs} +2 -2
- package/dist/{uuid-C4hqn3kA.mjs → uuid-InwZlrpQ.mjs} +10 -7
- package/dist/{validate-BWchyW0V.mjs → validate-D6-Vg_kn.mjs} +69 -23
- package/dist/{validate-query-DaGYSmpQ.mjs → validate-query-B90KYPQr.mjs} +3 -4
- package/dist/{values-C0O3eNaW.mjs → values-CsZLk1Ls.mjs} +6 -6
- package/dist/{verify-DfTjYF7s.mjs → verify-DrGjZwBM.mjs} +3 -18
- package/dist/{wait-WZmFenN_.mjs → wait-BmzdarP9.mjs} +7 -10
- package/dist/{wait-flags-BbfDSP8R.mjs → wait-flags-CiJGrTCT.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 -15
- package/skill-data/dashboard/SKILL.md +1 -1
- 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 +84 -115
- package/skill-data/mbql/references/operators.md +77 -231
- package/skill-data/metadata/SKILL.md +1 -1
- package/skill-data/metadata/references/semantic-types.md +7 -1
- package/skill-data/native-sql/SKILL.md +8 -9
- package/skill-data/native-sql/references/template-tags.md +27 -27
- package/skill-data/notification/SKILL.md +7 -1
- package/skill-data/transform/SKILL.md +76 -4
- 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 +263 -0
- package/skill-data/visualization/SKILL.md +13 -6
- package/skill-data/visualization/references/settings.md +13 -11
- package/skills/metabase-cli/SKILL.md +1 -1
- package/dist/card-CGCXbdmD.mjs +0 -24
- package/dist/client-mKuHg_sc.mjs +0 -2218
- package/dist/collection-D8Tk8i3a.mjs +0 -20
- package/dist/document-KbcHhzFz.mjs +0 -19
- package/dist/get-BC8J8BXB.mjs +0 -80
- package/dist/git-sync-Dik8nKfw.mjs +0 -28
- package/dist/library-ClLgrAXy.mjs +0 -19
- package/dist/list-CW5PdYCX.mjs +0 -98
- package/dist/network-error-D6CiOEBw.mjs +0 -431
- package/dist/predicates-Bkm2IoeX.mjs +0 -170
- package/dist/query-C256WBYG.mjs +0 -87
- package/dist/skills-DTCrMcix.mjs +0 -216
- package/dist/snippet-DTDO55Cg.mjs +0 -19
- package/dist/timeline-DcXPshcT.mjs +0 -21
- package/dist/transform-Dsf_wHAj.mjs +0 -28
- package/dist/transform-job-B1yLv5l-.mjs +0 -22
- package/dist/upload-DsYCf5kB.mjs +0 -13
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { t as readBody } from "./body-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
5
5
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
6
|
-
import { o as TransformJobUpdateInput, t as TransformJob } from "./transform-job-
|
|
7
|
-
import { t as transformJobView } from "./transform-job-
|
|
6
|
+
import { o as TransformJobUpdateInput, t as TransformJob } from "./transform-job-CCguL6LP.mjs";
|
|
7
|
+
import { t as transformJobView } from "./transform-job-AaMZRxAq.mjs";
|
|
8
8
|
//#region src/commands/transform-job/update.ts
|
|
9
9
|
var update_default = defineMetabaseCommand({
|
|
10
10
|
meta: {
|
|
11
11
|
name: "update",
|
|
12
12
|
description: "Update a transform job by id"
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
requires: ["transformJob.update"],
|
|
15
15
|
args: {
|
|
16
16
|
...outputFlags,
|
|
17
17
|
...profileFlag,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { t as readBody } from "./body-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
5
5
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
6
6
|
import { c as TimelineUpdateInput, t as Timeline } from "./timeline-CCSU2qOS.mjs";
|
|
7
7
|
import { n as timelineView } from "./timeline-uDCmwGFT.mjs";
|
|
@@ -12,7 +12,7 @@ var update_default = defineMetabaseCommand({
|
|
|
12
12
|
description: "Update a timeline by id"
|
|
13
13
|
},
|
|
14
14
|
details: "Patches only the fields you send: `name`, `description`, `icon`, `collection_id`, `default`, `archived`. Changing `archived` cascades to every event on the timeline.",
|
|
15
|
-
|
|
15
|
+
requires: ["timeline.update"],
|
|
16
16
|
args: {
|
|
17
17
|
...outputFlags,
|
|
18
18
|
...profileFlag,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { t as readBody } from "./body-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
5
5
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
6
6
|
import { i as TimelineEvent, s as TimelineEventUpdateInput } from "./timeline-CCSU2qOS.mjs";
|
|
7
7
|
import { t as timelineEventView } from "./timeline-uDCmwGFT.mjs";
|
|
@@ -12,7 +12,7 @@ var update_default = defineMetabaseCommand({
|
|
|
12
12
|
description: "Update a timeline event by id"
|
|
13
13
|
},
|
|
14
14
|
details: "Patches only the fields you send: `name`, `description`, `timestamp`, `timezone`, `time_matters`, `icon`, `timeline_id` (moves the event to another timeline), `archived`.",
|
|
15
|
-
|
|
15
|
+
requires: ["timelineEvent.update"],
|
|
16
16
|
args: {
|
|
17
17
|
...outputFlags,
|
|
18
18
|
...profileFlag,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { t as readBody } from "./body-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
5
5
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import { n as dashcardView } from "./dashboard-
|
|
6
|
+
import { c as Dashcard, u as DashcardPatchInput } from "./dashboard-D0hwTC-f.mjs";
|
|
7
|
+
import { n as dashcardView } from "./dashboard-DgK81azj.mjs";
|
|
8
8
|
//#region src/commands/dashboard/update-dashcard.ts
|
|
9
9
|
var update_dashcard_default = defineMetabaseCommand({
|
|
10
10
|
meta: {
|
|
11
11
|
name: "update-dashcard",
|
|
12
12
|
description: "Patch a single dashcard's layout or settings on a dashboard"
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
requires: ["dashboard.updateDashcard"],
|
|
15
15
|
args: {
|
|
16
16
|
...outputFlags,
|
|
17
17
|
...profileFlag,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
5
|
+
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
6
|
+
import { a as TransformTestUpdateInput, t as TransformTest } from "./transform-test-BjjCQ2xm.mjs";
|
|
7
|
+
import { t as transformTestView } from "./transform-test-gzDcbypy.mjs";
|
|
8
|
+
//#region src/commands/transform-test/update.ts
|
|
9
|
+
var update_default = defineMetabaseCommand({
|
|
10
|
+
meta: {
|
|
11
|
+
name: "update",
|
|
12
|
+
description: "Update a transform test from JSON"
|
|
13
|
+
},
|
|
14
|
+
details: "Only the fields the body carries are patched. `inputs` and `expectations` replace what is stored rather than merging into it. The body is closed at every level: a test read back with `get --full` has to shed `id`, `entity_id`, `creator_id`, `created_at` and `updated_at` before it can be sent.",
|
|
15
|
+
requires: ["transformTest.update"],
|
|
16
|
+
args: {
|
|
17
|
+
...outputFlags,
|
|
18
|
+
...profileFlag,
|
|
19
|
+
...connectionFlags,
|
|
20
|
+
...bodyInputFlags,
|
|
21
|
+
id: {
|
|
22
|
+
type: "positional",
|
|
23
|
+
description: "Transform test id",
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
inputSchema: TransformTestUpdateInput,
|
|
28
|
+
outputSchema: TransformTest,
|
|
29
|
+
examples: ["cat patch.json | mb transform-test update 1", "mb transform-test update 1 --file patch.json"],
|
|
30
|
+
async run({ args, ctx, getClient }) {
|
|
31
|
+
const id = parseId(args.id);
|
|
32
|
+
const body = await readBody({
|
|
33
|
+
flag: args.body,
|
|
34
|
+
file: args.file
|
|
35
|
+
}, TransformTestUpdateInput);
|
|
36
|
+
const updated = await (await getClient()).transformTest.update(id, body);
|
|
37
|
+
renderSummary(updated, transformTestView, `Updated transform test ${updated.id}.`, ctx);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
//#endregion
|
|
41
|
+
export { update_default as default };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
2
|
import { c as NotificationUpdateInput, n as Notification } from "./notification-DaA4bBHW.mjs";
|
|
3
|
-
import { t as notificationView } from "./notification-
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
5
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
+
import { t as notificationView } from "./notification-DVrLkjFT.mjs";
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
5
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
6
6
|
import { t as describeAlert } from "./summary-BytbDz6e.mjs";
|
|
7
|
-
import { t as readBody } from "./body-
|
|
7
|
+
import { t as readBody } from "./body-CshgcV6U.mjs";
|
|
8
8
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
9
9
|
//#region src/commands/alert/update.ts
|
|
10
10
|
var update_default = defineMetabaseCommand({
|
|
@@ -18,7 +18,7 @@ var update_default = defineMetabaseCommand({
|
|
|
18
18
|
"`subscriptions` and `handlers` replace the whole list, so send every schedule and recipient you want to keep —",
|
|
19
19
|
"`mb alert get <id>` prints the current ones. An alert's card cannot be moved to a different card."
|
|
20
20
|
].join(" "),
|
|
21
|
-
|
|
21
|
+
requires: ["notification.update"],
|
|
22
22
|
args: {
|
|
23
23
|
...outputFlags,
|
|
24
24
|
...profileFlag,
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { n as throwIfAborted, t as combineAborts } from "./signal-CMd0EFUa.mjs";
|
|
6
|
-
import { n as streamProcess } from "./process-DBOOrmET.mjs";
|
|
1
|
+
import { H as outputFlags, L as name, R as version, X as AbortError, at as UnknownError, h as writeText, it as TimeoutError, nt as NetworkError, st as errorMessage, t as interruptSignal, u as renderItem, x as promptConfirm } from "./cli.mjs";
|
|
2
|
+
import { L as HttpError, O as USER_AGENT, V as parseJson, t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { n as throwIfAborted, t as combineAborts } from "./signal-Csom0mt5.mjs";
|
|
4
|
+
import { n as streamProcess } from "./process-CLtOWKBn.mjs";
|
|
7
5
|
import { z } from "zod";
|
|
8
|
-
import { compare, valid } from "semver";
|
|
9
6
|
import { realpathSync } from "node:fs";
|
|
7
|
+
import { compare, valid } from "semver";
|
|
10
8
|
//#region src/core/npm-registry.ts
|
|
11
9
|
const DEFAULT_REGISTRY = "https://registry.npmjs.org";
|
|
12
10
|
const DEFAULT_TIMEOUT_MS = 15e3;
|
|
@@ -291,7 +289,7 @@ var upgrade_default = defineMetabaseCommand({
|
|
|
291
289
|
name: "upgrade",
|
|
292
290
|
description: "Upgrade the Metabase CLI itself to the latest published release"
|
|
293
291
|
},
|
|
294
|
-
|
|
292
|
+
requires: null,
|
|
295
293
|
args: {
|
|
296
294
|
...outputFlags,
|
|
297
295
|
check: {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
|
|
2
|
+
//#region src/commands/upload/index.ts
|
|
3
|
+
var upload_default = defineCommandGroup({
|
|
4
|
+
name: "upload",
|
|
5
|
+
description: "Upload CSV files into Metabase",
|
|
6
|
+
subCommands: {
|
|
7
|
+
csv: () => import("./csv-DNzesu8y.mjs").then((m) => m.default),
|
|
8
|
+
append: () => import("./append-C1JNVALm.mjs").then((m) => m.default),
|
|
9
|
+
replace: () => import("./replace-BuR4f2Ai.mjs").then((m) => m.default)
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//#endregion
|
|
13
|
+
export { upload_default as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
3
|
import { t as ContentTranslationUploadResult } from "./content-translation-BrHOrmj9.mjs";
|
|
4
|
-
import { n as requireUploadFilePath, t as readCsvFile } from "./upload-
|
|
4
|
+
import { n as requireUploadFilePath, t as readCsvFile } from "./upload-DOO94rCQ.mjs";
|
|
5
5
|
//#region src/output/views/content-translation.ts
|
|
6
6
|
const contentTranslationUploadView = {
|
|
7
7
|
compactPick: ContentTranslationUploadResult,
|
|
@@ -18,10 +18,7 @@ var upload_default = defineMetabaseCommand({
|
|
|
18
18
|
description: "Replace the complete content translation dictionary from CSV"
|
|
19
19
|
},
|
|
20
20
|
details: "Uploads one complete dictionary and replaces every active content translation on the server. Keep the canonical full CSV in version control and download the current dictionary before replacing it. Metabase accepts dictionaries up to 1.5 MiB.",
|
|
21
|
-
|
|
22
|
-
minVersion: 58,
|
|
23
|
-
tokenFeature: "content_translation"
|
|
24
|
-
},
|
|
21
|
+
requires: ["contentTranslation.upload"],
|
|
25
22
|
args: {
|
|
26
23
|
...outputFlags,
|
|
27
24
|
...profileFlag,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as fileNotFoundError } from "./input-
|
|
1
|
+
import { Q as ConfigError, ct as isFileNotFoundError } from "./cli.mjs";
|
|
2
|
+
import { n as fileNotFoundError } from "./input-D5tQEfqN.mjs";
|
|
3
3
|
import { basename } from "node:path";
|
|
4
4
|
import { readFile } from "node:fs/promises";
|
|
5
5
|
//#region src/runtime/upload.ts
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { R as parseInteger, t as defineMetabaseCommand } from "./runtime-z8rra6-I.mjs";
|
|
1
|
+
import { H as outputFlags, Q as ConfigError, h as writeText, m as writeJson } from "./cli.mjs";
|
|
2
|
+
import { rt as parseInteger, t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
4
3
|
import { z } from "zod";
|
|
5
4
|
import { randomUUID } from "node:crypto";
|
|
6
5
|
//#region src/commands/uuid.ts
|
|
@@ -11,12 +10,15 @@ var uuid_default = defineMetabaseCommand({
|
|
|
11
10
|
name: "uuid",
|
|
12
11
|
description: "Mint random UUID v4 strings"
|
|
13
12
|
},
|
|
14
|
-
details: "For
|
|
13
|
+
details: "For the values that must be a UUID: the `lib/uuid` of an aggregation an MBQL aggregation ref points at, and a document node's `_id`.",
|
|
15
14
|
skills: [{
|
|
16
15
|
skill: "mbql",
|
|
17
|
-
purpose: "
|
|
16
|
+
purpose: "aggregation refs"
|
|
17
|
+
}, {
|
|
18
|
+
skill: "document",
|
|
19
|
+
purpose: "document node ids"
|
|
18
20
|
}],
|
|
19
|
-
|
|
21
|
+
requires: null,
|
|
20
22
|
args: {
|
|
21
23
|
...outputFlags,
|
|
22
24
|
count: {
|
|
@@ -29,7 +31,8 @@ var uuid_default = defineMetabaseCommand({
|
|
|
29
31
|
examples: [
|
|
30
32
|
"mb uuid",
|
|
31
33
|
"mb uuid --count 5",
|
|
32
|
-
"mb uuid --count 5 --json"
|
|
34
|
+
"mb uuid --count 5 --json",
|
|
35
|
+
"U=$(mb uuid --format text)"
|
|
33
36
|
],
|
|
34
37
|
run({ args, ctx }) {
|
|
35
38
|
const count = parseInteger(args.count, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Q as ConfigError, b as isPlainObject, ut as escapeJsonPointerSegment } from "./cli.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import Ajv2020 from "ajv/dist/2020.js";
|
|
4
4
|
import addFormats from "ajv-formats";
|
|
@@ -1308,7 +1308,7 @@ const ValidationIssue = z.object({
|
|
|
1308
1308
|
path: z.string(),
|
|
1309
1309
|
message: z.string()
|
|
1310
1310
|
});
|
|
1311
|
-
z.object({
|
|
1311
|
+
const ValidationOutcome = z.object({
|
|
1312
1312
|
ok: z.boolean(),
|
|
1313
1313
|
errors: z.array(ValidationIssue)
|
|
1314
1314
|
});
|
|
@@ -1327,6 +1327,58 @@ const idSchema = {
|
|
|
1327
1327
|
field_id: POSITIVE_INTEGER
|
|
1328
1328
|
}
|
|
1329
1329
|
};
|
|
1330
|
+
function definitionRef(tag) {
|
|
1331
|
+
return {
|
|
1332
|
+
description: `[${tag}, options, id]`,
|
|
1333
|
+
type: "array",
|
|
1334
|
+
prefixItems: [
|
|
1335
|
+
{ const: tag },
|
|
1336
|
+
{ $ref: "query.yaml#/$defs/options" },
|
|
1337
|
+
POSITIVE_INTEGER
|
|
1338
|
+
],
|
|
1339
|
+
minItems: 3,
|
|
1340
|
+
maxItems: 3
|
|
1341
|
+
};
|
|
1342
|
+
}
|
|
1343
|
+
const refSchemaWithIds = {
|
|
1344
|
+
...ref_default,
|
|
1345
|
+
$defs: {
|
|
1346
|
+
...ref_default.$defs,
|
|
1347
|
+
metric_ref: definitionRef("metric"),
|
|
1348
|
+
measure_ref: definitionRef("measure"),
|
|
1349
|
+
segment_ref: definitionRef("segment")
|
|
1350
|
+
}
|
|
1351
|
+
};
|
|
1352
|
+
const templateTag = query_default.$defs.template_tag;
|
|
1353
|
+
const nativeStage = query_default.$defs.native_stage;
|
|
1354
|
+
const TEMPLATE_TAG_REF = { $ref: "#/$defs/template_tag" };
|
|
1355
|
+
const querySchemaForApi = {
|
|
1356
|
+
...query_default,
|
|
1357
|
+
$defs: {
|
|
1358
|
+
...query_default.$defs,
|
|
1359
|
+
native_stage: {
|
|
1360
|
+
...nativeStage,
|
|
1361
|
+
properties: {
|
|
1362
|
+
...nativeStage.properties,
|
|
1363
|
+
"template-tags": {
|
|
1364
|
+
type: ["object", "array"],
|
|
1365
|
+
additionalProperties: TEMPLATE_TAG_REF,
|
|
1366
|
+
items: TEMPLATE_TAG_REF
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
},
|
|
1370
|
+
template_tag: {
|
|
1371
|
+
...templateTag,
|
|
1372
|
+
properties: {
|
|
1373
|
+
...templateTag.properties,
|
|
1374
|
+
id: {
|
|
1375
|
+
type: "string",
|
|
1376
|
+
minLength: 1
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
};
|
|
1330
1382
|
let validator = null;
|
|
1331
1383
|
function getValidator() {
|
|
1332
1384
|
if (validator !== null) return validator;
|
|
@@ -1338,18 +1390,18 @@ function getValidator() {
|
|
|
1338
1390
|
addFormats(ajv);
|
|
1339
1391
|
ajv.addSchema(idSchema, "id.yaml");
|
|
1340
1392
|
ajv.addSchema(parameter_default, "parameter.yaml");
|
|
1341
|
-
ajv.addSchema(
|
|
1393
|
+
ajv.addSchema(refSchemaWithIds, "ref.yaml");
|
|
1342
1394
|
ajv.addSchema(temporal_bucketing_default, "temporal_bucketing.yaml");
|
|
1343
|
-
ajv.addSchema(
|
|
1395
|
+
ajv.addSchema(querySchemaForApi, "query.yaml");
|
|
1344
1396
|
const compiled = ajv.getSchema("query.yaml");
|
|
1345
1397
|
if (compiled === void 0) throw new Error("internal: query.yaml validator not registered");
|
|
1346
1398
|
validator = compiled;
|
|
1347
1399
|
return validator;
|
|
1348
1400
|
}
|
|
1349
|
-
const UUID_HINT_MESSAGE = "must be a UUID
|
|
1350
|
-
const FIELD_SLOT1_HINT_MESSAGE = "must be the
|
|
1351
|
-
function clauseSlot1HintMessage(operator
|
|
1352
|
-
return `must be the
|
|
1401
|
+
const UUID_HINT_MESSAGE = "must be a UUID from `mb uuid`";
|
|
1402
|
+
const FIELD_SLOT1_HINT_MESSAGE = "must be the options object: [\"field\", {}, <field id>]";
|
|
1403
|
+
function clauseSlot1HintMessage(operator) {
|
|
1404
|
+
return `must be the options object: ["${operator}", {}, ...args]`;
|
|
1353
1405
|
}
|
|
1354
1406
|
const FormatErrorParams = z.object({ format: z.string() });
|
|
1355
1407
|
function isUuidFormatIssue(issue) {
|
|
@@ -1365,7 +1417,7 @@ function runValidator(validatorFn, value) {
|
|
|
1365
1417
|
const overrides = collectMessageOverrides(value);
|
|
1366
1418
|
return {
|
|
1367
1419
|
ok: false,
|
|
1368
|
-
errors: (validatorFn.errors ?? []).map((issue) => {
|
|
1420
|
+
errors: (validatorFn.errors ?? []).filter((issue) => issue.keyword !== IF_KEYWORD).map((issue) => {
|
|
1369
1421
|
if (issue.message === void 0) throw new Error(`Ajv issue at ${issue.instancePath} has no message`);
|
|
1370
1422
|
const path = issue.instancePath === "" ? "/" : issue.instancePath;
|
|
1371
1423
|
if (isUuidFormatIssue(issue)) return {
|
|
@@ -1379,6 +1431,7 @@ function runValidator(validatorFn, value) {
|
|
|
1379
1431
|
})
|
|
1380
1432
|
};
|
|
1381
1433
|
}
|
|
1434
|
+
const IF_KEYWORD = "if";
|
|
1382
1435
|
function collectMessageOverrides(root) {
|
|
1383
1436
|
const overrides = /* @__PURE__ */ new Map();
|
|
1384
1437
|
visit(root, "");
|
|
@@ -1403,7 +1456,7 @@ function clauseSlot1Message(clause) {
|
|
|
1403
1456
|
const slot1 = clause[1];
|
|
1404
1457
|
if (isPlainObject(slot1)) return null;
|
|
1405
1458
|
if (operator === "field") return FIELD_SLOT1_HINT_MESSAGE;
|
|
1406
|
-
return clauseSlot1HintMessage(operator
|
|
1459
|
+
return clauseSlot1HintMessage(operator);
|
|
1407
1460
|
}
|
|
1408
1461
|
function refSlot2Message(clause) {
|
|
1409
1462
|
if (clause.length !== 3) return null;
|
|
@@ -1414,18 +1467,11 @@ function refSlot2Message(clause) {
|
|
|
1414
1467
|
}
|
|
1415
1468
|
function refHintForKind(kind) {
|
|
1416
1469
|
switch (kind) {
|
|
1417
|
-
case "aggregation": return "must be the
|
|
1418
|
-
case "expression": return "must be the
|
|
1470
|
+
case "aggregation": return "must be the lib/uuid of an aggregation in this stage";
|
|
1471
|
+
case "expression": return "must be the name of an expression in this stage";
|
|
1419
1472
|
default: return null;
|
|
1420
1473
|
}
|
|
1421
1474
|
}
|
|
1422
|
-
function describeJsonValue(value) {
|
|
1423
|
-
if (value === null) return "null";
|
|
1424
|
-
if (Array.isArray(value)) return "array";
|
|
1425
|
-
if (typeof value === "string") return `string ${JSON.stringify(value)}`;
|
|
1426
|
-
if (typeof value === "number" || typeof value === "boolean") return `${typeof value} ${String(value)}`;
|
|
1427
|
-
return typeof value;
|
|
1428
|
-
}
|
|
1429
1475
|
function validateQuery(value) {
|
|
1430
1476
|
return runValidator(getValidator(), value);
|
|
1431
1477
|
}
|
|
@@ -1443,7 +1489,7 @@ function isLegacyEnvelopeWrappingMbql5(value) {
|
|
|
1443
1489
|
}
|
|
1444
1490
|
function assertNotLegacyEnvelopeWrappingMbql5(value, options) {
|
|
1445
1491
|
if (!isLegacyEnvelopeWrappingMbql5(value)) return;
|
|
1446
|
-
throw new ConfigError(`${options.contextLabel}:
|
|
1492
|
+
throw new ConfigError(`${options.contextLabel}: ${options.bodyNoun} is the query itself: {"lib/type": "mbql/query", "database": N, "stages": […]}.`);
|
|
1447
1493
|
}
|
|
1448
1494
|
z.object({
|
|
1449
1495
|
schema: z.unknown(),
|
|
@@ -1456,14 +1502,14 @@ z.object({
|
|
|
1456
1502
|
});
|
|
1457
1503
|
function getQuerySchemaBundle() {
|
|
1458
1504
|
return {
|
|
1459
|
-
schema:
|
|
1505
|
+
schema: querySchemaForApi,
|
|
1460
1506
|
defs: {
|
|
1461
1507
|
"id.yaml": idSchema,
|
|
1462
1508
|
"parameter.yaml": parameter_default,
|
|
1463
|
-
"ref.yaml":
|
|
1509
|
+
"ref.yaml": refSchemaWithIds,
|
|
1464
1510
|
"temporal_bucketing.yaml": temporal_bucketing_default
|
|
1465
1511
|
}
|
|
1466
1512
|
};
|
|
1467
1513
|
}
|
|
1468
1514
|
//#endregion
|
|
1469
|
-
export { validateQuery as i,
|
|
1515
|
+
export { validateQuery as a, isMbql5Query as i, assertNotLegacyEnvelopeWrappingMbql5 as n, getQuerySchemaBundle as r, ValidationOutcome as t };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { i as validateQuery, r as isMbql5Query, t as assertNotLegacyEnvelopeWrappingMbql5 } from "./validate-BWchyW0V.mjs";
|
|
1
|
+
import { Q as ConfigError, m as writeJson } from "./cli.mjs";
|
|
2
|
+
import { a as validateQuery, i as isMbql5Query, n as assertNotLegacyEnvelopeWrappingMbql5 } from "./validate-D6-Vg_kn.mjs";
|
|
4
3
|
//#region src/commands/validate-query.ts
|
|
5
4
|
const skipValidateFlag = { "skip-validate": {
|
|
6
5
|
type: "boolean",
|
|
@@ -29,7 +28,7 @@ function preflightMbql5Query(query, labels, options) {
|
|
|
29
28
|
const outcome = validateQuery(query);
|
|
30
29
|
if (outcome.ok) return;
|
|
31
30
|
writeJson(outcome);
|
|
32
|
-
throw new ConfigError(`${labels.contextLabel}: ${outcome.errors.length} error(s) —
|
|
31
|
+
throw new ConfigError(`${labels.contextLabel}: ${outcome.errors.length} error(s) — fix them, or pass --skip-validate to send anyway`);
|
|
33
32
|
}
|
|
34
33
|
//#endregion
|
|
35
34
|
export { preflightMbql5Query as a, TRANSFORM_SOURCE_QUERY_LABELS as i, MEASURE_DEFINITION_LABELS as n, skipValidateFlag as o, SEGMENT_DEFINITION_LABELS as r, CARD_DATASET_QUERY_LABELS as t };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import {
|
|
5
|
-
import { n as fieldValuesView } from "./field-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, _ as formatScalar, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
4
|
+
import { l as FieldValues } from "./field-CcN4oZy6.mjs";
|
|
5
|
+
import { n as fieldValuesView } from "./field-fDtIrY6D.mjs";
|
|
6
6
|
//#region src/commands/field/values.ts
|
|
7
7
|
var values_default = defineMetabaseCommand({
|
|
8
8
|
meta: {
|
|
9
9
|
name: "values",
|
|
10
10
|
description: "Fetch the cached distinct values for a field (FieldValues list)"
|
|
11
11
|
},
|
|
12
|
-
|
|
12
|
+
requires: ["field.values"],
|
|
13
13
|
args: {
|
|
14
14
|
...outputFlags,
|
|
15
15
|
...profileFlag,
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
import { n as createClient } from "./client-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { r as HttpError } from "./network-error-D6CiOEBw.mjs";
|
|
5
|
-
//#region ../client/src/version/probe.ts
|
|
6
|
-
const PROBE_PATH = "/api/session/properties";
|
|
7
|
-
const PROBE_TIMEOUT_MS = 1e4;
|
|
8
|
-
async function probeServer(client, opts = {}) {
|
|
9
|
-
const properties = await client.requestParsed(SessionProperties, PROBE_PATH, {
|
|
10
|
-
timeoutMs: PROBE_TIMEOUT_MS,
|
|
11
|
-
retries: opts.retries ?? 0
|
|
12
|
-
});
|
|
13
|
-
return {
|
|
14
|
-
version: tryParseTag(properties.version.tag),
|
|
15
|
-
tokenFeatures: properties["token-features"] ?? null
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
//#endregion
|
|
1
|
+
import { n as createClient } from "./client-ClL6gf7G.mjs";
|
|
2
|
+
import { it as TimeoutError, nt as NetworkError, st as errorMessage, tt as MetabaseError } from "./cli.mjs";
|
|
3
|
+
import { L as HttpError, O as USER_AGENT, et as probeServer } from "./runtime-Dtb93zKy.mjs";
|
|
19
4
|
//#region src/core/auth/verify.ts
|
|
20
5
|
const VERIFY_TIMEOUT_MS = 15e3;
|
|
21
6
|
async function verifyAndProbe(url, credential, options = {}) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-
|
|
4
|
-
import { r as parseWaitSchedule } from "./wait-flags-
|
|
5
|
-
import { c as syncTaskView } from "./git-sync-
|
|
6
|
-
import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-
|
|
1
|
+
import { H as outputFlags, U as profileFlag, p as renderSummary, z as connectionFlags } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-Dtb93zKy.mjs";
|
|
3
|
+
import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-KLl4Eq8Y.mjs";
|
|
4
|
+
import { r as parseWaitSchedule } from "./wait-flags-CiJGrTCT.mjs";
|
|
5
|
+
import { c as syncTaskView } from "./git-sync-TjX1r_wF.mjs";
|
|
6
|
+
import { a as throwIfFailedTask, i as taskPollOptions, n as formatSyncTask, r as syncTaskIdleView, t as SyncTaskOrIdle } from "./sync-task-BtDnTXCP.mjs";
|
|
7
7
|
//#region src/commands/git-sync/wait.ts
|
|
8
8
|
const WaitResult = SyncTaskOrIdle;
|
|
9
9
|
var wait_default = defineMetabaseCommand({
|
|
@@ -11,10 +11,7 @@ var wait_default = defineMetabaseCommand({
|
|
|
11
11
|
name: "wait",
|
|
12
12
|
description: "Poll the current git-sync task until it reaches a terminal status"
|
|
13
13
|
},
|
|
14
|
-
|
|
15
|
-
minVersion: 60,
|
|
16
|
-
tokenFeature: "remote_sync"
|
|
17
|
-
},
|
|
14
|
+
requires: ["gitSync.waitForTask"],
|
|
18
15
|
args: {
|
|
19
16
|
...outputFlags,
|
|
20
17
|
...profileFlag,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as interruptSignal } from "./cli.mjs";
|
|
2
|
-
import { t as parseId } from "./parse-id-
|
|
3
|
-
import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-
|
|
2
|
+
import { t as parseId } from "./parse-id-DtM6q9HU.mjs";
|
|
3
|
+
import { n as DEFAULT_TIMEOUT_MS, t as DEFAULT_INTERVAL_MS } from "./poll-KLl4Eq8Y.mjs";
|
|
4
4
|
//#region src/commands/wait-flags.ts
|
|
5
5
|
const waitScheduleFlags = {
|
|
6
6
|
timeout: {
|