@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
package/dist/skills-DTCrMcix.mjs
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { d as ValidationError, f as errorMessage, i as ConfigError, p as isFileNotFoundError } from "./predicates-Bkm2IoeX.mjs";
|
|
2
|
-
import { O as readEnv, w as ENV_SKILLS_DIR } from "./cli.mjs";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { closeSync, openSync, readFileSync, readSync, readdirSync, statSync } from "node:fs";
|
|
5
|
-
import { dirname, join, resolve } from "node:path";
|
|
6
|
-
import { fileURLToPath } from "node:url";
|
|
7
|
-
import { YAMLParseError, parse } from "yaml";
|
|
8
|
-
//#region src/runtime/yaml.ts
|
|
9
|
-
function parseYamlResult(input, schema, opts = {}) {
|
|
10
|
-
const sourcePrefix = opts.source ? `${opts.source}: ` : "";
|
|
11
|
-
let raw;
|
|
12
|
-
try {
|
|
13
|
-
raw = parse(input);
|
|
14
|
-
} catch (error) {
|
|
15
|
-
if (error instanceof YAMLParseError) return {
|
|
16
|
-
ok: false,
|
|
17
|
-
error: new ConfigError(`${sourcePrefix}invalid YAML: ${error.message}`)
|
|
18
|
-
};
|
|
19
|
-
return {
|
|
20
|
-
ok: false,
|
|
21
|
-
error: new ConfigError(`${sourcePrefix}invalid YAML: ${errorMessage(error)}`)
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const parsed = schema.safeParse(raw);
|
|
25
|
-
if (!parsed.success) return {
|
|
26
|
-
ok: false,
|
|
27
|
-
error: new ValidationError(`${sourcePrefix}value did not match expected schema`, {
|
|
28
|
-
source: opts.source ?? "<input>",
|
|
29
|
-
zodIssues: parsed.error.issues
|
|
30
|
-
})
|
|
31
|
-
};
|
|
32
|
-
return {
|
|
33
|
-
ok: true,
|
|
34
|
-
value: parsed.data
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region src/core/skills.ts
|
|
39
|
-
const Frontmatter = z.object({
|
|
40
|
-
name: z.string().min(1),
|
|
41
|
-
description: z.string().default(""),
|
|
42
|
-
hidden: z.boolean().default(false)
|
|
43
|
-
}).loose();
|
|
44
|
-
const SkillExtraFile = z.object({
|
|
45
|
-
path: z.string(),
|
|
46
|
-
content: z.string()
|
|
47
|
-
});
|
|
48
|
-
const SkillContent = z.object({
|
|
49
|
-
name: z.string(),
|
|
50
|
-
description: z.string(),
|
|
51
|
-
body: z.string(),
|
|
52
|
-
references: z.array(SkillExtraFile),
|
|
53
|
-
templates: z.array(SkillExtraFile)
|
|
54
|
-
});
|
|
55
|
-
const SKILL_DIR_NAMES = ["skills", "skill-data"];
|
|
56
|
-
const SKILL_MD_FILENAME = "SKILL.md";
|
|
57
|
-
const SKILL_REFERENCES_DIR = "references";
|
|
58
|
-
const SKILL_TEMPLATES_DIR = "templates";
|
|
59
|
-
const FRONTMATTER_PREFIX_BYTES = 8192;
|
|
60
|
-
const FRONTMATTER_FENCE = "---";
|
|
61
|
-
function loadAllSkills() {
|
|
62
|
-
return discoverSkills(resolveSkillDirs());
|
|
63
|
-
}
|
|
64
|
-
function loadVisibleSkills() {
|
|
65
|
-
return loadAllSkills().filter((s) => !s.hidden);
|
|
66
|
-
}
|
|
67
|
-
function findSkillByName(all, name) {
|
|
68
|
-
const hit = all.find((s) => s.name === name);
|
|
69
|
-
if (hit === void 0) throw new ConfigError(`unknown skill name: ${name} (${availableSkillNames(all)})`);
|
|
70
|
-
return hit;
|
|
71
|
-
}
|
|
72
|
-
function selectSkillsByNames(all, requested) {
|
|
73
|
-
if (requested.length === 0) throw new ConfigError("no skill names provided");
|
|
74
|
-
const byName = new Map(all.map((s) => [s.name, s]));
|
|
75
|
-
const missing = [];
|
|
76
|
-
const found = [];
|
|
77
|
-
for (const name of requested) {
|
|
78
|
-
const hit = byName.get(name);
|
|
79
|
-
if (hit === void 0) {
|
|
80
|
-
missing.push(name);
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
found.push(hit);
|
|
84
|
-
}
|
|
85
|
-
if (missing.length > 0) throw new ConfigError(`unknown skill name(s): ${missing.join(", ")} (${availableSkillNames(all)})`);
|
|
86
|
-
return found;
|
|
87
|
-
}
|
|
88
|
-
function availableSkillNames(all) {
|
|
89
|
-
const names = all.filter((s) => !s.hidden).map((s) => s.name);
|
|
90
|
-
return `available: ${names.length === 0 ? "none" : names.join(", ")}`;
|
|
91
|
-
}
|
|
92
|
-
function resolveSkillDirs() {
|
|
93
|
-
const override = readEnv(ENV_SKILLS_DIR);
|
|
94
|
-
if (override !== void 0 && override !== "") {
|
|
95
|
-
if (!isDirectory(override)) throw new ConfigError(`${ENV_SKILLS_DIR} points at ${override}, which is not a directory`);
|
|
96
|
-
return [resolve(override)];
|
|
97
|
-
}
|
|
98
|
-
const root = findPackageRoot();
|
|
99
|
-
if (root === null) return [];
|
|
100
|
-
return SKILL_DIR_NAMES.map((name) => join(root, name)).filter(isDirectory);
|
|
101
|
-
}
|
|
102
|
-
function findPackageRoot() {
|
|
103
|
-
let dir = dirname(fileURLToPath(import.meta.url));
|
|
104
|
-
while (true) {
|
|
105
|
-
for (const name of SKILL_DIR_NAMES) if (isDirectory(join(dir, name))) return dir;
|
|
106
|
-
const parent = dirname(dir);
|
|
107
|
-
if (parent === dir) return null;
|
|
108
|
-
dir = parent;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
function discoverSkills(dirs) {
|
|
112
|
-
const skills = [];
|
|
113
|
-
for (const dir of dirs) {
|
|
114
|
-
let entries;
|
|
115
|
-
try {
|
|
116
|
-
entries = readdirSync(dir);
|
|
117
|
-
} catch (error) {
|
|
118
|
-
if (isFileNotFoundError(error)) continue;
|
|
119
|
-
throw error;
|
|
120
|
-
}
|
|
121
|
-
for (const entryName of entries) {
|
|
122
|
-
const skillDir = join(dir, entryName);
|
|
123
|
-
const fm = readFrontmatterFromSkill(skillDir);
|
|
124
|
-
if (fm === null) continue;
|
|
125
|
-
skills.push({
|
|
126
|
-
name: fm.name,
|
|
127
|
-
description: fm.description,
|
|
128
|
-
hidden: fm.hidden,
|
|
129
|
-
dir: skillDir
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
134
|
-
return skills;
|
|
135
|
-
}
|
|
136
|
-
function readFrontmatterFromSkill(skillDir) {
|
|
137
|
-
const prefix = readFilePrefix(join(skillDir, SKILL_MD_FILENAME), FRONTMATTER_PREFIX_BYTES);
|
|
138
|
-
if (prefix === null) return null;
|
|
139
|
-
return parseFrontmatter(prefix);
|
|
140
|
-
}
|
|
141
|
-
function readFilePrefix(path, maxBytes) {
|
|
142
|
-
let fd;
|
|
143
|
-
try {
|
|
144
|
-
fd = openSync(path, "r");
|
|
145
|
-
} catch (error) {
|
|
146
|
-
if (isFileNotFoundError(error)) return null;
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
try {
|
|
150
|
-
const buffer = Buffer.alloc(maxBytes);
|
|
151
|
-
const bytesRead = readSync(fd, buffer, 0, maxBytes, 0);
|
|
152
|
-
return buffer.toString("utf8", 0, bytesRead);
|
|
153
|
-
} finally {
|
|
154
|
-
closeSync(fd);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
function parseFrontmatter(content) {
|
|
158
|
-
const trimmed = content.trimStart();
|
|
159
|
-
if (!trimmed.startsWith(FRONTMATTER_FENCE)) return null;
|
|
160
|
-
const afterOpening = trimmed.slice(3);
|
|
161
|
-
const closingIndex = afterOpening.indexOf(`\n${FRONTMATTER_FENCE}`);
|
|
162
|
-
if (closingIndex < 0) return null;
|
|
163
|
-
const result = parseYamlResult(afterOpening.slice(0, closingIndex), Frontmatter);
|
|
164
|
-
if (!result.ok) return null;
|
|
165
|
-
return result.value;
|
|
166
|
-
}
|
|
167
|
-
function readSkillContent(info, opts) {
|
|
168
|
-
const body = readFileSync(join(info.dir, SKILL_MD_FILENAME), "utf8");
|
|
169
|
-
if (!opts.includeExtras) return {
|
|
170
|
-
name: info.name,
|
|
171
|
-
description: info.description,
|
|
172
|
-
body,
|
|
173
|
-
references: [],
|
|
174
|
-
templates: []
|
|
175
|
-
};
|
|
176
|
-
return {
|
|
177
|
-
name: info.name,
|
|
178
|
-
description: info.description,
|
|
179
|
-
body,
|
|
180
|
-
references: collectExtraFiles(info.dir, SKILL_REFERENCES_DIR),
|
|
181
|
-
templates: collectExtraFiles(info.dir, SKILL_TEMPLATES_DIR)
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
function collectExtraFiles(skillDir, subdirName) {
|
|
185
|
-
const subdir = join(skillDir, subdirName);
|
|
186
|
-
if (!isDirectory(subdir)) return [];
|
|
187
|
-
const entries = readdirSync(subdir).toSorted();
|
|
188
|
-
const out = [];
|
|
189
|
-
for (const entry of entries) {
|
|
190
|
-
const full = join(subdir, entry);
|
|
191
|
-
if (!isFile(full)) continue;
|
|
192
|
-
out.push({
|
|
193
|
-
path: `${subdirName}/${entry}`,
|
|
194
|
-
content: readFileSync(full, "utf8")
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
return out;
|
|
198
|
-
}
|
|
199
|
-
function isDirectory(path) {
|
|
200
|
-
try {
|
|
201
|
-
return statSync(path).isDirectory();
|
|
202
|
-
} catch (error) {
|
|
203
|
-
if (isFileNotFoundError(error)) return false;
|
|
204
|
-
throw error;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
function isFile(path) {
|
|
208
|
-
try {
|
|
209
|
-
return statSync(path).isFile();
|
|
210
|
-
} catch (error) {
|
|
211
|
-
if (isFileNotFoundError(error)) return false;
|
|
212
|
-
throw error;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
//#endregion
|
|
216
|
-
export { readSkillContent as a, loadVisibleSkills as i, findSkillByName as n, selectSkillsByNames as o, loadAllSkills as r, SkillContent as t };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
|
-
//#region src/commands/snippet/index.ts
|
|
3
|
-
var snippet_default = defineCommandGroup({
|
|
4
|
-
name: "snippet",
|
|
5
|
-
description: "Manage Metabase native query snippets",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "core",
|
|
8
|
-
purpose: "native-SQL snippets and body input"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-C1bAtgO1.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-CsN7NBI0.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-vlrlY-2E.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-cqR1U6DU.mjs").then((mod) => mod.default),
|
|
15
|
-
archive: () => import("./archive-D3a3Wgz0.mjs").then((mod) => mod.default)
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
//#endregion
|
|
19
|
-
export { snippet_default as default };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
|
-
//#region src/commands/timeline/index.ts
|
|
3
|
-
var timeline_default = defineCommandGroup({
|
|
4
|
-
name: "timeline",
|
|
5
|
-
description: "Manage Metabase timelines (event annotations for time-series charts)",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "core",
|
|
8
|
-
purpose: "collection scoping — events render only on questions in the timeline's collection"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-BK_6VNm_.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-DCutQeiV.mjs").then((mod) => mod.default),
|
|
13
|
-
events: () => import("./events-D6yFmXP1.mjs").then((mod) => mod.default),
|
|
14
|
-
create: () => import("./create-C3IaXXty.mjs").then((mod) => mod.default),
|
|
15
|
-
update: () => import("./update-DsZttiSC.mjs").then((mod) => mod.default),
|
|
16
|
-
archive: () => import("./archive-DDru3vdy.mjs").then((mod) => mod.default),
|
|
17
|
-
delete: () => import("./delete-D6WxgWRp.mjs").then((mod) => mod.default)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
//#endregion
|
|
21
|
-
export { timeline_default as default };
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
|
-
//#region src/commands/transform/index.ts
|
|
3
|
-
var transform_default = defineCommandGroup({
|
|
4
|
-
name: "transform",
|
|
5
|
-
description: "Manage Metabase transforms",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "transform",
|
|
8
|
-
purpose: "body shape, run-with-wait, iterate"
|
|
9
|
-
}, {
|
|
10
|
-
skill: "mbql",
|
|
11
|
-
purpose: "MBQL source.query bodies"
|
|
12
|
-
}],
|
|
13
|
-
subCommands: {
|
|
14
|
-
list: () => import("./list-C7UvO3Uw.mjs").then((mod) => mod.default),
|
|
15
|
-
get: () => import("./get-BraVQ1FJ.mjs").then((mod) => mod.default),
|
|
16
|
-
dependencies: () => import("./dependencies-BdqIqEIy.mjs").then((mod) => mod.default),
|
|
17
|
-
create: () => import("./create-DaYRnK5P.mjs").then((mod) => mod.default),
|
|
18
|
-
update: () => import("./update-DlTaD1x3.mjs").then((mod) => mod.default),
|
|
19
|
-
delete: () => import("./delete-BwSPQy7m.mjs").then((mod) => mod.default),
|
|
20
|
-
"delete-table": () => import("./delete-table-CJktZE3w.mjs").then((mod) => mod.default),
|
|
21
|
-
run: () => import("./run-BeLm17F4.mjs").then((mod) => mod.default),
|
|
22
|
-
cancel: () => import("./cancel-ctpVE8uC.mjs").then((mod) => mod.default),
|
|
23
|
-
"get-run": () => import("./get-run-oH4dRCBx.mjs").then((mod) => mod.default),
|
|
24
|
-
runs: () => import("./runs-DFG63zgr.mjs").then((mod) => mod.default)
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
//#endregion
|
|
28
|
-
export { transform_default as default };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
|
-
//#region src/commands/transform-job/index.ts
|
|
3
|
-
var transform_job_default = defineCommandGroup({
|
|
4
|
-
name: "transform-job",
|
|
5
|
-
description: "Manage Metabase transform jobs",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "transform",
|
|
8
|
-
purpose: "tag-driven job schedules"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-D2IYZ6lk.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-Ba2HRdrx.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-7ddYK4TA.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-3idz42uD.mjs").then((mod) => mod.default),
|
|
15
|
-
delete: () => import("./delete-BZwAOQxG.mjs").then((mod) => mod.default),
|
|
16
|
-
run: () => import("./run-CM-Amtbf.mjs").then((mod) => mod.default),
|
|
17
|
-
transforms: () => import("./transforms-BjACGbBp.mjs").then((mod) => mod.default),
|
|
18
|
-
"set-active": () => import("./set-active-DL4QzWDO.mjs").then((mod) => mod.default)
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
//#endregion
|
|
22
|
-
export { transform_job_default as default };
|
package/dist/upload-DsYCf5kB.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-DBM87IgC.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-BLPJtlSC.mjs").then((m) => m.default),
|
|
8
|
-
append: () => import("./append-Bl_Ensmr.mjs").then((m) => m.default),
|
|
9
|
-
replace: () => import("./replace-CtsWICrD.mjs").then((m) => m.default)
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
//#endregion
|
|
13
|
-
export { upload_default as default };
|