vercel 62.7.0 → 63.0.1

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 (275) hide show
  1. package/dist/chunks/{add-P3FNSVMN.js → add-BODUK747.js} +1 -1
  2. package/dist/chunks/{add-OXHI3PVM.js → add-QKGWNVQS.js} +1 -1
  3. package/dist/chunks/{add-WUT6QU2J.js → add-ZLY3DE35.js} +1 -1
  4. package/dist/chunks/{build-J6VW3KHT.js → build-SD6SLRK7.js} +1 -1
  5. package/dist/chunks/{chunk-N6CNMMSZ.js → chunk-25565AGS.js} +1 -1
  6. package/dist/chunks/{chunk-M4IVLSNQ.js → chunk-25S4PQNK.js} +1 -1
  7. package/dist/chunks/{chunk-T52FMXWC.js → chunk-2EYYB6YN.js} +1 -1
  8. package/dist/chunks/{chunk-YPTLSODC.js → chunk-2GHZGOWT.js} +1 -1
  9. package/dist/chunks/{chunk-MIG67KZ2.js → chunk-2H243SJV.js} +1 -1
  10. package/dist/chunks/{chunk-YW5R6XQI.js → chunk-2JBVMF2Y.js} +1 -1
  11. package/dist/chunks/{chunk-YUDKK2QJ.js → chunk-2LGNEOKV.js} +1 -1
  12. package/dist/chunks/{chunk-CR2ZQBDU.js → chunk-2WYDLP7X.js} +1 -1
  13. package/dist/chunks/{chunk-M3HO5CTQ.js → chunk-3AF3TTCR.js} +1 -1
  14. package/dist/chunks/{chunk-6EW4BCMR.js → chunk-3DMY3OJR.js} +1 -1
  15. package/dist/chunks/{chunk-NNP5NITU.js → chunk-3E364MJE.js} +1 -1
  16. package/dist/chunks/{chunk-M5NWE7EO.js → chunk-3EYOQC4R.js} +1 -1
  17. package/dist/chunks/{chunk-SXUEGVWB.js → chunk-3G3FQYMW.js} +1 -1
  18. package/dist/chunks/{chunk-IEKUTNKT.js → chunk-4A5SGLIH.js} +1 -1
  19. package/dist/chunks/{chunk-BRK4OB4B.js → chunk-4SAVH3H7.js} +1 -1
  20. package/dist/chunks/chunk-5RR3435W.js +10 -0
  21. package/dist/chunks/{chunk-CRITS7IX.js → chunk-64U5W6GU.js} +1 -1
  22. package/dist/chunks/{chunk-WPS6JZF6.js → chunk-67GZ5REA.js} +1 -1
  23. package/dist/chunks/{chunk-COQGD2EI.js → chunk-6JGC4YDH.js} +1 -1
  24. package/dist/chunks/{chunk-YZBYL3SH.js → chunk-6LRVRPYO.js} +1 -1
  25. package/dist/chunks/chunk-75IAMKGV.js +27 -0
  26. package/dist/chunks/{chunk-6TAQ6OWD.js → chunk-773GOZIR.js} +1 -1
  27. package/dist/chunks/{chunk-NYFB3EYC.js → chunk-7D2HVBVP.js} +1 -1
  28. package/dist/chunks/{chunk-L3JDEHCQ.js → chunk-7EJQLVWX.js} +1 -1
  29. package/dist/chunks/{chunk-U4C2LU7H.js → chunk-7V2F5IUY.js} +1 -1
  30. package/dist/chunks/{chunk-XPXOV5UO.js → chunk-A2RZZQEP.js} +1 -1
  31. package/dist/chunks/{chunk-FEEG5UU2.js → chunk-A5R2HHNK.js} +1 -1
  32. package/dist/chunks/{chunk-EDDOQXEI.js → chunk-AG5QQNJ3.js} +1 -1
  33. package/dist/chunks/{chunk-WOTPEBSH.js → chunk-AMDHTZDV.js} +1 -1
  34. package/dist/chunks/{chunk-5XJNPXQK.js → chunk-AOWWC6WZ.js} +1 -1
  35. package/dist/chunks/{chunk-35QK5NDD.js → chunk-AU42HSQ3.js} +1 -1
  36. package/dist/chunks/{chunk-FB3U3RAM.js → chunk-AUZEOUZU.js} +1 -1
  37. package/dist/chunks/{chunk-46UCIIJN.js → chunk-AZ76R3LW.js} +1 -1
  38. package/dist/chunks/{chunk-NM67DIPQ.js → chunk-AZULOP7M.js} +1 -1
  39. package/dist/chunks/{chunk-5JN3FWV2.js → chunk-B3K6GM2W.js} +1 -1
  40. package/dist/chunks/{chunk-ULHETT7U.js → chunk-B3PZ3I4Z.js} +1 -1
  41. package/dist/chunks/{chunk-JKTQV2QJ.js → chunk-B4YYOSPY.js} +1 -1
  42. package/dist/chunks/{chunk-KKS7XWEX.js → chunk-BPUANOGW.js} +1 -1
  43. package/dist/chunks/{chunk-GU6VIFR5.js → chunk-BRQUZ5NC.js} +1 -1
  44. package/dist/chunks/{chunk-RMZJP32R.js → chunk-BRUTDRAQ.js} +1 -1
  45. package/dist/chunks/{chunk-OSCCYU74.js → chunk-BS32OUOC.js} +1 -1
  46. package/dist/chunks/{chunk-5M45EBVX.js → chunk-BWY67LI6.js} +1 -1
  47. package/dist/chunks/{chunk-6L236MNA.js → chunk-BZENIQ7N.js} +1 -1
  48. package/dist/chunks/{chunk-UKMRJIIZ.js → chunk-BZYQ6RFV.js} +1 -1
  49. package/dist/chunks/{chunk-DZZFEAM6.js → chunk-CNU4T7FO.js} +1 -1
  50. package/dist/chunks/{chunk-7RR7MIMT.js → chunk-COD3WAUI.js} +1 -1
  51. package/dist/chunks/{chunk-4H5LPD3T.js → chunk-CRO7VQWK.js} +1 -1
  52. package/dist/chunks/{chunk-XCJDGQO7.js → chunk-D3AHZ5LI.js} +1 -1
  53. package/dist/chunks/{chunk-THB7KY2N.js → chunk-DZ6GORJ7.js} +1 -1
  54. package/dist/chunks/{chunk-2H77IRPI.js → chunk-EAUDC24V.js} +1 -1
  55. package/dist/chunks/{chunk-5AXNGQJC.js → chunk-EO7GUARB.js} +1 -1
  56. package/dist/chunks/{chunk-GUTZ45DE.js → chunk-ESMQCFCX.js} +1 -1
  57. package/dist/chunks/{chunk-ZDX75YNZ.js → chunk-F4KY2TOK.js} +1 -1
  58. package/dist/chunks/{chunk-2I64AYHG.js → chunk-FBYA6LLM.js} +1 -1
  59. package/dist/chunks/{chunk-JNLWD6DK.js → chunk-GRTIWUV2.js} +1 -1
  60. package/dist/chunks/{chunk-A73N3QKT.js → chunk-GSOPJJO5.js} +1 -1
  61. package/dist/chunks/{chunk-J6OPPI3A.js → chunk-GWB27IAS.js} +1 -1
  62. package/dist/chunks/{chunk-DGH5CD6D.js → chunk-H7LHZZKU.js} +1 -1
  63. package/dist/chunks/{chunk-LWQVT6YW.js → chunk-HJ3NY4UA.js} +1 -1
  64. package/dist/chunks/{chunk-AEEEEOYS.js → chunk-HMS3UIQ2.js} +1 -1
  65. package/dist/chunks/{chunk-W26LLGQV.js → chunk-HRR57QNP.js} +1 -1
  66. package/dist/chunks/{chunk-MCBO6LL7.js → chunk-HUJPGK7W.js} +3 -3
  67. package/dist/chunks/{chunk-VWBJWUYQ.js → chunk-IAUAFUO2.js} +1 -1
  68. package/dist/chunks/{chunk-MBL6TXEJ.js → chunk-ID663OJ7.js} +1 -1
  69. package/dist/chunks/{chunk-N3ZZ7FHQ.js → chunk-ISWW3DKF.js} +1 -1
  70. package/dist/chunks/{chunk-ZN37NQM4.js → chunk-IYL5CKZ4.js} +4 -4
  71. package/dist/chunks/{chunk-OI263FBO.js → chunk-J24BABG4.js} +1 -1
  72. package/dist/chunks/{chunk-FAW6NBLQ.js → chunk-JALVF3C2.js} +1 -1
  73. package/dist/chunks/{chunk-FI772UVH.js → chunk-JESNVRVR.js} +1 -1
  74. package/dist/chunks/{chunk-ZTUQEA2X.js → chunk-JLXG2XWW.js} +1 -1
  75. package/dist/chunks/{chunk-TAT5WGDZ.js → chunk-JSBEAHKA.js} +1 -1
  76. package/dist/chunks/{chunk-GMTLVRN7.js → chunk-JTAAWOJS.js} +2 -2
  77. package/dist/chunks/chunk-JUSQYKFF.js +7 -0
  78. package/dist/chunks/{chunk-3ZMD36SU.js → chunk-KNBEUC4P.js} +1 -1
  79. package/dist/chunks/{chunk-FQJCWZ4C.js → chunk-KTNRWBHM.js} +1 -1
  80. package/dist/chunks/{chunk-M4IWOZEG.js → chunk-L5FUUGYX.js} +1 -1
  81. package/dist/chunks/{chunk-UED2PPFP.js → chunk-LSQREJXO.js} +1 -1
  82. package/dist/chunks/{chunk-S54ISKGR.js → chunk-LU5O3NH7.js} +1 -1
  83. package/dist/chunks/{chunk-XQQ7DTQG.js → chunk-MA4K5IWW.js} +2 -2
  84. package/dist/chunks/{chunk-4MZK6JT6.js → chunk-MCRKBVZA.js} +1 -1
  85. package/dist/chunks/{chunk-CF2PIWRO.js → chunk-MEJTHWZB.js} +1 -1
  86. package/dist/chunks/{chunk-23NBYS6R.js → chunk-MVCAUS4F.js} +1 -1
  87. package/dist/chunks/{chunk-M2W3HKV3.js → chunk-MVGTMPMI.js} +1 -1
  88. package/dist/chunks/{chunk-QTKJC2O5.js → chunk-MXTC4ZAQ.js} +1 -1
  89. package/dist/chunks/{chunk-6C4RPAG7.js → chunk-MYCQIZU6.js} +1 -1
  90. package/dist/chunks/{chunk-3XLK5ZPD.js → chunk-MYMM34ZH.js} +4 -4
  91. package/dist/chunks/chunk-MZ6DNAVL.js +7 -0
  92. package/dist/chunks/{chunk-UKVEXM5O.js → chunk-N7L3XLWC.js} +1 -1
  93. package/dist/chunks/{chunk-4QSVBLAS.js → chunk-N7Q2IESO.js} +1 -1
  94. package/dist/chunks/{chunk-U7KCDTCH.js → chunk-NB2WLB3J.js} +1 -1
  95. package/dist/chunks/{chunk-LG4JQAY7.js → chunk-NZ2TFADV.js} +1 -1
  96. package/dist/chunks/{chunk-2KSNNB4B.js → chunk-NZBUIMZG.js} +1 -1
  97. package/dist/chunks/{chunk-TRTEXGVN.js → chunk-O4FDRZ22.js} +1 -1
  98. package/dist/chunks/{chunk-WNTA7DCC.js → chunk-OA446564.js} +1 -1
  99. package/dist/chunks/{chunk-O5A7CNRV.js → chunk-OH2RT2GN.js} +1 -1
  100. package/dist/chunks/{chunk-AVSPFBLM.js → chunk-OO572JUC.js} +1 -1
  101. package/dist/chunks/{chunk-WRILLB46.js → chunk-PFD7LETF.js} +1 -1
  102. package/dist/chunks/{chunk-ORJGSUQT.js → chunk-PSBBSY46.js} +1 -1
  103. package/dist/chunks/{chunk-ULLWCOYC.js → chunk-PVASGBEF.js} +1 -1
  104. package/dist/chunks/{chunk-JZRMH5UA.js → chunk-Q7D7RGXM.js} +1 -1
  105. package/dist/chunks/{chunk-OQVE2WXX.js → chunk-QC47UKDR.js} +1 -1
  106. package/dist/chunks/{chunk-7SNMU7U7.js → chunk-QJKJBD2M.js} +1 -1
  107. package/dist/chunks/{chunk-KXMVFT2K.js → chunk-QW2UP4W4.js} +1 -1
  108. package/dist/chunks/{chunk-BHBNTQRT.js → chunk-QZRZ6ECD.js} +1 -1
  109. package/dist/chunks/{chunk-LYKPLTZ7.js → chunk-R4VVQRLX.js} +1 -1
  110. package/dist/chunks/{chunk-QGIQK47P.js → chunk-RM3ZDRYE.js} +1 -1
  111. package/dist/chunks/{chunk-B4ATVYZW.js → chunk-ROPQIBWJ.js} +1 -1
  112. package/dist/chunks/{chunk-OHDEHZLX.js → chunk-RRDNKB2X.js} +1 -1
  113. package/dist/chunks/{chunk-7PNYOSDU.js → chunk-RRWEIG6B.js} +1 -1
  114. package/dist/chunks/{chunk-MOLEXKVC.js → chunk-RZGWCQP7.js} +1 -1
  115. package/dist/chunks/{chunk-H3QRCTIJ.js → chunk-S7XZC23O.js} +1 -1
  116. package/dist/chunks/{chunk-PHW54NU5.js → chunk-SACGQMVQ.js} +1 -1
  117. package/dist/chunks/{chunk-SOJCELXH.js → chunk-SCV7XEEO.js} +1 -1
  118. package/dist/chunks/{chunk-O3UY73UQ.js → chunk-SF4E3AQ3.js} +1 -1
  119. package/dist/chunks/{chunk-QZ2G3AMY.js → chunk-SSEVYTJ7.js} +1 -1
  120. package/dist/chunks/{chunk-ECMWDZTJ.js → chunk-SY4EANZH.js} +3 -3
  121. package/dist/chunks/{chunk-4KQBTIMZ.js → chunk-T6SFC3IH.js} +1 -1
  122. package/dist/chunks/{chunk-YGMOJBSP.js → chunk-T76ITV65.js} +2 -2
  123. package/dist/chunks/{chunk-YKOIVWZI.js → chunk-TBLIJ2PS.js} +1 -1
  124. package/dist/chunks/{chunk-UOZHC2ZG.js → chunk-TKA7PPGY.js} +1 -1
  125. package/dist/chunks/{chunk-V426AGVC.js → chunk-U5C6XOLA.js} +2 -2
  126. package/dist/chunks/{chunk-774D3BGN.js → chunk-UFXKCETS.js} +1 -1
  127. package/dist/chunks/{chunk-RSLPLRVK.js → chunk-UTW2FDSC.js} +1 -1
  128. package/dist/chunks/{chunk-6DJ6PMEK.js → chunk-V2BKSCXI.js} +1 -1
  129. package/dist/chunks/{chunk-LXNMVWYO.js → chunk-V336CYEI.js} +1 -1
  130. package/dist/chunks/{chunk-YEWZFZ2O.js → chunk-VIBUYIZ3.js} +1 -1
  131. package/dist/chunks/chunk-VJEQAITW.js +24 -0
  132. package/dist/chunks/{chunk-F2ZWW2IO.js → chunk-VKPZP4LC.js} +1 -1
  133. package/dist/chunks/{chunk-RCTYVKM5.js → chunk-VKXEOL4K.js} +1 -1
  134. package/dist/chunks/chunk-VNSQCAVT.js +11 -0
  135. package/dist/chunks/{chunk-FAJB3JV5.js → chunk-VOB4W7DO.js} +1 -1
  136. package/dist/chunks/{chunk-PE7QZUY7.js → chunk-VSE5BAPP.js} +1 -1
  137. package/dist/chunks/{chunk-ZNQI6M3S.js → chunk-W6LNIG5O.js} +1 -1
  138. package/dist/chunks/{chunk-5ZQF5WIO.js → chunk-WF5YVWWY.js} +1 -1
  139. package/dist/chunks/{chunk-Q7AYTXUR.js → chunk-WH3SHWVK.js} +1 -1
  140. package/dist/chunks/{chunk-G3NHWIPJ.js → chunk-WJ4VNTE3.js} +1 -1
  141. package/dist/chunks/{chunk-LCH3SUJ7.js → chunk-X3JK3SQ2.js} +1 -1
  142. package/dist/chunks/{chunk-B2L2QTXT.js → chunk-XEQT373M.js} +1 -1
  143. package/dist/chunks/{chunk-I5JR7PIO.js → chunk-XJOOPPSQ.js} +1 -1
  144. package/dist/chunks/{chunk-RYMRVMGD.js → chunk-YAPHSZJ7.js} +6 -7
  145. package/dist/chunks/{chunk-7HL2RPUO.js → chunk-YHPPP3SF.js} +1 -1
  146. package/dist/chunks/{chunk-SR5XEF7L.js → chunk-YLTCVZOL.js} +1 -1
  147. package/dist/chunks/{chunk-7T6TL3GQ.js → chunk-YYPNUQDI.js} +1 -1
  148. package/dist/chunks/{chunk-GHM7V3GG.js → chunk-ZS2WS4AM.js} +1 -1
  149. package/dist/chunks/{chunk-K2RQEX7N.js → chunk-ZUCSA4IW.js} +1 -1
  150. package/dist/chunks/{cjs-GOQHXIHX.js → cjs-2SMN43VH.js} +1 -1
  151. package/dist/chunks/{clear-VMJVLPVR.js → clear-PYDGQBSS.js} +1 -1
  152. package/dist/chunks/{compile-vercel-config-YCLXPL5H.js → compile-vercel-config-KWSIFONF.js} +1 -1
  153. package/dist/chunks/{config-JPX6NJMJ.js → config-6TQFY5DN.js} +1 -1
  154. package/dist/chunks/{config-YMUUPO3R.js → config-Y3JEZPVK.js} +1 -1
  155. package/dist/chunks/config-validator.mjs +1 -1
  156. package/dist/chunks/{connect-git-provider-KLSBCSD2.js → connect-git-provider-HW23GK35.js} +1 -1
  157. package/dist/chunks/{constants-G4UYVLOF.js → constants-JAB7MRSK.js} +1 -1
  158. package/dist/chunks/{create-project-SRQGD4JY.js → create-project-IKCB6MB2.js} +1 -1
  159. package/dist/chunks/{delete-EEY7M6XT.js → delete-HAOLSE35.js} +1 -1
  160. package/dist/chunks/{delete-E7J4B5E5.js → delete-ZISJ7HIW.js} +1 -1
  161. package/dist/chunks/detect-projects-3CQ6ANGU.js +7 -0
  162. package/dist/chunks/detect-services-22KZAGH2.js +7 -0
  163. package/dist/chunks/{disable-5TKY6JK2.js → disable-ZCEEK2BD.js} +1 -1
  164. package/dist/chunks/{discard-ALSOF66H.js → discard-VHO5BXYN.js} +1 -1
  165. package/dist/chunks/{edit-ISUCMYNW.js → edit-JRYFZ5N5.js} +1 -1
  166. package/dist/chunks/{edit-2M3KEE3H.js → edit-ZPNWEZWU.js} +1 -1
  167. package/dist/chunks/{enable-2QTTTYQD.js → enable-USQVAN4K.js} +1 -1
  168. package/dist/chunks/{esm-SZZI53W7.js → esm-33752ISR.js} +1 -1
  169. package/dist/chunks/esm-4JKEE7PC.js +7 -0
  170. package/dist/chunks/{esm-CXICLFA3.js → esm-BYG5BWYH.js} +1 -1
  171. package/dist/chunks/{esm-NQRLKALI.js → esm-DFFBNKNU.js} +1 -1
  172. package/dist/chunks/{esm-7HVUFWMN.js → esm-IF453UWS.js} +1 -1
  173. package/dist/chunks/{esm-BZBEM7YA.js → esm-LABWDJ72.js} +1 -1
  174. package/dist/chunks/{esm-HDEHVK7I.js → esm-TG37FXTU.js} +1 -1
  175. package/dist/chunks/{exec-XIQJ2A3J.js → exec-QZXH5RXR.js} +1 -1
  176. package/dist/chunks/{export-PV2NDS7C.js → export-H7YV6NVF.js} +1 -1
  177. package/dist/chunks/{fetch-proxy-AEAWC6MD.js → fetch-proxy-OC6B22AW.js} +1 -1
  178. package/dist/chunks/future-PHRPWAVY.js +7 -0
  179. package/dist/chunks/generate-cert-for-deploy-WLYVWTBG.js +7 -0
  180. package/dist/chunks/{image-6GL2UOA2.js → image-6KIQRC65.js} +1 -1
  181. package/dist/chunks/import-builders-YAC6UE33.js +7 -0
  182. package/dist/chunks/{inspect-FK6GC5JZ.js → inspect-BQELJ5EI.js} +1 -1
  183. package/dist/chunks/{inspect-UNL54246.js → inspect-DWOQ6566.js} +1 -1
  184. package/dist/chunks/{inspect-ORVORGUM.js → inspect-HJQWRFHR.js} +1 -1
  185. package/dist/chunks/{inspect-LZMU7RIU.js → inspect-MRJ6JO7M.js} +1 -1
  186. package/dist/chunks/{inspect-3HGROSZO.js → inspect-SEGNEPGI.js} +1 -1
  187. package/dist/chunks/{list-FVUIZPC7.js → list-HS54LLJ5.js} +1 -1
  188. package/dist/chunks/{list-WOUJM4WR.js → list-OCU47YHP.js} +1 -1
  189. package/dist/chunks/{list-EWJI2WSQ.js → list-S2XKQMNX.js} +1 -1
  190. package/dist/chunks/{login-JREQ7SLY.js → login-K6VYVJPS.js} +1 -1
  191. package/dist/chunks/login-SKAMFH7S.js +7 -0
  192. package/dist/chunks/logs-KZSKOQUN.js +7 -0
  193. package/dist/chunks/{ls-4COX4SMJ.js → ls-DTEGGHQA.js} +1 -1
  194. package/dist/chunks/{ls-W5SJUIHD.js → ls-G5NTVYUB.js} +1 -1
  195. package/dist/chunks/{ls-LXBUE4LZ.js → ls-LBBI45ZT.js} +1 -1
  196. package/dist/chunks/{ls-6DOYSBQM.js → ls-LCY7BHOP.js} +1 -1
  197. package/dist/chunks/{ls-RBWPVJ5G.js → ls-NUM6IQL6.js} +1 -1
  198. package/dist/chunks/{ls-6CD2OQGA.js → ls-TE7BAMHR.js} +1 -1
  199. package/dist/chunks/{ls-AHT2FRGM.js → ls-ZYM3DQXI.js} +1 -1
  200. package/dist/chunks/{mutate-TVUHBRBK.js → mutate-BAFVNNRU.js} +1 -1
  201. package/dist/chunks/{notifications-OXOSD6UK.js → notifications-3EB3ZEU3.js} +1 -1
  202. package/dist/chunks/{open-SWPHB54M.js → open-J4X5KJ6A.js} +1 -1
  203. package/dist/chunks/{openapi-32XHDVJL.js → openapi-C5BHMHWS.js} +1 -1
  204. package/dist/chunks/{permissions-A4WMGETJ.js → permissions-JMFKPIO4.js} +1 -1
  205. package/dist/chunks/{pkg-YFU67U7I.js → pkg-EDJQLCNP.js} +1 -1
  206. package/dist/chunks/prompt-missing-credentials-VS3ZJSCQ.js +7 -0
  207. package/dist/chunks/{publish-2CS4RYJW.js → publish-WWI5HOAL.js} +1 -1
  208. package/dist/chunks/pull-MTQAMT4L.js +7 -0
  209. package/dist/chunks/purchase-domain-if-available-ZIIAF7CC.js +7 -0
  210. package/dist/chunks/{push-OPRW7M4I.js → push-PBKUSKXQ.js} +1 -1
  211. package/dist/chunks/{query-22PGP7BC.js → query-5VGUVE2A.js} +2 -2
  212. package/dist/chunks/{reauthenticate-LMR25CIE.js → reauthenticate-UGBXSWZE.js} +1 -1
  213. package/dist/chunks/{reorder-Y3NMEA2S.js → reorder-S2ZJML5K.js} +1 -1
  214. package/dist/chunks/{reply-YEZHST2Q.js → reply-3GFULOMZ.js} +1 -1
  215. package/dist/chunks/{repo-info-to-url-SK3VX6UL.js → repo-info-to-url-XQSULSEO.js} +1 -1
  216. package/dist/chunks/{resolve-QC37E2EB.js → resolve-USEBSFUT.js} +1 -1
  217. package/dist/chunks/{resolve-deployment-framework-preset-QEPJNWVF.js → resolve-deployment-framework-preset-JPT2MRPA.js} +1 -1
  218. package/dist/chunks/{restore-RMQVGYQB.js → restore-JD7IGDTY.js} +1 -1
  219. package/dist/chunks/{rm-42U6SPVV.js → rm-3V47KPK6.js} +1 -1
  220. package/dist/chunks/{rm-4MSUYUEP.js → rm-ARMNSPGQ.js} +1 -1
  221. package/dist/chunks/{rm-DPHE34CD.js → rm-BYOBKSWY.js} +1 -1
  222. package/dist/chunks/{rm-43MPIHP3.js → rm-EQYVIFNX.js} +1 -1
  223. package/dist/chunks/{rm-JHWXYHJY.js → rm-RHRKS7XG.js} +1 -1
  224. package/dist/chunks/{routes-2GTCE542.js → routes-NID5V7EJ.js} +1 -1
  225. package/dist/chunks/rule-inspect-5DZ7OXGE.js +8 -0
  226. package/dist/chunks/{rules-6KWBVUF2.js → rules-CM2ARIWZ.js} +1 -1
  227. package/dist/chunks/{schema-OUFU5V7Z.js → schema-SZUKDSY2.js} +1 -1
  228. package/dist/chunks/{schema-S2DE7S5N.js → schema-V75RRXXF.js} +1 -1
  229. package/dist/chunks/select-org-SH4JT6RI.js +7 -0
  230. package/dist/chunks/{set-VXSNREF4.js → set-LY4YI5FZ.js} +1 -1
  231. package/dist/chunks/setup-and-link-MWLALWAS.js +7 -0
  232. package/dist/chunks/{slugify-O5DBATYT.js → slugify-NMMUASYK.js} +1 -1
  233. package/dist/chunks/stamp-TKONNIJ5.js +7 -0
  234. package/dist/chunks/{tags-AGLQDT3Z.js → tags-P5GB7HTF.js} +1 -1
  235. package/dist/chunks/{types-GQNKYZJH.js → types-OC7OTQNK.js} +1 -1
  236. package/dist/chunks/{update-TI3YRVQT.js → update-SOD622HT.js} +1 -1
  237. package/dist/chunks/{update-route-version-XZAFPQJC.js → update-route-version-KWK5S4UW.js} +1 -1
  238. package/dist/chunks/{utils-5BFO5HC4.js → utils-IQZEE4DT.js} +1 -1
  239. package/dist/chunks/{vlt-builder-graph-S4YJ5UTQ.js → vlt-builder-graph-XL2XRO4V.js} +1 -1
  240. package/dist/chunks/{vlt-builder-importer-2ITR3DMQ.js → vlt-builder-importer-RBUPAB6J.js} +1 -1
  241. package/dist/commands/build/index.js +3 -3
  242. package/dist/commands/deploy/index.js +6 -6
  243. package/dist/commands/dev/index.js +7 -7
  244. package/dist/commands/env/index.js +1 -1
  245. package/dist/commands/link/index.js +1 -1
  246. package/dist/commands/list/index.js +1 -1
  247. package/dist/commands-bulk.js +441 -428
  248. package/dist/help.js +1 -1
  249. package/dist/index.js +2 -2
  250. package/dist/internal-build-worker.js +1 -1
  251. package/dist/internal-build.js +2 -2
  252. package/dist/vc.js +60 -2
  253. package/dist/version.mjs +1 -1
  254. package/package.json +57 -57
  255. package/dist/chunks/chunk-APSIFBD4.js +0 -7
  256. package/dist/chunks/chunk-EQ24OC5G.js +0 -24
  257. package/dist/chunks/chunk-ONPJXQQ6.js +0 -10
  258. package/dist/chunks/chunk-Q2YQSMIB.js +0 -26
  259. package/dist/chunks/chunk-SMC4MGY5.js +0 -7
  260. package/dist/chunks/chunk-YTIANIL7.js +0 -11
  261. package/dist/chunks/detect-projects-AWDCPVLE.js +0 -7
  262. package/dist/chunks/detect-services-E2TWAKQS.js +0 -7
  263. package/dist/chunks/esm-WGJFGCLK.js +0 -7
  264. package/dist/chunks/future-SQS5POAL.js +0 -7
  265. package/dist/chunks/generate-cert-for-deploy-4EJRA7MS.js +0 -7
  266. package/dist/chunks/import-builders-KAZMYQCR.js +0 -7
  267. package/dist/chunks/login-IJLY5XTT.js +0 -7
  268. package/dist/chunks/logs-Z7IMGFO2.js +0 -7
  269. package/dist/chunks/prompt-missing-credentials-6IXO6VND.js +0 -7
  270. package/dist/chunks/pull-WWUH4M5V.js +0 -7
  271. package/dist/chunks/purchase-domain-if-available-TAXCYIV7.js +0 -7
  272. package/dist/chunks/rule-inspect-7LIPL5YY.js +0 -8
  273. package/dist/chunks/select-org-EL66MG67.js +0 -7
  274. package/dist/chunks/setup-and-link-I7SGZNGO.js +0 -7
  275. package/dist/chunks/stamp-OX4YO3KY.js +0 -7
