@vercel/cli-support 65.4.0 → 65.5.0-snapshot-8a613d8ad85d

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 (307) hide show
  1. package/README.md +22 -0
  2. package/dist/chunks/add-6UOKR26K.js +8 -0
  3. package/dist/chunks/add-GULZ6EGJ.js +8 -0
  4. package/dist/chunks/add-RPAOJH5O.js +8 -0
  5. package/dist/chunks/build-MLAKPRSC.js +7 -0
  6. package/dist/chunks/{chunk-ADLBLGT3.js → chunk-26QK3I2S.js} +1 -1
  7. package/dist/chunks/chunk-2BKALEOP.js +7 -0
  8. package/dist/chunks/chunk-2FHZYQPY.js +7 -0
  9. package/dist/chunks/{chunk-TIPQQ4TG.js → chunk-2QIJEHNE.js} +1 -1
  10. package/dist/chunks/{chunk-JP33AIDQ.js → chunk-36NK2Z3C.js} +1 -1
  11. package/dist/chunks/{chunk-D6REP5QQ.js → chunk-3E364MJE.js} +1 -1
  12. package/dist/chunks/{chunk-EEUJLJEJ.js → chunk-3H36RI7C.js} +1 -1
  13. package/dist/chunks/{chunk-JUSR7V2L.js → chunk-3NG2EYQ5.js} +1 -1
  14. package/dist/chunks/{chunk-AYUUSAB7.js → chunk-4G7ZQONX.js} +1 -1
  15. package/dist/chunks/{chunk-SYFG2RM6.js → chunk-4HJGSSSZ.js} +1 -1
  16. package/dist/chunks/{chunk-CWM2F235.js → chunk-55H6G46X.js} +1 -1
  17. package/dist/chunks/{chunk-6TXEVQA4.js → chunk-5CZNUB7Y.js} +1 -1
  18. package/dist/chunks/{chunk-ZN6CQWVP.js → chunk-5EMSOR2P.js} +1 -1
  19. package/dist/chunks/{chunk-NAX6IARA.js → chunk-5K426HWC.js} +1 -1
  20. package/dist/chunks/{chunk-773GOZIR.js → chunk-5SIC5273.js} +1 -1
  21. package/dist/chunks/chunk-5WYPJ2T5.js +25 -0
  22. package/dist/chunks/{chunk-MBEKRUTQ.js → chunk-6IATT2ID.js} +2 -2
  23. package/dist/chunks/{chunk-KPQLUGFI.js → chunk-6WMO5G45.js} +3 -3
  24. package/dist/chunks/{chunk-6OVX3PWM.js → chunk-75JI2SZX.js} +1 -1
  25. package/dist/chunks/{chunk-ECEDD646.js → chunk-7G4PQR6J.js} +1 -1
  26. package/dist/chunks/chunk-7SAEZ4NC.js +7 -0
  27. package/dist/chunks/{chunk-363SJ4TN.js → chunk-7VTPAXDC.js} +1 -1
  28. package/dist/chunks/chunk-A2UZ2O7H.js +7 -0
  29. package/dist/chunks/{chunk-3LIKVGFT.js → chunk-A3RU52F4.js} +1 -1
  30. package/dist/chunks/{chunk-CC6FLKIP.js → chunk-AIRQFG5A.js} +1 -1
  31. package/dist/chunks/{chunk-IOZ3I765.js → chunk-AOC6XXOO.js} +1 -1
  32. package/dist/chunks/{chunk-EISD3RG7.js → chunk-ARQMFBV4.js} +1 -1
  33. package/dist/chunks/{chunk-UHBMX3OK.js → chunk-AUY363W7.js} +1 -1
  34. package/dist/chunks/chunk-BGWS5R5R.js +9 -0
  35. package/dist/chunks/chunk-C6IITJ5S.js +7 -0
  36. package/dist/chunks/{chunk-OHEOYFBU.js → chunk-CLVEFWEX.js} +1 -1
  37. package/dist/chunks/{chunk-KGBIRIFF.js → chunk-CU2FTX57.js} +1 -1
  38. package/dist/chunks/{chunk-YHULP2KK.js → chunk-CWO4HMKU.js} +1 -1
  39. package/dist/chunks/{chunk-EU2GBIPC.js → chunk-CZINAGH6.js} +1 -1
  40. package/dist/chunks/{chunk-QIVX6SCR.js → chunk-DAUAVRFC.js} +1 -1
  41. package/dist/chunks/{chunk-GA277JFB.js → chunk-DPM33VFZ.js} +1 -1
  42. package/dist/chunks/{chunk-Q5ODLDCU.js → chunk-DSY2S2YT.js} +1 -1
  43. package/dist/chunks/{chunk-XP3FT56R.js → chunk-DWOJP4ST.js} +3 -3
  44. package/dist/chunks/chunk-ED3VA7D4.js +7 -0
  45. package/dist/chunks/{chunk-GG5RME4X.js → chunk-EE2FTI3R.js} +1 -1
  46. package/dist/chunks/{chunk-QVZAAMGQ.js → chunk-EFEQQXRU.js} +1 -1
  47. package/dist/chunks/{chunk-DKJL2KV7.js → chunk-EPO7P734.js} +1 -1
  48. package/dist/chunks/{chunk-7QAGSRCU.js → chunk-EQT2VHL2.js} +1 -1
  49. package/dist/chunks/chunk-ETEVOJQJ.js +8 -0
  50. package/dist/chunks/chunk-EWP5WICJ.js +10 -0
  51. package/dist/chunks/chunk-F22QLVTX.js +7 -0
  52. package/dist/chunks/{chunk-XC46OAAT.js → chunk-FAEC4BER.js} +1 -1
  53. package/dist/chunks/{chunk-LSQREJXO.js → chunk-FAELJM4F.js} +1 -1
  54. package/dist/chunks/{chunk-7R6TRRG5.js → chunk-FNA4MIOH.js} +1 -1
  55. package/dist/chunks/{chunk-L3JYCXVB.js → chunk-GFD6UAAO.js} +2 -2
  56. package/dist/chunks/{chunk-U2OBPULW.js → chunk-GP55VEOQ.js} +1 -1
  57. package/dist/chunks/{chunk-FSPPKNKN.js → chunk-GVPVWHFK.js} +1 -1
  58. package/dist/chunks/{chunk-527GBU3K.js → chunk-HMWDOAWO.js} +1 -1
  59. package/dist/chunks/{chunk-7L2K4OKM.js → chunk-HVDGNAPM.js} +1 -1
  60. package/dist/chunks/{chunk-QVHXFHBV.js → chunk-I2WEQWCA.js} +1 -1
  61. package/dist/chunks/{chunk-JRPNHWA3.js → chunk-IC3THLYP.js} +1 -1
  62. package/dist/chunks/{chunk-IQKGQ2Y2.js → chunk-J6L5MDTX.js} +1 -1
  63. package/dist/chunks/{chunk-YMZ6WBKB.js → chunk-JCGEXU7T.js} +3 -3
  64. package/dist/chunks/{chunk-7L5QUDUR.js → chunk-JGMJP4T3.js} +1 -1
  65. package/dist/chunks/{chunk-ZQBSAMFL.js → chunk-JHNLBVO2.js} +1 -1
  66. package/dist/chunks/{chunk-HTXDC7E2.js → chunk-JMLKK7RL.js} +2 -2
  67. package/dist/chunks/{chunk-T6243EDS.js → chunk-JSAY52FE.js} +1 -1
  68. package/dist/chunks/{chunk-C7FQMC6D.js → chunk-JWUXHL35.js} +1 -1
  69. package/dist/chunks/{chunk-KQCROPL3.js → chunk-JXAEI2GJ.js} +1 -1
  70. package/dist/chunks/{chunk-VNIKIQVE.js → chunk-KHADRPBJ.js} +1 -1
  71. package/dist/chunks/{chunk-GCZVIDNG.js → chunk-KWKEBKUR.js} +1 -1
  72. package/dist/chunks/chunk-KY7LDQRX.js +7 -0
  73. package/dist/chunks/{chunk-YEZJNXQX.js → chunk-L4XLDN6T.js} +1 -1
  74. package/dist/chunks/{chunk-EGNR2DEI.js → chunk-LOO42IMZ.js} +1 -1
  75. package/dist/chunks/{chunk-CBVKB3DT.js → chunk-LT5UZRMK.js} +1 -1
  76. package/dist/chunks/{chunk-FUX6LKNP.js → chunk-LUX4PBJL.js} +1 -1
  77. package/dist/chunks/chunk-M7LUSXMG.js +7 -0
  78. package/dist/chunks/{chunk-ANMDN3EG.js → chunk-MFW6IJIK.js} +1 -1
  79. package/dist/chunks/{chunk-UGNIIDHR.js → chunk-MLGQ233X.js} +1 -1
  80. package/dist/chunks/chunk-MY4MONOH.js +7 -0
  81. package/dist/chunks/{chunk-N6JBQMOF.js → chunk-MZQEDXOH.js} +1 -1
  82. package/dist/chunks/chunk-N5CXIFE2.js +7 -0
  83. package/dist/chunks/{chunk-LQVSU5HR.js → chunk-NM44RWS6.js} +1 -1
  84. package/dist/chunks/{chunk-FHU2O7ZJ.js → chunk-NVNE3W7S.js} +1 -1
  85. package/dist/chunks/chunk-NZPGWZLV.js +9 -0
  86. package/dist/chunks/{chunk-462YCCJZ.js → chunk-O7COT3YB.js} +1 -1
  87. package/dist/chunks/{chunk-KY335KWI.js → chunk-ODAV7Z2H.js} +1 -1
  88. package/dist/chunks/{chunk-HCRD3JFL.js → chunk-OKNDHNH6.js} +1 -1
  89. package/dist/chunks/{chunk-Q4KTAQB3.js → chunk-OQX4YVGU.js} +1 -1
  90. package/dist/chunks/chunk-ORJBK5FT.js +9 -0
  91. package/dist/chunks/{chunk-5KUUMQ3M.js → chunk-OTYF3ZZW.js} +1 -1
  92. package/dist/chunks/{chunk-FGFLTLEA.js → chunk-P6ZTEDX2.js} +1 -1
  93. package/dist/chunks/{chunk-O72YDZKD.js → chunk-PHHZ6J7Q.js} +1 -1
  94. package/dist/chunks/{chunk-RMZTB2IU.js → chunk-PRFIFS3Q.js} +1 -1
  95. package/dist/chunks/{chunk-R2XHJDAP.js → chunk-QDPYU6KS.js} +1 -1
  96. package/dist/chunks/{chunk-JLEJB6KM.js → chunk-QHM6OK76.js} +1 -1
  97. package/dist/chunks/{chunk-CR3NBTHV.js → chunk-QNL22LAW.js} +1 -1
  98. package/dist/chunks/{chunk-5V53NA6C.js → chunk-QUSEBFDO.js} +1 -1
  99. package/dist/chunks/{chunk-DQ2SVW4R.js → chunk-R3BEQTZZ.js} +1 -1
  100. package/dist/chunks/{chunk-BUJITHGZ.js → chunk-RCUDI7OF.js} +1 -1
  101. package/dist/chunks/{chunk-Y5ZMKL7E.js → chunk-RMW2FDXS.js} +1 -1
  102. package/dist/chunks/{chunk-KRPY5FHJ.js → chunk-RQVIMYKN.js} +1 -1
  103. package/dist/chunks/chunk-RWPQOJTT.js +22 -0
  104. package/dist/chunks/{chunk-2TUVL6WE.js → chunk-SDOPVIKJ.js} +1 -1
  105. package/dist/chunks/{chunk-3XW7N4W3.js → chunk-SKSOCUDZ.js} +1 -1
  106. package/dist/chunks/chunk-SLDWAIO3.js +18 -0
  107. package/dist/chunks/{chunk-JWCEHQQF.js → chunk-SW3JRXUW.js} +1 -1
  108. package/dist/chunks/{chunk-M2NXKZKX.js → chunk-TGOGYSBO.js} +1 -1
  109. package/dist/chunks/chunk-TZT3VYZ3.js +7 -0
  110. package/dist/chunks/{chunk-F6EBOT64.js → chunk-UJQ6PBRF.js} +1 -1
  111. package/dist/chunks/{chunk-BVGGTBYE.js → chunk-UWMPVTXG.js} +1 -1
  112. package/dist/chunks/{chunk-R6BEOVTU.js → chunk-VAWZZK3Y.js} +1 -1
  113. package/dist/chunks/{chunk-4N6LMERQ.js → chunk-VLYVVC3P.js} +11 -11
  114. package/dist/chunks/{chunk-HSFKISDH.js → chunk-VQ755MPP.js} +1 -1
  115. package/dist/chunks/{chunk-QB7F3UAP.js → chunk-VUQWLLNI.js} +1 -1
  116. package/dist/chunks/chunk-VWHIWUGJ.js +7 -0
  117. package/dist/chunks/chunk-WDUHDLUA.js +14 -0
  118. package/dist/chunks/{chunk-K5U47EVH.js → chunk-WICRM2JL.js} +1 -1
  119. package/dist/chunks/{chunk-KJA2GKPT.js → chunk-WSVYZKI6.js} +1 -1
  120. package/dist/chunks/{chunk-N2FLYCCO.js → chunk-XAU3KTPX.js} +1 -1
  121. package/dist/chunks/chunk-XCKUJZUG.js +10 -0
  122. package/dist/chunks/{chunk-WDXW6A4H.js → chunk-XE24Y6NM.js} +2 -2
  123. package/dist/chunks/{chunk-RW3X523R.js → chunk-XSQVCDSD.js} +1 -1
  124. package/dist/chunks/{chunk-KW6GSQXV.js → chunk-XTKGBVSF.js} +1 -1
  125. package/dist/chunks/{chunk-2K3ISCQ6.js → chunk-YALEYPMP.js} +1 -1
  126. package/dist/chunks/chunk-YCJHUYBJ.js +19 -0
  127. package/dist/chunks/{chunk-TEYREL44.js → chunk-YIRSRF6D.js} +1 -1
  128. package/dist/chunks/chunk-YQDOADMG.js +10 -0
  129. package/dist/chunks/{chunk-PFPJLIFF.js → chunk-YT3QAZQF.js} +1 -1
  130. package/dist/chunks/{chunk-R2BUF6Z7.js → chunk-ZQUVDDPB.js} +1 -1
  131. package/dist/chunks/{chunk-XVDRGWXM.js → chunk-ZUNQHI5Y.js} +1 -1
  132. package/dist/chunks/{chunk-KQCFC2JL.js → chunk-ZUYPTLVO.js} +1 -1
  133. package/dist/chunks/clear-UZWOOGOH.js +8 -0
  134. package/dist/chunks/compile-vercel-config-2RQDL3RD.js +7 -0
  135. package/dist/chunks/config-C76IGJ6B.js +8 -0
  136. package/dist/chunks/config-RMJWRS7O.js +7 -0
  137. package/dist/chunks/{connect-git-provider-FS5Q2HO4.js → connect-git-provider-IQ7N2NPY.js} +1 -1
  138. package/dist/chunks/delete-2WBR5JQW.js +9 -0
  139. package/dist/chunks/delete-OKOBDL7Z.js +10 -0
  140. package/dist/chunks/{detect-projects-OD4JEAW2.js → detect-projects-XPB3R7VS.js} +1 -1
  141. package/dist/chunks/detect-services-DRHV22O5.js +7 -0
  142. package/dist/chunks/disable-DFEABU2Z.js +7 -0
  143. package/dist/chunks/discard-KGBEMNFT.js +14 -0
  144. package/dist/chunks/edit-5XIRLUKG.js +9 -0
  145. package/dist/chunks/edit-PJIDMKUS.js +8 -0
  146. package/dist/chunks/enable-UDWDPFOI.js +7 -0
  147. package/dist/chunks/{exec-OZSY46V6.js → exec-PX4GTZNE.js} +1 -1
  148. package/dist/chunks/{export-EPLYZF2Q.js → export-W75EA6EQ.js} +1 -1
  149. package/dist/chunks/future-PHSAEQIE.js +7 -0
  150. package/dist/chunks/generate-cert-for-deploy-C67VL5Z6.js +7 -0
  151. package/dist/chunks/image-U5CV2PRP.js +7 -0
  152. package/dist/chunks/import-builders-PHIIX7HW.js +7 -0
  153. package/dist/chunks/inspect-AU3MX7E2.js +13 -0
  154. package/dist/chunks/{inspect-CZ7WXYE5.js → inspect-DQQI3PM7.js} +1 -1
  155. package/dist/chunks/inspect-LJK7I6RZ.js +9 -0
  156. package/dist/chunks/{inspect-T2AIREYK.js → inspect-RNWLPR7I.js} +1 -1
  157. package/dist/chunks/{inspect-HFDGZNWC.js → inspect-WHPWW4BI.js} +1 -1
  158. package/dist/chunks/list-JV26NNYL.js +16 -0
  159. package/dist/chunks/{list-ON4YTQRN.js → list-QNRFVMMQ.js} +1 -1
  160. package/dist/chunks/list-YF4FXWUZ.js +12 -0
  161. package/dist/chunks/login-A4KNOUNA.js +9 -0
  162. package/dist/chunks/login-COGE7JQU.js +7 -0
  163. package/dist/chunks/logs-KMQATUYR.js +7 -0
  164. package/dist/chunks/{ls-FK5XEJEU.js → ls-DTFLHFOW.js} +1 -1
  165. package/dist/chunks/{ls-A7K4XDQB.js → ls-FOKMPVIB.js} +1 -1
  166. package/dist/chunks/ls-HMYU2ZGA.js +11 -0
  167. package/dist/chunks/{ls-2HUJHVLA.js → ls-IHF33MQP.js} +1 -1
  168. package/dist/chunks/{ls-QGUKJJY5.js → ls-QD54I4S7.js} +1 -1
  169. package/dist/chunks/{ls-3DVM5HLK.js → ls-RNRMYD3V.js} +1 -1
  170. package/dist/chunks/ls-ZQLCDIQJ.js +8 -0
  171. package/dist/chunks/mutate-RMIFQOF6.js +9 -0
  172. package/dist/chunks/notifications-BFBNV2HY.js +7 -0
  173. package/dist/chunks/open-L6HEXHAI.js +7 -0
  174. package/dist/chunks/openapi-6JKCOR7K.js +7 -0
  175. package/dist/chunks/permissions-UYGTYRKA.js +7 -0
  176. package/dist/chunks/{plugin-offer-TEGYA3TA.js → plugin-offer-NBHRXMNR.js} +1 -1
  177. package/dist/chunks/prompt-missing-credentials-2IYIF2JI.js +7 -0
  178. package/dist/chunks/publish-T2VSTPG4.js +15 -0
  179. package/dist/chunks/pull-4GL47Z2S.js +7 -0
  180. package/dist/chunks/purchase-domain-if-available-BHFBD3LW.js +7 -0
  181. package/dist/chunks/push-CQPIDVTL.js +7 -0
  182. package/dist/chunks/{query-FXXLX6UB.js → query-HN45ORIB.js} +1 -1
  183. package/dist/chunks/reauthenticate-FTHGAWK3.js +7 -0
  184. package/dist/chunks/reorder-7BD5JZKQ.js +10 -0
  185. package/dist/chunks/reply-2INQJ5KM.js +9 -0
  186. package/dist/chunks/resolve-DHAJC3I7.js +12 -0
  187. package/dist/chunks/resolve-agent-team-KGYPHN5F.js +7 -0
  188. package/dist/chunks/restore-OQKNWEFQ.js +16 -0
  189. package/dist/chunks/rm-CTP4UZH7.js +8 -0
  190. package/dist/chunks/rm-GFHEXQQW.js +8 -0
  191. package/dist/chunks/rm-OG3OXA6H.js +8 -0
  192. package/dist/chunks/rm-PFZYHXEN.js +8 -0
  193. package/dist/chunks/rm-XAW3WJ3I.js +8 -0
  194. package/dist/chunks/{routes-PKTWMDWQ.js → routes-XKEWEA3P.js} +1 -1
  195. package/dist/chunks/rule-inspect-MKQE5IVJ.js +8 -0
  196. package/dist/chunks/{schema-ZWE5MNMG.js → schema-TFN5PSYE.js} +2 -2
  197. package/dist/chunks/schema-XFER2RCF.js +14 -0
  198. package/dist/chunks/select-org-PFTR6HQZ.js +7 -0
  199. package/dist/chunks/set-KWOZNGRL.js +7 -0
  200. package/dist/chunks/setup-and-link-BRYK42L7.js +7 -0
  201. package/dist/chunks/{skills-RKIGVVNM.js → skills-2MOFBKIE.js} +1 -1
  202. package/dist/chunks/tags-BHZUQTOQ.js +7 -0
  203. package/dist/chunks/{types-YM7TMHXW.js → types-IWO5QLAV.js} +1 -1
  204. package/dist/chunks/{update-BGDQ5TXO.js → update-LP7ZZUFZ.js} +1 -1
  205. package/dist/commands/build/index.js +2 -2
  206. package/dist/commands/deploy/index.js +8 -8
  207. package/dist/commands/dev/index.js +6 -6
  208. package/dist/commands/env/index.js +3 -3
  209. package/dist/commands/link/index.js +2 -2
  210. package/dist/commands/list/index.js +1 -1
  211. package/dist/commands/project/index.js +4 -4
  212. package/dist/commands-account.js +18 -18
  213. package/dist/commands-ai.js +12 -12
  214. package/dist/commands-blob.js +7 -7
  215. package/dist/commands-core.js +23 -23
  216. package/dist/commands-deployments.js +3 -3
  217. package/dist/commands-flags.js +29 -29
  218. package/dist/commands-integrations.js +98 -83
  219. package/dist/commands-observability.js +4 -4
  220. package/dist/commands-routing.js +23 -23
  221. package/dist/help.js +1 -1
  222. package/dist/index.js +7 -7
  223. package/dist/internal-build.js +2 -2
  224. package/dist/native-download.js +7 -0
  225. package/dist/package.json +27 -26
  226. package/dist/root-help-commands.mjs +1 -1
  227. package/dist/vc.js +172 -17
  228. package/dist/version.mjs +1 -1
  229. package/package.json +20 -19
  230. package/dist/chunks/add-7NS6HIWC.js +0 -8
  231. package/dist/chunks/add-NMYFDVXW.js +0 -8
  232. package/dist/chunks/add-PMJ5BECU.js +0 -8
  233. package/dist/chunks/build-BCY6HQJG.js +0 -7
  234. package/dist/chunks/chunk-5IWFRZQT.js +0 -10
  235. package/dist/chunks/chunk-6I6QJHCY.js +0 -7
  236. package/dist/chunks/chunk-6VH56CX2.js +0 -19
  237. package/dist/chunks/chunk-6YXIWZ3X.js +0 -25
  238. package/dist/chunks/chunk-7E3WREH5.js +0 -7
  239. package/dist/chunks/chunk-EAXMWCOL.js +0 -63
  240. package/dist/chunks/chunk-EKZTFGDX.js +0 -7
  241. package/dist/chunks/chunk-FLHO75XC.js +0 -8
  242. package/dist/chunks/chunk-GYVJIIYL.js +0 -7
  243. package/dist/chunks/chunk-JLE7K4SY.js +0 -9
  244. package/dist/chunks/chunk-KCKYPLIH.js +0 -7
  245. package/dist/chunks/chunk-LOBA3E72.js +0 -7
  246. package/dist/chunks/chunk-LW4N3CW6.js +0 -9
  247. package/dist/chunks/chunk-NGKO2OOU.js +0 -8
  248. package/dist/chunks/chunk-NW7WWUCQ.js +0 -9
  249. package/dist/chunks/chunk-O4WNSKQR.js +0 -15
  250. package/dist/chunks/chunk-OZCQTXI4.js +0 -7
  251. package/dist/chunks/chunk-QVXS234E.js +0 -7
  252. package/dist/chunks/chunk-SLGUYM42.js +0 -10
  253. package/dist/chunks/chunk-TAISZMA2.js +0 -7
  254. package/dist/chunks/chunk-WEH6XC4Y.js +0 -22
  255. package/dist/chunks/chunk-WVHCBDTB.js +0 -7
  256. package/dist/chunks/clear-FKVWDCVA.js +0 -8
  257. package/dist/chunks/compile-vercel-config-GWAJE44R.js +0 -7
  258. package/dist/chunks/config-5WVLG5SE.js +0 -8
  259. package/dist/chunks/config-RMOHN5YT.js +0 -7
  260. package/dist/chunks/delete-5WMB4WFR.js +0 -9
  261. package/dist/chunks/delete-EM4JZPFA.js +0 -10
  262. package/dist/chunks/detect-services-BSJGB4RM.js +0 -7
  263. package/dist/chunks/disable-QOM7UHQC.js +0 -7
  264. package/dist/chunks/discard-L5ZH7P5B.js +0 -14
  265. package/dist/chunks/edit-F3VJGCG2.js +0 -9
  266. package/dist/chunks/edit-TM7YCWBU.js +0 -8
  267. package/dist/chunks/enable-72C3QX34.js +0 -7
  268. package/dist/chunks/future-V77DRMQG.js +0 -7
  269. package/dist/chunks/generate-cert-for-deploy-Y3YHBMPU.js +0 -7
  270. package/dist/chunks/image-CVXEXU5R.js +0 -7
  271. package/dist/chunks/import-builders-PGRKJOOE.js +0 -7
  272. package/dist/chunks/inspect-BTRNXRJT.js +0 -9
  273. package/dist/chunks/inspect-FGDVWAQP.js +0 -13
  274. package/dist/chunks/list-CKRRHAOE.js +0 -12
  275. package/dist/chunks/list-FLREMGJR.js +0 -16
  276. package/dist/chunks/login-55LJ5ZA6.js +0 -9
  277. package/dist/chunks/login-DQRZSD4Z.js +0 -7
  278. package/dist/chunks/logs-2HQXWOHM.js +0 -7
  279. package/dist/chunks/ls-4B3QYHCI.js +0 -8
  280. package/dist/chunks/ls-VTKHPDWS.js +0 -11
  281. package/dist/chunks/mutate-7ADZBCZM.js +0 -9
  282. package/dist/chunks/notifications-XZJXE2K4.js +0 -7
  283. package/dist/chunks/open-EE5IZQD7.js +0 -7
  284. package/dist/chunks/openapi-QBX62ZXC.js +0 -7
  285. package/dist/chunks/permissions-VYJ4LL5R.js +0 -7
  286. package/dist/chunks/prompt-missing-credentials-VP6OVCFM.js +0 -7
  287. package/dist/chunks/publish-2HEK5UMJ.js +0 -15
  288. package/dist/chunks/pull-WRTTSY7J.js +0 -7
  289. package/dist/chunks/purchase-domain-if-available-6S3NLTUI.js +0 -7
  290. package/dist/chunks/push-L3QRGGLC.js +0 -7
  291. package/dist/chunks/reauthenticate-IXQDC4UZ.js +0 -7
  292. package/dist/chunks/reorder-B4OXSYCI.js +0 -10
  293. package/dist/chunks/reply-F637K6XH.js +0 -9
  294. package/dist/chunks/resolve-E3F6NYQZ.js +0 -12
  295. package/dist/chunks/resolve-agent-team-EIPCH766.js +0 -7
  296. package/dist/chunks/restore-Q25KRZPH.js +0 -16
  297. package/dist/chunks/rm-FWD2NUGX.js +0 -8
  298. package/dist/chunks/rm-JMQ4QKCC.js +0 -8
  299. package/dist/chunks/rm-PPG7P3GN.js +0 -8
  300. package/dist/chunks/rm-SH3DYKNS.js +0 -8
  301. package/dist/chunks/rm-UEBLKFVC.js +0 -8
  302. package/dist/chunks/rule-inspect-LKQA5I4V.js +0 -8
  303. package/dist/chunks/schema-FBV42W7N.js +0 -14
  304. package/dist/chunks/select-org-WMB752Z6.js +0 -7
  305. package/dist/chunks/set-UTYIPOLC.js +0 -7
  306. package/dist/chunks/setup-and-link-ZLY5XQW5.js +0 -7
  307. package/dist/chunks/tags-UCLZ5UMX.js +0 -7
