@metabase/cli 0.3.1-alpha.support-worktrees.b634907 → 0.3.1-alpha.transform-tests.c0bc2d1
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-CxzzDG4z.mjs → add-collection-CVDgC7C6.mjs} +5 -6
- package/dist/{alert-CQ7Az16h.mjs → alert-Co9m8k5l.mjs} +7 -7
- package/dist/{alerts-DmwyyBfW.mjs → alerts-DjZGGxOy.mjs} +6 -7
- package/dist/{append-B0avMkvW.mjs → append-BXqeNFzW.mjs} +3 -4
- package/dist/{archive-CMTHh4-w.mjs → archive-Bhk1IqGH.mjs} +3 -4
- package/dist/archive-CH9osnGq.mjs +32 -0
- package/dist/{archive-BQ50OZ7y.mjs → archive-CUGpIXDT.mjs} +3 -4
- package/dist/{archive-THcEfy9B.mjs → archive-CXYUkzZo.mjs} +4 -5
- package/dist/{archive-Cvrkz8F8.mjs → archive-Cchi-tqq.mjs} +4 -5
- package/dist/{archive-BPSNe0Ul.mjs → archive-Csku9zDp.mjs} +3 -4
- package/dist/{archive-BZEu6UfT.mjs → archive-CzcjKpUC.mjs} +5 -6
- package/dist/archive-D1xZRRRA.mjs +32 -0
- package/dist/{archive-DCyeRNfV.mjs → archive-DvV3oLCg.mjs} +3 -4
- package/dist/{archive-DFofUIEC.mjs → archive-I61vFPxv.mjs} +3 -4
- package/dist/{archive-BVblae-p.mjs → archive-pA5UZn1f.mjs} +3 -4
- package/dist/{auth-BEEkuu4J.mjs → auth-BKgMIAKH.mjs} +5 -5
- package/dist/{branches-CmWc8NyL.mjs → branches-B96keFsO.mjs} +3 -4
- package/dist/{cancel-DrQqmxvn.mjs → cancel-6GPBlUkr.mjs} +3 -4
- package/dist/cancel-task-BIGAgcKk.mjs +28 -0
- package/dist/{card-CrBGUkGQ.mjs → card-DZxRmver.mjs} +0 -1
- package/dist/card-zluRR7xD.mjs +24 -0
- package/dist/{card-BEeafd4Y.mjs → card-zyUkr2nS.mjs} +1 -1
- package/dist/{cards-M_6X8wCI.mjs → cards-DY6Togtl.mjs} +4 -5
- package/dist/cli.mjs +48 -142
- package/dist/{client-DYD8WZYy.mjs → client-C9HBWl6A.mjs} +129 -207
- package/dist/{collection-CJHqsFKP.mjs → collection-CGoVLvcD.mjs} +1 -1
- package/dist/{collection-BxE7OzcQ.mjs → collection-CfulNRBG.mjs} +3 -6
- package/dist/collection-CrIkQWUK.mjs +20 -0
- package/dist/{content-translation-C8MlXPOF.mjs → content-translation-Cg_VW3kW.mjs} +3 -3
- package/dist/{create-BqpkCjx4.mjs → create-BeNQQTPt.mjs} +2 -3
- package/dist/{create-BA_tTDEk.mjs → create-BkIoWkzP.mjs} +3 -4
- package/dist/{create-CJ7Am4Gc.mjs → create-BpjBffBq.mjs} +3 -4
- package/dist/create-BsDJATJM.mjs +34 -0
- package/dist/{create-CY-SzM66.mjs → create-BuWV1GpI2.mjs} +9 -14
- package/dist/{create-D0anrINz.mjs → create-BxWMTy6i.mjs} +8 -13
- package/dist/{create-ldrghMd1.mjs → create-CK5MABYu.mjs} +2 -3
- package/dist/{create-ByuJ6T4k.mjs → create-CaDAT54M.mjs} +5 -6
- package/dist/{create-z-oMrlfT.mjs → create-D_pNL2X9.mjs} +4 -5
- package/dist/{create-BLWwN0uw.mjs → create-DqCdW3tt.mjs} +3 -4
- package/dist/{create-BupBEwR2.mjs → create-JZevXtCI.mjs} +6 -11
- package/dist/{create-hTc131aX.mjs → create-V2Bdeu8p.mjs} +2 -3
- package/dist/{create-CoubLR5o.mjs → create-bH-qAv03.mjs} +3 -4
- package/dist/create-branch-DN9PrlRR.mjs +35 -0
- package/dist/{create-C7iooS6W.mjs → create-cHltWf0e.mjs} +7 -13
- package/dist/{create-myI6doga.mjs → create-cSpqEzKH.mjs} +3 -4
- package/dist/{create-C2XFfbjx.mjs → create-mzHtey5k.mjs} +2 -3
- package/dist/{csv-DBNzJiWK.mjs → csv-CVKLuIuS.mjs} +3 -4
- package/dist/{current-task-YzemU0Ic.mjs → current-task-Dnm3JaWg.mjs} +7 -12
- package/dist/{dashboard-B1mpfCq_.mjs → dashboard-SxUrG3Cg.mjs} +10 -10
- package/dist/{db-1tLH3nYI.mjs → db-BnhuXAP9.mjs} +7 -7
- package/dist/{delete-CpKH5ia4.mjs → delete-6lroLZIE.mjs} +4 -5
- package/dist/{delete-DjAUp9mk.mjs → delete-BClvnlBc.mjs} +4 -5
- package/dist/delete-C3xeqTzS.mjs +44 -0
- package/dist/{delete-eAUB7p-f.mjs → delete-CH0FsDBg.mjs} +5 -10
- package/dist/{delete-CD_-B4Kq.mjs → delete-DDVNawxh.mjs} +4 -5
- package/dist/{delete-QNgBV6eS.mjs → delete-Dn6VJuyR.mjs} +5 -10
- package/dist/{delete-runtime-b2_ZMSjj.mjs → delete-runtime-D74s6vhu.mjs} +1 -1
- package/dist/{delete-table-DamlxnSO.mjs → delete-table-C6LPzUDg.mjs} +5 -10
- package/dist/dependencies-vr51EFIu.mjs +36 -0
- package/dist/dirty-W0PzG3Yt.mjs +31 -0
- package/dist/document-B1w9aIq7.mjs +19 -0
- package/dist/{download-C4v7u-AV.mjs → download-B-l6ajeo.mjs} +2 -3
- package/dist/{eid-CP35PdEF.mjs → eid-BGl_X67N.mjs} +2 -3
- package/dist/{events-DmbzKIh_.mjs → events-BRRnroJb.mjs} +4 -5
- package/dist/{export-i8D6laBG.mjs → export-DEPLFq_E.mjs} +12 -25
- package/dist/{field-BKn9bt7I.mjs → field-BXaUzJvx.mjs} +5 -5
- package/dist/{fields-8_p81BqN.mjs → fields-LFMSMV5Z.mjs} +4 -5
- package/dist/{get-BvW21ujw.mjs → get-7-OiP8ma.mjs} +3 -4
- package/dist/{get-vvs0qzzM.mjs → get-B6lWlGeD.mjs} +3 -4
- package/dist/get-BM7MA5-7.mjs +31 -0
- package/dist/{get-CNEQK0-9.mjs → get-BUiHdwdU.mjs} +4 -5
- package/dist/{get-BHGgXqUq.mjs → get-BempHTsm.mjs} +3 -4
- package/dist/{get-CAzSP-7o.mjs → get-Bjvu5GM7.mjs} +3 -4
- package/dist/{get-vrccOMBk.mjs → get-BvI5QqjY.mjs} +3 -4
- package/dist/{get-BBOfshz1.mjs → get-C2DWxXYb.mjs} +3 -4
- package/dist/get-CapP9GiI.mjs +32 -0
- package/dist/{get-N4dOaTsp.mjs → get-Cjx_5Zm-.mjs} +4 -5
- package/dist/{get-DFkbi5L3.mjs → get-DAsSPKxF.mjs} +2 -3
- package/dist/{get-DnCE7K0y.mjs → get-DCHhq5Qv.mjs} +4 -5
- package/dist/get-DCf0O3GJ.mjs +31 -0
- package/dist/{get-CPTbySa7.mjs → get-DhxE02Ia.mjs} +3 -4
- package/dist/get-DiRtfImy.mjs +36 -0
- package/dist/{get-Bds6Izxk.mjs → get-DlQHyv4D.mjs} +3 -4
- package/dist/{get-DvLuY5Xu.mjs → get-Du11BNRd.mjs} +9 -17
- package/dist/{get-B0g6VMBC.mjs → get-DvCgLmPW.mjs} +3 -4
- package/dist/{get-BbHPFNqr.mjs → get-M3zgKoZr.mjs} +3 -4
- package/dist/{get-CWf46UFu.mjs → get-XcSH5Zyz.mjs} +5 -6
- package/dist/{get-run-4Ng8_awa.mjs → get-run-UJmyRo7H.mjs} +5 -6
- package/dist/{git-sync-DLzJrdMi.mjs → git-sync-BDnxPrqU.mjs} +3 -22
- package/dist/git-sync-DM5Nuv3a.mjs +28 -0
- package/dist/{git-sync-LQIVMNxO.mjs → git-sync-DxD_ng48.mjs} +2 -31
- package/dist/{group-YN6jj2AN.mjs → group-DBM87IgC.mjs} +2 -3
- package/dist/{has-remote-changes-BXPGI9xG.mjs → has-remote-changes-DmhFpgJe.mjs} +6 -14
- package/dist/{import-BoxOkA-G.mjs → import-BRC0TzWQ.mjs} +11 -28
- package/dist/{is-dirty-Cwxq4_gd.mjs → is-dirty-CT9e5vSd.mjs} +6 -15
- package/dist/{items-Cv6iAzrI.mjs → items-BSAEWZlw.mjs} +9 -17
- package/dist/{library-Cfw6eF35.mjs → library-ClLgrAXy.mjs} +1 -1
- package/dist/{library-fhVn1KDC.mjs → library-DfYAT2Ep.mjs} +1 -1
- package/dist/{library-CRaOhJnj.mjs → library-Zxh_MRVL.mjs} +5 -5
- package/dist/list-08dyODsP.mjs +36 -0
- package/dist/{list-C8J3n8B8.mjs → list-BOUmEn2X.mjs} +3 -4
- package/dist/{list--2T-GUEF.mjs → list-BZbC260R.mjs} +4 -5
- package/dist/{list-9uvk9dIA.mjs → list-BxCk3QTy.mjs} +3 -4
- package/dist/{list-BLJkJp5a.mjs → list-C3IRtLP6.mjs} +3 -4
- package/dist/list-CAalCea_.mjs +28 -0
- package/dist/{list-DhrapAcy.mjs → list-CleMHJBY.mjs} +3 -4
- package/dist/list-D6qH2PUE.mjs +38 -0
- package/dist/{list-oAAgU5uE.mjs → list-D9RmPIEJ.mjs} +9 -16
- package/dist/{list-DOaWCx8S.mjs → list-DCA0T8bS.mjs} +8 -17
- package/dist/{list-L2U1l6R4.mjs → list-DCBLu0KG.mjs} +3 -4
- package/dist/list-DDFk1IFP.mjs +35 -0
- package/dist/{list-WSJLnunb.mjs → list-DGLK2lso.mjs} +3 -4
- package/dist/{list-BwkfWtP2.mjs → list-DYlphSxV.mjs} +3 -4
- package/dist/{list-DOZNpX4b.mjs → list-De0ebgzc.mjs} +4 -5
- package/dist/{list-tutXEQRW.mjs → list-Dqyd2TZI.mjs} +4 -5
- package/dist/list-Drm6l_tt.mjs +28 -0
- package/dist/{list-BBp9XjYs.mjs → list-QFieRzSf.mjs} +3 -4
- package/dist/{list-CtZAu4im.mjs → list-kIMBSzS-.mjs} +4 -5
- package/dist/{login-DqWRF3Og.mjs → login-DDHEyjWz.mjs} +4 -5
- package/dist/{logout-ChCz1bkf.mjs → logout-BbB0vvQN.mjs} +2 -3
- package/dist/{measure-C5dIdFj1.mjs → measure-CGuwA0KX.mjs} +6 -6
- package/dist/{notification-DVrLkjFT.mjs → notification-Fcq1fIPw.mjs} +1 -1
- package/dist/{parameter-values-Dy4cBs5y.mjs → parameter-values-CI6-CkB7.mjs} +3 -4
- package/dist/{parse-id-DDCn3VXx.mjs → parse-id-CdZ0-1TM.mjs} +1 -1
- package/dist/{parse-ref-Wv21Roup.mjs → parse-ref-ibKVB0J4.mjs} +2 -6
- package/dist/{path-IYhuzjQV.mjs → path-Df2itv7t.mjs} +4 -5
- package/dist/{preflight-HLUVr2Yf.mjs → preflight-CoF1Em99.mjs} +1 -1
- package/dist/{publish-CMkCSt8i.mjs → publish-xUBySB1T.mjs} +4 -5
- package/dist/{pulse-a-83M4DV.mjs → pulse-DhG6I9mI.mjs} +1 -1
- package/dist/{query-tWQAV9pb.mjs → query-BkZvffIM.mjs} +6 -7
- package/dist/{query-Bka77J62.mjs → query-CmkC8sfu.mjs} +6 -7
- package/dist/{query-result-E4Q-Gra6.mjs → query-result-DBDwk8TS.mjs} +1 -1
- package/dist/{remove-collection-BV9wRQZD.mjs → remove-collection-DFfmuTwD.mjs} +5 -6
- package/dist/{render-DHjCcUXn.mjs → render-CI93iP0I.mjs} +1 -7
- package/dist/{replace-mt47dlRV.mjs → replace-DjoDBCLa.mjs} +3 -4
- package/dist/{rescan-values-6cRjcpTs.mjs → rescan-values-Ca2Wa0A2.mjs} +3 -4
- package/dist/{run-DI_pDxji.mjs → run-BCYATTjE.mjs} +5 -6
- package/dist/run-B_-pMw67.mjs +50 -0
- package/dist/{run-BmGmC-GQ.mjs → run-CP-chc5O.mjs} +3 -4
- package/dist/{runs-9Fu0mug5.mjs → runs-B0ypYKmn.mjs} +6 -7
- package/dist/{runtime-CNAZ_FuR.mjs → runtime-CJUDVwBu.mjs} +8 -103
- package/dist/{schema-tables-CLG0mtQb.mjs → schema-tables-Nl83e2Zm.mjs} +4 -5
- package/dist/{schemas-Cm5NWy59.mjs → schemas-Cp29qgn0.mjs} +4 -5
- package/dist/{search-CljYyf2F.mjs → search-BbktlnDC.mjs} +8 -14
- package/dist/{segment-IRzlQggt.mjs → segment-BHBoMpL9.mjs} +6 -6
- package/dist/{selectors-D4iOP5uB.mjs → selectors-e_0QdkaG.mjs} +2 -2
- package/dist/{send-D7DBnQbu.mjs → send-DEGpBT_7.mjs} +3 -4
- package/dist/{set-DKN8fuC6.mjs → set-C3tLEVuY.mjs} +2 -3
- package/dist/{set-active-CkE0Eiqh.mjs → set-active-CqvLJysE.mjs} +2 -3
- package/dist/{setting-CN4l8N-b.mjs → setting-Dwi-Wifx.mjs} +4 -4
- package/dist/{setup-BpTptmdO.mjs → setup-CcSVPnEI.mjs} +2 -3
- package/dist/{skills-BSAiLI3Z.mjs → skills-Cxi3fKMZ.mjs} +3 -3
- package/dist/{skills-hVKSOCUf.mjs → skills-DTCrMcix.mjs} +1 -1
- package/dist/{snippet-BxgvQ09J.mjs → snippet-CyKAgIZl.mjs} +2 -5
- package/dist/snippet-hrEAI5Yf.mjs +19 -0
- package/dist/{snippet-DecHB4Dn.mjs → snippet-oJLaYW9V.mjs} +1 -1
- package/dist/{stash-DJs6A6BA.mjs → stash-CVhkyRIT.mjs} +6 -7
- package/dist/{status-N_2EaWb7.mjs → status-B7tYgPVV.mjs} +6 -15
- package/dist/{status-DtwBDRtc.mjs → status-C9uhZuip.mjs} +16 -44
- package/dist/{subscription-BnGDp1oy.mjs → subscription-Cj9jyFEB.mjs} +6 -6
- package/dist/{subscriptions-BfFwV__x.mjs → subscriptions-B5oVkkZk.mjs} +6 -7
- package/dist/{summary-CHiq-4mz.mjs → summary-PVERfPr2.mjs} +3 -4
- package/dist/{sync-schema-DhnM-rpm.mjs → sync-schema-CtG6r6Pr.mjs} +4 -5
- package/dist/{sync-task-G1K47Nvn.mjs → sync-task-BACcrs0i.mjs} +1 -1
- package/dist/{table-BQaiCSNS.mjs → table-6IHwQyr6.mjs} +5 -5
- package/dist/timeline-BwQIj-le.mjs +21 -0
- package/dist/{timeline-event-B7H1y8s8.mjs → timeline-event-ox_Bw9F4.mjs} +6 -6
- package/dist/{transform-BvOEn41C.mjs → transform-D3QX0jxA.mjs} +1 -4
- package/dist/{transform-CiDOJGBW.mjs → transform-DoTyyXAu.mjs} +2 -2
- package/dist/transform-IPKGUzzd.mjs +28 -0
- package/dist/transform-job-COwH1ww7.mjs +22 -0
- package/dist/{transform-tag-jBVd6wXd.mjs → transform-tag-CcElGp3C.mjs} +4 -9
- package/dist/{transform-tag-DiXWRCQG.mjs → transform-tag-Dmb4u3-Q.mjs} +1 -1
- package/dist/{transform-tag-Dip51YBa.mjs → transform-tag-La1wmOTP.mjs} +5 -5
- package/dist/transform-test-C4VRGmGm.mjs +149 -0
- package/dist/transform-test-DGYx6MCT.mjs +16 -0
- package/dist/transform-test-w5hDTx_D.mjs +25 -0
- package/dist/{transforms-C-jYgS6z.mjs → transforms-DIgACzP-.mjs} +6 -7
- package/dist/tree-CQ0FXBnn.mjs +27 -0
- package/dist/{unpublish-BokbnLng.mjs → unpublish-Binr4uOG.mjs} +3 -4
- package/dist/{update-B9DcRSBQ.mjs → update-B4lIwY0G.mjs} +10 -16
- package/dist/update-B5NYEIHU.mjs +41 -0
- package/dist/{update-CPEU8ZEu.mjs → update-BKvSfdXu.mjs} +4 -5
- package/dist/{update-D9OTkZhw.mjs → update-BZS5m-vx.mjs} +3 -4
- package/dist/{update-C4PbAYgW.mjs → update-BbOX6axn.mjs} +3 -4
- package/dist/{update-e7lyQPxq.mjs → update-BiG9eLNH.mjs} +7 -13
- package/dist/{update-CpLEEbiJ.mjs → update-CIuoW1M9.mjs} +6 -7
- package/dist/{update-BBQInyiJ.mjs → update-CWIhy9Ax.mjs} +4 -5
- package/dist/{update-Bc8s1TL1.mjs → update-Cb68f4dx.mjs} +3 -4
- package/dist/{update-BErxnZrj.mjs → update-DH9CL61y.mjs} +4 -5
- package/dist/{update-AZSXMJqu.mjs → update-Db3j44fi.mjs} +7 -13
- package/dist/{update-BCGE5UYC.mjs → update-TDaf7Xbt.mjs} +4 -5
- package/dist/{update-dashcard-St-dGcE3.mjs → update-dashcard-DbZ8NlLZ.mjs} +3 -4
- package/dist/{update-BRXKLeJH.mjs → update-gGZjfZN3.mjs} +3 -4
- package/dist/{update-CfQoYVTc.mjs → update-la0K6wAf.mjs} +3 -4
- package/dist/{update-CKL2FtoX.mjs → update-lpLLpKhX.mjs} +4 -5
- package/dist/{update-rkbpH0lF.mjs → update-mOqedkLk.mjs} +3 -4
- package/dist/{upgrade-CUoRHfVg.mjs → upgrade-BCWXgRmG.mjs} +2 -3
- package/dist/upload-BVBs2F69.mjs +13 -0
- package/dist/{upload-BPd1Uzxc.mjs → upload-DUViVk1x.mjs} +2 -3
- package/dist/{uuid-CFN8LIkP.mjs → uuid-D3CGL8wF.mjs} +2 -3
- package/dist/{validate-query-Chc43ezW.mjs → validate-query-DaGYSmpQ.mjs} +1 -1
- package/dist/{values-BL_U-Zdw.mjs → values-8XUr04w3.mjs} +3 -4
- package/dist/{verify-DnBaRmkI.mjs → verify-deF_hThH.mjs} +2 -2
- package/dist/{wait-mPoOZxrw.mjs → wait-Ct0weHol.mjs} +7 -12
- package/dist/{wait-flags-DzytMEG8.mjs → wait-flags-Cb-bI0RD.mjs} +2 -2
- package/dist/{window-DSb1tqSe.mjs → window-BkvrP0gB.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +19 -20
- package/skill-data/git-sync/SKILL.md +1 -91
- package/skill-data/transform/SKILL.md +60 -10
- package/skill-data/transform-test-plan/SKILL.md +170 -0
- package/skill-data/transform-test-plan/references/checklist.md +81 -0
- package/skill-data/transform-test-plan/references/checks.md +259 -0
- package/dist/archive-CqOKKrb2.mjs +0 -38
- package/dist/archive-DCjdICg7.mjs +0 -38
- package/dist/branch-BSeGrtP7.mjs +0 -28
- package/dist/cancel-task-BMQXtjW5.mjs +0 -34
- package/dist/card-RlzLDB2z.mjs +0 -24
- package/dist/collection-Bhe20ckt.mjs +0 -20
- package/dist/create-DwrhcI8r2.mjs +0 -144
- package/dist/create-branch-B3BMpF1g.mjs +0 -49
- package/dist/delete-D_OgiI4v.mjs +0 -86
- package/dist/dependencies-DEx0BsZ3.mjs +0 -41
- package/dist/dirty-dC1-Ud0G.mjs +0 -40
- package/dist/document-DOJbBWLF.mjs +0 -19
- package/dist/export-preflight-B5MvYhm3.mjs +0 -67
- package/dist/get-Cfagmy1i.mjs +0 -42
- package/dist/get-DwdMvWXU.mjs +0 -44
- package/dist/get-jV8G90Zy.mjs +0 -42
- package/dist/get-mGEv-kag.mjs +0 -33
- package/dist/git-sync-DjoaNmRM.mjs +0 -29
- package/dist/list-5Iojbr_p.mjs +0 -37
- package/dist/list-BD4onDqO.mjs +0 -37
- package/dist/list-C2yL7-CH.mjs +0 -45
- package/dist/list-CbbKip6U.mjs +0 -32
- package/dist/list-Dg2XeDON.mjs +0 -47
- package/dist/pin-BuZ_kg-u.mjs +0 -62
- package/dist/scope-DsGuWG5w.mjs +0 -11
- package/dist/snippet-LlHz3FdJ.mjs +0 -19
- package/dist/timeline-C2VW0Ph6.mjs +0 -21
- package/dist/transform-DAf0Y02t.mjs +0 -28
- package/dist/transform-job-ntiT5Rrh.mjs +0 -22
- package/dist/tree-DtyJhD54.mjs +0 -36
- package/dist/unpin-DxbXmLtW.mjs +0 -45
- package/dist/upload-Dc3QLhZw.mjs +0 -13
- package/dist/worktree-ChdDlG3Q.mjs +0 -25
- package/dist/worktree-DC0kTxxQ.mjs +0 -20
- package/dist/worktree-xAro1xAB.mjs +0 -24
|
@@ -4,8 +4,8 @@ import { a as isRetryableStatus, c as normalizeUrl, d as credentialSecrets, g as
|
|
|
4
4
|
import { n as throwIfAborted, t as combineAborts } from "./signal-CMd0EFUa.mjs";
|
|
5
5
|
import { s as FieldValues, t as Field } from "./field-Cr2DPUG9.mjs";
|
|
6
6
|
import { r as ParameterValues } from "./parameter-DUKR8NXo.mjs";
|
|
7
|
-
import { o as CardQueryResult, t as Card } from "./card-
|
|
8
|
-
import { f as CollectionTreeNode, o as CollectionItem, r as Collection } from "./collection-
|
|
7
|
+
import { o as CardQueryResult, t as Card } from "./card-DZxRmver.mjs";
|
|
8
|
+
import { f as CollectionTreeNode, o as CollectionItem, r as Collection } from "./collection-CfulNRBG.mjs";
|
|
9
9
|
import { t as ContentTranslationUploadResult } from "./content-translation-BrHOrmj9.mjs";
|
|
10
10
|
import { i as DashboardDetail, s as Dashcard, t as Dashboard } from "./dashboard-CKUR8ZpQ.mjs";
|
|
11
11
|
import { i as TableQueryMetadata, t as Table } from "./table-CeeTJgQb.mjs";
|
|
@@ -13,20 +13,20 @@ import { t as Database } from "./database-C8G6ZKG0.mjs";
|
|
|
13
13
|
import { r as pollUntil } from "./poll-75SvT7Zv.mjs";
|
|
14
14
|
import { t as Document } from "./document-Cd2mmqCp.mjs";
|
|
15
15
|
import { i as EidTranslateResult } from "./eid-translation-zEHtr5Oc.mjs";
|
|
16
|
-
import {
|
|
17
|
-
import { t as
|
|
18
|
-
import { t as Library } from "./library-Cfw6eF35.mjs";
|
|
16
|
+
import { f as isSyncTaskTerminal, l as SyncTask, n as SyncDirtyItem, o as SyncRemoteChanges, s as SyncSettingsUpdateResult, t as SyncBranchCreated } from "./git-sync-BDnxPrqU.mjs";
|
|
17
|
+
import { t as Library } from "./library-ClLgrAXy.mjs";
|
|
19
18
|
import { t as Measure } from "./measure-CtfjqJFP.mjs";
|
|
20
19
|
import { t as Pulse } from "./pulse-BmsDenXm.mjs";
|
|
21
20
|
import { r as SearchResult } from "./search-DFBwUc6d.mjs";
|
|
22
21
|
import { t as Segment } from "./segment-OsrbUDzw.mjs";
|
|
23
22
|
import { t as Setting } from "./setting-DTiLCW8g.mjs";
|
|
24
23
|
import { n as SetupResult } from "./setup-CO7QV-ao.mjs";
|
|
25
|
-
import { t as Snippet } from "./snippet-
|
|
24
|
+
import { t as Snippet } from "./snippet-CyKAgIZl.mjs";
|
|
26
25
|
import { i as TimelineEvent, t as Timeline } from "./timeline-CCSU2qOS.mjs";
|
|
27
|
-
import { i as TransformRun, l as isTransformRunFailed, t as Transform, u as isTransformRunTerminal } from "./transform-
|
|
26
|
+
import { i as TransformRun, l as isTransformRunFailed, t as Transform, u as isTransformRunTerminal } from "./transform-D3QX0jxA.mjs";
|
|
28
27
|
import { a as TransformJobRunResult, n as TransformJobActiveResult, t as TransformJob } from "./transform-job-DRrK28IH.mjs";
|
|
29
|
-
import { t as TransformTag } from "./transform-tag-
|
|
28
|
+
import { t as TransformTag } from "./transform-tag-CcElGp3C.mjs";
|
|
29
|
+
import { i as TransformTestRunResult, t as TransformTest } from "./transform-test-C4VRGmGm.mjs";
|
|
30
30
|
import { t as UploadResult } from "./upload-DAtxBBms.mjs";
|
|
31
31
|
import { z } from "zod";
|
|
32
32
|
import { setTimeout } from "node:timers/promises";
|
|
@@ -319,18 +319,14 @@ async function readBodyForError(response) {
|
|
|
319
319
|
//#region ../client/src/resources/card.ts
|
|
320
320
|
const CardApiList = z.array(Card);
|
|
321
321
|
function cardResource(transport) {
|
|
322
|
-
/**
|
|
323
|
-
* List cards. `f` picks a server-side preset, `model_id` scopes the presets that need an id, and
|
|
324
|
-
* `worktree-id` lists only the cards checked out into that remote-sync worktree.
|
|
325
|
-
*/
|
|
322
|
+
/** List cards. `f` picks a server-side preset; `model_id` scopes the presets that need an id. */
|
|
326
323
|
async function list(params = {}, options = {}) {
|
|
327
324
|
return {
|
|
328
325
|
data: await transport.requestParsed(CardApiList, "/api/card", {
|
|
329
326
|
...options,
|
|
330
327
|
query: {
|
|
331
328
|
f: params.f,
|
|
332
|
-
model_id: params.model_id
|
|
333
|
-
"worktree-id": params["worktree-id"]
|
|
329
|
+
model_id: params.model_id
|
|
334
330
|
}
|
|
335
331
|
}),
|
|
336
332
|
total: null
|
|
@@ -464,19 +460,12 @@ async function listCollectionsWithLibrary(transport, schema, options = {}) {
|
|
|
464
460
|
});
|
|
465
461
|
}
|
|
466
462
|
function collectionResource(transport) {
|
|
467
|
-
/**
|
|
468
|
-
* List collections. `filter` picks a server-side preset — everything, archived, or personal — and
|
|
469
|
-
* `worktree-id` lists only the collections checked out into that remote-sync worktree.
|
|
470
|
-
*/
|
|
463
|
+
/** List collections. `filter` picks a server-side preset: everything, archived, or personal. */
|
|
471
464
|
async function list(params = {}, options = {}) {
|
|
472
|
-
const preset = COLLECTION_LIST_QUERY[params.filter ?? DEFAULT_LIST_FILTER];
|
|
473
465
|
return {
|
|
474
466
|
data: await transport.requestParsed(CollectionApiList, "/api/collection", {
|
|
475
467
|
...options,
|
|
476
|
-
query:
|
|
477
|
-
...preset,
|
|
478
|
-
"worktree-id": params["worktree-id"]
|
|
479
|
-
}
|
|
468
|
+
query: COLLECTION_LIST_QUERY[params.filter ?? DEFAULT_LIST_FILTER]
|
|
480
469
|
}),
|
|
481
470
|
total: null
|
|
482
471
|
};
|
|
@@ -518,16 +507,14 @@ function collectionResource(transport) {
|
|
|
518
507
|
}
|
|
519
508
|
/**
|
|
520
509
|
* Walk the items inside a collection one page at a time. This endpoint pages on the server, so
|
|
521
|
-
* the caller consumes pages rather than a single list and decides how far to pull.
|
|
522
|
-
* walks the `root` alias inside a remote-sync worktree rather than the main app.
|
|
510
|
+
* the caller consumes pages rather than a single list and decides how far to pull.
|
|
523
511
|
*/
|
|
524
512
|
function itemPages(ref, params = {}, options = {}) {
|
|
525
513
|
return paginatePages(transport, `/api/collection/${refPath(ref)}/items`, CollectionItem, {
|
|
526
514
|
query: {
|
|
527
515
|
models: params.models,
|
|
528
516
|
archived: params.archived,
|
|
529
|
-
pinned_state: params.pinned_state
|
|
530
|
-
"worktree-id": params["worktree-id"]
|
|
517
|
+
pinned_state: params.pinned_state
|
|
531
518
|
},
|
|
532
519
|
...options.offset !== void 0 && { offset: options.offset },
|
|
533
520
|
...options.max !== void 0 && { max: options.max },
|
|
@@ -535,16 +522,10 @@ function collectionResource(transport) {
|
|
|
535
522
|
...options.signal !== void 0 && { signal: options.signal }
|
|
536
523
|
});
|
|
537
524
|
}
|
|
538
|
-
/**
|
|
539
|
-
|
|
540
|
-
* a remote-sync worktree checked out rather than the main app's.
|
|
541
|
-
*/
|
|
542
|
-
async function tree(params = {}, options = {}) {
|
|
525
|
+
/** Fetch the collection hierarchy as a forest of nested nodes. */
|
|
526
|
+
async function tree(options = {}) {
|
|
543
527
|
return {
|
|
544
|
-
data: await transport.requestParsed(CollectionTreeApiList, "/api/collection/tree", {
|
|
545
|
-
...options,
|
|
546
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
547
|
-
}),
|
|
528
|
+
data: await transport.requestParsed(CollectionTreeApiList, "/api/collection/tree", { ...options }),
|
|
548
529
|
total: null
|
|
549
530
|
};
|
|
550
531
|
}
|
|
@@ -990,7 +971,6 @@ const SyncStashStarted = z.object({
|
|
|
990
971
|
message: z.string(),
|
|
991
972
|
task_id: z.number().int().positive()
|
|
992
973
|
});
|
|
993
|
-
const WorktreeApiList = z.array(Worktree);
|
|
994
974
|
const RemoteSyncSetting = z.string().nullable();
|
|
995
975
|
const FORBIDDEN_STATUS = 403;
|
|
996
976
|
const UNREGISTERED_STATUS = 404;
|
|
@@ -998,99 +978,51 @@ function isRemoteUnreadable(error) {
|
|
|
998
978
|
if (!(error instanceof HttpError)) return false;
|
|
999
979
|
return error.status === FORBIDDEN_STATUS || error.status === UNREGISTERED_STATUS;
|
|
1000
980
|
}
|
|
1001
|
-
function scopeOf(worktreeId) {
|
|
1002
|
-
return { "worktree-id": worktreeId };
|
|
1003
|
-
}
|
|
1004
981
|
function gitSyncResource(transport) {
|
|
1005
|
-
/**
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
*/
|
|
1009
|
-
async function currentTask(params = {}, options = {}) {
|
|
1010
|
-
return fetchOptionalParsed(transport, "/api/ee/remote-sync/current-task", SyncTask, {
|
|
1011
|
-
...options,
|
|
1012
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
1013
|
-
});
|
|
982
|
+
/** Get the running or most recently finished sync task, or null when the server has none. */
|
|
983
|
+
async function currentTask(options = {}) {
|
|
984
|
+
return fetchOptionalParsed(transport, "/api/ee/remote-sync/current-task", SyncTask, options);
|
|
1014
985
|
}
|
|
1015
|
-
/**
|
|
1016
|
-
|
|
1017
|
-
* `worktree_id` cancels a worktree's task instead of the main app's.
|
|
1018
|
-
*/
|
|
1019
|
-
async function cancelTask(params = {}, options = {}) {
|
|
986
|
+
/** Request cancellation of the running sync task, and answer it in the state that left it. */
|
|
987
|
+
async function cancelTask(options = {}) {
|
|
1020
988
|
return transport.requestParsed(SyncTask, "/api/ee/remote-sync/current-task/cancel", {
|
|
1021
989
|
...options,
|
|
1022
|
-
method: "POST"
|
|
1023
|
-
body: { worktree_id: params.worktree_id }
|
|
990
|
+
method: "POST"
|
|
1024
991
|
});
|
|
1025
992
|
}
|
|
1026
|
-
/**
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
*/
|
|
1030
|
-
async function isDirty(params = {}, options = {}) {
|
|
1031
|
-
return (await transport.requestParsed(SyncDirtyFlag, "/api/ee/remote-sync/is-dirty", {
|
|
1032
|
-
...options,
|
|
1033
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
1034
|
-
})).is_dirty;
|
|
993
|
+
/** Whether Metabase holds content changes the remote has not been told about. */
|
|
994
|
+
async function isDirty(options = {}) {
|
|
995
|
+
return (await transport.requestParsed(SyncDirtyFlag, "/api/ee/remote-sync/is-dirty", { ...options })).is_dirty;
|
|
1035
996
|
}
|
|
1036
|
-
/**
|
|
1037
|
-
|
|
1038
|
-
* instead of the main app.
|
|
1039
|
-
*/
|
|
1040
|
-
async function dirty(params = {}, options = {}) {
|
|
997
|
+
/** List the objects whose local state differs from the remote. */
|
|
998
|
+
async function dirty(options = {}) {
|
|
1041
999
|
return {
|
|
1042
|
-
data: (await transport.requestParsed(SyncDirtyList, "/api/ee/remote-sync/dirty", {
|
|
1043
|
-
...options,
|
|
1044
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
1045
|
-
})).dirty,
|
|
1000
|
+
data: (await transport.requestParsed(SyncDirtyList, "/api/ee/remote-sync/dirty", { ...options })).dirty,
|
|
1046
1001
|
total: null
|
|
1047
1002
|
};
|
|
1048
1003
|
}
|
|
1049
1004
|
/**
|
|
1050
|
-
* Compare the
|
|
1051
|
-
* comparison; `force-refresh` re-reads the remote instead
|
|
1052
|
-
* own branch rather than the main app's.
|
|
1005
|
+
* Compare the tracked remote branch against what Metabase last imported. The server caches the
|
|
1006
|
+
* comparison; `force-refresh` re-reads the remote instead.
|
|
1053
1007
|
*/
|
|
1054
1008
|
async function hasRemoteChanges(params = {}, options = {}) {
|
|
1055
1009
|
return transport.requestParsed(SyncRemoteChanges, "/api/ee/remote-sync/has-remote-changes", {
|
|
1056
1010
|
...options,
|
|
1057
|
-
query: {
|
|
1058
|
-
"force-refresh": params["force-refresh"],
|
|
1059
|
-
"worktree-id": params["worktree-id"]
|
|
1060
|
-
}
|
|
1061
|
-
});
|
|
1062
|
-
}
|
|
1063
|
-
/**
|
|
1064
|
-
* Dry-run preview of what pushing the scope's current state would do against the live remote
|
|
1065
|
-
* branch, writing nothing: whether the remote has advanced, whether a three-way merge would
|
|
1066
|
-
* apply cleanly, the entities that conflict, the counts a merge would fold in, and the remote
|
|
1067
|
-
* content a force push would discard instead.
|
|
1068
|
-
*/
|
|
1069
|
-
async function exportPreflight(params, options = {}) {
|
|
1070
|
-
return transport.requestParsed(SyncExportPreflight, "/api/ee/remote-sync/export-preflight", {
|
|
1071
|
-
...options,
|
|
1072
|
-
query: {
|
|
1073
|
-
branch: params.branch,
|
|
1074
|
-
"worktree-id": params["worktree-id"]
|
|
1075
|
-
}
|
|
1011
|
+
query: { "force-refresh": params["force-refresh"] }
|
|
1076
1012
|
});
|
|
1077
1013
|
}
|
|
1078
1014
|
/**
|
|
1079
|
-
* Import content from the remote into
|
|
1015
|
+
* Import content from the remote into Metabase. The endpoint queues a task and returns at once;
|
|
1080
1016
|
* pass `wait` to poll that task until it reaches a terminal status. A server already up to date
|
|
1081
|
-
* answers no task id, and there is then nothing to poll.
|
|
1082
|
-
* branch is the target and `branch` is ignored.
|
|
1017
|
+
* answers no task id, and there is then nothing to poll.
|
|
1083
1018
|
*/
|
|
1084
|
-
async function importFromRemote(params, options = {}) {
|
|
1019
|
+
async function importFromRemote(params = {}, options = {}) {
|
|
1085
1020
|
const started = await transport.requestParsed(SyncImportStarted, "/api/ee/remote-sync/import", {
|
|
1086
1021
|
...options,
|
|
1087
1022
|
method: "POST",
|
|
1088
1023
|
body: {
|
|
1089
1024
|
branch: params.branch,
|
|
1090
|
-
|
|
1091
|
-
force: params.force,
|
|
1092
|
-
merge: params.merge,
|
|
1093
|
-
worktree_id: params.worktree_id
|
|
1025
|
+
force: params.force
|
|
1094
1026
|
}
|
|
1095
1027
|
});
|
|
1096
1028
|
const message = started.message ?? null;
|
|
@@ -1098,39 +1030,34 @@ function gitSyncResource(transport) {
|
|
|
1098
1030
|
message,
|
|
1099
1031
|
task_id: started.task_id
|
|
1100
1032
|
};
|
|
1101
|
-
const scope = scopeOf(params.worktree_id);
|
|
1102
1033
|
return {
|
|
1103
1034
|
message,
|
|
1104
1035
|
task_id: started.task_id,
|
|
1105
|
-
final: await settle(params.wait,
|
|
1036
|
+
final: await settle(params.wait, options)
|
|
1106
1037
|
};
|
|
1107
1038
|
}
|
|
1108
1039
|
/**
|
|
1109
|
-
* Export
|
|
1110
|
-
* `wait` to poll that task until it reaches a terminal status.
|
|
1111
|
-
* scope is already on — the worktree's own inside a worktree, the tracked one in the main app.
|
|
1040
|
+
* Export Metabase's content to the remote. The endpoint queues a task and returns at once; pass
|
|
1041
|
+
* `wait` to poll that task until it reaches a terminal status.
|
|
1112
1042
|
*/
|
|
1113
|
-
async function exportToRemote(params, options = {}) {
|
|
1043
|
+
async function exportToRemote(params = {}, options = {}) {
|
|
1114
1044
|
const started = await transport.requestParsed(SyncExportStarted, "/api/ee/remote-sync/export", {
|
|
1115
1045
|
...options,
|
|
1116
1046
|
method: "POST",
|
|
1117
1047
|
body: {
|
|
1118
1048
|
branch: params.branch,
|
|
1119
1049
|
message: params.message,
|
|
1120
|
-
force: params.force
|
|
1121
|
-
merge: params.merge,
|
|
1122
|
-
worktree_id: params.worktree_id
|
|
1050
|
+
force: params.force
|
|
1123
1051
|
}
|
|
1124
1052
|
});
|
|
1125
1053
|
if (params.wait === void 0) return {
|
|
1126
1054
|
message: started.message,
|
|
1127
1055
|
task_id: started.task_id
|
|
1128
1056
|
};
|
|
1129
|
-
const scope = scopeOf(params.worktree_id);
|
|
1130
1057
|
return {
|
|
1131
1058
|
message: started.message,
|
|
1132
1059
|
task_id: started.task_id,
|
|
1133
|
-
final: await settle(params.wait,
|
|
1060
|
+
final: await settle(params.wait, options)
|
|
1134
1061
|
};
|
|
1135
1062
|
}
|
|
1136
1063
|
/**
|
|
@@ -1155,7 +1082,7 @@ function gitSyncResource(transport) {
|
|
|
1155
1082
|
status: started.status,
|
|
1156
1083
|
message: started.message,
|
|
1157
1084
|
task_id: started.task_id,
|
|
1158
|
-
final: await settle(params.wait,
|
|
1085
|
+
final: await settle(params.wait, options)
|
|
1159
1086
|
};
|
|
1160
1087
|
}
|
|
1161
1088
|
/** List the branches the configured remote carries. */
|
|
@@ -1165,49 +1092,12 @@ function gitSyncResource(transport) {
|
|
|
1165
1092
|
total: null
|
|
1166
1093
|
};
|
|
1167
1094
|
}
|
|
1168
|
-
/**
|
|
1169
|
-
* Create a branch on the remote from the branch git-sync is on. The instance checks the new
|
|
1170
|
-
* branch out by default; `checkout: false` creates it and leaves the instance where it is, which
|
|
1171
|
-
* is what checking a branch out into a worktree wants.
|
|
1172
|
-
*/
|
|
1095
|
+
/** Create a branch on the remote and point git-sync at it. */
|
|
1173
1096
|
async function createBranch(params, options = {}) {
|
|
1174
1097
|
return transport.requestParsed(SyncBranchCreated, "/api/ee/remote-sync/create-branch", {
|
|
1175
1098
|
...options,
|
|
1176
1099
|
method: "POST",
|
|
1177
|
-
body: {
|
|
1178
|
-
name: params.name,
|
|
1179
|
-
checkout: params.checkout
|
|
1180
|
-
}
|
|
1181
|
-
});
|
|
1182
|
-
}
|
|
1183
|
-
/** List the remote-sync worktrees the caller can read. Worktrees are superuser-only. */
|
|
1184
|
-
async function worktrees(options = {}) {
|
|
1185
|
-
return {
|
|
1186
|
-
data: await transport.requestParsed(WorktreeApiList, "/api/ee/remote-sync/worktree", { ...options }),
|
|
1187
|
-
total: null
|
|
1188
|
-
};
|
|
1189
|
-
}
|
|
1190
|
-
/** Get a single remote-sync worktree by id. */
|
|
1191
|
-
async function getWorktree(id, options = {}) {
|
|
1192
|
-
return transport.requestParsed(Worktree, `/api/ee/remote-sync/worktree/${id}`, { ...options });
|
|
1193
|
-
}
|
|
1194
|
-
/**
|
|
1195
|
-
* Create a remote-sync worktree for a branch. The branch is not created here — it is expected to
|
|
1196
|
-
* already exist on the remote — and its content is materialized by a subsequent import.
|
|
1197
|
-
*/
|
|
1198
|
-
async function createWorktree(params, options = {}) {
|
|
1199
|
-
return transport.requestParsed(Worktree, "/api/ee/remote-sync/worktree", {
|
|
1200
|
-
...options,
|
|
1201
|
-
method: "POST",
|
|
1202
|
-
body: { branch: params.branch }
|
|
1203
|
-
});
|
|
1204
|
-
}
|
|
1205
|
-
/** Delete a remote-sync worktree along with every piece of content it checked out. */
|
|
1206
|
-
async function deleteWorktree(id, options = {}) {
|
|
1207
|
-
await transport.requestRaw(`/api/ee/remote-sync/worktree/${id}`, {
|
|
1208
|
-
...options,
|
|
1209
|
-
method: "DELETE",
|
|
1210
|
-
expectContentType: "binary"
|
|
1100
|
+
body: { name: params.name }
|
|
1211
1101
|
});
|
|
1212
1102
|
}
|
|
1213
1103
|
/**
|
|
@@ -1243,14 +1133,14 @@ function gitSyncResource(transport) {
|
|
|
1243
1133
|
return fetchOptionalParsed(transport, "/api/setting/remote-sync-branch", RemoteSyncSetting, options);
|
|
1244
1134
|
}
|
|
1245
1135
|
/**
|
|
1246
|
-
* Poll the
|
|
1136
|
+
* Poll the current task until it reaches a terminal status. A server with no task at all
|
|
1247
1137
|
* answers null, which is terminal in the same sense: nothing further will happen.
|
|
1248
1138
|
*/
|
|
1249
|
-
async function waitForTask(wait,
|
|
1250
|
-
return settle(wait,
|
|
1139
|
+
async function waitForTask(wait, options = {}) {
|
|
1140
|
+
return settle(wait, options);
|
|
1251
1141
|
}
|
|
1252
|
-
async function settle(wait,
|
|
1253
|
-
return pollUntil(async (signal) => currentTask(
|
|
1142
|
+
async function settle(wait, options) {
|
|
1143
|
+
return pollUntil(async (signal) => currentTask({
|
|
1254
1144
|
...options,
|
|
1255
1145
|
signal
|
|
1256
1146
|
}), (task) => task === null || isSyncTaskTerminal(task.status), wait);
|
|
@@ -1266,11 +1156,6 @@ function gitSyncResource(transport) {
|
|
|
1266
1156
|
stash,
|
|
1267
1157
|
branches,
|
|
1268
1158
|
createBranch,
|
|
1269
|
-
exportPreflight,
|
|
1270
|
-
worktrees,
|
|
1271
|
-
getWorktree,
|
|
1272
|
-
createWorktree,
|
|
1273
|
-
deleteWorktree,
|
|
1274
1159
|
setCollectionSynced,
|
|
1275
1160
|
syncedCollections,
|
|
1276
1161
|
remoteUrl,
|
|
@@ -1293,15 +1178,9 @@ const LibraryCollectionInfo = Collection.pick({
|
|
|
1293
1178
|
is_remote_synced: true
|
|
1294
1179
|
}).strip();
|
|
1295
1180
|
function libraryResource(transport) {
|
|
1296
|
-
/**
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
*/
|
|
1300
|
-
async function get(params = {}, options = {}) {
|
|
1301
|
-
const result = await transport.requestParsed(LibraryOrAbsent, LIBRARY_ROOT_PATH, {
|
|
1302
|
-
...options,
|
|
1303
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
1304
|
-
});
|
|
1181
|
+
/** Get the Library root and its child collections, or `null` on an instance that has none. */
|
|
1182
|
+
async function get(options = {}) {
|
|
1183
|
+
const result = await transport.requestParsed(LibraryOrAbsent, LIBRARY_ROOT_PATH, { ...options });
|
|
1305
1184
|
if (!("effective_children" in result)) return null;
|
|
1306
1185
|
const infoById = await libraryCollectionsById(options);
|
|
1307
1186
|
const effective_children = result.effective_children.map((child) => {
|
|
@@ -1332,13 +1211,13 @@ function libraryResource(transport) {
|
|
|
1332
1211
|
* back from a refetch, which together make this idempotent.
|
|
1333
1212
|
*/
|
|
1334
1213
|
async function create(options = {}) {
|
|
1335
|
-
const existing = await get(
|
|
1214
|
+
const existing = await get(options);
|
|
1336
1215
|
if (existing !== null) return existing;
|
|
1337
1216
|
await transport.requestRaw(LIBRARY_ROOT_PATH, {
|
|
1338
1217
|
...options,
|
|
1339
1218
|
method: "POST"
|
|
1340
1219
|
});
|
|
1341
|
-
const created = await get(
|
|
1220
|
+
const created = await get(options);
|
|
1342
1221
|
if (created === null) throw new Error(`Library was not created after POST ${LIBRARY_ROOT_PATH}`);
|
|
1343
1222
|
return created;
|
|
1344
1223
|
}
|
|
@@ -1591,9 +1470,8 @@ function searchResource(transport) {
|
|
|
1591
1470
|
/**
|
|
1592
1471
|
* Search over the instance's content, ranked against `q`. `models` narrows which kinds of entity
|
|
1593
1472
|
* may match, `archived` swaps the active set for the archived one, `table_db_id` restricts to
|
|
1594
|
-
* items on one database, `verified` to verified content, `
|
|
1595
|
-
*
|
|
1596
|
-
* applies before ranking hydration.
|
|
1473
|
+
* items on one database, `verified` to verified content, and `limit`/`offset` are the window the
|
|
1474
|
+
* server applies before ranking hydration.
|
|
1597
1475
|
*/
|
|
1598
1476
|
async function query(params = {}, options = {}) {
|
|
1599
1477
|
const response = await transport.requestParsed(SearchApiResponse, "/api/search", {
|
|
@@ -1605,8 +1483,7 @@ function searchResource(transport) {
|
|
|
1605
1483
|
limit: params.limit,
|
|
1606
1484
|
offset: params.offset,
|
|
1607
1485
|
table_db_id: params.table_db_id,
|
|
1608
|
-
verified: params.verified
|
|
1609
|
-
"worktree-id": params["worktree-id"]
|
|
1486
|
+
verified: params.verified
|
|
1610
1487
|
}
|
|
1611
1488
|
});
|
|
1612
1489
|
return {
|
|
@@ -1726,18 +1603,12 @@ function setupResource(transport) {
|
|
|
1726
1603
|
//#region ../client/src/resources/snippet.ts
|
|
1727
1604
|
const SnippetApiList = z.array(Snippet);
|
|
1728
1605
|
function snippetResource(transport) {
|
|
1729
|
-
/**
|
|
1730
|
-
* List native query snippets. `archived` swaps the listing to archived snippets, and
|
|
1731
|
-
* `worktree-id` lists only the snippets checked out into that remote-sync worktree.
|
|
1732
|
-
*/
|
|
1606
|
+
/** List native query snippets. `archived` swaps the listing to archived snippets. */
|
|
1733
1607
|
async function list(params = {}, options = {}) {
|
|
1734
1608
|
return {
|
|
1735
1609
|
data: await transport.requestParsed(SnippetApiList, "/api/native-query-snippet", {
|
|
1736
1610
|
...options,
|
|
1737
|
-
query: {
|
|
1738
|
-
archived: params.archived,
|
|
1739
|
-
"worktree-id": params["worktree-id"]
|
|
1740
|
-
}
|
|
1611
|
+
query: { archived: params.archived }
|
|
1741
1612
|
}),
|
|
1742
1613
|
total: null
|
|
1743
1614
|
};
|
|
@@ -2063,16 +1934,10 @@ const TransformRunKickoff = z.object({
|
|
|
2063
1934
|
run_id: z.number().int().positive().nullable()
|
|
2064
1935
|
});
|
|
2065
1936
|
function transformResource(transport) {
|
|
2066
|
-
/**
|
|
2067
|
-
|
|
2068
|
-
* into that remote-sync worktree; without it the listing is the main app's.
|
|
2069
|
-
*/
|
|
2070
|
-
async function list(params = {}, options = {}) {
|
|
1937
|
+
/** List every transform the caller can see. */
|
|
1938
|
+
async function list(options = {}) {
|
|
2071
1939
|
return {
|
|
2072
|
-
data: await transport.requestParsed(TransformApiList, "/api/transform", {
|
|
2073
|
-
...options,
|
|
2074
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
2075
|
-
}),
|
|
1940
|
+
data: await transport.requestParsed(TransformApiList, "/api/transform", { ...options }),
|
|
2076
1941
|
total: null
|
|
2077
1942
|
};
|
|
2078
1943
|
}
|
|
@@ -2207,16 +2072,10 @@ function linkedTableId(transform) {
|
|
|
2207
2072
|
//#region ../client/src/resources/transform-tag.ts
|
|
2208
2073
|
const TransformTagApiList = z.array(TransformTag);
|
|
2209
2074
|
function transformTagResource(transport) {
|
|
2210
|
-
/**
|
|
2211
|
-
|
|
2212
|
-
* the tags checked out into that remote-sync worktree; without it the listing is the main app's.
|
|
2213
|
-
*/
|
|
2214
|
-
async function list(params = {}, options = {}) {
|
|
2075
|
+
/** List every transform tag the caller can see, built-in tags included. */
|
|
2076
|
+
async function list(options = {}) {
|
|
2215
2077
|
return {
|
|
2216
|
-
data: await transport.requestParsed(TransformTagApiList, "/api/transform-tag", {
|
|
2217
|
-
...options,
|
|
2218
|
-
query: { "worktree-id": params["worktree-id"] }
|
|
2219
|
-
}),
|
|
2078
|
+
data: await transport.requestParsed(TransformTagApiList, "/api/transform-tag", { ...options }),
|
|
2220
2079
|
total: null
|
|
2221
2080
|
};
|
|
2222
2081
|
}
|
|
@@ -2252,6 +2111,68 @@ function transformTagResource(transport) {
|
|
|
2252
2111
|
};
|
|
2253
2112
|
}
|
|
2254
2113
|
//#endregion
|
|
2114
|
+
//#region ../client/src/resources/transform-test.ts
|
|
2115
|
+
const TransformTestApiList = z.array(TransformTest);
|
|
2116
|
+
function transformTestResource(transport) {
|
|
2117
|
+
/** List the transform tests the caller can see, optionally only those of one transform. */
|
|
2118
|
+
async function list(params = {}, options = {}) {
|
|
2119
|
+
return {
|
|
2120
|
+
data: await transport.requestParsed(TransformTestApiList, "/api/transform-test", {
|
|
2121
|
+
...options,
|
|
2122
|
+
query: { "transform-id": params["transform-id"] }
|
|
2123
|
+
}),
|
|
2124
|
+
total: null
|
|
2125
|
+
};
|
|
2126
|
+
}
|
|
2127
|
+
/** Get one transform test by id. */
|
|
2128
|
+
async function get(id, options = {}) {
|
|
2129
|
+
return transport.requestParsed(TransformTest, `/api/transform-test/${id}`, { ...options });
|
|
2130
|
+
}
|
|
2131
|
+
/** Create a transform test — the inputs standing in for the transform's source tables, and the expectations checked against its output. */
|
|
2132
|
+
async function create(params, options = {}) {
|
|
2133
|
+
return transport.requestParsed(TransformTest, "/api/transform-test", {
|
|
2134
|
+
...options,
|
|
2135
|
+
method: "POST",
|
|
2136
|
+
body: params
|
|
2137
|
+
});
|
|
2138
|
+
}
|
|
2139
|
+
/** Update a transform test by id, patching only the fields the body carries. */
|
|
2140
|
+
async function update(id, params, options = {}) {
|
|
2141
|
+
return transport.requestParsed(TransformTest, `/api/transform-test/${id}`, {
|
|
2142
|
+
...options,
|
|
2143
|
+
method: "PUT",
|
|
2144
|
+
body: params
|
|
2145
|
+
});
|
|
2146
|
+
}
|
|
2147
|
+
/** Delete a transform test by id. */
|
|
2148
|
+
async function remove(id, options = {}) {
|
|
2149
|
+
await transport.requestRaw(`/api/transform-test/${id}`, {
|
|
2150
|
+
...options,
|
|
2151
|
+
method: "DELETE",
|
|
2152
|
+
expectContentType: "binary"
|
|
2153
|
+
});
|
|
2154
|
+
}
|
|
2155
|
+
/**
|
|
2156
|
+
* Run a transform test against temp tables and report what each expectation found. The transform
|
|
2157
|
+
* itself never runs against real tables, and a failing expectation is a result rather than an
|
|
2158
|
+
* error.
|
|
2159
|
+
*/
|
|
2160
|
+
async function run(id, options = {}) {
|
|
2161
|
+
return transport.requestParsed(TransformTestRunResult, `/api/transform-test/${id}/run`, {
|
|
2162
|
+
...options,
|
|
2163
|
+
method: "POST"
|
|
2164
|
+
});
|
|
2165
|
+
}
|
|
2166
|
+
return {
|
|
2167
|
+
list,
|
|
2168
|
+
get,
|
|
2169
|
+
create,
|
|
2170
|
+
update,
|
|
2171
|
+
delete: remove,
|
|
2172
|
+
run
|
|
2173
|
+
};
|
|
2174
|
+
}
|
|
2175
|
+
//#endregion
|
|
2255
2176
|
//#region ../client/src/resources/upload.ts
|
|
2256
2177
|
const UPLOAD_TABLE_ID_HEADER = "metabase-table-id";
|
|
2257
2178
|
function uploadResource(transport) {
|
|
@@ -2349,6 +2270,7 @@ function createClient(config, options) {
|
|
|
2349
2270
|
transform: transformResource(transport),
|
|
2350
2271
|
transformJob: transformJobResource(transport),
|
|
2351
2272
|
transformTag: transformTagResource(transport),
|
|
2273
|
+
transformTest: transformTestResource(transport),
|
|
2352
2274
|
upload: uploadResource(transport),
|
|
2353
2275
|
user: userResource(transport),
|
|
2354
2276
|
requestParsed: transport.requestParsed,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as CollectionCompact, s as CollectionItemCompact } from "./collection-
|
|
1
|
+
import { i as CollectionCompact, s as CollectionItemCompact } from "./collection-CfulNRBG.mjs";
|
|
2
2
|
//#region src/output/views/collection.ts
|
|
3
3
|
const collectionView = {
|
|
4
4
|
compactPick: CollectionCompact,
|
|
@@ -61,8 +61,7 @@ const Collection = z.object({
|
|
|
61
61
|
entity_id: z.string().nullable().optional(),
|
|
62
62
|
slug: z.string().optional(),
|
|
63
63
|
can_write: z.boolean().optional(),
|
|
64
|
-
is_remote_synced: z.boolean().nullable().optional()
|
|
65
|
-
worktree_id: z.number().int().positive().nullable().optional()
|
|
64
|
+
is_remote_synced: z.boolean().nullable().optional()
|
|
66
65
|
}).loose();
|
|
67
66
|
const CollectionCompact = Collection.pick({
|
|
68
67
|
id: true,
|
|
@@ -74,8 +73,7 @@ const CollectionCompact = Collection.pick({
|
|
|
74
73
|
type: true,
|
|
75
74
|
authority_level: true,
|
|
76
75
|
is_personal: true,
|
|
77
|
-
is_remote_synced: true
|
|
78
|
-
worktree_id: true
|
|
76
|
+
is_remote_synced: true
|
|
79
77
|
}).strip();
|
|
80
78
|
const CollectionItem = z.object({
|
|
81
79
|
id: z.number().int(),
|
|
@@ -115,8 +113,7 @@ const CollectionCreateInput = z.object({
|
|
|
115
113
|
description: z.string().min(1).nullable().optional(),
|
|
116
114
|
parent_id: z.number().int().positive().nullable().optional(),
|
|
117
115
|
namespace: CollectionNamespace.nullable().optional(),
|
|
118
|
-
authority_level: CollectionAuthorityLevel.nullable().optional()
|
|
119
|
-
worktree_id: z.number().int().positive().nullable().optional()
|
|
116
|
+
authority_level: CollectionAuthorityLevel.nullable().optional()
|
|
120
117
|
}).loose();
|
|
121
118
|
z.object({
|
|
122
119
|
name: z.string().min(1).optional(),
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
|
+
//#region src/commands/collection/index.ts
|
|
3
|
+
var collection_default = defineCommandGroup({
|
|
4
|
+
name: "collection",
|
|
5
|
+
description: "Manage Metabase collections",
|
|
6
|
+
skills: [{
|
|
7
|
+
skill: "core",
|
|
8
|
+
purpose: "collection ref forms and the transforms namespace"
|
|
9
|
+
}],
|
|
10
|
+
subCommands: {
|
|
11
|
+
list: () => import("./list-D6qH2PUE.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-DiRtfImy.mjs").then((mod) => mod.default),
|
|
13
|
+
items: () => import("./items-BSAEWZlw.mjs").then((mod) => mod.default),
|
|
14
|
+
tree: () => import("./tree-CQ0FXBnn.mjs").then((mod) => mod.default),
|
|
15
|
+
create: () => import("./create-BxWMTy6i.mjs").then((mod) => mod.default),
|
|
16
|
+
archive: () => import("./archive-D1xZRRRA.mjs").then((mod) => mod.default)
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//#endregion
|
|
20
|
+
export { collection_default as default };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group-
|
|
1
|
+
import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
|
|
2
2
|
//#region src/commands/content-translation/index.ts
|
|
3
3
|
var content_translation_default = defineCommandGroup({
|
|
4
4
|
name: "content-translation",
|
|
5
5
|
description: "Download or replace the content translation dictionary",
|
|
6
6
|
subCommands: {
|
|
7
|
-
download: () => import("./download-
|
|
8
|
-
upload: () => import("./upload-
|
|
7
|
+
download: () => import("./download-B-l6ajeo.mjs").then((mod) => mod.default),
|
|
8
|
+
upload: () => import("./upload-DUViVk1x.mjs").then((mod) => mod.default)
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
1
|
+
import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-CJUDVwBu.mjs";
|
|
3
3
|
import { t as readBody } from "./body-DxRSAMNC.mjs";
|
|
4
4
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
5
5
|
import { r as TimelineCreateInput, t as Timeline } from "./timeline-CCSU2qOS.mjs";
|
|
@@ -12,7 +12,6 @@ var create_default = defineMetabaseCommand({
|
|
|
12
12
|
},
|
|
13
13
|
details: "The JSON body needs `name`; optional fields: `description`, `icon` (star|cake|mail|warning|bell|cloud, default star), `collection_id` (null = root collection), `default`.",
|
|
14
14
|
capabilities: { minVersion: 58 },
|
|
15
|
-
worktree: "main-only",
|
|
16
15
|
args: {
|
|
17
16
|
...outputFlags,
|
|
18
17
|
...profileFlag,
|