@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.
Files changed (249) hide show
  1. package/dist/{add-collection-CxzzDG4z.mjs → add-collection-CVDgC7C6.mjs} +5 -6
  2. package/dist/{alert-CQ7Az16h.mjs → alert-Co9m8k5l.mjs} +7 -7
  3. package/dist/{alerts-DmwyyBfW.mjs → alerts-DjZGGxOy.mjs} +6 -7
  4. package/dist/{append-B0avMkvW.mjs → append-BXqeNFzW.mjs} +3 -4
  5. package/dist/{archive-CMTHh4-w.mjs → archive-Bhk1IqGH.mjs} +3 -4
  6. package/dist/archive-CH9osnGq.mjs +32 -0
  7. package/dist/{archive-BQ50OZ7y.mjs → archive-CUGpIXDT.mjs} +3 -4
  8. package/dist/{archive-THcEfy9B.mjs → archive-CXYUkzZo.mjs} +4 -5
  9. package/dist/{archive-Cvrkz8F8.mjs → archive-Cchi-tqq.mjs} +4 -5
  10. package/dist/{archive-BPSNe0Ul.mjs → archive-Csku9zDp.mjs} +3 -4
  11. package/dist/{archive-BZEu6UfT.mjs → archive-CzcjKpUC.mjs} +5 -6
  12. package/dist/archive-D1xZRRRA.mjs +32 -0
  13. package/dist/{archive-DCyeRNfV.mjs → archive-DvV3oLCg.mjs} +3 -4
  14. package/dist/{archive-DFofUIEC.mjs → archive-I61vFPxv.mjs} +3 -4
  15. package/dist/{archive-BVblae-p.mjs → archive-pA5UZn1f.mjs} +3 -4
  16. package/dist/{auth-BEEkuu4J.mjs → auth-BKgMIAKH.mjs} +5 -5
  17. package/dist/{branches-CmWc8NyL.mjs → branches-B96keFsO.mjs} +3 -4
  18. package/dist/{cancel-DrQqmxvn.mjs → cancel-6GPBlUkr.mjs} +3 -4
  19. package/dist/cancel-task-BIGAgcKk.mjs +28 -0
  20. package/dist/{card-CrBGUkGQ.mjs → card-DZxRmver.mjs} +0 -1
  21. package/dist/card-zluRR7xD.mjs +24 -0
  22. package/dist/{card-BEeafd4Y.mjs → card-zyUkr2nS.mjs} +1 -1
  23. package/dist/{cards-M_6X8wCI.mjs → cards-DY6Togtl.mjs} +4 -5
  24. package/dist/cli.mjs +48 -142
  25. package/dist/{client-DYD8WZYy.mjs → client-C9HBWl6A.mjs} +129 -207
  26. package/dist/{collection-CJHqsFKP.mjs → collection-CGoVLvcD.mjs} +1 -1
  27. package/dist/{collection-BxE7OzcQ.mjs → collection-CfulNRBG.mjs} +3 -6
  28. package/dist/collection-CrIkQWUK.mjs +20 -0
  29. package/dist/{content-translation-C8MlXPOF.mjs → content-translation-Cg_VW3kW.mjs} +3 -3
  30. package/dist/{create-BqpkCjx4.mjs → create-BeNQQTPt.mjs} +2 -3
  31. package/dist/{create-BA_tTDEk.mjs → create-BkIoWkzP.mjs} +3 -4
  32. package/dist/{create-CJ7Am4Gc.mjs → create-BpjBffBq.mjs} +3 -4
  33. package/dist/create-BsDJATJM.mjs +34 -0
  34. package/dist/{create-CY-SzM66.mjs → create-BuWV1GpI2.mjs} +9 -14
  35. package/dist/{create-D0anrINz.mjs → create-BxWMTy6i.mjs} +8 -13
  36. package/dist/{create-ldrghMd1.mjs → create-CK5MABYu.mjs} +2 -3
  37. package/dist/{create-ByuJ6T4k.mjs → create-CaDAT54M.mjs} +5 -6
  38. package/dist/{create-z-oMrlfT.mjs → create-D_pNL2X9.mjs} +4 -5
  39. package/dist/{create-BLWwN0uw.mjs → create-DqCdW3tt.mjs} +3 -4
  40. package/dist/{create-BupBEwR2.mjs → create-JZevXtCI.mjs} +6 -11
  41. package/dist/{create-hTc131aX.mjs → create-V2Bdeu8p.mjs} +2 -3
  42. package/dist/{create-CoubLR5o.mjs → create-bH-qAv03.mjs} +3 -4
  43. package/dist/create-branch-DN9PrlRR.mjs +35 -0
  44. package/dist/{create-C7iooS6W.mjs → create-cHltWf0e.mjs} +7 -13
  45. package/dist/{create-myI6doga.mjs → create-cSpqEzKH.mjs} +3 -4
  46. package/dist/{create-C2XFfbjx.mjs → create-mzHtey5k.mjs} +2 -3
  47. package/dist/{csv-DBNzJiWK.mjs → csv-CVKLuIuS.mjs} +3 -4
  48. package/dist/{current-task-YzemU0Ic.mjs → current-task-Dnm3JaWg.mjs} +7 -12
  49. package/dist/{dashboard-B1mpfCq_.mjs → dashboard-SxUrG3Cg.mjs} +10 -10
  50. package/dist/{db-1tLH3nYI.mjs → db-BnhuXAP9.mjs} +7 -7
  51. package/dist/{delete-CpKH5ia4.mjs → delete-6lroLZIE.mjs} +4 -5
  52. package/dist/{delete-DjAUp9mk.mjs → delete-BClvnlBc.mjs} +4 -5
  53. package/dist/delete-C3xeqTzS.mjs +44 -0
  54. package/dist/{delete-eAUB7p-f.mjs → delete-CH0FsDBg.mjs} +5 -10
  55. package/dist/{delete-CD_-B4Kq.mjs → delete-DDVNawxh.mjs} +4 -5
  56. package/dist/{delete-QNgBV6eS.mjs → delete-Dn6VJuyR.mjs} +5 -10
  57. package/dist/{delete-runtime-b2_ZMSjj.mjs → delete-runtime-D74s6vhu.mjs} +1 -1
  58. package/dist/{delete-table-DamlxnSO.mjs → delete-table-C6LPzUDg.mjs} +5 -10
  59. package/dist/dependencies-vr51EFIu.mjs +36 -0
  60. package/dist/dirty-W0PzG3Yt.mjs +31 -0
  61. package/dist/document-B1w9aIq7.mjs +19 -0
  62. package/dist/{download-C4v7u-AV.mjs → download-B-l6ajeo.mjs} +2 -3
  63. package/dist/{eid-CP35PdEF.mjs → eid-BGl_X67N.mjs} +2 -3
  64. package/dist/{events-DmbzKIh_.mjs → events-BRRnroJb.mjs} +4 -5
  65. package/dist/{export-i8D6laBG.mjs → export-DEPLFq_E.mjs} +12 -25
  66. package/dist/{field-BKn9bt7I.mjs → field-BXaUzJvx.mjs} +5 -5
  67. package/dist/{fields-8_p81BqN.mjs → fields-LFMSMV5Z.mjs} +4 -5
  68. package/dist/{get-BvW21ujw.mjs → get-7-OiP8ma.mjs} +3 -4
  69. package/dist/{get-vvs0qzzM.mjs → get-B6lWlGeD.mjs} +3 -4
  70. package/dist/get-BM7MA5-7.mjs +31 -0
  71. package/dist/{get-CNEQK0-9.mjs → get-BUiHdwdU.mjs} +4 -5
  72. package/dist/{get-BHGgXqUq.mjs → get-BempHTsm.mjs} +3 -4
  73. package/dist/{get-CAzSP-7o.mjs → get-Bjvu5GM7.mjs} +3 -4
  74. package/dist/{get-vrccOMBk.mjs → get-BvI5QqjY.mjs} +3 -4
  75. package/dist/{get-BBOfshz1.mjs → get-C2DWxXYb.mjs} +3 -4
  76. package/dist/get-CapP9GiI.mjs +32 -0
  77. package/dist/{get-N4dOaTsp.mjs → get-Cjx_5Zm-.mjs} +4 -5
  78. package/dist/{get-DFkbi5L3.mjs → get-DAsSPKxF.mjs} +2 -3
  79. package/dist/{get-DnCE7K0y.mjs → get-DCHhq5Qv.mjs} +4 -5
  80. package/dist/get-DCf0O3GJ.mjs +31 -0
  81. package/dist/{get-CPTbySa7.mjs → get-DhxE02Ia.mjs} +3 -4
  82. package/dist/get-DiRtfImy.mjs +36 -0
  83. package/dist/{get-Bds6Izxk.mjs → get-DlQHyv4D.mjs} +3 -4
  84. package/dist/{get-DvLuY5Xu.mjs → get-Du11BNRd.mjs} +9 -17
  85. package/dist/{get-B0g6VMBC.mjs → get-DvCgLmPW.mjs} +3 -4
  86. package/dist/{get-BbHPFNqr.mjs → get-M3zgKoZr.mjs} +3 -4
  87. package/dist/{get-CWf46UFu.mjs → get-XcSH5Zyz.mjs} +5 -6
  88. package/dist/{get-run-4Ng8_awa.mjs → get-run-UJmyRo7H.mjs} +5 -6
  89. package/dist/{git-sync-DLzJrdMi.mjs → git-sync-BDnxPrqU.mjs} +3 -22
  90. package/dist/git-sync-DM5Nuv3a.mjs +28 -0
  91. package/dist/{git-sync-LQIVMNxO.mjs → git-sync-DxD_ng48.mjs} +2 -31
  92. package/dist/{group-YN6jj2AN.mjs → group-DBM87IgC.mjs} +2 -3
  93. package/dist/{has-remote-changes-BXPGI9xG.mjs → has-remote-changes-DmhFpgJe.mjs} +6 -14
  94. package/dist/{import-BoxOkA-G.mjs → import-BRC0TzWQ.mjs} +11 -28
  95. package/dist/{is-dirty-Cwxq4_gd.mjs → is-dirty-CT9e5vSd.mjs} +6 -15
  96. package/dist/{items-Cv6iAzrI.mjs → items-BSAEWZlw.mjs} +9 -17
  97. package/dist/{library-Cfw6eF35.mjs → library-ClLgrAXy.mjs} +1 -1
  98. package/dist/{library-fhVn1KDC.mjs → library-DfYAT2Ep.mjs} +1 -1
  99. package/dist/{library-CRaOhJnj.mjs → library-Zxh_MRVL.mjs} +5 -5
  100. package/dist/list-08dyODsP.mjs +36 -0
  101. package/dist/{list-C8J3n8B8.mjs → list-BOUmEn2X.mjs} +3 -4
  102. package/dist/{list--2T-GUEF.mjs → list-BZbC260R.mjs} +4 -5
  103. package/dist/{list-9uvk9dIA.mjs → list-BxCk3QTy.mjs} +3 -4
  104. package/dist/{list-BLJkJp5a.mjs → list-C3IRtLP6.mjs} +3 -4
  105. package/dist/list-CAalCea_.mjs +28 -0
  106. package/dist/{list-DhrapAcy.mjs → list-CleMHJBY.mjs} +3 -4
  107. package/dist/list-D6qH2PUE.mjs +38 -0
  108. package/dist/{list-oAAgU5uE.mjs → list-D9RmPIEJ.mjs} +9 -16
  109. package/dist/{list-DOaWCx8S.mjs → list-DCA0T8bS.mjs} +8 -17
  110. package/dist/{list-L2U1l6R4.mjs → list-DCBLu0KG.mjs} +3 -4
  111. package/dist/list-DDFk1IFP.mjs +35 -0
  112. package/dist/{list-WSJLnunb.mjs → list-DGLK2lso.mjs} +3 -4
  113. package/dist/{list-BwkfWtP2.mjs → list-DYlphSxV.mjs} +3 -4
  114. package/dist/{list-DOZNpX4b.mjs → list-De0ebgzc.mjs} +4 -5
  115. package/dist/{list-tutXEQRW.mjs → list-Dqyd2TZI.mjs} +4 -5
  116. package/dist/list-Drm6l_tt.mjs +28 -0
  117. package/dist/{list-BBp9XjYs.mjs → list-QFieRzSf.mjs} +3 -4
  118. package/dist/{list-CtZAu4im.mjs → list-kIMBSzS-.mjs} +4 -5
  119. package/dist/{login-DqWRF3Og.mjs → login-DDHEyjWz.mjs} +4 -5
  120. package/dist/{logout-ChCz1bkf.mjs → logout-BbB0vvQN.mjs} +2 -3
  121. package/dist/{measure-C5dIdFj1.mjs → measure-CGuwA0KX.mjs} +6 -6
  122. package/dist/{notification-DVrLkjFT.mjs → notification-Fcq1fIPw.mjs} +1 -1
  123. package/dist/{parameter-values-Dy4cBs5y.mjs → parameter-values-CI6-CkB7.mjs} +3 -4
  124. package/dist/{parse-id-DDCn3VXx.mjs → parse-id-CdZ0-1TM.mjs} +1 -1
  125. package/dist/{parse-ref-Wv21Roup.mjs → parse-ref-ibKVB0J4.mjs} +2 -6
  126. package/dist/{path-IYhuzjQV.mjs → path-Df2itv7t.mjs} +4 -5
  127. package/dist/{preflight-HLUVr2Yf.mjs → preflight-CoF1Em99.mjs} +1 -1
  128. package/dist/{publish-CMkCSt8i.mjs → publish-xUBySB1T.mjs} +4 -5
  129. package/dist/{pulse-a-83M4DV.mjs → pulse-DhG6I9mI.mjs} +1 -1
  130. package/dist/{query-tWQAV9pb.mjs → query-BkZvffIM.mjs} +6 -7
  131. package/dist/{query-Bka77J62.mjs → query-CmkC8sfu.mjs} +6 -7
  132. package/dist/{query-result-E4Q-Gra6.mjs → query-result-DBDwk8TS.mjs} +1 -1
  133. package/dist/{remove-collection-BV9wRQZD.mjs → remove-collection-DFfmuTwD.mjs} +5 -6
  134. package/dist/{render-DHjCcUXn.mjs → render-CI93iP0I.mjs} +1 -7
  135. package/dist/{replace-mt47dlRV.mjs → replace-DjoDBCLa.mjs} +3 -4
  136. package/dist/{rescan-values-6cRjcpTs.mjs → rescan-values-Ca2Wa0A2.mjs} +3 -4
  137. package/dist/{run-DI_pDxji.mjs → run-BCYATTjE.mjs} +5 -6
  138. package/dist/run-B_-pMw67.mjs +50 -0
  139. package/dist/{run-BmGmC-GQ.mjs → run-CP-chc5O.mjs} +3 -4
  140. package/dist/{runs-9Fu0mug5.mjs → runs-B0ypYKmn.mjs} +6 -7
  141. package/dist/{runtime-CNAZ_FuR.mjs → runtime-CJUDVwBu.mjs} +8 -103
  142. package/dist/{schema-tables-CLG0mtQb.mjs → schema-tables-Nl83e2Zm.mjs} +4 -5
  143. package/dist/{schemas-Cm5NWy59.mjs → schemas-Cp29qgn0.mjs} +4 -5
  144. package/dist/{search-CljYyf2F.mjs → search-BbktlnDC.mjs} +8 -14
  145. package/dist/{segment-IRzlQggt.mjs → segment-BHBoMpL9.mjs} +6 -6
  146. package/dist/{selectors-D4iOP5uB.mjs → selectors-e_0QdkaG.mjs} +2 -2
  147. package/dist/{send-D7DBnQbu.mjs → send-DEGpBT_7.mjs} +3 -4
  148. package/dist/{set-DKN8fuC6.mjs → set-C3tLEVuY.mjs} +2 -3
  149. package/dist/{set-active-CkE0Eiqh.mjs → set-active-CqvLJysE.mjs} +2 -3
  150. package/dist/{setting-CN4l8N-b.mjs → setting-Dwi-Wifx.mjs} +4 -4
  151. package/dist/{setup-BpTptmdO.mjs → setup-CcSVPnEI.mjs} +2 -3
  152. package/dist/{skills-BSAiLI3Z.mjs → skills-Cxi3fKMZ.mjs} +3 -3
  153. package/dist/{skills-hVKSOCUf.mjs → skills-DTCrMcix.mjs} +1 -1
  154. package/dist/{snippet-BxgvQ09J.mjs → snippet-CyKAgIZl.mjs} +2 -5
  155. package/dist/snippet-hrEAI5Yf.mjs +19 -0
  156. package/dist/{snippet-DecHB4Dn.mjs → snippet-oJLaYW9V.mjs} +1 -1
  157. package/dist/{stash-DJs6A6BA.mjs → stash-CVhkyRIT.mjs} +6 -7
  158. package/dist/{status-N_2EaWb7.mjs → status-B7tYgPVV.mjs} +6 -15
  159. package/dist/{status-DtwBDRtc.mjs → status-C9uhZuip.mjs} +16 -44
  160. package/dist/{subscription-BnGDp1oy.mjs → subscription-Cj9jyFEB.mjs} +6 -6
  161. package/dist/{subscriptions-BfFwV__x.mjs → subscriptions-B5oVkkZk.mjs} +6 -7
  162. package/dist/{summary-CHiq-4mz.mjs → summary-PVERfPr2.mjs} +3 -4
  163. package/dist/{sync-schema-DhnM-rpm.mjs → sync-schema-CtG6r6Pr.mjs} +4 -5
  164. package/dist/{sync-task-G1K47Nvn.mjs → sync-task-BACcrs0i.mjs} +1 -1
  165. package/dist/{table-BQaiCSNS.mjs → table-6IHwQyr6.mjs} +5 -5
  166. package/dist/timeline-BwQIj-le.mjs +21 -0
  167. package/dist/{timeline-event-B7H1y8s8.mjs → timeline-event-ox_Bw9F4.mjs} +6 -6
  168. package/dist/{transform-BvOEn41C.mjs → transform-D3QX0jxA.mjs} +1 -4
  169. package/dist/{transform-CiDOJGBW.mjs → transform-DoTyyXAu.mjs} +2 -2
  170. package/dist/transform-IPKGUzzd.mjs +28 -0
  171. package/dist/transform-job-COwH1ww7.mjs +22 -0
  172. package/dist/{transform-tag-jBVd6wXd.mjs → transform-tag-CcElGp3C.mjs} +4 -9
  173. package/dist/{transform-tag-DiXWRCQG.mjs → transform-tag-Dmb4u3-Q.mjs} +1 -1
  174. package/dist/{transform-tag-Dip51YBa.mjs → transform-tag-La1wmOTP.mjs} +5 -5
  175. package/dist/transform-test-C4VRGmGm.mjs +149 -0
  176. package/dist/transform-test-DGYx6MCT.mjs +16 -0
  177. package/dist/transform-test-w5hDTx_D.mjs +25 -0
  178. package/dist/{transforms-C-jYgS6z.mjs → transforms-DIgACzP-.mjs} +6 -7
  179. package/dist/tree-CQ0FXBnn.mjs +27 -0
  180. package/dist/{unpublish-BokbnLng.mjs → unpublish-Binr4uOG.mjs} +3 -4
  181. package/dist/{update-B9DcRSBQ.mjs → update-B4lIwY0G.mjs} +10 -16
  182. package/dist/update-B5NYEIHU.mjs +41 -0
  183. package/dist/{update-CPEU8ZEu.mjs → update-BKvSfdXu.mjs} +4 -5
  184. package/dist/{update-D9OTkZhw.mjs → update-BZS5m-vx.mjs} +3 -4
  185. package/dist/{update-C4PbAYgW.mjs → update-BbOX6axn.mjs} +3 -4
  186. package/dist/{update-e7lyQPxq.mjs → update-BiG9eLNH.mjs} +7 -13
  187. package/dist/{update-CpLEEbiJ.mjs → update-CIuoW1M9.mjs} +6 -7
  188. package/dist/{update-BBQInyiJ.mjs → update-CWIhy9Ax.mjs} +4 -5
  189. package/dist/{update-Bc8s1TL1.mjs → update-Cb68f4dx.mjs} +3 -4
  190. package/dist/{update-BErxnZrj.mjs → update-DH9CL61y.mjs} +4 -5
  191. package/dist/{update-AZSXMJqu.mjs → update-Db3j44fi.mjs} +7 -13
  192. package/dist/{update-BCGE5UYC.mjs → update-TDaf7Xbt.mjs} +4 -5
  193. package/dist/{update-dashcard-St-dGcE3.mjs → update-dashcard-DbZ8NlLZ.mjs} +3 -4
  194. package/dist/{update-BRXKLeJH.mjs → update-gGZjfZN3.mjs} +3 -4
  195. package/dist/{update-CfQoYVTc.mjs → update-la0K6wAf.mjs} +3 -4
  196. package/dist/{update-CKL2FtoX.mjs → update-lpLLpKhX.mjs} +4 -5
  197. package/dist/{update-rkbpH0lF.mjs → update-mOqedkLk.mjs} +3 -4
  198. package/dist/{upgrade-CUoRHfVg.mjs → upgrade-BCWXgRmG.mjs} +2 -3
  199. package/dist/upload-BVBs2F69.mjs +13 -0
  200. package/dist/{upload-BPd1Uzxc.mjs → upload-DUViVk1x.mjs} +2 -3
  201. package/dist/{uuid-CFN8LIkP.mjs → uuid-D3CGL8wF.mjs} +2 -3
  202. package/dist/{validate-query-Chc43ezW.mjs → validate-query-DaGYSmpQ.mjs} +1 -1
  203. package/dist/{values-BL_U-Zdw.mjs → values-8XUr04w3.mjs} +3 -4
  204. package/dist/{verify-DnBaRmkI.mjs → verify-deF_hThH.mjs} +2 -2
  205. package/dist/{wait-mPoOZxrw.mjs → wait-Ct0weHol.mjs} +7 -12
  206. package/dist/{wait-flags-DzytMEG8.mjs → wait-flags-Cb-bI0RD.mjs} +2 -2
  207. package/dist/{window-DSb1tqSe.mjs → window-BkvrP0gB.mjs} +1 -1
  208. package/package.json +1 -1
  209. package/skill-data/core/SKILL.md +19 -20
  210. package/skill-data/git-sync/SKILL.md +1 -91
  211. package/skill-data/transform/SKILL.md +60 -10
  212. package/skill-data/transform-test-plan/SKILL.md +170 -0
  213. package/skill-data/transform-test-plan/references/checklist.md +81 -0
  214. package/skill-data/transform-test-plan/references/checks.md +259 -0
  215. package/dist/archive-CqOKKrb2.mjs +0 -38
  216. package/dist/archive-DCjdICg7.mjs +0 -38
  217. package/dist/branch-BSeGrtP7.mjs +0 -28
  218. package/dist/cancel-task-BMQXtjW5.mjs +0 -34
  219. package/dist/card-RlzLDB2z.mjs +0 -24
  220. package/dist/collection-Bhe20ckt.mjs +0 -20
  221. package/dist/create-DwrhcI8r2.mjs +0 -144
  222. package/dist/create-branch-B3BMpF1g.mjs +0 -49
  223. package/dist/delete-D_OgiI4v.mjs +0 -86
  224. package/dist/dependencies-DEx0BsZ3.mjs +0 -41
  225. package/dist/dirty-dC1-Ud0G.mjs +0 -40
  226. package/dist/document-DOJbBWLF.mjs +0 -19
  227. package/dist/export-preflight-B5MvYhm3.mjs +0 -67
  228. package/dist/get-Cfagmy1i.mjs +0 -42
  229. package/dist/get-DwdMvWXU.mjs +0 -44
  230. package/dist/get-jV8G90Zy.mjs +0 -42
  231. package/dist/get-mGEv-kag.mjs +0 -33
  232. package/dist/git-sync-DjoaNmRM.mjs +0 -29
  233. package/dist/list-5Iojbr_p.mjs +0 -37
  234. package/dist/list-BD4onDqO.mjs +0 -37
  235. package/dist/list-C2yL7-CH.mjs +0 -45
  236. package/dist/list-CbbKip6U.mjs +0 -32
  237. package/dist/list-Dg2XeDON.mjs +0 -47
  238. package/dist/pin-BuZ_kg-u.mjs +0 -62
  239. package/dist/scope-DsGuWG5w.mjs +0 -11
  240. package/dist/snippet-LlHz3FdJ.mjs +0 -19
  241. package/dist/timeline-C2VW0Ph6.mjs +0 -21
  242. package/dist/transform-DAf0Y02t.mjs +0 -28
  243. package/dist/transform-job-ntiT5Rrh.mjs +0 -22
  244. package/dist/tree-DtyJhD54.mjs +0 -36
  245. package/dist/unpin-DxbXmLtW.mjs +0 -45
  246. package/dist/upload-Dc3QLhZw.mjs +0 -13
  247. package/dist/worktree-ChdDlG3Q.mjs +0 -25
  248. package/dist/worktree-DC0kTxxQ.mjs +0 -20
  249. 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-CrBGUkGQ.mjs";