@@ -4,6 +4,6 @@ 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{humanizeIdentifier}from"./chunk-GHAY4PSD.js";import{indent_default}from"./chunk-GZNDA6SV.js";import{table}from"./chunk-773GOZIR.js";function renderAlertTable(rows,hsep=3){return indent_default(table(rows,{hsep}).split(`
7
+ import{indent_default}from"./chunk-GZNDA6SV.js";import{humanizeIdentifier}from"./chunk-GHAY4PSD.js";import{table}from"./chunk-5SIC5273.js";function renderAlertTable(rows,hsep=3){return indent_default(table(rows,{hsep}).split(`
8
8
  `).map(line=>line.trimEnd()).join(`
9
9
  `),2)}function normalizeTimestamp(value){if(!(value===void 0||!Number.isFinite(value)))return Math.abs(value)<1e12?value*1e3:value}function getPrimaryAlert(group){return group.alerts?.[0]}function getGroupTitle(group){return group.ai?.title||group.title||getPrimaryAlert(group)?.title||"Alert group"}function getGroupType(group){return group.type||getPrimaryAlert(group)?.type||"-"}function getGroupStartedAt(group){let primaryAlert=getPrimaryAlert(group);return normalizeTimestamp(group.recordedStartedAt??primaryAlert?.recordedStartedAt??primaryAlert?.startedAt)}function formatTriggerOperator(value){switch(value){case"gt":return">";case"gte":return">=";case"lt":return"<";case"lte":return"<=";default:return}}function humanizeReference(value,opts={}){return value.split("/").map(part=>{let label=humanizeIdentifier(part);return opts.case==="title"?label:label.toLowerCase()}).join(" / ")}export{renderAlertTable,normalizeTimestamp,getGroupTitle,getGroupType,getGroupStartedAt,formatTriggerOperator,humanizeReference};
@@ -0,0 +1,18 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{require_string_width}from"./chunk-67GZ5REA.js";import{require_strip_ansi}from"./chunk-BS32OUOC.js";import{require_dist}from"./chunk-PUKYAALC.js";import{getShortFlags,globalCommandOptions}from"./chunk-A2UZ2O7H.js";import{chars_default}from"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1),stdoutLevel=import_chalk.default.supportsColor?import_chalk.default.supportsColor.level:0,stderrLevel=import_chalk.default.stderr.supportsColor?import_chalk.default.stderr.supportsColor.level:0,noColorFlag=!1;function configureHelpOutput(noColor){noColorFlag=!!noColor}function createHelpTheme(stream=process.stdout,options={}){let disabled=(options.noColor??noColorFlag)||!!process.env.NO_COLOR||process.env.FORCE_COLOR==="0"||process.env.TERM==="dumb"||!stream.isTTY,detected=stream===process.stderr?stderrLevel:stdoutLevel,level=disabled?0:options.level??(/^[123]$/.test(process.env.FORCE_COLOR??"")?1:detected),style=new import_chalk.default.Instance({level});return{description:text=>style.dim(text),heading:text=>style.bold.magenta(text),emphasis:text=>style.bold(text),reference:text=>style.bold(text),command:text=>style.cyan(text),link:text=>style.underline(text)}}var import_string_width=__toESM(require_string_width(),1);var import_strip_ansi=__toESM(require_strip_ansi(),1),CONTROL_CHARACTERS=/[\u0000-\u001F\u007F-\u009F]/g,FORMAT_CHARACTERS=/[\u200B-\u200F\u202A-\u202E\u2060-\u2069\uFEFF]/g;function remoteText(value){return(0,import_strip_ansi.default)(value).replace(/\r?\n/g,"\\n").replace(CONTROL_CHARACTERS,"").replace(FORMAT_CHARACTERS,"")}function helpLiterals(values){return values.flatMap((text,index)=>[...index?[{text:" | "}]:[],{text,literal:!0}])}function helpSyntaxWidth(values){return Math.max(0,...values.map(value=>(0,import_string_width.default)(remoteText(value))))}function helpPlaceholders(values,markers=[]){let commands=values.map(remoteText);return[...new Set(markers.map(remoteText))].filter(marker=>/^<[^<>\r\n]+>$/.test(marker)&&commands.some(command=>command.includes(marker)))}function helpColumns(columns=80){return Number.isFinite(columns)&&columns>0?Math.max(1,Math.floor(columns)):80}function helpHeading(title,theme=createHelpTheme()){return theme.heading(`${remoteText(title)}:`)}function helpUsage(theme=createHelpTheme()){return theme.emphasis(chars_default.triangle)}function helpInlineCommand(command){return`\`${remoteText(command)}\``}function wrapHelpText(text,columns,indent=" "){return text.split(`
8
+ `).flatMap(paragraph=>{let safe=remoteText(paragraph.replace(/\t/g," "));if(/^ *$/.test(safe))return[""];let prefix=indent+(safe.match(/^ */)?.[0]??""),lines=[],line=prefix;for(let match of safe.replace(/^ +| +$/g,"").matchAll(/( *)([^ ]+)/g)){let[,whitespace,word]=match,separator=line===prefix?"":whitespace;line!==prefix&&(0,import_string_width.default)(`${line}${separator}${word}`)>columns?(lines.push(line),line=prefix+word):line+=separator+word}return lines.push(line),lines}).join(`
9
+ `)}function helpRows(rows,columns,theme=createHelpTheme(),minimumSyntaxWidth=0){if(!rows.length)return"";let safeRows=rows.map(row=>{let safe=(typeof row.syntax=="string"?[{text:row.syntax}]:row.syntax).map(span=>({...span,text:remoteText(span.text)}));return{syntax:safe.map(span=>span.text).join(""),styled:safe.map(span=>span.literal?theme.reference(span.text):span.text).join(""),description:row.description.trim()}}),syntaxWidth=Math.max(minimumSyntaxWidth,...safeRows.map(row=>(0,import_string_width.default)(row.syntax))),descriptionColumn=syntaxWidth+4,stacked=columns-descriptionColumn<28;return safeRows.map(({syntax,styled,description})=>{if(!description)return` ${styled}`;if(stacked)return` ${styled}
10
+ ${wrapHelpText(description,columns," ")}`;let prefix=" ".repeat(descriptionColumn),wrapped=wrapHelpText(description,columns,prefix);return` ${styled}${" ".repeat(syntaxWidth-(0,import_string_width.default)(syntax)+2)}${wrapped.slice(prefix.length)}`}).join(`
11
+ `)}function helpSection(title,body,theme=createHelpTheme()){return body.trim()?`${helpHeading(title,theme)}
12
+ ${body}`:""}function helpCommandNames(command){return[command.name]}function helpCommand(command,placeholders=[],theme=createHelpTheme()){let safe=remoteText(command);return` ${helpPlaceholders([safe],placeholders).length>0?safe:theme.command(safe)}`}var import_constants=__toESM(require_dist(),1);var NEWLINE=`
13
+ `;function lineToString(line){let string="";for(let i=0;i<line.length;i++)if(i===line.length-1)string+=line[i];else{let curr=line[i],next=line[i+1];string+=curr,curr.trim()!==""&&next.trim()!==""&&(string+=" ")}return string}var commandPaths=new WeakMap,commandAncestors=new WeakMap;function registerCommandPaths(roots){let visit=(command,ancestors)=>{let path=[...ancestors.map(ancestor=>ancestor.name),command.name];commandPaths.has(command)||(commandPaths.set(command,path),commandAncestors.set(command,ancestors));for(let subcommand of command.subcommands??[])visit(subcommand,[...ancestors,command])};for(let root of roots)visit(root,[])}function getCommandPath(command,parent){let registered=commandPaths.get(command);return registered||(parent?[parent.name,command.name]:[command.name])}function argumentSynopsis(argument){return`${argument.required?`<${argument.name}>`:`[${argument.name}]`}${argument.multiple?"...":""}`}function buildCommandSynopsisLine(command,parent,theme=createHelpTheme()){let line=[helpUsage(theme),theme.reference(import_constants.NAME)],ancestors=commandAncestors.get(command)??(parent?[parent]:[]);for(let[index,name]of getCommandPath(command,parent).entries()){line.push(theme.reference(remoteText(name)));let ancestor=ancestors[index];if(ancestor?.argumentsBeforeSubcommand)for(let argument of ancestor.arguments??[])line.push(argumentSynopsis(argument))}let args=command.arguments.slice(0);if(command.subcommands?.some(subcommand=>!subcommand.hidden)&&(args.length===0||command.argumentsBeforeSubcommand)&&args.push({name:"command",required:!command.runsWithoutSubcommand&&!command.subcommands.some(subcommand=>subcommand.default)}),args.length>0)for(let argument of args)line.push(argumentSynopsis(argument));return command.options.some(option=>!option.deprecated&&option.description!==void 0)&&line.push("[options]"),lineToString(line)}function buildCommandOptionLines(commandOptions,options,sectionTitle){let filteredCommandOptions=commandOptions.filter(option=>!option.deprecated&&option.description!==void 0);return filteredCommandOptions.length===0?null:(filteredCommandOptions.sort((a,b)=>a.name<b.name?-1:a.name>b.name?1:0),helpSection(sectionTitle,helpRows(filteredCommandOptions.map(option=>({syntax:[...option.shorthand?[{text:`-${option.shorthand}`,literal:!0},{text:", "}]:[],{text:`--${option.name}`,literal:!0},{text:option.argument?` <${option.argument}>`:""}],description:option.description??""})),options.columns,options.theme),options.theme))}function buildSubcommandLines(subcommands,options,title="Commands"){let visible=subcommands?.filter(command=>!command.hidden);return visible?.length?helpSection(title,helpRows(visible.map(command=>({syntax:[...helpLiterals(helpCommandNames(command)),...command.arguments.map(argument=>({text:` ${argumentSynopsis(argument)}`}))],description:`${command.summary??command.description}${command.default?" (default)":""}`})),options.columns,options.theme),options.theme):null}function buildCommandExampleLines(command,columns=80,theme=createHelpTheme()){return command.examples?.length?helpSection("Examples",command.examples.map(example=>{let values=Array.isArray(example.value)?example.value:[example.value],placeholders=helpPlaceholders(values,example.placeholders);return[wrapHelpText(example.name,columns),...values.map(value=>helpCommand(value,placeholders,theme))].join(NEWLINE)}).join(`
14
+
15
+ `),theme):null}function buildCommandDocumentationLines(command,options){if(options.omitDocumentation)return null;let documentation=command.documentation??options.parent?.documentation;if(!documentation)return null;let theme=options.theme;return helpSection(documentation.label,` ${theme.link(remoteText(documentation.url))}`,theme)}function buildHelpOutput(command,input){let options={...input,theme:input.theme??createHelpTheme(input.stream)},globalOptions=globalCommandOptions.filter(opt=>"description"in opt&&!command.disabledGlobalOptions?.includes(opt.name)),sections=command.helpSections??[],buildSection=section=>helpSection(section.title,[helpRows(section.rows??[],options.columns,options.theme),section.body.map(line=>{if(typeof line!="string"){let placeholders=helpPlaceholders([line.command],line.placeholders);return(placeholders.length?`${wrapHelpText(`Replace ${placeholders.join(", ")} before running:`,options.columns)}
16
+ `:"")+helpCommand(line.command,placeholders,options.theme)}return line===""?"":section.preformatted?` ${remoteText(line)}`:wrapHelpText(line,options.columns)}).join(NEWLINE)].filter(Boolean).join(NEWLINE),options.theme),globalPointer=`See ${helpInlineCommand("vercel --help")}${command.disabledGlobalOptions?.length?` (except ${command.disabledGlobalOptions.map(name=>`--${name}`).join(", ")})`:""}`,globalHelp=`Global Options: ${globalPointer}`.length<=options.columns?`${helpHeading("Global Options",options.theme)} ${globalPointer}`:helpSection("Global Options",wrapHelpText(globalPointer,options.columns),options.theme);return[[buildCommandSynopsisLine(command,options.parent,options.theme),command.descriptionTone==="normal"?wrapHelpText(command.description.trim(),options.columns,""):options.theme.description(wrapHelpText(command.description.trim(),options.columns,""))].filter(Boolean).join(NEWLINE),buildSubcommandLines(command.subcommands,options,command.subcommandsTitle),command.arguments.some(argument=>argument.description)?helpSection("Arguments",helpRows(command.arguments.map(argument=>({syntax:argumentSynopsis(argument),description:argument.description??""})),options.columns,options.theme),options.theme):null,buildCommandOptionLines(command.options,options,"Options"),...sections.filter(section=>section.placement==="afterOptions").map(buildSection),globalOptions.length?globalHelp:null,buildCommandExampleLines(command,options.columns,options.theme),...sections.filter(section=>section.placement!=="afterOptions").map(buildSection),buildCommandDocumentationLines(command,options)].filter(Boolean).join(`
17
+
18
+ `)+NEWLINE}function help(command,options){return buildHelpOutput(command,{...options,columns:helpColumns(options.columns),theme:options.theme??createHelpTheme(options.stream)})}function findOption(token,options){return token.startsWith("--")?options.find(candidate=>candidate.name===token.slice(2)):options.find(candidate=>getShortFlags(candidate).includes(token))}function subtreeOptions(command){return[...command.options,...(command.subcommands??[]).flatMap(subtreeOptions)]}function isSubcommandOf(command,token){return token!==void 0&&(command.subcommands??[]).some(subcommand=>subcommand.name===token||subcommand.aliases.includes(token))}function optionTakesValue(token,walkedOptions,command,nextToken){let walked=findOption(token,walkedOptions);if(walked)return walked.type!==Boolean;let below=findOption(token,subtreeOptions(command)),global=findOption(token,globalCommandOptions);return below&&below.type!==Boolean&&(!global||global.type!==Boolean||!isSubcommandOf(command,nextToken))?!0:global!==void 0&&global.type!==Boolean}function resolveHelpTarget(root,tokens){let command=root,ancestors=[],typedPath=[],options=[...root.options],groupArguments=0,unknownSegment;for(let i=0;i<tokens.length;i++){let token=tokens[i];if(token==="--")break;if(token.startsWith("-")){!token.includes("=")&&optionTakesValue(token,options,command,tokens[i+1])&&i++;continue}let subcommand=command.subcommands?.find(candidate=>candidate.name===token||candidate.aliases.includes(token));if(!subcommand){if(command.argumentsBeforeSubcommand&&groupArguments<command.arguments.length){groupArguments++;continue}command.subcommands?.length&&command.arguments.length===0&&!command.runsWithoutSubcommand&&!command.subcommands.some(candidate=>candidate.default)&&(unknownSegment=token);break}ancestors.push(command),typedPath.push(token),options.push(...subcommand.options),command=subcommand,groupArguments=0}let parent=ancestors[ancestors.length-1];for(let i=ancestors.length-1;i>=0;i--)if(ancestors[i].documentation){parent=ancestors[i];break}return{command,parent,typedPath,unknownSegment}}export{remoteText,configureHelpOutput,createHelpTheme,helpLiterals,helpSyntaxWidth,helpColumns,helpHeading,helpUsage,wrapHelpText,helpRows,helpSection,helpCommandNames,helpCommand,registerCommandPaths,buildCommandOptionLines,buildCommandExampleLines,buildCommandDocumentationLines,help,resolveHelpTarget};
@@ -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{createDetectEntrypoint,getServicesConfigWriteBlocker,writeServicesConfig}from"./chunk-DQ2SVW4R.js";import{require_slugify}from"./chunk-COD3WAUI.js";import{detectProjects}from"./chunk-QB7F3UAP.js";import{createProject}from"./chunk-QHJLRTVY.js";import{singleFileProjectSettings,validateRootDirectory}from"./chunk-FHU2O7ZJ.js";import{require_dist as require_dist2}from"./chunk-R2BUF6Z7.js";import{readJSONFile}from"./chunk-R2XHJDAP.js";import{compileVercelConfig,findSourceVercelConfigFile}from"./chunk-QVHXFHBV.js";import{checkExistsAndConnect,parseRepoUrl,selectAndParseRemoteUrl}from"./chunk-IQKGQ2Y2.js";import{Separator}from"./chunk-MVGTMPMI.js";import{selectOrg}from"./chunk-7L5QUDUR.js";import{require_dist2 as require_dist}from"./chunk-7L2K4OKM.js";import{pull}from"./chunk-L3JYCXVB.js";import{require_frameworks}from"./chunk-6Y2ZL5XJ.js";import{table}from"./chunk-773GOZIR.js";import{printError}from"./chunk-HSFKISDH.js";import{VERCEL_DIR_PROJECT,VERCEL_DIR_README,fetchProjectsForRepoUrl,findProjectsFromPath,findRepoRoot,getGitConfigPath,getLinkedProject,getLocalPathConfig,getProjectByNameOrId,getRemoteUrls,getVercelDirectory,humanizePath,isDirectory,isPromptBackError,isPromptCanceledError,linkFolderToProject,linkRepoProject,localConfigFlagPath,parseGitConfig,pluckRemoteUrls,require_lib,resolveGitRemote}from"./chunk-4N6LMERQ.js";import{printAlignedLabel}from"./chunk-ADLBLGT3.js";import{CantParseJSONFile,ProjectNotFound,isAPIError}from"./chunk-6VH56CX2.js";import{output_manager_default,require_build_utils}from"./chunk-XP3FT56R.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_fs_extra=__toESM(require_lib(),1),import_slugify3=__toESM(require_slugify(),1),import_build_utils4=__toESM(require_build_utils(),1),import_fs_detectors2=__toESM(require_dist(),1);import{join as join3,basename,extname}from"path";var import_chalk=__toESM(require_source(),1);var import_slugify=__toESM(require_slugify(),1);var SEARCH_ALL_PROJECTS="search-all-projects",CREATE_NEW_PROJECT="create-new-project",BACK_TO_PROJECT_SELECTION=Symbol("back-to-project-selection"),BACK_TO_TEAM_SELECTION=Symbol("back-to-team-selection"),SWITCH_GIT_REMOTE=Symbol("switch-git-remote"),NO_EXISTING_PROJECTS=Symbol("no-existing-projects");async function inputProjectDecision(client,defaultDecision){let createChoice={name:"Create new project",value:"create"},existingChoice={name:"Link existing project",value:"existing"};return await client.input.select({message:"Project?",choices:defaultDecision==="existing"?[existingChoice,createChoice]:[createChoice,existingChoice]})}function randomNameSuffix(){return Math.random().toString(36).slice(2,6).padEnd(4,"0")}async function suggestNewProjectName(client,org,slugifiedName,knownTaken){let taken=knownTaken;if(!taken)try{taken=!(await getProjectByNameOrId(client,slugifiedName,org.id)instanceof ProjectNotFound)}catch{taken=!1}return taken?`${slugifiedName}-${randomNameSuffix()}`:slugifiedName}function promptForProjectName(client,org,defaultName,message="Name?"){return client.input.text({message,default:defaultName,validate:async val=>val?await getProjectByNameOrId(client,val,org.id)instanceof ProjectNotFound?!0:"Project already exists":"Project name cannot be empty"})}async function promptForProjectNameWithBack(client,org,defaultName){try{return await client.withPromptBackNavigation(()=>promptForProjectName(client,org,defaultName,`Name? ${import_chalk.default.dim("Press \u2191 to return to project options")}`))}catch(error){if(isPromptBackError(error))return BACK_TO_PROJECT_SELECTION;throw error}}async function searchExistingProjects(client,org,allowBack){let firstPage=await client.fetch("/v9/projects?limit=100",{accountId:org.id}),projects=firstPage.projects,hasMoreProjects=firstPage.pagination.next!=null;if(projects.length===0)return output_manager_default.log(`No existing projects found under ${import_chalk.default.bold(org.slug)}. Creating new project.`),NO_EXISTING_PROJECTS;let pageSize=15,countHint=projects.length>pageSize?` ${import_chalk.default.dim(`(${hasMoreProjects?"100+":projects.length} projects)`)}`:"";return await client.input.search({message:`Which project?${countHint}`,pageSize,source:async(term,{signal})=>{let searchTerm=term?.trim(),matchingProjects=projects;if(searchTerm)if(hasMoreProjects)matchingProjects=(await client.fetch(`/v9/projects?search=${encodeURIComponent(searchTerm)}&limit=20`,{accountId:org.id,signal})).projects;else{let normalizedSearchTerm=searchTerm.toLowerCase();matchingProjects=projects.filter(project=>project.name.toLowerCase().includes(normalizedSearchTerm)||project.id===searchTerm)}let choices=matchingProjects.slice().sort((a,b)=>b.updatedAt-a.updatedAt).map(project=>({name:project.name,value:project}));if(!allowBack)return choices;let backChoice={name:"Back to project options",value:BACK_TO_PROJECT_SELECTION};return choices.length===0?[backChoice]:searchTerm?choices:[...choices,new Separator,backChoice]}})}async function inputProject(client,org,detectedProjectName,autoConfirm=!1,skipAutoDetect=!1,showProjectSuggestions=!1,allowTeamSelectionBack=!1,repoMatches=[],gitRemoteOptions){let slugifiedName=(0,import_slugify.default)(detectedProjectName),canSwitchGitRemote=(gitRemoteOptions?.remoteNames.length??0)>1,detectedProject=null;if(!skipAutoDetect&&repoMatches.length===0){output_manager_default.spinner("Searching for existing projects\u2026",1e3);let[project,slugifiedProject]=await Promise.all([getProjectByNameOrId(client,detectedProjectName,org.id),slugifiedName!==detectedProjectName?getProjectByNameOrId(client,slugifiedName,org.id):null]);if(detectedProject=project instanceof ProjectNotFound?slugifiedProject instanceof ProjectNotFound?null:slugifiedProject:project,detectedProject&&!detectedProject.id)throw new Error('Detected linked project does not have "id".');output_manager_default.stopSpinner()}if(autoConfirm)return repoMatches.length===1?repoMatches[0]:detectedProject||detectedProjectName;if(client.nonInteractive){if(detectedProject)return detectedProject;let err=new Error("Confirmation required");throw err.code="HEADLESS",err}let slugifiedNameKnownFree=!skipAutoDetect&&repoMatches.length===0&&!detectedProject,memoizedDefaultName;async function defaultNewProjectName(){return memoizedDefaultName===void 0&&(memoizedDefaultName=slugifiedNameKnownFree?slugifiedName:await suggestNewProjectName(client,org,slugifiedName,detectedProject?.name===slugifiedName)),memoizedDefaultName}let shouldLinkProject;if(showProjectSuggestions&&!skipAutoDetect)for(;;){let choices=[];if(repoMatches.length>0?choices.push(...repoMatches.map(match=>({name:`${match.project.name} ${import_chalk.default.gray("(linked by git)")}`,value:match})),new Separator):detectedProject&&choices.push({name:`${detectedProject.name} ${import_chalk.default.gray("(folder name)")}`,value:detectedProject},new Separator),choices.push({name:"Search all projects",value:SEARCH_ALL_PROJECTS,description:"Browse or search every project in this team"},{name:"Create a new project",value:CREATE_NEW_PROJECT,description:`Create it under ${org.slug}`}),canSwitchGitRemote){let current=gitRemoteOptions?.currentRemoteName;choices.push({name:"Switch Git remote",value:SWITCH_GIT_REMOTE,description:current?`Suggestions are from ${current}`:"Search projects linked to a different remote"})}allowTeamSelectionBack&&choices.push({name:"Choose a different team",value:BACK_TO_TEAM_SELECTION,description:"Return to team selection"});let selected=await client.input.select({message:"Which project?",choices});if(selected===BACK_TO_TEAM_SELECTION)return BACK_TO_TEAM_SELECTION;if(selected===SWITCH_GIT_REMOTE)return SWITCH_GIT_REMOTE;if(selected===CREATE_NEW_PROJECT){let projectName=await promptForProjectNameWithBack(client,org,await defaultNewProjectName());if(projectName===BACK_TO_PROJECT_SELECTION)continue;return projectName}if(selected!==SEARCH_ALL_PROJECTS)return selected;let existingProject=await searchExistingProjects(client,org,!0);if(existingProject!==BACK_TO_PROJECT_SELECTION){if(existingProject===NO_EXISTING_PROJECTS){let projectName=await promptForProjectNameWithBack(client,org,slugifiedName);if(projectName===BACK_TO_PROJECT_SELECTION)continue;return projectName}return existingProject}}else if(!detectedProject)shouldLinkProject=await inputProjectDecision(client,skipAutoDetect?"existing":"create")==="existing";else{if(output_manager_default.print(` ${import_chalk.default.bold("Found existing project")}
7
+ import{detectProjects}from"./chunk-VUQWLLNI.js";import{createDetectEntrypoint,getServicesConfigWriteBlocker,writeServicesConfig}from"./chunk-R3BEQTZZ.js";import{require_slugify}from"./chunk-COD3WAUI.js";import{createProject}from"./chunk-QHJLRTVY.js";import{singleFileProjectSettings,validateRootDirectory}from"./chunk-NVNE3W7S.js";import{require_dist as require_dist2}from"./chunk-ZQUVDDPB.js";import{require_dist2 as require_dist}from"./chunk-HVDGNAPM.js";import{pull}from"./chunk-GFD6UAAO.js";import{require_frameworks}from"./chunk-6Y2ZL5XJ.js";import{readJSONFile}from"./chunk-QDPYU6KS.js";import{compileVercelConfig,findSourceVercelConfigFile}from"./chunk-I2WEQWCA.js";import{checkExistsAndConnect,parseRepoUrl,selectAndParseRemoteUrl}from"./chunk-J6L5MDTX.js";import{Separator}from"./chunk-MVGTMPMI.js";import{selectOrg}from"./chunk-JGMJP4T3.js";import{table}from"./chunk-5SIC5273.js";import{printError}from"./chunk-VQ755MPP.js";import{VERCEL_DIR_PROJECT,VERCEL_DIR_README,fetchProjectsForRepoUrl,findProjectsFromPath,findRepoRoot,getGitConfigPath,getLinkedProject,getLocalPathConfig,getProjectByNameOrId,getRemoteUrls,getVercelDirectory,humanizePath,isDirectory,isPromptBackError,isPromptCanceledError,linkFolderToProject,linkRepoProject,localConfigFlagPath,parseGitConfig,pluckRemoteUrls,require_lib,resolveGitRemote}from"./chunk-VLYVVC3P.js";import{printAlignedLabel}from"./chunk-26QK3I2S.js";import{CantParseJSONFile,ProjectNotFound,isAPIError}from"./chunk-YCJHUYBJ.js";import{output_manager_default,require_build_utils}from"./chunk-DWOJP4ST.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_fs_extra=__toESM(require_lib(),1),import_slugify3=__toESM(require_slugify(),1),import_build_utils4=__toESM(require_build_utils(),1),import_fs_detectors2=__toESM(require_dist(),1);import{join as join3,basename,extname}from"path";var import_chalk=__toESM(require_source(),1);var import_slugify=__toESM(require_slugify(),1);var SEARCH_ALL_PROJECTS="search-all-projects",CREATE_NEW_PROJECT="create-new-project",BACK_TO_PROJECT_SELECTION=Symbol("back-to-project-selection"),BACK_TO_TEAM_SELECTION=Symbol("back-to-team-selection"),SWITCH_GIT_REMOTE=Symbol("switch-git-remote"),NO_EXISTING_PROJECTS=Symbol("no-existing-projects");async function inputProjectDecision(client,defaultDecision){let createChoice={name:"Create new project",value:"create"},existingChoice={name:"Link existing project",value:"existing"};return await client.input.select({message:"Project?",choices:defaultDecision==="existing"?[existingChoice,createChoice]:[createChoice,existingChoice]})}function randomNameSuffix(){return Math.random().toString(36).slice(2,6).padEnd(4,"0")}async function suggestNewProjectName(client,org,slugifiedName,knownTaken){let taken=knownTaken;if(!taken)try{taken=!(await getProjectByNameOrId(client,slugifiedName,org.id)instanceof ProjectNotFound)}catch{taken=!1}return taken?`${slugifiedName}-${randomNameSuffix()}`:slugifiedName}function promptForProjectName(client,org,defaultName,message="Name?"){return client.input.text({message,default:defaultName,validate:async val=>val?await getProjectByNameOrId(client,val,org.id)instanceof ProjectNotFound?!0:"Project already exists":"Project name cannot be empty"})}async function promptForProjectNameWithBack(client,org,defaultName){try{return await client.withPromptBackNavigation(()=>promptForProjectName(client,org,defaultName,`Name? ${import_chalk.default.dim("Press \u2191 to return to project options")}`))}catch(error){if(isPromptBackError(error))return BACK_TO_PROJECT_SELECTION;throw error}}async function searchExistingProjects(client,org,allowBack){let firstPage=await client.fetch("/v9/projects?limit=100",{accountId:org.id}),projects=firstPage.projects,hasMoreProjects=firstPage.pagination.next!=null;if(projects.length===0)return output_manager_default.log(`No existing projects found under ${import_chalk.default.bold(org.slug)}. Creating new project.`),NO_EXISTING_PROJECTS;let pageSize=15,countHint=projects.length>pageSize?` ${import_chalk.default.dim(`(${hasMoreProjects?"100+":projects.length} projects)`)}`:"";return await client.input.search({message:`Which project?${countHint}`,pageSize,source:async(term,{signal})=>{let searchTerm=term?.trim(),matchingProjects=projects;if(searchTerm)if(hasMoreProjects)matchingProjects=(await client.fetch(`/v9/projects?search=${encodeURIComponent(searchTerm)}&limit=20`,{accountId:org.id,signal})).projects;else{let normalizedSearchTerm=searchTerm.toLowerCase();matchingProjects=projects.filter(project=>project.name.toLowerCase().includes(normalizedSearchTerm)||project.id===searchTerm)}let choices=matchingProjects.slice().sort((a,b)=>b.updatedAt-a.updatedAt).map(project=>({name:project.name,value:project}));if(!allowBack)return choices;let backChoice={name:"Back to project options",value:BACK_TO_PROJECT_SELECTION};return choices.length===0?[backChoice]:searchTerm?choices:[...choices,new Separator,backChoice]}})}async function inputProject(client,org,detectedProjectName,autoConfirm=!1,skipAutoDetect=!1,showProjectSuggestions=!1,allowTeamSelectionBack=!1,repoMatches=[],gitRemoteOptions){let slugifiedName=(0,import_slugify.default)(detectedProjectName),canSwitchGitRemote=(gitRemoteOptions?.remoteNames.length??0)>1,detectedProject=null;if(!skipAutoDetect&&repoMatches.length===0){output_manager_default.spinner("Searching for existing projects\u2026",1e3);let[project,slugifiedProject]=await Promise.all([getProjectByNameOrId(client,detectedProjectName,org.id),slugifiedName!==detectedProjectName?getProjectByNameOrId(client,slugifiedName,org.id):null]);if(detectedProject=project instanceof ProjectNotFound?slugifiedProject instanceof ProjectNotFound?null:slugifiedProject:project,detectedProject&&!detectedProject.id)throw new Error('Detected linked project does not have "id".');output_manager_default.stopSpinner()}if(autoConfirm)return repoMatches.length===1?repoMatches[0]:detectedProject||detectedProjectName;if(client.nonInteractive){if(detectedProject)return detectedProject;let err=new Error("Confirmation required");throw err.code="HEADLESS",err}let slugifiedNameKnownFree=!skipAutoDetect&&repoMatches.length===0&&!detectedProject,memoizedDefaultName;async function defaultNewProjectName(){return memoizedDefaultName===void 0&&(memoizedDefaultName=slugifiedNameKnownFree?slugifiedName:await suggestNewProjectName(client,org,slugifiedName,detectedProject?.name===slugifiedName)),memoizedDefaultName}let shouldLinkProject;if(showProjectSuggestions&&!skipAutoDetect)for(;;){let choices=[];if(repoMatches.length>0?choices.push(...repoMatches.map(match=>({name:`${match.project.name} ${import_chalk.default.gray("(linked by git)")}`,value:match})),new Separator):detectedProject&&choices.push({name:`${detectedProject.name} ${import_chalk.default.gray("(folder name)")}`,value:detectedProject},new Separator),choices.push({name:"Search all projects",value:SEARCH_ALL_PROJECTS,description:"Browse or search every project in this team"},{name:"Create a new project",value:CREATE_NEW_PROJECT,description:`Create it under ${org.slug}`}),canSwitchGitRemote){let current=gitRemoteOptions?.currentRemoteName;choices.push({name:"Switch Git remote",value:SWITCH_GIT_REMOTE,description:current?`Suggestions are from ${current}`:"Search projects linked to a different remote"})}allowTeamSelectionBack&&choices.push({name:"Choose a different team",value:BACK_TO_TEAM_SELECTION,description:"Return to team selection"});let selected=await client.input.select({message:"Which project?",choices});if(selected===BACK_TO_TEAM_SELECTION)return BACK_TO_TEAM_SELECTION;if(selected===SWITCH_GIT_REMOTE)return SWITCH_GIT_REMOTE;if(selected===CREATE_NEW_PROJECT){let projectName=await promptForProjectNameWithBack(client,org,await defaultNewProjectName());if(projectName===BACK_TO_PROJECT_SELECTION)continue;return projectName}if(selected!==SEARCH_ALL_PROJECTS)return selected;let existingProject=await searchExistingProjects(client,org,!0);if(existingProject!==BACK_TO_PROJECT_SELECTION){if(existingProject===NO_EXISTING_PROJECTS){let projectName=await promptForProjectNameWithBack(client,org,slugifiedName);if(projectName===BACK_TO_PROJECT_SELECTION)continue;return projectName}return existingProject}}else if(!detectedProject)shouldLinkProject=await inputProjectDecision(client,skipAutoDetect?"existing":"create")==="existing";else{if(output_manager_default.print(` ${import_chalk.default.bold("Found existing project")}
8
8
  `),printAlignedLabel("Project",`${org.slug}/${detectedProject.name}`),await client.input.confirm("Link directory to project?",!0))return detectedProject;shouldLinkProject=await inputProjectDecision(client,"existing")==="existing"}if(shouldLinkProject){let existingProject=await searchExistingProjects(client,org,!1);if(existingProject!==NO_EXISTING_PROJECTS&&existingProject!==BACK_TO_PROJECT_SELECTION)return existingProject}return await promptForProjectName(client,org,await defaultNewProjectName())}var import_build_utils=__toESM(require_build_utils(),1),import_chalk2=__toESM(require_source(),1);import path from"path";async function inputRootDirectory(client,cwd,autoConfirm=!1){if(autoConfirm)return null;for(;;){let rootDirectory=await client.input.text({message:"Code directory?",transformer:input=>`${import_chalk2.default.dim("./")}${input}`});if(!rootDirectory)return null;let normal=path.normalize(rootDirectory);if(normal==="."||normal==="./")return null;let fullPath=path.join(cwd,normal);if(await validateRootDirectory(cwd,fullPath,"Please choose a different one.")!==!1)return(0,import_build_utils.normalizePath)(normal)}}var import_chalk3=__toESM(require_source(),1),import_frameworks=__toESM(require_frameworks(),1);function isSettingValue(setting){return setting&&typeof setting.value=="string"}var settingMap={buildCommand:"Build Command",devCommand:"Development Command",commandForIgnoringBuildStep:"Ignore Command",installCommand:"Install Command",outputDirectory:"Output Directory",framework:"Framework"},settingKeys=Object.keys(settingMap).sort();async function editProjectSettings(client,projectSettings,framework,autoConfirm,localConfigurationOverrides,configFileName="vercel.json"){let settings=Object.assign({buildCommand:null,devCommand:null,framework:null,commandForIgnoringBuildStep:null,installCommand:null,outputDirectory:null},projectSettings);if(localConfigurationOverrides&&Object.values(localConfigurationOverrides??{}).some(Boolean)){for(let setting of settingKeys){let localConfigValue=localConfigurationOverrides[setting];localConfigValue&&(settings[setting]=localConfigValue)}output_manager_default.print(` Local settings detected in ${configFileName}:
9
9
  `);for(let setting of settingKeys){let override=localConfigurationOverrides[setting];override&&output_manager_default.print(` ${import_chalk3.default.dim(`${import_chalk3.default.bold(`${settingMap[setting]}:`)} ${override}`)}
10
10
  `)}if(localConfigurationOverrides.framework){let overrideFramework=import_frameworks.frameworkList.find(f=>f.slug===localConfigurationOverrides.framework);overrideFramework&&(framework=overrideFramework,output_manager_default.print(` Merging default Project Settings for ${framework.name}. Previously listed overrides are prioritized.
@@ -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{parseSubcommandArguments}from"./chunk-YEZJNXQX.js";import{printError}from"./chunk-HSFKISDH.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,outputAgentError,withGlobalFlags}from"./chunk-WDXW6A4H.js";import{getGlobalFlagsFromArgs}from"./chunk-QVXS234E.js";import{getCommandNamePlain}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var ROUTE_TYPE_LABELS={rewrite:"Rewrite",redirect:"Redirect",set_status:"Set Status",transform:"Transform"};function getRouteTypeLabel(rule){return rule.routeType?ROUTE_TYPE_LABELS[rule.routeType]??"-":"-"}var SRC_SYNTAX_LABELS={equals:"Exact Match","path-to-regexp":"Pattern",regex:"Regex"};function getSrcSyntaxLabel(rule){let syntax=rule.srcSyntax??"regex";return SRC_SYNTAX_LABELS[syntax]}function isTargetTransform(transform){return"target"in transform}var import_chalk=__toESM(require_source(),1);function withGlobalFlags2(client,commandTemplate){return withGlobalFlags(client,commandTemplate,{preserveProject:!0})}function shellQuoteRouteIdentifierForSuggestion(identifier){return identifier.includes(" ")?identifier.includes("'")?identifier.includes('"')?`"${identifier.replace(/"/g,'\\"')}"`:`"${identifier}"`:`'${identifier}'`:identifier}async function parseSubcommandArgs(argv,command,client){let parsedArgs;try{parsedArgs=parseSubcommandArguments(argv,command)}catch(err){if(client?.nonInteractive){let rawMessage=err instanceof Error?err.message:String(err),flags=getGlobalFlagsFromArgs(client.argv.slice(2),{preserveProject:!0}),message=rawMessage,next=[{command:getCommandNamePlain(`routes ${command.name} ${flags.join(" ")}`.trim()),when:"fix flags and retry"}],aiIdx=argv.indexOf("--ai");return(aiIdx!==-1&&(aiIdx===argv.length-1||argv[aiIdx+1]!==void 0&&argv[aiIdx+1].startsWith("-"))||/option requires argument.*--ai|--ai.*requires argument/i.test(rawMessage))&&(command.name==="add"||command.name==="update")&&(message=command.name==="add"?'--ai requires a description. Example: routes add --ai <description> --yes --non-interactive. Replace <description> with your text; use shell quotes if it contains spaces (e.g. --ai "Redirect /old to /new").':"--ai requires a description. Example: routes update <name-or-id> --ai <description> --yes --non-interactive. Replace placeholders; use shell quotes for <description> if it contains spaces.",next=[{command:withGlobalFlags2(client,command.name==="add"?"routes add --ai <description> --yes":"routes update <name-or-id> --ai <description> --yes"),when:"replace <description> with your text (quote it in the shell if it contains spaces), then run"},{command:getCommandNamePlain(`routes ${command.name} --help ${flags.join(" ")}`.trim()),when:"see all flags"}]),outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next},2),2}return printError(err),2}return parsedArgs}async function confirmAction(client,skipConfirmation,message,details){return skipConfirmation?!0:client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:`${message} Re-run with --yes to confirm.`,next:[{command:buildCommandWithYes(client.argv),when:"re-run with --yes to confirm"}]}),process.exit(1),!1):(details&&output_manager_default.print(` ${details}
7
+ import{parseSubcommandArguments}from"./chunk-L4XLDN6T.js";import{printError}from"./chunk-VQ755MPP.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,outputAgentError,withGlobalFlags}from"./chunk-XE24Y6NM.js";import{getCommandNamePlain}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-DWOJP4ST.js";import{getGlobalFlagsFromArgs}from"./chunk-A2UZ2O7H.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var ROUTE_TYPE_LABELS={rewrite:"Rewrite",redirect:"Redirect",set_status:"Set Status",transform:"Transform"};function getRouteTypeLabel(rule){return rule.routeType?ROUTE_TYPE_LABELS[rule.routeType]??"-":"-"}var SRC_SYNTAX_LABELS={equals:"Exact Match","path-to-regexp":"Pattern",regex:"Regex"};function getSrcSyntaxLabel(rule){let syntax=rule.srcSyntax??"regex";return SRC_SYNTAX_LABELS[syntax]}function isTargetTransform(transform){return"target"in transform}var import_chalk=__toESM(require_source(),1);function withGlobalFlags2(client,commandTemplate){return withGlobalFlags(client,commandTemplate,{preserveProject:!0})}function shellQuoteRouteIdentifierForSuggestion(identifier){return identifier.includes(" ")?identifier.includes("'")?identifier.includes('"')?`"${identifier.replace(/"/g,'\\"')}"`:`"${identifier}"`:`'${identifier}'`:identifier}async function parseSubcommandArgs(argv,command,client){let parsedArgs;try{parsedArgs=parseSubcommandArguments(argv,command)}catch(err){if(client?.nonInteractive){let rawMessage=err instanceof Error?err.message:String(err),flags=getGlobalFlagsFromArgs(client.argv.slice(2),{preserveProject:!0}),message=rawMessage,next=[{command:getCommandNamePlain(`routes ${command.name} ${flags.join(" ")}`.trim()),when:"fix options and retry"}],aiIdx=argv.indexOf("--ai");return(aiIdx!==-1&&(aiIdx===argv.length-1||argv[aiIdx+1]!==void 0&&argv[aiIdx+1].startsWith("-"))||/option requires argument.*--ai|--ai.*requires argument/i.test(rawMessage))&&(command.name==="add"||command.name==="update")&&(message=command.name==="add"?'--ai requires a description. Example: routes add --ai <description> --yes --non-interactive. Replace <description> with your text; use shell quotes if it contains spaces (e.g. --ai "Redirect /old to /new").':"--ai requires a description. Example: routes update <name-or-id> --ai <description> --yes --non-interactive. Replace placeholders; use shell quotes for <description> if it contains spaces.",next=[{command:withGlobalFlags2(client,command.name==="add"?"routes add --ai <description> --yes":"routes update <name-or-id> --ai <description> --yes"),when:"replace <description> with your text (quote it in the shell if it contains spaces), then run"},{command:getCommandNamePlain(`routes ${command.name} --help ${flags.join(" ")}`.trim()),when:"see all options"}]),outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next},2),2}return printError(err),2}return parsedArgs}async function confirmAction(client,skipConfirmation,message,details){return skipConfirmation?!0:client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:`${message} Re-run with --yes to confirm.`,next:[{command:buildCommandWithYes(client.argv),when:"re-run with --yes to confirm"}]}),process.exit(1),!1):(details&&output_manager_default.print(` ${details}
8
8
  `),await client.input.confirm(message,!1))}function formatCondition(condition){let parts=[import_chalk.default.gray(`[${condition.type}]`)];if(condition.key&&parts.push(import_chalk.default.cyan(condition.key)),condition.value!==void 0){let formatted=typeof condition.value=="string"?condition.value:JSON.stringify(condition.value);parts.push(condition.key?`= ${formatted}`:formatted)}return parts.join(" ")}var TRANSFORM_TYPE_LABELS={"request.headers":"Request Header","request.query":"Request Query","response.headers":"Response Header","request.path":"Request Path"},TRANSFORM_OP_LABELS={set:"set",append:"append",delete:"delete"};function formatTransform(transform,includeType=!0){let opLabel=TRANSFORM_OP_LABELS[transform.op]??transform.op,key=isTargetTransform(transform)?typeof transform.target.key=="string"?transform.target.key:JSON.stringify(transform.target.key):"path",parts=[];if(includeType){let typeLabel=TRANSFORM_TYPE_LABELS[transform.type]??transform.type;parts.push(import_chalk.default.gray(`[${typeLabel}]`))}if(parts.push(import_chalk.default.yellow(opLabel),import_chalk.default.cyan(key)),transform.args!==void 0&&transform.op!=="delete"){let argsStr=Array.isArray(transform.args)?transform.args.join(", "):transform.args;parts.push(`= ${argsStr}`)}return parts.join(" ")}function parsePosition(position){if(position==="start")return{placement:"start"};if(position==="end")return{placement:"end"};if(position.startsWith("after:")){let referenceId=position.slice(6);if(!referenceId)throw new Error('Position "after:" requires a route ID');return{placement:"after",referenceId}}if(position.startsWith("before:")){let referenceId=position.slice(7);if(!referenceId)throw new Error('Position "before:" requires a route ID');return{placement:"before",referenceId}}throw new Error(`Invalid position: "${position}". Use: start, end, after:<id>, or before:<id>`)}async function offerAutoPromote(client,projectId,version,hadExistingStagingVersion,opts){let{default:updateRouteVersion}=await import("./update-route-version-KWK5S4UW.js"),{default:stamp}=await import("./stamp-TKONNIJ5.js");if(output_manager_default.print(`
9
9
  ${import_chalk.default.gray(`This change is staged. Run ${import_chalk.default.cyan(withGlobalFlags2(client,"routes publish"))} to make it live, or ${import_chalk.default.cyan(withGlobalFlags2(client,"routes discard-staging"))} to undo.`)}
10
10
  `),!hadExistingStagingVersion&&!opts.skipPrompts){if(output_manager_default.print(`
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{packageName}from"./chunk-JESNVRVR.js";import{environmentOption,formatOption,jsonOption,projectOption,sinceOption,untilOption}from"./chunk-A2UZ2O7H.js";var schemaSubcommand={name:"schema",aliases:[],description:"List available metrics or inspect a specific metric.",arguments:[{name:"metric-or-prefix",required:!1}],options:[formatOption,jsonOption],examples:[{name:"List all metrics",value:`${packageName} metrics schema`},{name:"Show metric details",value:`${packageName} metrics schema vercel.function_invocation`},{name:"Schema as JSON for agents",value:`${packageName} metrics schema vercel.request.count --json`}]},metricsCommand={name:"metrics",aliases:[],description:"Query observability metrics for your Vercel project or team.",arguments:[{name:"metric-id",required:!1}],subcommands:[{name:"query",aliases:[],description:"",default:!0,hidden:!0,arguments:[],options:[],examples:[]},schemaSubcommand],options:[{name:"aggregation",shorthand:null,deprecatedShorthand:"a",type:String,deprecated:!1,description:"Aggregation function (default: sum for counts/bytes/currency, avg for durations/memory/ratios)",argument:"FN"},{name:"group-by",shorthand:null,type:[String],deprecated:!1,description:"Dimensions to group by (repeatable)",argument:"DIM"},{name:"limit",shorthand:"n",deprecatedShorthand:"l",type:Number,deprecated:!1,description:"Max groups per time bucket (default: 10)",argument:"N"},{name:"order-by",shorthand:null,type:String,deprecated:!1,description:"Order grouped results by value or count (default: count, or value when count is unsupported)",argument:"value|count"},{name:"order",shorthand:null,type:String,deprecated:!1,description:"Order direction for grouped results: asc or desc (default: desc)",argument:"asc|desc"},{name:"query",shorthand:"q",type:[String],deprecated:!1,get description(){return process.env.FF_LEGACY_METRICS?"OData filter expression (repeatable, ANDed together)":"KQL filter expression (repeatable, ANDed together)"},argument:"TEXT"},{name:"filter",shorthand:"f",type:[String],deprecated:!0,description:"Deprecated alias for `--query`",argument:"EXPR"},{...environmentOption,description:"Limit the query to one environment, such as production or preview"},{name:"prod",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--environment production`"},{...sinceOption,description:`${sinceOption.description} (default: 1h ago)`},untilOption,{name:"granularity",shorthand:null,deprecatedShorthand:"g",type:String,deprecated:!1,description:"Time bucket size: 1m, 5m, 15m, 1h, 4h, 1d (default: auto; raised when too fine for the time range)",argument:"SIZE"},{name:"bucket-timezone",shorthand:null,type:String,deprecated:!1,description:"IANA timezone for calendar bucket alignment only; does not shift --since/--until or output timestamps (e.g., Europe/Paris)",argument:"ZONE"},{...projectOption,shorthand:"p"},{name:"all",shorthand:null,type:Boolean,deprecated:!1,description:"Query across all projects for the team"},formatOption,jsonOption],get examples(){let canonical=!process.env.FF_LEGACY_METRICS,httpStatus=canonical?"httpStatus":"http_status",errorCode=canonical?"errorCode":"error_code",aiProvider=canonical?"aiProvider":"ai_provider",aiGatewayCostMetric=canonical?"vercel.ai_gateway.request.cost":"vercel.ai_gateway_request.cost",pageViewMetric=canonical?"vercel.analytics.page_view.count":"vercel.analytics_pageview.count",visitorId=canonical?"visitorId":"visitor_id",projectId=canonical?"projectId":"project_id",statusFilter=canonical?"httpStatus >= 500":"http_status ge 500",routeFilter=canonical?`'route:"/api"'`:`"contains(request_path, '/api')"`;return[{name:"5xx errors by error code in the last hour",value:`${packageName} metrics vercel.function_invocation.count --query "${statusFilter}" --group-by ${errorCode} --since 1h`},{name:"Function invocations by HTTP status code",value:`${packageName} metrics vercel.function_invocation.count --group-by ${httpStatus} --since 6h`},{name:"Function duration by route",value:`${packageName} metrics vercel.function_invocation.function_duration_ms --aggregation avg --group-by route --since 1h`},{name:"AI Gateway costs by provider",value:`${packageName} metrics ${aiGatewayCostMetric} --aggregation sum --group-by ${aiProvider} --since 7d`},{name:"Core Web Vitals (LCP) by route",value:`${packageName} metrics vercel.speed_insights.lcp_ms --aggregation p75 --environment production --group-by route --since 7d`},{name:"Routes with the lowest p75 LCP",value:`${packageName} metrics vercel.speed_insights.lcp_ms --aggregation p75 --environment production --group-by route --since 7d --order-by value --order asc`},{name:canonical?"Daily pageviews":"Daily pageviews with a Paris-aligned bucket",value:canonical?`${packageName} metrics ${pageViewMetric} --since 7d --granularity 1d`:`${packageName} metrics ${pageViewMetric} --since 7d --granularity 1d --bucket-timezone Europe/Paris`},{name:"Visitors time series from the top 5 countries",value:`${packageName} metrics ${pageViewMetric} --aggregation unique/${visitorId} --group-by country --since 1d --granularity 1h --limit 5`},{name:"List available metrics",value:`${packageName} metrics schema`},{name:"Function executions matching an API route",value:`${packageName} metrics vercel.function_invocation.count --query ${routeFilter} --group-by route --since 1h`},{name:"Function executions matching multiple filters",value:`${packageName} metrics vercel.function_invocation.count --query "${statusFilter}" --query ${routeFilter} --since 1h`},{name:"Show schema for a metric prefix",value:`${packageName} metrics schema vercel.request`},{name:"Team-wide function executions by project",value:`${packageName} metrics --all vercel.function_invocation.count --group-by ${projectId} --since 24h`}]}};export{schemaSubcommand,metricsCommand};
@@ -4,4 +4,4 @@ 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{formatOption,jsonOption}from"./chunk-QVXS234E.js";import{packageName}from"./chunk-JESNVRVR.js";var specUrlOption={name:"spec-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Fetch endpoints from a custom OpenAPI spec URL instead of the public Vercel spec"},listSubcommand={name:"list",aliases:["ls"],description:"List all available API endpoints",arguments:[],options:[formatOption,jsonOption,specUrlOption,{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"}],examples:[{name:"List all endpoints in table format",value:`${packageName} api list`},{name:"List all endpoints as JSON",value:`${packageName} api list --json`},{name:"List endpoints from a custom OpenAPI spec",value:`${packageName} api list --spec-url https://openapi-internal.vercel.sh --refresh`}]},apiCommand={name:"api",aliases:[],description:"Make authenticated HTTP requests to the Vercel API",arguments:[{name:"endpoint",required:!1}],subcommands:[listSubcommand],options:[{name:"method",shorthand:"X",type:String,argument:"METHOD",deprecated:!1,description:"HTTP method (GET, POST, PUT, PATCH, DELETE) (default: GET, or POST if body is provided)"},{name:"field",shorthand:"F",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a typed parameter (numbers, booleans parsed). Use @file for file contents"},{name:"raw-field",shorthand:"f",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a string option (no type parsing)"},{name:"header",shorthand:"H",type:[String],argument:"KEY:VALUE",deprecated:!1,description:"Add a custom HTTP header"},{name:"input",shorthand:null,type:String,argument:"FILE",deprecated:!1,description:"Read request body from file (use - for stdin)"},{name:"paginate",shorthand:null,type:Boolean,deprecated:!1,description:"Fetch all pages of results"},{name:"include",shorthand:"i",type:Boolean,deprecated:!1,description:"Include response headers in output"},{name:"silent",shorthand:null,type:Boolean,deprecated:!1,description:"Suppress response output"},{name:"verbose",shorthand:null,type:Boolean,deprecated:!1,description:"Show debug information including full request/response"},{name:"raw",shorthand:null,type:Boolean,deprecated:!1,description:"Output raw JSON without pretty-printing (default: on when output is piped)"},{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"},specUrlOption,{name:"generate",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Generate output instead of executing (e.g., --generate=curl)"},{name:"dangerously-skip-permissions",shorthand:null,type:Boolean,deprecated:!1,description:"Skip confirmation prompts for DELETE operations (use with caution)"}],examples:[{name:"Get current user information",value:`${packageName} api /v2/user`},{name:"List projects with team scope",value:`${packageName} api /v9/projects --scope my-team`},{name:"Create a new project",value:`${packageName} api /v10/projects -X POST -F name=my-project`},{name:"Delete a deployment",value:`${packageName} api /v13/deployments/dpl_abc123 -X DELETE`},{name:"Paginate through all deployments",value:`${packageName} api /v6/deployments --paginate`},{name:"Post JSON from file",value:`${packageName} api /v10/projects -X POST --input config.json`},{name:"Add custom header",value:`${packageName} api /v2/user -H "X-Custom-Header: value"`},{name:"Interactive mode (select endpoint)",value:`${packageName} api`},{name:"Interactive mode with a custom OpenAPI spec",value:`${packageName} api --spec-url https://openapi-internal.vercel.sh --refresh`}]};export{listSubcommand,apiCommand};
7
+ import{packageName}from"./chunk-JESNVRVR.js";import{formatOption,jsonOption}from"./chunk-A2UZ2O7H.js";var specUrlOption={name:"spec-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Fetch endpoints from a custom OpenAPI spec URL instead of the public Vercel spec"},listSubcommand={name:"list",aliases:["ls"],description:"List all available API endpoints",arguments:[],options:[formatOption,jsonOption,specUrlOption,{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"}],examples:[{name:"List all endpoints in table format",value:`${packageName} api list`},{name:"List all endpoints as JSON",value:`${packageName} api list --json`},{name:"List endpoints from a custom OpenAPI spec",value:`${packageName} api list --spec-url https://openapi-internal.vercel.sh --refresh`}]},apiCommand={name:"api",aliases:[],description:"Make authenticated HTTP requests to the Vercel API",arguments:[{name:"endpoint",required:!1}],subcommands:[listSubcommand],options:[{name:"method",shorthand:"X",type:String,argument:"METHOD",deprecated:!1,description:"HTTP method (GET, POST, PUT, PATCH, DELETE) (default: GET, or POST if body is provided)"},{name:"field",shorthand:"F",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a typed parameter (numbers, booleans parsed). Use @file for file contents"},{name:"raw-field",shorthand:"f",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a string option (no type parsing)"},{name:"header",shorthand:"H",type:[String],argument:"KEY:VALUE",deprecated:!1,description:"Add a custom HTTP header"},{name:"input",shorthand:null,type:String,argument:"FILE",deprecated:!1,description:"Read request body from file (use - for stdin)"},{name:"paginate",shorthand:null,type:Boolean,deprecated:!1,description:"Fetch all pages of results"},{name:"include",shorthand:"i",type:Boolean,deprecated:!1,description:"Include response headers in output"},{name:"silent",shorthand:null,type:Boolean,deprecated:!1,description:"Suppress response output"},{name:"verbose",shorthand:null,type:Boolean,deprecated:!1,description:"Show debug information including full request/response"},{name:"raw",shorthand:null,type:Boolean,deprecated:!1,description:"Output raw JSON without pretty-printing (default: on when output is piped)"},{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"},specUrlOption,{name:"generate",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Generate output instead of executing (e.g., --generate=curl)"},{name:"dangerously-skip-permissions",shorthand:null,type:Boolean,deprecated:!1,description:"Skip confirmation prompts for DELETE operations (use with caution)"}],examples:[{name:"Get current user information",value:`${packageName} api /v2/user`},{name:"List projects with team scope",value:`${packageName} api /v9/projects --scope my-team`},{name:"Create a new project",value:`${packageName} api /v10/projects -X POST -F name=my-project`},{name:"Delete a deployment",value:`${packageName} api /v13/deployments/dpl_abc123 -X DELETE`},{name:"Paginate through all deployments",value:`${packageName} api /v6/deployments --paginate`},{name:"Post JSON from file",value:`${packageName} api /v10/projects -X POST --input config.json`},{name:"Add custom header",value:`${packageName} api /v2/user -H "X-Custom-Header: value"`},{name:"Interactive mode (select endpoint)",value:`${packageName} api`},{name:"Interactive mode with a custom OpenAPI spec",value:`${packageName} api --spec-url https://openapi-internal.vercel.sh --refresh`}]};export{listSubcommand,apiCommand};
@@ -4,4 +4,4 @@ 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{formatOption,jsonOption,limitOption,projectOption}from"./chunk-QVXS234E.js";import{packageName}from"./chunk-JESNVRVR.js";var projectScopeOption={...projectOption,shorthand:"p",description:"Project name or ID (default: linked project)."},nextOption={name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},cursorOption={name:"cursor",shorthand:"c",type:String,deprecated:!0,description:"Cursor from a previous page to continue listing from",argument:"STRING"},TAGS_SORT_BY_CHOICES=["updatedAt","tag"],TAGS_SORT_ORDER_CHOICES=["asc","desc"],tagsLsSubcommand={name:"ls",aliases:["list"],description:"List a repository's tags",arguments:[{name:"repository",required:!0}],options:[projectScopeOption,{name:"sort-by",shorthand:null,type:String,deprecated:!1,description:"Field to sort tags by (default: updatedAt)",argument:"FIELD",choices:TAGS_SORT_BY_CHOICES},{name:"sort-order",shorthand:null,type:String,deprecated:!1,description:"Sort direction (default: desc)",argument:"ORDER",choices:TAGS_SORT_ORDER_CHOICES},limitOption,nextOption,cursorOption,formatOption,jsonOption],examples:[{name:"List a repository's tags",value:`${packageName} vcr tag ls my-app`}]},tagsInspectSubcommand={name:"inspect",aliases:["get"],description:"Show details for a single tag",arguments:[{name:"repository",required:!0},{name:"tag",required:!0}],options:[projectScopeOption,formatOption,jsonOption],examples:[{name:"Inspect a tag by name",value:`${packageName} vcr tag inspect my-app latest`}]},tagsAggregateCommand={name:"tag",aliases:["tags"],description:"List or inspect a repository's tags",arguments:[],subcommands:[tagsLsSubcommand,tagsInspectSubcommand],options:[],examples:[]};export{TAGS_SORT_BY_CHOICES,TAGS_SORT_ORDER_CHOICES,tagsLsSubcommand,tagsInspectSubcommand,tagsAggregateCommand};
7
+ import{packageName}from"./chunk-JESNVRVR.js";import{formatOption,jsonOption,limitOption,projectOption}from"./chunk-A2UZ2O7H.js";var projectScopeOption={...projectOption,shorthand:"p",description:"Project name or ID (default: linked project)."},nextOption={name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},cursorOption={name:"cursor",shorthand:"c",type:String,deprecated:!0,description:"Cursor from a previous page to continue listing from",argument:"STRING"},TAGS_SORT_BY_CHOICES=["updatedAt","tag"],TAGS_SORT_ORDER_CHOICES=["asc","desc"],tagsLsSubcommand={name:"ls",aliases:["list"],description:"List a repository's tags",arguments:[{name:"repository",required:!0}],options:[projectScopeOption,{name:"sort-by",shorthand:null,type:String,deprecated:!1,description:"Field to sort tags by (default: updatedAt)",argument:"FIELD",choices:TAGS_SORT_BY_CHOICES},{name:"sort-order",shorthand:null,type:String,deprecated:!1,description:"Sort direction (default: desc)",argument:"ORDER",choices:TAGS_SORT_ORDER_CHOICES},limitOption,nextOption,cursorOption,formatOption,jsonOption],examples:[{name:"List a repository's tags",value:`${packageName} vcr tag ls my-app`}]},tagsInspectSubcommand={name:"inspect",aliases:["get"],description:"Show details for a single tag",arguments:[{name:"repository",required:!0},{name:"tag",required:!0}],options:[projectScopeOption,formatOption,jsonOption],examples:[{name:"Inspect a tag by name",value:`${packageName} vcr tag inspect my-app latest`}]},tagsAggregateCommand={name:"tag",aliases:["tags"],description:"List or inspect a repository's tags",arguments:[],subcommands:[tagsLsSubcommand,tagsInspectSubcommand],options:[],examples:[]};export{TAGS_SORT_BY_CHOICES,TAGS_SORT_ORDER_CHOICES,tagsLsSubcommand,tagsInspectSubcommand,tagsAggregateCommand};
@@ -4,4 +4,4 @@ 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{mapCertError}from"./chunk-HCRD3JFL.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,isAPIError}from"./chunk-6VH56CX2.js";function toHost(url){return url.replace(/^(?:.*?\/\/)?([^/]+).*/,"$1")}async function getDeployment(client,contextName,hostOrId){hostOrId.includes(".")&&(hostOrId=toHost(hostOrId));try{return await client.fetch(`/v13/deployments/${encodeURIComponent(hostOrId)}`)}catch(err){if(isAPIError(err)){if(err.status===404)throw new DeploymentNotFound({id:hostOrId,context:contextName});if(err.status===403)throw new DeploymentPermissionDenied(hostOrId,contextName);if(err.status===400&&err.message.includes("`id`"))throw new InvalidDeploymentId(hostOrId);let certError=mapCertError(err);if(certError)throw certError}throw err}}export{toHost,getDeployment};
7
+ import{mapCertError}from"./chunk-OKNDHNH6.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,isAPIError}from"./chunk-YCJHUYBJ.js";function toHost(url){return url.replace(/^(?:.*?\/\/)?([^/]+).*/,"$1")}async function getDeployment(client,contextName,hostOrId){hostOrId.includes(".")&&(hostOrId=toHost(hostOrId));try{return await client.fetch(`/v13/deployments/${encodeURIComponent(hostOrId)}`)}catch(err){if(isAPIError(err)){if(err.status===404)throw new DeploymentNotFound({id:hostOrId,context:contextName});if(err.status===403)throw new DeploymentPermissionDenied(hostOrId,contextName);if(err.status===400&&err.message.includes("`id`"))throw new InvalidDeploymentId(hostOrId);let certError=mapCertError(err);if(certError)throw certError}throw err}}export{toHost,getDeployment};