@@ -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,projectOption}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-FI772UVH.js";var RULE_ENVIRONMENTS=["any","preview","production"],lsSubcommand={name:"ls",aliases:["list"],description:"List the Vercel tracing sampling rules for a project",arguments:[],options:[formatOption,jsonOption,projectOption],examples:[{name:"List the sampling rules for the linked project",value:`${packageName} traces config ls`},{name:"List the sampling rules as JSON",value:`${packageName} traces config ls --json`}]},setSubcommand={name:"set",aliases:[],description:"Enable Vercel tracing and add or replace one sampling rule. The rate is a whole percentage from 1 to 100.",arguments:[{name:"environment",required:!0},{name:"rate",required:!0},{name:"requestPath",required:!1}],options:[formatOption,jsonOption,projectOption],examples:[{name:"Trace a quarter of production traffic",value:`${packageName} traces config set production 25`},{name:"Trace every preview request to one path prefix",value:`${packageName} traces config set preview 100 /api`},{name:"Trace one percent of traffic in every environment",value:`${packageName} traces config set any 1`}]},rmSubcommand={name:"rm",aliases:["remove","delete"],description:"Remove Vercel tracing sampling rules. Without a path prefix, every rule for the environment is removed. Removing the final rule disables tracing.",arguments:[{name:"environment",required:!0},{name:"requestPath",required:!1}],options:[{name:"default",shorthand:null,type:Boolean,deprecated:!1,description:"Remove only the rule that has no path prefix, keeping the per-path rules"},formatOption,jsonOption,projectOption],examples:[{name:"Remove one rule by environment and path prefix",value:`${packageName} traces config rm production /api`},{name:"Remove every rule for production",value:`${packageName} traces config rm production`},{name:"Remove only the production rule that covers all paths",value:`${packageName} traces config rm production --default`}]},tracesConfigCommand={name:"config",aliases:[],description:"Manage Vercel tracing sampling rules for a project.",arguments:[],subcommands:[lsSubcommand,setSubcommand,rmSubcommand],options:[],examples:[{name:"List the sampling rules for the linked project",value:`${packageName} traces config ls`},{name:"Trace a quarter of production traffic",value:`${packageName} traces config set production 25`},{name:"Remove every rule for production",value:`${packageName} traces config rm production`}]};export{RULE_ENVIRONMENTS,lsSubcommand,setSubcommand,rmSubcommand,tracesConfigCommand};
7
+ import{formatOption,jsonOption,projectOption}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-JESNVRVR.js";var RULE_ENVIRONMENTS=["any","preview","production"],lsSubcommand={name:"ls",aliases:["list"],description:"List the Vercel tracing sampling rules for a project",arguments:[],options:[formatOption,jsonOption,projectOption],examples:[{name:"List the sampling rules for the linked project",value:`${packageName} traces config ls`},{name:"List the sampling rules as JSON",value:`${packageName} traces config ls --json`}]},setSubcommand={name:"set",aliases:[],description:"Enable Vercel tracing and add or replace one sampling rule. The rate is a whole percentage from 1 to 100.",arguments:[{name:"environment",required:!0},{name:"rate",required:!0},{name:"requestPath",required:!1}],options:[formatOption,jsonOption,projectOption],examples:[{name:"Trace a quarter of production traffic",value:`${packageName} traces config set production 25`},{name:"Trace every preview request to one path prefix",value:`${packageName} traces config set preview 100 /api`},{name:"Trace one percent of traffic in every environment",value:`${packageName} traces config set any 1`}]},rmSubcommand={name:"rm",aliases:["remove","delete"],description:"Remove Vercel tracing sampling rules. Without a path prefix, every rule for the environment is removed. Removing the final rule disables tracing.",arguments:[{name:"environment",required:!0},{name:"requestPath",required:!1}],options:[{name:"default",shorthand:null,type:Boolean,deprecated:!1,description:"Remove only the rule that has no path prefix, keeping the per-path rules"},formatOption,jsonOption,projectOption],examples:[{name:"Remove one rule by environment and path prefix",value:`${packageName} traces config rm production /api`},{name:"Remove every rule for production",value:`${packageName} traces config rm production`},{name:"Remove only the production rule that covers all paths",value:`${packageName} traces config rm production --default`}]},tracesConfigCommand={name:"config",aliases:[],description:"Manage Vercel tracing sampling rules for a project.",arguments:[],subcommands:[lsSubcommand,setSubcommand,rmSubcommand],options:[],examples:[{name:"List the sampling rules for the linked project",value:`${packageName} traces config ls`},{name:"Trace a quarter of production traffic",value:`${packageName} traces config set production 25`},{name:"Remove every rule for production",value:`${packageName} traces config rm production`}]};export{RULE_ENVIRONMENTS,lsSubcommand,setSubcommand,rmSubcommand,tracesConfigCommand};
@@ -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{getEnvTargetPlaceholder}from"./chunk-LWQVT6YW.js";import{projectOption,yesOption}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-FI772UVH.js";var buildCommand={name:"build",aliases:[],description:"Build the project.",arguments:[],options:[{name:"prod",description:"Build a production deployment",shorthand:null,type:Boolean,deprecated:!1},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Specify the target environment"},{name:"output",description:"Directory where built assets will be written to",shorthand:null,argument:"DIR",type:String,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt about pulling environment variables and project settings when not found locally"},{name:"standalone",description:"Create a standalone build with all dependencies inlined into function output folders",shorthand:null,type:Boolean,deprecated:!1},{name:"id",description:"Deployment ID to pull environment variables from (e.g. dpl_xxx)",shorthand:null,type:String,argument:"ID",deprecated:!1},projectOption],examples:[{name:"Build the project",value:`${packageName} build`},{name:"Build the project in a specific directory",value:`${packageName} build --cwd ./path-to-project`},{name:"Build with deployment-scoped environment variables",value:`${packageName} build --id dpl_xxx`}]};var pullCommand={name:"pull",aliases:[],description:"Pull Environment Variables and project settings into .vercel",arguments:[{name:"project-path",required:!1}],options:[{name:"environment",description:"Deployment environment [development]",argument:"TARGET",shorthand:null,type:String,deprecated:!1},{name:"git-branch",description:"Specify the Git branch to pull specific Environment Variables for",argument:"NAME",shorthand:null,type:String,deprecated:!1},{name:"prod",shorthand:null,type:Boolean,deprecated:!1},{...yesOption,description:"Skip questions when setting up new project using default scope and settings"},projectOption],examples:[{name:"Pull the latest Environment Variables and Project Settings from the cloud",value:`${packageName} pull`},{name:"Pull the latest Environment Variables and Project Settings from the cloud targeting a directory",value:`${packageName} pull ./path-to-project`},{name:"Pull for a specific environment",value:`${packageName} pull --environment=${getEnvTargetPlaceholder()}`},{name:"Pull for a preview feature branch",value:`${packageName} pull --environment=preview --git-branch=feature-branch`},{name:"Pull Environment Variables into an application env file with `vercel env pull`",value:`${packageName} env pull`}]};export{buildCommand,pullCommand};
7
+ import{getEnvTargetPlaceholder}from"./chunk-HJ3NY4UA.js";import{projectOption,yesOption}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-JESNVRVR.js";var buildCommand={name:"build",aliases:[],description:"Build the project.",arguments:[],options:[{name:"prod",description:"Build a production deployment",shorthand:null,type:Boolean,deprecated:!1},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Specify the target environment"},{name:"output",description:"Directory where built assets will be written to",shorthand:null,argument:"DIR",type:String,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt about pulling environment variables and project settings when not found locally"},{name:"standalone",description:"Create a standalone build with all dependencies inlined into function output folders",shorthand:null,type:Boolean,deprecated:!1},{name:"id",description:"Deployment ID to pull environment variables from (e.g. dpl_xxx)",shorthand:null,type:String,argument:"ID",deprecated:!1},projectOption],examples:[{name:"Build the project",value:`${packageName} build`},{name:"Build the project in a specific directory",value:`${packageName} build --cwd ./path-to-project`},{name:"Build with deployment-scoped environment variables",value:`${packageName} build --id dpl_xxx`}]};var pullCommand={name:"pull",aliases:[],description:"Pull Environment Variables and project settings into .vercel",arguments:[{name:"project-path",required:!1}],options:[{name:"environment",description:"Deployment environment [development]",argument:"TARGET",shorthand:null,type:String,deprecated:!1},{name:"git-branch",description:"Specify the Git branch to pull specific Environment Variables for",argument:"NAME",shorthand:null,type:String,deprecated:!1},{name:"prod",shorthand:null,type:Boolean,deprecated:!1},{...yesOption,description:"Skip questions when setting up new project using default scope and settings"},projectOption],examples:[{name:"Pull the latest Environment Variables and Project Settings from the cloud",value:`${packageName} pull`},{name:"Pull the latest Environment Variables and Project Settings from the cloud targeting a directory",value:`${packageName} pull ./path-to-project`},{name:"Pull for a specific environment",value:`${packageName} pull --environment=${getEnvTargetPlaceholder()}`},{name:"Pull for a preview feature branch",value:`${packageName} pull --environment=preview --git-branch=feature-branch`},{name:"Pull Environment Variables into an application env file with `vercel env pull`",value:`${packageName} env pull`}]};export{buildCommand,pullCommand};
@@ -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{humanReadableColumnLabel}from"./chunk-GHAY4PSD.js";import{FETCH_TIMEOUT_MS,OpenApiCache,SSO_API_URL,assertAllowedSpecUrl,readSpecResponse}from"./chunk-5JN3FWV2.js";import{apiCommand,listSubcommand}from"./chunk-ZTUQEA2X.js";import{help}from"./chunk-NYFB3EYC.js";import{table}from"./chunk-6TAQ6OWD.js";import{printError}from"./chunk-LXNMVWYO.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{require_ms}from"./chunk-QTKJC2O5.js";import{TelemetryClient}from"./chunk-MCBO6LL7.js";import{parseArguments}from"./chunk-LYKPLTZ7.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-Q2YQSMIB.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__toESM}from"./chunk-6L236MNA.js";import{createHash}from"crypto";var MAX_REDIRECTS=3;async function fetchSpecUrl(client,specUrl){let specOrigin=assertAllowedSpecUrl(specUrl).origin,probe=await fetchWithTimeout(specUrl,{readSpec:!0});if(probe.response.ok)return probe.spec??null;let nonce=getSetCookieValue(probe.response,"_vercel_sso_nonce");if(!nonce)throw output_manager_default.debug(`OpenAPI spec URL returned ${probe.response.status} without a Vercel SSO nonce`),new Error(formatHttpError(specUrl,probe.response));let token=client.authConfig.token;if(!token)return output_manager_default.debug("OpenAPI spec URL requires Vercel authentication"),null;let hashedNonce=createHash("sha256").update(nonce).digest("hex"),ssoUrl=`${SSO_API_URL}?url=${encodeURIComponent(specUrl)}&nonce=${hashedNonce}`,sso=await fetchWithTimeout(ssoUrl,{cookie:`authorization=${encodeURIComponent(`Bearer ${token}`)}; isLoggedIn=1`}),location=sso.response.headers.get("location");if(!location||!location.includes("_vercel_jwt="))throw output_manager_default.debug("OpenAPI spec URL: user has no access"),new Error(formatHttpError(specUrl,sso.response));let cookies=new Map([["_vercel_sso_nonce",nonce]]),url=location;for(let i=0;i<=MAX_REDIRECTS;i++){if(!isSameOriginUrl(url,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;let{response,spec}=await fetchWithTimeout(url,{cookie:Array.from(cookies,([name,value])=>`${name}=${value}`).join("; "),readSpec:!0});if(response.ok)return spec??null;let next=response.headers.get("location");if(response.status>=300&&response.status<400&&next){let setJwt=getSetCookieValue(response,"_vercel_jwt");setJwt&&cookies.set("_vercel_jwt",setJwt);let nextUrl=new URL(next,url).href;if(!isSameOriginUrl(nextUrl,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;url=nextUrl;continue}throw output_manager_default.debug(`OpenAPI spec URL: unexpected response ${response.status}`),new Error(formatHttpError(url,response))}return output_manager_default.debug("OpenAPI spec URL: too many redirects"),null}function createOpenApiCache(client,specUrl){return new OpenApiCache(specUrl?{specUrl,fetchSpecUrl:url=>fetchSpecUrl(client,url)}:void 0)}async function fetchWithTimeout(url,options){let controller=new AbortController,timeoutId=setTimeout(()=>controller.abort(),1e4);try{let response=await fetch(url,{redirect:"manual",signal:controller.signal,headers:options?.cookie?{cookie:options.cookie}:void 0}),spec=options?.readSpec&&response.ok?await readSpecResponse(response,formatDiagnosticUrl(url)):void 0;return{response,spec}}finally{clearTimeout(timeoutId)}}function isSameOriginUrl(url,origin){try{return new URL(url).origin===origin}catch{return!1}}function formatHttpError(url,response){let statusText=response.statusText?` ${response.statusText}`:"";return`Could not load OpenAPI spec from ${formatDiagnosticUrl(url)}: HTTP ${response.status}${statusText}.`}function formatDiagnosticUrl(url){try{let parsed=new URL(url);parsed.hash="";for(let key of parsed.searchParams.keys())parsed.searchParams.set(key,"[redacted]");return parsed.href}catch{return url}}function getSetCookieValue(response,name){let header=response.headers.get("set-cookie");if(!header)return null;let match=header.match(new RegExp(`${name}=([^;,\\s]+)`));return match?match[1]:null}function foldNamingStyle(input){return input.trim().replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[-_\s]+/g," ").trim().toLowerCase().replace(/\s+/g,"")}function operationIdToKebabCase(operationId){let s=operationId.trim();return s?s.replace(/([a-z\d])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():"unnamed"}function inferCliSubcommandAliases(ep){let upper=ep.method.toUpperCase(),hasPathParams=ep.parameters.some(p=>p.in==="path");switch(upper){case"GET":return hasPathParams?["inspect","get"]:["ls","list"];case"POST":return["add","create"];case"DELETE":return["rm","remove"];case"PUT":case"PATCH":return["update"];default:return[]}}var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1);function getByPath(obj,path){let parts=path.split(".").filter(Boolean),cur=obj;for(let p of parts){if(cur===null||typeof cur!="object")return;cur=cur[p]}return cur}var TIMESTAMP_FIELD_PATTERN=/(?:^|\.)(created|updated|deleted|expired|blocked|completed|started|finished|modified|verified|published|cancelled|revoked|invited|accepted|accessed|deployed)(?:At|_at|On|_on)?$/i,MIN_TIMESTAMP_MS=1e12,MAX_TIMESTAMP_MS=41024448e5;function isTimestampValue(value,columnPath){return typeof value!="number"||!Number.isFinite(value)||value<MIN_TIMESTAMP_MS||value>MAX_TIMESTAMP_MS?!1:TIMESTAMP_FIELD_PATTERN.test(columnPath)}function formatRelativeTime(timestamp){let diff=Date.now()-timestamp;return diff<0?"just now":import_chalk.default.gray((0,import_ms.default)(diff))}function stringifyCell(value,columnPath){return value==null?import_chalk.default.gray("--"):columnPath&&isTimestampValue(value,columnPath)?formatRelativeTime(value):typeof value=="object"?JSON.stringify(value):String(value)}function styleColumnKey(plainLabel){return import_chalk.default.gray(plainLabel)}function columnsForRow(r,display){return r.limited===!0&&display.columnsWhenLimited?.length?display.columnsWhenLimited:display.columnsDefault}function formatAsCard(r,display){let columns=columnsForRow(r,display);if(!columns.length)return null;let rows=columns.map(colPath=>[styleColumnKey(humanReadableColumnLabel(colPath)),stringifyCell(getByPath(r,colPath),colPath)]);return table(rows,{align:["l","l"],hsep:2})}function formatAsDataTable(items,display){if(items.length===0)return"(empty)";let first=items[0];if(first===null||typeof first!="object"||Array.isArray(first)){let headers2=[styleColumnKey(humanReadableColumnLabel("#")),styleColumnKey(humanReadableColumnLabel("value"))],rows=items.map((v,i)=>[String(i),stringifyCell(v,"value")]);return table([headers2,...rows])}let columns=columnsForRow(first,display);if(!columns.length)return null;let headers=columns.map(p=>styleColumnKey(humanReadableColumnLabel(p))),dataRows=items.map(item=>{let row=item!==null&&typeof item=="object"&&!Array.isArray(item)?item:{};return columns.map(colPath=>stringifyCell(getByPath(row,colPath),colPath))});return table([headers,...dataRows])}function resolveEndpointByTagAndOperationId(endpoints,tag,operationHint){let tagLower=tag.toLowerCase(),tagMatches=endpoints.filter(ep=>ep.tags.some(t=>t.toLowerCase()===tagLower));if(tagMatches.length===0)return{ok:!1,reason:"no_tag",tag,tagMatches:[],operationHint};let withOpId=tagMatches.filter(ep=>ep.operationId.length>0);if(withOpId.length===0)return{ok:!1,reason:"no_operation",tag,tagMatches,operationHint};let hint=operationHint.trim(),hintLower=hint.toLowerCase(),exact=withOpId.filter(ep=>ep.operationId===hint);if(exact.length===1)return{ok:!0,endpoint:exact[0]};if(exact.length>1)return{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exact,operationHint:hint};let exactCi=withOpId.filter(ep=>ep.operationId.toLowerCase()===hintLower);return exactCi.length===1?{ok:!0,endpoint:exactCi[0]}:exactCi.length>1?{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exactCi,operationHint:hint}:{ok:!1,reason:"no_operation",tag,tagMatches,operationHint:hint}}var import_chalk4=__toESM(require_source(),1);var ApiTelemetryClient=class extends TelemetryClient{trackCliArgumentEndpoint(endpoint){if(endpoint){let normalized=this.normalizeEndpoint(endpoint);this.trackCliArgument({arg:"endpoint",value:normalized})}}trackCliArgumentOperationId(operationId){operationId&&this.trackCliArgument({arg:"operationId",value:operationId})}trackCliOptionMethod(method){if(method){let validMethods=["GET","POST","PUT","DELETE","PATCH","HEAD"],upperMethod=method.toUpperCase(),value=validMethods.includes(upperMethod)?upperMethod:this.redactedValue;this.trackCliOption({option:"method",value})}}trackCliOptionField(fields){fields&&fields.length>0&&this.trackCliOption({option:"field",value:this.redactedArgumentsLength(fields)})}trackCliOptionRawField(fields){fields&&fields.length>0&&this.trackCliOption({option:"raw-field",value:this.redactedArgumentsLength(fields)})}trackCliOptionHeader(headers){headers&&headers.length>0&&this.trackCliOption({option:"header",value:this.redactedArgumentsLength(headers)})}trackCliOptionInput(input){if(input){let value=input==="-"?"stdin":"file";this.trackCliOption({option:"input",value})}}trackCliOptionSpecUrl(specUrl){specUrl&&this.trackCliOption({option:"spec-url",value:this.redactedValue})}trackCliFlagPaginate(value){value&&this.trackCliFlag("paginate")}trackCliFlagInclude(value){value&&this.trackCliFlag("include")}trackCliFlagSilent(value){value&&this.trackCliFlag("silent")}trackCliFlagVerbose(value){value&&this.trackCliFlag("verbose")}trackCliFlagRaw(value){value&&this.trackCliFlag("raw")}trackCliFlagRefresh(value){value&&this.trackCliFlag("refresh")}trackCliOptionGenerate(format){if(format){let value=["curl"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"generate",value})}}trackCliFlagDangerouslySkipPermissions(value){value&&this.trackCliFlag("dangerously-skip-permissions")}trackCliSubcommandList(){this.trackCliSubcommand({subcommand:"list",value:"list"})}trackCliOptionFormat(format){if(format){let value=["table","json"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"format",value})}}trackCliFlagJson(json){json&&this.trackCliFlag("json")}normalizeEndpoint(endpoint){return endpoint.replace(/\/dpl_[a-zA-Z0-9]+/g,"/:deploymentId").replace(/\/prj_[a-zA-Z0-9]+/g,"/:projectId").replace(/\/team_[a-zA-Z0-9]+/g,"/:teamId").replace(/\/[a-f0-9]{24}/g,"/:id").replace(/\/[a-f0-9-]{36}/g,"/:uuid")}};import{readFile}from"fs/promises";import{resolve}from"path";async function buildRequest(endpoint,flags){let headers={},body,customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let fields=flags["--field"]||[],rawFields=flags["--raw-field"]||[];if(fields.length>0||rawFields.length>0){body={};for(let field of fields){let{key,value}=await parseField(field,!0);body[key]=value}for(let field of rawFields){let{key,value}=await parseField(field,!1);body[key]=value}}if(flags["--input"]){let inputPath=flags["--input"];if(inputPath==="-"?body=await readStdin():body=await readFile(resolve(inputPath),"utf-8"),typeof body=="string")try{body=JSON.parse(body)}catch{}}let method=flags["--method"]?.toUpperCase()||"GET";return!flags["--method"]&&body&&(method="POST"),{url:endpoint,method,headers,body}}async function parseCliKeyValueField(field,typed){return parseField(field,typed)}async function parseField(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid field format: ${field}. Expected key=value`);let key=field.substring(0,eqIndex),value=field.substring(eqIndex+1);if(typed&&typeof value=="string"){if(value.startsWith("@")){let filePath=value.substring(1);if(filePath==="-"?value=await readStdin():value=await readFile(resolve(filePath),"utf-8"),typeof value=="string")try{value=JSON.parse(value)}catch{}}else if(value==="true")value=!0;else if(value==="false")value=!1;else if(value==="null")value=null;else if(/^-?\d+$/.test(value))value=parseInt(value,10);else if(/^-?\d*\.\d+$/.test(value))value=parseFloat(value);else if(value.startsWith("[")||value.startsWith("{"))try{value=JSON.parse(value)}catch{}}return{key,value}}async function readStdin(){let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf-8")}function formatOutput(data,options){return options.raw?typeof data=="string"?data:JSON.stringify(data):JSON.stringify(data,null,2)}function generateCurlCommand(config,baseUrl){let parts=["curl"];config.method!=="GET"&&parts.push(`-X ${config.method}`),parts.push("-H 'Authorization: Bearer <TOKEN>'");for(let[key,value]of Object.entries(config.headers))parts.push(`-H '${key}: ${escapeShellArg(value)}'`);if(config.method!=="GET"&&config.body){let bodyStr=typeof config.body=="string"?config.body:JSON.stringify(config.body);parts.push("-H 'Content-Type: application/json'"),parts.push(`-d '${escapeShellArg(bodyStr)}'`)}let fullUrl=`${baseUrl}${config.url}`;return parts.push(`'${fullUrl}'`),parts.join(` \\
7
+ import{humanReadableColumnLabel}from"./chunk-GHAY4PSD.js";import{FETCH_TIMEOUT_MS,OpenApiCache,SSO_API_URL,assertAllowedSpecUrl,readSpecResponse}from"./chunk-B3K6GM2W.js";import{apiCommand,listSubcommand}from"./chunk-JLXG2XWW.js";import{help}from"./chunk-7D2HVBVP.js";import{table}from"./chunk-773GOZIR.js";import{printError}from"./chunk-V336CYEI.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{require_ms}from"./chunk-MXTC4ZAQ.js";import{TelemetryClient}from"./chunk-HUJPGK7W.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";import{createHash}from"crypto";var MAX_REDIRECTS=3;async function fetchSpecUrl(client,specUrl){let specOrigin=assertAllowedSpecUrl(specUrl).origin,probe=await fetchWithTimeout(specUrl,{readSpec:!0});if(probe.response.ok)return probe.spec??null;let nonce=getSetCookieValue(probe.response,"_vercel_sso_nonce");if(!nonce)throw output_manager_default.debug(`OpenAPI spec URL returned ${probe.response.status} without a Vercel SSO nonce`),new Error(formatHttpError(specUrl,probe.response));let token=client.authConfig.token;if(!token)return output_manager_default.debug("OpenAPI spec URL requires Vercel authentication"),null;let hashedNonce=createHash("sha256").update(nonce).digest("hex"),ssoUrl=`${SSO_API_URL}?url=${encodeURIComponent(specUrl)}&nonce=${hashedNonce}`,sso=await fetchWithTimeout(ssoUrl,{cookie:`authorization=${encodeURIComponent(`Bearer ${token}`)}; isLoggedIn=1`}),location=sso.response.headers.get("location");if(!location||!location.includes("_vercel_jwt="))throw output_manager_default.debug("OpenAPI spec URL: user has no access"),new Error(formatHttpError(specUrl,sso.response));let cookies=new Map([["_vercel_sso_nonce",nonce]]),url=location;for(let i=0;i<=MAX_REDIRECTS;i++){if(!isSameOriginUrl(url,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;let{response,spec}=await fetchWithTimeout(url,{cookie:Array.from(cookies,([name,value])=>`${name}=${value}`).join("; "),readSpec:!0});if(response.ok)return spec??null;let next=response.headers.get("location");if(response.status>=300&&response.status<400&&next){let setJwt=getSetCookieValue(response,"_vercel_jwt");setJwt&&cookies.set("_vercel_jwt",setJwt);let nextUrl=new URL(next,url).href;if(!isSameOriginUrl(nextUrl,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;url=nextUrl;continue}throw output_manager_default.debug(`OpenAPI spec URL: unexpected response ${response.status}`),new Error(formatHttpError(url,response))}return output_manager_default.debug("OpenAPI spec URL: too many redirects"),null}function createOpenApiCache(client,specUrl){return new OpenApiCache(specUrl?{specUrl,fetchSpecUrl:url=>fetchSpecUrl(client,url)}:void 0)}async function fetchWithTimeout(url,options){let controller=new AbortController,timeoutId=setTimeout(()=>controller.abort(),1e4);try{let response=await fetch(url,{redirect:"manual",signal:controller.signal,headers:options?.cookie?{cookie:options.cookie}:void 0}),spec=options?.readSpec&&response.ok?await readSpecResponse(response,formatDiagnosticUrl(url)):void 0;return{response,spec}}finally{clearTimeout(timeoutId)}}function isSameOriginUrl(url,origin){try{return new URL(url).origin===origin}catch{return!1}}function formatHttpError(url,response){let statusText=response.statusText?` ${response.statusText}`:"";return`Could not load OpenAPI spec from ${formatDiagnosticUrl(url)}: HTTP ${response.status}${statusText}.`}function formatDiagnosticUrl(url){try{let parsed=new URL(url);parsed.hash="";for(let key of parsed.searchParams.keys())parsed.searchParams.set(key,"[redacted]");return parsed.href}catch{return url}}function getSetCookieValue(response,name){let header=response.headers.get("set-cookie");if(!header)return null;let match=header.match(new RegExp(`${name}=([^;,\\s]+)`));return match?match[1]:null}function foldNamingStyle(input){return input.trim().replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[-_\s]+/g," ").trim().toLowerCase().replace(/\s+/g,"")}function operationIdToKebabCase(operationId){let s=operationId.trim();return s?s.replace(/([a-z\d])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():"unnamed"}function inferCliSubcommandAliases(ep){let upper=ep.method.toUpperCase(),hasPathParams=ep.parameters.some(p=>p.in==="path");switch(upper){case"GET":return hasPathParams?["inspect","get"]:["ls","list"];case"POST":return["add","create"];case"DELETE":return["rm","remove"];case"PUT":case"PATCH":return["update"];default:return[]}}var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1);function getByPath(obj,path){let parts=path.split(".").filter(Boolean),cur=obj;for(let p of parts){if(cur===null||typeof cur!="object")return;cur=cur[p]}return cur}var TIMESTAMP_FIELD_PATTERN=/(?:^|\.)(created|updated|deleted|expired|blocked|completed|started|finished|modified|verified|published|cancelled|revoked|invited|accepted|accessed|deployed)(?:At|_at|On|_on)?$/i,MIN_TIMESTAMP_MS=1e12,MAX_TIMESTAMP_MS=41024448e5;function isTimestampValue(value,columnPath){return typeof value!="number"||!Number.isFinite(value)||value<MIN_TIMESTAMP_MS||value>MAX_TIMESTAMP_MS?!1:TIMESTAMP_FIELD_PATTERN.test(columnPath)}function formatRelativeTime(timestamp){let diff=Date.now()-timestamp;return diff<0?"just now":import_chalk.default.gray((0,import_ms.default)(diff))}function stringifyCell(value,columnPath){return value==null?import_chalk.default.gray("--"):columnPath&&isTimestampValue(value,columnPath)?formatRelativeTime(value):typeof value=="object"?JSON.stringify(value):String(value)}function styleColumnKey(plainLabel){return import_chalk.default.gray(plainLabel)}function columnsForRow(r,display){return r.limited===!0&&display.columnsWhenLimited?.length?display.columnsWhenLimited:display.columnsDefault}function formatAsCard(r,display){let columns=columnsForRow(r,display);if(!columns.length)return null;let rows=columns.map(colPath=>[styleColumnKey(humanReadableColumnLabel(colPath)),stringifyCell(getByPath(r,colPath),colPath)]);return table(rows,{align:["l","l"],hsep:2})}function formatAsDataTable(items,display){if(items.length===0)return"(empty)";let first=items[0];if(first===null||typeof first!="object"||Array.isArray(first)){let headers2=[styleColumnKey(humanReadableColumnLabel("#")),styleColumnKey(humanReadableColumnLabel("value"))],rows=items.map((v,i)=>[String(i),stringifyCell(v,"value")]);return table([headers2,...rows])}let columns=columnsForRow(first,display);if(!columns.length)return null;let headers=columns.map(p=>styleColumnKey(humanReadableColumnLabel(p))),dataRows=items.map(item=>{let row=item!==null&&typeof item=="object"&&!Array.isArray(item)?item:{};return columns.map(colPath=>stringifyCell(getByPath(row,colPath),colPath))});return table([headers,...dataRows])}function resolveEndpointByTagAndOperationId(endpoints,tag,operationHint){let tagLower=tag.toLowerCase(),tagMatches=endpoints.filter(ep=>ep.tags.some(t=>t.toLowerCase()===tagLower));if(tagMatches.length===0)return{ok:!1,reason:"no_tag",tag,tagMatches:[],operationHint};let withOpId=tagMatches.filter(ep=>ep.operationId.length>0);if(withOpId.length===0)return{ok:!1,reason:"no_operation",tag,tagMatches,operationHint};let hint=operationHint.trim(),hintLower=hint.toLowerCase(),exact=withOpId.filter(ep=>ep.operationId===hint);if(exact.length===1)return{ok:!0,endpoint:exact[0]};if(exact.length>1)return{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exact,operationHint:hint};let exactCi=withOpId.filter(ep=>ep.operationId.toLowerCase()===hintLower);return exactCi.length===1?{ok:!0,endpoint:exactCi[0]}:exactCi.length>1?{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exactCi,operationHint:hint}:{ok:!1,reason:"no_operation",tag,tagMatches,operationHint:hint}}var import_chalk4=__toESM(require_source(),1);var ApiTelemetryClient=class extends TelemetryClient{trackCliArgumentEndpoint(endpoint){if(endpoint){let normalized=this.normalizeEndpoint(endpoint);this.trackCliArgument({arg:"endpoint",value:normalized})}}trackCliArgumentOperationId(operationId){operationId&&this.trackCliArgument({arg:"operationId",value:operationId})}trackCliOptionMethod(method){if(method){let validMethods=["GET","POST","PUT","DELETE","PATCH","HEAD"],upperMethod=method.toUpperCase(),value=validMethods.includes(upperMethod)?upperMethod:this.redactedValue;this.trackCliOption({option:"method",value})}}trackCliOptionField(fields){fields&&fields.length>0&&this.trackCliOption({option:"field",value:this.redactedArgumentsLength(fields)})}trackCliOptionRawField(fields){fields&&fields.length>0&&this.trackCliOption({option:"raw-field",value:this.redactedArgumentsLength(fields)})}trackCliOptionHeader(headers){headers&&headers.length>0&&this.trackCliOption({option:"header",value:this.redactedArgumentsLength(headers)})}trackCliOptionInput(input){if(input){let value=input==="-"?"stdin":"file";this.trackCliOption({option:"input",value})}}trackCliOptionSpecUrl(specUrl){specUrl&&this.trackCliOption({option:"spec-url",value:this.redactedValue})}trackCliFlagPaginate(value){value&&this.trackCliFlag("paginate")}trackCliFlagInclude(value){value&&this.trackCliFlag("include")}trackCliFlagSilent(value){value&&this.trackCliFlag("silent")}trackCliFlagVerbose(value){value&&this.trackCliFlag("verbose")}trackCliFlagRaw(value){value&&this.trackCliFlag("raw")}trackCliFlagRefresh(value){value&&this.trackCliFlag("refresh")}trackCliOptionGenerate(format){if(format){let value=["curl"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"generate",value})}}trackCliFlagDangerouslySkipPermissions(value){value&&this.trackCliFlag("dangerously-skip-permissions")}trackCliSubcommandList(){this.trackCliSubcommand({subcommand:"list",value:"list"})}trackCliOptionFormat(format){if(format){let value=["table","json"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"format",value})}}trackCliFlagJson(json){json&&this.trackCliFlag("json")}normalizeEndpoint(endpoint){return endpoint.replace(/\/dpl_[a-zA-Z0-9]+/g,"/:deploymentId").replace(/\/prj_[a-zA-Z0-9]+/g,"/:projectId").replace(/\/team_[a-zA-Z0-9]+/g,"/:teamId").replace(/\/[a-f0-9]{24}/g,"/:id").replace(/\/[a-f0-9-]{36}/g,"/:uuid")}};import{readFile}from"fs/promises";import{resolve}from"path";async function buildRequest(endpoint,flags){let headers={},body,customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let fields=flags["--field"]||[],rawFields=flags["--raw-field"]||[];if(fields.length>0||rawFields.length>0){body={};for(let field of fields){let{key,value}=await parseField(field,!0);body[key]=value}for(let field of rawFields){let{key,value}=await parseField(field,!1);body[key]=value}}if(flags["--input"]){let inputPath=flags["--input"];if(inputPath==="-"?body=await readStdin():body=await readFile(resolve(inputPath),"utf-8"),typeof body=="string")try{body=JSON.parse(body)}catch{}}let method=flags["--method"]?.toUpperCase()||"GET";return!flags["--method"]&&body&&(method="POST"),{url:endpoint,method,headers,body}}async function parseCliKeyValueField(field,typed){return parseField(field,typed)}async function parseField(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid field format: ${field}. Expected key=value`);let key=field.substring(0,eqIndex),value=field.substring(eqIndex+1);if(typed&&typeof value=="string"){if(value.startsWith("@")){let filePath=value.substring(1);if(filePath==="-"?value=await readStdin():value=await readFile(resolve(filePath),"utf-8"),typeof value=="string")try{value=JSON.parse(value)}catch{}}else if(value==="true")value=!0;else if(value==="false")value=!1;else if(value==="null")value=null;else if(/^-?\d+$/.test(value))value=parseInt(value,10);else if(/^-?\d*\.\d+$/.test(value))value=parseFloat(value);else if(value.startsWith("[")||value.startsWith("{"))try{value=JSON.parse(value)}catch{}}return{key,value}}async function readStdin(){let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf-8")}function formatOutput(data,options){return options.raw?typeof data=="string"?data:JSON.stringify(data):JSON.stringify(data,null,2)}function generateCurlCommand(config,baseUrl){let parts=["curl"];config.method!=="GET"&&parts.push(`-X ${config.method}`),parts.push("-H 'Authorization: Bearer <TOKEN>'");for(let[key,value]of Object.entries(config.headers))parts.push(`-H '${key}: ${escapeShellArg(value)}'`);if(config.method!=="GET"&&config.body){let bodyStr=typeof config.body=="string"?config.body:JSON.stringify(config.body);parts.push("-H 'Content-Type: application/json'"),parts.push(`-d '${escapeShellArg(bodyStr)}'`)}let fullUrl=`${baseUrl}${config.url}`;return parts.push(`'${fullUrl}'`),parts.join(` \\
8
8
  `)}function escapeShellArg(str){return str.replace(/'/g,"'\\''")}import{readFile as readFile2}from"fs/promises";import{resolve as resolve2}from"path";var GLOBAL_CLI_QUERY_PARAMS=new Set(["teamId","slug"]);async function parseOperationKeyValuePairs(endpoint,bodyFields,flags,positionalKeyValues){let pathParamNames=new Set(endpoint.parameters.filter(p=>p.in==="path").map(p=>p.name)),queryParamNames=new Set(endpoint.parameters.filter(p=>p.in==="query").map(p=>p.name)),headerParamNames=new Set(endpoint.parameters.filter(p=>p.in==="header").map(p=>p.name)),bodyFieldNames=new Set(bodyFields.map(f=>f.name)),pathValues={},queryValues={},headerValues={},body={};async function dispatchPair(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid option "${field}". Expected key=value (or use flags -F / -f).`);let key=field.slice(0,eqIndex),param=endpoint.parameters.find(p=>p.name===key);if(param?.in==="path"){let{value}=await parseCliKeyValueField(field,!1);pathValues[key]=String(value);return}if(param?.in==="query"){let{value}=await parseCliKeyValueField(field,typed);queryValues[key]=typeof value=="object"&&value!==null?JSON.stringify(value):String(value);return}if(param?.in==="header"){let{value}=await parseCliKeyValueField(field,!1);headerValues[key]=String(value);return}if(param?.in==="cookie")throw new Error(`Option "${key}" is cookie-based; set it via headers instead.`);if(bodyFieldNames.has(key)){let{value}=await parseCliKeyValueField(field,typed);body[key]=value;return}if(!param&&pathParamNames.has(key)){let{value}=await parseCliKeyValueField(field,!1);pathValues[key]=String(value);return}if(!param&&queryParamNames.has(key)){let{value}=await parseCliKeyValueField(field,typed);queryValues[key]=typeof value=="object"&&value!==null?JSON.stringify(value):String(value);return}if(!param&&headerParamNames.has(key)){let{value}=await parseCliKeyValueField(field,!1);headerValues[key]=String(value);return}throw new Error(`Unknown option "${key}" for operation ${endpoint.operationId}. Check the API docs or run \`vercel api ls --json\`.`)}for(let field of flags["--field"]||[])await dispatchPair(field,!0);for(let field of flags["--raw-field"]||[])await dispatchPair(field,!1);for(let field of positionalKeyValues)await dispatchPair(field,!0);return{pathValues,queryValues,headerValues,body}}function getMissingRequiredOperationParams(endpoint,bodyFields,parsed,flags){let missingPath=endpoint.parameters.filter(p=>p.in==="path").filter(p=>parsed.pathValues[p.name]===void 0),missingQuery=endpoint.parameters.filter(p=>p.in==="query"&&p.required&&!GLOBAL_CLI_QUERY_PARAMS.has(p.name)).filter(p=>parsed.queryValues[p.name]===void 0),missingHeader=endpoint.parameters.filter(p=>p.in==="header"&&p.required).filter(p=>parsed.headerValues[p.name]===void 0),missingBody=bodyFields.filter(f=>f.required&&parsed.body[f.name]===void 0&&!flags["--input"]);return{path:missingPath,query:missingQuery,header:missingHeader,body:missingBody}}function getUnsetOptionalOperationParams(endpoint,bodyFields,parsed,flags){let unsetQuery=endpoint.parameters.filter(p=>p.in==="query"&&parsed.queryValues[p.name]===void 0&&(!p.required||GLOBAL_CLI_QUERY_PARAMS.has(p.name))),unsetHeader=endpoint.parameters.filter(p=>p.in==="header"&&!p.required&&parsed.headerValues[p.name]===void 0),unsetBody=bodyFields.filter(f=>!f.required&&parsed.body[f.name]===void 0&&!flags["--input"]);return{query:unsetQuery,header:unsetHeader,body:unsetBody}}async function buildRequestForResolvedOperation(endpoint,bodyFields,flags,positionalKeyValues){let headers={},customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let method=(flags["--method"]?.toUpperCase()||endpoint.method).toUpperCase(),pathParamNames=new Set(endpoint.parameters.filter(p=>p.in==="path").map(p=>p.name)),parsed=await parseOperationKeyValuePairs(endpoint,bodyFields,flags,positionalKeyValues),{pathValues,queryValues,headerValues,body}=parsed;for(let[k,v]of Object.entries(headerValues))headers[k]=v;let urlPath=endpoint.path;for(let name of pathParamNames){let value=pathValues[name];if(value===void 0)throw new Error(`Missing required path option {${name}} for ${endpoint.operationId}.`);urlPath=urlPath.replace(`{${name}}`,encodeURIComponent(value))}if(/\{[^}]+\}/.test(urlPath))throw new Error(`Unresolved path placeholders in ${urlPath}. Provide values for all path options.`);let requiredQuery=endpoint.parameters.filter(p=>p.in==="query"&&p.required&&!GLOBAL_CLI_QUERY_PARAMS.has(p.name));for(let p of requiredQuery)if(queryValues[p.name]===void 0)throw new Error(`Missing required query option "${p.name}" for ${endpoint.operationId}.`);let requiredHeader=endpoint.parameters.filter(h=>h.in==="header"&&h.required);for(let h of requiredHeader)if(headerValues[h.name]===void 0)throw new Error(`Missing required header option "${h.name}" for ${endpoint.operationId}.`);let requiredBody=bodyFields.filter(f=>f.required);for(let f of requiredBody)if(body[f.name]===void 0&&!flags["--input"])throw new Error(`Missing required body option "${f.name}" for ${endpoint.operationId}.`);let queryString=new URLSearchParams(queryValues).toString();queryString&&(urlPath+=(urlPath.includes("?")?"&":"?")+queryString);let finalBody=Object.keys(body).length>0?body:void 0;if(flags["--input"]){let inputPath=flags["--input"],inputBody;if(inputPath==="-"?inputBody=await readStdin():inputBody=await readFile2(resolve2(inputPath),"utf-8"),typeof inputBody=="string")try{finalBody=JSON.parse(inputBody)}catch{finalBody=inputBody}else finalBody=inputBody}return(method==="GET"||method==="HEAD")&&(finalBody=void 0),{url:urlPath,method,headers,body:finalBody}}var API_BASE_URL="https://api.vercel.com";var import_chalk2=__toESM(require_source(),1);function colorizeMethod(method){switch(method){case"GET":return import_chalk2.default.cyan(method);case"POST":return import_chalk2.default.green(method);case"PUT":return import_chalk2.default.yellow(method);case"PATCH":return import_chalk2.default.blue(method);case"DELETE":return import_chalk2.default.red(method);default:return method}}function colorizeMethodPadded(method,width=7){let colored=colorizeMethod(method),padding=" ".repeat(Math.max(0,width-method.length));return colored+padding}function formatPathParam(paramName){return import_chalk2.default.cyan(`{${paramName}}`)}function formatTypeHint(type){return import_chalk2.default.dim(`[${type}]`)}function formatDescription(description){return description?import_chalk2.default.gray(` (${description})`):""}var import_chalk3=__toESM(require_source(),1);function getByPath2(obj,path){let current=obj;for(let segment of path.split(".")){if(current==null||typeof current!="object")return;current=current[segment]}return current}function parseArrayColumns(data,columns){let entries=Object.entries(columns),first=entries[0];if(!first)return null;let bracketIdx=first[1].indexOf("[].");if(bracketIdx===-1)return null;let arrayKey=first[1].slice(0,bracketIdx),rowColumns={};for(let[label,path]of entries){let prefix=path.slice(0,bracketIdx);if(prefix!==arrayKey||!path.startsWith(prefix+"[]."))return null;rowColumns[label]=path.slice(bracketIdx+3)}let arr=getByPath2(data,arrayKey);return Array.isArray(arr)?{rows:arr,rowColumns}:null}function formatValue(value){return value==null?import_chalk3.default.dim("\u2013"):typeof value=="number"?value>1e12&&value<2e12?new Date(value).toISOString():String(value):typeof value=="boolean"?String(value):typeof value=="string"?value:JSON.stringify(value)}function renderCard(data,columns){let entries=Object.entries(columns),maxLabel=Math.max(...entries.map(([label])=>label.length));return entries.map(([label,path])=>{let value=getByPath2(data,path);return` ${import_chalk3.default.gray(label.padEnd(maxLabel))} ${formatValue(value)}`}).join(`
9
9
  `)}function renderTable(rows,columns){let entries=Object.entries(columns),headerRow=entries.map(([label])=>label),dataRows=rows.map(row=>entries.map(([,path])=>formatValue(getByPath2(row,path)))),widths=entries.map(([label],colIdx)=>{let dataMax=dataRows.reduce((max,row)=>Math.max(max,stripAnsi(row[colIdx]).length),0);return Math.max(label.length,dataMax)}),header=headerRow.map((h,i)=>import_chalk3.default.bold(h.padEnd(widths[i]))).join(" "),body=dataRows.map(row=>row.map((cell,i)=>{let pad=widths[i]-stripAnsi(cell).length;return cell+" ".repeat(Math.max(0,pad))}).join(" "));return[header,...body].join(`
10
10
  `)}function stripAnsi(str){return str.replace(/\x1b\[[0-9;]*m/g,"")}async function api(client){let telemetryClient=new ApiTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpec=getFlagsSpecification(apiCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpec,{permissive:!0})}catch(err){return printError(err),2}let{args,flags}=parsedArgs,needHelp=flags["--help"],firstArg=args[1];if(firstArg==="ls"||firstArg==="list"){let lsFlagsSpec=getFlagsSpecification(listSubcommand.options),lsParsedArgs;try{lsParsedArgs=parseArguments(client.argv.slice(2),lsFlagsSpec)}catch(err){return printError(err),2}let lsFlags=lsParsedArgs.flags;if(lsFlags["--help"])return telemetryClient.trackCliFlagHelp("api",firstArg),output_manager_default.print(help(listSubcommand,{parent:apiCommand,columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(lsFlags);return formatResult.valid?(telemetryClient.trackCliSubcommandList(),lsFlags["--refresh"]&&telemetryClient.trackCliFlagRefresh(!0),lsFlags["--format"]&&telemetryClient.trackCliOptionFormat(lsFlags["--format"]),telemetryClient.trackCliFlagJson(lsFlags["--json"]),lsFlags["--spec-url"]&&telemetryClient.trackCliOptionSpecUrl(lsFlags["--spec-url"]),listEndpoints(client,lsFlags["--refresh"]??!1,lsFlags["--spec-url"],formatResult.jsonOutput?"json":"table")):(output_manager_default.error(formatResult.error),2)}if(needHelp)return telemetryClient.trackCliFlagHelp("api"),output_manager_default.print(help(apiCommand,{columns:client.stderr.columns})),0;flags["--dangerously-skip-permissions"]&&(client.dangerouslySkipPermissions=!0);let endpoint,selectedMethod,selectedBodyFields=[];if(firstArg)endpoint=firstArg;else if(client.stdin.isTTY){let selected=await promptEndpointSelection(client,flags["--refresh"]??!1,flags["--spec-url"]);if(!selected)return 1;endpoint=selected.finalUrl,selectedMethod=selected.method,selectedBodyFields=selected.bodyFields}else return output_manager_default.error("Endpoint is required. Usage: vercel api <endpoint>"),2;if(endpoint&&!endpoint.startsWith("/"))return output_manager_default.error(`Invalid arguments. Use an API path starting with /, or run \`${packageName} api\` interactively.`),2;try{if(new URL(endpoint,API_BASE_URL).origin!==API_BASE_URL)return output_manager_default.error("Invalid endpoint: must be a Vercel API path, not an external URL"),2}catch{return output_manager_default.error("Invalid endpoint URL format"),1}let finalFlags={...flags};if(selectedMethod&&!flags["--method"]&&(finalFlags["--method"]=selectedMethod),selectedBodyFields.length>0){let existingFields=finalFlags["--field"]||[];finalFlags["--field"]=[...existingFields,...selectedBodyFields]}let requestConfig;try{requestConfig=await buildRequest(endpoint,finalFlags)}catch(err){return printError(err),1}if(telemetryClient.trackCliArgumentEndpoint(requestConfig.url),telemetryClient.trackCliArgumentOperationId(void 0),telemetryClient.trackCliOptionMethod(flags["--method"]),telemetryClient.trackCliOptionHeader(flags["--header"]),telemetryClient.trackCliOptionInput(flags["--input"]),flags["--paginate"]&&telemetryClient.trackCliFlagPaginate(!0),flags["--include"]&&telemetryClient.trackCliFlagInclude(!0),flags["--silent"]&&telemetryClient.trackCliFlagSilent(!0),flags["--verbose"]&&telemetryClient.trackCliFlagVerbose(!0),flags["--raw"]&&telemetryClient.trackCliFlagRaw(!0),flags["--refresh"]&&telemetryClient.trackCliFlagRefresh(!0),flags["--spec-url"]&&telemetryClient.trackCliOptionSpecUrl(flags["--spec-url"]),flags["--generate"]&&telemetryClient.trackCliOptionGenerate(flags["--generate"]),flags["--dangerously-skip-permissions"]&&telemetryClient.trackCliFlagDangerouslySkipPermissions(!0),flags["--generate"]==="curl"){let curlCmd=generateCurlCommand(requestConfig,"https://api.vercel.com");return output_manager_default.log(""),output_manager_default.log("Replace <TOKEN> with your auth token:"),output_manager_default.log(""),client.stdout.write(curlCmd+`
@@ -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{getErrorRecovery,shouldEmitNonInteractiveCommandError,trackAgentError,writeAgentError}from"./chunk-ONPJXQQ6.js";import{buildCorrectedCommand,isArgumentError}from"./chunk-LYKPLTZ7.js";import{parseRetryAfterHeaderAsMillis,require_bytes}from"./chunk-NM67DIPQ.js";import{getCommandName}from"./chunk-FI772UVH.js";import{cliErrorFromUnknown,output_manager_default,recordCliError}from"./chunk-Q2YQSMIB.js";import{pkg_default}from"./chunk-AVSPFBLM.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var import_bytes=__toESM(require_bytes(),1);async function responseError(res,fallbackMessage=null,parsedBody={}){let message="",bodyError;if(res.status>=400&&res.status<500){let body;try{body=await res.json()}catch{body=parsedBody}bodyError=body.error||body.err||{},message=bodyError.message}message||(message=fallbackMessage===null?"Response Error":fallbackMessage);let err=new Error(`${message} (${res.status})`);if(err.status=res.status,err.serverMessage=message,bodyError)for(let field of Object.keys(bodyError))field!=="message"&&(err[field]=bodyError[field]);if(res.status===429||res.status===503){let parsed=parseRetryAfterHeaderAsMillis(res.headers.get("Retry-After"));err.retryAfterMs=parsed??(res.status===429?0:void 0)}return err}var MAX_SERIALIZED_ERROR_DEPTH=5;function isPlainObject(value){let proto=Object.getPrototypeOf(value);return proto===null||proto===Object.prototype}function toJsonSafe(value,ancestors,depth){if(typeof value=="bigint")return value.toString();if(!(typeof value=="function"||typeof value=="symbol")){if(value===null||typeof value!="object")return value;if(ancestors.has(value))return"[Circular]";if(depth>=MAX_SERIALIZED_ERROR_DEPTH)return"[Truncated]";if(value instanceof Error)return serializeError(value,ancestors,depth+1);if(!Array.isArray(value)&&!isPlainObject(value))return`[${value.constructor?.name||"Object"}]`;ancestors.add(value);try{if(Array.isArray(value))return value.map(item=>toJsonSafe(item,ancestors,depth+1));let copy={};for(let[key,child]of Object.entries(value))copy[key]=toJsonSafe(child,ancestors,depth+1);return copy}finally{ancestors.delete(value)}}}function serializeError(err,ancestors,depth){ancestors.add(err);try{let enumerable={name:err.name};for(let key of Object.getOwnPropertyNames(err))enumerable[key]=toJsonSafe(err[key],ancestors,depth);return enumerable}finally{ancestors.delete(err)}}function toEnumerableError(err){return err===null||typeof err!="object"?{name:"Error",message:String(err)}:serializeError(err,new WeakSet,0)}function printError(error2,client){typeof error2=="string"&&(error2=new Error(error2)),recordCliError(cliErrorFromUnknown(error2));let apiError=error2,{message,stack,status,code,sizeLimit}=apiError,argumentError=isArgumentError(error2)?error2:void 0,suggestion=argumentError?.suggestedOption&&argumentError.invalidOption,correction=suggestion&&client&&argumentError?buildCorrectedCommand(client.argv,argumentError.invalidOption,argumentError.suggestedOption,argumentError.flagsSpecification):void 0,recovery=getErrorRecovery(apiError,client),reason=status===403?"forbidden":status===402?"payment_required":status===401?"not_authorized":status===429?"rate_limited":argumentError?"invalid_arguments":"api_error",hint=argumentError?.allowedOptions?`Vercel CLI ${pkg_default.version} accepts: ${argumentError.allowedOptions.join(", ")}.${suggestion?` Did you mean ${argumentError.suggestedOption}?`:""}`:recovery.hint;if(client&&(status||argumentError?.allowedOptions)){let payload={...recovery,status:"error",reason,message:apiError.serverMessage||message,hint,...argumentError?.allowedOptions&&{allowedOptions:argumentError.allowedOptions,suggestedOption:argumentError.suggestedOption,cliVersion:pkg_default.version},...correction&&{next:[{command:correction,when:correction.includes("<")?"Replace placeholders with the intended values, then run the corrected command":"Run the corrected command"}]}};if(shouldEmitNonInteractiveCommandError(client)){output_manager_default.stopSpinner(),writeAgentError(client,payload);return}trackAgentError(client,payload)}if(hint){output_manager_default.stopSpinner(),output_manager_default.fatal(apiError.serverMessage||message||"The request failed."),output_manager_default.print(` ${hint}
7
+ import{getErrorRecovery,shouldEmitNonInteractiveCommandError,trackAgentError,writeAgentError}from"./chunk-5RR3435W.js";import{buildCorrectedCommand,isArgumentError}from"./chunk-R4VVQRLX.js";import{parseRetryAfterHeaderAsMillis,require_bytes}from"./chunk-AZULOP7M.js";import{getCommandName}from"./chunk-JESNVRVR.js";import{cliErrorFromUnknown,output_manager_default,recordCliError}from"./chunk-75IAMKGV.js";import{pkg_default}from"./chunk-OO572JUC.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);var import_bytes=__toESM(require_bytes(),1);async function responseError(res,fallbackMessage=null,parsedBody={}){let message="",bodyError;if(res.status>=400&&res.status<500){let body;try{body=await res.json()}catch{body=parsedBody}bodyError=body.error||body.err||{},message=bodyError.message}message||(message=fallbackMessage===null?"Response Error":fallbackMessage);let err=new Error(`${message} (${res.status})`);if(err.status=res.status,err.serverMessage=message,bodyError)for(let field of Object.keys(bodyError))field!=="message"&&(err[field]=bodyError[field]);if(res.status===429||res.status===503){let parsed=parseRetryAfterHeaderAsMillis(res.headers.get("Retry-After"));err.retryAfterMs=parsed??(res.status===429?0:void 0)}return err}var MAX_SERIALIZED_ERROR_DEPTH=5;function isPlainObject(value){let proto=Object.getPrototypeOf(value);return proto===null||proto===Object.prototype}function toJsonSafe(value,ancestors,depth){if(typeof value=="bigint")return value.toString();if(!(typeof value=="function"||typeof value=="symbol")){if(value===null||typeof value!="object")return value;if(ancestors.has(value))return"[Circular]";if(depth>=MAX_SERIALIZED_ERROR_DEPTH)return"[Truncated]";if(value instanceof Error)return serializeError(value,ancestors,depth+1);if(!Array.isArray(value)&&!isPlainObject(value))return`[${value.constructor?.name||"Object"}]`;ancestors.add(value);try{if(Array.isArray(value))return value.map(item=>toJsonSafe(item,ancestors,depth+1));let copy={};for(let[key,child]of Object.entries(value))copy[key]=toJsonSafe(child,ancestors,depth+1);return copy}finally{ancestors.delete(value)}}}function serializeError(err,ancestors,depth){ancestors.add(err);try{let enumerable={name:err.name};for(let key of Object.getOwnPropertyNames(err))enumerable[key]=toJsonSafe(err[key],ancestors,depth);return enumerable}finally{ancestors.delete(err)}}function toEnumerableError(err){return err===null||typeof err!="object"?{name:"Error",message:String(err)}:serializeError(err,new WeakSet,0)}function printError(error2,client){typeof error2=="string"&&(error2=new Error(error2)),recordCliError(cliErrorFromUnknown(error2));let apiError=error2,{message,stack,status,code,sizeLimit}=apiError,argumentError=isArgumentError(error2)?error2:void 0,suggestion=argumentError?.suggestedOption&&argumentError.invalidOption,correction=suggestion&&client&&argumentError?buildCorrectedCommand(client.argv,argumentError.invalidOption,argumentError.suggestedOption,argumentError.flagsSpecification):void 0,recovery=getErrorRecovery(apiError,client),reason=status===403?"forbidden":status===402?"payment_required":status===401?"not_authorized":status===429?"rate_limited":argumentError?"invalid_arguments":"api_error",hint=argumentError?.allowedOptions?`Vercel CLI ${pkg_default.version} accepts: ${argumentError.allowedOptions.join(", ")}.${suggestion?` Did you mean ${argumentError.suggestedOption}?`:""}`:recovery.hint;if(client&&(status||argumentError?.allowedOptions)){let payload={...recovery,status:"error",reason,message:apiError.serverMessage||message,hint,...argumentError?.allowedOptions&&{allowedOptions:argumentError.allowedOptions,suggestedOption:argumentError.suggestedOption,cliVersion:pkg_default.version},...correction&&{next:[{command:correction,when:correction.includes("<")?"Replace placeholders with the intended values, then run the corrected command":"Run the corrected command"}]}};if(shouldEmitNonInteractiveCommandError(client)){output_manager_default.stopSpinner(),writeAgentError(client,payload);return}trackAgentError(client,payload)}if(hint){output_manager_default.stopSpinner(),output_manager_default.fatal(apiError.serverMessage||message||"The request failed."),output_manager_default.print(` ${hint}
8
8
  `),correction&&output_manager_default.print(` ${correction}
9
9
  `);return}output_manager_default.debug(`handling error: ${stack}`),message!=="User force closed the prompt with 0 null"&&(status===403?output_manager_default.error(message||`Authentication error. Run ${getCommandName("login")} to log-in again.`):status===429?output_manager_default.error(message):code==="size_limit_exceeded"?output_manager_default.error(`File size limit exceeded (${(0,import_bytes.default)(sizeLimit)})`):message?output_manager_default.prettyError(apiError):status===500?output_manager_default.error("Unexpected server error. Please retry."):code==="USER_ABORT"?output_manager_default.log("Canceled"):output_manager_default.error(`Unexpected error. Please try again later. (${message})`))}export{responseError,toEnumerableError,printError};
@@ -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-YZBYL3SH.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,isAPIError}from"./chunk-NM67DIPQ.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-6LRVRPYO.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,isAPIError}from"./chunk-AZULOP7M.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};