8
- import { f as CollectionTreeNode, o as CollectionItem, r as Collection } from "./collection-BxE7OzcQ.mjs";
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 { c as SyncSettingsUpdateResult, i as SyncExportPreflight, n as SyncDirtyItem, p as isSyncTaskTerminal, s as SyncRemoteChanges, t as SyncBranchCreated, u as SyncTask } from "./git-sync-DLzJrdMi.mjs";
17
- import { t as Worktree } from "./worktree-xAro1xAB.mjs";
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-BxgvQ09J.mjs";
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-BvOEn41C.mjs";
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-jBVd6wXd.mjs";
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. `worktree-id`
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
- * Fetch the collection hierarchy as a forest of nested nodes. `worktree-id` fetches the hierarchy
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
- * Get the running or most recently finished sync task in the scope, or null when the server has
1007
- * none. `worktree-id` asks about a worktree's tasks instead of the main app's.
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
- * Request cancellation of the running sync task, and answer it in the state that left it.
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
- * Whether the scope holds content changes the remote has not been told about. `worktree-id` asks
1028
- * about a worktree instead of the main app.
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
- * List the objects whose local state differs from the remote. `worktree-id` asks about a worktree
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 branch the scope tracks against what Metabase last imported. The server caches the
1051
- * comparison; `force-refresh` re-reads the remote instead, and `worktree-id` checks a worktree's
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 the scope. The endpoint queues a task and returns at once;
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. Inside a worktree the worktree's own
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
- expected_branch: params.expected_branch,
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, scope, options)
1036
+ final: await settle(params.wait, options)
1106
1037
  };
