@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,4 +1,4 @@
|
|
|
1
|
-
import { r as FieldCompact, t as Field } from "./field-
|
|
1
|
+
import { r as FieldCompact, t as Field } from "./field-CcN4oZy6.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region ../client/src/domain/table.ts
|
|
4
4
|
const TableEntityType = z.enum([
|
|
@@ -53,6 +53,26 @@ const TableDataAuthority = z.enum([
|
|
|
53
53
|
"computed",
|
|
54
54
|
"ingested"
|
|
55
55
|
]);
|
|
56
|
+
const TableDataLayerTier = z.enum([
|
|
57
|
+
"final",
|
|
58
|
+
"internal",
|
|
59
|
+
"hidden"
|
|
60
|
+
]);
|
|
61
|
+
const TableDataLayerMedallion = z.enum([
|
|
62
|
+
"gold",
|
|
63
|
+
"silver",
|
|
64
|
+
"bronze",
|
|
65
|
+
"copper"
|
|
66
|
+
]);
|
|
67
|
+
const TableDataLayer = z.enum([...TableDataLayerTier.options, ...TableDataLayerMedallion.options]);
|
|
68
|
+
const TableDataSource = z.enum([
|
|
69
|
+
"unknown",
|
|
70
|
+
"ingested",
|
|
71
|
+
"metabase-transform",
|
|
72
|
+
"transform",
|
|
73
|
+
"source-data",
|
|
74
|
+
"upload"
|
|
75
|
+
]);
|
|
56
76
|
const TableUpdateInput = z.object({
|
|
57
77
|
display_name: z.string().min(1).nullable().optional(),
|
|
58
78
|
entity_type: TableEntityType.nullable().optional(),
|
|
@@ -63,11 +83,38 @@ const TableUpdateInput = z.object({
|
|
|
63
83
|
show_in_getting_started: z.boolean().nullable().optional(),
|
|
64
84
|
field_order: TableFieldOrder.nullable().optional(),
|
|
65
85
|
data_authority: TableDataAuthority.nullable().optional(),
|
|
66
|
-
data_source:
|
|
67
|
-
data_layer:
|
|
86
|
+
data_source: TableDataSource.nullable().optional(),
|
|
87
|
+
data_layer: TableDataLayer.nullable().optional(),
|
|
68
88
|
owner_email: z.string().nullable().optional(),
|
|
69
89
|
owner_user_id: z.number().int().nullable().optional(),
|
|
70
90
|
collection_id: z.number().int().positive().nullable().optional()
|
|
71
91
|
}).loose();
|
|
92
|
+
z.object({
|
|
93
|
+
database_ids: z.array(z.number().int().positive()).optional(),
|
|
94
|
+
schema_ids: z.array(z.string().min(1)).optional(),
|
|
95
|
+
table_ids: z.array(z.number().int().positive()).optional()
|
|
96
|
+
}).extend({
|
|
97
|
+
data_authority: TableDataAuthority.nullable().optional(),
|
|
98
|
+
data_source: TableDataSource.nullable().optional(),
|
|
99
|
+
data_layer: TableDataLayerTier.nullable().optional(),
|
|
100
|
+
entity_type: TableEntityType.nullable().optional(),
|
|
101
|
+
owner_email: z.string().nullable().optional(),
|
|
102
|
+
owner_user_id: z.number().int().nullable().optional()
|
|
103
|
+
}).strict();
|
|
104
|
+
const TableForeignKey = z.object({
|
|
105
|
+
relationship: z.literal("Mt1"),
|
|
106
|
+
origin_id: z.number().int(),
|
|
107
|
+
origin: Field,
|
|
108
|
+
destination_id: z.number().int(),
|
|
109
|
+
destination: Field
|
|
110
|
+
}).loose();
|
|
111
|
+
TableForeignKey.pick({
|
|
112
|
+
relationship: true,
|
|
113
|
+
origin_id: true,
|
|
114
|
+
destination_id: true
|
|
115
|
+
}).strip().extend({
|
|
116
|
+
origin: FieldCompact,
|
|
117
|
+
destination: FieldCompact
|
|
118
|
+
});
|
|
72
119
|
//#endregion
|
|
73
|
-
export {
|
|
120
|
+
export { TableGetInclude as a, TableVisibilityType as c, TableForeignKey as i, TableCompact as n, TableQueryMetadata as o, TableDataLayerTier as r, TableUpdateInput as s, Table as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
|
|
2
2
|
//#region src/commands/table/index.ts
|
|
3
3
|
var table_default = defineCommandGroup({
|
|
4
4
|
name: "table",
|
|
@@ -8,10 +8,10 @@ var table_default = defineCommandGroup({
|
|
|
8
8
|
purpose: "table and column metadata, semantic types, visibility"
|
|
9
9
|
}],
|
|
10
10
|
subCommands: {
|
|
11
|
-
list: () => import("./list-
|
|
12
|
-
get: () => import("./get-
|
|
13
|
-
fields: () => import("./fields-
|
|
14
|
-
update: () => import("./update-
|
|
11
|
+
list: () => import("./list-D-SyhKFw.mjs").then((m) => m.default),
|
|
12
|
+
get: () => import("./get-D_x-ENFe.mjs").then((m) => m.default),
|
|
13
|
+
fields: () => import("./fields-DxHxuxwO.mjs").then((m) => m.default),
|
|
14
|
+
update: () => import("./update-DXmZuJho.mjs").then((m) => m.default)
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.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-jhQSgh6i.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-C3cuZNeW.mjs").then((mod) => mod.default),
|
|
13
|
+
events: () => import("./events-CXqetjcS.mjs").then((mod) => mod.default),
|
|
14
|
+
create: () => import("./create-YetX69Re.mjs").then((mod) => mod.default),
|
|
15
|
+
update: () => import("./update-H_fdjugs.mjs").then((mod) => mod.default),
|
|
16
|
+
archive: () => import("./archive-cAdUa1-2.mjs").then((mod) => mod.default),
|
|
17
|
+
delete: () => import("./delete-wFsy80db.mjs").then((mod) => mod.default)
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
export { timeline_default as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
|
|
2
2
|
//#region src/commands/timeline-event/index.ts
|
|
3
3
|
var timeline_event_default = defineCommandGroup({
|
|
4
4
|
name: "timeline-event",
|
|
@@ -8,11 +8,11 @@ var timeline_event_default = defineCommandGroup({
|
|
|
8
8
|
purpose: "required event fields and timeline collection scoping"
|
|
9
9
|
}],
|
|
10
10
|
subCommands: {
|
|
11
|
-
get: () => import("./get-
|
|
12
|
-
create: () => import("./create-
|
|
13
|
-
update: () => import("./update-
|
|
14
|
-
archive: () => import("./archive-
|
|
15
|
-
delete: () => import("./delete-
|
|
11
|
+
get: () => import("./get-BF2vdF3W.mjs").then((mod) => mod.default),
|
|
12
|
+
create: () => import("./create-DWFJdyIr.mjs").then((mod) => mod.default),
|
|
13
|
+
update: () => import("./update-To6A1Ugu.mjs").then((mod) => mod.default),
|
|
14
|
+
archive: () => import("./archive-B51prFgS.mjs").then((mod) => mod.default),
|
|
15
|
+
delete: () => import("./delete--15it-A8.mjs").then((mod) => mod.default)
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
//#endregion
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.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-M8J10Ozk.mjs").then((mod) => mod.default),
|
|
15
|
+
get: () => import("./get-b0CoPz5B.mjs").then((mod) => mod.default),
|
|
16
|
+
dependencies: () => import("./dependencies-C1ogC3BV.mjs").then((mod) => mod.default),
|
|
17
|
+
create: () => import("./create-D--Z1S3p2.mjs").then((mod) => mod.default),
|
|
18
|
+
update: () => import("./update-DV54H3L5.mjs").then((mod) => mod.default),
|
|
19
|
+
delete: () => import("./delete-BxjJ66BS.mjs").then((mod) => mod.default),
|
|
20
|
+
"delete-table": () => import("./delete-table-5AQpn8OB.mjs").then((mod) => mod.default),
|
|
21
|
+
run: () => import("./run-QEUbWNm7.mjs").then((mod) => mod.default),
|
|
22
|
+
cancel: () => import("./cancel-DpDcVY7M.mjs").then((mod) => mod.default),
|
|
23
|
+
"get-run": () => import("./get-run-BE1HtJDW.mjs").then((mod) => mod.default),
|
|
24
|
+
runs: () => import("./runs-BSlhVeDO.mjs").then((mod) => mod.default)
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { transform_default as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { g as MALFORMED_CELL } from "./cli.mjs";
|
|
2
|
+
import { d as TransformTarget, n as TransformCompact, s as TransformRunCompact } from "./transform-DiW7bREn.mjs";
|
|
3
3
|
//#region src/output/views/transform.ts
|
|
4
4
|
function formatTarget(value) {
|
|
5
5
|
const parsed = TransformTarget.safeParse(value);
|
|
@@ -119,7 +119,49 @@ const TransformRunResult = z.object({
|
|
|
119
119
|
final: TransformRun.nullable(),
|
|
120
120
|
target_table_id: z.number().int().nullable().optional()
|
|
121
121
|
});
|
|
122
|
-
|
|
122
|
+
/** Which transforms a DAG reprocess from a seed transform runs, besides the seed itself. */
|
|
123
|
+
const TransformDagDirection = z.enum(["upstream", "downstream"]);
|
|
124
|
+
const TransformDagRunResult = z.object({
|
|
125
|
+
message: z.string(),
|
|
126
|
+
dag_run_id: z.number().int().positive().nullable()
|
|
127
|
+
});
|
|
128
|
+
const TransformDagTransform = z.object({
|
|
129
|
+
id: z.number().int(),
|
|
130
|
+
name: z.string()
|
|
131
|
+
});
|
|
132
|
+
const TransformRunSummaryType = z.enum([
|
|
133
|
+
"job",
|
|
134
|
+
"dag",
|
|
135
|
+
"transform"
|
|
136
|
+
]);
|
|
137
|
+
z.enum(["start_time", "end_time"]);
|
|
138
|
+
const TransformRunSummary = z.object({
|
|
139
|
+
run_type: TransformRunSummaryType,
|
|
140
|
+
id: z.number().int(),
|
|
141
|
+
entity_id: z.number().int().nullable(),
|
|
142
|
+
name: z.string().nullable(),
|
|
143
|
+
direction: TransformDagDirection.nullable(),
|
|
144
|
+
transform_count: z.number().int().nullable(),
|
|
145
|
+
run_method: TransformRunMethod.nullable(),
|
|
146
|
+
status: TransformRunStatus,
|
|
147
|
+
is_active: z.boolean().nullable(),
|
|
148
|
+
start_time: z.string(),
|
|
149
|
+
end_time: z.string().nullable().optional(),
|
|
150
|
+
message: z.string().nullable(),
|
|
151
|
+
user_id: z.number().int().nullable()
|
|
152
|
+
}).loose();
|
|
153
|
+
TransformRunSummary.pick({
|
|
154
|
+
run_type: true,
|
|
155
|
+
id: true,
|
|
156
|
+
entity_id: true,
|
|
157
|
+
name: true,
|
|
158
|
+
status: true,
|
|
159
|
+
run_method: true,
|
|
160
|
+
start_time: true,
|
|
161
|
+
end_time: true,
|
|
162
|
+
message: true
|
|
163
|
+
}).strip();
|
|
164
|
+
const TransformBase = z.object({
|
|
123
165
|
id: z.number().int(),
|
|
124
166
|
name: z.string(),
|
|
125
167
|
description: z.string().nullable(),
|
|
@@ -128,8 +170,6 @@ const Transform = z.object({
|
|
|
128
170
|
source_type: TransformSourceType,
|
|
129
171
|
source_database_id: z.number().int().nullable().optional(),
|
|
130
172
|
target_db_id: z.number().int().nullable().optional(),
|
|
131
|
-
target_table_id: z.number().int().nullable().optional(),
|
|
132
|
-
table: z.object({ id: z.number().int() }).loose().nullable().optional(),
|
|
133
173
|
entity_id: z.string().nullable(),
|
|
134
174
|
created_at: z.string(),
|
|
135
175
|
updated_at: z.string(),
|
|
@@ -139,12 +179,35 @@ const Transform = z.object({
|
|
|
139
179
|
last_run: TransformLastRun.nullable().optional(),
|
|
140
180
|
tag_ids: z.array(z.number().int()).optional()
|
|
141
181
|
}).loose();
|
|
182
|
+
const Transform = TransformBase.extend({ target_table_id: z.number().int().nullable() });
|
|
183
|
+
const TransformWireV59Detail = TransformBase.extend({ table: z.object({ id: z.number().int() }).loose().nullable() });
|
|
184
|
+
function fromHydratedTable(wire) {
|
|
185
|
+
return {
|
|
186
|
+
...wire,
|
|
187
|
+
target_table_id: wire.table === null ? null : wire.table.id
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function withoutLink(row) {
|
|
191
|
+
return {
|
|
192
|
+
...row,
|
|
193
|
+
target_table_id: null
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/** The shape `GET /api/transform/{id}` answers on a server with `features`, read as `Transform`. */
|
|
197
|
+
function transformDetailSchema(features) {
|
|
198
|
+
return features.transformTargetTableId ? Transform : TransformWireV59Detail.transform(fromHydratedTable);
|
|
199
|
+
}
|
|
200
|
+
/** The shape every other transform endpoint answers on a server with `features`, read as `Transform`. */
|
|
201
|
+
function transformRowSchema(features) {
|
|
202
|
+
return features.transformTargetTableId ? Transform : TransformBase.transform(withoutLink);
|
|
203
|
+
}
|
|
142
204
|
const TransformCompact = Transform.pick({
|
|
143
205
|
id: true,
|
|
144
206
|
name: true,
|
|
145
207
|
description: true,
|
|
146
208
|
source_type: true,
|
|
147
|
-
target_db_id: true
|
|
209
|
+
target_db_id: true,
|
|
210
|
+
target_table_id: true
|
|
148
211
|
}).strip().extend({ target: TransformTargetCompact });
|
|
149
212
|
const TransformCreateInput = z.object({
|
|
150
213
|
name: z.string().min(1),
|
|
@@ -169,4 +232,4 @@ const TransformUpdateInput = z.object({
|
|
|
169
232
|
owner_email: z.string().nullable().optional()
|
|
170
233
|
}).loose();
|
|
171
234
|
//#endregion
|
|
172
|
-
export {
|
|
235
|
+
export { TransformDagTransform as a, TransformRunResult as c, TransformTarget as d, TransformUpdateInput as f, transformRowSchema as g, transformDetailSchema as h, TransformDagRunResult as i, TransformRunSummary as l, isTransformRunTerminal as m, TransformCompact as n, TransformRun as o, isTransformRunFailed as p, TransformCreateInput as r, TransformRunCompact as s, Transform as t, TransformSourceTableEntry as u };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.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-CzRzCbCY.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-DjlQhgD4.mjs").then((mod) => mod.default),
|
|
13
|
+
create: () => import("./create-CHr8MPPq.mjs").then((mod) => mod.default),
|
|
14
|
+
update: () => import("./update-DmgRIp7o.mjs").then((mod) => mod.default),
|
|
15
|
+
delete: () => import("./delete-Dc8E5YwZ.mjs").then((mod) => mod.default),
|
|
16
|
+
run: () => import("./run-DijA_BXt.mjs").then((mod) => mod.default),
|
|
17
|
+
transforms: () => import("./transforms-O4NtXqFz.mjs").then((mod) => mod.default),
|
|
18
|
+
"set-active": () => import("./set-active-lDKhAlij.mjs").then((mod) => mod.default)
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { transform_job_default as default };
|
|
@@ -20,13 +20,12 @@ const JobLastRun = z.object({
|
|
|
20
20
|
updated_at: z.string()
|
|
21
21
|
}).loose();
|
|
22
22
|
const JobNextRun = z.object({ start_time: z.string() }).loose();
|
|
23
|
-
const
|
|
23
|
+
const TransformJobBase = z.object({
|
|
24
24
|
id: z.number().int(),
|
|
25
25
|
name: z.string(),
|
|
26
26
|
description: z.string().nullable(),
|
|
27
27
|
schedule: z.string(),
|
|
28
28
|
ui_display_type: CronUiDisplayType,
|
|
29
|
-
active: z.boolean().optional(),
|
|
30
29
|
entity_id: z.string().nullable(),
|
|
31
30
|
created_at: z.string(),
|
|
32
31
|
updated_at: z.string(),
|
|
@@ -35,6 +34,17 @@ const TransformJob = z.object({
|
|
|
35
34
|
last_run: JobLastRun.nullable().optional(),
|
|
36
35
|
next_run: JobNextRun.nullable().optional()
|
|
37
36
|
}).loose();
|
|
37
|
+
const TransformJob = TransformJobBase.extend({ active: z.boolean().nullable() });
|
|
38
|
+
function alwaysActive(wire) {
|
|
39
|
+
return {
|
|
40
|
+
...wire,
|
|
41
|
+
active: null
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** The shape every transform-job endpoint answers on a server with `features`, read as `TransformJob`. */
|
|
45
|
+
function transformJobSchema(features) {
|
|
46
|
+
return features.transformJobActivation ? TransformJob : TransformJobBase.transform(alwaysActive);
|
|
47
|
+
}
|
|
38
48
|
const TransformJobCompact = TransformJob.pick({
|
|
39
49
|
id: true,
|
|
40
50
|
name: true,
|
|
@@ -61,11 +71,38 @@ const TransformJobUpdateInput = z.object({
|
|
|
61
71
|
}).loose();
|
|
62
72
|
const TransformJobRunResult = z.object({
|
|
63
73
|
message: z.string(),
|
|
64
|
-
|
|
74
|
+
started: z.boolean().nullable(),
|
|
75
|
+
run_id: z.number().int().positive().nullable()
|
|
76
|
+
});
|
|
77
|
+
const TransformJobRunWireV59 = z.object({
|
|
78
|
+
message: z.string(),
|
|
79
|
+
job_run_id: z.string()
|
|
80
|
+
});
|
|
81
|
+
const TransformJobRunWireV64 = z.object({
|
|
82
|
+
message: z.string(),
|
|
83
|
+
job_run_id: z.number().int().positive().nullable()
|
|
65
84
|
});
|
|
85
|
+
function fromStubRunId(wire) {
|
|
86
|
+
return {
|
|
87
|
+
message: wire.message,
|
|
88
|
+
started: null,
|
|
89
|
+
run_id: null
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function fromNumericRunId(wire) {
|
|
93
|
+
return {
|
|
94
|
+
message: wire.message,
|
|
95
|
+
started: wire.job_run_id !== null,
|
|
96
|
+
run_id: wire.job_run_id
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** The shape `POST /api/transform-job/{id}/run` answers on a server with `features`, read as `TransformJobRunResult`. */
|
|
100
|
+
function transformJobRunResultSchema(features) {
|
|
101
|
+
return features.transformJobRunIdIsNumeric ? TransformJobRunWireV64.transform(fromNumericRunId) : TransformJobRunWireV59.transform(fromStubRunId);
|
|
102
|
+
}
|
|
66
103
|
const TransformJobActiveResult = z.object({
|
|
67
104
|
updated: z.number().int(),
|
|
68
105
|
failed: z.number().int()
|
|
69
106
|
});
|
|
70
107
|
//#endregion
|
|
71
|
-
export { TransformJobRunResult as a, TransformJobCreateInput as i, TransformJobActiveResult as n, TransformJobUpdateInput as o, TransformJobCompact as r, TransformJob as t };
|
|
108
|
+
export { TransformJobRunResult as a, transformJobSchema as c, TransformJobCreateInput as i, TransformJobActiveResult as n, TransformJobUpdateInput as o, TransformJobCompact as r, transformJobRunResultSchema as s, TransformJob as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
|
|
2
2
|
//#region src/commands/transform-tag/index.ts
|
|
3
3
|
var transform_tag_default = defineCommandGroup({
|
|
4
4
|
name: "transform-tag",
|
|
@@ -8,10 +8,10 @@ var transform_tag_default = defineCommandGroup({
|
|
|
8
8
|
purpose: "tags that drive job schedules"
|
|
9
9
|
}],
|
|
10
10
|
subCommands: {
|
|
11
|
-
list: () => import("./list-
|
|
12
|
-
create: () => import("./create
|
|
13
|
-
update: () => import("./update-
|
|
14
|
-
delete: () => import("./delete-
|
|
11
|
+
list: () => import("./list-Dat8QNcf.mjs").then((mod) => mod.default),
|
|
12
|
+
create: () => import("./create--fiwuTWc.mjs").then((mod) => mod.default),
|
|
13
|
+
update: () => import("./update-BB6Go_RX.mjs").then((mod) => mod.default),
|
|
14
|
+
delete: () => import("./delete-BudvZkvK.mjs").then((mod) => mod.default)
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region ../client/src/domain/transform-test.ts
|
|
3
|
+
const TransformTestTable = z.object({
|
|
4
|
+
schema: z.string().min(1).nullable().optional(),
|
|
5
|
+
name: z.string().min(1)
|
|
6
|
+
}).loose();
|
|
7
|
+
const TransformTestColumn = z.object({
|
|
8
|
+
name: z.string().min(1),
|
|
9
|
+
cast_type: z.string().min(1)
|
|
10
|
+
}).loose();
|
|
11
|
+
const TransformTestCell = z.union([
|
|
12
|
+
z.boolean(),
|
|
13
|
+
z.number(),
|
|
14
|
+
z.string(),
|
|
15
|
+
z.null()
|
|
16
|
+
]);
|
|
17
|
+
const TransformTestRow = z.record(z.string(), TransformTestCell);
|
|
18
|
+
const TransformTestSqlInput = z.object({
|
|
19
|
+
table: TransformTestTable,
|
|
20
|
+
format: z.literal("sql"),
|
|
21
|
+
sql: z.string().min(1)
|
|
22
|
+
}).loose();
|
|
23
|
+
const TransformTestRowsInput = z.object({
|
|
24
|
+
table: TransformTestTable,
|
|
25
|
+
format: z.literal("rows"),
|
|
26
|
+
columns: z.array(TransformTestColumn).min(1),
|
|
27
|
+
rows: z.array(TransformTestRow)
|
|
28
|
+
}).loose();
|
|
29
|
+
const TransformTestInput = z.discriminatedUnion("format", [TransformTestSqlInput, TransformTestRowsInput]);
|
|
30
|
+
const TransformTestEqualsSqlExpectation = z.object({
|
|
31
|
+
type: z.literal("equals"),
|
|
32
|
+
name: z.string().min(1),
|
|
33
|
+
format: z.literal("sql"),
|
|
34
|
+
sql: z.string().min(1)
|
|
35
|
+
}).loose();
|
|
36
|
+
const TransformTestEqualsRowsExpectation = z.object({
|
|
37
|
+
type: z.literal("equals"),
|
|
38
|
+
name: z.string().min(1),
|
|
39
|
+
format: z.literal("rows"),
|
|
40
|
+
columns: z.array(TransformTestColumn).min(1),
|
|
41
|
+
rows: z.array(TransformTestRow)
|
|
42
|
+
}).loose();
|
|
43
|
+
const TransformTestEqualsExpectation = z.discriminatedUnion("format", [TransformTestEqualsSqlExpectation, TransformTestEqualsRowsExpectation]);
|
|
44
|
+
const TransformTestEmptyExpectation = z.object({
|
|
45
|
+
type: z.literal("empty"),
|
|
46
|
+
name: z.string().min(1),
|
|
47
|
+
sql: z.string().min(1)
|
|
48
|
+
}).loose();
|
|
49
|
+
const TransformTestExpectation = z.discriminatedUnion("type", [TransformTestEqualsExpectation, TransformTestEmptyExpectation]);
|
|
50
|
+
const TransformTest = z.object({
|
|
51
|
+
id: z.number().int(),
|
|
52
|
+
entity_id: z.string(),
|
|
53
|
+
transform_id: z.number().int(),
|
|
54
|
+
creator_id: z.number().int(),
|
|
55
|
+
name: z.string(),
|
|
56
|
+
description: z.string().nullable(),
|
|
57
|
+
inputs: z.array(TransformTestInput),
|
|
58
|
+
expectations: z.array(TransformTestExpectation),
|
|
59
|
+
created_at: z.string(),
|
|
60
|
+
updated_at: z.string()
|
|
61
|
+
}).loose();
|
|
62
|
+
const TransformTestCompact = TransformTest.pick({
|
|
63
|
+
id: true,
|
|
64
|
+
transform_id: true,
|
|
65
|
+
name: true,
|
|
66
|
+
description: true
|
|
67
|
+
}).strip();
|
|
68
|
+
/**
|
|
69
|
+
* The server closes this map, so an unrecognized key is a 400 there. Refusing it here names the key
|
|
70
|
+
* instead: a body cloned from `get` has to shed `id`, `entity_id`, `creator_id`, `created_at` and
|
|
71
|
+
* `updated_at` before it can be sent back.
|
|
72
|
+
*/
|
|
73
|
+
const TransformTestCreateInput = z.object({
|
|
74
|
+
transform_id: z.number().int().positive(),
|
|
75
|
+
name: z.string().min(1),
|
|
76
|
+
description: z.string().nullable().optional(),
|
|
77
|
+
inputs: z.array(TransformTestInput),
|
|
78
|
+
expectations: z.array(TransformTestExpectation)
|
|
79
|
+
}).strict();
|
|
80
|
+
/** Closed for the same reason as [[TransformTestCreateInput]]; every field is optional. */
|
|
81
|
+
const TransformTestUpdateInput = z.object({
|
|
82
|
+
transform_id: z.number().int().positive().optional(),
|
|
83
|
+
name: z.string().min(1).optional(),
|
|
84
|
+
description: z.string().nullable().optional(),
|
|
85
|
+
inputs: z.array(TransformTestInput).optional(),
|
|
86
|
+
expectations: z.array(TransformTestExpectation).optional()
|
|
87
|
+
}).strict();
|
|
88
|
+
const TransformTestResultColumn = z.object({
|
|
89
|
+
name: z.string(),
|
|
90
|
+
database_type: z.string()
|
|
91
|
+
}).loose();
|
|
92
|
+
const TransformTestExpectationError = z.object({
|
|
93
|
+
type: z.string(),
|
|
94
|
+
message: z.string()
|
|
95
|
+
}).loose();
|
|
96
|
+
const TransformTestCellMismatch = z.object({
|
|
97
|
+
column: z.string(),
|
|
98
|
+
expected: TransformTestCell,
|
|
99
|
+
actual: TransformTestCell
|
|
100
|
+
}).loose();
|
|
101
|
+
const TransformTestRowCounts = z.object({
|
|
102
|
+
actual: z.number().int(),
|
|
103
|
+
expected: z.number().int()
|
|
104
|
+
}).loose();
|
|
105
|
+
const TransformTestEqualsFindings = z.object({
|
|
106
|
+
name: z.string(),
|
|
107
|
+
type: z.literal("equals"),
|
|
108
|
+
status: z.enum(["passed", "failed"]),
|
|
109
|
+
columns: z.array(TransformTestResultColumn),
|
|
110
|
+
"row-counts": TransformTestRowCounts,
|
|
111
|
+
"extra-rows": z.array(TransformTestRow),
|
|
112
|
+
"missing-rows": z.array(TransformTestRow),
|
|
113
|
+
"cell-mismatches": z.array(TransformTestCellMismatch),
|
|
114
|
+
truncated: z.number().int()
|
|
115
|
+
}).loose();
|
|
116
|
+
const TransformTestEqualsError = z.object({
|
|
117
|
+
name: z.string(),
|
|
118
|
+
type: z.literal("equals"),
|
|
119
|
+
status: z.literal("error"),
|
|
120
|
+
error: TransformTestExpectationError
|
|
121
|
+
}).loose();
|
|
122
|
+
const TransformTestEqualsResult = z.discriminatedUnion("status", [TransformTestEqualsFindings, TransformTestEqualsError]);
|
|
123
|
+
const TransformTestEmptyPassed = z.object({
|
|
124
|
+
name: z.string(),
|
|
125
|
+
type: z.literal("empty"),
|
|
126
|
+
status: z.literal("passed")
|
|
127
|
+
}).loose();
|
|
128
|
+
const TransformTestEmptyFailed = z.object({
|
|
129
|
+
name: z.string(),
|
|
130
|
+
type: z.literal("empty"),
|
|
131
|
+
status: z.literal("failed"),
|
|
132
|
+
columns: z.array(TransformTestResultColumn),
|
|
133
|
+
sample: z.array(TransformTestRow),
|
|
134
|
+
truncated: z.number().int()
|
|
135
|
+
}).loose();
|
|
136
|
+
const TransformTestEmptyError = z.object({
|
|
137
|
+
name: z.string(),
|
|
138
|
+
type: z.literal("empty"),
|
|
139
|
+
status: z.literal("error"),
|
|
140
|
+
error: TransformTestExpectationError
|
|
141
|
+
}).loose();
|
|
142
|
+
const TransformTestEmptyResult = z.discriminatedUnion("status", [
|
|
143
|
+
TransformTestEmptyPassed,
|
|
144
|
+
TransformTestEmptyFailed,
|
|
145
|
+
TransformTestEmptyError
|
|
146
|
+
]);
|
|
147
|
+
const TransformTestExpectationResult = z.discriminatedUnion("type", [TransformTestEqualsResult, TransformTestEmptyResult]);
|
|
148
|
+
const TransformTestRunResult = z.object({
|
|
149
|
+
status: z.enum(["passed", "failed"]),
|
|
150
|
+
expectations: z.array(TransformTestExpectationResult),
|
|
151
|
+
tables: z.record(z.string(), z.string())
|
|
152
|
+
}).loose();
|
|
153
|
+
z.enum([
|
|
154
|
+
"transform-test.unknown-column",
|
|
155
|
+
"transform-test.ambiguous-column",
|
|
156
|
+
"transform-test.missing-inputs",
|
|
157
|
+
"transform-test.unused-inputs",
|
|
158
|
+
"transform-test.duplicate-input-table",
|
|
159
|
+
"transform-test.unparseable-source",
|
|
160
|
+
"transform-test.unremapped-reference",
|
|
161
|
+
"transform-test.unsupported-transform",
|
|
162
|
+
"transform-test.unsupported-driver",
|
|
163
|
+
"transform-test.transform-failed",
|
|
164
|
+
"transform-test.setup-failed",
|
|
165
|
+
"transform-test.expectation-failed",
|
|
166
|
+
"transform-test.unsupported-format"
|
|
167
|
+
]);
|
|
168
|
+
//#endregion
|
|
169
|
+
export { TransformTestUpdateInput as a, TransformTestRunResult as i, TransformTestCompact as n, TransformTestCreateInput as r, TransformTest as t };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-YQQ5GIcP.mjs";
|
|
2
|
+
//#region src/commands/transform-test/index.ts
|
|
3
|
+
var transform_test_default = defineCommandGroup({
|
|
4
|
+
name: "transform-test",
|
|
5
|
+
description: "Manage transform tests — fixtures and expectations run against temp tables",
|
|
6
|
+
subCommands: {
|
|
7
|
+
list: () => import("./list-Cuhf2lKL.mjs").then((mod) => mod.default),
|
|
8
|
+
get: () => import("./get-i0KInCw9.mjs").then((mod) => mod.default),
|
|
9
|
+
create: () => import("./create-DiJ8bUb-.mjs").then((mod) => mod.default),
|
|
10
|
+
update: () => import("./update-l3PyNQKG.mjs").then((mod) => mod.default),
|
|
11
|
+
delete: () => import("./delete-Bsdwqh7H.mjs").then((mod) => mod.default),
|
|
12
|
+
run: () => import("./run-FmRruANb.mjs").then((mod) => mod.default)
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { transform_test_default as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { n as TransformTestCompact } from "./transform-test-BjjCQ2xm.mjs";
|
|
2
|
+
//#region src/output/views/transform-test.ts
|
|
3
|
+
const transformTestView = {
|
|
4
|
+
compactPick: TransformTestCompact,
|
|
5
|
+
tableColumns: [
|
|
6
|
+
{
|
|
7
|
+
key: "id",
|
|
8
|
+
label: "ID"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
key: "transform_id",
|
|
12
|
+
label: "Transform"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
key: "name",
|
|
16
|
+
label: "Name"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
key: "description",
|
|
20
|
+
label: "Description"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { transformTestView as t };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { t as parseId } from "./parse-id-
|
|
4
|
-
import { n as windowList } from "./window-
|
|
5
|
-
import { n as TransformCompact } from "./transform-
|
|
6
|
-
import { n as transformView } from "./transform-
|
|
1
|
+
import { B as listFlags, G as listEnvelopeSchema, H as outputFlags, U as profileFlag, d as renderList, 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 { n as windowList } from "./window-DSb1tqSe.mjs";
|
|
5
|
+
import { n as TransformCompact } from "./transform-DiW7bREn.mjs";
|
|
6
|
+
import { n as transformView } from "./transform-CtqB1WYo.mjs";
|
|
7
7
|
//#region src/commands/transform-job/transforms.ts
|
|
8
8
|
const TransformJobTransformsEnvelope = listEnvelopeSchema(TransformCompact);
|
|
9
9
|
var transforms_default = defineMetabaseCommand({
|
|
@@ -12,7 +12,7 @@ var transforms_default = defineMetabaseCommand({
|
|
|
12
12
|
description: "List the transforms a job will run"
|
|
13
13
|
},
|
|
14
14
|
details: "Resolves the transforms a job would execute, matched by the job's tags. The positional id is a JOB id, not a transform id.",
|
|
15
|
-
|
|
15
|
+
requires: ["transformJob.transforms"],
|
|
16
16
|
args: {
|
|
17
17
|
...outputFlags,
|
|
18
18
|
...listFlags,
|