@vercel/cli-support 65.8.0-snapshot-c4f338842961 → 65.8.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 (313) hide show
  1. package/dist/chunks/add-3MWFJH54.js +8 -0
  2. package/dist/chunks/add-CJWCA3MM.js +8 -0
  3. package/dist/chunks/add-GLCVYEEN.js +8 -0
  4. package/dist/chunks/build-6RK6VECG.js +7 -0
  5. package/dist/chunks/{chunk-UF7QYHFU.js → chunk-2B7U6BB5.js} +1 -1
  6. package/dist/chunks/{chunk-UMMQR6WI.js → chunk-2OET5FWH.js} +1 -1
  7. package/dist/chunks/chunk-2PYFJXKS.js +14 -0
  8. package/dist/chunks/{chunk-FVIVFDCB.js → chunk-2QSNFVB6.js} +1 -1
  9. package/dist/chunks/{chunk-SLDWAIO3.js → chunk-33U57CNE.js} +1 -1
  10. package/dist/chunks/{chunk-N5CXIFE2.js → chunk-37DIJCWK.js} +1 -1
  11. package/dist/chunks/{chunk-HMWDOAWO.js → chunk-3AXMZRAB.js} +1 -1
  12. package/dist/chunks/{chunk-4JE57EBL.js → chunk-3DDEBTCC.js} +1 -1
  13. package/dist/chunks/{chunk-O7COT3YB.js → chunk-3KSTUMR6.js} +1 -1
  14. package/dist/chunks/{chunk-26QK3I2S.js → chunk-3LQ2ADXO.js} +1 -1
  15. package/dist/chunks/{chunk-QFUCWOCL.js → chunk-3RXEJWYM.js} +1 -1
  16. package/dist/chunks/{chunk-FAELJM4F.js → chunk-44XDCARR.js} +1 -1
  17. package/dist/chunks/{chunk-M7LUSXMG.js → chunk-45UDRX4C.js} +1 -1
  18. package/dist/chunks/{chunk-EAUDC24V.js → chunk-4ELZOAQH.js} +1 -1
  19. package/dist/chunks/{chunk-CCD7E322.js → chunk-4MP4HVBG.js} +1 -1
  20. package/dist/chunks/{chunk-64VMAYM6.js → chunk-5GOQ3FBV.js} +1 -1
  21. package/dist/chunks/{chunk-OGSTNJJ5.js → chunk-5MHRCRIN.js} +1 -1
  22. package/dist/chunks/{chunk-JAOYF7AW.js → chunk-5SMV2PPI.js} +1 -1
  23. package/dist/chunks/{chunk-QAYWROXQ.js → chunk-62FZFXPJ.js} +1 -1
  24. package/dist/chunks/{chunk-WGPYUXIC.js → chunk-63DO6KMD.js} +2 -2
  25. package/dist/chunks/{chunk-OKNDHNH6.js → chunk-6KCYUYUM.js} +1 -1
  26. package/dist/chunks/{chunk-IUMJJFEP.js → chunk-6V67VZJD.js} +1 -1
  27. package/dist/chunks/{chunk-JYK7ZIZW.js → chunk-753RQ6WV.js} +1 -1
  28. package/dist/chunks/{chunk-EMORYAJQ.js → chunk-7A5WO5KA.js} +1 -1
  29. package/dist/chunks/chunk-7BML2OR6.js +33 -0
  30. package/dist/chunks/{chunk-FNA4MIOH.js → chunk-7E6UJXLR.js} +1 -1
  31. package/dist/chunks/{chunk-ET5ARPPO.js → chunk-7EJ3BZ67.js} +1 -1
  32. package/dist/chunks/{chunk-VWHIWUGJ.js → chunk-7V2PXIVW.js} +1 -1
  33. package/dist/chunks/{chunk-RKWPLZJX.js → chunk-A67TLHES.js} +1 -1
  34. package/dist/chunks/{chunk-OTYF3ZZW.js → chunk-A6F3EE2O.js} +1 -1
  35. package/dist/chunks/{chunk-V6NMCQUQ.js → chunk-AEOG4E5G.js} +1 -1
  36. package/dist/chunks/{chunk-F4KY2TOK.js → chunk-AKOYIH3A.js} +1 -1
  37. package/dist/chunks/{chunk-RMW2FDXS.js → chunk-APNR444T.js} +1 -1
  38. package/dist/chunks/{chunk-OCRNZT7G.js → chunk-AQA4JVKA.js} +1 -1
  39. package/dist/chunks/{chunk-KHADRPBJ.js → chunk-B3ETPBO4.js} +1 -1
  40. package/dist/chunks/{chunk-CS6E5XNQ.js → chunk-BHJLCFQ4.js} +1 -1
  41. package/dist/chunks/{chunk-RPWGUQSE.js → chunk-BLFPDEXE.js} +1 -1
  42. package/dist/chunks/chunk-BULSRTQE.js +7 -0
  43. package/dist/chunks/{chunk-SXRZZDON.js → chunk-C4XT3PG4.js} +1 -1
  44. package/dist/chunks/chunk-CJHVHB2F.js +8 -0
  45. package/dist/chunks/{chunk-DPZFKHW3.js → chunk-CJLRNGWY.js} +1 -1
  46. package/dist/chunks/chunk-D3GYYGSS.js +9 -0
  47. package/dist/chunks/{chunk-GVPVWHFK.js → chunk-DBV6AB6T.js} +1 -1
  48. package/dist/chunks/{chunk-APWCVJAG.js → chunk-EGPVNTKP.js} +1 -1
  49. package/dist/chunks/{chunk-RVXE4MXS.js → chunk-EKB2DYCQ.js} +1 -1
  50. package/dist/chunks/{chunk-JW57JYRO.js → chunk-ELQBQ2O5.js} +1 -1
  51. package/dist/chunks/{chunk-2FHZYQPY.js → chunk-EZL4AJXH.js} +1 -1
  52. package/dist/chunks/{chunk-QHM6OK76.js → chunk-F76MNMH3.js} +1 -1
  53. package/dist/chunks/{chunk-4K3O7QWS.js → chunk-FNOCIKAU.js} +1 -1
  54. package/dist/chunks/{chunk-QNL22LAW.js → chunk-FQVSBXRY.js} +1 -1
  55. package/dist/chunks/{chunk-YCJHUYBJ.js → chunk-FXEMEIST.js} +1 -1
  56. package/dist/chunks/{chunk-4NDWIUKJ.js → chunk-G7X2TVUO.js} +1 -1
  57. package/dist/chunks/{chunk-JQTSETXH.js → chunk-GJB72ITS.js} +1 -1
  58. package/dist/chunks/{chunk-K3TCWYVX.js → chunk-GKUHMS3A.js} +1 -1
  59. package/dist/chunks/{chunk-H73G2ROF.js → chunk-GP2FXUFE.js} +1 -1
  60. package/dist/chunks/{chunk-UWMPVTXG.js → chunk-GP5MFCGO.js} +1 -1
  61. package/dist/chunks/{chunk-TZT3VYZ3.js → chunk-GZWYJT4C.js} +1 -1
  62. package/dist/chunks/{chunk-XCKUJZUG.js → chunk-H3SJJO6S.js} +1 -1
  63. package/dist/chunks/{chunk-GSXTCMKC.js → chunk-H4DE2OFO.js} +1 -1
  64. package/dist/chunks/{chunk-CZINAGH6.js → chunk-HA2ICIB5.js} +1 -1
  65. package/dist/chunks/{chunk-SUMMI76H.js → chunk-HNOZM6D4.js} +1 -1
  66. package/dist/chunks/{chunk-UJQ6PBRF.js → chunk-HTFQFHPR.js} +1 -1
  67. package/dist/chunks/{chunk-AUY363W7.js → chunk-IECNFRTK.js} +1 -1
  68. package/dist/chunks/{chunk-2EYHCJQO.js → chunk-IHNEF3BG.js} +1 -1
  69. package/dist/chunks/{chunk-BGWS5R5R.js → chunk-IHRM7L23.js} +1 -1
  70. package/dist/chunks/{chunk-3IRPFJ2G.js → chunk-INH6RXBH.js} +1 -1
  71. package/dist/chunks/chunk-IU6PHFPQ.js +7 -0
  72. package/dist/chunks/{chunk-C6IITJ5S.js → chunk-J52UJYOK.js} +1 -1
  73. package/dist/chunks/{chunk-7SAEZ4NC.js → chunk-JRBPVMQO.js} +1 -1
  74. package/dist/chunks/chunk-JUAHDOL6.js +7 -0
  75. package/dist/chunks/{chunk-FJ5CNQDD.js → chunk-JULKMXVP.js} +1 -1
  76. package/dist/chunks/{chunk-3H36RI7C.js → chunk-K2R3QPOC.js} +1 -1
  77. package/dist/chunks/{chunk-QGGJ5VVZ.js → chunk-KARAZGCO.js} +1 -1
  78. package/dist/chunks/chunk-KAUKCHQF.js +10 -0
  79. package/dist/chunks/{chunk-F34TG2V3.js → chunk-KDRCBWRY.js} +1 -1
  80. package/dist/chunks/{chunk-F22QLVTX.js → chunk-KIMIK4SG.js} +1 -1
  81. package/dist/chunks/{chunk-BPR5CLQM.js → chunk-KL6HNOFN.js} +1 -1
  82. package/dist/chunks/{chunk-LBTMGBAK.js → chunk-KUNFE2M6.js} +1 -1
  83. package/dist/chunks/{chunk-XSQVCDSD.js → chunk-LD42X7ZH.js} +1 -1
  84. package/dist/chunks/{chunk-RLKS5G6C.js → chunk-LM3YPF3K.js} +1 -1
  85. package/dist/chunks/{chunk-J4OVLASZ.js → chunk-LOEU4R4Z.js} +1 -1
  86. package/dist/chunks/{chunk-DSY2S2YT.js → chunk-M4TIOVOP.js} +1 -1
  87. package/dist/chunks/{chunk-55H6G46X.js → chunk-MCP63EVQ.js} +1 -1
  88. package/dist/chunks/{chunk-CNOJCW2I.js → chunk-MDWYXLDB.js} +2 -2
  89. package/dist/chunks/{chunk-J6L5MDTX.js → chunk-NAXFG37F.js} +1 -1
  90. package/dist/chunks/{chunk-VM3R6MAM.js → chunk-NDWGYZRT.js} +2 -2
  91. package/dist/chunks/{chunk-C7D43G3N.js → chunk-O7IYJGOR.js} +1 -1
  92. package/dist/chunks/chunk-OLAG7Y3P.js +10 -0
  93. package/dist/chunks/{chunk-5SIC5273.js → chunk-OTJNOMRV.js} +2 -2
  94. package/dist/chunks/{chunk-RGQZXLV4.js → chunk-OV7G6RIQ.js} +1 -1
  95. package/dist/chunks/{chunk-MBJT3CNI.js → chunk-P2HBUDGR.js} +1 -1
  96. package/dist/chunks/{chunk-OER4YAWM.js → chunk-PY5A73YH.js} +1 -1
  97. package/dist/chunks/{chunk-VAWZZK3Y.js → chunk-QIPUFI6P.js} +1 -1
  98. package/dist/chunks/{chunk-EPO7P734.js → chunk-QLW5DCM4.js} +1 -1
  99. package/dist/chunks/{chunk-RUXABBNV.js → chunk-QR7PY5JS.js} +1 -1
  100. package/dist/chunks/{chunk-AA3JM33J.js → chunk-QTCS2HDX.js} +1 -1
  101. package/dist/chunks/{chunk-RHFPMM4R.js → chunk-QZEZCUUZ.js} +7 -7
  102. package/dist/chunks/{chunk-SOGL2HOD.js → chunk-RIAOB3RF.js} +1 -1
  103. package/dist/chunks/{chunk-4BIGNS67.js → chunk-SBBD2Q5A.js} +1 -1
  104. package/dist/chunks/{chunk-A3RU52F4.js → chunk-SKLRHAGH.js} +1 -1
  105. package/dist/chunks/{chunk-SKSOCUDZ.js → chunk-SOCGBVML.js} +1 -1
  106. package/dist/chunks/{chunk-XTKGBVSF.js → chunk-T2SRGJPU.js} +1 -1
  107. package/dist/chunks/{chunk-7VTPAXDC.js → chunk-T3S63EA3.js} +1 -1
  108. package/dist/chunks/{chunk-SJA2LZ4O.js → chunk-TCEEQLD4.js} +1 -1
  109. package/dist/chunks/{chunk-2NMEPXG3.js → chunk-TK2ILW2O.js} +1 -1
  110. package/dist/chunks/{chunk-ID663OJ7.js → chunk-TOTTVS5P.js} +1 -1
  111. package/dist/chunks/{chunk-KPO6VDR2.js → chunk-TSKFDJ77.js} +1 -1
  112. package/dist/chunks/{chunk-FOQK3VTY.js → chunk-UAUVCOGS.js} +1 -1
  113. package/dist/chunks/chunk-UI2H2EIM.js +23 -0
  114. package/dist/chunks/{chunk-5RMIM4S2.js → chunk-UUBPAYTG.js} +1 -1
  115. package/dist/chunks/{chunk-SACGQMVQ.js → chunk-UUDE44NV.js} +1 -1
  116. package/dist/chunks/{chunk-5CZNUB7Y.js → chunk-V5A4EBV3.js} +1 -1
  117. package/dist/chunks/{chunk-KY7LDQRX.js → chunk-VBKFCR5W.js} +1 -1
  118. package/dist/chunks/{chunk-EQT2VHL2.js → chunk-WRC5CTUD.js} +1 -1
  119. package/dist/chunks/chunk-X65XZSWS.js +10 -0
  120. package/dist/chunks/{chunk-LOO42IMZ.js → chunk-XBOGVOV5.js} +1 -1
  121. package/dist/chunks/{chunk-MFW6IJIK.js → chunk-XK3W6Q5I.js} +1 -1
  122. package/dist/chunks/{chunk-UKJAWDQX.js → chunk-XUJA3RZD.js} +1 -1
  123. package/dist/chunks/{chunk-6GSI4VMJ.js → chunk-Y55DGB3L.js} +1 -1
  124. package/dist/chunks/{chunk-P6ZTEDX2.js → chunk-YEPB52XE.js} +1 -1
  125. package/dist/chunks/{chunk-7CNJTFWP.js → chunk-YHFZIUXF.js} +1 -1
  126. package/dist/chunks/{chunk-P2SVNHTJ.js → chunk-YIOT5B5Z.js} +1 -1
  127. package/dist/chunks/{chunk-OETX5QG4.js → chunk-YKNHA3RN.js} +1 -1
  128. package/dist/chunks/chunk-YPPDRKVC.js +7 -0
  129. package/dist/chunks/{chunk-75JI2SZX.js → chunk-YRK2BCTJ.js} +1 -1
  130. package/dist/chunks/{chunk-EDLTSAD2.js → chunk-YTZPQVGF.js} +1 -1
  131. package/dist/chunks/{chunk-D2XEF6G4.js → chunk-ZBJ44DRL.js} +1 -1
  132. package/dist/chunks/chunk-ZRJKGAUT.js +25 -0
  133. package/dist/chunks/clear-375VKVXY.js +8 -0
  134. package/dist/chunks/compile-vercel-config-LNRUSKTH.js +7 -0
  135. package/dist/chunks/config-GOYBATSI.js +8 -0
  136. package/dist/chunks/config-VAW454ZH.js +7 -0
  137. package/dist/chunks/connect-git-provider-7KRYVDFS.js +7 -0
  138. package/dist/chunks/delete-3SN6XFOW.js +10 -0
  139. package/dist/chunks/delete-W6BZHLGP.js +9 -0
  140. package/dist/chunks/detect-services-6L57MV5F.js +7 -0
  141. package/dist/chunks/disable-UUV5MYYH.js +7 -0
  142. package/dist/chunks/discard-Y6ZITZ2P.js +14 -0
  143. package/dist/chunks/edit-CVMUITFG.js +9 -0
  144. package/dist/chunks/edit-LLRI57RF.js +8 -0
  145. package/dist/chunks/enable-TFA6XWAA.js +7 -0
  146. package/dist/chunks/esm-4ZHGYTUV.js +7 -0
  147. package/dist/chunks/esm-7FVTQHRH.js +9 -0
  148. package/dist/chunks/esm-GTSUYLKG.js +7 -0
  149. package/dist/chunks/{esm-DFFBNKNU.js → esm-IBY43SSX.js} +1 -1
  150. package/dist/chunks/esm-LNIAU767.js +7 -0
  151. package/dist/chunks/esm-TEM4KPXZ.js +7 -0
  152. package/dist/chunks/esm-TLAM7FSK.js +9 -0
  153. package/dist/chunks/{exec-R5BDGSGP.js → exec-7LB36K52.js} +1 -1
  154. package/dist/chunks/{export-FV6WM43O.js → export-AI2O22W5.js} +1 -1
  155. package/dist/chunks/future-EZEU2CBY.js +7 -0
  156. package/dist/chunks/generate-cert-for-deploy-QP5BUOJL.js +7 -0
  157. package/dist/chunks/image-YLUF7SHR.js +7 -0
  158. package/dist/chunks/import-builders-ANLKHIYK.js +7 -0
  159. package/dist/chunks/{inspect-DLADA2SX.js → inspect-3NMNI7GY.js} +1 -1
  160. package/dist/chunks/inspect-3TRAN3SP.js +9 -0
  161. package/dist/chunks/{inspect-W3RVFJLM.js → inspect-4A67JORH.js} +1 -1
  162. package/dist/chunks/{inspect-ZUHCIZFW.js → inspect-OM5S5YQ2.js} +1 -1
  163. package/dist/chunks/inspect-VEUY4QJ2.js +13 -0
  164. package/dist/chunks/list-DJKKVFUL.js +12 -0
  165. package/dist/chunks/{list-6EZHEJGK.js → list-NEV4FBTY.js} +1 -1
  166. package/dist/chunks/{list-L4ZCXNAN.js → list-TUJ7HCQK.js} +1 -1
  167. package/dist/chunks/login-4HCFKDKL.js +7 -0
  168. package/dist/chunks/login-EPBJQDEK.js +9 -0
  169. package/dist/chunks/logs-Q7XXVFR3.js +7 -0
  170. package/dist/chunks/ls-3TKRCF4T.js +8 -0
  171. package/dist/chunks/{ls-IGICS6HZ.js → ls-COOTTCRW.js} +1 -1
  172. package/dist/chunks/{ls-EIGVX2LB.js → ls-CVO4MCX5.js} +1 -1
  173. package/dist/chunks/ls-LS5J5ERG.js +11 -0
  174. package/dist/chunks/ls-OQQTUQFN.js +8 -0
  175. package/dist/chunks/{ls-36K3OMRV.js → ls-OVM2DZYL.js} +1 -1
  176. package/dist/chunks/{ls-GSMTVAMC.js → ls-UY3KCDSF.js} +1 -1
  177. package/dist/chunks/mutate-I6QWCURL.js +9 -0
  178. package/dist/chunks/notifications-UKC5Z6AH.js +7 -0
  179. package/dist/chunks/open-CYATUDTT.js +7 -0
  180. package/dist/chunks/openapi-B7WSK7AU.js +7 -0
  181. package/dist/chunks/permissions-4ZYPHPOZ.js +7 -0
  182. package/dist/chunks/plugin-offer-4YTKDZGS.js +9 -0
  183. package/dist/chunks/prompt-missing-credentials-4OKJMYW5.js +7 -0
  184. package/dist/chunks/publish-N6E7VTRK.js +15 -0
  185. package/dist/chunks/pull-LPIT3XUR.js +7 -0
  186. package/dist/chunks/purchase-domain-if-available-IS6UDPJT.js +7 -0
  187. package/dist/chunks/push-ETLU6OCC.js +7 -0
  188. package/dist/chunks/{query-CUU7RRG6.js → query-NIMDIFLO.js} +1 -1
  189. package/dist/chunks/reauthenticate-TESIUM6U.js +7 -0
  190. package/dist/chunks/reorder-PQU2BQEE.js +10 -0
  191. package/dist/chunks/reply-RKDDYV5I.js +9 -0
  192. package/dist/chunks/resolve-ZF7BFXIW.js +12 -0
  193. package/dist/chunks/resolve-agent-team-QSIJ665W.js +7 -0
  194. package/dist/chunks/restore-U5A3BEFQ.js +16 -0
  195. package/dist/chunks/rm-7H5O3T7G.js +8 -0
  196. package/dist/chunks/rm-EPPMQEAV.js +8 -0
  197. package/dist/chunks/rm-FNMW2FPM.js +8 -0
  198. package/dist/chunks/rm-OZIA3DFM.js +8 -0
  199. package/dist/chunks/rm-W3VOR2ED.js +8 -0
  200. package/dist/chunks/routes-BLE5XZJE.js +7 -0
  201. package/dist/chunks/rule-inspect-YAVRRGAP.js +8 -0
  202. package/dist/chunks/{schema-5G57LHUD.js → schema-44U7GOQE.js} +1 -1
  203. package/dist/chunks/schema-6SAZ7T2S.js +14 -0
  204. package/dist/chunks/select-org-L5FJVL5Q.js +7 -0
  205. package/dist/chunks/set-3NQXDGJV.js +7 -0
  206. package/dist/chunks/setup-and-link-H36NRP3A.js +7 -0
  207. package/dist/chunks/{skills-4WEJZT7E.js → skills-XOH4Q7KK.js} +1 -1
  208. package/dist/chunks/tags-CRG27GFL.js +7 -0
  209. package/dist/chunks/{types-EK3C4EHF.js → types-6W3KAE2A.js} +1 -1
  210. package/dist/chunks/{update-IKZXIUYB.js → update-YLFMSPQF.js} +1 -1
  211. package/dist/commands/build/index.js +1 -1
  212. package/dist/commands/deploy/index.js +10 -6
  213. package/dist/commands/dev/index.js +2 -2
  214. package/dist/commands/env/index.js +5 -3
  215. package/dist/commands/link/index.js +1 -1
  216. package/dist/commands/list/index.js +1 -1
  217. package/dist/commands/project/index.js +1 -1
  218. package/dist/commands-account.js +1 -1
  219. package/dist/commands-ai.js +2 -2
  220. package/dist/commands-blob.js +1 -1
  221. package/dist/commands-core.js +6 -6
  222. package/dist/commands-deployments.js +6 -9
  223. package/dist/commands-flags.js +1 -1
  224. package/dist/commands-integrations.js +1 -1
  225. package/dist/commands-observability.js +2 -2
  226. package/dist/commands-routing.js +162 -153
  227. package/dist/help.js +1 -1
  228. package/dist/index.js +5 -5
  229. package/dist/internal-build.js +1 -1
  230. package/dist/package.json +57 -57
  231. package/dist/root-help-commands.mjs +1 -1
  232. package/dist/version.mjs +1 -1
  233. package/package.json +50 -50
  234. package/dist/chunks/add-6R2L3B6P.js +0 -8
  235. package/dist/chunks/add-O4YI4D5H.js +0 -8
  236. package/dist/chunks/add-W7MDOZMC.js +0 -8
  237. package/dist/chunks/build-UOKGUTFN.js +0 -7
  238. package/dist/chunks/chunk-2GHZGOWT.js +0 -7
  239. package/dist/chunks/chunk-3UD4MZMH.js +0 -8
  240. package/dist/chunks/chunk-67GZ5REA.js +0 -7
  241. package/dist/chunks/chunk-A2UZ2O7H.js +0 -7
  242. package/dist/chunks/chunk-BS32OUOC.js +0 -7
  243. package/dist/chunks/chunk-D3AHZ5LI.js +0 -7
  244. package/dist/chunks/chunk-DWOJP4ST.js +0 -27
  245. package/dist/chunks/chunk-FXF3NEJM.js +0 -14
  246. package/dist/chunks/chunk-I7U2XP4X.js +0 -10
  247. package/dist/chunks/chunk-IEZKTS2C.js +0 -10
  248. package/dist/chunks/chunk-IFXMG2WQ.js +0 -7
  249. package/dist/chunks/chunk-LCMNJNSQ.js +0 -9
  250. package/dist/chunks/chunk-MVGTMPMI.js +0 -23
  251. package/dist/chunks/chunk-RRDNKB2X.js +0 -7
  252. package/dist/chunks/chunk-YEOOTTBB.js +0 -33
  253. package/dist/chunks/clear-P2GBQ7OM.js +0 -8
  254. package/dist/chunks/compile-vercel-config-SPFLKB2T.js +0 -7
  255. package/dist/chunks/config-BI7WYZWB.js +0 -7
  256. package/dist/chunks/config-PR2PEOA7.js +0 -8
  257. package/dist/chunks/connect-git-provider-IQ7N2NPY.js +0 -7
  258. package/dist/chunks/delete-BZ3NLCTU.js +0 -9
  259. package/dist/chunks/delete-PUEGS2CP.js +0 -10
  260. package/dist/chunks/detect-services-HHGBWOND.js +0 -7
  261. package/dist/chunks/disable-UYLN3HPM.js +0 -7
  262. package/dist/chunks/discard-NMRN5PS4.js +0 -14
  263. package/dist/chunks/edit-KA7OSMJA.js +0 -9
  264. package/dist/chunks/edit-UQ4J2OQ7.js +0 -8
  265. package/dist/chunks/enable-7FM67BEJ.js +0 -7
  266. package/dist/chunks/esm-33752ISR.js +0 -7
  267. package/dist/chunks/esm-4JKEE7PC.js +0 -7
  268. package/dist/chunks/esm-BYG5BWYH.js +0 -9
  269. package/dist/chunks/esm-IF453UWS.js +0 -7
  270. package/dist/chunks/esm-LABWDJ72.js +0 -7
  271. package/dist/chunks/esm-TG37FXTU.js +0 -9
  272. package/dist/chunks/future-3WF7CSGN.js +0 -7
  273. package/dist/chunks/generate-cert-for-deploy-3OBDQ2R3.js +0 -7
  274. package/dist/chunks/image-SYY2IBOV.js +0 -7
  275. package/dist/chunks/import-builders-IJYZSEBY.js +0 -7
  276. package/dist/chunks/inspect-3NZE4UWJ.js +0 -13
  277. package/dist/chunks/inspect-J4WU7N2Z.js +0 -9
  278. package/dist/chunks/list-GLYYBTWD.js +0 -12
  279. package/dist/chunks/login-4OUKTVIZ.js +0 -7
  280. package/dist/chunks/login-E6L7CG3P.js +0 -9
  281. package/dist/chunks/logs-XHJPPHQ7.js +0 -7
  282. package/dist/chunks/ls-E75T2PHD.js +0 -8
  283. package/dist/chunks/ls-PA4OVQ43.js +0 -11
  284. package/dist/chunks/ls-RKILAXZ4.js +0 -8
  285. package/dist/chunks/mutate-4L6XPD7X.js +0 -9
  286. package/dist/chunks/notifications-IAKFNMTC.js +0 -7
  287. package/dist/chunks/open-62S7LSPT.js +0 -7
  288. package/dist/chunks/openapi-SO34WDBK.js +0 -7
  289. package/dist/chunks/permissions-T2KL34JP.js +0 -7
  290. package/dist/chunks/plugin-offer-HMNGWYIC.js +0 -9
  291. package/dist/chunks/prompt-missing-credentials-WTRJREZF.js +0 -7
  292. package/dist/chunks/publish-EFZO7IO2.js +0 -15
  293. package/dist/chunks/pull-GVFCZAHC.js +0 -7
  294. package/dist/chunks/purchase-domain-if-available-PJMKV5BI.js +0 -7
  295. package/dist/chunks/push-PHTW37LC.js +0 -7
  296. package/dist/chunks/reauthenticate-7P3C7ASY.js +0 -7
  297. package/dist/chunks/reorder-EBYXIVUZ.js +0 -10
  298. package/dist/chunks/reply-CBBADKE5.js +0 -9
  299. package/dist/chunks/resolve-KKFBXTIX.js +0 -12
  300. package/dist/chunks/resolve-agent-team-BBBIQWFZ.js +0 -7
  301. package/dist/chunks/restore-D4JUHPJ7.js +0 -16
  302. package/dist/chunks/rm-CRDLGD4Y.js +0 -8
  303. package/dist/chunks/rm-DSAXELZD.js +0 -8
  304. package/dist/chunks/rm-HXDTYZ3G.js +0 -8
  305. package/dist/chunks/rm-TDI6GXCE.js +0 -8
  306. package/dist/chunks/rm-XAUKTN2C.js +0 -8
  307. package/dist/chunks/routes-RWILS4LA.js +0 -7
  308. package/dist/chunks/rule-inspect-RKUBC35D.js +0 -8
  309. package/dist/chunks/schema-WSHKYL5H.js +0 -14
  310. package/dist/chunks/select-org-OKHCDXNF.js +0 -7
  311. package/dist/chunks/set-PBM7ZMZ7.js +0 -7
  312. package/dist/chunks/setup-and-link-PVMEKIYD.js +0 -7
  313. package/dist/chunks/tags-WUAMDEUU.js +0 -7
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{monitorsRoutingFlags,runMonitors}from"./chunks/chunk-EDLTSAD2.js";import{ALERT_RULES_API,MONITORS_API}from"./chunks/chunk-DPZFKHW3.js";import{login}from"./chunks/chunk-FOQK3VTY.js";import{getProjectByCwdOrLink}from"./chunks/chunk-RGQZXLV4.js";import{extractDatePortion,formatCurrency,formatQuantity}from"./chunks/chunk-ECQIO5K3.js";import{curl,getDeploymentUrlAndToken,redactSecretHeader,requoteArgs,setupCurlLikeCommand}from"./chunks/chunk-SUMMI76H.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-CZINAGH6.js";import"./chunks/chunk-CS6E5XNQ.js";import"./chunks/chunk-J4OVLASZ.js";import{formatEnvironment}from"./chunks/chunk-QHM6OK76.js";import"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-FJ5CNQDD.js";import{formatProject}from"./chunks/chunk-75JI2SZX.js";import{isGuidanceEnabled}from"./chunks/chunk-TAAWMNNL.js";import{performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunks/chunk-2EYHCJQO.js";import{CURL_INSTALL_COMMAND,NATIVE_UPDATE_SELECT_PRODUCTION_ENV,NATIVE_UPDATE_VERSION_ENV,cacheNativeUpdateDiscoveryAttempt,cacheNativeUpdateVersion,executeHomebrewUpgrade,executeUpgrade,getWhoamiCachedAnswer,installAndActivatePrBinary,installAndActivateProductionVersion,isAutoUpdateEnabled,isCurlInstall,isNativeAutoUpdateEnabled,isNativeUpdateChild,listAvailableVersions,listNativeTrackSlots,markNativeUpdateStaged,parsePrTarget,pinPackageVersion,readActivePointer,readNativeInstallState,resolveLatestNativeVersion,restoreNativeUpdateAfterDiscoveryFailure,setAutoUpdate,setMinReleaseAgeBypass,spawnNativeUpdateChild,stageProductionUpdate,withDirectoryLock}from"./chunks/chunk-2NMEPXG3.js";import{HOMEBREW_UPGRADE_COMMAND,getUpdateCommand,getUpdateCommandInfo,isGlobal,isHomebrewInstall}from"./chunks/chunk-K3TCWYVX.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-U56NHYAH.js";import{email}from"./chunks/chunk-6IDNVZZR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import"./chunks/chunk-XSQVCDSD.js";import"./chunks/chunk-V6NMCQUQ.js";import"./chunks/chunk-VT6RIZJH.js";import{truncateEnd}from"./chunks/chunk-ID663OJ7.js";import{ensureLink}from"./chunks/chunk-VM3R6MAM.js";import{getDeployment}from"./chunks/chunk-VAWZZK3Y.js";import"./chunks/chunk-OKNDHNH6.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-D2XEF6G4.js";import"./chunks/chunk-WZ2R4Z7N.js";import{readOnOffOption}from"./chunks/chunk-RMW2FDXS.js";import{tokensAfterCommand}from"./chunks/chunk-JAOYF7AW.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-KHADRPBJ.js";import{validateLsArgs}from"./chunks/chunk-XTKGBVSF.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable}from"./chunks/chunk-FAELJM4F.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-5SIC5273.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError}from"./chunks/chunk-FVIVFDCB.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import{getTeams}from"./chunks/chunk-P6ZTEDX2.js";import{abortSubcommand,addSubcommand3 as addSubcommand,agentCommand,approveSubcommand,autoupdateSubcommand,buildersCommand,cacheCommand,changelogCommand,checkSubcommand2 as checkSubcommand,checkSubcommand3 as checkSubcommand2,completeSubcommand,configureSubcommand,connectionsCommand,contractCommand,createSubcommand3 as createSubcommand,cronsCommand,dangerouslyDeleteSubcommand,deployHooksCommand,disableSubcommand2 as disableSubcommand,disableSubcommand4 as disableSubcommand2,enableSubcommand3 as enableSubcommand,enableSubcommand5 as enableSubcommand2,fetchSubcommand,flushSubcommand,getCommandAliases,guidanceCommand,headersCommand,httpstatCommand,installedSubcommand,invalidateSubcommand,listSubcommand10 as listSubcommand4,listSubcommand23 as listSubcommand5,listSubcommand26 as listSubcommand7,listSubcommand8 as listSubcommand3,logoutCommand,mcpCommand,openCommand,preinstallSubcommand,pricingCommand,promoteCommand,purgeSubcommand,removeSubcommand6 as removeSubcommand,rollbackCommand,rollingReleaseCommand,runSubcommand,scriptsCommand,searchSubcommand2 as searchSubcommand,securityCommand,signupCommand,startSubcommand2 as startSubcommand,statusSubcommand2 as statusSubcommand,statusSubcommand3 as statusSubcommand2,statusSubcommand4 as statusSubcommand3,statusSubcommand6 as statusSubcommand4,targetCommand,telemetryCommand,updateSubcommand13 as updateSubcommand,upgradeCommand,useSubcommand,versionCommand,whoamiCommand}from"./chunks/chunk-FXF3NEJM.js";import"./chunks/chunk-O7COT3YB.js";import"./chunks/chunk-2FHZYQPY.js";import"./chunks/chunk-M7LUSXMG.js";import"./chunks/chunk-C6IITJ5S.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-TZT3VYZ3.js";import{addSubcommand as addSubcommand2,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand6,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand2,vcrCommand}from"./chunks/chunk-HMWDOAWO.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-QNL22LAW.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-UWMPVTXG.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-5CZNUB7Y.js";import{alertsCommand,inspectSubcommand,listSubcommand}from"./chunks/chunk-AUY363W7.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand2,listSubcommand as listSubcommand2,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-OTYF3ZZW.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-3H36RI7C.js";import"./chunks/chunk-BGWS5R5R.js";import"./chunks/chunk-UJQ6PBRF.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-GVPVWHFK.js";import"./chunks/chunk-N5CXIFE2.js";import"./chunks/chunk-FNA4MIOH.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-VWHIWUGJ.js";import{printError}from"./chunks/chunk-LCMNJNSQ.js";import{help,remoteText}from"./chunks/chunk-SLDWAIO3.js";import"./chunks/chunk-67GZ5REA.js";import{require_strip_ansi}from"./chunks/chunk-BS32OUOC.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getContextName,getScope,isAppPrincipalEnabled}from"./chunks/chunk-IFXMG2WQ.js";import{TelemetryClient,decodeHandoff}from"./chunks/chunk-4BIGNS67.js";import"./chunks/chunk-2EYYB6YN.js";import{getInstallRoot,isManagedBuildersInstall,isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,exitWithNonInteractiveError,getErrorRecovery,outputAgentError,shouldEmitNonInteractiveCommandError,writeAgentError}from"./chunks/chunk-I7U2XP4X.js";import"./chunks/chunk-EPO7P734.js";import{VERCEL_CONFIG_EXTENSIONS,findProjectsFromPath,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getRepoLink,getUser,getVercelDirectory,persistAuthConfig,processRevocationResponse,readLocalConfig,require_pluralize,revocationRequest,sleep,ua_default,writeToConfigFile}from"./chunks/chunk-RHFPMM4R.js";import{printAlignedLabel}from"./chunks/chunk-26QK3I2S.js";import{getGlobalPathConfig}from"./chunks/chunk-55H6G46X.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-F22QLVTX.js";import{getTeamByIdOrSlug}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedSubcommand}from"./chunks/chunk-7SAEZ4NC.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-YCJHUYBJ.js";import{getCommandName,getCommandNamePlain,packageName}from"./chunks/chunk-JESNVRVR.js";import{emoji,output_manager_default,prependEmoji,require_build_utils}from"./chunks/chunk-DWOJP4ST.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{arg_common_default,getFlagsSpecification,getGlobalFlagsFromArgs,getShortFlagLongName,jsonOption}from"./chunks/chunk-A2UZ2O7H.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{fetch}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var ActivityTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(v){v&&this.trackCliSubcommand({subcommand:"ls",value:v})}trackCliSubcommandTypes(v){v&&this.trackCliSubcommand({subcommand:"types",value:v})}trackCliOptionType(v){v&&v.length>0&&this.trackCliOption({option:"type",value:v.join(",")})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(v){v!==void 0&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var COMMAND_CONFIG={types:getCommandAliases(typesSubcommand)};async function activity(client){let telemetry2=new ActivityTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(activityCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("activity",subcommand),output_manager_default.print(help(activityCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:activityCommand,columns:client.stderr.columns}))}switch(subcommand){case"types":{if(needHelp)return telemetry2.trackCliFlagHelp("activity",subcommandOriginal),printSubcommandHelp(typesSubcommand),0;telemetry2.trackCliSubcommandTypes(subcommandOriginal);let typesFn=(await import("./chunks/types-EK3C4EHF.js")).default;return typesFn(client,telemetry2)}default:{if(needHelp)return telemetry2.trackCliFlagHelp("activity",subcommandOriginal),output_manager_default.print(help(activityCommand,{stream:client.stderr,columns:client.stderr.columns})),0;telemetry2.trackCliSubcommandLs(subcommandOriginal);let listFn=(await import("./chunks/list-L4ZCXNAN.js")).default;return listFn(client,telemetry2)}}}var AgentTelemetryClient=class extends TelemetryClient{trackCliArgumentInit(value){value&&this.trackCliArgument({arg:"init",value})}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}};var import_chalk=__toESM(require_source(),1);import{readFile,writeFile}from"node:fs/promises";import{join}from"node:path";import{KNOWN_AGENTS}from"@vercel/detect-agent";var BEST_PRACTICES_START="<!-- VERCEL BEST PRACTICES START -->",BEST_PRACTICES_END="<!-- VERCEL BEST PRACTICES END -->",BEST_PRACTICES_BODY=`## Best practices for developing on Vercel
7
+ import{monitorsRoutingFlags,runMonitors}from"./chunks/chunk-YTZPQVGF.js";import{ALERT_RULES_API,MONITORS_API}from"./chunks/chunk-CJLRNGWY.js";import{login}from"./chunks/chunk-UAUVCOGS.js";import{getProjectByCwdOrLink}from"./chunks/chunk-OV7G6RIQ.js";import{extractDatePortion,formatCurrency,formatQuantity}from"./chunks/chunk-ECQIO5K3.js";import{curl,getDeploymentUrlAndToken,redactSecretHeader,requoteArgs,setupCurlLikeCommand}from"./chunks/chunk-HNOZM6D4.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-HA2ICIB5.js";import"./chunks/chunk-BHJLCFQ4.js";import"./chunks/chunk-LOEU4R4Z.js";import{formatEnvironment}from"./chunks/chunk-F76MNMH3.js";import"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-JULKMXVP.js";import{formatProject}from"./chunks/chunk-YRK2BCTJ.js";import{isGuidanceEnabled}from"./chunks/chunk-TAAWMNNL.js";import{performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunks/chunk-IHNEF3BG.js";import{CURL_INSTALL_COMMAND,NATIVE_UPDATE_SELECT_PRODUCTION_ENV,NATIVE_UPDATE_VERSION_ENV,cacheNativeUpdateDiscoveryAttempt,cacheNativeUpdateVersion,executeHomebrewUpgrade,executeUpgrade,getWhoamiCachedAnswer,installAndActivatePrBinary,installAndActivateProductionVersion,isAutoUpdateEnabled,isCurlInstall,isNativeAutoUpdateEnabled,isNativeUpdateChild,listAvailableVersions,listNativeTrackSlots,markNativeUpdateStaged,parsePrTarget,pinPackageVersion,readActivePointer,readNativeInstallState,resolveLatestNativeVersion,restoreNativeUpdateAfterDiscoveryFailure,setAutoUpdate,setMinReleaseAgeBypass,spawnNativeUpdateChild,stageProductionUpdate,withDirectoryLock}from"./chunks/chunk-TK2ILW2O.js";import{HOMEBREW_UPGRADE_COMMAND,getUpdateCommand,getUpdateCommandInfo,isGlobal,isHomebrewInstall}from"./chunks/chunk-GKUHMS3A.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-U56NHYAH.js";import{email}from"./chunks/chunk-6IDNVZZR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-AEOG4E5G.js";import"./chunks/chunk-VT6RIZJH.js";import{truncateEnd}from"./chunks/chunk-TOTTVS5P.js";import{ensureLink}from"./chunks/chunk-NDWGYZRT.js";import{getDeployment}from"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZBJ44DRL.js";import"./chunks/chunk-WZ2R4Z7N.js";import{readOnOffOption}from"./chunks/chunk-APNR444T.js";import{tokensAfterCommand}from"./chunks/chunk-5SMV2PPI.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError}from"./chunks/chunk-2QSNFVB6.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import{getTeams}from"./chunks/chunk-YEPB52XE.js";import{abortSubcommand,addSubcommand3 as addSubcommand,agentCommand,approveSubcommand,autoupdateSubcommand,buildersCommand,cacheCommand,changelogCommand,checkSubcommand2 as checkSubcommand,checkSubcommand3 as checkSubcommand2,completeSubcommand,configureSubcommand,connectionsCommand,contractCommand,createSubcommand3 as createSubcommand,cronsCommand,dangerouslyDeleteSubcommand,deployHooksCommand,disableSubcommand2 as disableSubcommand,disableSubcommand4 as disableSubcommand2,enableSubcommand3 as enableSubcommand,enableSubcommand5 as enableSubcommand2,fetchSubcommand,flushSubcommand,getCommandAliases,guidanceCommand,headersCommand,httpstatCommand,installedSubcommand,invalidateSubcommand,listSubcommand10 as listSubcommand4,listSubcommand23 as listSubcommand5,listSubcommand26 as listSubcommand7,listSubcommand8 as listSubcommand3,logoutCommand,mcpCommand,openCommand,preinstallSubcommand,pricingCommand,promoteCommand,purgeSubcommand,removeSubcommand6 as removeSubcommand,rollbackCommand,rollingReleaseCommand,runSubcommand,scriptsCommand,searchSubcommand2 as searchSubcommand,securityCommand,signupCommand,startSubcommand2 as startSubcommand,statusSubcommand2 as statusSubcommand,statusSubcommand3 as statusSubcommand2,statusSubcommand4 as statusSubcommand3,statusSubcommand6 as statusSubcommand4,targetCommand,telemetryCommand,updateSubcommand13 as updateSubcommand,upgradeCommand,useSubcommand,versionCommand,whoamiCommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-GZWYJT4C.js";import{addSubcommand as addSubcommand2,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand6,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand2,vcrCommand}from"./chunks/chunk-3AXMZRAB.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-FQVSBXRY.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-GP5MFCGO.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-V5A4EBV3.js";import{alertsCommand,inspectSubcommand,listSubcommand}from"./chunks/chunk-IECNFRTK.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand2,listSubcommand as listSubcommand2,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-A6F3EE2O.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help,remoteText}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getContextName,getScope,isAppPrincipalEnabled}from"./chunks/chunk-IU6PHFPQ.js";import{TelemetryClient,decodeHandoff}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import{getInstallRoot,isManagedBuildersInstall,isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,exitWithNonInteractiveError,getErrorRecovery,outputAgentError,shouldEmitNonInteractiveCommandError,writeAgentError}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{VERCEL_CONFIG_EXTENSIONS,findProjectsFromPath,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getRepoLink,getUser,getVercelDirectory,persistAuthConfig,processRevocationResponse,readLocalConfig,require_pluralize,revocationRequest,sleep,ua_default,writeToConfigFile}from"./chunks/chunk-QZEZCUUZ.js";import{printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import{getGlobalPathConfig}from"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,packageName}from"./chunks/chunk-JESNVRVR.js";import{emoji,output_manager_default,prependEmoji,require_build_utils}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{arg_common_default,getFlagsSpecification,getGlobalFlagsFromArgs,getShortFlagLongName,jsonOption}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{fetch}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var ActivityTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(v){v&&this.trackCliSubcommand({subcommand:"ls",value:v})}trackCliSubcommandTypes(v){v&&this.trackCliSubcommand({subcommand:"types",value:v})}trackCliOptionType(v){v&&v.length>0&&this.trackCliOption({option:"type",value:v.join(",")})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(v){v!==void 0&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var COMMAND_CONFIG={types:getCommandAliases(typesSubcommand)};async function activity(client){let telemetry2=new ActivityTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(activityCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("activity",subcommand),output_manager_default.print(help(activityCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:activityCommand,columns:client.stderr.columns}))}switch(subcommand){case"types":{if(needHelp)return telemetry2.trackCliFlagHelp("activity",subcommandOriginal),printSubcommandHelp(typesSubcommand),0;telemetry2.trackCliSubcommandTypes(subcommandOriginal);let typesFn=(await import("./chunks/types-6W3KAE2A.js")).default;return typesFn(client,telemetry2)}default:{if(needHelp)return telemetry2.trackCliFlagHelp("activity",subcommandOriginal),output_manager_default.print(help(activityCommand,{stream:client.stderr,columns:client.stderr.columns})),0;telemetry2.trackCliSubcommandLs(subcommandOriginal);let listFn=(await import("./chunks/list-TUJ7HCQK.js")).default;return listFn(client,telemetry2)}}}var AgentTelemetryClient=class extends TelemetryClient{trackCliArgumentInit(value){value&&this.trackCliArgument({arg:"init",value})}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}};var import_chalk=__toESM(require_source(),1);import{readFile,writeFile}from"node:fs/promises";import{join}from"node:path";import{KNOWN_AGENTS}from"@vercel/detect-agent";var BEST_PRACTICES_START="<!-- VERCEL BEST PRACTICES START -->",BEST_PRACTICES_END="<!-- VERCEL BEST PRACTICES END -->",BEST_PRACTICES_BODY=`## Best practices for developing on Vercel
8
8
 
