vercel 59.14.0 → 59.15.0

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 (459) hide show
  1. package/dist/chunks/add-7XFD2OHW.js +8 -0
  2. package/dist/chunks/add-HZC7AUBY.js +8 -0
  3. package/dist/chunks/add-PYUNJZ6K.js +8 -0
  4. package/dist/chunks/build-EFKQ6BND.js +7 -0
  5. package/dist/chunks/chunk-2B2MN3U5.js +8 -0
  6. package/dist/chunks/chunk-2H77IRPI.js +9 -0
  7. package/dist/chunks/chunk-2I64AYHG.js +7 -0
  8. package/dist/chunks/chunk-2PPXY24N.js +20 -0
  9. package/dist/chunks/chunk-2S6PE6GB.js +7 -0
  10. package/dist/chunks/{chunk-PIMIVJYK.js → chunk-3FMJYJUR.js} +7 -32
  11. package/dist/chunks/chunk-3IAQUNQH.js +7 -0
  12. package/dist/chunks/chunk-3QHJYVCY.js +7 -0
  13. package/dist/chunks/chunk-3QT7VOE3.js +7 -0
  14. package/dist/chunks/chunk-3TXEXPUW.js +7 -0
  15. package/dist/chunks/chunk-4MZK6JT6.js +7 -0
  16. package/dist/chunks/chunk-4NE5IQ25.js +7 -0
  17. package/dist/chunks/chunk-4PNSSS3L.js +7 -0
  18. package/dist/chunks/chunk-4QX77CP7.js +7 -0
  19. package/dist/chunks/chunk-57GHYR4Y.js +25 -0
  20. package/dist/chunks/chunk-5QQNYN4N.js +7 -0
  21. package/dist/chunks/chunk-5XJNPXQK.js +7 -0
  22. package/dist/chunks/chunk-6L236MNA.js +7 -0
  23. package/dist/chunks/chunk-6PFC3KWQ.js +7 -0
  24. package/dist/chunks/chunk-6QKS6QK7.js +7 -0
  25. package/dist/chunks/chunk-6RIQPTJA.js +8 -0
  26. package/dist/chunks/chunk-6TAQ6OWD.js +13 -0
  27. package/dist/chunks/chunk-6YAADRQB.js +9 -0
  28. package/dist/chunks/chunk-75CPY75D.js +15 -0
  29. package/dist/chunks/chunk-7HL2RPUO.js +7 -0
  30. package/dist/chunks/chunk-7PNYOSDU.js +9 -0
  31. package/dist/chunks/chunk-7R5FEXZ5.js +7 -0
  32. package/dist/chunks/chunk-7RMCBXBB.js +62 -0
  33. package/dist/chunks/chunk-7RR7MIMT.js +7 -0
  34. package/dist/chunks/chunk-7T6TL3GQ.js +7 -0
  35. package/dist/chunks/chunk-ADUYPK2G.js +13 -0
  36. package/dist/chunks/chunk-AFPOIDM5.js +7 -0
  37. package/dist/chunks/chunk-AM46JVVN.js +7 -0
  38. package/dist/chunks/chunk-AVSPFBLM.js +7 -0
  39. package/dist/chunks/chunk-B4ATVYZW.js +7 -0
  40. package/dist/chunks/chunk-BATE73HA.js +9 -0
  41. package/dist/chunks/{chunk-64IF634X.js → chunk-BRK4OB4B.js} +1 -12
  42. package/dist/chunks/chunk-BVH2AEFE.js +7 -0
  43. package/dist/chunks/chunk-CN2QZO4U.js +7 -0
  44. package/dist/chunks/chunk-COQGD2EI.js +8 -0
  45. package/dist/chunks/chunk-CUAIEGNE.js +7 -0
  46. package/dist/chunks/chunk-CVKB54WW.js +7 -0
  47. package/dist/chunks/{chunk-A3NYPUKZ.js → chunk-CZSOZKHX.js} +1 -11
  48. package/dist/chunks/chunk-D4MW3RDW.js +7 -0
  49. package/dist/chunks/chunk-DFVNL5ML.js +7 -0
  50. package/dist/chunks/chunk-EE3FVJLV.js +16 -0
  51. package/dist/chunks/chunk-EGMJRU5P.js +28 -0
  52. package/dist/chunks/chunk-ENBTTYJR.js +7 -0
  53. package/dist/chunks/chunk-ENS6KX2F.js +7 -0
  54. package/dist/chunks/chunk-EOBD4ZEG.js +8 -0
  55. package/dist/chunks/chunk-EOCTK4EA.js +7 -0
  56. package/dist/chunks/chunk-EQ52F4LH.js +7 -0
  57. package/dist/chunks/chunk-ETV3C2CV.js +7 -0
  58. package/dist/chunks/chunk-EVZRQGNK.js +7 -0
  59. package/dist/chunks/chunk-F2ZWW2IO.js +8 -0
  60. package/dist/chunks/chunk-FAW6NBLQ.js +7 -0
  61. package/dist/chunks/chunk-FI772UVH.js +7 -0
  62. package/dist/chunks/chunk-FKCOBJFH.js +7 -0
  63. package/dist/chunks/chunk-FVGESGJI.js +45 -0
  64. package/dist/chunks/chunk-G5FC5ZCO.js +9 -0
  65. package/dist/chunks/chunk-G6CTAHKY.js +39 -0
  66. package/dist/chunks/chunk-G7Y77DFH.js +7 -0
  67. package/dist/chunks/chunk-GHAY4PSD.js +7 -0
  68. package/dist/chunks/chunk-GHM7V3GG.js +7 -0
  69. package/dist/chunks/chunk-GRNTLNC7.js +7 -0
  70. package/dist/chunks/chunk-GTRGQIY2.js +10 -0
  71. package/dist/chunks/chunk-GU6VIFR5.js +7 -0
  72. package/dist/chunks/{constants-YMCRE6IG.js → chunk-GZNDA6SV.js} +2 -9
  73. package/dist/chunks/chunk-HBFPLBTX.js +10 -0
  74. package/dist/chunks/chunk-HEGJZJO7.js +7 -0
  75. package/dist/chunks/chunk-HSJ6AHWG.js +12 -0
  76. package/dist/chunks/chunk-HTC6KO2B.js +7 -0
  77. package/dist/chunks/chunk-HVUHCRZB.js +18 -0
  78. package/dist/chunks/chunk-HZZ5L472.js +7 -0
  79. package/dist/chunks/chunk-IVSSTHB6.js +7 -0
  80. package/dist/chunks/chunk-IVWPQYIH.js +7 -0
  81. package/dist/chunks/chunk-J3U3L45Y.js +7 -0
  82. package/dist/chunks/chunk-JAJW3P42.js +7 -0
  83. package/dist/chunks/chunk-JEIMW3CO.js +7 -0
  84. package/dist/chunks/chunk-JIYY3B4C.js +7 -0
  85. package/dist/chunks/chunk-JKTQV2QJ.js +7 -0
  86. package/dist/chunks/chunk-JTVVBRW7.js +7 -0
  87. package/dist/chunks/chunk-JYAUUIR4.js +7 -0
  88. package/dist/chunks/chunk-JZRMH5UA.js +7 -0
  89. package/dist/chunks/chunk-K2RAW5DI.js +10 -0
  90. package/dist/chunks/chunk-K3KJZLBD.js +7 -0
  91. package/dist/chunks/chunk-KK4AJES5.js +36 -0
  92. package/dist/chunks/chunk-KKS7XWEX.js +7 -0
  93. package/dist/chunks/chunk-KNEWCUWF.js +14 -0
  94. package/dist/chunks/chunk-KO733OJG.js +9 -0
  95. package/dist/chunks/chunk-L243RUIR.js +19 -0
  96. package/dist/chunks/chunk-L3JDEHCQ.js +7 -0
  97. package/dist/chunks/chunk-LDM3SQAU.js +13 -0
  98. package/dist/chunks/chunk-LNPMDXBJ.js +7 -0
  99. package/dist/chunks/chunk-M2W3HKV3.js +23 -0
  100. package/dist/chunks/chunk-M2XARQBF.js +9 -0
  101. package/dist/chunks/chunk-M5AV545M.js +7 -0
  102. package/dist/chunks/chunk-MAVRGZQP.js +7 -0
  103. package/dist/chunks/chunk-MBL6TXEJ.js +7 -0
  104. package/dist/chunks/chunk-MEAY2K5Z.js +11 -0
  105. package/dist/chunks/chunk-MY4MONOH.js +7 -0
  106. package/dist/chunks/chunk-N3N5UHIL.js +7 -0
  107. package/dist/chunks/chunk-N3ZZ7FHQ.js +7 -0
  108. package/dist/chunks/chunk-N6CNMMSZ.js +7 -0
  109. package/dist/chunks/chunk-NBVY237X.js +7 -0
  110. package/dist/chunks/chunk-NGNOUPWS.js +25 -0
  111. package/dist/chunks/chunk-NHTF332K.js +7 -0
  112. package/dist/chunks/chunk-NNP5NITU.js +15 -0
  113. package/dist/chunks/chunk-NS4FH2TY.js +11 -0
  114. package/dist/chunks/chunk-NUGLE4QY.js +11 -0
  115. package/dist/chunks/chunk-NWFHHUKZ.js +7 -0
  116. package/dist/chunks/chunk-O7G3CZ42.js +7 -0
  117. package/dist/chunks/chunk-OD6RZ3XZ.js +8 -0
  118. package/dist/chunks/chunk-OHDEHZLX.js +7 -0
  119. package/dist/chunks/chunk-OK3S6KFX.js +16 -0
  120. package/dist/chunks/chunk-OKZDOANA.js +23 -0
  121. package/dist/chunks/chunk-OSCCYU74.js +7 -0
  122. package/dist/chunks/chunk-OUHPDA7Q.js +7 -0
  123. package/dist/chunks/chunk-P2O5DOYE.js +7 -0
  124. package/dist/chunks/chunk-PHW54NU5.js +13 -0
  125. package/dist/chunks/chunk-PPCFQQSU.js +7 -0
  126. package/dist/chunks/chunk-QGIGNMII.js +8 -0
  127. package/dist/chunks/chunk-QGIQK47P.js +7 -0
  128. package/dist/chunks/chunk-QHJLRTVY.js +7 -0
  129. package/dist/chunks/{chunk-2473DUBR.js → chunk-QR7QPUFN.js} +1 -9
  130. package/dist/chunks/chunk-QTKJC2O5.js +7 -0
  131. package/dist/chunks/chunk-R2TGGVCT.js +19 -0
  132. package/dist/chunks/chunk-RAIBQIKB.js +7 -0
  133. package/dist/chunks/chunk-RCTYVKM5.js +16 -0
  134. package/dist/chunks/chunk-RKAUVPOQ.js +86 -0
  135. package/dist/chunks/chunk-S5CEIACD.js +7 -0
  136. package/dist/chunks/chunk-SGWVKRSR.js +8 -0
  137. package/dist/chunks/chunk-SOJCELXH.js +7 -0
  138. package/dist/chunks/chunk-SXUEGVWB.js +7 -0
  139. package/dist/chunks/{chunk-GGPE5377.js → chunk-T3GQAMBJ.js} +1 -9
  140. package/dist/chunks/chunk-T52FMXWC.js +7 -0
  141. package/dist/chunks/chunk-TG2RCYTH.js +7 -0
  142. package/dist/chunks/chunk-TJCIHDPZ.js +9 -0
  143. package/dist/chunks/chunk-TKBXN4H3.js +9 -0
  144. package/dist/chunks/chunk-TRTEXGVN.js +7 -0
  145. package/dist/chunks/chunk-TXELFFNK.js +15 -0
  146. package/dist/chunks/chunk-U56NHYAH.js +7 -0
  147. package/dist/chunks/chunk-U7KCDTCH.js +12 -0
  148. package/dist/chunks/chunk-UETTIYUQ.js +8 -0
  149. package/dist/chunks/chunk-UGMZQZJE.js +24 -0
  150. package/dist/chunks/chunk-ULLWCOYC.js +7 -0
  151. package/dist/chunks/chunk-UXTHEQVJ.js +21 -0
  152. package/dist/chunks/chunk-VLZ47RWM.js +44 -0
  153. package/dist/chunks/chunk-WKZ6JSGZ.js +7 -0
  154. package/dist/chunks/chunk-WPS6JZF6.js +7 -0
  155. package/dist/chunks/chunk-WRILLB46.js +7 -0
  156. package/dist/chunks/chunk-WUZD4KBL.js +7 -0
  157. package/dist/chunks/chunk-XCJDGQO7.js +7 -0
  158. package/dist/chunks/{pkg-56KRLZ5K.js → chunk-XD2LZRBS.js} +1 -7
  159. package/dist/chunks/chunk-XFVGX5HG.js +7 -0
  160. package/dist/chunks/chunk-XHOGOH6N.js +7 -0
  161. package/dist/chunks/{update-route-version-E3V47KNI.js → chunk-XPXOV5UO.js} +1 -7
  162. package/dist/chunks/chunk-XQ73QIQ3.js +7 -0
  163. package/dist/chunks/chunk-XSVBYDYI.js +8 -0
  164. package/dist/chunks/chunk-YKZLKOOD.js +12 -0
  165. package/dist/chunks/chunk-YMVDWVMO.js +7 -0
  166. package/dist/chunks/chunk-YPTLSODC.js +7 -0
  167. package/dist/chunks/chunk-YV6CTDHR.js +7 -0
  168. package/dist/chunks/chunk-Z6Y55QJW.js +23 -0
  169. package/dist/chunks/chunk-ZDX75YNZ.js +7 -0
  170. package/dist/chunks/chunk-ZIPVX7LD.js +7 -0
  171. package/dist/chunks/chunk-ZKYS7EAB.js +7 -0
  172. package/dist/chunks/chunk-ZT6KDLLY.js +20 -0
  173. package/dist/chunks/chunk-ZXE4XYIV.js +7 -0
  174. package/dist/chunks/chunk-ZZQRMRWD.js +20 -0
  175. package/dist/chunks/cjs-GOQHXIHX.js +54 -0
  176. package/dist/chunks/clear-5NQAVWIF.js +8 -0
  177. package/dist/chunks/compile-vercel-config-6J2XUFRK.js +7 -0
  178. package/dist/chunks/config-CKYRXZXL.js +7 -0
  179. package/dist/chunks/config-VNUY4RJ4.js +8 -0
  180. package/dist/chunks/connect-git-provider-GIU5WZ52.js +7 -0
  181. package/dist/chunks/constants-G4UYVLOF.js +7 -0
  182. package/dist/chunks/create-project-SRQGD4JY.js +7 -0
  183. package/dist/chunks/delete-GTXXCSKQ.js +10 -0
  184. package/dist/chunks/delete-HRJEO4MI.js +9 -0
  185. package/dist/chunks/detect-projects-2GNCZ4CS.js +7 -0
  186. package/dist/chunks/detect-services-GHILEGNU.js +7 -0
  187. package/dist/chunks/disable-RWCRVG5O.js +7 -0
  188. package/dist/chunks/discard-SHFIYCJU.js +14 -0
  189. package/dist/chunks/edit-DMO3NSO2.js +9 -0
  190. package/dist/chunks/edit-EVQI2RSS.js +8 -0
  191. package/dist/chunks/enable-AWDU6STD.js +7 -0
  192. package/dist/chunks/esm-7HVUFWMN.js +7 -0
  193. package/dist/chunks/esm-BZBEM7YA.js +7 -0
  194. package/dist/chunks/esm-CXICLFA3.js +9 -0
  195. package/dist/chunks/esm-HDEHVK7I.js +9 -0
  196. package/dist/chunks/esm-NQRLKALI.js +20 -0
  197. package/dist/chunks/esm-SZZI53W7.js +7 -0
  198. package/dist/chunks/esm-WGJFGCLK.js +7 -0
  199. package/dist/chunks/exec-4AISDHUV.js +16372 -0
  200. package/dist/chunks/export-IQKTA4RS.js +19 -0
  201. package/dist/chunks/fetch-proxy-AEAWC6MD.js +7 -0
  202. package/dist/chunks/future-E2FHKPJN.js +7 -0
  203. package/dist/chunks/generate-cert-for-deploy-VKOWC4PZ.js +7 -0
  204. package/dist/chunks/image-LDFYNOCA.js +7 -0
  205. package/dist/chunks/import-builders-P7CXSX2D.js +7 -0
  206. package/dist/chunks/inspect-3N47ODIH.js +15 -0
  207. package/dist/chunks/inspect-53SGDDAH.js +20 -0
  208. package/dist/chunks/inspect-5INZDUQS.js +19 -0
  209. package/dist/chunks/inspect-WMT2M335.js +9 -0
  210. package/dist/chunks/inspect-Y6BUCOUV.js +13 -0
  211. package/dist/chunks/list-BIAPHKFM.js +11 -0
  212. package/dist/chunks/list-DMOCRRSE.js +16 -0
  213. package/dist/chunks/list-K5J7OULR.js +10 -0
  214. package/dist/chunks/login-DEAEVUHM.js +7 -0
  215. package/dist/chunks/login-SRVNHI4Y.js +9 -0
  216. package/dist/chunks/logs-GK7CJBYY.js +7 -0
  217. package/dist/chunks/ls-7ZX6DCJW.js +12 -0
  218. package/dist/chunks/ls-AJWN5ZR4.js +12 -0
  219. package/dist/chunks/ls-BFJWCRLZ.js +12 -0
  220. package/dist/chunks/ls-KGIE6HCO.js +12 -0
  221. package/dist/chunks/ls-UVKTHBTE.js +8 -0
  222. package/dist/chunks/ls-WEG45IOC.js +8 -0
  223. package/dist/chunks/native-self-update-KOJVRMHR.js +7 -0
  224. package/dist/chunks/open-OEWPI5G6.js +7 -0
  225. package/dist/chunks/openapi-MO5HYMHR.js +7 -0
  226. package/dist/chunks/permissions-EPQBQFE3.js +7 -0
  227. package/dist/chunks/pkg-YFU67U7I.js +7 -0
  228. package/dist/chunks/prompt-missing-credentials-IUHLYSQU.js +7 -0
  229. package/dist/chunks/publish-JG7MEPWT.js +15 -0
  230. package/dist/chunks/pull-MRKXG6TO.js +7 -0
  231. package/dist/chunks/purchase-domain-if-available-O5ARXEZ5.js +7 -0
  232. package/dist/chunks/push-XOXJDFYO.js +7 -0
  233. package/dist/chunks/query-AL7C6WV2.js +12 -0
  234. package/dist/chunks/reauthenticate-SH4XR7NH.js +7 -0
  235. package/dist/chunks/reorder-5DMRFDBY.js +10 -0
  236. package/dist/chunks/reply-WSRNZWFD.js +9 -0
  237. package/dist/chunks/repo-info-to-url-SK3VX6UL.js +7 -0
  238. package/dist/chunks/resolve-YJUXQVOZ.js +12 -0
  239. package/dist/chunks/resolve-deployment-framework-preset-XF3NJIDS.js +7 -0
  240. package/dist/chunks/restore-QT3DBGKU.js +16 -0
  241. package/dist/chunks/rm-MHPIUEZ5.js +8 -0
  242. package/dist/chunks/rm-MVZFU6RG.js +8 -0
  243. package/dist/chunks/rm-PXR4J2US.js +8 -0
  244. package/dist/chunks/rm-WB2AIP3N.js +8 -0
  245. package/dist/chunks/rm-XRP6MRUT.js +8 -0
  246. package/dist/chunks/routes-5DERZV5M.js +7 -0
  247. package/dist/chunks/rule-inspect-TT3DRGCS.js +8 -0
  248. package/dist/chunks/rules-B5GW4KJH.js +7 -0
  249. package/dist/chunks/schema-JY5QTZOG.js +14 -0
  250. package/dist/chunks/schema-KCNKVFT3.js +44 -0
  251. package/dist/chunks/select-org-KSCYSESV.js +7 -0
  252. package/dist/chunks/set-7BANEWEL.js +7 -0
  253. package/dist/chunks/setup-and-link-ZAV3EFGC.js +7 -0
  254. package/dist/chunks/slugify-O5DBATYT.js +7 -0
  255. package/dist/chunks/stamp-OX4YO3KY.js +7 -0
  256. package/dist/chunks/tags-VZR66NUC.js +7 -0
  257. package/dist/chunks/types-LRXQEDYI.js +14 -0
  258. package/dist/chunks/update-RBFNNSWE.js +8 -0
  259. package/dist/chunks/update-route-version-XZAFPQJC.js +7 -0
  260. package/dist/chunks/utils-B5ZTMQKY.js +58 -0
  261. package/dist/chunks/vlt-builder-importer-YVCYYRVV.js +11 -0
  262. package/dist/commands/build/index.js +24 -4925
  263. package/dist/commands/deploy/index.js +43 -2875
  264. package/dist/commands/dev/index.js +56 -23857
  265. package/dist/commands/env/index.js +26 -3411
  266. package/dist/commands/link/index.js +4 -284
  267. package/dist/commands/list/index.js +6 -566
  268. package/dist/commands-bulk.js +1187 -87691
  269. package/dist/help.js +1 -8
  270. package/dist/index.js +19 -2591
  271. package/dist/version.mjs +1 -1
  272. package/package.json +50 -51
  273. package/dist/chunks/add-EQZRT4XL.js +0 -221
  274. package/dist/chunks/add-KMDROZC3.js +0 -196
  275. package/dist/chunks/add-QPJ3XMBV.js +0 -145
  276. package/dist/chunks/build-W4HPTAOB.js +0 -251
  277. package/dist/chunks/chunk-26CU4Q3C.js +0 -598
  278. package/dist/chunks/chunk-2HSQ7YUK.js +0 -93
  279. package/dist/chunks/chunk-2JIX6UMI.js +0 -4626
  280. package/dist/chunks/chunk-2LCFOK66.js +0 -1536
  281. package/dist/chunks/chunk-332LMJLZ.js +0 -16014
  282. package/dist/chunks/chunk-3HZLXCVL.js +0 -137
  283. package/dist/chunks/chunk-3VM7HWF6.js +0 -104
  284. package/dist/chunks/chunk-3ZE5CFVM.js +0 -346
  285. package/dist/chunks/chunk-4IALDGB7.js +0 -22
  286. package/dist/chunks/chunk-4KD5BYHB.js +0 -127
  287. package/dist/chunks/chunk-4TUMNBEE.js +0 -231
  288. package/dist/chunks/chunk-4WG2MYCI.js +0 -163
  289. package/dist/chunks/chunk-57RHXXXG.js +0 -150
  290. package/dist/chunks/chunk-5AJPMLDV.js +0 -28
  291. package/dist/chunks/chunk-5EIV6LPQ.js +0 -305
  292. package/dist/chunks/chunk-5NF5HOBJ.js +0 -1854
  293. package/dist/chunks/chunk-653QRQAD.js +0 -417
  294. package/dist/chunks/chunk-67CRVWDF.js +0 -81
  295. package/dist/chunks/chunk-6E6KPBXY.js +0 -43
  296. package/dist/chunks/chunk-75VENWDN.js +0 -1892
  297. package/dist/chunks/chunk-7MRDIPJY.js +0 -107
  298. package/dist/chunks/chunk-7NRNFV77.js +0 -875
  299. package/dist/chunks/chunk-7Q45OKWR.js +0 -149
  300. package/dist/chunks/chunk-AHU7WNL2.js +0 -24
  301. package/dist/chunks/chunk-AINIBIP4.js +0 -39
  302. package/dist/chunks/chunk-AJ5HUOWB.js +0 -14059
  303. package/dist/chunks/chunk-AKLTIZCU.js +0 -46
  304. package/dist/chunks/chunk-AQ6P3IGG.js +0 -49
  305. package/dist/chunks/chunk-B5NH7SLK.js +0 -324
  306. package/dist/chunks/chunk-B5XLQKHI.js +0 -849
  307. package/dist/chunks/chunk-BEQV3X2L.js +0 -86
  308. package/dist/chunks/chunk-CAHP7UGE.js +0 -79
  309. package/dist/chunks/chunk-CFDDM4TX.js +0 -13618
  310. package/dist/chunks/chunk-CJV7J7B5.js +0 -314
  311. package/dist/chunks/chunk-CV5YC2EN.js +0 -867
  312. package/dist/chunks/chunk-CXFY6A6W.js +0 -255
  313. package/dist/chunks/chunk-D5SMZXVO.js +0 -233
  314. package/dist/chunks/chunk-E336ZXPP.js +0 -43
  315. package/dist/chunks/chunk-EDMW7SBH.js +0 -246
  316. package/dist/chunks/chunk-EFYMIIER.js +0 -40
  317. package/dist/chunks/chunk-EKPSCRJZ.js +0 -26
  318. package/dist/chunks/chunk-EOZFDJSY.js +0 -18
  319. package/dist/chunks/chunk-EWBCSDTM.js +0 -1708
  320. package/dist/chunks/chunk-EZKW5YJ2.js +0 -177
  321. package/dist/chunks/chunk-F2QLCXCF.js +0 -2399
  322. package/dist/chunks/chunk-FGDKMNEN.js +0 -21
  323. package/dist/chunks/chunk-FRVG4OW3.js +0 -7438
  324. package/dist/chunks/chunk-FVF4UHDM.js +0 -1288
  325. package/dist/chunks/chunk-G5FBSUL4.js +0 -822
  326. package/dist/chunks/chunk-GDOUDU6O.js +0 -74
  327. package/dist/chunks/chunk-GGP5R3FU.js +0 -129
  328. package/dist/chunks/chunk-GVNCVKCI.js +0 -68
  329. package/dist/chunks/chunk-GY5I4AYD.js +0 -122
  330. package/dist/chunks/chunk-GZLPFESR.js +0 -48
  331. package/dist/chunks/chunk-HB4UKFDO.js +0 -1295
  332. package/dist/chunks/chunk-HD4DR3DA.js +0 -818
  333. package/dist/chunks/chunk-HKHXKSXQ.js +0 -152
  334. package/dist/chunks/chunk-HM24ZWQL.js +0 -174
  335. package/dist/chunks/chunk-HRXRELD3.js +0 -338
  336. package/dist/chunks/chunk-IB5L4LKZ.js +0 -1082
  337. package/dist/chunks/chunk-IIMSID24.js +0 -104
  338. package/dist/chunks/chunk-J7JKZM4T.js +0 -58
  339. package/dist/chunks/chunk-JC2O346E.js +0 -137
  340. package/dist/chunks/chunk-JSD4EZL3.js +0 -34
  341. package/dist/chunks/chunk-JZXJZX7O.js +0 -257
  342. package/dist/chunks/chunk-K3RED3VO.js +0 -566
  343. package/dist/chunks/chunk-KFWQ3EFH.js +0 -151
  344. package/dist/chunks/chunk-KW7BS25T.js +0 -466
  345. package/dist/chunks/chunk-KXDWXXJH.js +0 -70
  346. package/dist/chunks/chunk-LERVNZTD.js +0 -90
  347. package/dist/chunks/chunk-LYAAQDNS.js +0 -242
  348. package/dist/chunks/chunk-M5I6INNF.js +0 -61
  349. package/dist/chunks/chunk-N6HP5BLI.js +0 -18190
  350. package/dist/chunks/chunk-ND5CF2H3.js +0 -53
  351. package/dist/chunks/chunk-NFU4XJIR.js +0 -120
  352. package/dist/chunks/chunk-NW34PW6V.js +0 -1772
  353. package/dist/chunks/chunk-OAMU5QO6.js +0 -18
  354. package/dist/chunks/chunk-OCIZ6ZYA.js +0 -253
  355. package/dist/chunks/chunk-ORQZKIIB.js +0 -2914
  356. package/dist/chunks/chunk-P3SKP5WM.js +0 -27
  357. package/dist/chunks/chunk-P4QNYOFB.js +0 -96
  358. package/dist/chunks/chunk-P7VSBDR4.js +0 -827
  359. package/dist/chunks/chunk-PEC3CQSK.js +0 -90
  360. package/dist/chunks/chunk-PMSMUMUO.js +0 -30
  361. package/dist/chunks/chunk-PNGVSHR3.js +0 -40
  362. package/dist/chunks/chunk-POOO7W47.js +0 -916
  363. package/dist/chunks/chunk-PRWJUY5U.js +0 -848
  364. package/dist/chunks/chunk-Q2DGFCO7.js +0 -579
  365. package/dist/chunks/chunk-RBF2NPUP.js +0 -577
  366. package/dist/chunks/chunk-RBIFXFZX.js +0 -52
  367. package/dist/chunks/chunk-RDTRWLWB.js +0 -11441
  368. package/dist/chunks/chunk-RN6V5ODW.js +0 -114
  369. package/dist/chunks/chunk-RNSMTWA6.js +0 -122
  370. package/dist/chunks/chunk-RTJASENB.js +0 -59
  371. package/dist/chunks/chunk-RVBZ64EQ.js +0 -52
  372. package/dist/chunks/chunk-S7KYDPEM.js +0 -1564
  373. package/dist/chunks/chunk-SLPSPYVR.js +0 -334
  374. package/dist/chunks/chunk-SM3F3PYJ.js +0 -522
  375. package/dist/chunks/chunk-TO7QZGYK.js +0 -105
  376. package/dist/chunks/chunk-TSBUHSN7.js +0 -3495
  377. package/dist/chunks/chunk-TSFWMUCY.js +0 -506
  378. package/dist/chunks/chunk-TZ2YI2VH.js +0 -87
  379. package/dist/chunks/chunk-UG2WOB5L.js +0 -150
  380. package/dist/chunks/chunk-UNKHOYMF.js +0 -559
  381. package/dist/chunks/chunk-UOVWUSLG.js +0 -2099
  382. package/dist/chunks/chunk-V4RMJKQP.js +0 -36
  383. package/dist/chunks/chunk-VGIMO3ZK.js +0 -17
  384. package/dist/chunks/chunk-VGKSIKCC.js +0 -92
  385. package/dist/chunks/chunk-VP5Y3SZG.js +0 -106
  386. package/dist/chunks/chunk-VXYGCOKL.js +0 -28
  387. package/dist/chunks/chunk-W7FGI2GZ.js +0 -233
  388. package/dist/chunks/chunk-WGGABYO5.js +0 -31
  389. package/dist/chunks/chunk-XDGOOW3K.js +0 -60
  390. package/dist/chunks/chunk-XFF5TGRA.js +0 -303
  391. package/dist/chunks/chunk-XNIZGCN5.js +0 -58
  392. package/dist/chunks/chunk-XPJLPUKO.js +0 -117
  393. package/dist/chunks/chunk-XUAWTW4W.js +0 -467
  394. package/dist/chunks/chunk-YPQSDAEW.js +0 -29
  395. package/dist/chunks/chunk-YS76T533.js +0 -270
  396. package/dist/chunks/chunk-ZDU2NODC.js +0 -104
  397. package/dist/chunks/chunk-ZW6HETRE.js +0 -97
  398. package/dist/chunks/cjs-DV4RM7XU.js +0 -20743
  399. package/dist/chunks/clear-4IACMLFU.js +0 -141
  400. package/dist/chunks/compile-vercel-config-PQQ3OCLV.js +0 -33
  401. package/dist/chunks/config-BQQKMQBP.js +0 -168
  402. package/dist/chunks/config-OCPNHXQL.js +0 -127
  403. package/dist/chunks/delete-HRKIYPCO.js +0 -159
  404. package/dist/chunks/delete-P2UL3KTU.js +0 -226
  405. package/dist/chunks/detect-projects-ODNU4PK2.js +0 -18
  406. package/dist/chunks/detect-services-U7QGT7VO.js +0 -40
  407. package/dist/chunks/disable-3NYMICQ3.js +0 -198
  408. package/dist/chunks/discard-RNVEJUK3.js +0 -145
  409. package/dist/chunks/edit-63S2RQHR.js +0 -162
  410. package/dist/chunks/edit-CTENFZ7H.js +0 -647
  411. package/dist/chunks/enable-WILWXAHV.js +0 -204
  412. package/dist/chunks/exec-4IPHZ55G.js +0 -1291
  413. package/dist/chunks/export-YHGV3EPK.js +0 -177
  414. package/dist/chunks/fetch-proxy-R3JZNXBZ.js +0 -99
  415. package/dist/chunks/image-MWKS2YMB.js +0 -75
  416. package/dist/chunks/import-builders-H55X5VYD.js +0 -39
  417. package/dist/chunks/inspect-JTJMK6TO.js +0 -596
  418. package/dist/chunks/inspect-KBIPLMGR.js +0 -216
  419. package/dist/chunks/inspect-OP26FDBY.js +0 -171
  420. package/dist/chunks/inspect-SW4UMWTB.js +0 -175
  421. package/dist/chunks/inspect-WPLZPVBO.js +0 -145
  422. package/dist/chunks/list-HE7DWAWH.js +0 -387
  423. package/dist/chunks/list-OUG7WCT7.js +0 -404
  424. package/dist/chunks/list-QUSEURJZ.js +0 -426
  425. package/dist/chunks/login-MIIQJVF3.js +0 -233
  426. package/dist/chunks/ls-24N3DUK4.js +0 -183
  427. package/dist/chunks/ls-3Y7KEFKT.js +0 -175
  428. package/dist/chunks/ls-75F5HIJ5.js +0 -188
  429. package/dist/chunks/ls-REN6X2X5.js +0 -204
  430. package/dist/chunks/ls-W4STUDXK.js +0 -223
  431. package/dist/chunks/ls-Z4CTSD6C.js +0 -210
  432. package/dist/chunks/open-ARMCLPBK.js +0 -116
  433. package/dist/chunks/permissions-JKI67F62.js +0 -99
  434. package/dist/chunks/publish-SMSQ7OX2.js +0 -155
  435. package/dist/chunks/pull-4QZJZELD.js +0 -45
  436. package/dist/chunks/push-T6IYQY2J.js +0 -191
  437. package/dist/chunks/query-CP3JK5LW.js +0 -725
  438. package/dist/chunks/reorder-RAWKFGLV.js +0 -412
  439. package/dist/chunks/reply-235UHUD4.js +0 -176
  440. package/dist/chunks/resolve-5KCLN7QV.js +0 -237
  441. package/dist/chunks/resolve-deployment-framework-preset-NPE6RLV3.js +0 -36
  442. package/dist/chunks/restore-D24WAUAN.js +0 -252
  443. package/dist/chunks/rm-DBQDXSOC.js +0 -162
  444. package/dist/chunks/rm-G5INO77R.js +0 -148
  445. package/dist/chunks/rm-NLKSEKZ5.js +0 -195
  446. package/dist/chunks/rm-QV76CJA4.js +0 -322
  447. package/dist/chunks/rm-TZ4PDDUK.js +0 -147
  448. package/dist/chunks/routes-QVMBXOSX.js +0 -24
  449. package/dist/chunks/rule-inspect-76MC7I2D.js +0 -123
  450. package/dist/chunks/rules-IDUXVTPG.js +0 -89
  451. package/dist/chunks/schema-AV6BHGKY.js +0 -237
  452. package/dist/chunks/schema-QJVQTNB4.js +0 -381
  453. package/dist/chunks/set-L5NFQSCF.js +0 -250
  454. package/dist/chunks/setup-and-link-USSVDKCM.js +0 -65
  455. package/dist/chunks/stamp-AA7R3MZS.js +0 -16
  456. package/dist/chunks/tags-2NLUU4EC.js +0 -69
  457. package/dist/chunks/types-4GAJ7XQQ.js +0 -116
  458. package/dist/chunks/update-WGLBB65M.js +0 -224
  459. package/dist/chunks/vlt-builder-importer-USCFHWPL.js +0 -322
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{getSubcommand}from"./chunk-ETV3C2CV.js";import{PERMISSIONS_ACTIONS,permissionsClearSubcommand,permissionsLsSubcommand}from"./chunk-YMVDWVMO.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-NS4FH2TY.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var USAGE="vcr permissions <repository> <ls|add|rm|clear>",ROUTING_OPTIONS=[...permissionsLsSubcommand.options,...permissionsClearSubcommand.options];async function permissions(client,argv,telemetry){let positionals;try{positionals=parseArguments(argv,getFlagsSpecification(ROUTING_OPTIONS),{permissive:!0}).args}catch{positionals=argv.filter(arg=>!arg.startsWith("-"))}let repository=positionals[0],{subcommand}=getSubcommand(positionals.slice(1),PERMISSIONS_ACTIONS);if(!repository||subcommand==null){let message=repository?positionals.length<2?`Please specify an action. Usage: \`vercel ${USAGE}\`.`:`Unknown "vcr permissions" action "${positionals[1]}". Usage: \`vercel ${USAGE}\`.`:`Missing repository. Usage: \`vercel ${USAGE}\`.`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr permissions --help"),when:"Show valid permissions actions"}]},1),output_manager_default.error(`${message} Run \`vercel vcr permissions --help\`.`),1}switch(subcommand){case"ls":return(await import("./ls-KGIE6HCO.js")).default(client,argv,telemetry);case"add":return(await import("./add-HZC7AUBY.js")).default(client,argv,telemetry);case"rm":return(await import("./rm-MVZFU6RG.js")).default(client,argv,telemetry);case"clear":return(await import("./clear-5NQAVWIF.js")).default(client,argv,telemetry);default:return output_manager_default.error(`Unhandled permissions action: ${subcommand}`),1}}export{permissions as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{pkg_default}from"./chunk-AVSPFBLM.js";import"./chunk-6L236MNA.js";export{pkg_default as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{login}from"./chunk-QGIGNMII.js";import{require_ci_info}from"./chunk-T52FMXWC.js";import{getGlobalPathConfig}from"./chunk-ZIPVX7LD.js";import"./chunk-JKTQV2QJ.js";import"./chunk-L243RUIR.js";import"./chunk-ULLWCOYC.js";import"./chunk-CN2QZO4U.js";import{param}from"./chunk-SXUEGVWB.js";import"./chunk-2B2MN3U5.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-57GHYR4Y.js";import"./chunk-RCTYVKM5.js";import"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-BRK4OB4B.js";import"./chunk-F2ZWW2IO.js";import{humanizePath}from"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import"./chunk-JAJW3P42.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import{getCommandName}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_ci_info=__toESM(require_ci_info(),1);async function promptMissingCredentials(client,onLoginError){let isTTY=process.stdout.isTTY;if(!import_ci_info.default.isCI&&(isTTY||client.isAgent)){output_manager_default.log(isTTY?"No existing credentials found. Please log in:":"No existing credentials found. Starting login flow...");try{let result=await login(client,{shouldParseArgs:!1});if(result!==0)return result}catch(error){return printError(error),onLoginError?.(error),1}return output_manager_default.debug(`Saved credentials in "${humanizePath(getGlobalPathConfig())}"`),0}return output_manager_default.prettyError({message:`No existing credentials found. Please run ${getCommandName("login")} or pass ${param("--token")}`,link:"https://err.sh/vercel/no-credentials-found"}),1}export{promptMissingCredentials as default};
@@ -0,0 +1,15 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,getRoutes,parseSubcommandArgs,printDiffSummary,requireProjectContext,withGlobalFlags}from"./chunk-EE3FVJLV.js";import{publishSubcommand}from"./chunk-3QHJYVCY.js";import{stamp_default}from"./chunk-XPXOV5UO.js";import"./chunk-JZRMH5UA.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import{outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);async function publish(client,argv){let parsed=await parseSubcommandArgs(argv,publishSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),version=versions.find(v=>v.isStaging);if(!version)return output_manager_default.warn(`No staged changes to publish. Make changes first with ${import_chalk.default.cyan(withGlobalFlags(client,"routes add"))}.`),0;output_manager_default.spinner("Fetching changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:version.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
8
+ ${import_chalk.default.bold("Changes to be published:")}
9
+
10
+ `),printDiffSummary(changedRoutes),output_manager_default.print(`
11
+ `)):output_manager_default.print(`
12
+ ${import_chalk.default.gray("No changes detected from current production version.")}
13
+
14
+ `),!await confirmAction(client,parsed.flags["--yes"],"Publish these changes to production?",`This will make them live for ${import_chalk.default.bold(project.name)}.`))return output_manager_default.log("Canceled"),0;let updateStamp=stamp_default();output_manager_default.spinner("Publishing to production");try{let{version:newVersion}=await updateRouteVersion(client,project.id,version.id,"promote",{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Success!")} Routes published to production ${import_chalk.default.gray(updateStamp())}`),newVersion.ruleCount!==void 0&&output_manager_default.print(` ${import_chalk.default.bold("Active routes:")} ${newVersion.ruleCount}
15
+ `),0}catch(e){let msg=e.message||"Failed to publish routes";return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"api_error",message:msg,next:[{command:withGlobalFlags(client,"routes publish --yes")}]}),process.exit(1),1):(output_manager_default.error(msg),1)}}export{publish as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{SENSITIVE_PLACEHOLDER,envPullCommandLogic,pull}from"./chunk-OKZDOANA.js";import"./chunk-ENS6KX2F.js";import"./chunk-L243RUIR.js";import"./chunk-ULLWCOYC.js";import"./chunk-KK4AJES5.js";import"./chunk-N6CNMMSZ.js";import"./chunk-CN2QZO4U.js";import"./chunk-HZZ5L472.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import"./chunk-K3KJZLBD.js";import"./chunk-SXUEGVWB.js";import"./chunk-YV6CTDHR.js";import"./chunk-GRNTLNC7.js";import"./chunk-G7Y77DFH.js";import"./chunk-JYAUUIR4.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-57GHYR4Y.js";import"./chunk-RCTYVKM5.js";import"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{SENSITIVE_PLACEHOLDER,pull as default,envPullCommandLogic};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{purchaseDomainIfAvailable}from"./chunk-3IAQUNQH.js";import"./chunk-T3GQAMBJ.js";import"./chunk-XPXOV5UO.js";import"./chunk-JZRMH5UA.js";import"./chunk-QTKJC2O5.js";import"./chunk-SXUEGVWB.js";import"./chunk-5QQNYN4N.js";import"./chunk-5XJNPXQK.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{purchaseDomainIfAvailable as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{DEFAULT_TAG,buildRepositoryReference,parseNameArg,validateImageParts}from"./chunk-HEGJZJO7.js";import{VCR_ENGINES,emitVcrArgParseError,isEngineInstalled,pushCompressionArgs,reportEnginePushFailure,resolveRegistry,resolveVcrScope,runEngine,splitPassthrough,validateVcrChoice}from"./chunk-GTRGQIY2.js";import{outputError}from"./chunk-6RIQPTJA.js";import"./chunk-D4MW3RDW.js";import{pushSubcommand}from"./chunk-3QT7VOE3.js";import"./chunk-O7G3CZ42.js";import"./chunk-N3N5UHIL.js";import"./chunk-YMVDWVMO.js";import"./chunk-HBFPLBTX.js";import"./chunk-2I64AYHG.js";import"./chunk-SOJCELXH.js";import"./chunk-QTKJC2O5.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function push(client,telemetry){let{own,passthrough}=splitPassthrough(client.argv),parsedArgs;try{parsedArgs=parseArguments(own,getFlagsSpecification(pushSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr push <engine> [name[:tag]]"),printError(err),1}let[engineArg,nameArg]=parsedArgs.args.slice(2),project=parsedArgs.flags["--project"];if(telemetry.trackCliArgumentEngine(engineArg),telemetry.trackCliArgumentName(nameArg),telemetry.trackCliOptionProject(project),!engineArg){let message=`Missing engine. Choose one of: ${VCR_ENGINES.join(", ")}.`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr push docker"),when:"Replace docker with the container tool you use"}]},1),outputError(client,!1,"MISSING_ARGUMENTS",message)}let choiceError=validateVcrChoice(client,"engine",engineArg,VCR_ENGINES,!1);if(typeof choiceError=="number")return choiceError;let engine=engineArg;if(!isEngineInstalled(engine)){let message=`\`${engine}\` is not installed or not on your PATH. Install it and try again.`;return outputAgentError(client,{status:"error",reason:"engine_not_found",message},1),outputError(client,!1,"ENGINE_NOT_FOUND",message)}let scope=await resolveVcrScope(client,{project,jsonOutput:!1});if(typeof scope=="number")return scope;let parsed=parseNameArg(nameArg,scope.projectName);if("error"in parsed)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:parsed.error},1),outputError(client,!1,"INVALID_ARGUMENTS",parsed.error);let validationError=validateImageParts(parsed);if(validationError)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:validationError},1),outputError(client,!1,"INVALID_ARGUMENTS",validationError);let ref=`${buildRepositoryReference({registry:resolveRegistry(),teamSlug:scope.teamSlug,projectName:scope.projectName,repository:parsed.repository})}:${parsed.tag??DEFAULT_TAG}`,engineArgs=["push",...pushCompressionArgs(engine),...passthrough,ref];output_manager_default.log(`Running: ${engine} ${engineArgs.join(" ")}`);let result=await runEngine(engine,engineArgs,{cwd:client.cwd,captureStderr:!0});return result.exitCode!==0?reportEnginePushFailure(client,engine,"push",result):(output_manager_default.success(`Pushed ${ref}`),0)}export{push as default};
@@ -0,0 +1,12 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{OBSERVABILITY_METRICS_PATH,fetchCatalogMetricDetailOrExit,fetchMetricDetailOrExit,getDefaultAggregation}from"./chunk-NWFHHUKZ.js";import{computeGranularity,formatText,getDefaultCustomMetricAggregation,isCanonicalAggregation}from"./chunk-OK3S6KFX.js";import{formatErrorJson,formatQueryJson,getRollupColumnName,handleApiError}from"./chunk-G5FC5ZCO.js";import"./chunk-IVSSTHB6.js";import"./chunk-GZNDA6SV.js";import{resolveTimeRange,validateAllProjectMutualExclusivity}from"./chunk-6RIQPTJA.js";import"./chunk-MBL6TXEJ.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{metricsCommand}from"./chunk-WUZD4KBL.js";import"./chunk-JZRMH5UA.js";import"./chunk-QTKJC2O5.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{getScope}from"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import{getLinkedProject,getProjectByNameOrId}from"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{ProjectNotFound,isAPIError}from"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);function validateRequiredMetric(metric){return metric?{valid:!0,value:metric}:{valid:!1,code:"MISSING_METRIC",message:`Missing required metric. Specify the metric to query.
8
+
9
+ Run 'vercel metrics schema' to see available metrics.`}}function validateOrderDirection(orderDirection){return orderDirection===void 0?{valid:!0,value:void 0}:orderDirection==="asc"||orderDirection==="desc"?{valid:!0,value:orderDirection}:{valid:!1,code:"INVALID_ORDER",message:`Invalid order "${orderDirection}". Use "asc" or "desc".`,allowedValues:["asc","desc"]}}function validateOrderBy(orderBy){return orderBy===void 0?{valid:!0,value:void 0}:orderBy==="value"||orderBy==="count"?{valid:!0,value:orderBy}:{valid:!1,code:"INVALID_ORDER_BY",message:`Invalid order-by "${orderBy}". Use "value" or "count".`,allowedValues:["value","count"]}}function handleValidationError(result,jsonOutput,client,telemetry){return telemetry.trackCliError(result.code),jsonOutput?client.stdout.write(formatErrorJson(result.code,result.message,result.allowedValues)):(output_manager_default.error(result.message),result.allowedValues&&result.allowedValues.length>0&&output_manager_default.print(`
10
+ Available values: ${result.allowedValues.join(", ")}
11
+ `)),1}var PRODUCTION_ENVIRONMENT_FILTER="environment eq 'production'",PRODUCTION_ENVIRONMENT_KQL_FILTER="environment:production",CUSTOM_METRIC_VALUE_ALIAS="value",CUSTOM_METRIC_COUNT_ALIAS="__seriesCount",SUM_DEFAULT_METRIC_UNITS=new Set(["bytes","count","usd","units"]),FILTER_DEPRECATION_WARNING="OData support in --filter is deprecated and will be removed soon. KQL will be the only supported filter syntax.";function combineFilters(filters,prod,syntax="odata"){let nonEmptyFilters=[...filters?.filter(filter=>filter.length>0)??[],...prod?[syntax==="kql"?PRODUCTION_ENVIRONMENT_KQL_FILTER:PRODUCTION_ENVIRONMENT_FILTER]:[]];if(nonEmptyFilters.length===0)return;if(nonEmptyFilters.length===1)return nonEmptyFilters[0];let conjunction=syntax==="kql"?" AND ":" and ";return nonEmptyFilters.map(filter=>`(${filter})`).join(conjunction)}function usesODataSyntax(filters){return filters?.some(filter=>{let unquoted=filter.replace(/"(?:\\.|[^"\\])*"|'(?:''|[^'])*'/g,"");return/\s(?:eq|ne|gt|ge|lt|le|in)\s/i.test(unquoted)||/\b(?:contains|startswith|endswith)\s*\(/i.test(unquoted)})??!1}function getRequestOrderBy(metric,aggregation,orderBy){return orderBy==="value"?getRollupColumnName(metric,aggregation):void 0}function toBucketSeconds(granularity){return"minutes"in granularity?granularity.minutes*60:"hours"in granularity?granularity.hours*60*60:granularity.days*24*60*60}function alignTimeRangeToGranularity(startTime,endTime,granularity){let bucketMs=toBucketSeconds(granularity)*1e3;return{startTime:new Date(Math.floor(startTime.getTime()/bucketMs)*bucketMs),endTime:new Date(Math.ceil(endTime.getTime()/bucketMs)*bucketMs)}}function getCatalogDefaultAggregation(metric,isPlatformMetric){if(!isPlatformMetric)return getDefaultCustomMetricAggregation(metric.unit,metric.aggregations);let defaultAggregation=SUM_DEFAULT_METRIC_UNITS.has(metric.unit)?"sum":"avg";return metric.aggregations.includes(defaultAggregation)?defaultAggregation:defaultAggregation==="sum"&&metric.aggregations.includes("count")?"count":metric.aggregations.includes("sum")?"sum":metric.aggregations[0]}function toCanonicalMetricSelection(metric,aggregation,supportedAggregations){let[aggregationName,...dimensionParts]=aggregation.split("/"),dimension=dimensionParts.join("/")||void 0,countOnlyMetric=supportedAggregations?.includes("count")===!0&&!supportedAggregations.includes("sum"),additiveAggregation=supportedAggregations?.includes("sum")?"sum":countOnlyMetric||supportedAggregations===void 0&&metric.endsWith(".count")?"count":"sum";return aggregation==="persecond"?{metric,aggregation:additiveAggregation,per:"second"}:aggregation==="percent"?{metric,aggregation:additiveAggregation,normalize:"percent"}:aggregationName==="unique"?dimension?{metric,aggregation:"unique",dimensions:[dimension]}:{valid:!1,code:"UNSUPPORTED_AGGREGATION",message:'The unique aggregation requires a dimension, for example "unique/visitorId".'}:isCanonicalAggregation(aggregation)?{metric,aggregation}:{valid:!1,code:"INVALID_AGGREGATION",message:`Aggregation "${aggregation}" is not supported by the Observability query API.`}}function getCanonicalOrderBy(orderBy,selection,supportedAggregations){if(orderBy==="value")return"value";let supportsCount=supportedAggregations===void 0||supportedAggregations.includes("count");return selection.aggregation==="count"||supportsCount?"count":orderBy==="count"?{valid:!1,code:"INVALID_ORDER_BY",message:"--order-by count is not available because this metric does not support the count aggregation. Use --order-by value.",allowedValues:["value"]}:"value"}function createCanonicalMetricsRequest(options){let metrics={[CUSTOM_METRIC_VALUE_ALIAS]:options.selection},rankMetric=CUSTOM_METRIC_VALUE_ALIAS;return options.groupBy.length>0&&options.orderBy==="count"&&options.selection.aggregation!=="count"&&(metrics[CUSTOM_METRIC_COUNT_ALIAS]={metric:options.metric,aggregation:"count"},rankMetric=CUSTOM_METRIC_COUNT_ALIAS),{scope:{ownerId:options.scope.ownerId,...options.scope.type==="project"?{projectIds:options.scope.projectIds}:{}},timeRange:{start:options.startTime.toISOString(),end:options.endTime.toISOString()},bucketSeconds:toBucketSeconds(options.granularity),...options.groupBy.length>0?{groupBy:options.groupBy}:{},...options.filter?{filter:options.filter}:{},metrics,outputs:[CUSTOM_METRIC_VALUE_ALIAS],...options.groupBy.length>0?{seriesSelection:{limit:options.limit,mode:"exact",rankBy:[{metric:rankMetric,direction:options.orderDirection??"desc"}]}}:{}}}function canonicalResponseToMetricsResponse(response,rollupColumn,orderBy,orderDirection){let toRow=point=>({...point.dimensions,[rollupColumn]:point.values[CUSTOM_METRIC_VALUE_ALIAS]??null});return{...response.series?{data:response.series.map(point=>({timestamp:point.timestamp,...toRow(point)}))}:{},summary:response.summary.map(toRow),statistics:{rowsRead:response.meta.statistics.rowsRead,bytesRead:response.meta.statistics.bytesRead,dbTimeSeconds:response.meta.statistics.databaseElapsedMs/1e3,engineTimeSeconds:response.meta.statistics.elapsedMs/1e3,queryTable:[...new Set(response.meta.sources.map(source=>source.id))].sort().join(",")},...orderBy?{orderBy}:{},...orderDirection?{orderDirection}:{}}}async function resolveQueryScope(client,telemetry,opts){if(opts.project||opts.all){let{team}=await getScope(client);if(!team)return handleValidationError({valid:!1,code:"NO_TEAM",message:"No team context found. Run `vercel switch` to select a team, or use `vercel link` in a project directory."},opts.jsonOutput,client,telemetry);if(opts.all)return{scope:{type:"owner",ownerId:team.id},accountId:team.id,teamName:team.slug};let project=await getProjectByNameOrId(client,opts.project,team.id);if(project instanceof ProjectNotFound){let errMsg=`Project "${opts.project}" was not found in team "${team.slug}".`;return handleValidationError({valid:!1,code:"PROJECT_NOT_FOUND",message:errMsg},opts.jsonOutput,client,telemetry)}return{scope:{type:"project",ownerId:team.id,projectIds:[project.id]},accountId:team.id,teamName:team.slug,projectName:project.name}}let linkedProject=await getLinkedProject(client);return linkedProject.status==="error"?(telemetry.trackCliError("LINK_ERROR"),linkedProject.exitCode):linkedProject.status==="not_linked"?handleValidationError({valid:!1,code:"NOT_LINKED",message:"No linked project found. Run `vercel link` to link a project, or use --project <name-or-id> or --all."},opts.jsonOutput,client,telemetry):{scope:{type:"project",ownerId:linkedProject.org.id,projectIds:[linkedProject.project.id]},accountId:linkedProject.org.id,teamName:linkedProject.org.slug,projectName:linkedProject.project.name}}async function query(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(metricsCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return telemetry.trackCliError("INVALID_ARGUMENTS"),printError(err),1}let flags=parsedArgs.flags,positionalArgs=parsedArgs.args.slice(1),positionalMetric=positionalArgs[0]==="query"?positionalArgs[1]:positionalArgs[0],formatResult=validateJsonOutput(flags);if(!formatResult.valid)return telemetry.trackCliError("INVALID_OUTPUT_FORMAT"),output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput,metricFlag=positionalMetric,aggregationFlag=flags["--aggregation"],groupBy=flags["--group-by"]??[],limit=flags["--limit"],orderByInput=typeof flags["--order-by"]=="string"?flags["--order-by"].trim().toLowerCase():void 0,orderInput=typeof flags["--order"]=="string"?flags["--order"].trim().toLowerCase():void 0,filters=flags["--filter"],prod=flags["--prod"],since=flags["--since"],until=flags["--until"],granularity=flags["--granularity"],bucketTimezone=flags["--bucket-timezone"]?.trim(),project=flags["--project"],all=flags["--all"];telemetry.trackCliArgumentMetricId(metricFlag),telemetry.trackCliOptionAggregation(aggregationFlag),telemetry.trackCliOptionGroupBy(groupBy.length>0?groupBy:void 0),telemetry.trackCliOptionLimit(limit),telemetry.trackCliOptionOrderBy(orderByInput),telemetry.trackCliOptionOrder(orderInput),telemetry.trackCliOptionFilter(filters),telemetry.trackCliFlagProd(prod),telemetry.trackCliOptionSince(since),telemetry.trackCliOptionUntil(until),telemetry.trackCliOptionGranularity(granularity),telemetry.trackCliOptionBucketTimezone(bucketTimezone),telemetry.trackCliOptionProject(project),telemetry.trackCliFlagAll(all),telemetry.trackCliOptionFormat(flags["--format"]);let orderByResult=validateOrderBy(orderByInput);if(!orderByResult.valid)return handleValidationError(orderByResult,jsonOutput,client,telemetry);let orderByMode=orderByResult.value,requiredMetric=validateRequiredMetric(metricFlag);if(!requiredMetric.valid)return handleValidationError(requiredMetric,jsonOutput,client,telemetry);let metric=requiredMetric.value,mutualResult=validateAllProjectMutualExclusivity(all,project);if(!mutualResult.valid)return handleValidationError(mutualResult,jsonOutput,client,telemetry);let orderDirectionResult=validateOrderDirection(orderInput);if(!orderDirectionResult.valid)return handleValidationError(orderDirectionResult,jsonOutput,client,telemetry);let orderDirection=orderDirectionResult.value,scopeResult=await resolveQueryScope(client,telemetry,{project,all,jsonOutput});if(typeof scopeResult=="number")return scopeResult;let{scope,accountId,teamName,projectName}=scopeResult,isPlatformMetric=metric.startsWith("vercel."),useCanonicalQuery=!isPlatformMetric||!process.env.FF_LEGACY_METRICS,filterUsesOData=usesODataSyntax(filters);useCanonicalQuery&&filterUsesOData&&output_manager_default.print(`${import_chalk.default.yellow("!")} ${FILTER_DEPRECATION_WARNING}
12
+ `);let filter=combineFilters(filters,prod,useCanonicalQuery&&!filterUsesOData?"kql":"odata"),startTime,endTime;try{({startTime,endTime}=resolveTimeRange(since,until))}catch(err){let errMsg=err instanceof Error?err.message:String(err);return handleValidationError({valid:!1,code:"INVALID_TIME",message:errMsg},jsonOutput,client,telemetry)}let metricUnit,aggregationInput,canonicalAggregations;if(useCanonicalQuery){let catalogOrExitCode=await fetchCatalogMetricDetailOrExit(client,accountId,jsonOutput,metric,isPlatformMetric?"system":"custom",startTime.toISOString());if(typeof catalogOrExitCode=="number")return telemetry.trackCliError("SCHEMA_FETCH_FAILED"),catalogOrExitCode;let catalogMetric=catalogOrExitCode.find(item=>item.id===metric);if(!catalogMetric)return handleValidationError({valid:!1,code:"UNKNOWN_METRIC",message:`Unknown metric "${metric}".`,allowedValues:catalogOrExitCode.map(item=>item.id)},jsonOutput,client,telemetry);if(metricUnit=catalogMetric.unit,canonicalAggregations=catalogMetric.aggregations,aggregationFlag)aggregationInput=aggregationFlag;else{let defaultAggregation=getCatalogDefaultAggregation(catalogMetric,isPlatformMetric);if(!defaultAggregation)return handleValidationError({valid:!1,code:"INVALID_AGGREGATION",message:`Metric "${metric}" does not support any query aggregations.`},jsonOutput,client,telemetry);aggregationInput=defaultAggregation}}else{let detailOrExitCode=await fetchMetricDetailOrExit(client,accountId,metric,jsonOutput);if(typeof detailOrExitCode=="number")return telemetry.trackCliError("SCHEMA_FETCH_FAILED"),detailOrExitCode;aggregationInput=aggregationFlag??getDefaultAggregation(detailOrExitCode,metric)??"sum",metricUnit=detailOrExitCode.find(item=>item.id===metric)?.unit??"count"}let aggregation=aggregationInput,orderBy=getRequestOrderBy(metric,aggregation,orderByMode),rangeMs=endTime.getTime()-startTime.getTime(),granResult=computeGranularity(rangeMs,granularity),queryTimeRange=useCanonicalQuery?alignTimeRangeToGranularity(startTime,endTime,granResult.duration):{startTime,endTime};!jsonOutput&&granResult.adjusted&&granResult.notice&&output_manager_default.log(`Notice: ${granResult.notice}`);let body,canonicalOrderBy;if(!useCanonicalQuery)body={scope,metric,aggregation,startTime:startTime.toISOString(),endTime:endTime.toISOString(),granularity:granResult.duration,...bucketTimezone?{bucketTimezone}:{},...groupBy.length>0?{groupBy}:{},...filter?{filter}:{},limit:limit??10,...orderBy?{orderBy}:{},...orderDirection?{orderDirection}:{}};else{if(bucketTimezone)return handleValidationError({valid:!1,code:"UNSUPPORTED_BUCKET_TIMEZONE",message:"--bucket-timezone is not supported by the new Observability query API yet."},jsonOutput,client,telemetry);let selection=toCanonicalMetricSelection(metric,aggregation,canonicalAggregations);if("valid"in selection)return handleValidationError(selection,jsonOutput,client,telemetry);let supportedAggregation=selection.aggregation;if(canonicalAggregations&&!canonicalAggregations.includes(supportedAggregation))return handleValidationError({valid:!1,code:"INVALID_AGGREGATION",message:`Aggregation "${aggregation}" is not valid for metric "${metric}".`,allowedValues:[...canonicalAggregations]},jsonOutput,client,telemetry);let canonicalOrderByResult=groupBy.length>0?getCanonicalOrderBy(orderByMode,selection,canonicalAggregations):void 0;if(canonicalOrderByResult&&typeof canonicalOrderByResult!="string")return handleValidationError(canonicalOrderByResult,jsonOutput,client,telemetry);canonicalOrderBy=canonicalOrderByResult,body=createCanonicalMetricsRequest({scope,metric,selection,startTime:queryTimeRange.startTime,endTime:queryTimeRange.endTime,granularity:granResult.duration,groupBy,filter,limit:limit??10,orderBy:canonicalOrderBy,orderDirection})}let resolvedOrderBy=canonicalOrderBy??orderByMode;jsonOutput||output_manager_default.spinner("Querying metrics...");let response;try{if(!useCanonicalQuery)response=await client.fetch("/v2/observability/query",{method:"POST",body:JSON.stringify(body),headers:{"Content-Type":"application/json"},accountId,bailOn429:!0});else{let canonicalResponse=await client.fetch(OBSERVABILITY_METRICS_PATH,{method:"POST",body:JSON.stringify(body),headers:{"Content-Type":"application/json"},accountId,bailOn429:!0});response=canonicalResponseToMetricsResponse(canonicalResponse,getRollupColumnName(metric,aggregation),canonicalOrderBy,groupBy.length>0?orderDirection??"desc":void 0)}}catch(err){if(isAPIError(err))return telemetry.trackCliError(err.code??"API_ERROR",err.status),handleApiError(err,jsonOutput,client);let errMsg=err instanceof Error?err.message:String(err);return telemetry.trackCliError("NETWORK_ERROR"),jsonOutput?client.stdout.write(formatErrorJson("NETWORK_ERROR",errMsg)):output_manager_default.error(errMsg),1}finally{jsonOutput||output_manager_default.stopSpinner()}return jsonOutput?client.stdout.write(formatQueryJson({metric,aggregation,groupBy,filter,startTime:queryTimeRange.startTime.toISOString(),endTime:queryTimeRange.endTime.toISOString(),granularity:granResult.duration,...bucketTimezone?{bucketTimezone}:{},...resolvedOrderBy?{orderBy:resolvedOrderBy}:{},...orderDirection?{orderDirection}:{}},response)):client.stdout.write(formatText(response,{metric,metricUnit,aggregation,groupBy,filter,scope,projectName,teamName,periodStart:queryTimeRange.startTime.toISOString(),periodEnd:queryTimeRange.endTime.toISOString(),granularity:granResult.duration,bucketTimezone,orderBy:resolvedOrderBy,orderDirection})),0}export{query as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{performDeviceCodeFlow}from"./chunk-L243RUIR.js";import"./chunk-ULLWCOYC.js";import"./chunk-CN2QZO4U.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-PPCFQQSU.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);async function reauthenticate(client,error){let{tokenSource}=client.authConfig,reauthAction=error.enforced?"SAML re-authentication is required":"Re-authentication is required";if(tokenSource==="flag")throw new Error(`${reauthAction} for ${(0,import_chalk.bold)(error.scope)} scope, but the token provided via \`--token\` does not have access. Provide a token that is authorized for that scope.`);if(tokenSource==="env")throw new Error(`${reauthAction} for ${(0,import_chalk.bold)(error.scope)} scope, but the token provided via the VERCEL_TOKEN environment variable does not have access. Set VERCEL_TOKEN to a token that is authorized for that scope.`);if(!client.stdin.isTTY&&process.env.CI)throw new Error(`${reauthAction} for ${(0,import_chalk.bold)(error.scope)} scope, but the current environment is non-interactive so the device-code flow cannot be completed. Run \`vercel login\` in an interactive shell, or set VERCEL_TOKEN / pass \`--token\` with a token that is authorized for that scope.`);error.teamId&&error.enforced?output_manager_default.log(`You must re-authenticate with SAML to use ${(0,import_chalk.bold)(error.scope)} scope.`):output_manager_default.log(`You must re-authenticate to use ${(0,import_chalk.bold)(error.scope)} scope.`);let tokens=await performDeviceCodeFlow(client,{teamId:error.teamId||void 0});return tokens?(client.updateAuthConfig({token:tokens.access_token,userId:void 0,expiresAt:Math.floor(Date.now()/1e3)+tokens.expires_in,refreshToken:tokens.refresh_token}),client.persistAuthConfig(),output_manager_default.success(`Authentication complete for ${(0,import_chalk.bold)(error.scope)} scope.`),{token:tokens.access_token,email:""}):1}export{reauthenticate as default};
@@ -0,0 +1,10 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parsePosition,parseSubcommandArgs,requireProjectContext,resolveRoute,shellQuoteRouteIdentifierForSuggestion,withGlobalFlags}from"./chunk-EE3FVJLV.js";import{reorderSubcommand}from"./chunk-3QHJYVCY.js";import{stamp_default}from"./chunk-XPXOV5UO.js";import"./chunk-JZRMH5UA.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import{outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);async function stageRoutes(client,projectId,routes,overwrite,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({routes,overwrite})})}async function reorder(client,argv){let parsed=await parseSubcommandArgs(argv,reorderSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"],identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID and position are required.",next:[{command:withGlobalFlags(client,"routes reorder <name-or-id> --position <pos> --yes"),when:"replace placeholders; --first/--last or numeric position"}]},1),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes reorder <name-or-id> --position <pos>")}`),1;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;if(routes.length===1)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:"Cannot reorder when there is only one route."},1),output_manager_default.error("Cannot reorder when there is only one route."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;let currentIndex=routes.findIndex(r=>r.id===route.id),currentPosition=currentIndex+1,targetIndex,positionFlag=flags["--position"],firstFlag=flags["--first"],lastFlag=flags["--last"];if(firstFlag)targetIndex=0;else if(lastFlag)targetIndex=routes.length;else if(positionFlag)if(positionFlag==="first")targetIndex=0;else if(positionFlag==="last")targetIndex=routes.length;else{let num=parseInt(positionFlag,10);if(!isNaN(num)&&String(num)===positionFlag){if(num<1){let msg="Position must be 1 or greater. Positions are 1-based (e.g. --position 1 for first). Use --first or --last instead of 0.";return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"invalid_arguments",message:msg,next:[{command:withGlobalFlags(client,`routes reorder ${shellQuoteRouteIdentifierForSuggestion(identifier)} --first --yes`),when:"move to first position"},{command:withGlobalFlags(client,`routes reorder ${shellQuoteRouteIdentifierForSuggestion(identifier)} --position 1 --yes`),when:"same as first (1-based index)"},{command:withGlobalFlags(client,`routes reorder ${shellQuoteRouteIdentifierForSuggestion(identifier)} --last --yes`),when:"move to last position"}],hint:"Numeric --position uses 1-based indices; there is no position 0."},1),1):(output_manager_default.error(msg),1)}targetIndex=Math.min(num-1,routes.length)}else try{let pos=parsePosition(positionFlag);if(pos.placement==="start")targetIndex=0;else if(pos.placement==="end")targetIndex=routes.length;else if(pos.placement==="after"&&pos.referenceId){let refIndex=routes.findIndex(r=>r.id===pos.referenceId);if(refIndex===-1)return output_manager_default.error(`Reference route "${pos.referenceId}" not found. Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see route IDs.`),1;targetIndex=refIndex+1}else if(pos.placement==="before"&&pos.referenceId){let refIndex=routes.findIndex(r=>r.id===pos.referenceId);if(refIndex===-1)return output_manager_default.error(`Reference route "${pos.referenceId}" not found. Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see route IDs.`),1;targetIndex=refIndex}else return output_manager_default.error("Invalid position specification."),1}catch(e){return output_manager_default.error(`${e instanceof Error?e.message:"Invalid position"}. Usage: ${withGlobalFlags(client,"routes reorder <name-or-id> --position <pos>")}`),1}}else{client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Target position is required. Use --position <n|first|last|after:id|before:id> or --first / --last.",next:[{command:withGlobalFlags(client,`routes reorder ${shellQuoteRouteIdentifierForSuggestion(identifier)} --position <pos> --yes`),when:"replace <pos> with numeric position or first/last"}]},1),output_manager_default.print(`
8
+ `),output_manager_default.log("Current route order:");for(let i=0;i<routes.length;i++){let r=routes[i],isCurrent=r.id===route.id,prefix=isCurrent?import_chalk.default.cyan("\u2192"):" ",num=import_chalk.default.gray(`${i+1}.`),name=isCurrent?import_chalk.default.bold(r.name):r.name,src=import_chalk.default.gray(`(${r.route.src})`),marker=isCurrent?import_chalk.default.cyan(" \u2190 current"):"";output_manager_default.print(` ${prefix} ${num} ${name} ${src}${marker}
9
+ `)}output_manager_default.print(`
10
+ `);let input=await client.input.text({message:`Move "${route.name}" to position (1-${routes.length}, "first", or "last"):`,validate:val=>{if(!val)return"Position is required";if(val==="first"||val==="last")return!0;let num=parseInt(val,10);return isNaN(num)||num<1||num>routes.length?`Enter a number between 1 and ${routes.length}, "first", or "last"`:!0}});input==="first"?targetIndex=0:input==="last"?targetIndex=routes.length:targetIndex=parseInt(input,10)-1}let adjustedTarget=currentIndex<targetIndex?targetIndex-1:targetIndex,clampedTarget=Math.max(0,Math.min(adjustedTarget,routes.length-1));if(currentIndex===clampedTarget)return output_manager_default.log(`Route "${route.name}" is already at position ${currentPosition}.`),0;let finalPosition=clampedTarget+1;if(!skipConfirmation&&(client.nonInteractive&&outputAgentError(client,{status:"error",reason:"confirmation_required",message:"Reorder requires confirmation. Pass --yes in non-interactive mode.",next:[{command:withGlobalFlags(client,`routes reorder ${shellQuoteRouteIdentifierForSuggestion(identifier)} --position ${finalPosition} --yes`),when:"re-run with --yes"}]},1),!await client.input.confirm(`Move "${route.name}" from position ${currentPosition} to position ${finalPosition}?`,!0)))return output_manager_default.log("Aborted."),0;let reordered=[...routes];reordered.splice(currentIndex,1),reordered.splice(clampedTarget,0,route);let reorderStamp=stamp_default();output_manager_default.spinner(`Moving route "${route.name}"`);try{let{version}=await stageRoutes(client,project.id,reordered,!0,{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Moved")} "${route.name}" from position ${currentPosition} to ${finalPosition} ${import_chalk.default.gray(reorderStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to reorder route"),1}}export{reorder as default};
@@ -0,0 +1,9 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{resolveMessageContent}from"./chunk-JTVVBRW7.js";import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{addMessage,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-XHOGOH6N.js";import"./chunk-XD2LZRBS.js";import{outputError}from"./chunk-6RIQPTJA.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{replySubcommand}from"./chunk-NBVY237X.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);function validateAttachments(attach){if(!(!attach||attach.length===0)){if(attach.length>10)return"A message can have at most 10 attachments.";for(let url of attach)if(!/^https:\/\//i.test(url))return`Attachments must be https URLs (the API fetches them); got "${url}". Local file upload is not supported by the API.`}}async function reply(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(replySubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"reply")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput;telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionMessage(parsedArgs.flags["--message"]),telemetry.trackCliOptionFile(parsedArgs.flags["--file"]),telemetry.trackCliOptionAttach(parsedArgs.flags["--attach"]);let threadInput=parsedArgs.args[2];if(telemetry.trackCliArgumentThread(threadInput),!threadInput)return outputError(client,jsonOutput,"MISSING_THREAD","Pass a thread ID or URL: `vercel comments reply <thread> -m <text>`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}". Pass the thread ID or its vercel.com URL.`);let threadId=threadRef.id,attach=parsedArgs.flags["--attach"],attachError=validateAttachments(attach);if(attachError)return outputError(client,jsonOutput,"INVALID_ATTACHMENT",attachError);let content=await resolveMessageContent(client,{message:parsedArgs.flags["--message"],file:parsedArgs.flags["--file"],hasAttachments:!!(attach&&attach.length>0)},jsonOutput);if(typeof content=="number")return content;telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;jsonOutput||output_manager_default.spinner("Posting reply\u2026");try{let message=await addMessage(client,scope.teamId,threadId,{...content!==void 0&&{markdown:content},...attach&&attach.length>0&&{attachments:attach.map(url=>({url}))}});return jsonOutput?(client.stdout.write(`${JSON.stringify(message,null,2)}
8
+ `),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} Replied to ${threadId}
9
+ `),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}finally{output_manager_default.stopSpinner()}}export{reply as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import"./chunk-6L236MNA.js";function repoInfoToUrl(info){return`https://${info.provider}.com/${info.org}/${info.repo}`}export{repoInfoToUrl};
@@ -0,0 +1,12 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{addMessage,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts,updateThread}from"./chunk-XHOGOH6N.js";import{canPrompt}from"./chunk-XD2LZRBS.js";import{outputError}from"./chunk-6RIQPTJA.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{reopenSubcommand,resolveSubcommand}from"./chunk-NBVY237X.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);async function resolveThreads(client,telemetry,resolved){let subcommand=resolved?resolveSubcommand:reopenSubcommand,verb=resolved?"resolve":"reopen",pastVerb=resolved?"resolved":"reopened",parsedArgs,flagsSpecification=getFlagsSpecification(subcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,subcommand.name)}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput,closingMessage=resolved?parsedArgs.flags["--message"]:void 0,yes=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),resolved&&telemetry.trackCliOptionMessage(closingMessage);let threadInputs=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInputs[0]),threadInputs.length===0)return outputError(client,jsonOutput,"MISSING_THREAD",`Pass at least one thread ID or URL: \`vercel comments ${verb} <thread>\`.`);let threadIds=[],urlTeamSlug;for(let input of threadInputs){let ref=parseThreadArg(input);if(!ref)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${input}".`);if(ref.teamSlug){if(urlTeamSlug&&urlTeamSlug!==ref.teamSlug)return outputError(client,jsonOutput,"MIXED_TEAMS",`The URLs belong to different teams (${urlTeamSlug}, ${ref.teamSlug}). Run once per team.`);urlTeamSlug=ref.teamSlug}threadIds.push(ref.id)}if(closingMessage!==void 0&&threadIds.length>1)return outputError(client,jsonOutput,"MESSAGE_WITH_MULTIPLE_THREADS","Cannot use -m with multiple threads. Resolve one thread with a closing message, or resolve multiple threads without -m.");let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug});if(typeof scope=="number")return scope;if(threadIds.length>1&&!yes){if(!canPrompt(client)||jsonOutput)return outputError(client,jsonOutput,"CONFIRMATION_REQUIRED",`Pass --yes to ${verb} ${threadIds.length} comments non-interactively.`);if(!await client.input.confirm(`${import_chalk.default.bold(String(threadIds.length))} comments will be ${pastVerb} in team ${scope.teamSlug??scope.teamId}. Continue?`,!1))return output_manager_default.log("Canceled."),0}if(telemetry.trackCliOptionProject(parsedArgs.flags["--project"]),threadIds.length===1){let threadId=threadIds[0],replied=!1;try{closingMessage!==void 0&&(await addMessage(client,scope.teamId,threadId,{markdown:closingMessage}),replied=!0);let thread=await updateThread(client,scope.teamId,threadId,resolved);return jsonOutput?(client.stdout.write(`${JSON.stringify({thread,replied},null,2)}
8
+ `),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} ${threadId} ${pastVerb}${replied?" (with closing reply)":""}
9
+ `),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err),friendly=err.status===404?threadNotFoundMessage(threadId,scope):message;return outputError(client,jsonOutput,code,replied?`Replied, but ${verb} failed: ${friendly} Run \`vercel comments resolve ${threadId}\` (without -m) to finish without duplicating the reply.`:friendly)}throw err}}let results=[];for(let threadId of threadIds)try{await updateThread(client,scope.teamId,threadId,resolved),results.push({id:threadId,ok:!0})}catch(err){if(isAPIError(err)){let{message}=toApiErrorParts(err);results.push({id:threadId,ok:!1,error:message})}else throw err}let failed=results.filter(result=>!result.ok);if(jsonOutput)return client.stdout.write(`${JSON.stringify({results},null,2)}
10
+ `),failed.length>0?1:0;for(let result of results)result.ok?output_manager_default.print(`${import_chalk.default.green("\u2713")} ${result.id} ${pastVerb}
11
+ `):output_manager_default.print(`${import_chalk.default.yellow("!")} ${result.id} ${result.error}
12
+ `);return failed.length>0?1:0}export{resolveThreads as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{require_frameworks}from"./chunk-KK4AJES5.js";import"./chunk-QGIQK47P.js";import{__toESM}from"./chunk-6L236MNA.js";var import_frameworks=__toESM(require_frameworks(),1);function toDeploymentFramework(framework){return{name:framework.name,slug:framework.slug}}function resolveDeploymentFrameworkPreset({localFramework,projectFramework}){let frameworkSlug=typeof localFramework>"u"?projectFramework:localFramework,frameworkPreset=import_frameworks.frameworkList.find(framework=>framework.slug===frameworkSlug),otherPreset=import_frameworks.frameworkList.find(framework=>framework.slug===null);return frameworkPreset?toDeploymentFramework(frameworkPreset):otherPreset?toDeploymentFramework(otherPreset):{name:"Other",slug:null}}export{resolveDeploymentFrameworkPreset};
@@ -0,0 +1,16 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,findVersionById,getRoutes,parseSubcommandArgs,printDiffSummary,requireProjectContext,validateRequiredArguments,withGlobalFlags}from"./chunk-EE3FVJLV.js";import{restoreSubcommand}from"./chunk-3QHJYVCY.js";import{stamp_default}from"./chunk-XPXOV5UO.js";import"./chunk-JZRMH5UA.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import{outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);async function restore(client,argv){let parsed=await parseSubcommandArgs(argv,restoreSubcommand,client);if(typeof parsed=="number")return parsed;let error=validateRequiredArguments(parsed.args,["version-id"]);if(error)return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"missing_arguments",message:error,next:[{command:withGlobalFlags(client,"routes restore <version-id> --yes")},{command:withGlobalFlags(client,"routes list-versions")}]}),process.exit(1),1):(output_manager_default.error(error),1);let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,[versionIdentifier]=parsed.args;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),result=findVersionById(client,versions,versionIdentifier);if(result.error)return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"invalid_arguments",message:result.error,next:[{command:withGlobalFlags(client,"routes list-versions")}]}),process.exit(1),1):(output_manager_default.error(result.error),1);let version=result.version;if(!version)return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"not_found",message:"Version not found.",next:[{command:withGlobalFlags(client,"routes list-versions")}]}),process.exit(1),1):(output_manager_default.error("Version not found."),1);if(version.isLive){let liveMsg=`Version ${version.id.slice(0,12)} is currently live. You cannot restore the live version. Run ${withGlobalFlags(client,"routes list-versions")} to see previous versions you can restore.`;return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"invalid_arguments",message:liveMsg,next:[{command:withGlobalFlags(client,"routes list-versions")}]}),process.exit(1),1):(output_manager_default.error(`Version ${import_chalk.default.bold(version.id.slice(0,12))} is currently live. You cannot restore the live version.
8
+ Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list-versions"))} to see previous versions you can restore.`),1)}if(version.isStaging){let stagingMsg=`Version ${version.id.slice(0,12)} is staged. Use ${withGlobalFlags(client,"routes publish")} to publish it instead.`;return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"invalid_arguments",message:stagingMsg,next:[{command:withGlobalFlags(client,"routes publish --yes")}]}),process.exit(1),1):(output_manager_default.error(`Version ${import_chalk.default.bold(version.id.slice(0,12))} is staged. Use ${import_chalk.default.cyan(withGlobalFlags(client,"routes publish"))} to publish it instead.`),1)}output_manager_default.spinner("Fetching changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:version.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
9
+ ${import_chalk.default.bold("Changes to be restored:")}
10
+
11
+ `),printDiffSummary(changedRoutes),output_manager_default.print(`
12
+ `)):output_manager_default.print(`
13
+ ${import_chalk.default.gray("No changes detected from current production version.")}
14
+
15
+ `),!await confirmAction(client,parsed.flags["--yes"],`Restore version ${import_chalk.default.bold(version.id.slice(0,12))} to production?`,`This will replace the current live routes for ${import_chalk.default.bold(project.name)}.`))return output_manager_default.log("Canceled"),0;let updateStamp=stamp_default();output_manager_default.spinner(`Restoring version ${import_chalk.default.bold(version.id.slice(0,12))}`);try{let{version:newVersion}=await updateRouteVersion(client,project.id,version.id,"restore",{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Success!")} Version ${import_chalk.default.bold(newVersion.id.slice(0,12))} restored to production ${import_chalk.default.gray(updateStamp())}`),newVersion.ruleCount!==void 0&&output_manager_default.print(` ${import_chalk.default.bold("Active routes:")} ${newVersion.ruleCount}
16
+ `),0}catch(e){let msg=e.message||"Failed to restore version";return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"api_error",message:msg,next:[{command:withGlobalFlags(client,`routes restore ${versionIdentifier} --yes`)}]}),process.exit(1),1):(output_manager_default.error(msg),1)}}export{restore as default};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{repositoryPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepository,resolveVcrScope,validateVcrJsonOutput}from"./chunk-GTRGQIY2.js";import"./chunk-6RIQPTJA.js";import"./chunk-D4MW3RDW.js";import{removeSubcommand}from"./chunk-3QT7VOE3.js";import"./chunk-O7G3CZ42.js";import"./chunk-N3N5UHIL.js";import"./chunk-YMVDWVMO.js";import"./chunk-HBFPLBTX.js";import"./chunk-2I64AYHG.js";import"./chunk-SOJCELXH.js";import"./chunk-QTKJC2O5.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithYes,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(removeSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr rm <repository> --project <name-or-id>"),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],project=parsedArgs.flags["--project"],skipConfirmation=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionProject(project),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);let missingRepository=requireVcrRepository(client,repository,fr.jsonOutput,"vcr rm <repository>");if(typeof missingRepository=="number")return missingRepository;let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;if(!skipConfirmation&&(outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Deleting a repository deletes it and all of its images. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Delete repository ${repository} and all of its images? This cannot be undone.`,!1)))return output_manager_default.log("Canceled"),0;let path=repositoryPath(scope,repository);output_manager_default.spinner("Deleting repository...");try{return await client.fetch(path,{method:"DELETE"}),fr.jsonOutput?client.stdout.write(`${JSON.stringify({repository,deleted:!0},null,2)}
8
+ `):output_manager_default.success(`Repository ${repository} deleted`),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput);throw err}finally{output_manager_default.stopSpinner()}}export{rm as default};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{parseTeamRefs,require_async_sema,teamRefBody}from"./chunk-S5CEIACD.js";import{repositoryPermissionsPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-GTRGQIY2.js";import{outputError}from"./chunk-6RIQPTJA.js";import"./chunk-D4MW3RDW.js";import{permissionsRmSubcommand}from"./chunk-YMVDWVMO.js";import"./chunk-HBFPLBTX.js";import"./chunk-2I64AYHG.js";import"./chunk-SOJCELXH.js";import"./chunk-QTKJC2O5.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import{packageName}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_async_sema=__toESM(require_async_sema(),1);var USAGE="vcr permissions <repository> rm <team>[,<team>...]";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],teamRefs=parseTeamRefs(parsedArgs.args.slice(2)),project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),teamRefs.length===0)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing team. Example: ${packageName} vcr permissions ${repository} rm team_1a2b3c4d`,next:[{command:buildCommandWithGlobalFlags(client.argv,`vcr permissions ${repository} ls`),when:"List teams with access to pick one to remove"}]},1),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",`Usage: \`vercel ${USAGE}\``);let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPermissionsPath(scope,repository),removed=[],failed=[];output_manager_default.spinner(`Removing access to ${repository} for ${teamRefs.length===1?teamRefs[0]:`${teamRefs.length} teams`}...`);let sema=new import_async_sema.default(10),results;try{results=await Promise.all(teamRefs.map(async team=>{await sema.acquire();try{return await client.fetch(path,{method:"DELETE",body:teamRefBody(team)}),{ok:!0,team}}catch(err){if(!isAPIError(err))throw err;let message=err.serverMessage||`API error (${err.status}).`;return{ok:!1,team,failure:{team,code:err.code||"API_ERROR",message}}}finally{sema.release()}}))}finally{output_manager_default.stopSpinner()}for(let result of results)result.ok?(removed.push(result.team),fr.jsonOutput||output_manager_default.success(`Removed access to ${repository} for ${result.team}`)):(failed.push(result.failure),fr.jsonOutput||output_manager_default.error(`Failed to remove access to ${repository} for ${result.team}: ${result.failure.message}`));return failed.length>0&&outputAgentError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:`Failed to remove access to ${repository} for ${failed.map(f=>`${f.team} (${f.message})`).join(", ")}`},1),fr.jsonOutput&&client.stdout.write(`${JSON.stringify({removed,failed},null,2)}
8
+ `),failed.length>0?1:0}export{rm as default};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RULE_LIMIT,confirmationRequired,formatRuleLine,formatRuleTarget,handleTracingApiError,invalidArguments,isRuleEnvironment,readProjectTracing,resolveConfigScope,ruleNotFound,subcommandArguments,writeConfigJson,writeSamplingRules}from"./chunk-KO733OJG.js";import"./chunk-CUAIEGNE.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{rmSubcommand}from"./chunk-IVWPQYIH.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import{help}from"./chunk-2B2MN3U5.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{buildCommandWithGlobalFlags,quoteArg}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{TelemetryClient}from"./chunk-57GHYR4Y.js";import"./chunk-RCTYVKM5.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigRmTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagDefault(defaultOnly){defaultOnly&&this.trackCliFlag("default")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config rm <environment> [requestPath]";function matches(row,environment,selector){if(row.environment!==environment)return!1;switch(selector.kind){case"exact":return row.requestPath===selector.requestPath;case"default":return row.requestPath===null;case"every":return!0}}function describeSelection(environment,selector){switch(selector.kind){case"exact":return formatRuleTarget(environment,selector.requestPath);case"default":return formatRuleTarget(environment,null);case"every":return environment}}function ruleWord(count){return count===1?"rule":"rules"}function canConfirm(client){return!client.nonInteractive&&!client.isAgent&&client.stdin.isTTY===!0}function commandToRunByHand(client,environment,pathArg,defaultFlag){let template=["traces config rm",environment,...pathArg!==void 0?[quoteArg(pathArg)]:[],...defaultFlag?["--default"]:[]].join(" ");return buildCommandWithGlobalFlags(client.argv,template,void 0,{excludeFlags:["--non-interactive"],preserveProject:!0})}async function rm(client){let telemetry=new TracesConfigRmTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(rmSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0],defaultFlag=!!flags["--default"];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliFlagDefault(flags["--default"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0)return output_manager_default.print(help(rmSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);if(pathArg!==void 0&&defaultFlag)return invalidArguments(client,"`--default` selects the rule that has no path prefix, so it cannot be combined with a path prefix.");if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let selector=pathArg!==void 0?{kind:"exact",requestPath:pathArg}:defaultFlag?{kind:"default"}:{kind:"every"},formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;asJson||output_manager_default.spinner("Fetching trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let removed=entries.filter(entry=>matches(entry.row,environmentArg,selector)).map(entry=>entry.row),kept=entries.filter(entry=>!matches(entry.row,environmentArg,selector));if(removed.length===0)return ruleNotFound(client,`No trace sampling rule matches ${describeSelection(environmentArg,selector)} on ${project.name}.`);let removedLines=removed.map(formatRuleLine);output_manager_default.log(`The following ${removed.length} ${ruleWord(removed.length)} will be removed from ${import_chalk.default.bold(project.name)}:`);for(let line of removedLines)output_manager_default.print(` ${line}
8
+ `);if(!canConfirm(client))return confirmationRequired(client,`Removing ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name} needs a confirmation, and this session cannot prompt for one. Rules at risk: ${removedLines.join(", ")}.`,[{command:commandToRunByHand(client,environmentArg,pathArg,defaultFlag),when:"Run this in a terminal and answer the prompt"}]);if(!await client.input.confirm(`Remove ${removed.length} trace sampling ${ruleWord(removed.length)}?`,!1))return output_manager_default.log("Canceled."),0;asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");try{await writeSamplingRules({client,...scope,tracing,rules:kept.map(entry=>entry.rule)})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let message=`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name}. ${kept.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:removed,envelope:{removed,ruleCount:kept.length,ruleLimit:RULE_LIMIT},message,next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every remaining sampling rule"}]}),0):(output_manager_default.success(`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${import_chalk.default.bold(project.name)}. ${kept.length} of ${RULE_LIMIT} rules.`),0)}export{rm as default};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{printRuleDeletionReceipt,printRuleMutationReceipt,printRulePreview}from"./chunk-G6CTAHKY.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,resolveRulesTeam,rulesItemPath}from"./chunk-TKBXN4H3.js";import"./chunk-7PNYOSDU.js";import"./chunk-AFPOIDM5.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-6RIQPTJA.js";import"./chunk-GHAY4PSD.js";import"./chunk-2PPXY24N.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-J3U3L45Y.js";import"./chunk-ZIPVX7LD.js";import"./chunk-NHTF332K.js";import"./chunk-MBL6TXEJ.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import{rulesRmSubcommand}from"./chunk-FKCOBJFH.js";import"./chunk-GHM7V3GG.js";import"./chunk-QR7QPUFN.js";import"./chunk-QTKJC2O5.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{buildCommandWithYes,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-RCTYVKM5.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import{packageName}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function rm(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesRmSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules rm <rule-id> --yes"),printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let ruleId=parsedArgs.args[0];if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing rule ID. Example: ${packageName} alerts rules rm <rule-id> --yes`);let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;let skipConfirmation=!!parsedArgs.flags["--yes"],prefetchedRule;try{return!skipConfirmation&&(output_manager_default.spinner("Fetching alert rule\u2026"),prefetchedRule=await fetchRule(client,scope,ruleId),output_manager_default.stopSpinner(),printRulePreview(prefetchedRule),outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Removing an alert rule requires confirmation. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Delete alert rule ${prefetchedRule.name} (${ruleId})? This cannot be undone.`,!1))?(output_manager_default.log("Canceled"),0):(output_manager_default.spinner("Deleting alert rule\u2026"),await client.fetch(rulesItemPath(scope.teamId,ruleId),{method:"DELETE"}),format.jsonOutput?client.stdout.write(`${JSON.stringify({ok:!0,ruleId,deleted:!0},null,2)}
8
+ `):prefetchedRule?printRuleMutationReceipt("Deleted",prefetchedRule,client.argv):printRuleDeletionReceipt(ruleId),0)}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{rm as default};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{imagePath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepositoryAndImageId,resolveVcrScope,validateVcrJsonOutput}from"./chunk-GTRGQIY2.js";import"./chunk-6RIQPTJA.js";import"./chunk-D4MW3RDW.js";import{imageRmSubcommand}from"./chunk-N3N5UHIL.js";import"./chunk-HBFPLBTX.js";import"./chunk-2I64AYHG.js";import"./chunk-SOJCELXH.js";import"./chunk-QTKJC2O5.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithYes,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(imageRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr image rm <repository> <imageId> --project <name-or-id>"),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],imageId=parsedArgs.args[1],project=parsedArgs.flags["--project"],skipConfirmation=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionProject(project),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);let missingArgs=requireVcrRepositoryAndImageId(client,repository,imageId,fr.jsonOutput,"vcr image rm <repository> <imageId>");if(typeof missingArgs=="number")return missingArgs;let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;if(!skipConfirmation&&(outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Deleting an image is permanent. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Delete image ${imageId} from ${repository}? This cannot be undone.`,!1)))return output_manager_default.log("Canceled"),0;let path=imagePath(scope,repository,imageId);output_manager_default.spinner("Deleting image...");try{return await client.fetch(path,{method:"DELETE"}),fr.jsonOutput?client.stdout.write(`${JSON.stringify({imageId,repository,deleted:!0},null,2)}
8
+ `):output_manager_default.success(`Image ${imageId} deleted`),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput);throw err}finally{output_manager_default.stopSpinner()}}export{rm as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{RoutesAddTelemetryClient,RoutesEditTelemetryClient,RoutesTelemetryClient}from"./chunk-4NE5IQ25.js";import"./chunk-57GHYR4Y.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-BRK4OB4B.js";import"./chunk-F2ZWW2IO.js";import"./chunk-XFVGX5HG.js";import"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{RoutesAddTelemetryClient,RoutesEditTelemetryClient,RoutesTelemetryClient};
@@ -0,0 +1,8 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{printRule}from"./chunk-G6CTAHKY.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,resolveRulesTeam}from"./chunk-TKBXN4H3.js";import"./chunk-7PNYOSDU.js";import"./chunk-AFPOIDM5.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-6RIQPTJA.js";import"./chunk-GHAY4PSD.js";import"./chunk-2PPXY24N.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-J3U3L45Y.js";import"./chunk-ZIPVX7LD.js";import"./chunk-NHTF332K.js";import"./chunk-MBL6TXEJ.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import{rulesInspectSubcommand}from"./chunk-FKCOBJFH.js";import"./chunk-GHM7V3GG.js";import"./chunk-QR7QPUFN.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENBTTYJR.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-RCTYVKM5.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import{packageName}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function inspectRule(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesInspectSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules inspect <rule-id>"),printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let ruleId=parsedArgs.args[0];if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing rule ID. Example: ${packageName} alerts rules inspect <rule-id>`);let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule\u2026");try{let rule=await fetchRule(client,scope,ruleId);return format.jsonOutput?client.stdout.write(`${JSON.stringify({rule},null,2)}
8
+ `):printRule(rule),0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{inspectRule as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{getSubcommand}from"./chunk-ETV3C2CV.js";import{AGENT_REASON}from"./chunk-ENBTTYJR.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-NS4FH2TY.js";import"./chunk-JAJW3P42.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var RULES_CONFIG={ls:["ls","list"],schema:["schema"],add:["add","create"],inspect:["inspect","get"],rm:["rm","remove","delete"],update:["update","patch"]};async function rules(client,argv){if(argv.length===0||argv[0]?.startsWith("-")){let lsFn=(await import("./ls-WEG45IOC.js")).default;return lsFn(client,argv)}let{subcommand,args,subcommandOriginal}=getSubcommand(argv,RULES_CONFIG);if(subcommand==null)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:`Unknown "alerts rules" subcommand "${argv[0]}".`,next:[{command:buildCommandWithGlobalFlags(client.argv,"alerts rules --help"),when:"Show valid rules subcommands"}]},1),output_manager_default.error(`Unknown "alerts rules" subcommand "${argv[0]}". Run \`vercel alerts rules --help\`.`),1;switch(subcommand){case"ls":return(await import("./ls-WEG45IOC.js")).default(client,args);case"schema":return(await import("./schema-KCNKVFT3.js")).default(client,args);case"add":return(await import("./add-PYUNJZ6K.js")).default(client,args);case"inspect":return(await import("./rule-inspect-TT3DRGCS.js")).default(client,args);case"rm":return(await import("./rm-WB2AIP3N.js")).default(client,args);case"update":return(await import("./update-RBFNNSWE.js")).default(client,args);default:return output_manager_default.error(`Unhandled rules subcommand: ${String(subcommandOriginal)}`),1}}export{rules as default};
@@ -0,0 +1,14 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{fetchCatalogMetricDetailOrExit,fetchCombinedMetricListOrExit,fetchCustomMetricDetailOrExit,fetchMetricCatalogListOrExit,fetchMetricDetailOrExit}from"./chunk-NWFHHUKZ.js";import{formatErrorJson}from"./chunk-G5FC5ZCO.js";import{indent_default}from"./chunk-GZNDA6SV.js";import{formatTable}from"./chunk-NUGLE4QY.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{schemaSubcommand}from"./chunk-WUZD4KBL.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{getScope}from"./chunk-5QQNYN4N.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import{require_pluralize}from"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_pluralize=__toESM(require_pluralize(),1);async function schema(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(schemaSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let flags=parsedArgs.flags,positionalArgs=parsedArgs.args.slice(1),positionalMetric=positionalArgs[0]==="schema"?positionalArgs[1]:positionalArgs[0],formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput,metric=positionalMetric;telemetry.trackCliArgumentMetricId(metric),telemetry.trackCliOptionFormat(flags["--format"]);let{team}=await getScope(client);if(!team){let message="The metrics schema API request was not authorized. Run `vercel login` to authenticate and `vercel switch` to select a team, then try again.";return jsonOutput?client.stdout.write(formatErrorJson("SCHEMA_UNAUTHORIZED",message)):output_manager_default.error(message),1}let useMetricsV1=!process.env.FF_LEGACY_METRICS;if(metric){let isPlatformMetric=metric.startsWith("vercel."),detail;if(useMetricsV1){let result=await fetchCatalogMetricDetailOrExit(client,team.id,jsonOutput,metric,isPlatformMetric?"system":"custom");if(typeof result=="number")return result;detail=result}else if(isPlatformMetric){let result=await fetchMetricDetailOrExit(client,team.id,metric,jsonOutput);if(typeof result=="number")return result;detail=result}else{let result=await fetchCustomMetricDetailOrExit(client,team.id,jsonOutput,metric);if(typeof result=="number")return result;detail=result}if(detail.length===0){let message=`No metrics match "${metric}". Run \`vercel metrics schema\` to see available metrics.`;return jsonOutput?client.stdout.write(formatErrorJson("METRIC_NOT_FOUND",message)):output_manager_default.error(message),1}if(jsonOutput)return client.stdout.write(JSON.stringify(detail,null,2)),0;output_manager_default.log(`Metric: ${metric}`);let metricsTable=formatMetricsTable(toDisplayMetrics(detail));return metricsTable&&(output_manager_default.print(metricsTable),output_manager_default.print(`
8
+ `)),0}let metricsOrExitCode=useMetricsV1?await fetchMetricCatalogListOrExit(client,team.id,jsonOutput):await fetchCombinedMetricListOrExit(client,team.id,jsonOutput);return typeof metricsOrExitCode=="number"?metricsOrExitCode:(jsonOutput?client.stdout.write(JSON.stringify(metricsOrExitCode,null,2)):(output_manager_default.log(`${(0,import_pluralize.default)("Metric",metricsOrExitCode.length,!0)} found`),output_manager_default.print(formatMetricListTable(metricsOrExitCode)),output_manager_default.print(`
9
+ `)),0)}function formatMetricListTable(metrics){return indent_default(formatTable(["Metric","Description"],["l","l"],[{rows:metrics.map(metric=>[metric.id,metric.description])}]),1)}function toDisplayMetrics(metrics){return metrics.map(metric=>{let dimensions=metric.dimensions.map(dimension=>typeof dimension=="string"?dimension:dimension.name);return{id:metric.id,description:metric.description,dimensions,unit:metric.unit,aggregations:metric.aggregations.map(aggregation=>"defaultAggregation"in metric&&aggregation===metric.defaultAggregation?`${aggregation} (default)`:aggregation)}})}function formatMetricsTable(metrics){if(metrics.length===0)return null;let dimensionsByMetric=metrics.map(metric=>metric.dimensions),sharedDimensions=dimensionsByMetric[0].filter(dimension=>dimensionsByMetric.every(metricDimensions=>metricDimensions.includes(dimension))),rows=metrics.map(metric=>{let extraDimensions=metric.dimensions.filter(dimension=>!sharedDimensions.includes(dimension)).map(dimension=>`+${dimension}`),aggregations=metric.aggregations.join(", ");return{metric:metric.id,description:metric.description,unit:metric.unit,aggregations,extraDimensions}}),hasExtraDimensions=rows.some(row=>row.extraDimensions.length>0),tableHeaders=hasExtraDimensions?["Metric","Description","Unit","Aggregations","Dimensions"]:["Metric","Description","Unit","Aggregations"],tableRows=rows.map(row=>hasExtraDimensions?[row.metric,row.description,row.unit,row.aggregations,row.extraDimensions.join(", ")||"\u2014"]:[row.metric,row.description,row.unit,row.aggregations]),sharedDimensionsLine=sharedDimensions.length>0?metrics.length===1?`Dimensions:
10
+ ${sharedDimensions.join(", ")}`:`Shared dimensions:
11
+ ${sharedDimensions.join(", ")}`:null;return[`
12
+ ${indent_default(formatTable(tableHeaders,hasExtraDimensions?["l","l","l","l","l"]:["l","l","l","l"],[{rows:tableRows}]),1)}`,sharedDimensionsLine].filter(Boolean).join(`
13
+
14
+ `)}export{schema as default};
@@ -0,0 +1,44 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{handleRulesApiError,outputRulesError,resolveRulesTeam,rulesSchemaPath}from"./chunk-TKBXN4H3.js";import"./chunk-AFPOIDM5.js";import{indent_default}from"./chunk-GZNDA6SV.js";import"./chunk-6RIQPTJA.js";import"./chunk-2PPXY24N.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-J3U3L45Y.js";import"./chunk-ZIPVX7LD.js";import"./chunk-NHTF332K.js";import{formatTable}from"./chunk-NUGLE4QY.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import{rulesSchemaSubcommand}from"./chunk-FKCOBJFH.js";import"./chunk-GHM7V3GG.js";import"./chunk-QR7QPUFN.js";import"./chunk-QTKJC2O5.js";import"./chunk-ENBTTYJR.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import"./chunk-RCTYVKM5.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import{isAPIError}from"./chunk-R2TGGVCT.js";import{packageName}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function schema(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesSchemaSubcommand.options))}catch(error){return printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let value=parsedArgs.flags["--type"];if(value!==void 0&&value!=="built-in"&&value!=="custom"){let suggestion=value==="custom_alert"?" Use custom; alert rule types are built-in and custom.":"";return outputRulesError(client,format.jsonOutput,"INVALID_RULE_TYPE",`Invalid rule type "${String(value)}".${suggestion} Expected built-in or custom.`)}let type=value,scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule schema\u2026");try{let document=await client.fetch(rulesSchemaPath(scope.teamId,type));if(format.jsonOutput)return client.stdout.write(`${JSON.stringify(document,null,2)}
8
+ `),0;if(!type)return printSchemaIndex(document.ruleTypes),0;let ruleSchema=document.ruleTypes.find(item=>item.type===type);return ruleSchema?(printSchema(ruleSchema),0):outputRulesError(client,!1,"INVALID_SCHEMA_RESPONSE",`The API did not return the ${type} alert rule schema.`)}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}function printSchemaIndex(ruleTypes){output_manager_default.log("Alert rule schemas"),output_manager_default.print(`${formatRows(["Type","Description"],ruleTypes.map(item=>[item.type,item.description]))}
9
+ Run \`${packageName} alerts rules schema --type <type>\` for fields and examples.
10
+ `)}function printSchema(schema2){output_manager_default.log(`Alert rule schema: ${schema2.type}`),output_manager_default.print(`${schema2.description}
11
+
12
+ `),printCliScope(schema2.type),printFields(schema2),schema2.metricDiscovery&&(output_manager_default.print(`Metric discovery
13
+
14
+ `),output_manager_default.print(`${indent_default(schema2.metricDiscovery.command,2)}
15
+ `),output_manager_default.print(`${indent_default(schema2.metricDiscovery.description,4)}
16
+
17
+ `)),printConstraints(schema2.constraints),printExamples("Create examples","create",schema2.create.examples),printExamples("Update examples","update",schema2.update.examples)}function printCliScope(type){output_manager_default.print(`CLI scope flags
18
+
19
+ `),output_manager_default.print(`${indent_default("--project <name-or-id>",2)}
20
+ `),output_manager_default.print(`${indent_default(type==="built-in"?"Apply the rule only to the resolved project":"Set the project evaluated by the rule",4)}
21
+ `),type==="built-in"&&(output_manager_default.print(`${indent_default("--all",2)}
22
+ `),output_manager_default.print(`${indent_default("Apply the rule to every team project",4)}
23
+ `)),output_manager_default.print(`${indent_default("Use a scope flag or ruleScope in the body, not both.",2)}
24
+
25
+ `)}function printFields(schema2){let createFields=collectFields(schema2.create.jsonSchema),updateFields=collectFields(schema2.update.jsonSchema),paths=[...createFields.keys(),...[...updateFields.keys()].filter(path=>!createFields.has(path))];output_manager_default.print(`Fields
26
+
27
+ `);for(let path of paths){let create=createFields.get(path),update=updateFields.get(path),types=unique([...create?.types??[],...update?.types??[]]),descriptions=unique([...create?.descriptions??[],...update?.descriptions??[]]);output_manager_default.print(`${indent_default(path,2)}
28
+ `),output_manager_default.print(`${indent_default(`${types.join(" | ")||"value"} \xB7 create ${create?.requirement??"not accepted"} \xB7 update ${update?.requirement??"not accepted"}`,4)}
29
+ `),descriptions[0]&&output_manager_default.print(`${indent_default(descriptions[0],4)}
30
+ `),output_manager_default.print(`
31
+ `)}}function collectFields(schema2){let fields=new Map;return visitObjectSchema(schema2,"",!1,fields),fields}function visitObjectSchema(schema2,prefix,conditional,fields){let properties=asSchemaRecord(schema2.properties),required=new Set(Array.isArray(schema2.required)?schema2.required.filter(item=>typeof item=="string"):[]);for(let[name,propertySchema]of Object.entries(properties)){let path=prefix?`${prefix}.${name}`:name,requirement=conditional?"conditional":required.has(name)?"required":"optional";addField(fields,path,propertySchema,requirement),visitNestedSchema(propertySchema,path,requirement!=="required",fields)}for(let variant of schemaVariants(schema2))visitObjectSchema(variant,prefix,!0,fields)}function visitNestedSchema(schema2,path,conditional,fields){(schema2.properties||schema2.oneOf||schema2.anyOf||schema2.allOf)&&visitObjectSchema(schema2,path,conditional,fields);let additionalProperties=asSchema(schema2.additionalProperties);if(additionalProperties){let entryPath=`${path}.<key>`;addField(fields,entryPath,additionalProperties,"conditional"),visitNestedSchema(additionalProperties,entryPath,!0,fields)}let items=asSchema(schema2.items);if(items&&visitNestedSchema(items,`${path}[]`,!0,fields),Array.isArray(schema2.prefixItems))for(let item of schema2.prefixItems){let itemSchema=asSchema(item);itemSchema&&visitNestedSchema(itemSchema,`${path}[]`,!0,fields)}}function addField(fields,path,schema2,requirement){let current=fields.get(path),type=describeSchemaType(schema2),description=typeof schema2.description=="string"?schema2.description:void 0;if(!current){fields.set(path,{requirement,types:type?[type]:[],descriptions:description?[description]:[]});return}current.types=unique([...current.types,...type?[type]:[]]),current.descriptions=unique([...current.descriptions,...description?[description]:[]]),current.requirement!==requirement&&(current.requirement="conditional")}function describeSchemaType(schema2){if("const"in schema2)return formatLiteral(schema2.const);if(Array.isArray(schema2.enum))return schema2.enum.map(formatLiteral).join(" | ");let variants=schemaVariants(schema2).map(describeSchemaType).filter(Boolean);if(variants.length>0)return unique(variants).join(" | ");if(schema2.type==="array"||schema2.prefixItems||schema2.items){if(Array.isArray(schema2.prefixItems))return`[${schema2.prefixItems.map(asSchema).filter(item2=>item2!==void 0).map(describeSchemaType).join(", ")||"value"}]`;let item=asSchema(schema2.items);return`${item?describeSchemaType(item):"value"}[]`}if(schema2.type==="object"||schema2.properties){let value=asSchema(schema2.additionalProperties);return value?`record<string, ${describeSchemaType(value)}>`:"object"}return typeof schema2.type=="string"?schema2.type:"value"}function schemaVariants(schema2){return["oneOf","anyOf","allOf"].flatMap(key=>{let value=schema2[key];return Array.isArray(value)?value.map(asSchema).filter(item=>item!==void 0):[]})}function asSchema(value){return value!==null&&typeof value=="object"&&!Array.isArray(value)?value:void 0}function asSchemaRecord(value){let schema2=asSchema(value);return schema2?Object.fromEntries(Object.entries(schema2).filter(entry=>asSchema(entry[1])!==void 0)):{}}function formatLiteral(value){return typeof value=="string"?value:JSON.stringify(value)??String(value)}function unique(values){return[...new Set(values)]}function printConstraints(constraints){if(constraints.length!==0){output_manager_default.print(`Constraints
32
+
33
+ `);for(let constraint of constraints){let operations=constraint.appliesTo.join("/"),kind=constraint.kind==="request"?"":` \xB7 ${humanize(constraint.kind)}`;output_manager_default.print(`${indent_default(`${humanize(constraint.code)} \xB7 ${operations}${kind}`,2)}
34
+ `),output_manager_default.print(`${indent_default(`Paths: ${constraint.paths.join(", ")}`,4)}
35
+ `),output_manager_default.print(`${indent_default(constraint.description,4)}
36
+
37
+ `)}}}function humanize(value){let words=value.replace(/[-_]/g," ");return`${words.charAt(0).toUpperCase()}${words.slice(1)}`}function printExamples(title,operation,examples){output_manager_default.print(`${title}
38
+
39
+ `);for(let example of examples){let fileName=operation==="create"?"rule.json":"patch.json",command=operation==="create"?`${packageName} alerts rules add --body ./${fileName}`:`${packageName} alerts rules update <rule-id> --body ./${fileName}`;output_manager_default.print(`${indent_default(example.name,2)}
40
+ `),output_manager_default.print(`${indent_default(`Body (${fileName}):`,4)}
41
+ `),output_manager_default.print(`${indent_default(JSON.stringify(example.body,null,2),6)}
42
+ `),output_manager_default.print(`${indent_default(command,4)}
43
+
44
+ `)}}function formatRows(headers,rows){return formatTable(headers,headers.map(()=>"l"),[{rows}]).trim()}export{schema as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{selectOrg}from"./chunk-UETTIYUQ.js";import"./chunk-CN2QZO4U.js";import"./chunk-SXUEGVWB.js";import"./chunk-NS4FH2TY.js";import"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{selectOrg as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RATE_ERROR,RULE_LIMIT,formatRate,formatRuleTarget,handleTracingApiError,hasSameKey,invalidArguments,isRuleEnvironment,parseSampleRate,readProjectTracing,resolveConfigScope,subcommandArguments,toApiRate,toRule,writeConfigJson,writeSamplingRules}from"./chunk-KO733OJG.js";import"./chunk-CUAIEGNE.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{setSubcommand}from"./chunk-IVWPQYIH.js";import"./chunk-ENS6KX2F.js";import"./chunk-LDM3SQAU.js";import"./chunk-ENBTTYJR.js";import{help}from"./chunk-2B2MN3U5.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-NS4FH2TY.js";import"./chunk-5QQNYN4N.js";import{TelemetryClient}from"./chunk-57GHYR4Y.js";import"./chunk-RCTYVKM5.js";import{parseArguments}from"./chunk-HTC6KO2B.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-LNPMDXBJ.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-BRK4OB4B.js";import"./chunk-VLZ47RWM.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-XSVBYDYI.js";import"./chunk-EVZRQGNK.js";import"./chunk-R2TGGVCT.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import"./chunk-XFVGX5HG.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigSetTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRate(rate){rate&&this.trackCliArgument({arg:"rate",value:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config set <environment> <rate> [requestPath]";async function set(client){let telemetry=new TracesConfigSetTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(setSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,rateArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRate(rateArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0||rateArg===void 0)return output_manager_default.print(help(setSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);let sampleRate=parseSampleRate(rateArg);if(sampleRate===void 0)return invalidArguments(client,`${RATE_ERROR} Received: ${rateArg}`);if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;let rule={environment:environmentArg,requestPath:pathArg??null,sampleRate};asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}let existingIndex=entries.findIndex(entry=>hasSameKey(entry.row,rule)),previous=existingIndex===-1?void 0:entries[existingIndex].row,nextRules=existingIndex===-1?[...entries.map(entry=>entry.rule),toRule(rule)]:entries.map((entry,index)=>index===existingIndex?{...entry.rule,rate:toApiRate(rule.sampleRate)}:entry.rule);if(nextRules.length>RULE_LIMIT)return output_manager_default.stopSpinner(),invalidArguments(client,`A project can have at most ${RULE_LIMIT} trace sampling rules, and ${project.name} already has ${entries.length}. Remove one with ${getCommandName("traces config rm <environment> [requestPath]")} first.`);try{await writeSamplingRules({client,...scope,tracing,rules:nextRules})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let target=formatRuleTarget(rule.environment,rule.requestPath),wasClause=previous?` (was ${formatRate(previous.sampleRate)})`:"",successLine=subject=>`Set ${subject} to ${formatRate(rule.sampleRate)}${wasClause}. ${nextRules.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:rule,envelope:{rule,previousSampleRate:previous?.sampleRate??null,ruleCount:nextRules.length,ruleLimit:RULE_LIMIT},message:successLine(target),next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every sampling rule"}]}),0):(output_manager_default.success(successLine(import_chalk.default.bold(target))),0)}export{set as default};