1107
1038
  }
1108
1039
  /**
1109
- * Export the scope's content to the remote. The endpoint queues a task and returns at once; pass
1110
- * `wait` to poll that task until it reaches a terminal status. `branch` must be the branch the
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, scope, options)
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, {}, options)
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 scope's current task until it reaches a terminal status. A server with no task at all
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, params = {}, options = {}) {
1250
- return settle(wait, params, options);
1139
+ async function waitForTask(wait, options = {}) {
1140
+ return settle(wait, options);
1251
1141
  }
1252
- async function settle(wait, scope, options) {
1253
- return pollUntil(async (signal) => currentTask(scope, {
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
- * Get the Library root and its child collections, or `null` on an instance that has none.
1298
- * `worktree-id` gets the Library a remote-sync worktree checked out rather than the main app's.
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({}, options);
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({}, options);
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, `worktree-id` searches inside one
1595
- * remote-sync worktree rather than the main app, and `limit`/`offset` are the window the server
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
- * List every transform the caller can see. `worktree-id` lists only the transforms checked out
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
- * List every transform tag the caller can see, built-in tags included. `worktree-id` lists only
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-BxE7OzcQ.mjs";
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-YN6jj2AN.mjs";
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-C4v7u-AV.mjs").then((mod) => mod.default),
8
- upload: () => import("./upload-BPd1Uzxc.mjs").then((mod) => mod.default)
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 { H as profileFlag, R as connectionFlags, V as outputFlags, p as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-CNAZ_FuR.mjs";
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,