9
9
  These defaults are optimized for AI coding agents (and humans) working on apps that deploy to Vercel.
10
10
 
@@ -33,7 +33,7 @@ ${BEST_PRACTICES_END}
33
33
  `)?`
34
34
  `:`
35
35
 
36
- `;await writeFile(filePath,existing+separator+BEST_PRACTICES_CONTENT,"utf-8"),output_manager_default.stopSpinner(),output_manager_default.success(`Appended Vercel best practices to ${import_chalk.default.bold(targetFile)}`)}else await writeFile(filePath,BEST_PRACTICES_CONTENT,"utf-8"),output_manager_default.stopSpinner(),output_manager_default.success(`Created ${import_chalk.default.bold(targetFile)} with Vercel best practices`)}catch(error){return output_manager_default.stopSpinner(),printError(error),1}return output_manager_default.log(import_chalk.default.dim("Run vercel deploy to ship your project")),0}async function agent(client){let parsedArgs,flagsSpecification=getFlagsSpecification(agentCommand.options),telemetry2=new AgentTelemetryClient({opts:{store:client.telemetryEventStore}});try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("agent"),output_manager_default.print(help(agentCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let subcommand=parsedArgs.args[1];if(telemetry2.trackCliArgumentInit(subcommand),!subcommand||subcommand==="init"){let yes=parsedArgs.flags["--yes"]??!1;telemetry2.trackCliFlagYes(yes);try{return await agentInit(client,yes)}catch(error){return printError(error),1}}return output_manager_default.error(`Unknown subcommand: ${subcommand}`),output_manager_default.print(help(agentCommand,{stream:client.stderr,columns:client.stderr.columns})),2}var AlertsTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(v){v&&this.trackCliSubcommand({subcommand:"ls",value:v})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliOptionType(v){v&&v.length>0&&this.trackCliOption({option:"type",value:v.join(",")})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliFlagAi(v){v&&this.trackCliFlag("ai")}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function getFlagSpecValue(flagsSpecification,flag){let value=flagsSpecification[flag];return typeof value=="string"?flagsSpecification[value]:value}function flagConsumesValue(rawArg,flagsSpecification){if(!rawArg.startsWith("-")||rawArg==="-"||rawArg.includes("="))return!1;let value=getFlagSpecValue(flagsSpecification,rawArg);return value===String||value===Number||Array.isArray(value)}function findCommandIndex(rawArgs,commandName,flagsSpecification){if(!commandName)return-1;for(let index=0;index<rawArgs.length;index++){let rawArg=rawArgs[index];if(rawArg==="--")return rawArgs.indexOf(commandName,index+1);if(rawArg.startsWith("-")){flagConsumesValue(rawArg,flagsSpecification)&&index++;continue}if(rawArg===commandName)return index}return-1}function normalizeHelpAlias(rawArgs){return rawArgs.map(arg=>arg==="-help"?"--help":arg)}var COMMAND_CONFIG2={inspect:getCommandAliases(inspectSubcommand),ls:getCommandAliases(listSubcommand),rules:["rules"]};function getAlertsSubcommand(rawArgs,parsedArgs,flagsSpecification){let commandIndex=findCommandIndex(rawArgs,parsedArgs[0],flagsSpecification),rawArgsAfterCommand=commandIndex===-1?[]:rawArgs.slice(commandIndex+1),rawSubcommand=rawArgsAfterCommand[0];return!rawSubcommand||rawSubcommand.startsWith("-")?{...getSubcommand([],COMMAND_CONFIG2),rawSubcommandArgs:rawArgsAfterCommand}:{...getSubcommand(parsedArgs.slice(1),COMMAND_CONFIG2),rawSubcommandArgs:rawArgsAfterCommand.slice(1)}}async function alerts(client){let telemetry2=new AlertsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(alertsCommand.options),rawArgs=normalizeHelpAlias(client.argv.slice(2));try{parsedArgs=parseArguments(rawArgs,flagsSpecification,{permissive:!0})}catch(err){let msg=err instanceof Error?err.message:String(err),projectFlagMissingArg=msg.includes("--project")&&msg.includes("requires argument");return shouldEmitNonInteractiveCommandError(client)&&outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:projectFlagMissingArg?"`--project` requires a project name or id (for example `--project my-app`).":msg,next:projectFlagMissingArg?[{command:buildCommandWithGlobalFlags(client.argv,"alerts --project <name-or-id>"),when:"Re-run with a project name or id (replace placeholder)"},{command:buildCommandWithGlobalFlags(client.argv,"alerts --help"),when:"See all `alerts` options and examples"}]:[{command:buildCommandWithGlobalFlags(client.argv,"alerts --help"),when:"See valid options and examples"}]},2),printError(err),2}let{subcommand,subcommandOriginal,rawSubcommandArgs}=getAlertsSubcommand(rawArgs,parsedArgs.args,{...arg_common_default(),...flagsSpecification});switch(subcommand){case"inspect":{telemetry2.trackCliSubcommandInspect(subcommandOriginal);let inspectFn=(await import("./chunks/inspect-3NZE4UWJ.js")).default;return inspectFn(client,rawSubcommandArgs)}case"rules":return warnDeprecatedSubcommand(client,"alerts rules","monitors"),runMonitors(client,rawSubcommandArgs,ALERT_RULES_API);default:{telemetry2.trackCliSubcommandLs(subcommandOriginal);let listFn=(await import("./chunks/list-6EZHEJGK.js")).default;return listFn(client,telemetry2)}}}import{createRequire}from"node:module";import{isAbsolute}from"node:path";var require_=createRequire(__filename),COMMAND_CONFIG3={preinstall:getCommandAliases(preinstallSubcommand)};async function builders(client){let parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),getFlagsSpecification(buildersCommand.options),{permissive:!0})}catch(error){return printError(error),2}let{subcommand,args}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG3);if(subcommand!=="preinstall"||args.length>0)return output_manager_default.error("Only `vercel builders preinstall` is supported."),2;if(!isManagedBuildersInstall())return output_manager_default.error("Builder preinstallation requires the native Vercel CLI or VERCEL_CLI_MANAGED_BUILDERS=1."),1;let configuredCacheRoot=process.env.VERCEL_BUILDERS_DIR;if(!configuredCacheRoot)return output_manager_default.error("Set VERCEL_BUILDERS_DIR to preinstall Builders."),1;if(!isAbsolute(configuredCacheRoot))return output_manager_default.error("VERCEL_BUILDERS_DIR must be an absolute path."),1;let cacheRoot=configuredCacheRoot;try{let[{loadEmbeddedBuilderGraphs},{createVltBuilderImporter}]=await Promise.all([import("./chunks/vlt-builder-graph-XL2XRO4V.js"),import("./chunks/vlt-builder-importer-RBUPAB6J.js")]),graphs=await loadEmbeddedBuilderGraphs(),specs=new Map(Object.keys(graphs.builders).map(name=>[name,name])),loadedBuilders=await createVltBuilderImporter({graphs,require:require_,cacheRoot,debug:message=>output_manager_default.debug(message)})(specs),missingBuilders=[...specs.keys()].filter(spec=>!loadedBuilders.has(spec));if(missingBuilders.length>0)throw new Error(`Failed to load preinstalled Builders: ${missingBuilders.join(", ")}`);return output_manager_default.log(`Preinstalled ${loadedBuilders.size} Builders in ${cacheRoot}`),0}catch(error){return printError(error),1}}var CachePurgeTelemetryClient=class extends TelemetryClient{trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionType(type){type&&this.trackCliOption({option:"type",value:type})}};async function purge(client,argv){let telemetry2=new CachePurgeTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(purgeSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return printError(err),2}let projectName=parsedArgs.flags["--project"];telemetry2.trackCliOptionProject(projectName);let link=await resolveProjectContext({client,projectNameOrId:projectName});if(link.status==="not_linked")return output_manager_default.error("No project linked. Run `vercel link` to link a project to this directory."),1;if(link.status==="error")return link.exitCode;let{project,org}=link;client.config.currentTeam=org.type==="team"?org.id:void 0;let yes=!!parsedArgs.flags["--yes"];telemetry2.trackCliFlagYes(yes);let type=parsedArgs.flags["--type"]||"all";telemetry2.trackCliOptionType(parsedArgs.flags["--type"]);let cacheTypeMap={cdn:"the CDN cache",data:"the Data cache",all:"the CDN cache and Data cache"},validTypes=Object.keys(cacheTypeMap);if(!validTypes.includes(type))return output_manager_default.error(`Invalid cache type "${type}". Valid types are: ${validTypes.join(", ")}`),1;let typeDesciption=cacheTypeMap[type],msg=`You are about to purge ${typeDesciption} for project ${project.name}`,query=new URLSearchParams({projectIdOrName:project.id}).toString();if(!yes){if(!process.stdin.isTTY){let projectFlag=projectName?` --project ${projectName}`:"";return output_manager_default.print(`${msg}. To continue, run ${getCommandName(`cache purge${projectFlag} --yes`)}.`),1}if(!await client.input.confirm(`${msg}. Continue?`,!0))return output_manager_default.print(`Canceled.
36
+ `;await writeFile(filePath,existing+separator+BEST_PRACTICES_CONTENT,"utf-8"),output_manager_default.stopSpinner(),output_manager_default.success(`Appended Vercel best practices to ${import_chalk.default.bold(targetFile)}`)}else await writeFile(filePath,BEST_PRACTICES_CONTENT,"utf-8"),output_manager_default.stopSpinner(),output_manager_default.success(`Created ${import_chalk.default.bold(targetFile)} with Vercel best practices`)}catch(error){return output_manager_default.stopSpinner(),printError(error),1}return output_manager_default.log(import_chalk.default.dim("Run vercel deploy to ship your project")),0}async function agent(client){let parsedArgs,flagsSpecification=getFlagsSpecification(agentCommand.options),telemetry2=new AgentTelemetryClient({opts:{store:client.telemetryEventStore}});try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("agent"),output_manager_default.print(help(agentCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let subcommand=parsedArgs.args[1];if(telemetry2.trackCliArgumentInit(subcommand),!subcommand||subcommand==="init"){let yes=parsedArgs.flags["--yes"]??!1;telemetry2.trackCliFlagYes(yes);try{return await agentInit(client,yes)}catch(error){return printError(error),1}}return output_manager_default.error(`Unknown subcommand: ${subcommand}`),output_manager_default.print(help(agentCommand,{stream:client.stderr,columns:client.stderr.columns})),2}var AlertsTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(v){v&&this.trackCliSubcommand({subcommand:"ls",value:v})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliOptionType(v){v&&v.length>0&&this.trackCliOption({option:"type",value:v.join(",")})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliFlagAi(v){v&&this.trackCliFlag("ai")}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function getFlagSpecValue(flagsSpecification,flag){let value=flagsSpecification[flag];return typeof value=="string"?flagsSpecification[value]:value}function flagConsumesValue(rawArg,flagsSpecification){if(!rawArg.startsWith("-")||rawArg==="-"||rawArg.includes("="))return!1;let value=getFlagSpecValue(flagsSpecification,rawArg);return value===String||value===Number||Array.isArray(value)}function findCommandIndex(rawArgs,commandName,flagsSpecification){if(!commandName)return-1;for(let index=0;index<rawArgs.length;index++){let rawArg=rawArgs[index];if(rawArg==="--")return rawArgs.indexOf(commandName,index+1);if(rawArg.startsWith("-")){flagConsumesValue(rawArg,flagsSpecification)&&index++;continue}if(rawArg===commandName)return index}return-1}function normalizeHelpAlias(rawArgs){return rawArgs.map(arg=>arg==="-help"?"--help":arg)}var COMMAND_CONFIG2={inspect:getCommandAliases(inspectSubcommand),ls:getCommandAliases(listSubcommand),rules:["rules"]};function getAlertsSubcommand(rawArgs,parsedArgs,flagsSpecification){let commandIndex=findCommandIndex(rawArgs,parsedArgs[0],flagsSpecification),rawArgsAfterCommand=commandIndex===-1?[]:rawArgs.slice(commandIndex+1),rawSubcommand=rawArgsAfterCommand[0];return!rawSubcommand||rawSubcommand.startsWith("-")?{...getSubcommand([],COMMAND_CONFIG2),rawSubcommandArgs:rawArgsAfterCommand}:{...getSubcommand(parsedArgs.slice(1),COMMAND_CONFIG2),rawSubcommandArgs:rawArgsAfterCommand.slice(1)}}async function alerts(client){let telemetry2=new AlertsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(alertsCommand.options),rawArgs=normalizeHelpAlias(client.argv.slice(2));try{parsedArgs=parseArguments(rawArgs,flagsSpecification,{permissive:!0})}catch(err){let msg=err instanceof Error?err.message:String(err),projectFlagMissingArg=msg.includes("--project")&&msg.includes("requires argument");return shouldEmitNonInteractiveCommandError(client)&&outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:projectFlagMissingArg?"`--project` requires a project name or id (for example `--project my-app`).":msg,next:projectFlagMissingArg?[{command:buildCommandWithGlobalFlags(client.argv,"alerts --project <name-or-id>"),when:"Re-run with a project name or id (replace placeholder)"},{command:buildCommandWithGlobalFlags(client.argv,"alerts --help"),when:"See all `alerts` options and examples"}]:[{command:buildCommandWithGlobalFlags(client.argv,"alerts --help"),when:"See valid options and examples"}]},2),printError(err),2}let{subcommand,subcommandOriginal,rawSubcommandArgs}=getAlertsSubcommand(rawArgs,parsedArgs.args,{...arg_common_default(),...flagsSpecification});switch(subcommand){case"inspect":{telemetry2.trackCliSubcommandInspect(subcommandOriginal);let inspectFn=(await import("./chunks/inspect-VEUY4QJ2.js")).default;return inspectFn(client,rawSubcommandArgs)}case"rules":return warnDeprecatedSubcommand(client,"alerts rules","monitors"),runMonitors(client,rawSubcommandArgs,ALERT_RULES_API);default:{telemetry2.trackCliSubcommandLs(subcommandOriginal);let listFn=(await import("./chunks/list-NEV4FBTY.js")).default;return listFn(client,telemetry2)}}}import{createRequire}from"node:module";import{isAbsolute}from"node:path";var require_=createRequire(__filename),COMMAND_CONFIG3={preinstall:getCommandAliases(preinstallSubcommand)};async function builders(client){let parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),getFlagsSpecification(buildersCommand.options),{permissive:!0})}catch(error){return printError(error),2}let{subcommand,args}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG3);if(subcommand!=="preinstall"||args.length>0)return output_manager_default.error("Only `vercel builders preinstall` is supported."),2;if(!isManagedBuildersInstall())return output_manager_default.error("Builder preinstallation requires the native Vercel CLI or VERCEL_CLI_MANAGED_BUILDERS=1."),1;let configuredCacheRoot=process.env.VERCEL_BUILDERS_DIR;if(!configuredCacheRoot)return output_manager_default.error("Set VERCEL_BUILDERS_DIR to preinstall Builders."),1;if(!isAbsolute(configuredCacheRoot))return output_manager_default.error("VERCEL_BUILDERS_DIR must be an absolute path."),1;let cacheRoot=configuredCacheRoot;try{let[{loadEmbeddedBuilderGraphs},{createVltBuilderImporter}]=await Promise.all([import("./chunks/vlt-builder-graph-XL2XRO4V.js"),import("./chunks/vlt-builder-importer-RBUPAB6J.js")]),graphs=await loadEmbeddedBuilderGraphs(),specs=new Map(Object.keys(graphs.builders).map(name=>[name,name])),loadedBuilders=await createVltBuilderImporter({graphs,require:require_,cacheRoot,debug:message=>output_manager_default.debug(message)})(specs),missingBuilders=[...specs.keys()].filter(spec=>!loadedBuilders.has(spec));if(missingBuilders.length>0)throw new Error(`Failed to load preinstalled Builders: ${missingBuilders.join(", ")}`);return output_manager_default.log(`Preinstalled ${loadedBuilders.size} Builders in ${cacheRoot}`),0}catch(error){return printError(error),1}}var CachePurgeTelemetryClient=class extends TelemetryClient{trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionType(type){type&&this.trackCliOption({option:"type",value:type})}};async function purge(client,argv){let telemetry2=new CachePurgeTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(purgeSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return printError(err),2}let projectName=parsedArgs.flags["--project"];telemetry2.trackCliOptionProject(projectName);let link=await resolveProjectContext({client,projectNameOrId:projectName});if(link.status==="not_linked")return output_manager_default.error("No project linked. Run `vercel link` to link a project to this directory."),1;if(link.status==="error")return link.exitCode;let{project,org}=link;client.config.currentTeam=org.type==="team"?org.id:void 0;let yes=!!parsedArgs.flags["--yes"];telemetry2.trackCliFlagYes(yes);let type=parsedArgs.flags["--type"]||"all";telemetry2.trackCliOptionType(parsedArgs.flags["--type"]);let cacheTypeMap={cdn:"the CDN cache",data:"the Data cache",all:"the CDN cache and Data cache"},validTypes=Object.keys(cacheTypeMap);if(!validTypes.includes(type))return output_manager_default.error(`Invalid cache type "${type}". Valid types are: ${validTypes.join(", ")}`),1;let typeDesciption=cacheTypeMap[type],msg=`You are about to purge ${typeDesciption} for project ${project.name}`,query=new URLSearchParams({projectIdOrName:project.id}).toString();if(!yes){if(!process.stdin.isTTY){let projectFlag=projectName?` --project ${projectName}`:"";return output_manager_default.print(`${msg}. To continue, run ${getCommandName(`cache purge${projectFlag} --yes`)}.`),1}if(!await client.input.confirm(`${msg}. Continue?`,!0))return output_manager_default.print(`Canceled.
37
37
  `),0}let requests=[];return(type==="cdn"||type==="all")&&requests.push(client.fetch(`/v1/edge-cache/purge-all?${query}`,{method:"POST",headers:{"Content-Type":"application/json"}})),(type==="data"||type==="all")&&requests.push(client.fetch(`/v1/data-cache/purge-all?${query}`,{method:"DELETE",headers:{"Content-Type":"application/json"}})),await Promise.all(requests),output_manager_default.print(prependEmoji(`Successfully purged ${typeDesciption}`,emoji("success"))+`
