@metabase/cli 0.5.4 → 0.5.6
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-D2x34KVO.mjs → add-collection-C_PXX4ls.mjs} +1 -1
- package/dist/{alert-B-w0c61D.mjs → alert-C8-KXr_o.mjs} +6 -6
- package/dist/{alerts-nnrpqD-U.mjs → alerts-BXEyXQRl.mjs} +2 -2
- package/dist/{api-key-CTyXuYui.mjs → api-key-DgEtUdtr.mjs} +3 -3
- package/dist/{append-BPrVW4RB.mjs → append-DHsRfdyS.mjs} +2 -2
- package/dist/{archive-p7gGwh0n.mjs → archive-1u8702EH.mjs} +1 -1
- package/dist/{archive-Bw_cvk_4.mjs → archive-78gVBFu3.mjs} +1 -1
- package/dist/{archive-CJFUFozc.mjs → archive-BHhKF2_r.mjs} +1 -1
- package/dist/{archive-CTZs6Hl6.mjs → archive-BfCuJyWK.mjs} +1 -1
- package/dist/{archive-Cwetg5kK.mjs → archive-BofgzTAr.mjs} +1 -1
- package/dist/{archive-BYo35OGC.mjs → archive-CU9OhyrM.mjs} +1 -1
- package/dist/{archive-F5hoWW7f.mjs → archive-Cm3GcZRd.mjs} +1 -1
- package/dist/{archive-Ccf6Qqrf.mjs → archive-D87H0xOc.mjs} +1 -1
- package/dist/{archive-BZVRJYTT.mjs → archive-DxLrdlxM.mjs} +1 -1
- package/dist/{archive-OZQaaQkK.mjs → archive-DyB65bNo.mjs} +1 -1
- package/dist/{archive-DBQnauVo.mjs → archive-Lgd6irTm.mjs} +1 -1
- package/dist/{archive-tmrsG41w.mjs → archive-eINikapF.mjs} +1 -1
- package/dist/{auth-eogOlU4X.mjs → auth-CeSe2l6R.mjs} +4 -4
- package/dist/{branches-CERgKqFq.mjs → branches-iu9tRXr6.mjs} +1 -1
- package/dist/{breaking-B8f_vl0i.mjs → breaking-DicKTkii.mjs} +1 -1
- package/dist/{broken-mrkOdV4j.mjs → broken-70_zMy0L.mjs} +1 -1
- package/dist/{bulk-discard-values-BQ3z6nJb.mjs → bulk-discard-values-Bsdq0Aid.mjs} +1 -1
- package/dist/{bulk-edit-CJxoxDGQ.mjs → bulk-edit-vWzm2uEj.mjs} +1 -1
- package/dist/{bulk-rescan-values-DflzyxEj.mjs → bulk-rescan-values-qTNZkMRH.mjs} +1 -1
- package/dist/{bulk-sync-schema-CBIs4yHs.mjs → bulk-sync-schema-neL4AxaB.mjs} +1 -1
- package/dist/{cancel-CyTRWSOr.mjs → cancel-DsyTp_jV.mjs} +1 -1
- package/dist/{cancel-task-BuZsQuLp.mjs → cancel-task-DMlaD81O.mjs} +1 -1
- package/dist/{card-DA1W3Axw.mjs → card-uZeDk5uH.mjs} +8 -8
- package/dist/{cards-BEeFNiCt.mjs → cards-DLEx1zfQ.mjs} +1 -1
- package/dist/cli.mjs +38 -38
- package/dist/{client-DvWllzKd.mjs → client-BN93yUlt.mjs} +10 -5
- package/dist/{collection-C98jgufi.mjs → collection-Cowt7nWW.mjs} +7 -7
- package/dist/{content-translation-1coWME1P.mjs → content-translation-C2V3jNV7.mjs} +2 -2
- package/dist/{copy-DVe4rcLK.mjs → copy-9iOg50lN.mjs} +1 -1
- package/dist/{copy-hE6SaHfb.mjs → copy-C4Nf6Sqt.mjs} +1 -1
- package/dist/{create-DJg0Ohj5.mjs → create-9p0vyQkK.mjs} +1 -1
- package/dist/{create-BjH0i2BC.mjs → create-B5h_621T.mjs} +1 -1
- package/dist/{create-XCzUuT42.mjs → create-BDBHkgLv.mjs} +1 -1
- package/dist/{create-DR5tpMUA.mjs → create-BNgkKeY4.mjs} +1 -1
- package/dist/{create-D271V9Cf.mjs → create-BUmS6B9_.mjs} +1 -1
- package/dist/{create-DdfFgF-w.mjs → create-BafMBtrH.mjs} +1 -1
- package/dist/{create-DCoo3sI2.mjs → create-BtExn-0P.mjs} +1 -1
- package/dist/{create-XVjr8IDS.mjs → create-C1DBXOxh.mjs} +1 -1
- package/dist/{create-Btwnm6D2.mjs → create-CA9c4U1m.mjs} +1 -1
- package/dist/{create-DXivfl69.mjs → create-CBk4CFjA.mjs} +1 -1
- package/dist/{create-DR8g_rEL.mjs → create-CWMC90-0.mjs} +1 -1
- package/dist/{create-LpdQKxUt.mjs → create-D6eWvVcd.mjs} +2 -2
- package/dist/{create-D6Xm2b2D.mjs → create-DBWbf0DF.mjs} +2 -2
- package/dist/{create-DEIIUohY2.mjs → create-DDEKafSb2.mjs} +1 -1
- package/dist/{create-CCb2_Kcc.mjs → create-DJzWxTOV.mjs} +1 -1
- package/dist/{create-B3P62NaN.mjs → create-D_AwGujc.mjs} +1 -1
- package/dist/{create-Dz4c8E33.mjs → create-VPzYsXKz.mjs} +1 -1
- package/dist/{create-BPRuU7Mv.mjs → create-ZKrdArmQ.mjs} +1 -1
- package/dist/{create-branch-D_nbKxDS.mjs → create-branch-D56lVQNd.mjs} +1 -1
- package/dist/{create-B3kz_fHg.mjs → create-il08Ub78.mjs} +1 -1
- package/dist/{create-DkFCjBp3.mjs → create-vN4sgCHU.mjs} +1 -1
- package/dist/{csv-LP7sE-CS.mjs → csv-D50rzoTk.mjs} +2 -2
- package/dist/{current-task-DhgwtGN3.mjs → current-task-CpPUJYbQ.mjs} +1 -1
- package/dist/{dashboard-CR97_zXn.mjs → dashboard-CrD7w0mE.mjs} +11 -11
- package/dist/{data-action-C4jE-RLb.mjs → data-action-p-8TbHAj.mjs} +7 -7
- package/dist/{data-app-BlBvvRzC.mjs → data-app-3cmb-x-I.mjs} +9 -9
- package/dist/{data-app-project-DjDDWgUF.mjs → data-app-project-DUCJcvfJ.mjs} +1 -1
- package/dist/{db-D8mPRqZc.mjs → db-BO1aJAAn.mjs} +7 -7
- package/dist/{delete-DWTqIlbr.mjs → delete-8qsotOGB.mjs} +1 -1
- package/dist/{delete-DaqzPLcG.mjs → delete-BSCnAB2g.mjs} +1 -1
- package/dist/{delete-DuaJ8PUI.mjs → delete-ByYgGnoo.mjs} +1 -1
- package/dist/{delete-CaaPrNOf.mjs → delete-CTtToAYO.mjs} +1 -1
- package/dist/{delete-CuyGTe0i.mjs → delete-DHJ3ea0o.mjs} +1 -1
- package/dist/{delete-8k7oYDFr.mjs → delete-DU-Kinm4.mjs} +1 -1
- package/dist/{delete-DC-DEYSq.mjs → delete-DU1K-Cy4.mjs} +1 -1
- package/dist/{delete-ZjLpkwgx.mjs → delete-DXL1orAc.mjs} +1 -1
- package/dist/{delete-B1SbEVIc.mjs → delete-DuVEKGA5.mjs} +1 -1
- package/dist/{delete-CqyBkMCd.mjs → delete-DwNkDTga.mjs} +1 -1
- package/dist/{delete-table-CnGv1gx9.mjs → delete-table-RAznoioi.mjs} +1 -1
- package/dist/{dependencies-D6SNdLW8.mjs → dependencies-CKT460jf.mjs} +1 -1
- package/dist/{dependency-Bbg9x1V9.mjs → dependency-B1wYuRR1.mjs} +5 -5
- package/dist/{dependents-BizQb14Q.mjs → dependents-D85CaupB.mjs} +1 -1
- package/dist/{dirty-BHwdHOEj.mjs → dirty-BnuuGVxz.mjs} +1 -1
- package/dist/{discard-values-BWlh2ce8.mjs → discard-values-CXyBp5pq.mjs} +1 -1
- package/dist/{document-B6254tue.mjs → document-BHXXSx3u.mjs} +6 -6
- package/dist/{download-D2wEAgi_.mjs → download--RQk3dyK.mjs} +1 -1
- package/dist/{eid-KtWIPUCC.mjs → eid-BwhUajT8.mjs} +1 -1
- package/dist/{entry-flags-DLS6r8Vf.mjs → entry-flags-DS_MMJbV.mjs} +1 -1
- package/dist/{events-B8yMqrrD.mjs → events-DuHSrJuz.mjs} +1 -1
- package/dist/{execute-Bebvab7D.mjs → execute-BjWeMJ0l.mjs} +1 -1
- package/dist/{export-BNj3RvAl.mjs → export-C_G6D1MF.mjs} +2 -2
- package/dist/{export-preflight-F3OapAD5.mjs → export-preflight-DeqCCYP0.mjs} +1 -1
- package/dist/{field-DQAcCjXr.mjs → field-C02nW-20.mjs} +7 -7
- package/dist/{fields-BkAS_wIA.mjs → fields-Ds2PnxA7.mjs} +1 -1
- package/dist/{fks--SaqvPw1.mjs → fks-CCKTcQ4c.mjs} +1 -1
- package/dist/{get-B2nBYYCw.mjs → get-8gu6wblt.mjs} +1 -1
- package/dist/{get-uHs9Ve-4.mjs → get-BB0b96ox.mjs} +1 -1
- package/dist/{get-iOs1ci6x.mjs → get-BOcwk9jz.mjs} +1 -1
- package/dist/{get-CTTKQDr7.mjs → get-B_5Y65cZ.mjs} +1 -1
- package/dist/{get-CM9IOr82.mjs → get-B_Vz5OMY.mjs} +1 -1
- package/dist/{get-f2km9wsq.mjs → get-C6qjCvoM.mjs} +1 -1
- package/dist/{get-B1uiZyyi.mjs → get-CDA-g71Z.mjs} +1 -1
- package/dist/{get-BSKpQJVB.mjs → get-CGrfQxXy.mjs} +1 -1
- package/dist/{get-Boql3_0n.mjs → get-CJEE2ApL.mjs} +1 -1
- package/dist/{get-Cdcj1c9U.mjs → get-CTwU2SwT.mjs} +1 -1
- package/dist/{get-gGSl7Se4.mjs → get-D3k4Pyfn.mjs} +1 -1
- package/dist/{get-CWDz6eV2.mjs → get-D3kYRX7B.mjs} +1 -1
- package/dist/{get-C_hatP_z.mjs → get-D7Uq4t19.mjs} +1 -1
- package/dist/{get-CGPxAoow.mjs → get-DSQSwjDw.mjs} +1 -1
- package/dist/{get-B1S1kW2N.mjs → get-DVctVDj6.mjs} +1 -1
- package/dist/{get-De6qpuzO.mjs → get-DXH0zRv1.mjs} +1 -1
- package/dist/{get-BseHija1.mjs → get-D_eGmu67.mjs} +1 -1
- package/dist/{get-C9VumVZ3.mjs → get-DkEOLIF5.mjs} +2 -2
- package/dist/{get-VpGfaL7c.mjs → get-Du0KCtaC.mjs} +1 -1
- package/dist/{get-BjgB5l7X.mjs → get-R4_vq3U9.mjs} +1 -1
- package/dist/{get-run-CHup8cMl.mjs → get-run-Ds50O2Rn.mjs} +1 -1
- package/dist/{get-CiLYhFjU.mjs → get-v_BtTCdl.mjs} +1 -1
- package/dist/{get-CU1zKfBS.mjs → get-xJTVgvSu.mjs} +1 -1
- package/dist/git-sync-Dje-mnMh.mjs +29 -0
- package/dist/{glossary-BVxRpD7o.mjs → glossary-TBjFyeRN.mjs} +4 -4
- package/dist/{graph-B7SlzpkC.mjs → graph-DeGkHvI5.mjs} +1 -1
- package/dist/{has-remote-changes-DZq7q2Wk.mjs → has-remote-changes-DUCn8d5k.mjs} +1 -1
- package/dist/{import-DKZF0kMU.mjs → import-Bnun0H8L.mjs} +2 -2
- package/dist/{is-dirty-haRLODo1.mjs → is-dirty-BRdzj548.mjs} +1 -1
- package/dist/{items-BGWE5hLl.mjs → items-BmFznkYw.mjs} +1 -1
- package/dist/{library-e3aiJ1Yb.mjs → library-Cy8n_GoQ.mjs} +4 -4
- package/dist/{list-BNel4hYs.mjs → list-B8FE0mi7.mjs} +1 -1
- package/dist/{list-DUCxqhtn.mjs → list-B8WxIHZh.mjs} +1 -1
- package/dist/{list-DJyIkrY1.mjs → list-BJaTl4Z3.mjs} +3 -3
- package/dist/{list-B9yhUzCc.mjs → list-BXgbS3xg.mjs} +1 -1
- package/dist/{list-DcXqKZyg.mjs → list-CgiBw3H-.mjs} +1 -1
- package/dist/{list-DDt1iLXj.mjs → list-ChPsUv0M.mjs} +1 -1
- package/dist/{list-Dvf1iB8r.mjs → list-CnQnHNwI.mjs} +1 -1
- package/dist/{list-D0ASRA_6.mjs → list-CucyGz_M.mjs} +1 -1
- package/dist/{list-HI7Mpoy-.mjs → list-Cv9U6hop.mjs} +1 -1
- package/dist/{list-P7FnSsbZ.mjs → list-D7oLTX1F.mjs} +1 -1
- package/dist/{list-gcDxZ7Th.mjs → list-DCooGGd-.mjs} +1 -1
- package/dist/{list-D_8GeDG-.mjs → list-DQNmzmbE.mjs} +1 -1
- package/dist/{list-COPGHkWL.mjs → list-DVdfoOmD.mjs} +1 -1
- package/dist/{list-CNiCM1NL.mjs → list-DkJsUigU.mjs} +1 -1
- package/dist/{list-CsXdnNyp.mjs → list-DqvwXEY3.mjs} +2 -2
- package/dist/{list-DFxfpa4W.mjs → list-DwA83Hut.mjs} +1 -1
- package/dist/{list-DAa4EWlv.mjs → list-Hkl1mEcn.mjs} +1 -1
- package/dist/{list-DednUvr3.mjs → list-emgvzTcQ.mjs} +1 -1
- package/dist/{list-Bbc8VYDi.mjs → list-hrR_sluM.mjs} +1 -1
- package/dist/{list-BiIZdUoN.mjs → list-jPZgEqWH.mjs} +1 -1
- package/dist/{list-C-AnwSRP.mjs → list-jfnzEgFg.mjs} +1 -1
- package/dist/{list-OUSeeuXb.mjs → list-uDe8e-8m.mjs} +1 -1
- package/dist/{list-DFuydMdV.mjs → list-zIJcjZwa.mjs} +1 -1
- package/dist/{login-APHXId1p.mjs → login-DMpRrZoJ.mjs} +31 -14
- package/dist/{logout-V0pxj6AM.mjs → logout-DEB_Rs3z.mjs} +1 -1
- package/dist/{measure-DnGWkKyx.mjs → measure-Dop8G1p3.mjs} +5 -5
- package/dist/{parameter-values-DfZSEK3O.mjs → parameter-values-CuNu1kDf.mjs} +1 -1
- package/dist/{path-Bni-pnKS.mjs → path-6xIAWlup.mjs} +2 -2
- package/dist/{poll-vxN__4cz.mjs → poll-uailHW3t.mjs} +1 -1
- package/dist/{publish-DkYn86ak.mjs → publish-D7tndpBc.mjs} +9 -3
- package/dist/{query-gHeYfWj_.mjs → query-C_6GZwbJ.mjs} +1 -1
- package/dist/{query-CZbI4Rlv.mjs → query-Do1Ms0k9.mjs} +1 -1
- package/dist/{remapping-hcWkFQsx.mjs → remapping-B5Z3Ustf.mjs} +1 -1
- package/dist/{remove-collection-Qne5ww6M.mjs → remove-collection-p9OgcXQ0.mjs} +1 -1
- package/dist/{render-d1-sCPn_.mjs → render-C3ygE5nO.mjs} +1 -1
- package/dist/{replace-DoU0IFGd.mjs → replace-D3I8Cb6E.mjs} +2 -2
- package/dist/{requirement-check-BoVSK1uK.mjs → requirement-check-DWGbJZUM.mjs} +1 -1
- package/dist/{rescan-values-COzM86P5.mjs → rescan-values-DgUwDmwZ.mjs} +1 -1
- package/dist/{rescan-values-s82n_You.mjs → rescan-values-DwYuiNzi.mjs} +1 -1
- package/dist/{run-JYNbEO_V.mjs → run-BtRi59Hd.mjs} +2 -2
- package/dist/{run-Q7fHux1F.mjs → run-Dr-DsQVO.mjs} +2 -2
- package/dist/{run-Bwj4Uuxk.mjs → run-qAs_RthF.mjs} +1 -1
- package/dist/{runs-GQD6FO2k.mjs → runs-hulvKxUw.mjs} +1 -1
- package/dist/{runtime-iIsqiOwO.mjs → runtime-CEAFobLj.mjs} +77 -39
- package/dist/{scaffold-CJo9l-2p.mjs → scaffold-CO9Oea2N.mjs} +3 -3
- package/dist/{schema-2JhmK8FM.mjs → schema-D5AhDYTD.mjs} +1 -1
- package/dist/{schema-tables-CarGLayY.mjs → schema-tables-KIsDvvGs.mjs} +1 -1
- package/dist/{schemas-oSjtuQ4G.mjs → schemas-DuGltR33.mjs} +1 -1
- package/dist/{search-CvGEL2h-.mjs → search-BJPNMvnK.mjs} +1 -1
- package/dist/{search-Ca0sIr28.mjs → search-CM3ybv8O.mjs} +1 -1
- package/dist/{segment-BJCEJwNY.mjs → segment-BROyKyC3.mjs} +5 -5
- package/dist/{send-B4nZI6CU.mjs → send-cSr60J2Z.mjs} +1 -1
- package/dist/{set-BjMZCdN8.mjs → set-DpBA6eOn.mjs} +1 -1
- package/dist/{set-active-CWDdv3kN.mjs → set-active-DaGUZCbh.mjs} +1 -1
- package/dist/{set-bundle-C2uk4jdt.mjs → set-bundle-CgJuQ3fe.mjs} +5 -5
- package/dist/{set-data-actions-lWl05ekf.mjs → set-data-actions-CyuKhCDs.mjs} +1 -1
- package/dist/{set-enabled-CPhw1AX4.mjs → set-enabled-DxxlZePU.mjs} +4 -4
- package/dist/{set-sensitivity-B7WI5BJC.mjs → set-sensitivity-BBkuW5wQ.mjs} +1 -1
- package/dist/{setting-BvPpFjJT.mjs → setting-BixEhGR2.mjs} +3 -3
- package/dist/{setup-DPRa8Uxm.mjs → setup-DqAjBhZz.mjs} +1 -1
- package/dist/{skills-BCivFuuZ.mjs → skills-ByZWUsPC.mjs} +3 -3
- package/dist/{skills-BY3MCR8i.mjs → skills-CPNaSE_d.mjs} +1 -1
- package/dist/{snippet-BcN1UwoS.mjs → snippet-CK5QjPXs.mjs} +5 -5
- package/dist/{stash-leoW1fby.mjs → stash-BMitlOt0.mjs} +2 -2
- package/dist/{status-BezD_K-g.mjs → status-4ewKKM1J.mjs} +1 -1
- package/dist/{status-AA4APlwZ.mjs → status-BxYGT5I4.mjs} +2 -2
- package/dist/{subscription-BDukZFlC.mjs → subscription-9WV3hwAq.mjs} +5 -5
- package/dist/{subscriptions-CU4E_p7B.mjs → subscriptions-EVIRobQM.mjs} +2 -2
- package/dist/{summary-BFspP71W.mjs → summary-CaWLpvcZ.mjs} +1 -1
- package/dist/{sync-schema-BhRhsm8Y.mjs → sync-schema-BntqB-68.mjs} +2 -2
- package/dist/{sync-schema-BtjC-PNY.mjs → sync-schema-Dt0zekZR.mjs} +1 -1
- package/dist/table-BAOSPOlO.mjs +26 -0
- package/dist/{timeline-Cr5d4Oer.mjs → timeline-CyIVLhsz.mjs} +7 -7
- package/dist/{timeline-event-BiYDbW3r.mjs → timeline-event-CaXRyGXH.mjs} +5 -5
- package/dist/transform-C8ZiOTWq.mjs +28 -0
- package/dist/transform-job-BKX10IUY.mjs +22 -0
- package/dist/{transform-tag-DQXOPhmt.mjs → transform-tag-QBmEYxZi.mjs} +4 -4
- package/dist/{transform-test-wmAjyaka.mjs → transform-test-DMShXj--.mjs} +6 -6
- package/dist/{transforms-DcXL4Dox.mjs → transforms-yuckjEH-.mjs} +1 -1
- package/dist/{transport-DZSxmmtY.mjs → transport-3xv524C_.mjs} +2 -3
- package/dist/{tree-DrYYCdXP.mjs → tree-DhZWC6AW.mjs} +1 -1
- package/dist/{typed-schema-DEzmTY3J.mjs → typed-schema-9umakTr7.mjs} +2 -2
- package/dist/{unpublish-D8hmulCx.mjs → unpublish-BmrZNEcs.mjs} +1 -1
- package/dist/{unreferenced-C3CqO3tu.mjs → unreferenced-C0dYogu7.mjs} +1 -1
- package/dist/{update-4sOfpwpv.mjs → update-B0j7R5BU.mjs} +1 -1
- package/dist/{update-4TDRNrV-.mjs → update-BIDjJnEh.mjs} +1 -1
- package/dist/{update-BVz0oIwS.mjs → update-BsCY9WoI.mjs} +1 -1
- package/dist/{update-B21GAnzT.mjs → update-BtyHjKV6.mjs} +1 -1
- package/dist/{update-LlJM4tUd.mjs → update-CqqZHGBZ.mjs} +1 -1
- package/dist/{update-BxRFktpB.mjs → update-CsYMNm1n.mjs} +1 -1
- package/dist/{update-3lRE8G9k.mjs → update-CzCc5og7.mjs} +1 -1
- package/dist/{update-DvGIaZdl.mjs → update-D4s8mpef.mjs} +1 -1
- package/dist/{update-l4WRN6Jh.mjs → update-DIsbIcWv.mjs} +1 -1
- package/dist/{update-Zv7PP8nl.mjs → update-DRH78xMc.mjs} +1 -1
- package/dist/{update-Ch6AAOeh.mjs → update-DTvdH8rF.mjs} +1 -1
- package/dist/{update-DmMHHn75.mjs → update-DVEqN-uO.mjs} +1 -1
- package/dist/{update-CEDMvgJI.mjs → update-D_9HdXGt.mjs} +1 -1
- package/dist/{update-CcNYCalv.mjs → update-DoZZ-pii.mjs} +1 -1
- package/dist/{update-sma1ZRm2.mjs → update-Dr66Dv3x.mjs} +3 -3
- package/dist/{update-CctMr2T1.mjs → update-DuJ7Pu5t.mjs} +2 -2
- package/dist/{update-CtuLA42g.mjs → update-Gv4cQsS3.mjs} +1 -1
- package/dist/{update-dashcard-BijqiYQd.mjs → update-dashcard-fWxyfSG5.mjs} +1 -1
- package/dist/{update-7iXRB23T2.mjs → update-eL6rSQvo2.mjs} +1 -1
- package/dist/{update-552UGPAG.mjs → update-nZkZHbL5.mjs} +1 -1
- package/dist/{update-DVD77mVR.mjs → update-zKgO1dbJ.mjs} +1 -1
- package/dist/{upgrade-TzILOkiM.mjs → upgrade-PIUDxb6V.mjs} +1 -2
- package/dist/{upload-Do-kOGtc.mjs → upload-B6S0Vqgn.mjs} +2 -2
- package/dist/{upload-B37bUVl_.mjs → upload-Dzn5OAbv.mjs} +3 -3
- package/dist/{upload-CdiDKe69.mjs → upload-KuHgzGJU.mjs} +1 -1
- package/dist/{uuid-Dqq2WfAT.mjs → uuid-BPr2deuu.mjs} +1 -1
- package/dist/{values-CtY5zv0m.mjs → values-DHvfVT9h.mjs} +1 -1
- package/dist/{verify-DBTlWx-S.mjs → verify-CvGdvC7R.mjs} +1 -1
- package/dist/{verify-DJ7fGyLL.mjs → verify-D9i63gmK.mjs} +2 -2
- package/dist/{verify-BiB8jzXB.mjs → verify-DS0REVed.mjs} +1 -1
- package/dist/{wait-DEYagfq4.mjs → wait-DrOL01Y_.mjs} +3 -3
- package/dist/{wait-flags-C3cu_O0w.mjs → wait-flags-DT1zA69Z.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +5 -2
- package/skill-data/data-app/SKILL.md +16 -17
- package/skill-data/data-app/template/README.md +7 -3
- package/skill-data/data-app/template/gitignore +1 -1
- package/skill-data/data-app/template/package.json +1 -0
- package/skill-data/data-app-actions/SKILL.md +3 -0
- package/skill-data/data-app-data/SKILL.md +6 -6
- package/skill-data/data-app-filters/SKILL.md +12 -4
- package/skill-data/data-app-ui/SKILL.md +11 -11
- package/skill-data/data-workflow/references/reusable-definitions.md +2 -2
- package/skill-data/git-sync/SKILL.md +13 -11
- package/skill-data/mbql/SKILL.md +2 -2
- package/dist/git-sync-Czena0TW.mjs +0 -29
- package/dist/signal-BNUlQjpc.mjs +0 -25
- package/dist/table-Dzp1uANs.mjs +0 -26
- package/dist/transform-C-0nV5Et.mjs +0 -28
- package/dist/transform-job-B9MPk7S5.mjs +0 -22
|
@@ -11,11 +11,11 @@ var measure_default = defineCommandGroup({
|
|
|
11
11
|
purpose: "define reusable measures"
|
|
12
12
|
}],
|
|
13
13
|
subCommands: {
|
|
14
|
-
list: () => import("./list-
|
|
15
|
-
get: () => import("./get-
|
|
16
|
-
create: () => import("./create-
|
|
17
|
-
update: () => import("./update-
|
|
18
|
-
archive: () => import("./archive-
|
|
14
|
+
list: () => import("./list-B8WxIHZh.mjs").then((mod) => mod.default),
|
|
15
|
+
get: () => import("./get-B_5Y65cZ.mjs").then((mod) => mod.default),
|
|
16
|
+
create: () => import("./create-B5h_621T.mjs").then((mod) => mod.default),
|
|
17
|
+
update: () => import("./update-CzCc5og7.mjs").then((mod) => mod.default),
|
|
18
|
+
archive: () => import("./archive-BofgzTAr.mjs").then((mod) => mod.default)
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { X as parseJson, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
5
|
import { a as ParameterValuesCompact, i as ParameterValues } from "./parameter-Bucz3cLJ.mjs";
|
|
6
6
|
import { l as DashboardParameterConstraints } from "./dashboard-Cwsf-e9T.mjs";
|
|
7
7
|
//#region src/output/views/parameter.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { gt as listEnvelopeSchema, lt as outputFlags, s as renderList, st as listFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
import { n as windowList } from "./window-D1w7B0vh.mjs";
|
|
4
|
-
import { i as loadVisibleSkills, n as findSkillByName, r as loadAllSkills } from "./skills-
|
|
4
|
+
import { i as loadVisibleSkills, n as findSkillByName, r as loadAllSkills } from "./skills-CPNaSE_d.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/skills/path.ts
|
|
7
7
|
const SkillPath = z.object({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as TimeoutError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { U as combineAborts, W as throwIfAborted } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
import { setTimeout } from "node:timers/promises";
|
|
4
4
|
//#region ../client/src/poll.ts
|
|
5
5
|
const DEFAULT_INTERVAL_MS = 2e3;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as errorMessage } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { T as warn, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { a as CollectionCompact, r as Collection } from "./collection-Cz2qLX2m.mjs";
|
|
5
5
|
import { i as tableSelectorFlags, n as parseTableSelectors } from "./table-selector-flags-BpFFoSaT.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
@@ -36,10 +36,11 @@ var publish_default = defineMetabaseCommand({
|
|
|
36
36
|
name: "publish",
|
|
37
37
|
description: "Publish tables (and their upstream dependencies) to the Library Data collection"
|
|
38
38
|
},
|
|
39
|
-
details: "Sets each selected table and every upstream table it depends on into the Library Data collection, so they appear first in data pickers and rank up in search. The Library Data collection is resolved automatically (and the Library is created if it doesn't exist yet). Select with --table-ids, --db-ids, or --schemas (each schema id is \"<db-id>:<schema>\", e.g. 1:public); the filters are combined. Publishing does not add the Library
|
|
39
|
+
details: "Sets each selected table and every upstream table it depends on into the Library Data collection, so they appear first in data pickers and rank up in search. The Library Data collection is resolved automatically (and the Library is created if it doesn't exist yet). Select with --table-ids, --db-ids, or --schemas (each schema id is \"<db-id>:<schema>\", e.g. 1:public); the filters are combined. Publishing does not add the Library to the git-sync scope — on an instance with remote sync configured, run `mb git-sync add-collection <library-id>` with the Library root's id, so exports carry the published tables' metadata and the rest of the Library.",
|
|
40
40
|
requires: [
|
|
41
41
|
"library.ensureDataCollectionId",
|
|
42
42
|
"library.publishTables",
|
|
43
|
+
"collection.get",
|
|
43
44
|
"gitSync.remoteUrl"
|
|
44
45
|
],
|
|
45
46
|
args: {
|
|
@@ -64,9 +65,14 @@ var publish_default = defineMetabaseCommand({
|
|
|
64
65
|
});
|
|
65
66
|
const result = { target_collection: target };
|
|
66
67
|
renderSummary(result, libraryPublishResultView, summaryLine(result), ctx);
|
|
67
|
-
|
|
68
|
+
const rootId = libraryRootId(target);
|
|
69
|
+
await warnIfOutsideSyncScope(client, rootId === null ? target : await client.collection.get(rootId).catch(() => target));
|
|
68
70
|
}
|
|
69
71
|
});
|
|
72
|
+
function libraryRootId(data) {
|
|
73
|
+
const rootId = data?.location?.match(/^\/(\d+)\/$/)?.[1];
|
|
74
|
+
return rootId === void 0 ? null : Number(rootId);
|
|
75
|
+
}
|
|
70
76
|
function summaryLine(result) {
|
|
71
77
|
const collection = result.target_collection;
|
|
72
78
|
if (collection === null) return "Published tables to the Library.";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { X as parseJson, ht as parseOptionalInteger, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
5
|
import { o as CardQueryResult } from "./card-BJRZ5D5Q.mjs";
|
|
6
6
|
import { t as cardQueryView } from "./card-VipF12MJ.mjs";
|
|
7
7
|
import { i as formatQueryResult, n as exportFlags, r as readExportRequest, t as assertStreamedOutput } from "./export-flags-iXfEILf7.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { K as HttpError, X as parseJson, d as serializeJson, f as writeJson, it as connectionFlags, l as renderSummary, lt as outputFlags, m as MALFORMED_CELL, o as renderItem, q as chainRequestFailure, ut as profileFlag } from "./cli.mjs";
|
|
3
|
-
import { n as readJsonBody, t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { n as readJsonBody, t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
5
5
|
import { o as CardQueryResult } from "./card-BJRZ5D5Q.mjs";
|
|
6
6
|
import { n as Field } from "./field-C2qOViFZ.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h as formatScalar, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { n as parseText } from "./parse-text-C4LYzIFa.mjs";
|
|
5
5
|
import { i as fieldRemappingMissView, r as fieldRemappingMatchView, t as FieldRemappingResult, u as toValueLabel } from "./field-CT4r6b92.mjs";
|
|
6
6
|
//#region src/commands/field/remapping.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { u as SyncSettingsUpdateResult } from "./git-sync-DP4wQFzm.mjs";
|
|
5
5
|
import { c as syncSettingsUpdateView } from "./git-sync-D1aKczo6.mjs";
|
|
6
6
|
//#region src/commands/git-sync/remove-collection.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { x as KNOWN_RANGE } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import "./cli.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { tt as Skew } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
//#region src/commands/auth/render.ts
|
|
5
5
|
const SKEW_LABEL = Object.freeze({
|
|
6
6
|
supported: "supported",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { n as UploadUpdateResult } from "./upload-DAtxBBms.mjs";
|
|
5
|
-
import { n as requireUploadFilePath, t as readCsvFile } from "./upload-
|
|
5
|
+
import { n as requireUploadFilePath, t as readCsvFile } from "./upload-KuHgzGJU.mjs";
|
|
6
6
|
import { n as uploadUpdateResultView } from "./upload-C3z5ZaXA.mjs";
|
|
7
7
|
//#region src/commands/upload/replace.ts
|
|
8
8
|
var replace_default = defineMetabaseCommand({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { B as FEATURE_RULES, L as missingTokenFeatureMessage, R as versionTooOldMessage } from "./cli.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { it as describeVersion, rt as featureGap } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
//#region ../client/src/version/requirement-check.ts
|
|
4
4
|
/** The first of `features` the profile lacks, or `null` when it has every one. */
|
|
5
5
|
function checkFeatures(features, profile) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { p as TableFieldValuesResult } from "./table-hgrX1i-R.mjs";
|
|
5
5
|
import { i as tableFieldValuesResultView } from "./table-BNA9Or05.mjs";
|
|
6
6
|
//#region src/commands/table/rescan-values.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { a as DatabaseSyncResult } from "./database-C5ucihp3.mjs";
|
|
5
5
|
import { n as databaseSyncResultView } from "./database-u_spHEa0.mjs";
|
|
6
6
|
//#region src/commands/db/rescan-values.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { s as FailedResultError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
5
|
import { c as TransformRunResult, p as isTransformRunFailed } from "./transform-B62craFM.mjs";
|
|
6
|
-
import { i as waitFlags, n as parseWaitFlags } from "./wait-flags-
|
|
6
|
+
import { i as waitFlags, n as parseWaitFlags } from "./wait-flags-DT1zA69Z.mjs";
|
|
7
7
|
//#region src/commands/transform/run.ts
|
|
8
8
|
const transformRunResultView = {
|
|
9
9
|
compactPick: TransformRunResult,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { o as ConfigError, s as FailedResultError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { it as connectionFlags, lt as outputFlags, t as interruptSignal, u as renderSummaryWithinMaxBytes, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
5
|
-
import { t as DEFAULT_TIMEOUT_MS } from "./transport-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
|
+
import { t as DEFAULT_TIMEOUT_MS } from "./transport-3xv524C_.mjs";
|
|
6
6
|
import { i as TransformTestRunResult } from "./transform-test-Bexa_K89.mjs";
|
|
7
7
|
import { t as transformTestRunResultView } from "./transform-test-C49ZTK7M.mjs";
|
|
8
8
|
//#region src/commands/transform-test/run.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { a as TransformJobRunResult } from "./transform-job-CDIb3B9o.mjs";
|
|
5
5
|
//#region src/commands/transform-job/run.ts
|
|
6
6
|
const transformJobRunResultView = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { t as collectForOutput } from "./window-D1w7B0vh.mjs";
|
|
5
5
|
import { s as TransformRunCompact } from "./transform-B62craFM.mjs";
|
|
6
6
|
import { t as transformRunView } from "./transform-DKPtUV54.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as ResponseShapeError, g as errorMessage, h as ValidationError, o as ConfigError, p as TimeoutError, u as NetworkError, v as isFileNotFoundError, x as KNOWN_RANGE, y as isNonInterruptFailure } from "./predicates-0C0TsWcJ.mjs";
|
|
1
|
+
import { f as ResponseShapeError, g as errorMessage, h as ValidationError, i as AbortError, l as MetabaseError, o as ConfigError, p as TimeoutError, u as NetworkError, v as isFileNotFoundError, x as KNOWN_RANGE, y as isNonInterruptFailure } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { B as FEATURE_RULES, C as preflightSkippedNotice, D as ENV_DISABLE_KEYRING, E as ENV_API_KEY, G as ruleGap, H as evaluateFeatures, J as isRetryableStatus, K as HttpError, M as consumeLegacyEnvWarnings, N as readEnv, P as ProfileRefreshedError, Q as parseJsonResult, T as warn, V as Features, X as parseJson, Y as JSON_CONTENT_TYPE, a as reportError, ft as resolveCommonFlags, i as methodRequirements, j as ENV_URL, pt as resolveOutputFormat, rt as version, t as interruptSignal, tt as setMetabaseAugment, vt as assertArgv, w as preflightUncheckedNotice, yt as givenFlagKeys } from "./cli.mjs";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -292,6 +292,34 @@ function oauthCredentialFromTokens(tokens, refreshToken, clientId, nowMs) {
|
|
|
292
292
|
};
|
|
293
293
|
}
|
|
294
294
|
//#endregion
|
|
295
|
+
//#region ../client/src/signal.ts
|
|
296
|
+
function combineAborts(...signals) {
|
|
297
|
+
return AbortSignal.any(signals.filter((signal) => signal !== void 0));
|
|
298
|
+
}
|
|
299
|
+
function throwIfAborted(...signals) {
|
|
300
|
+
for (const signal of signals) if (signal?.aborted) throw abortReason(signal);
|
|
301
|
+
}
|
|
302
|
+
function abortReason(signal) {
|
|
303
|
+
const reason = signal.reason;
|
|
304
|
+
if (reason instanceof MetabaseError) return reason;
|
|
305
|
+
if (reason instanceof Error || typeof reason === "string") return new AbortError(errorMessage(reason) || "aborted");
|
|
306
|
+
return new AbortError("aborted");
|
|
307
|
+
}
|
|
308
|
+
function untilAborted(promise, signal) {
|
|
309
|
+
if (signal === void 0) return promise;
|
|
310
|
+
throwIfAborted(signal);
|
|
311
|
+
return new Promise((resolve, reject) => {
|
|
312
|
+
const stopWatching = whenAborted(signal, reject);
|
|
313
|
+
promise.then(resolve, reject).finally(stopWatching);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
function whenAborted(signal, onAbort) {
|
|
317
|
+
if (signal === void 0) return () => void 0;
|
|
318
|
+
const listener = () => onAbort(abortReason(signal));
|
|
319
|
+
signal.addEventListener("abort", listener, { once: true });
|
|
320
|
+
return () => signal.removeEventListener("abort", listener);
|
|
321
|
+
}
|
|
322
|
+
//#endregion
|
|
295
323
|
//#region ../client/src/version/probe.ts
|
|
296
324
|
const PROBE_PATH = "/api/session/properties";
|
|
297
325
|
async function probeServer(client, opts = {}) {
|
|
@@ -391,9 +419,10 @@ async function oauthFetch(request) {
|
|
|
391
419
|
"user-agent": request.userAgent
|
|
392
420
|
},
|
|
393
421
|
...request.body !== void 0 ? { body: request.body } : {},
|
|
394
|
-
signal: timeoutSignal
|
|
422
|
+
signal: combineAborts(timeoutSignal, request.signal)
|
|
395
423
|
});
|
|
396
424
|
} catch (error) {
|
|
425
|
+
throwIfAborted(request.signal);
|
|
397
426
|
if (timeoutSignal.aborted) throw new TimeoutError(`OAuth request timed out after ${OAUTH_TIMEOUT_MS}ms`, {
|
|
398
427
|
kind: "http",
|
|
399
428
|
method: request.method,
|
|
@@ -423,24 +452,26 @@ const OAuthErrorBody = z.object({
|
|
|
423
452
|
error: z.string(),
|
|
424
453
|
error_description: z.string().optional()
|
|
425
454
|
}).loose();
|
|
426
|
-
async function readJson(response, schema, source) {
|
|
455
|
+
async function readJson(response, schema, source, signal) {
|
|
427
456
|
let raw;
|
|
428
457
|
try {
|
|
429
458
|
raw = await response.json();
|
|
430
459
|
} catch (error) {
|
|
460
|
+
throwIfAborted(signal);
|
|
431
461
|
throw new ConfigError(`${source}: invalid JSON response (${errorMessage(error)})`);
|
|
432
462
|
}
|
|
433
463
|
const parsed = schema.safeParse(raw);
|
|
434
464
|
if (!parsed.success) throw new ConfigError(`${source}: unexpected response shape`);
|
|
435
465
|
return parsed.data;
|
|
436
466
|
}
|
|
437
|
-
async function failure(response, source,
|
|
467
|
+
async function failure(response, source, request) {
|
|
438
468
|
const rawBody = await response.text().catch(() => "");
|
|
469
|
+
throwIfAborted(request.signal);
|
|
439
470
|
if (isRetryableStatus(response.status)) return new HttpError({
|
|
440
471
|
status: response.status,
|
|
441
472
|
statusText: response.statusText,
|
|
442
|
-
method,
|
|
443
|
-
url,
|
|
473
|
+
method: request.method,
|
|
474
|
+
url: request.url,
|
|
444
475
|
responseHeaders: response.headers,
|
|
445
476
|
rawBody
|
|
446
477
|
});
|
|
@@ -451,8 +482,8 @@ async function failure(response, source, method, url) {
|
|
|
451
482
|
}
|
|
452
483
|
return new ConfigError(`${source} failed (${response.status})`);
|
|
453
484
|
}
|
|
454
|
-
async function postForm(url, userAgent, params, schema, source) {
|
|
455
|
-
const
|
|
485
|
+
async function postForm(url, userAgent, params, schema, source, signal) {
|
|
486
|
+
const request = {
|
|
456
487
|
url,
|
|
457
488
|
method: "POST",
|
|
458
489
|
userAgent,
|
|
@@ -460,25 +491,28 @@ async function postForm(url, userAgent, params, schema, source) {
|
|
|
460
491
|
"content-type": FORM_CONTENT_TYPE,
|
|
461
492
|
accept: JSON_CONTENT_TYPE
|
|
462
493
|
},
|
|
463
|
-
body: new URLSearchParams(params)
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
494
|
+
body: new URLSearchParams(params),
|
|
495
|
+
signal
|
|
496
|
+
};
|
|
497
|
+
const response = await oauthFetch(request);
|
|
498
|
+
if (!response.ok) throw await failure(response, source, request);
|
|
499
|
+
return readJson(response, schema, source, signal);
|
|
467
500
|
}
|
|
468
501
|
const OAUTH_UNSUPPORTED_MESSAGE = "this Metabase does not support OAuth login (requires Metabase v63 or newer)";
|
|
469
|
-
async function fetchMetadata(baseUrl, userAgent) {
|
|
502
|
+
async function fetchMetadata(baseUrl, userAgent, signal) {
|
|
470
503
|
const response = await oauthFetch({
|
|
471
504
|
url: `${baseUrl}${DISCOVERY_PATH}`,
|
|
472
505
|
method: "GET",
|
|
473
506
|
userAgent,
|
|
474
|
-
headers: { accept: JSON_CONTENT_TYPE }
|
|
507
|
+
headers: { accept: JSON_CONTENT_TYPE },
|
|
508
|
+
signal
|
|
475
509
|
});
|
|
476
510
|
const contentType = response.headers.get("content-type") ?? "";
|
|
477
511
|
if (!response.ok || !contentType.includes("json")) {
|
|
478
512
|
await response.body?.cancel().catch(() => void 0);
|
|
479
513
|
return null;
|
|
480
514
|
}
|
|
481
|
-
return readJson(response, OAuthServerMetadata, "OAuth discovery");
|
|
515
|
+
return readJson(response, OAuthServerMetadata, "OAuth discovery", signal);
|
|
482
516
|
}
|
|
483
517
|
function pinEndpoints(metadata, baseUrl) {
|
|
484
518
|
assertEndpointOrigin(metadata.issuer, baseUrl, "issuer");
|
|
@@ -488,25 +522,26 @@ function pinEndpoints(metadata, baseUrl) {
|
|
|
488
522
|
if (metadata.revocation_endpoint !== void 0) assertEndpointOrigin(metadata.revocation_endpoint, baseUrl, "revocation endpoint");
|
|
489
523
|
return metadata;
|
|
490
524
|
}
|
|
491
|
-
async function grantsFullAccessScope(metadata, baseUrl, userAgent) {
|
|
525
|
+
async function grantsFullAccessScope(metadata, baseUrl, userAgent, signal) {
|
|
492
526
|
if (metadata.scopes_supported?.includes("mb:full") === true) return true;
|
|
493
|
-
const
|
|
494
|
-
|
|
495
|
-
url,
|
|
527
|
+
const request = {
|
|
528
|
+
url: `${baseUrl}${PROBE_PATH}`,
|
|
496
529
|
method: "GET",
|
|
497
530
|
userAgent,
|
|
498
|
-
headers: { accept: JSON_CONTENT_TYPE }
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
531
|
+
headers: { accept: JSON_CONTENT_TYPE },
|
|
532
|
+
signal
|
|
533
|
+
};
|
|
534
|
+
const response = await oauthFetch(request);
|
|
535
|
+
if (!response.ok) throw await failure(response, "Server properties", request);
|
|
536
|
+
return createServerProfile(serverInfoFromProperties(await readJson(response, SessionProperties, "Server properties", signal))).features.oauthFullAccessScopeUnadvertised;
|
|
502
537
|
}
|
|
503
|
-
async function tryDiscoverMetadata(baseUrl, userAgent) {
|
|
504
|
-
const metadata = await fetchMetadata(baseUrl, userAgent);
|
|
505
|
-
if (metadata === null || !await grantsFullAccessScope(metadata, baseUrl, userAgent)) return null;
|
|
538
|
+
async function tryDiscoverMetadata(baseUrl, userAgent, signal) {
|
|
539
|
+
const metadata = await fetchMetadata(baseUrl, userAgent, signal);
|
|
540
|
+
if (metadata === null || !await grantsFullAccessScope(metadata, baseUrl, userAgent, signal)) return null;
|
|
506
541
|
return pinEndpoints(metadata, baseUrl);
|
|
507
542
|
}
|
|
508
|
-
async function discoverLoginMetadata(baseUrl, userAgent) {
|
|
509
|
-
const metadata = await tryDiscoverMetadata(baseUrl, userAgent);
|
|
543
|
+
async function discoverLoginMetadata(baseUrl, userAgent, signal) {
|
|
544
|
+
const metadata = await tryDiscoverMetadata(baseUrl, userAgent, signal);
|
|
510
545
|
if (metadata === null) throw new ConfigError(OAUTH_UNSUPPORTED_MESSAGE);
|
|
511
546
|
return metadata;
|
|
512
547
|
}
|
|
@@ -516,7 +551,7 @@ async function discoverMetadata(baseUrl, userAgent) {
|
|
|
516
551
|
return pinEndpoints(metadata, baseUrl);
|
|
517
552
|
}
|
|
518
553
|
async function registerClient(input) {
|
|
519
|
-
const
|
|
554
|
+
const request = {
|
|
520
555
|
url: input.registrationEndpoint,
|
|
521
556
|
method: "POST",
|
|
522
557
|
userAgent: input.userAgent,
|
|
@@ -532,10 +567,12 @@ async function registerClient(input) {
|
|
|
532
567
|
response_types: ["code"],
|
|
533
568
|
token_endpoint_auth_method: "none",
|
|
534
569
|
scope: OAUTH_SCOPE
|
|
535
|
-
})
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
570
|
+
}),
|
|
571
|
+
signal: input.signal
|
|
572
|
+
};
|
|
573
|
+
const response = await oauthFetch(request);
|
|
574
|
+
if (!response.ok) throw await failure(response, "OAuth client registration", request);
|
|
575
|
+
return readJson(response, RegisteredClient, "OAuth client registration", input.signal);
|
|
539
576
|
}
|
|
540
577
|
function exchangeCode(input) {
|
|
541
578
|
return postForm(input.tokenEndpoint, input.userAgent, {
|
|
@@ -544,7 +581,7 @@ function exchangeCode(input) {
|
|
|
544
581
|
redirect_uri: input.redirectUri,
|
|
545
582
|
client_id: input.clientId,
|
|
546
583
|
code_verifier: input.codeVerifier
|
|
547
|
-
}, OAuthTokens, "OAuth token exchange");
|
|
584
|
+
}, OAuthTokens, "OAuth token exchange", input.signal);
|
|
548
585
|
}
|
|
549
586
|
function refreshTokens(input) {
|
|
550
587
|
return postForm(input.tokenEndpoint, input.userAgent, {
|
|
@@ -554,7 +591,7 @@ function refreshTokens(input) {
|
|
|
554
591
|
}, OAuthTokens, "OAuth token refresh");
|
|
555
592
|
}
|
|
556
593
|
async function revokeToken(input) {
|
|
557
|
-
const
|
|
594
|
+
const request = {
|
|
558
595
|
url: input.revocationEndpoint,
|
|
559
596
|
method: "POST",
|
|
560
597
|
userAgent: input.userAgent,
|
|
@@ -563,8 +600,9 @@ async function revokeToken(input) {
|
|
|
563
600
|
token: input.token,
|
|
564
601
|
client_id: input.clientId
|
|
565
602
|
})
|
|
566
|
-
}
|
|
567
|
-
|
|
603
|
+
};
|
|
604
|
+
const response = await oauthFetch(request);
|
|
605
|
+
if (!response.ok) throw await failure(response, "OAuth token revocation", request);
|
|
568
606
|
await response.body?.cancel().catch(() => void 0);
|
|
569
607
|
}
|
|
570
608
|
//#endregion
|
|
@@ -1226,7 +1264,7 @@ function defineMetabaseCommand(def) {
|
|
|
1226
1264
|
const probe = await readCachedProbe(resolved.profile, resolved.url);
|
|
1227
1265
|
const server = probe === null ? null : createServerProfile(probe);
|
|
1228
1266
|
const saveProbe = probe === null ? null : createProbeSaver(resolved.profile, probe);
|
|
1229
|
-
const { createClient } = await import("./client-
|
|
1267
|
+
const { createClient } = await import("./client-BN93yUlt.mjs").then((n) => n.t);
|
|
1230
1268
|
const client = createClient({
|
|
1231
1269
|
url: resolved.url,
|
|
1232
1270
|
credential: resolved.credential
|
|
@@ -1424,4 +1462,4 @@ function buildConfigFlags(ctx) {
|
|
|
1424
1462
|
return flags;
|
|
1425
1463
|
}
|
|
1426
1464
|
//#endregion
|
|
1427
|
-
export {
|
|
1465
|
+
export { ServerSummary as $, revokeOAuthCredential as A, probeServer as B, ProfileLastFailure as C, fileNotFoundError as D, USER_AGENT as E, tryDiscoverMetadata as F, untilAborted as G, serverInfoFromProperties as H, buildNetworkError as I, credentialAuthHeader as J, whenAborted as K, isConnectionClosed as L, discoverLoginMetadata as M, exchangeCode as N, givenValue as O, registerClient as P, normalizeUrl as Q, PROBE_PATH as R, ProfileAuthMethod as S, OAUTH_CLIENT_NAME as T, combineAborts as U, profileFromProperties as V, throwIfAborted as W, oauthCredentialFromTokens as X, credentialSecrets as Y, displayUrl as Z, writeOAuthProfile as _, explicitProfileName as a, SessionProperties as at, writeProfile as b, DEFAULT_PROFILE as c, consumeKeyringDowngradeWarning as d, summarizeServer as et, keyringFallbackWarning as f, resolveRecordCredential as g, readProfileRecord as h, createCredentialRefresher as i, describeVersion as it, OAUTH_SCOPE as j, readInput as k, clearProfile as l, readProfileCredential as m, readJsonBody as n, createServerProfile as nt, readEnvCredentials as o, listProfileRecords as p, assertCredentialHeaderSafe as q, readCachedServerProfile as r, featureGap as rt, resolveProfileName as s, defineMetabaseCommand as t, Skew as tt, consumeKeychainResidualWarning as u, writeProbeFailure as v, profileAuthMethod as w, ProbedUser as x, writeProbeResult as y, probeBudget as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { l as renderSummary, lt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
-
import { n as findSkillByName, r as loadAllSkills } from "./skills-
|
|
4
|
-
import { r as scaffoldDataAppProject } from "./data-app-project-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
|
+
import { n as findSkillByName, r as loadAllSkills } from "./skills-CPNaSE_d.mjs";
|
|
4
|
+
import { r as scaffoldDataAppProject } from "./data-app-project-DUCJcvfJ.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { join } from "node:path";
|
|
7
7
|
//#region src/commands/data-app/scaffold.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as unescapeJsonPointerSegment, o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { $ as main, Ct as resolveCitty, U as featureAvailability, at as formatFlags, dt as urlFlag, et as getMetabaseAugment, f as writeJson, n as resolveCommandPath, ut as profileFlag } from "./cli.mjs";
|
|
3
|
-
import { r as readCachedServerProfile, s as resolveProfileName, t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { r as readCachedServerProfile, s as resolveProfileName, t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { n as inputGatesOf } from "./input-gate-registry-Dh8QjKgW.mjs";
|
|
5
5
|
import { c as FieldSemanticType, r as FieldBaseType } from "./field-C2qOViFZ.mjs";
|
|
6
6
|
import { n as ParameterMapping, r as ParameterTarget, t as Parameter } from "./parameter-Bucz3cLJ.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { n as windowList } from "./window-D1w7B0vh.mjs";
|
|
5
5
|
import { l as TableCompact } from "./table-hgrX1i-R.mjs";
|
|
6
6
|
import { u as tableView } from "./table-BNA9Or05.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { n as windowList } from "./window-D1w7B0vh.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/db/schemas.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { St as parseEnumCsv, ct as listFlagsWithDefaultLimit, gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, ot as listFlag, s as renderList, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { n as parseIdCsv, t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
5
|
import { r as windowServerPage } from "./window-D1w7B0vh.mjs";
|
|
6
6
|
import { i as SearchResultCompact, n as SearchModel, t as SEARCH_MODELS } from "./search-1et9tv_s.mjs";
|
|
7
7
|
import { t as parseOptionalText } from "./parse-text-C4LYzIFa.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
2
|
import { gt as listEnvelopeSchema, it as connectionFlags, lt as outputFlags, s as renderList, st as listFlags, ut as profileFlag } from "./cli.mjs";
|
|
3
3
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
4
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
4
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
5
5
|
import { t as collectForOutput } from "./window-D1w7B0vh.mjs";
|
|
6
6
|
import { n as parseText } from "./parse-text-C4LYzIFa.mjs";
|
|
7
7
|
import { n as FieldValueLabel, o as fieldValueLabelView, u as toValueLabel } from "./field-CT4r6b92.mjs";
|
|
@@ -11,11 +11,11 @@ var segment_default = defineCommandGroup({
|
|
|
11
11
|
purpose: "define reusable segments"
|
|
12
12
|
}],
|
|
13
13
|
subCommands: {
|
|
14
|
-
list: () => import("./list-
|
|
15
|
-
get: () => import("./get-
|
|
16
|
-
create: () => import("./create-
|
|
17
|
-
update: () => import("./update-
|
|
18
|
-
archive: () => import("./archive-
|
|
14
|
+
list: () => import("./list-Cv9U6hop.mjs").then((mod) => mod.default),
|
|
15
|
+
get: () => import("./get-CGrfQxXy.mjs").then((mod) => mod.default),
|
|
16
|
+
create: () => import("./create-9p0vyQkK.mjs").then((mod) => mod.default),
|
|
17
|
+
update: () => import("./update-BsCY9WoI.mjs").then((mod) => mod.default),
|
|
18
|
+
archive: () => import("./archive-Cm3GcZRd.mjs").then((mod) => mod.default)
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region src/commands/alert/send.ts
|
|
6
6
|
const AlertSendResult = z.object({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h as formatScalar, it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
import { r as SettingValue } from "./setting-DTiLCW8g.mjs";
|
|
4
4
|
import { t as settingValueView } from "./setting-CwRYgHYN.mjs";
|
|
5
5
|
import { t as parseSettingKey } from "./key-DLrpCgdZ.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
import { n as TransformJobActiveResult } from "./transform-job-CDIb3B9o.mjs";
|
|
4
4
|
import { t as parseEnumFlag } from "./parse-enum-CEXPuN9H.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
3
|
import { t as DataApp } from "./data-app-BUW-HlUo.mjs";
|
|
4
4
|
import { t as dataAppView } from "./data-app-Blz61mG5.mjs";
|
|
5
5
|
import { n as slugArg, t as parseSlug } from "./slug-COdwq63O.mjs";
|
|
6
|
-
import { n as readBundle, t as DEFAULT_BUNDLE_PATH } from "./data-app-project-
|
|
6
|
+
import { n as readBundle, t as DEFAULT_BUNDLE_PATH } from "./data-app-project-DUCJcvfJ.mjs";
|
|
7
7
|
//#region src/commands/data-app/set-bundle.ts
|
|
8
8
|
var set_bundle_default = defineMetabaseCommand({
|
|
9
9
|
meta: {
|
|
10
10
|
name: "set-bundle",
|
|
11
11
|
description: "Replace a data app's bundle with a built one"
|
|
12
12
|
},
|
|
13
|
-
details: "Reads the built bundle (`npm run build` writes `
|
|
13
|
+
details: "Reads the built bundle (`npm run build` writes `build/index.js`) and makes it the bundle Metabase serves at /apps/<slug>, at once. A new app is enabled; viewers reach it once a group is assigned. A disabled app opens only in Data Studio (Data apps → the app → Overview).",
|
|
14
14
|
skills: [{
|
|
15
15
|
skill: "data-app",
|
|
16
16
|
purpose: "build and publish an app"
|
|
@@ -28,12 +28,12 @@ var set_bundle_default = defineMetabaseCommand({
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
outputSchema: DataApp,
|
|
31
|
-
examples: ["mb data-app set-bundle sales-overview", "mb data-app set-bundle sales-overview --bundle
|
|
31
|
+
examples: ["mb data-app set-bundle sales-overview", "mb data-app set-bundle sales-overview --bundle out/index.js"],
|
|
32
32
|
async run({ args, ctx, getClient }) {
|
|
33
33
|
const slug = parseSlug(args.slug);
|
|
34
34
|
const bundle = await readBundle(args.bundle);
|
|
35
35
|
const app = await (await getClient()).dataApp.replaceBundle(slug, bundle);
|
|
36
|
-
renderSummary(app, dataAppView, `Set the bundle of data app ${slug}; it is ${app.enabled ? `served at /apps/${slug}` : "disabled, so only
|
|
36
|
+
renderSummary(app, dataAppView, `Set the bundle of data app ${slug}; it is ${app.enabled ? `served at /apps/${slug}` : "disabled, so it opens only in Data Studio"}.`, ctx);
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-EXZan40V.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
4
4
|
import { c as DatabaseWithSettings } from "./database-C5ucihp3.mjs";
|
|
5
5
|
import { t as parseEnumFlag } from "./parse-enum-CEXPuN9H.mjs";
|
|
6
6
|
import { t as databaseDataActionsView } from "./database-u_spHEa0.mjs";
|