38
38
  `),0}var CacheInvalidateTelemetryClient=class extends TelemetryClient{trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionTag(tag){tag&&this.trackCliOption({option:"tag",value:tag})}trackCliOptionSrcimg(srcimg){srcimg&&this.trackCliOption({option:"srcimg",value:srcimg})}};var import_pluralize=__toESM(require_pluralize(),1);async function invalidate(client,argv){let telemetry2=new CacheInvalidateTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(invalidateSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return printError(err),2}let projectName=parsedArgs.flags["--project"];telemetry2.trackCliOptionProject(projectName);let link=await resolveProjectContext({client,projectNameOrId:projectName});if(link.status==="not_linked")return output_manager_default.error("No project linked. Run `vercel link` to link a project to this directory."),1;if(link.status==="error")return link.exitCode;let{project,org}=link;client.config.currentTeam=org.type==="team"?org.id:void 0;let yes=!!parsedArgs.flags["--yes"],tag=parsedArgs.flags["--tag"],srcimg=parsedArgs.flags["--srcimg"];if(telemetry2.trackCliFlagYes(yes),telemetry2.trackCliOptionTag(tag),telemetry2.trackCliOptionSrcimg(srcimg),tag&&srcimg)return output_manager_default.error("Cannot use both --tag and --srcimg options"),2;let itemName="",itemValue="",flag="",postUrl="",postBody={};if(tag)itemName=(0,import_pluralize.default)("tag",tag.split(",").length,!1),itemValue=tag,flag="--tag",postUrl="/v1/edge-cache/invalidate-by-tags",postBody={tags:tag};else if(srcimg)itemName="source image",itemValue=srcimg,flag="--srcimg",postUrl="/v1/edge-cache/invalidate-by-src-images",postBody={srcImages:[srcimg]};else return output_manager_default.error("The --tag or --srcimg option is required"),2;let msg=`You are about to invalidate all cached content associated with ${itemName} ${itemValue} for project ${project.name}`;if(!yes){if(!process.stdin.isTTY){let projectFlag=projectName?` --project ${projectName}`:"";return output_manager_default.print(`${msg}. To continue, run ${getCommandName(`cache invalidate ${flag} ${itemValue}${projectFlag} --yes`)}.`),1}if(!await client.input.confirm(`${msg}. Continue?`,!0))return output_manager_default.print(`Canceled.
39
39
  `),0}return await client.fetch(`${postUrl}?projectIdOrName=${project.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(postBody)}),output_manager_default.print(prependEmoji(`Successfully invalidated all cached content associated with ${itemName} ${itemValue}`,emoji("success"))+`
@@ -44,7 +44,7 @@ ${BEST_PRACTICES_END}
44
44
 
45
45
  `)}
46
46
  `)}async function fetchEntries(query,limit){let url=new URL(query?`${CHANGELOG_API_URL}/search`:CHANGELOG_API_URL);url.searchParams.set("limit",String(limit)),query?url.searchParams.set("q",query):url.searchParams.set("include","content");try{let response=await fetch(url,{headers:{accept:"application/json","user-agent":ua_default}});if(!response.ok){response.status===429?output_manager_default.error("Too many changelog requests. Try again shortly."):output_manager_default.error("Failed to fetch changelog entries.");return}let data=await response.json();if(!data||typeof data!="object")throw new Error("Invalid changelog response");let items=data.items;if(!Array.isArray(items)||!items.every(isChangelogItem))throw new Error("Invalid changelog response");return items}catch{output_manager_default.error("Failed to fetch changelog entries. Check your connection and try again.");return}}function printCommandHelp(client,command){output_manager_default.print(help(command,{stream:client.stderr,columns:client.stderr.columns,parent:command===changelogCommand?void 0:changelogCommand}))}async function changelog(client){let telemetry2=new ChangelogTelemetryClient({opts:{store:client.telemetryEventStore}}),flagsSpecification=getFlagsSpecification(changelogCommand.options),rawArgs=client.argv.slice(2).filter(arg=>arg!=="--changelog"),parsedArgs;try{parsedArgs=parseArguments(rawArgs,flagsSpecification)}catch(err){return printError(err),2}let commandOffset=parsedArgs.args[0]===changelogCommand.name?1:0,{subcommand,args,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(commandOffset),COMMAND_CONFIG5);if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp(changelogCommand.name,subcommand==="search"?subcommandOriginal:void 0),printCommandHelp(client,subcommand==="search"?searchSubcommand:changelogCommand),0;if(!subcommand&&args.length>0)return output_manager_default.error(`Unknown changelog command: ${args[0]}`),printCommandHelp(client,changelogCommand),1;let limit=parsedArgs.flags["--limit"]??DEFAULT_LIMIT;if(!Number.isInteger(limit)||limit<1||limit>MAX_LIMIT)return output_manager_default.error(`--limit must be between 1 and ${MAX_LIMIT}.`),2;telemetry2.trackCliOptionLimit(parsedArgs.flags["--limit"]),telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]);let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput,query;if(subcommand==="search"&&(telemetry2.trackCliSubcommandSearch(subcommandOriginal),query=args.join(" ").trim(),!query))return output_manager_default.error("Search query is required."),printCommandHelp(client,searchSubcommand),2;jsonOutput||output_manager_default.spinner(query?"Searching the changelog\u2026":"Fetching the changelog\u2026");let items=await fetchEntries(query,limit);return jsonOutput||output_manager_default.stopSpinner(),items?jsonOutput?(client.stdout.write(`${JSON.stringify({items},null,2)}
47
- `),0):items.length===0?(output_manager_default.log(query?"No changelog entries match the query.":"No changelog entries found."),0):(printEntries(items),0):1}var CommentsTelemetryClient=class extends TelemetryClient{trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandReply(actual){this.trackCliSubcommand({subcommand:"reply",value:actual})}trackCliSubcommandResolve(actual){this.trackCliSubcommand({subcommand:"resolve",value:actual})}trackCliSubcommandReopen(actual){this.trackCliSubcommand({subcommand:"reopen",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionStatus(v){v&&this.trackCliOption({option:"status",value:v})}trackCliFlagAllBranches(v){v&&this.trackCliFlag("all-branches")}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagContext(v){v&&this.trackCliFlag("context")}trackCliOptionProject(v){v&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliOptionGitBranch(v){v&&v.length>0&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionBranch(v){v&&v.length>0&&this.trackCliOption({option:"branch",value:this.redactedValue})}trackCliOptionPage(v){v&&v.length>0&&this.trackCliOption({option:"page",value:this.redactedValue})}trackCliOptionPagePath(v){v&&v.length>0&&this.trackCliOption({option:"page-path",value:this.redactedValue})}trackCliOptionAuthor(v){v&&v.length>0&&this.trackCliOption({option:"author",value:this.redactedValue})}trackCliOptionContent(v){v&&v.length>0&&this.trackCliOption({option:"content",value:this.redactedValue})}trackCliOptionContentId(v){v&&v.length>0&&this.trackCliOption({option:"content-id",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionMessage(v){v&&this.trackCliOption({option:"message",value:this.redactedValue})}trackCliOptionFile(v){v&&this.trackCliOption({option:"file",value:this.redactedValue})}trackCliOptionAttach(v){v&&v.length>0&&this.trackCliOption({option:"attach",value:this.redactedValue})}trackCliArgumentThread(v){v&&this.trackCliArgument({arg:"thread",value:this.redactedValue})}trackCliArgumentMessageId(v){v&&this.trackCliArgument({arg:"message-id",value:this.redactedValue})}trackCliArgumentSearch(v){v&&this.trackCliArgument({arg:"search",value:this.redactedValue})}};var COMMAND_CONFIG6={list:getCommandAliases(listSubcommand2),inspect:getCommandAliases(inspectSubcommand2),open:getCommandAliases(openSubcommand),reply:getCommandAliases(replySubcommand),resolve:getCommandAliases(resolveSubcommand),reopen:getCommandAliases(reopenSubcommand),update:getCommandAliases(editSubcommand),delete:getCommandAliases(deleteSubcommand)};async function comments(client){let telemetry2=new CommentsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(commentsCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG6),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("comments",subcommand),output_manager_default.print(help(commentsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:commentsCommand,columns:client.stderr.columns}))}function handleHelp(command){return needHelp?(telemetry2.trackCliFlagHelp("comments",subcommandOriginal),printSubcommandHelp(command),!0):!1}switch(subcommand){case"inspect":return handleHelp(inspectSubcommand2)?0:(telemetry2.trackCliSubcommandInspect(subcommandOriginal),subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"comments get","comments inspect"),(await import("./chunks/inspect-J4WU7N2Z.js")).default(client,telemetry2));case"open":return handleHelp(openSubcommand)?0:(telemetry2.trackCliSubcommandOpen(subcommandOriginal),(await import("./chunks/open-62S7LSPT.js")).default(client,telemetry2));case"reply":return handleHelp(replySubcommand)?0:(telemetry2.trackCliSubcommandReply(subcommandOriginal),(await import("./chunks/reply-CBBADKE5.js")).default(client,telemetry2));case"resolve":return handleHelp(resolveSubcommand)?0:(telemetry2.trackCliSubcommandResolve(subcommandOriginal),(await import("./chunks/resolve-KKFBXTIX.js")).default(client,telemetry2,!0));case"reopen":return handleHelp(reopenSubcommand)?0:(telemetry2.trackCliSubcommandReopen(subcommandOriginal),(await import("./chunks/resolve-KKFBXTIX.js")).default(client,telemetry2,!1));case"update":return handleHelp(editSubcommand)?0:(telemetry2.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"comments edit","comments update"),(await import("./chunks/edit-KA7OSMJA.js")).default(client,telemetry2));case"delete":return handleHelp(deleteSubcommand)?0:(telemetry2.trackCliSubcommandDelete(subcommandOriginal),(await import("./chunks/delete-BZ3NLCTU.js")).default(client,telemetry2));default:{if(needHelp)return telemetry2.trackCliFlagHelp("comments",subcommandOriginal),subcommandOriginal!=="default"?printSubcommandHelp(listSubcommand2):output_manager_default.print(help(commentsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;telemetry2.trackCliSubcommandList(subcommandOriginal);let defaultInvocation=subcommandOriginal==="default";return(await import("./chunks/list-GLYYBTWD.js")).default(client,telemetry2,defaultInvocation)}}}var import_chalk3=__toESM(require_source(),1);var ContractTelemetryClient=class extends TelemetryClient{trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var import_error_utils=__toESM(require_dist(),1);async function contract(client){let{print,log,error,spinner}=output_manager_default,flagsSpecification=getFlagsSpecification(contractCommand.options),parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let telemetry2=new ContractTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("contract"),print(help(contractCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput;telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]);let contextName,teamId;try{let scope=await getScope(client);contextName=scope.contextName,teamId=scope.team?.id}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1;throw err}let start=Date.now();asJson||spinner(`Fetching contract commitments for ${import_chalk3.default.bold(contextName)}`);let query=new URLSearchParams;teamId&&query.set("teamId",teamId);try{let response=await client.fetch(`/v1/billing/contract-commitments?${query}`,{json:!1,useCurrentTeam:!1});if(!response.ok){let errorText=await response.text();return error(`Failed to fetch contract commitments: ${response.status} ${errorText}`),1}let text=await response.text(),data=text?JSON.parse(text):null,commitments=Array.isArray(data)?data:[];if(asJson){let jsonOutput={context:contextName,commitments:commitments.map(c=>({contractId:c.ContractId,contractPeriodStart:c.ContractPeriodStart,contractPeriodEnd:c.ContractPeriodEnd,commitmentId:c.ContractCommitmentId,commitmentType:c.ContractCommitmentType,commitmentCategory:c.ContractCommitmentCategory,commitmentPeriodStart:c.ContractCommitmentPeriodStart,commitmentPeriodEnd:c.ContractCommitmentPeriodEnd,commitmentCost:c.ContractCommitmentCost,commitmentQuantity:c.ContractCommitmentQuantity,commitmentUnit:c.ContractCommitmentUnit,billingCurrency:c.BillingCurrency,description:c.ContractCommitmentDescription})),totalCommitments:commitments.length};return client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
47
+ `),0):items.length===0?(output_manager_default.log(query?"No changelog entries match the query.":"No changelog entries found."),0):(printEntries(items),0):1}var CommentsTelemetryClient=class extends TelemetryClient{trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandReply(actual){this.trackCliSubcommand({subcommand:"reply",value:actual})}trackCliSubcommandResolve(actual){this.trackCliSubcommand({subcommand:"resolve",value:actual})}trackCliSubcommandReopen(actual){this.trackCliSubcommand({subcommand:"reopen",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionStatus(v){v&&this.trackCliOption({option:"status",value:v})}trackCliFlagAllBranches(v){v&&this.trackCliFlag("all-branches")}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagContext(v){v&&this.trackCliFlag("context")}trackCliOptionProject(v){v&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliOptionGitBranch(v){v&&v.length>0&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionBranch(v){v&&v.length>0&&this.trackCliOption({option:"branch",value:this.redactedValue})}trackCliOptionPage(v){v&&v.length>0&&this.trackCliOption({option:"page",value:this.redactedValue})}trackCliOptionPagePath(v){v&&v.length>0&&this.trackCliOption({option:"page-path",value:this.redactedValue})}trackCliOptionAuthor(v){v&&v.length>0&&this.trackCliOption({option:"author",value:this.redactedValue})}trackCliOptionContent(v){v&&v.length>0&&this.trackCliOption({option:"content",value:this.redactedValue})}trackCliOptionContentId(v){v&&v.length>0&&this.trackCliOption({option:"content-id",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionMessage(v){v&&this.trackCliOption({option:"message",value:this.redactedValue})}trackCliOptionFile(v){v&&this.trackCliOption({option:"file",value:this.redactedValue})}trackCliOptionAttach(v){v&&v.length>0&&this.trackCliOption({option:"attach",value:this.redactedValue})}trackCliArgumentThread(v){v&&this.trackCliArgument({arg:"thread",value:this.redactedValue})}trackCliArgumentMessageId(v){v&&this.trackCliArgument({arg:"message-id",value:this.redactedValue})}trackCliArgumentSearch(v){v&&this.trackCliArgument({arg:"search",value:this.redactedValue})}};var COMMAND_CONFIG6={list:getCommandAliases(listSubcommand2),inspect:getCommandAliases(inspectSubcommand2),open:getCommandAliases(openSubcommand),reply:getCommandAliases(replySubcommand),resolve:getCommandAliases(resolveSubcommand),reopen:getCommandAliases(reopenSubcommand),update:getCommandAliases(editSubcommand),delete:getCommandAliases(deleteSubcommand)};async function comments(client){let telemetry2=new CommentsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(commentsCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG6),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("comments",subcommand),output_manager_default.print(help(commentsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:commentsCommand,columns:client.stderr.columns}))}function handleHelp(command){return needHelp?(telemetry2.trackCliFlagHelp("comments",subcommandOriginal),printSubcommandHelp(command),!0):!1}switch(subcommand){case"inspect":return handleHelp(inspectSubcommand2)?0:(telemetry2.trackCliSubcommandInspect(subcommandOriginal),subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"comments get","comments inspect"),(await import("./chunks/inspect-3TRAN3SP.js")).default(client,telemetry2));case"open":return handleHelp(openSubcommand)?0:(telemetry2.trackCliSubcommandOpen(subcommandOriginal),(await import("./chunks/open-CYATUDTT.js")).default(client,telemetry2));case"reply":return handleHelp(replySubcommand)?0:(telemetry2.trackCliSubcommandReply(subcommandOriginal),(await import("./chunks/reply-RKDDYV5I.js")).default(client,telemetry2));case"resolve":return handleHelp(resolveSubcommand)?0:(telemetry2.trackCliSubcommandResolve(subcommandOriginal),(await import("./chunks/resolve-ZF7BFXIW.js")).default(client,telemetry2,!0));case"reopen":return handleHelp(reopenSubcommand)?0:(telemetry2.trackCliSubcommandReopen(subcommandOriginal),(await import("./chunks/resolve-ZF7BFXIW.js")).default(client,telemetry2,!1));case"update":return handleHelp(editSubcommand)?0:(telemetry2.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"comments edit","comments update"),(await import("./chunks/edit-CVMUITFG.js")).default(client,telemetry2));case"delete":return handleHelp(deleteSubcommand)?0:(telemetry2.trackCliSubcommandDelete(subcommandOriginal),(await import("./chunks/delete-W6BZHLGP.js")).default(client,telemetry2));default:{if(needHelp)return telemetry2.trackCliFlagHelp("comments",subcommandOriginal),subcommandOriginal!=="default"?printSubcommandHelp(listSubcommand2):output_manager_default.print(help(commentsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;telemetry2.trackCliSubcommandList(subcommandOriginal);let defaultInvocation=subcommandOriginal==="default";return(await import("./chunks/list-DJKKVFUL.js")).default(client,telemetry2,defaultInvocation)}}}var import_chalk3=__toESM(require_source(),1);var ContractTelemetryClient=class extends TelemetryClient{trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var import_error_utils=__toESM(require_dist(),1);async function contract(client){let{print,log,error,spinner}=output_manager_default,flagsSpecification=getFlagsSpecification(contractCommand.options),parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let telemetry2=new ContractTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("contract"),print(help(contractCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput;telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]);let contextName,teamId;try{let scope=await getScope(client);contextName=scope.contextName,teamId=scope.team?.id}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1;throw err}let start=Date.now();asJson||spinner(`Fetching contract commitments for ${import_chalk3.default.bold(contextName)}`);let query=new URLSearchParams;teamId&&query.set("teamId",teamId);try{let response=await client.fetch(`/v1/billing/contract-commitments?${query}`,{json:!1,useCurrentTeam:!1});if(!response.ok){let errorText=await response.text();return error(`Failed to fetch contract commitments: ${response.status} ${errorText}`),1}let text=await response.text(),data=text?JSON.parse(text):null,commitments=Array.isArray(data)?data:[];if(asJson){let jsonOutput={context:contextName,commitments:commitments.map(c=>({contractId:c.ContractId,contractPeriodStart:c.ContractPeriodStart,contractPeriodEnd:c.ContractPeriodEnd,commitmentId:c.ContractCommitmentId,commitmentType:c.ContractCommitmentType,commitmentCategory:c.ContractCommitmentCategory,commitmentPeriodStart:c.ContractCommitmentPeriodStart,commitmentPeriodEnd:c.ContractCommitmentPeriodEnd,commitmentCost:c.ContractCommitmentCost,commitmentQuantity:c.ContractCommitmentQuantity,commitmentUnit:c.ContractCommitmentUnit,billingCurrency:c.BillingCurrency,description:c.ContractCommitmentDescription})),totalCommitments:commitments.length};return client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
48
48
  `),0}if(log(`Contract commitments for ${import_chalk3.default.bold(contextName)} ${elapsed(Date.now()-start)}`),log(""),commitments.length===0)return log("No contract commitments found."),0;let contractGroups=new Map;for(let commitment of commitments){let existing=contractGroups.get(commitment.ContractId)||[];existing.push(commitment),contractGroups.set(commitment.ContractId,existing)}for(let[contractId,contractCommitments]of contractGroups){let firstCommitment=contractCommitments[0];log(import_chalk3.default.bold(`Contract: ${contractId}`)),log(`${import_chalk3.default.gray("Period:")} ${extractDatePortion(firstCommitment.ContractPeriodStart)} to ${extractDatePortion(firstCommitment.ContractPeriodEnd)}`),log("");let headers=["Type","Category","Period","Commitment","Description"],rows=contractCommitments.map(c=>{let periodStr=`${extractDatePortion(c.ContractCommitmentPeriodStart)} - ${extractDatePortion(c.ContractCommitmentPeriodEnd)}`,commitmentValue;return c.ContractCommitmentCategory==="Spend"&&c.ContractCommitmentCost!==void 0?commitmentValue=formatCurrency(c.ContractCommitmentCost):c.ContractCommitmentCategory==="Usage"&&c.ContractCommitmentQuantity!==void 0?commitmentValue=formatQuantity(c.ContractCommitmentQuantity,c.ContractCommitmentUnit):commitmentValue="-",[c.ContractCommitmentType,c.ContractCommitmentCategory,periodStr,commitmentValue,c.ContractCommitmentDescription||"-"]}),tablePrint=table([headers.map(h=>import_chalk3.default.bold(import_chalk3.default.cyan(h))),...rows],{hsep:3,align:["l","l","l","r","l"]}).replace(/^/gm," ");print(`${tablePrint}
49
49
 
50
50
  `)}return log(`${import_chalk3.default.gray("Total commitments:")} ${commitments.length}`),0}catch(err){return output_manager_default.prettyError(err),1}}var import_chalk4=__toESM(require_source(),1);import{resolve}from"path";import{access,readFile as readFile2,writeFile as writeFile2}from"fs/promises";var CronsAddTelemetryClient=class extends TelemetryClient{trackCliOptionPath(path){path&&this.trackCliOption({option:"path",value:this.redactedValue})}trackCliOptionSchedule(schedule){schedule&&this.trackCliOption({option:"schedule",value:this.redactedValue})}};var CRON_FIELD_RANGES=[["minute",0,59],["hour",0,23],["day of month",1,31],["month",1,12],["day of week",0,7]];function validateCronSchedule(expression){if(expression.length>256)return"Schedule expression must be 256 characters or less";let fields=expression.trim().split(/\s+/);if(fields.length!==5)return`Schedule must have exactly 5 fields (minute hour day-of-month month day-of-week), got ${fields.length}`;for(let i=0;i<fields.length;i++){let[name,min,max]=CRON_FIELD_RANGES[i],error=validateCronField(fields[i],name,min,max);if(error)return error}return!0}function validateCronField(field,name,min,max){let parts=field.split(",");for(let part of parts){let[range,stepStr]=part.split("/");if(stepStr!==void 0){let step=Number(stepStr);if(!Number.isInteger(step)||step<1)return`Invalid step value "${stepStr}" in ${name} field`}if(range==="*")continue;if(range.includes("-")){let rangeParts=range.split("-");if(rangeParts.length!==2||rangeParts[0]===""||rangeParts[1]==="")return`Invalid range "${range}" in ${name} field`;let[startStr,endStr]=rangeParts,start=Number(startStr),end=Number(endStr);if(!Number.isInteger(start)||!Number.isInteger(end))return`Invalid range "${range}" in ${name} field`;if(start<min||start>max||end<min||end>max)return`Value out of range in ${name} field (${min}-${max})`;if(start>end)return`Invalid range "${range}" in ${name} field: start is greater than end`;continue}let value=Number(range);if(!Number.isInteger(value))return`Invalid value "${range}" in ${name} field`;if(value<min||value>max)return`Value ${value} out of range in ${name} field (${min}-${max})`}return null}async function add(client,argv){let telemetry2=new CronsAddTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(addSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{flags}=parsedArgs,cronPath=flags["--path"],schedule=flags["--schedule"];if(telemetry2.trackCliOptionPath(cronPath),telemetry2.trackCliOptionSchedule(schedule),!cronPath||!schedule){if(!client.stdin.isTTY)return output_manager_default.error(`Missing required options. Use ${getCommandName('crons add --path /api/cron --schedule "0 10 * * *"')} in non-interactive mode.`),2;cronPath||(cronPath=await client.input.text({message:"What is the API route path for the cron job?",validate:value=>value.startsWith("/")?value.length>512?"Path must be 512 characters or less":!0:"Path must start with /"})),schedule||(schedule=await client.input.text({message:"What is the cron schedule expression?",validate:validateCronSchedule}))}if(!cronPath.startsWith("/"))return output_manager_default.error("Path must start with /"),1;if(cronPath.length>512)return output_manager_default.error("Path must be 512 characters or less"),1;let scheduleValidation=validateCronSchedule(schedule);if(scheduleValidation!==!0)return output_manager_default.error(scheduleValidation),1;let nonJsonConfigs=[...VERCEL_CONFIG_EXTENSIONS.map(ext=>`vercel.${ext}`),"vercel.toml"];for(let configName of nonJsonConfigs){let altPath=resolve(client.cwd,configName);try{return await access(altPath),output_manager_default.error(`Found ${import_chalk4.default.cyan(configName)} \u2014 ${getCommandName("crons add")} only supports ${import_chalk4.default.cyan("vercel.json")}. Add cron jobs directly to your ${import_chalk4.default.cyan(configName)} file instead.`),1}catch{}}let configPath=resolve(client.cwd,"vercel.json"),config;try{let content=await readFile2(configPath,"utf-8");config=JSON.parse(content)}catch(err){if(err instanceof SyntaxError)return output_manager_default.error(`Failed to parse ${import_chalk4.default.cyan("vercel.json")}: ${err.message}`),1;if(err instanceof Error&&"code"in err&&err.code==="ENOENT")config={};else return output_manager_default.error(`Failed to read ${import_chalk4.default.cyan("vercel.json")}: ${err instanceof Error?err.message:String(err)}`),1}let existingCrons=Array.isArray(config.crons)?config.crons:[];if(existingCrons.some(c=>c.path===cronPath))return output_manager_default.error(`A cron job with path ${import_chalk4.default.bold(cronPath)} already exists in vercel.json`),1;existingCrons.push({path:cronPath,schedule}),config.crons=existingCrons;try{await writeFile2(configPath,JSON.stringify(config,null,2)+`
@@ -146,7 +146,7 @@ Starting setup...
146
146
  `),output_manager_default.print("\u2500".repeat(50)+`
147
147
  `),summary.forEach(line=>output_manager_default.print(`${line}
148
148
  `)),output_manager_default.print(`Complete any required setup and authentication in the selected MCP clients. Restart configured clients if needed.
149
- `),0}var MCP_CLIENTS=[{slug:"claude-code",display:"Claude Code"},{slug:"claude-desktop",display:"Claude.ai and Claude for desktop"},{slug:"cursor",display:"Cursor"},{slug:"vscode-copilot",display:"VS Code with Copilot"}],MCP_CLIENT_DISPLAY_NAMES=MCP_CLIENTS.map(c=>c.display);function buildSuggestedMcpCommand(client,clientsValue){let args=client.argv.slice(2),preserved=[],hasNonInteractive=!1;for(let i=1;i<args.length;i++){let arg=args[i];if(arg==="--non-interactive"){hasNonInteractive=!0;continue}if(arg==="--clients"){for(i++;i<args.length&&!args[i].startsWith("-");)i++;i--;continue}arg.startsWith("--clients=")||preserved.push(arg)}let singleQuotedClients=`'${clientsValue}'`;preserved.push("--clients",singleQuotedClients),hasNonInteractive&&preserved.push("--non-interactive");let suffix=preserved.join(" ");return suffix?`${packageName} mcp ${suffix}`:`${packageName} mcp`}function parseAndValidateClients(clientsFlag){if(!clientsFlag||!clientsFlag.trim())return[];let normalized=clientsFlag.split(",").map(s=>s.trim()).filter(Boolean).map(name=>{let lower=name.toLowerCase();return MCP_CLIENT_DISPLAY_NAMES.find(c=>c.toLowerCase()===lower)??name});return[...new Set(normalized)]}async function main4(client){let parsedArgs,flagsSpecification=getFlagsSpecification(mcpCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return output_manager_default.print(help(mcpCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let project=!!parsedArgs.flags["--project"],clientsFlag=parsedArgs.flags["--clients"],clients=parseAndValidateClients(clientsFlag);if(client.nonInteractive){if(clients.length===0)return outputAgentError(client,{status:"error",reason:"missing_clients",message:"In non-interactive mode --clients is required. Specify a comma-separated list of MCP clients to set up.",next:[{command:buildSuggestedMcpCommand(client,"Cursor,VS Code with Copilot")}]},2),2;let invalid=clients.filter(c=>!MCP_CLIENT_DISPLAY_NAMES.some(v=>v===c));if(invalid.length>0)return outputAgentError(client,{status:"error",reason:"invalid_clients",message:`Invalid client(s): ${invalid.join(", ")}. Valid options: ${MCP_CLIENT_DISPLAY_NAMES.join(", ")}.`,next:[{command:buildSuggestedMcpCommand(client,"Cursor,VS Code with Copilot")}]},2),2}project&&client.argv.push("--project");try{return await mcp(client,{project,clients})}catch(err){return output_manager_default.prettyError(err),1}}var MetricsTelemetryClient=class extends TelemetryClient{trackCliSubcommandQuery(v){v&&this.trackCliSubcommand({subcommand:"query",value:v})}trackCliSubcommandSchema(v){v&&this.trackCliSubcommand({subcommand:"schema",value:v})}trackCliArgumentMetricId(v){v&&this.trackCliArgument({arg:"metric-id",value:v})}trackCliOptionAggregation(v){v&&this.trackCliOption({option:"aggregation",value:v})}trackCliOptionGroupBy(v){v&&v.length>0&&this.trackCliOption({option:"group-by",value:v.join(",")})}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionOrderBy(v){v&&this.trackCliOption({option:"order-by",value:v})}trackCliOptionOrder(v){v&&this.trackCliOption({option:"order",value:v})}trackCliOptionQuery(v){v&&v.length>0&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionFilter(v){v&&v.length>0&&this.trackCliOption({option:"filter",value:this.redactedValue})}trackCliFlagProd(v){v&&this.trackCliFlag("prod")}trackCliOptionEnvironment(v){v&&this.trackCliOption({option:"environment",value:this.redactedTargetName(v)})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionGranularity(v){v&&this.trackCliOption({option:"granularity",value:v})}trackCliOptionBucketTimezone(v){v&&this.trackCliOption({option:"bucket-timezone",value:v})}trackCliOptionProject(v){v&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}trackCliError(code,status4){this.trackErrorCode(code),this.trackErrorStatus(status4)}};var COMMAND_CONFIG10={schema:getCommandAliases(schemaSubcommand)};async function metrics(client){let telemetry2=new MetricsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(metricsCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err,client),2}let subArgs=parsedArgs.args.slice(1),{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG10),positionalMetric=subArgs[0]==="query"?subArgs[1]:subArgs[0],needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommand),output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:metricsCommand,columns:client.stderr.columns}))}switch(subcommand){case"schema":{if(needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommandOriginal),printSubHelp(schemaSubcommand),0;telemetry2.trackCliSubcommandSchema(subcommandOriginal);let schemaFn=(await import("./chunks/schema-WSHKYL5H.js")).default;return schemaFn(client,telemetry2)}default:{if(needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommandOriginal),output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;if(!positionalMetric)return output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),2;let queryFn=(await import("./chunks/query-CUU7RRG6.js")).default;return queryFn(client,telemetry2)}}}async function monitors(client){try{let group=takeCommand(client.argv.slice(2),monitorsRoutingFlags);return await runMonitors(client,group.args,MONITORS_API)}catch(err){return printError(err),isArgumentError(err)?2:1}}var import_open=__toESM(require_open(),1);var OpenTelemetryClient=class extends TelemetryClient{trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliCommandOpen(value){this.trackCliCommand({command:"open",value})}};async function openCommandHandler(client){let parsedArgs=null,flagsSpecification=getFlagsSpecification(openCommand.options),telemetry2=new OpenTelemetryClient({opts:{store:client.telemetryEventStore}});try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("open"),output_manager_default.print(help(openCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let autoConfirm=!!parsedArgs.flags["--yes"],link=await ensureLink("open",client,client.cwd,{autoConfirm});if(typeof link=="number")return link;if(link.status!=="linked"||!link.org||!link.project)return client.nonInteractive||(output_manager_default.error("This command requires a linked project. Please run:"),output_manager_default.print(` vercel link
149
+ `),0}var MCP_CLIENTS=[{slug:"claude-code",display:"Claude Code"},{slug:"claude-desktop",display:"Claude.ai and Claude for desktop"},{slug:"cursor",display:"Cursor"},{slug:"vscode-copilot",display:"VS Code with Copilot"}],MCP_CLIENT_DISPLAY_NAMES=MCP_CLIENTS.map(c=>c.display);function buildSuggestedMcpCommand(client,clientsValue){let args=client.argv.slice(2),preserved=[],hasNonInteractive=!1;for(let i=1;i<args.length;i++){let arg=args[i];if(arg==="--non-interactive"){hasNonInteractive=!0;continue}if(arg==="--clients"){for(i++;i<args.length&&!args[i].startsWith("-");)i++;i--;continue}arg.startsWith("--clients=")||preserved.push(arg)}let singleQuotedClients=`'${clientsValue}'`;preserved.push("--clients",singleQuotedClients),hasNonInteractive&&preserved.push("--non-interactive");let suffix=preserved.join(" ");return suffix?`${packageName} mcp ${suffix}`:`${packageName} mcp`}function parseAndValidateClients(clientsFlag){if(!clientsFlag||!clientsFlag.trim())return[];let normalized=clientsFlag.split(",").map(s=>s.trim()).filter(Boolean).map(name=>{let lower=name.toLowerCase();return MCP_CLIENT_DISPLAY_NAMES.find(c=>c.toLowerCase()===lower)??name});return[...new Set(normalized)]}async function main4(client){let parsedArgs,flagsSpecification=getFlagsSpecification(mcpCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return output_manager_default.print(help(mcpCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let project=!!parsedArgs.flags["--project"],clientsFlag=parsedArgs.flags["--clients"],clients=parseAndValidateClients(clientsFlag);if(client.nonInteractive){if(clients.length===0)return outputAgentError(client,{status:"error",reason:"missing_clients",message:"In non-interactive mode --clients is required. Specify a comma-separated list of MCP clients to set up.",next:[{command:buildSuggestedMcpCommand(client,"Cursor,VS Code with Copilot")}]},2),2;let invalid=clients.filter(c=>!MCP_CLIENT_DISPLAY_NAMES.some(v=>v===c));if(invalid.length>0)return outputAgentError(client,{status:"error",reason:"invalid_clients",message:`Invalid client(s): ${invalid.join(", ")}. Valid options: ${MCP_CLIENT_DISPLAY_NAMES.join(", ")}.`,next:[{command:buildSuggestedMcpCommand(client,"Cursor,VS Code with Copilot")}]},2),2}project&&client.argv.push("--project");try{return await mcp(client,{project,clients})}catch(err){return output_manager_default.prettyError(err),1}}var MetricsTelemetryClient=class extends TelemetryClient{trackCliSubcommandQuery(v){v&&this.trackCliSubcommand({subcommand:"query",value:v})}trackCliSubcommandSchema(v){v&&this.trackCliSubcommand({subcommand:"schema",value:v})}trackCliArgumentMetricId(v){v&&this.trackCliArgument({arg:"metric-id",value:v})}trackCliOptionAggregation(v){v&&this.trackCliOption({option:"aggregation",value:v})}trackCliOptionGroupBy(v){v&&v.length>0&&this.trackCliOption({option:"group-by",value:v.join(",")})}trackCliOptionLimit(v){typeof v=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionOrderBy(v){v&&this.trackCliOption({option:"order-by",value:v})}trackCliOptionOrder(v){v&&this.trackCliOption({option:"order",value:v})}trackCliOptionQuery(v){v&&v.length>0&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionFilter(v){v&&v.length>0&&this.trackCliOption({option:"filter",value:this.redactedValue})}trackCliFlagProd(v){v&&this.trackCliFlag("prod")}trackCliOptionEnvironment(v){v&&this.trackCliOption({option:"environment",value:this.redactedTargetName(v)})}trackCliOptionSince(v){v&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(v){v&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionGranularity(v){v&&this.trackCliOption({option:"granularity",value:v})}trackCliOptionBucketTimezone(v){v&&this.trackCliOption({option:"bucket-timezone",value:v})}trackCliOptionProject(v){v&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliFlagAll(v){v&&this.trackCliFlag("all")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}trackCliError(code,status4){this.trackErrorCode(code),this.trackErrorStatus(status4)}};var COMMAND_CONFIG10={schema:getCommandAliases(schemaSubcommand)};async function metrics(client){let telemetry2=new MetricsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(metricsCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err,client),2}let subArgs=parsedArgs.args.slice(1),{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG10),positionalMetric=subArgs[0]==="query"?subArgs[1]:subArgs[0],needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommand),output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printSubHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:metricsCommand,columns:client.stderr.columns}))}switch(subcommand){case"schema":{if(needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommandOriginal),printSubHelp(schemaSubcommand),0;telemetry2.trackCliSubcommandSchema(subcommandOriginal);let schemaFn=(await import("./chunks/schema-6SAZ7T2S.js")).default;return schemaFn(client,telemetry2)}default:{if(needHelp)return telemetry2.trackCliFlagHelp("metrics",subcommandOriginal),output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),0;if(!positionalMetric)return output_manager_default.print(help(metricsCommand,{stream:client.stderr,columns:client.stderr.columns})),2;let queryFn=(await import("./chunks/query-NIMDIFLO.js")).default;return queryFn(client,telemetry2)}}}async function monitors(client){try{let group=takeCommand(client.argv.slice(2),monitorsRoutingFlags);return await runMonitors(client,group.args,MONITORS_API)}catch(err){return printError(err),isArgumentError(err)?2:1}}var import_open=__toESM(require_open(),1);var OpenTelemetryClient=class extends TelemetryClient{trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliCommandOpen(value){this.trackCliCommand({command:"open",value})}};async function openCommandHandler(client){let parsedArgs=null,flagsSpecification=getFlagsSpecification(openCommand.options),telemetry2=new OpenTelemetryClient({opts:{store:client.telemetryEventStore}});try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("open"),output_manager_default.print(help(openCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let autoConfirm=!!parsedArgs.flags["--yes"],link=await ensureLink("open",client,client.cwd,{autoConfirm});if(typeof link=="number")return link;if(link.status!=="linked"||!link.org||!link.project)return client.nonInteractive||(output_manager_default.error("This command requires a linked project. Please run:"),output_manager_default.print(` vercel link
150
150
  `)),1;let{org,project}=link,projectUrl=`https://vercel.com/${org.slug}/${project.name}`;return output_manager_default.log(`Opening ${projectUrl} in your browser...`),await(0,import_open.default)(projectUrl),0}var singular={scripts:"script",headers:"header",connections:"connection"},PageIntegrityTelemetryClient=class extends TelemetryClient{trackCliSubcommandResource(resource,actual=resource){this.trackCliSubcommand({subcommand:resource,value:actual===resource||actual===singular[resource]?actual:this.redactedValue})}trackCliSubcommandScripts(actual){this.trackCliSubcommandResource("scripts",actual)}trackCliSubcommandHeaders(actual){this.trackCliSubcommandResource("headers",actual)}trackCliSubcommandConnections(actual){this.trackCliSubcommandResource("connections",actual)}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual==="list"||actual==="ls"?actual:this.redactedValue})}trackCliFlagAll(value){value&&this.trackCliFlag("all")}trackCliOptionProject(value){this.trackRedactedCliOption("project",value)}trackCliFlagJson(value){value&&this.trackCliFlag("json")}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(value){this.trackRedactedCliOption("next",value)}};var BASE="/v1/security/page-integrity";async function getPageIntegrityConfig(client,{teamId,projectId}){let query=new URLSearchParams({teamId,projectId});try{return{available:!0,config:await client.fetch(`${BASE}/config?${query}`)}}catch(error){if(isAPIError(error)&&error.status===404)return{available:!1,config:null,apiMessage:error.serverMessage||void 0};throw error}}async function listPageIntegrityResources(client,{teamId,projectId,kind,limit,next,includeAutoApproved}){let query=new URLSearchParams({teamId,projectId,kind,limit:String(limit)});next&&query.set("cursor",next),kind!=="header"&&!includeAutoApproved&&query.set("status","pending,approved,rejected");let response=await client.fetch(`${BASE}/resources?${query}`);return{items:response.items,next:response.pagination.next}}var import_ms=__toESM(require_ms(),1);function getPageIntegrityEnabledState(config){let paths=config.enabled?config.enabledForPaths:[];return{monitoring:{enabled:paths.length>0,paths},blocking:{enabled:config.enabled&&config.mode==="enforce"&&config.enforcePercentage>0,percentage:config.enforcePercentage,scope:config.enforcementScope}}}function formatMonitoring({monitoring}){let count=monitoring.paths.length;return monitoring.enabled?`${count} ${count===1?"path":"paths"}`:"Disabled"}function formatBlocking({blocking}){if(!blocking.enabled)return"Disabled";let previewOnly=blocking.scope==="preview";return blocking.percentage<100?`${blocking.percentage}%${previewOnly?" non-production":""}`:previewOnly?"Non-production":"Enabled"}function formatStatus(status4,modifiedBy){return status4==="approved"?modifiedBy==="system:first-party-auto-approve"?"Auto-approved":"Approved":status4==="pending"?"Needs review":status4==="rejected"?"Rejected":status4}function formatLastSeen(client,timestamp){if(timestamp===void 0)return"\u2014";if(!client.stdout.isTTY)return new Date(timestamp).toISOString();let age=Date.now()-timestamp;return age<7*24*60*60*1e3?(0,import_ms.default)(Math.max(0,age)):new Date(timestamp).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function formatObservedIn(production,preview){return production&&preview?"Both":production?"Production":preview?"Preview":"\u2014"}function formatPageIntegrityTable(client,collection,resources){let rows=[collection==="headers"?["Header","Value","Hash","Status","Last Seen"]:[collection==="scripts"?"URL":"Connection","Status","Observed In","Last Seen"]];for(let resource of resources)if(resource.kind==="header")for(let status4 of["approved","rejected","pending"])for(let hash of resource[status4])rows.push([resource.headerName,hash.value??"(absent)",truncateEnd(hash.hash,20,{omission:"\u2026"}),formatStatus(status4,"modifiedBy"in hash?hash.modifiedBy:null),formatLastSeen(client,"lastSeen"in hash?hash.lastSeen:void 0)]);else rows.push([resource.id,formatStatus(resource.status,resource.modifiedBy),formatObservedIn(resource.seenInProduction,resource.seenInPreview),formatLastSeen(client,resource.lastSeen)]);let empty=rows.length===1,sanitizedRows=rows.map(row=>row.map(remoteText));return client.stdout.isTTY?{rendered:empty?"":table(sanitizedRows),empty}:{rendered:sanitizedRows.map(row=>row.join(" ")).join(`
151
151
  `),empty}}function pageIntegrityError(client,json,error,exitCode){if(json)writeAgentError(client,{status:"error",...error});else{output_manager_default.fatal(error.message);let apiMessage=error.data?.apiMessage;typeof apiMessage=="string"&&output_manager_default.print(` ${apiMessage}
152
152
  `),error.hint&&output_manager_default.print(` ${error.hint}
@@ -169,7 +169,7 @@ Starting setup...
169
169
  `)}function planSwatch(){return PLAN_COLOR.bold("\u2588 ")}function padName(name){return name.length>=42?`${name} `:name.padEnd(42)}var ALLOWED_PRICING_HOSTS=new Set(["vercel.com","www.vercel.com"]);function isAllowedPricingUrl(url){try{let parsed=new URL(url);return parsed.protocol==="https:"&&ALLOWED_PRICING_HOSTS.has(parsed.hostname)&&parsed.pathname==="/pricing.md"&&parsed.username===""&&parsed.password===""}catch{return!1}}var PricingResponseTooLargeError=class extends Error{constructor(){super("Pricing response exceeded the size limit"),this.name="PricingResponseTooLargeError"}};async function readBoundedText(response,maxBytes=524288){let contentLength=response.headers.get("content-length");if(contentLength){let bytes=Number(contentLength);if(Number.isFinite(bytes)&&bytes>maxBytes)throw new PricingResponseTooLargeError}if(!response.body)throw new Error("Pricing response returned an empty body.");let reader=response.body.getReader(),chunks=[],totalBytes=0;for(;;){let{done,value}=await reader.read();if(done)break;if(value){if(totalBytes+=value.byteLength,totalBytes>maxBytes)throw await reader.cancel(),new PricingResponseTooLargeError;chunks.push(value)}}let buffer=new Uint8Array(totalBytes),offset=0;for(let chunk of chunks)buffer.set(chunk,offset),offset+=chunk.byteLength;return new TextDecoder().decode(buffer)}var PRICING_URL="https://vercel.com/pricing.md",FETCH_TIMEOUT_MS=1e4,MAX_REDIRECTS=3,UNEXPECTED_PRICING_RESPONSE="Failed to parse Vercel pricing. Unexpected response.";async function pricing(client){let telemetry2=new PricingTelemetryClient({opts:{store:client.telemetryEventStore}}),flagsSpecification=getFlagsSpecification(pricingCommand.options),jsonFromArgv=wantsMachineReadableOutput(pricingCommand.name,client.argv),parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return jsonFromArgv||shouldEmitNonInteractiveCommandError(client)?fail(client,!0,{reason:AGENT_REASON.INVALID_ARGUMENTS,message:(0,import_error_utils4.errorToString)(error)}):(printError(error,client),1)}if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("pricing"),output_manager_default.print(help(pricingCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return fail(client,jsonFromArgv,{reason:AGENT_REASON.INVALID_ARGUMENTS,message:formatResult.error});let asJson=formatResult.jsonOutput;telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]);let queryParts=parsedArgs.args.slice(1);telemetry2.trackCliArgumentQuery(queryParts.length>0?queryParts:void 0);let query=queryParts.join(" ").trim()||null,teamInfo=await maybeResolveTeamPlan(client),machineOutput=asJson||shouldEmitNonInteractiveCommandError(client);machineOutput||output_manager_default.spinner("Fetching Vercel pricing\u2026");let fetched=await fetchPricingMarkdown(client,asJson);if(machineOutput||output_manager_default.stopSpinner(),!fetched)return 1;let currentPlan=teamInfo?.normalizedPlan??null,allFeatures=parsePricingMarkdown(fetched.markdown);if(!isValidPricingTable(allFeatures))return fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:UNEXPECTED_PRICING_RESPONSE}),1;let matched=query?allFeatures.filter(feature=>featureMatchesQuery(feature,query)):allFeatures,grouped=splitFeaturesByMinPlan(withCurrentPlanAvailability(matched,currentPlan)),result={plan:teamInfo?.plan??null,team:teamInfo,source:fetched.source,query,summary:{total:allFeatures.length,matched:matched.length,availableOnCurrentPlan:currentPlan?matched.filter(feature=>feature.available[currentPlan]).length:null,unavailableOnCurrentPlan:currentPlan?matched.filter(feature=>!feature.available[currentPlan]).length:null,hobby:grouped.hobby.length,pro:grouped.pro.length,enterprise:grouped.enterprise.length},features:grouped};return asJson?(client.stdout.write(`${JSON.stringify(result,null,2)}
170
170
  `),0):(output_manager_default.print(formatPricing(result)),0)}function resolveTeamPlan(team,user){let plan=team?.billing?.plan||user?.billing?.plan||"hobby";return team?{id:team.id,slug:team.slug,name:team.name,plan,normalizedPlan:normalizePlan(plan)}:{id:user?.id??null,slug:"Personal Account",name:user?.username||user?.email||"Personal Account",plan,normalizedPlan:normalizePlan(plan)}}async function maybeResolveTeamPlan(client){if(!client.authConfig.token)return null;try{let scope=await getScope(client,{resolveLocalScope:!0});return resolveTeamPlan(scope.team,scope.user)}catch(error){return output_manager_default.debug(`Unable to resolve current team plan: ${(0,import_error_utils4.errorToString)(error)}`),null}}async function fetchPricingMarkdown(client,asJson){let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),FETCH_TIMEOUT_MS);timeout.unref?.();try{let url=PRICING_URL;for(let i=0;i<=MAX_REDIRECTS;i++){if(!isAllowedPricingUrl(url)){fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:UNEXPECTED_PRICING_RESPONSE});return}let response=await fetch(url,{redirect:"manual",headers:{accept:"text/markdown, text/plain;q=0.9, */*;q=0.8","user-agent":ua_default},signal:controller.signal});if(response.status>=300&&response.status<400){await response.body?.cancel().catch(()=>{});let location=response.headers.get("location");if(!location){fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:`Failed to fetch Vercel pricing (${response.status}). Try again shortly.`});return}try{url=new URL(location,url).href}catch{fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:UNEXPECTED_PRICING_RESPONSE});return}continue}if(!response.ok){await response.body?.cancel().catch(()=>{}),fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:`Failed to fetch Vercel pricing (${response.status}). Try again shortly.`});return}let markdown=await readBoundedText(response);if(!markdown.includes("| Hobby |")||!markdown.includes("| Pro |")){fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:UNEXPECTED_PRICING_RESPONSE});return}return{markdown,source:url}}fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:UNEXPECTED_PRICING_RESPONSE});return}catch(error){fail(client,asJson,{reason:AGENT_REASON.API_ERROR,message:error instanceof PricingResponseTooLargeError?UNEXPECTED_PRICING_RESPONSE:"Failed to fetch Vercel pricing. Check your connection and try again."});return}finally{clearTimeout(timeout)}}function fail(client,asJson,payload){return asJson||shouldEmitNonInteractiveCommandError(client)?writeAgentError(client,{status:AGENT_STATUS.ERROR,reason:payload.reason,message:payload.message}):output_manager_default.error(payload.message),1}var import_ms4=__toESM(require_ms(),1);var import_error_utils5=__toESM(require_dist(),1);var import_chalk15=__toESM(require_source(),1);var import_chalk12=__toESM(require_source(),1);async function getProjectByDeployment({client,deployId}){let{config}=client,contextName=await getContextName(client);if(!isValidName(deployId))throw new Error(`The provided argument "${deployId}" is not a valid deployment ID or URL`);let deployment,team;try{output_manager_default?.spinner(`Fetching deployment "${deployId}" in ${import_chalk12.default.bold(contextName)}\u2026`);let[teamResult,deploymentResult]=await Promise.allSettled([config.currentTeam?getTeamByIdOrSlug(client,config.currentTeam):void 0,getDeployment(client,contextName,deployId)]);if(teamResult.status==="rejected")throw new Error(`Failed to retrieve team information: ${teamResult.reason}`);if(deploymentResult.status==="rejected")throw new Error(deploymentResult.reason);if(team=teamResult.value,deployment=deploymentResult.value,output_manager_default?.log(`Fetching deployment "${deployId}" in ${import_chalk12.default.bold(contextName)}\u2026`),deployment.team?.id){if(!team||deployment.team.id!==team.id){let err=new Error(team?`Deployment doesn't belong to current team ${import_chalk12.default.bold(contextName)}`:"Deployment belongs to a different team");throw err.code="ERR_INVALID_TEAM",err}}else if(team){let err=new Error(`Deployment doesn't belong to current team ${import_chalk12.default.bold(contextName)}`);throw err.code="ERR_INVALID_TEAM",err}if(!deployment.projectId)throw new Error("Deployment is not associated to a project");let project=await getProjectByNameOrId(client,deployment.projectId);if(project instanceof ProjectNotFound)throw project;return{contextName,deployment,project}}finally{output_manager_default?.stopSpinner()}}var import_ms3=__toESM(require_ms(),1);var import_chalk14=__toESM(require_source(),1);var import_ms2=__toESM(require_ms(),1);var import_chalk13=__toESM(require_source(),1);function renderAliasStatus(status4){return status4==="completed"?import_chalk13.default.green(status4):status4==="failed"?import_chalk13.default.red(status4):status4==="skipped"?import_chalk13.default.gray(status4):import_chalk13.default.yellow(status4)}async function requestRollingRelease({client,projectId,teamId}){let{rollingRelease:rollingRelease2}=await client.fetch(`/v1/projects/${projectId}/rolling-release?teamId=${teamId}`);return rollingRelease2}async function promoteStatus({client,contextName,deployment,project,timeout="3m"}){let recentThreshold=Date.now()-(0,import_ms2.default)("3m"),promoteTimeout=Date.now()+(0,import_ms2.default)(timeout),counter=0,spinnerMessage=deployment?"Promote in progress":`Checking promotion status of ${project.name}`;contextName||(contextName=await getContextName(client));try{for(output_manager_default.spinner(`${spinnerMessage}\u2026`);;){let projectCheck=await getProjectByNameOrId(client,project.id,project.accountId,!0);if(projectCheck instanceof ProjectNotFound)throw projectCheck;if(projectCheck.rollingRelease){output_manager_default.log("Rolling Releases enabled \u2026");let rr=await requestRollingRelease({client,projectId:project.id,teamId:project.accountId});if(rr.activeStage)return output_manager_default.stopSpinner(),output_manager_default.log(`Rolling Release serving traffic at initial percentage ${rr.activeStage.targetPercentage}`),0;continue}let{jobStatus,requestedAt,toDeploymentId,type}=projectCheck.lastAliasRequest??{};if((!jobStatus||jobStatus!=="in-progress"&&jobStatus!=="pending")&&(output_manager_default.stopSpinner(),output_manager_default.log(`${spinnerMessage}\u2026`)),!jobStatus||!requestedAt||!toDeploymentId||requestedAt<recentThreshold)return output_manager_default.log("No deployment promotion in progress"),0;if(jobStatus==="skipped"&&type==="promote")return output_manager_default.log("Promote deployment was skipped"),0;if(jobStatus==="succeeded")return await renderJobSucceeded({client,contextName,performingPromote:!!deployment,requestedAt,project,toDeploymentId});if(jobStatus==="failed")return await renderJobFailed({client,contextName,deployment,project,toDeploymentId});if(jobStatus!=="pending"&&jobStatus!=="in-progress")return output_manager_default.log(`Unknown promote deployment status "${jobStatus}"`),1;if(requestedAt<recentThreshold||Date.now()>=promoteTimeout)return output_manager_default.log(`The promotion exceeded its deadline - rerun ${import_chalk14.default.bold(`${packageName} promote ${toDeploymentId}`)} to try again`),1;counter++===0&&!deployment&&(spinnerMessage+=` requested at ${formatDate(requestedAt)}`),output_manager_default.spinner(`${spinnerMessage}\u2026`),await sleep(250)}}finally{output_manager_default.stopSpinner()}}async function renderJobFailed({client,contextName,deployment,project,toDeploymentId}){try{let name=(deployment||await getDeployment(client,contextName,toDeploymentId))?.url;output_manager_default.error(`Failed to remap all aliases to the requested deployment ${name} (${toDeploymentId})`)}catch{output_manager_default.error(`Failed to remap all aliases to the requested deployment ${toDeploymentId}`)}let nextTimestamp;for(;;){let url=`/v9/projects/${project.id}/promote/aliases?failedOnly=true&limit=20`;nextTimestamp&&(url+=`&until=${nextTimestamp}`);let{aliases,pagination}=await client.fetch(url);for(let{alias,status:status4}of aliases)output_manager_default.log(` ${renderAliasStatus(status4).padEnd(11)} ${alias.alias} (${alias.deploymentId})`);if(pagination?.next)nextTimestamp=pagination.next;else break}return 1}async function renderJobSucceeded({client,contextName,performingPromote,project,requestedAt,toDeploymentId}){let deploymentInfo="";try{let deployment=await getDeployment(client,contextName,toDeploymentId);deploymentInfo=`${import_chalk14.default.bold(deployment.url)} (${toDeploymentId})`}catch(err){output_manager_default.debug(`Failed to get deployment url for ${toDeploymentId}: ${err?.toString()||err}`),deploymentInfo=import_chalk14.default.bold(toDeploymentId)}let duration=performingPromote?elapsed(Date.now()-requestedAt):"";return output_manager_default.log(`Success! ${import_chalk14.default.bold(project.name)} was promoted to ${deploymentInfo} ${duration}`),0}async function requestPromote({client,deployId,timeout,yes}){let{contextName,deployment,project}=await getProjectByDeployment({client,deployId}),promoteByCreation=!1;if(deployment.target!=="production")if(yes)promoteByCreation=!0;else{let question="This deployment is not a production deployment and cannot be directly promoted. A new deployment will be built using your production environment. Are you sure you want to continue?";if(promoteByCreation=await client.input.confirm(question,!1),!promoteByCreation)return output_manager_default.error("Canceled"),0}if(promoteByCreation){let newDeployment=await client.fetch(`/v13/deployments?teamId=${deployment.ownerId}`,{body:{deploymentId:deployment.id,name:project.name,target:"production",meta:{action:"promote"}},accountId:deployment.ownerId,method:"POST"});return output_manager_default.log(`Successfully created new deployment of ${import_chalk15.default.bold(project.name)} at ${newDeployment.inspectorUrl}`),0}return(await client.fetch(`/v10/projects/${project.id}/promote/${deployment.id}`,{body:{},json:!1,method:"POST"})).status===202?(output_manager_default.log("Promotion has been queued and will begin when the active rolling release completes successfully."),0):timeout!==void 0&&(0,import_ms3.default)(timeout)===0?(output_manager_default.log(`Successfully requested promote of ${import_chalk15.default.bold(project.name)} to ${deployment.url} (${deployment.id})`),output_manager_default.log(`To check promote status, run ${getCommandName("promote")}.`),0):await promoteStatus({client,contextName,deployment,project,timeout})}var PromoteTelemetryClient=class extends TelemetryClient{trackCliArgumentDeployment(value){value&&this.trackCliArgument({arg:"urlOrDeploymentId",value:this.redactedValue})}trackCliSubcommandStatus(){this.trackCliSubcommand({subcommand:"status",value:"status"})}trackCliOptionTimeout(time){time&&this.trackCliOption({option:"timeout",value:"[TIME]"})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};var promote_default=async client=>{let parsedArgs,flagsSpecification=getFlagsSpecification(promoteCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let telemetry2=new PromoteTelemetryClient({opts:{store:client.telemetryEventStore}}),needHelp=parsedArgs.flags["--help"];if(!parsedArgs.args[1]&&needHelp)return telemetry2.trackCliFlagHelp("promote"),output_manager_default.print(help(promoteCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let yes=parsedArgs.flags["--yes"]??!1;telemetry2.trackCliFlagYes(parsedArgs.flags["--yes"]);let timeout=parsedArgs.flags["--timeout"];if(timeout&&(0,import_ms4.default)(timeout)===void 0)return output_manager_default.error(`Invalid timeout "${timeout}"`),1;telemetry2.trackCliOptionTimeout(parsedArgs.flags["--timeout"]);let actionOrDeployId=parsedArgs.args[1]||"status";try{if(actionOrDeployId==="status"){if(needHelp)return telemetry2.trackCliFlagHelp("promote","status"),output_manager_default.print(help(statusSubcommand2,{stream:client.stderr,columns:client.stderr.columns,parent:promoteCommand})),0;telemetry2.trackCliSubcommandStatus();let project=await getProjectByCwdOrLink({autoConfirm:parsedArgs.flags["--yes"],client,commandName:"promote",projectNameOrId:parsedArgs.args[2]});return await promoteStatus({client,project,timeout})}return telemetry2.trackCliArgumentDeployment(actionOrDeployId),await requestPromote({client,deployId:actionOrDeployId,timeout,yes})}catch(err){if((0,import_error_utils5.isErrnoException)(err)){if(err.code==="ERR_CANCELED")return 0;if(err.code==="ERR_INVALID_CWD"||err.code==="ERR_LINK_PROJECT")return 1}return output_manager_default.prettyError(err),1}};var import_error_utils6=__toESM(require_dist(),1),import_ms7=__toESM(require_ms(),1);var import_chalk17=__toESM(require_source(),1);var import_ms6=__toESM(require_ms(),1);var import_chalk16=__toESM(require_source(),1);var import_ms5=__toESM(require_ms(),1);async function rollbackStatus({client,contextName,deployment,project,timeout="3m"}){let recentThreshold=Date.now()-(0,import_ms5.default)("3m"),rollbackTimeout=Date.now()+(0,import_ms5.default)(timeout),counter=0,spinnerMessage=deployment?"Rollback in progress":`Checking rollback status of ${project.name}`;contextName||(contextName=await getContextName(client));try{for(output_manager_default.spinner(`${spinnerMessage}\u2026`);;){let projectCheck=await getProjectByNameOrId(client,project.id,project.accountId,!0);if(projectCheck instanceof ProjectNotFound)throw projectCheck;let{jobStatus,requestedAt,toDeploymentId,type}=projectCheck.lastAliasRequest??{};if((!jobStatus||jobStatus!=="in-progress"&&jobStatus!=="pending")&&(output_manager_default.stopSpinner(),output_manager_default.log(`${spinnerMessage}\u2026`)),!jobStatus||!requestedAt||!toDeploymentId||requestedAt<recentThreshold)return output_manager_default.log("No deployment rollback in progress"),0;if(jobStatus==="skipped"&&type==="rollback")return output_manager_default.log("Rollback was skipped"),0;if(jobStatus==="succeeded")return await renderJobSucceeded2({client,contextName,performingRollback:!!deployment,requestedAt,project,toDeploymentId});if(jobStatus==="failed")return await renderJobFailed2({client,contextName,deployment,project,toDeploymentId});if(jobStatus!=="pending"&&jobStatus!=="in-progress")return output_manager_default.log(`Unknown rollback status "${jobStatus}"`),1;if(requestedAt<recentThreshold||Date.now()>=rollbackTimeout)return output_manager_default.log(`The rollback exceeded its deadline - rerun ${import_chalk16.default.bold(`${packageName} rollback ${toDeploymentId}`)} to try again`),1;counter++===0&&!deployment&&(spinnerMessage+=` requested at ${formatDate(requestedAt)}`),output_manager_default.spinner(`${spinnerMessage}\u2026`),await sleep(250)}}finally{output_manager_default.stopSpinner()}}async function renderJobFailed2({client,contextName,deployment,project,toDeploymentId}){try{let name=(deployment||await getDeployment(client,contextName,toDeploymentId))?.url;output_manager_default.error(`Failed to remap all aliases to the requested deployment ${name} (${toDeploymentId})`)}catch{output_manager_default.error(`Failed to remap all aliases to the requested deployment ${toDeploymentId}`)}let nextTimestamp;for(;;){let url=`/v9/projects/${project.id}/rollback/aliases?failedOnly=true&limit=20`;nextTimestamp&&(url+=`&until=${nextTimestamp}`);let{aliases,pagination}=await client.fetch(url);for(let{alias,status:status4}of aliases)output_manager_default.log(` ${renderAliasStatus(status4).padEnd(11)} ${alias.alias} (${alias.deploymentId})`);if(pagination?.next)nextTimestamp=pagination.next;else break}return 1}async function renderJobSucceeded2({client,contextName,performingRollback,project,requestedAt,toDeploymentId}){let deploymentInfo="";try{let deployment=await getDeployment(client,contextName,toDeploymentId);deploymentInfo=`${import_chalk16.default.bold(deployment.url)} (${toDeploymentId})`}catch(err){output_manager_default.debug(`Failed to get deployment url for ${toDeploymentId}: ${err?.toString()||err}`),deploymentInfo=import_chalk16.default.bold(toDeploymentId)}let duration=performingRollback?elapsed(Date.now()-requestedAt):"";return output_manager_default.log(`Success! ${import_chalk16.default.bold(project.name)} was rolled back to ${deploymentInfo} ${duration}`),0}async function requestRollback({client,deployId,timeout}){let{contextName,deployment,project}=await getProjectByDeployment({client,deployId});return await client.fetch(`/v9/projects/${project.id}/rollback/${deployment.id}`,{body:{},method:"POST"}),timeout!==void 0&&(0,import_ms6.default)(timeout)===0?(output_manager_default.log(`Successfully requested rollback of ${import_chalk17.default.bold(project.name)} to ${deployment.url} (${deployment.id})`),output_manager_default.log(`To check rollback status, run ${getCommandName("rollback")}.`),0):await rollbackStatus({client,contextName,deployment,project,timeout})}var RollbackTelemetryClient=class extends TelemetryClient{trackCliArgumentDeployment(value){value&&this.trackCliArgument({arg:"urlOrDeploymentId",value:this.redactedValue})}trackCliSubcommandStatus(){this.trackCliSubcommand({subcommand:"status",value:"status"})}trackCliOptionTimeout(time){time&&this.trackCliOption({option:"timeout",value:"[TIME]"})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};var rollback_default=async client=>{let parsedArgs,flagsSpecification=getFlagsSpecification(rollbackCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}let telemetry2=new RollbackTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry2.trackCliOptionTimeout(parsedArgs.flags["--timeout"]),telemetry2.trackCliFlagYes(parsedArgs.flags["--yes"]);let needHelp=parsedArgs.flags["--help"];if(!parsedArgs.args[1]&&needHelp)return telemetry2.trackCliFlagHelp("rollback"),output_manager_default.print(help(rollbackCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let timeout=parsedArgs.flags["--timeout"];if(timeout&&(0,import_ms7.default)(timeout)===void 0)return output_manager_default.error(`Invalid timeout "${timeout}"`),1;let actionOrDeployId=parsedArgs.args[1]||"status";try{if(actionOrDeployId==="status"){if(needHelp)return telemetry2.trackCliFlagHelp("rollback","status"),output_manager_default.print(help(statusSubcommand3,{stream:client.stderr,columns:client.stderr.columns,parent:rollbackCommand})),0;telemetry2.trackCliSubcommandStatus();let project=await getProjectByCwdOrLink({autoConfirm:parsedArgs.flags["--yes"],client,commandName:"rollback",projectNameOrId:parsedArgs.args[2]});return await rollbackStatus({client,project,timeout})}return await requestRollback({client,deployId:actionOrDeployId,timeout})}catch(err){if((0,import_error_utils6.isErrnoException)(err)){if(err.code==="ERR_CANCELED")return 0;if(err.code==="ERR_INVALID_CWD"||err.code==="ERR_LINK_PROJECT")return 1}return output_manager_default.prettyError(err),1}};async function startRollingRelease({client,dpl,projectId,teamId,yes}){let{deployment}=await getProjectByDeployment({client,deployId:dpl}),promoteByCreation=!1;if(deployment.target!=="production")if(yes)promoteByCreation=!0;else{if(client.nonInteractive)return output_manager_default.error("This deployment is not a production deployment. In non-interactive mode use --yes to create a new production deployment and start the rolling release."),1;{let question="This deployment is not a production deployment and cannot be directly promoted. A new deployment will be built using your production environment. Are you sure you want to continue?";if(promoteByCreation=await client.input.confirm(question,!1),!promoteByCreation)return output_manager_default.error("Canceled"),0}}if(promoteByCreation){let newDeployment=await client.fetch(`/v13/deployments?teamId=${deployment.ownerId}`,{body:{deploymentId:deployment.id,name:projectId,target:"production",meta:{action:"promote"}},accountId:deployment.ownerId,method:"POST"});return output_manager_default.log(`Created production deployment ${newDeployment.id}: ${newDeployment.inspectorUrl}`),0}return await client.fetch(`/v1/projects/${projectId}/rolling-release/start?teamId=${teamId}`,{body:{canaryDeploymentId:deployment.id},json:!0,method:"POST"}),output_manager_default.log(`Requested rolling release start for ${deployment.id}`),0}var import_ms8=__toESM(require_ms(),1);function parseDuration(value){if(!value||/^\d+(s|ms)$/i.test(value))return;let milliseconds=(0,import_ms8.default)(/^\d+$/.test(value)?`${value}m`:value);if(milliseconds===void 0||milliseconds<=0)return;let minutes=Math.round(milliseconds/6e4);if(!(minutes<=0))return minutes}function parseStageFlags(stageFlags,advancementType){let stages=[];for(let stageValue of stageFlags){let parts=stageValue.split(","),percentage=parseInt(parts[0],10);if(isNaN(percentage)||percentage<1||percentage>99)return{stages:null,error:`Invalid stage percentage "${parts[0]}". Must be a number between 1 and 99.`};if(parts.length>1){if(advancementType==="manual-approval")return{stages:null,error:'Duration must not be provided for stages when advancement type is "manual-approval".'};let duration=parseDuration(parts[1]);if(duration===void 0)return{stages:null,error:`Invalid duration "${parts[1]}". Use minutes (e.g. "5m"), hours (e.g. "1h"), or days (e.g. "1d"). Seconds are not supported.`};stages.push({targetPercentage:percentage,duration})}else{if(advancementType==="automatic")return{stages:null,error:'Duration is required for each stage when advancement type is "automatic". Use the format "PERCENTAGE,DURATION" (e.g. "10,5m").'};stages.push({targetPercentage:percentage})}}for(let i=1;i<stages.length;i++)if(stages[i].targetPercentage<=stages[i-1].targetPercentage)return{stages:null,error:"Stage percentages must be in ascending order."};return{stages,error:null}}async function interactiveConfigure(client){if(await client.input.select({message:"Would you like to enable or disable rolling releases?",choices:[{name:"Enable",value:"enable"},{name:"Disable",value:"disable"}]})==="disable")return{config:void 0};let advancementType=await client.input.select({message:"How should stages advance?",choices:[{name:"automatic - Stages advance automatically after a set duration",value:"automatic"},{name:"manual-approval - Each stage requires manual approval to advance",value:"manual-approval"}]}),stages=[],stageNumber=1,addMore=!0;for(;addMore;){let percentageStr=await client.input.text({message:`Enter traffic percentage for stage ${stageNumber} (1-99):`,validate:val=>{let num=parseInt(val,10);return isNaN(num)||num<1||num>99?"Percentage must be a number between 1 and 99.":stages.length>0&&num<=stages[stages.length-1].targetPercentage?`Percentage must be greater than the previous stage (${stages[stages.length-1].targetPercentage}%).`:!0}}),percentage=parseInt(percentageStr,10),duration;if(advancementType==="automatic"){let durationStr=await client.input.text({message:"Enter duration for this stage (e.g. 5m, 1h):",validate:val=>parseDuration(val)===void 0?'Invalid duration. Use minutes (e.g. "5m"), hours (e.g. "1h"), or days (e.g. "1d"). Seconds are not supported.':!0});duration=parseDuration(durationStr)}stages.push({targetPercentage:percentage,duration}),stageNumber++,addMore=await client.input.confirm("Add another stage?",!1)}return output_manager_default.log(""),output_manager_default.log("Rolling release configuration:"),output_manager_default.log(` Advancement: ${advancementType}`),stages.forEach((stage,i)=>{let durationText=stage.duration!==void 0?` for ${stage.duration} minutes`:"";output_manager_default.log(` Stage ${i+1}: ${stage.targetPercentage}%${durationText}`)}),output_manager_default.log(` Stage ${stages.length+1}: 100% (final)`),output_manager_default.log(""),await client.input.confirm("Apply this configuration?",!0)?{config:{enabled:!0,advancementType,stages:[...stages,{targetPercentage:100}]}}:(output_manager_default.log("Configuration cancelled."),{exitCode:0})}function failUsage(client,jsonOutput,reason,message){return jsonOutput?writeAgentError(client,{status:AGENT_STATUS.ERROR,reason,message}):output_manager_default.error(message),{exitCode:2}}async function buildConfigurePayload({client,cfgString,enableFlag,disableFlag,disableName="--no-enable",advancementType,stageFlags,jsonOutput=!1}){if(cfgString!==void 0){if(cfgString==="disable")return{config:void 0};try{return{config:JSON.parse(cfgString)}}catch{return failUsage(client,jsonOutput,AGENT_REASON.INVALID_ARGUMENTS,"Invalid JSON provided for --cfg option.")}}if(disableFlag)return enableFlag?failUsage(client,jsonOutput,AGENT_REASON.INVALID_ARGUMENTS,`Can't use --enable with ${disableName}.`):{config:void 0};if(enableFlag){if(advancementType!=="automatic"&&advancementType!=="manual-approval")return failUsage(client,jsonOutput,"missing_flags",'--advancement-type is required when using --enable. Must be "automatic" or "manual-approval".');if(!stageFlags||stageFlags.length===0)return failUsage(client,jsonOutput,"missing_flags","At least one --stage is required when using --enable.");let parsed=parseStageFlags(stageFlags,advancementType);return parsed.error!==null?failUsage(client,jsonOutput,AGENT_REASON.INVALID_ARGUMENTS,parsed.error):{config:{enabled:!0,advancementType,stages:[...parsed.stages,{targetPercentage:100}]}}}return advancementType!==void 0||stageFlags!==void 0&&stageFlags.length>0?failUsage(client,jsonOutput,"missing_flags","--enable or --no-enable is required when using --advancement-type or --stage options."):client.nonInteractive||jsonOutput?failUsage(client,jsonOutput,"missing_flags","In non-interactive mode use --enable or --no-enable with --advancement-type and --stage as needed. Example: vercel rolling-release update --enable --advancement-type=automatic --stage=10,5m --stage=50,10m"):client.stdin.isTTY?interactiveConfigure(client):failUsage(client,jsonOutput,"missing_flags","Missing configuration options. Use --enable or --no-enable with --advancement-type and --stage, or run interactively in a terminal.")}async function configureRollingRelease({client,projectId,teamId,rollingReleaseConfig,jsonOutput=!1}){let body={...rollingReleaseConfig,enabled:!!rollingReleaseConfig};return await client.fetch(`/v1/projects/${projectId}/rolling-release/config?teamId=${teamId}`,{body,json:!0,method:"PATCH"}),jsonOutput?(client.stdout.write(`${JSON.stringify({rollingReleaseConfig:body,outcome:"updated"},null,2)}
171
171
  `),0):(rollingReleaseConfig?output_manager_default.log("Successfully updated rolling releases."):output_manager_default.log("Successfully disabled rolling releases."),0)}async function approveRollingRelease({client,projectId,teamId,activeStageIndex,dpl}){let{deployment}=await getProjectByDeployment({client,deployId:dpl});return await client.fetch(`/v1/projects/${projectId}/rolling-release/approve-stage?teamId=${teamId}`,{method:"POST",json:!0,body:{activeStageIndex,nextStageIndex:activeStageIndex+1,canaryDeploymentId:deployment.id}}),output_manager_default.log(`Requested rolling release approval from stage ${activeStageIndex} to ${activeStageIndex+1} for ${deployment.id}`),0}async function abortRollingRelease({client,projectId,dpl,teamId}){let{deployment}=await getProjectByDeployment({client,deployId:dpl});return await client.fetch(`/v9/projects/${projectId}/rollback/${deployment.id}?teamId=${teamId}`,{body:{},method:"POST"}),output_manager_default.log(`Requested rolling release abort and rollback to ${deployment.id}`),0}async function completeRollingRelease({client,projectId,teamId,dpl}){let{deployment}=await getProjectByDeployment({client,deployId:dpl});return await client.fetch(`/v1/projects/${projectId}/rolling-release/complete?teamId=${teamId}`,{body:{canaryDeploymentId:deployment.id},json:!0,method:"POST"}),output_manager_default.log(`Requested rolling release completion for ${deployment.id}`),0}var RollingReleaseTelemetryClient=class extends TelemetryClient{trackCliOptionAction(value){this.trackCliOption({option:"action",value:value??""})}trackCliOptionName(name){name&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionCfg(value){this.trackCliOption({option:"cfg",value:value??""})}trackCliOptionDeployment(value){value&&this.trackCliOption({option:"deployment",value:this.redactedValue})}trackCliOptionDpl(value){value&&this.trackCliOption({option:"dpl",value:this.redactedValue})}trackCliOptionCurrentStageIndex(value){this.trackCliOption({option:"currentStageIndex",value:value??""})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandStart(actual){this.trackCliSubcommand({subcommand:"start",value:actual})}trackCliSubcommandApprove(actual){this.trackCliSubcommand({subcommand:"approve",value:actual})}trackCliSubcommandAbort(actual){this.trackCliSubcommand({subcommand:"abort",value:actual})}trackCliSubcommandComplete(actual){this.trackCliSubcommand({subcommand:"complete",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliFlagEnable(value){value&&this.trackCliFlag("enable")}trackCliFlagJson(value){value&&this.trackCliFlag("json")}trackCliFlagNoEnable(value){value&&this.trackCliFlag("no-enable")}trackCliFlagDisable(value){value&&this.trackCliFlag("disable")}trackCliOptionAdvancementType(value){value&&this.trackCliOption({option:"advancement-type",value})}trackCliOptionStage(value){value&&this.trackCliOption({option:"stage",value:value.join(",")})}};var COMMAND_CONFIG11={update:getCommandAliases(configureSubcommand),start:getCommandAliases(startSubcommand),approve:getCommandAliases(approveSubcommand),abort:getCommandAliases(abortSubcommand),complete:getCommandAliases(completeSubcommand),inspect:getCommandAliases(fetchSubcommand)},SUBCOMMANDS={update:configureSubcommand,start:startSubcommand,approve:approveSubcommand,abort:abortSubcommand,complete:completeSubcommand,inspect:fetchSubcommand};function getRollingReleaseSubcommand(subcommand){return typeof subcommand=="string"&&subcommand in SUBCOMMANDS?subcommand:void 0}function buildDeploymentSuggestionCommands(client,subcmd){let args=renameOptionInArgs(client.argv.slice(2),"--dpl","--deployment"),preservedParts=[],listParts=[],hasNonInteractive=!1;for(let i=2;i<args.length;i++){let arg=args[i];if(arg==="--non-interactive"){hasNonInteractive=!0;continue}if(arg.startsWith("--cwd=")){let cwdPath=arg.slice(6);cwdPath&&(preservedParts.push("--cwd",cwdPath),listParts.push("--cwd",cwdPath));continue}if(arg==="--cwd"){i+1<args.length&&(preservedParts.push("--cwd",args[i+1]),listParts.push("--cwd",args[i+1]),i++);continue}if(arg.startsWith("--project=")){let projectName=arg.slice(10);projectName&&listParts.push(projectName),preservedParts.push(arg);continue}if(arg==="--project"||getShortFlagLongName(arg)==="--project"){i+1<args.length&&(listParts.push(args[i+1]),preservedParts.push(arg,args[i+1]),i++);continue}preservedParts.push(arg),listParts.push(arg)}let preservedSuffix=preservedParts.join(" "),listSuffix=listParts.join(" "),listCommand=listSuffix?`${packageName} ls ${listSuffix}`:`${packageName} ls`,base=preservedSuffix?`${packageName} rolling-release ${subcmd} ${preservedSuffix}`:`${packageName} rolling-release ${subcmd}`,defaultSuffix=subcmd==="approve"?"--deployment dpl_123 --currentStageIndex=0":"--deployment dpl_123",subcommandCommand=hasNonInteractive?`${base} ${defaultSuffix} --non-interactive`:`${base} ${defaultSuffix}`;return{listCommand,subcommandCommand}}function outputRollingReleaseErrorWithDeploymentSuggestions(client,subcmd,reason,message){let{listCommand,subcommandCommand}=buildDeploymentSuggestionCommands(client,subcmd);outputAgentError(client,{status:"error",reason,message,next:[{command:listCommand},{command:subcommandCommand}]},1)}function getDeploymentFlag(client,flags,telemetry2){telemetry2.trackCliOptionDeployment(flags["--deployment"]),telemetry2.trackCliOptionDpl(flags["--dpl"]);let deployment=getRenamedOption(flags,"--deployment","--dpl");return"error"in deployment?reportRenamedOptionError(client,deployment.error):deployment.value}async function rollingRelease(client){let telemetry2=new RollingReleaseTelemetryClient({opts:{store:client.telemetryEventStore}}),{subcommand,args:subcommandArgs,subcommandOriginal}=getSubcommand(client.argv.slice(3),COMMAND_CONFIG11),commandIndex=client.argv.length-tokensAfterCommand(client.argv).length-1;client.argv[commandIndex]==="rr"&&warnDeprecatedSubcommand(client,"rr","rolling-release");let needHelp=client.argv.includes("--help")||client.argv.includes("-h");if(!subcommand&&needHelp)return telemetry2.trackCliFlagHelp("rolling-release"),output_manager_default.print(help(rollingReleaseCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:rollingReleaseCommand,columns:client.stderr.columns}))}try{let subcommandName=getRollingReleaseSubcommand(subcommand),subcommandConfig=subcommandName?SUBCOMMANDS[subcommandName]:void 0;if(subcommandConfig&&needHelp)return telemetry2.trackCliFlagHelp("rolling-release",subcommandOriginal),printHelp(subcommandConfig),0;let subcommandFlags,projectName,deployment;if(subcommandConfig){try{subcommandFlags=parseArguments(subcommandArgs,getFlagsSpecification(subcommandConfig.options))}catch(err){if(!isArgumentError(err))throw err;return wantsMachineReadableOutput(void 0,subcommandArgs)?writeAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message:err.message}):printError(err),2}if(projectName=subcommandFlags.flags["--project"],telemetry2.trackCliOptionProject(projectName),subcommandConfig.options.some(({name})=>name==="deployment")){let deploymentFlag=getDeploymentFlag(client,subcommandFlags.flags,telemetry2);if(typeof deploymentFlag=="number")return deploymentFlag;deployment=deploymentFlag}}let link=await resolveProjectContext({client,projectNameOrId:projectName});if(link.status==="error")return link.exitCode;if(link.status==="not_linked")return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_linked",message:"No project found for rolling releases. Specify a project with --project <name-or-id>, or link your project first.",next:[{command:`${packageName} link`}]},1),output_manager_default.error(`No project found. Specify a project with \`--project <name-or-id>\`, or run \`${packageName} link\` to link your project first.`),1;let{project,org}=link;if(client.config.currentTeam=org.type==="team"?org.id:void 0,!subcommandName||!subcommandFlags)return output_manager_default.debug(`Invalid subcommand: ${subcommand}`),output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG11)),output_manager_default.print(help(rollingReleaseCommand,{stream:client.stderr,columns:client.stderr.columns})),2;switch(subcommandName){case"update":{telemetry2.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="configure"&&warnDeprecatedSubcommand(client,"rolling-release configure","rolling-release update");let cfgString=subcommandFlags.flags["--cfg"],enableFlag=subcommandFlags.flags["--enable"],noEnableFlag=subcommandFlags.flags["--no-enable"],disableFlag=subcommandFlags.flags["--disable"],advancementType=subcommandFlags.flags["--advancement-type"],stageFlags=subcommandFlags.flags["--stage"],jsonOutput=subcommandFlags.flags["--json"]??!1;telemetry2.trackCliFlagEnable(enableFlag),telemetry2.trackCliFlagNoEnable(noEnableFlag),telemetry2.trackCliFlagDisable(disableFlag),disableFlag&&!enableFlag&&warnDeprecatedInput(client,"--disable","--no-enable"),telemetry2.trackCliOptionAdvancementType(advancementType),telemetry2.trackCliOptionStage(stageFlags),telemetry2.trackCliFlagJson(jsonOutput);let configResult=await buildConfigurePayload({client,cfgString,enableFlag,disableFlag:noEnableFlag||disableFlag,disableName:noEnableFlag?"--no-enable":"--disable",advancementType,stageFlags,jsonOutput});if(configResult.exitCode!==void 0)return configResult.exitCode;try{await configureRollingRelease({client,projectId:project.id,teamId:org.id,rollingReleaseConfig:configResult.config,jsonOutput})}catch(err){if(jsonOutput&&isAPIError(err))return writeAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message:err.message||"Updating rolling release settings failed."}),1;throw err}break}case"start":{if(deployment===void 0)return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"start","missing_flags","Starting a rolling release in non-interactive mode requires the --deployment option."),output_manager_default.error("starting a rolling release requires --deployment option."),2;try{await startRollingRelease({client,dpl:deployment,projectId:project.id,teamId:project.accountId,yes:subcommandFlags.flags["--yes"]??!1})}catch(err){if(client.nonInteractive&&isAPIError(err))return outputRollingReleaseErrorWithDeploymentSuggestions(client,"start","api_error",err.message||"Starting the rolling release failed for this deployment."),1;throw err}break}case"approve":{let currentStageIndex=subcommandFlags.flags["--currentStageIndex"],activeStageIndex=parseInt(currentStageIndex??"");if(!deployment)return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"approve","missing_flags","Approving a rolling release in non-interactive mode requires --deployment and --currentStageIndex."),output_manager_default.error("Missing required option --deployment"),2;if(currentStageIndex===void 0)return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"approve","missing_flags","Approving a rolling release in non-interactive mode requires --currentStageIndex."),output_manager_default.error("Missing required option --currentStageIndex"),2;if(isNaN(activeStageIndex))return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"approve","invalid_flag","--currentStageIndex must be a valid number."),output_manager_default.error("--currentStageIndex must be a valid number."),2;await approveRollingRelease({client,projectId:project.id,teamId:org.id,activeStageIndex,dpl:deployment});break}case"abort":{if(!deployment)return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"abort","missing_flags","Aborting a rolling release in non-interactive mode requires the --deployment option."),output_manager_default.error("Missing required option --deployment"),2;try{await abortRollingRelease({client,projectId:project.id,teamId:org.id,dpl:deployment})}catch(err){if(client.nonInteractive&&isAPIError(err))return outputRollingReleaseErrorWithDeploymentSuggestions(client,"abort","api_error",err.message||"Aborting the rolling release failed for this deployment."),1;throw err}break}case"complete":{if(!deployment)return client.nonInteractive&&outputRollingReleaseErrorWithDeploymentSuggestions(client,"complete","missing_flags","Completing a rolling release in non-interactive mode requires the --deployment option."),output_manager_default.error("Missing required option --deployment"),2;await completeRollingRelease({client,projectId:project.id,teamId:org.id,dpl:deployment});break}case"inspect":{telemetry2.trackCliSubcommandInspect(subcommandOriginal),subcommandOriginal==="fetch"&&warnDeprecatedSubcommand(client,"rolling-release fetch","rolling-release inspect");let result=await requestRollingRelease({client,projectId:project.id,teamId:org.id});subcommandFlags?.flags["--json"]?client.stdout.write(`${JSON.stringify({rollingRelease:result},null,2)}
172
- `):output_manager_default.log(JSON.stringify(result,null,2));break}}return 0}catch(err){return client.nonInteractive&&isAPIError(err)&&outputAgentError(client,{status:"error",reason:"api_error",message:err.message||"Rolling release command failed."},1),printError(err),1}}function getFlagValue(args,names){let value;for(let i=0;i<args.length;i++){let arg=args[i],[option,inlineValue]=arg.split("=",2);if(names.includes(option)){if(inlineValue!==void 0){value=inlineValue;continue}i+1<args.length&&(value=args[i+1],i++)}}return value}async function sandbox(client){let argv=client.argv.slice(2),commandIndex=argv.indexOf("sandbox"),rootArgs=commandIndex===-1?argv:argv.slice(0,commandIndex),sandboxArgs=commandIndex===-1?[]:argv.slice(commandIndex+1),scope=getFlagValue(rootArgs,["--scope","-S"]),team=getFlagValue(rootArgs,["--team","-T"]),token=getFlagValue(rootArgs,["--token","-t"]),forwardedArgs=[...scope?["--scope",scope]:team?["--team",team]:[],...sandboxArgs],originalCwd=process.cwd(),originalAuthToken=process.env.VERCEL_AUTH_TOKEN;try{token?process.env.VERCEL_AUTH_TOKEN=token:!process.env.VERCEL_AUTH_TOKEN&&process.env.VERCEL_TOKEN?process.env.VERCEL_AUTH_TOKEN=process.env.VERCEL_TOKEN:!process.env.VERCEL_AUTH_TOKEN&&client.authConfig.token&&(process.env.VERCEL_AUTH_TOKEN=client.authConfig.token),process.env.VERCEL_CLI_INVOCATION_ID=client.telemetryEventStore.currentInvocationId,process.chdir(client.cwd);let{createApp}=await import("sandbox");return await createApp({appName:"vercel sandbox",withoutAuth:!1}).run(forwardedArgs),0}catch(error){return printError(error),1}finally{process.chdir(originalCwd),typeof originalAuthToken=="string"?process.env.VERCEL_AUTH_TOKEN=originalAuthToken:delete process.env.VERCEL_AUTH_TOKEN}}var SecurityTelemetryClient=class extends TelemetryClient{trackCliSubcommandCheck(actual){this.trackCliSubcommand({subcommand:"check",value:actual})}};var import_chalk18=__toESM(require_source(),1);var SecurityCheckTelemetryClient=class extends TelemetryClient{trackCliArgumentCheck(checks){checks.length>0&&this.trackCliArgument({arg:"check",value:checks.join(",")})}trackCliFlagFindings(findings){findings&&this.trackCliFlag("findings")}trackCliOptionLimit(limit){limit!==void 0&&this.trackCliOption({option:"limit",value:String(limit)})}trackCliOptionFormat(format){format&&this.trackCliOption({option:"format",value:format})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var SECURITY_CHECKS=[{slug:"members-no-mfa",description:"Team members without multi-factor authentication",risk:"high"},{slug:"members-too-many-owners",description:"Team owners to review",risk:"high"},{slug:"pats-no-expiration",description:"PATs that never expire",risk:"high"},{slug:"env-vars-creds-instead-of-oidc",description:"Long-lived credentials where OIDC is available",risk:"high"},{slug:"depl-no-git-fork-protection",description:"Projects without Git fork deploy prevention",risk:"high"},{slug:"proj-no-preview-depl-protection",description:"Projects without preview deployment protection",risk:"high"},{slug:"env-vars-non-sensitive",description:"Environment variables not marked Sensitive",risk:"medium"},{slug:"env-vars-non-sensitive-stale",description:"Environment variables older than 90 days",risk:"medium"},{slug:"env-vars-exposed-web-app-fwk",description:"Environment variables exposed via web application framework",risk:"medium"}];function isKnownCheck(slug){return SECURITY_CHECKS.some(check3=>check3.slug===slug)}async function check(client,argv){let telemetry2=new SecurityCheckTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(checkSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args:checks,flags:opts}=parsedArgs,unknown=checks.filter(slug=>!isKnownCheck(slug));if(unknown.length>0){let message=`Unknown check${unknown.length===1?"":"s"}: ${unknown.join(", ")}. Valid slugs: ${SECURITY_CHECKS.map(check3=>check3.slug).join(", ")}`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"security check <slug>"),when:"Re-run with a valid check slug (replace placeholder)"},{command:buildCommandWithGlobalFlags(client.argv,"security check --help"),when:"See all options and examples"}]}),output_manager_default.error(`Unknown check${unknown.length===1?"":"s"}: ${unknown.join(", ")}. Valid slugs:
172
+ `):output_manager_default.log(JSON.stringify(result,null,2));break}}return 0}catch(err){return client.nonInteractive&&isAPIError(err)&&outputAgentError(client,{status:"error",reason:"api_error",message:err.message||"Rolling release command failed."},1),printError(err),1}}function getFlagValue(args,names){let value;for(let i=0;i<args.length;i++){let arg=args[i],[option,inlineValue]=arg.split("=",2);if(names.includes(option)){if(inlineValue!==void 0){value=inlineValue;continue}i+1<args.length&&(value=args[i+1],i++)}}return value}async function sandbox(client){let argv=client.argv.slice(2),commandIndex=argv.indexOf("sandbox"),rootArgs=commandIndex===-1?argv:argv.slice(0,commandIndex),sandboxArgs=commandIndex===-1?[]:argv.slice(commandIndex+1),scope=getFlagValue(rootArgs,["--scope","-S"]),team=getFlagValue(rootArgs,["--team","-T"]),token=getFlagValue(rootArgs,["--token","-t"]),forwardedArgs=[...scope?["--scope",scope]:team?["--team",team]:[],...sandboxArgs],originalCwd=process.cwd(),originalAuthToken=process.env.VERCEL_AUTH_TOKEN;try{token?process.env.VERCEL_AUTH_TOKEN=token:!process.env.VERCEL_AUTH_TOKEN&&process.env.VERCEL_TOKEN?process.env.VERCEL_AUTH_TOKEN=process.env.VERCEL_TOKEN:!process.env.VERCEL_AUTH_TOKEN&&client.authConfig.token&&(process.env.VERCEL_AUTH_TOKEN=client.authConfig.token),process.env.VERCEL_CLI_INVOCATION_ID=client.telemetryEventStore.currentInvocationId,process.chdir(client.cwd);let{createApp}=await import("sandbox");return await createApp({appName:"vercel sandbox",withoutAuth:!1}).run(forwardedArgs),Number(process.exitCode??0)}catch(error){return printError(error),1}finally{process.chdir(originalCwd),typeof originalAuthToken=="string"?process.env.VERCEL_AUTH_TOKEN=originalAuthToken:delete process.env.VERCEL_AUTH_TOKEN}}var SecurityTelemetryClient=class extends TelemetryClient{trackCliSubcommandCheck(actual){this.trackCliSubcommand({subcommand:"check",value:actual})}};var import_chalk18=__toESM(require_source(),1);var SecurityCheckTelemetryClient=class extends TelemetryClient{trackCliArgumentCheck(checks){checks.length>0&&this.trackCliArgument({arg:"check",value:checks.join(",")})}trackCliFlagFindings(findings){findings&&this.trackCliFlag("findings")}trackCliOptionLimit(limit){limit!==void 0&&this.trackCliOption({option:"limit",value:String(limit)})}trackCliOptionFormat(format){format&&this.trackCliOption({option:"format",value:format})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var SECURITY_CHECKS=[{slug:"members-no-mfa",description:"Team members without multi-factor authentication",risk:"high"},{slug:"members-too-many-owners",description:"Team owners to review",risk:"high"},{slug:"pats-no-expiration",description:"PATs that never expire",risk:"high"},{slug:"env-vars-creds-instead-of-oidc",description:"Long-lived credentials where OIDC is available",risk:"high"},{slug:"depl-no-git-fork-protection",description:"Projects without Git fork deploy prevention",risk:"high"},{slug:"proj-no-preview-depl-protection",description:"Projects without preview deployment protection",risk:"high"},{slug:"env-vars-non-sensitive",description:"Environment variables not marked Sensitive",risk:"medium"},{slug:"env-vars-non-sensitive-stale",description:"Environment variables older than 90 days",risk:"medium"},{slug:"env-vars-exposed-web-app-fwk",description:"Environment variables exposed via web application framework",risk:"medium"}];function isKnownCheck(slug){return SECURITY_CHECKS.some(check3=>check3.slug===slug)}async function check(client,argv){let telemetry2=new SecurityCheckTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(checkSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args:checks,flags:opts}=parsedArgs,unknown=checks.filter(slug=>!isKnownCheck(slug));if(unknown.length>0){let message=`Unknown check${unknown.length===1?"":"s"}: ${unknown.join(", ")}. Valid slugs: ${SECURITY_CHECKS.map(check3=>check3.slug).join(", ")}`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"security check <slug>"),when:"Re-run with a valid check slug (replace placeholder)"},{command:buildCommandWithGlobalFlags(client.argv,"security check --help"),when:"See all options and examples"}]}),output_manager_default.error(`Unknown check${unknown.length===1?"":"s"}: ${unknown.join(", ")}. Valid slugs:
173
173
  ${SECURITY_CHECKS.map(check3=>check3.slug).join(`
174
174
  `)}`),2}let limit=opts["--limit"];if(limit!==void 0&&(!Number.isInteger(limit)||limit<1))return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:"`--limit` must be a positive integer.",next:[{command:buildCommandWithGlobalFlags(client.argv,"security check --limit <N>"),when:"Re-run with a positive integer (replace placeholder)"}]}),output_manager_default.error("`--limit` must be a positive integer."),2;let formatResult=validateJsonOutput(opts);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive;telemetry2.trackCliArgumentCheck(checks),telemetry2.trackCliOptionFormat(opts["--format"]),telemetry2.trackCliFlagFindings(opts["--findings"]),telemetry2.trackCliOptionLimit(limit),telemetry2.trackCliOptionProject(opts["--project"]),telemetry2.trackCliFlagJson(opts["--json"]);let{team,contextName}=await getScope(client);if(!team)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_SCOPE,message:"Security checks require a team scope. Run `vercel switch` to select a team.",next:[{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"See current user and team"},{command:buildCommandWithGlobalFlags(client.argv,"teams switch"),when:"Switch to a team"}]}),output_manager_default.error(`Security checks require a team scope. Run ${getCommandName("switch")} to select a team.`),1;let params=new URLSearchParams({teamId:team.id,maxSamples:String(limit??100)});for(let slug of checks)params.append("facets",slug);let project=opts["--project"];project&&params.set("projectIdOrName",project);let dashStamp=stamp_default();output_manager_default.spinner(checks.length>0?"Computing security checks\u2026":"Computing security report\u2026");let data;try{data=await client.fetch(`/dashboard/security-dashboard?${params}`)}catch(error){output_manager_default.stopSpinner();let status4=isAPIError(error)?error.status:void 0;return outputAgentError(client,{status:"error",reason:status4===401||status4===403?"not_authorized":status4===429?"rate_limited":AGENT_REASON.API_ERROR,message:isAPIError(error)&&error.serverMessage||"The security report request failed.",next:[{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"Verify the authenticated user and team"}]}),printError(error),1}if(output_manager_default.stopSpinner(),asJson)return client.stdout.write(`${JSON.stringify(data,null,2)}
175
175
  `),0;let rows=SECURITY_CHECKS.filter(check3=>checks.length===0||checks.includes(check3.slug)).map(check3=>({check:check3,posture:data.report[check3.slug]})),counts={failing:0,passing:0,muted:0,unavailable:0};for(let{posture}of rows)counts[statusOf(posture)]++;let summary=[`${rows.length} ${rows.length===1?"check":"checks"}`,counts.failing>0&&import_chalk18.default.red(`${counts.failing} failing`),counts.muted>0&&import_chalk18.default.yellow(`${counts.muted} muted`),counts.unavailable>0&&import_chalk18.default.gray(`${counts.unavailable} unavailable`),counts.passing>0&&import_chalk18.default.green(`${counts.passing} passing`)].filter(Boolean).join(" \xB7 ");if(output_manager_default.log(`${summary} under ${import_chalk18.default.bold(contextName)} ${import_chalk18.default.gray(dashStamp())}`),output_manager_default.print(formatSummaryTable(rows).replace(/^(.*)/gm," $1")),output_manager_default.print(`
@@ -204,7 +204,7 @@ Learn more: ${import_chalk21.default.cyan("https://vercel.com/docs/cli/about-tel
204
204
  `),updateCommand&&output_manager_default.print(`Upgrade command: ${updateCommand}
205
205
  `),output_manager_default.print(`Automatic updates: ${isAutoUpdateEnabled(client.config)?"Enabled":"Disabled"}
206
206
  `),requestedPreference&&output_manager_default.print(`Would ${requestedPreference.enabled?"enable":"disable"} ${requestedPreference.label}. No settings changed.
207
- `);return 0}if(disableMinReleaseAgeBypass)return setMinReleaseAgeBypass(client,!1),output_manager_default.success("Minimum release-age bypass disabled."),0;if(enableAuto||disableAuto){let enabled=!!enableAuto;return setAutoUpdate(client,enabled),output_manager_default.success(`Automatic CLI updates ${enabled?"enabled":"disabled"}.`),0}return installerManaged?installProductionRelease({version:target,skipIfCurrent:!target}):homebrewManaged?executeHomebrewUpgrade():executeUpgrade(target,client,bypassMinReleaseAge,!!target)}var VcrTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandLogin(actual){this.trackCliSubcommand({subcommand:"login",value:actual})}trackCliSubcommandBuild(actual){this.trackCliSubcommand({subcommand:"build",value:actual})}trackCliSubcommandPush(actual){this.trackCliSubcommand({subcommand:"push",value:actual})}trackCliArgumentEngine(value){value&&this.trackCliArgument({arg:"engine",value})}trackCliArgumentPath(value){value&&this.trackCliArgument({arg:"path",value:this.redactedValue})}trackCliArgumentName(value){value&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionPlatform(value){if(value){let known=value==="linux/amd64"||value==="linux/arm64";this.trackCliOption({option:"platform",value:known?value:this.redactedValue})}}trackCliSubcommandTag(actual){this.trackCliSubcommand({subcommand:"tag",value:actual})}trackCliSubcommandImage(actual){this.trackCliSubcommand({subcommand:"image",value:actual})}trackCliSubcommandPermissions(actual){this.trackCliSubcommand({subcommand:"permissions",value:actual})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(value){value&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionCursor(value){value&&this.trackCliOption({option:"cursor",value:this.redactedValue})}trackCliOptionSortBy(value){value&&this.trackCliOption({option:"sort-by",value})}trackCliOptionSortOrder(value){value&&this.trackCliOption({option:"sort-order",value})}trackCliOptionPublic(value){(value==="true"||value==="false")&&this.trackCliOption({option:"public",value})}trackCliFlagPublic(value){value&&this.trackCliFlag("public")}trackCliFlagNoPublic(value){value&&this.trackCliFlag("no-public")}trackCliFlagUntagged(value){value&&this.trackCliFlag("untagged")}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}trackCliFlagPush(value){value&&this.trackCliFlag("push")}};var COMMAND_CONFIG15={ls:getCommandAliases(listSubcommand6),inspect:getCommandAliases(inspectSubcommand3),add:getCommandAliases(addSubcommand2),update:getCommandAliases(configSubcommand),delete:getCommandAliases(removeSubcommand2),login:getCommandAliases(loginSubcommand),build:getCommandAliases(buildSubcommand),push:getCommandAliases(pushSubcommand),tag:getCommandAliases(tagsAggregateCommand),image:getCommandAliases(imageAggregateCommand),permissions:getCommandAliases(permissionsAggregateCommand)};async function vcr(client){let telemetry2=new VcrTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(vcrCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,args,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG15),needHelp=parsedArgs.flags["--help"];function printHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:vcrCommand,columns:client.stderr.columns}))}if(needHelp)switch(subcommand){case"ls":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(listSubcommand6),0;case"inspect":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(inspectSubcommand3),0;case"add":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(addSubcommand2),0;case"update":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(configSubcommand),0;case"delete":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(removeSubcommand2),0;case"login":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(loginSubcommand),0;case"build":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(buildSubcommand),0;case"push":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(pushSubcommand),0;case"tag":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(tagsLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(tagsInspectSubcommand),0):(printHelp(tagsAggregateCommand),0)}case"image":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(imageLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(imageInspectSubcommand),0):getCommandAliases(imageRmSubcommand).includes(nested)?(printHelp(imageRmSubcommand),0):(printHelp(imageAggregateCommand),0)}case"permissions":{let printPermissionsActionHelp2=function(command){output_manager_default.print(help(command,{stream:client.stderr,parent:{...vcrCommand,name:"vcr permissions repository"},columns:client.stderr.columns}))};var printPermissionsActionHelp=printPermissionsActionHelp2;telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args.slice(0,2),hasAction=aliases=>nested.some(arg=>arg!==void 0&&aliases.includes(arg));return hasAction(PERMISSIONS_ACTIONS.ls)?(printPermissionsActionHelp2(permissionsLsSubcommand),0):hasAction(PERMISSIONS_ACTIONS.add)?(printPermissionsActionHelp2(permissionsAddSubcommand),0):hasAction(PERMISSIONS_ACTIONS.rm)?(printPermissionsActionHelp2(permissionsRmSubcommand),0):hasAction(PERMISSIONS_ACTIONS.clear)?(printPermissionsActionHelp2(permissionsClearSubcommand),0):(printHelp(permissionsAggregateCommand),0)}default:return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),output_manager_default.print(help(vcrCommand,{stream:client.stderr,columns:client.stderr.columns})),0}switch(subcommand){case"ls":return telemetry2.trackCliSubcommandLs(subcommandOriginal),(await import("./chunks/ls-GSMTVAMC.js")).default(client,args,telemetry2);case"inspect":return telemetry2.trackCliSubcommandInspect(subcommandOriginal),subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"vcr get","vcr inspect"),(await import("./chunks/inspect-ZUHCIZFW.js")).default(client,args,telemetry2);case"add":return telemetry2.trackCliSubcommandCreate(subcommandOriginal),subcommandOriginal==="add"&&warnDeprecatedSubcommand(client,"vcr add","vcr create"),(await import("./chunks/add-O4YI4D5H.js")).default(client,args,telemetry2);case"update":return telemetry2.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="config"&&warnDeprecatedSubcommand(client,"vcr config","vcr update"),(await import("./chunks/config-PR2PEOA7.js")).default(client,args,telemetry2);case"delete":return telemetry2.trackCliSubcommandDelete(subcommandOriginal),subcommandOriginal==="remove"&&warnDeprecatedSubcommand(client,"vcr remove","vcr delete"),(await import("./chunks/rm-TDI6GXCE.js")).default(client,args,telemetry2);case"login":return telemetry2.trackCliSubcommandLogin(subcommandOriginal),(await import("./chunks/login-E6L7CG3P.js")).default(client,args,telemetry2);case"build":return telemetry2.trackCliSubcommandBuild(subcommandOriginal),(await import("./chunks/build-UOKGUTFN.js")).default(client,telemetry2);case"push":return telemetry2.trackCliSubcommandPush(subcommandOriginal),(await import("./chunks/push-PHTW37LC.js")).default(client,telemetry2);case"tag":return telemetry2.trackCliSubcommandTag(subcommandOriginal),(await import("./chunks/tags-WUAMDEUU.js")).default(client,args,telemetry2);case"image":return telemetry2.trackCliSubcommandImage(subcommandOriginal),(await import("./chunks/image-SYY2IBOV.js")).default(client,args,telemetry2);case"permissions":return telemetry2.trackCliSubcommandPermissions(subcommandOriginal),(await import("./chunks/permissions-T2KL34JP.js")).default(client,args,telemetry2);default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG15)),output_manager_default.print(help(vcrCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var import_chalk25=__toESM(require_source(),1);async function status3(client){let context=await getVersionContext();if(output_manager_default.print(`Version: ${context.version}
207
+ `);return 0}if(disableMinReleaseAgeBypass)return setMinReleaseAgeBypass(client,!1),output_manager_default.success("Minimum release-age bypass disabled."),0;if(enableAuto||disableAuto){let enabled=!!enableAuto;return setAutoUpdate(client,enabled),output_manager_default.success(`Automatic CLI updates ${enabled?"enabled":"disabled"}.`),0}return installerManaged?installProductionRelease({version:target,skipIfCurrent:!target}):homebrewManaged?executeHomebrewUpgrade():executeUpgrade(target,client,bypassMinReleaseAge,!!target)}var VcrTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandLogin(actual){this.trackCliSubcommand({subcommand:"login",value:actual})}trackCliSubcommandBuild(actual){this.trackCliSubcommand({subcommand:"build",value:actual})}trackCliSubcommandPush(actual){this.trackCliSubcommand({subcommand:"push",value:actual})}trackCliArgumentEngine(value){value&&this.trackCliArgument({arg:"engine",value})}trackCliArgumentPath(value){value&&this.trackCliArgument({arg:"path",value:this.redactedValue})}trackCliArgumentName(value){value&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionPlatform(value){if(value){let known=value==="linux/amd64"||value==="linux/arm64";this.trackCliOption({option:"platform",value:known?value:this.redactedValue})}}trackCliSubcommandTag(actual){this.trackCliSubcommand({subcommand:"tag",value:actual})}trackCliSubcommandImage(actual){this.trackCliSubcommand({subcommand:"image",value:actual})}trackCliSubcommandPermissions(actual){this.trackCliSubcommand({subcommand:"permissions",value:actual})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(value){value&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionCursor(value){value&&this.trackCliOption({option:"cursor",value:this.redactedValue})}trackCliOptionSortBy(value){value&&this.trackCliOption({option:"sort-by",value})}trackCliOptionSortOrder(value){value&&this.trackCliOption({option:"sort-order",value})}trackCliOptionPublic(value){(value==="true"||value==="false")&&this.trackCliOption({option:"public",value})}trackCliFlagPublic(value){value&&this.trackCliFlag("public")}trackCliFlagNoPublic(value){value&&this.trackCliFlag("no-public")}trackCliFlagUntagged(value){value&&this.trackCliFlag("untagged")}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}trackCliFlagPush(value){value&&this.trackCliFlag("push")}};var COMMAND_CONFIG15={ls:getCommandAliases(listSubcommand6),inspect:getCommandAliases(inspectSubcommand3),add:getCommandAliases(addSubcommand2),update:getCommandAliases(configSubcommand),delete:getCommandAliases(removeSubcommand2),login:getCommandAliases(loginSubcommand),build:getCommandAliases(buildSubcommand),push:getCommandAliases(pushSubcommand),tag:getCommandAliases(tagsAggregateCommand),image:getCommandAliases(imageAggregateCommand),permissions:getCommandAliases(permissionsAggregateCommand)};async function vcr(client){let telemetry2=new VcrTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(vcrCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,args,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG15),needHelp=parsedArgs.flags["--help"];function printHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:vcrCommand,columns:client.stderr.columns}))}if(needHelp)switch(subcommand){case"ls":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(listSubcommand6),0;case"inspect":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(inspectSubcommand3),0;case"add":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(addSubcommand2),0;case"update":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(configSubcommand),0;case"delete":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(removeSubcommand2),0;case"login":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(loginSubcommand),0;case"build":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(buildSubcommand),0;case"push":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(pushSubcommand),0;case"tag":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(tagsLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(tagsInspectSubcommand),0):(printHelp(tagsAggregateCommand),0)}case"image":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(imageLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(imageInspectSubcommand),0):getCommandAliases(imageRmSubcommand).includes(nested)?(printHelp(imageRmSubcommand),0):(printHelp(imageAggregateCommand),0)}case"permissions":{let printPermissionsActionHelp2=function(command){output_manager_default.print(help(command,{stream:client.stderr,parent:{...vcrCommand,name:"vcr permissions repository"},columns:client.stderr.columns}))};var printPermissionsActionHelp=printPermissionsActionHelp2;telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args.slice(0,2),hasAction=aliases=>nested.some(arg=>arg!==void 0&&aliases.includes(arg));return hasAction(PERMISSIONS_ACTIONS.ls)?(printPermissionsActionHelp2(permissionsLsSubcommand),0):hasAction(PERMISSIONS_ACTIONS.add)?(printPermissionsActionHelp2(permissionsAddSubcommand),0):hasAction(PERMISSIONS_ACTIONS.rm)?(printPermissionsActionHelp2(permissionsRmSubcommand),0):hasAction(PERMISSIONS_ACTIONS.clear)?(printPermissionsActionHelp2(permissionsClearSubcommand),0):(printHelp(permissionsAggregateCommand),0)}default:return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),output_manager_default.print(help(vcrCommand,{stream:client.stderr,columns:client.stderr.columns})),0}switch(subcommand){case"ls":return telemetry2.trackCliSubcommandLs(subcommandOriginal),(await import("./chunks/ls-UY3KCDSF.js")).default(client,args,telemetry2);case"inspect":return telemetry2.trackCliSubcommandInspect(subcommandOriginal),subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"vcr get","vcr inspect"),(await import("./chunks/inspect-OM5S5YQ2.js")).default(client,args,telemetry2);case"add":return telemetry2.trackCliSubcommandCreate(subcommandOriginal),subcommandOriginal==="add"&&warnDeprecatedSubcommand(client,"vcr add","vcr create"),(await import("./chunks/add-GLCVYEEN.js")).default(client,args,telemetry2);case"update":return telemetry2.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="config"&&warnDeprecatedSubcommand(client,"vcr config","vcr update"),(await import("./chunks/config-GOYBATSI.js")).default(client,args,telemetry2);case"delete":return telemetry2.trackCliSubcommandDelete(subcommandOriginal),subcommandOriginal==="remove"&&warnDeprecatedSubcommand(client,"vcr remove","vcr delete"),(await import("./chunks/rm-7H5O3T7G.js")).default(client,args,telemetry2);case"login":return telemetry2.trackCliSubcommandLogin(subcommandOriginal),(await import("./chunks/login-EPBJQDEK.js")).default(client,args,telemetry2);case"build":return telemetry2.trackCliSubcommandBuild(subcommandOriginal),(await import("./chunks/build-6RK6VECG.js")).default(client,telemetry2);case"push":return telemetry2.trackCliSubcommandPush(subcommandOriginal),(await import("./chunks/push-ETLU6OCC.js")).default(client,telemetry2);case"tag":return telemetry2.trackCliSubcommandTag(subcommandOriginal),(await import("./chunks/tags-CRG27GFL.js")).default(client,args,telemetry2);case"image":return telemetry2.trackCliSubcommandImage(subcommandOriginal),(await import("./chunks/image-YLUF7SHR.js")).default(client,args,telemetry2);case"permissions":return telemetry2.trackCliSubcommandPermissions(subcommandOriginal),(await import("./chunks/permissions-4ZYPHPOZ.js")).default(client,args,telemetry2);default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG15)),output_manager_default.print(help(vcrCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var import_chalk25=__toESM(require_source(),1);async function status3(client){let context=await getVersionContext();if(output_manager_default.print(`Version: ${context.version}
208
208
  `),output_manager_default.print(`Runtime: ${describeRuntime(context)}
209
209
  `),output_manager_default.print(`Managed by: ${describeManager(context)}
210
210
  `),context.manager==="installer"){if(output_manager_default.print(`Active version: ${context.activeVersion??context.version}