vercel 62.0.0 → 62.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/chunks/{add-MCZFWZIP.js → add-7HJR3HK7.js} +1 -1
  2. package/dist/chunks/add-Q5OZFIRM.js +8 -0
  3. package/dist/chunks/add-VLVURKGS.js +8 -0
  4. package/dist/chunks/{build-4KB4NLDZ.js → build-MR7MUWBQ.js} +1 -1
  5. package/dist/chunks/{chunk-AKZAWY6R.js → chunk-2RQFMCPJ.js} +1 -1
  6. package/dist/chunks/{chunk-WVQLFM45.js → chunk-3R66O72V.js} +1 -1
  7. package/dist/chunks/{chunk-43XQUIXX.js → chunk-4HXRTNAK.js} +1 -1
  8. package/dist/chunks/{chunk-QKIDYVDL.js → chunk-5VWK73R6.js} +1 -1
  9. package/dist/chunks/{chunk-U2Z3MYSU.js → chunk-6JU3QZ3O.js} +1 -1
  10. package/dist/chunks/{chunk-OGQRWLHV.js → chunk-743NGLUN.js} +1 -1
  11. package/dist/chunks/{chunk-BN3XAVPG.js → chunk-7ANQHBBE.js} +1 -1
  12. package/dist/chunks/{chunk-HXKTQSVU.js → chunk-7I23VXBQ.js} +1 -1
  13. package/dist/chunks/{chunk-ZRNMJQX5.js → chunk-7IRKF3ZG.js} +3 -3
  14. package/dist/chunks/{chunk-36RTKJWB.js → chunk-7JFK53D4.js} +1 -1
  15. package/dist/chunks/{chunk-J3HVEQRC.js → chunk-7POWBJDF.js} +2 -2
  16. package/dist/chunks/{chunk-56FBKYDJ.js → chunk-7T4CJ6MJ.js} +1 -1
  17. package/dist/chunks/{chunk-XWD3HYWE.js → chunk-A752WDCH.js} +1 -1
  18. package/dist/chunks/{chunk-VNOZYSNT.js → chunk-ACCZWEKL.js} +1 -1
  19. package/dist/chunks/chunk-ADDXKC3J.js +9 -0
  20. package/dist/chunks/{chunk-2A2GVGNS.js → chunk-AKPQWZIP.js} +2 -2
  21. package/dist/chunks/chunk-ALXWJ7XN.js +7 -0
  22. package/dist/chunks/{chunk-F46FFOPY.js → chunk-B5PFD6Q3.js} +1 -1
  23. package/dist/chunks/{chunk-HBB6S6FN.js → chunk-C3XFIO5L.js} +1 -1
  24. package/dist/chunks/{chunk-4DGSVSWX.js → chunk-C6ITILVT.js} +2 -2
  25. package/dist/chunks/{chunk-YZH6RUFI.js → chunk-CQ3RAERR.js} +1 -1
  26. package/dist/chunks/{chunk-IDWEEGMC.js → chunk-CVX5X5RI.js} +1 -1
  27. package/dist/chunks/chunk-D5VTBRWF.js +7 -0
  28. package/dist/chunks/{chunk-56CIPRSY.js → chunk-DECIQZZQ.js} +3 -3
  29. package/dist/chunks/{chunk-ZQZL5YQA.js → chunk-E4RLHRDF.js} +1 -1
  30. package/dist/chunks/{chunk-2F5ENFZE.js → chunk-EQHNA4BW.js} +1 -1
  31. package/dist/chunks/{chunk-GP62PIK6.js → chunk-GASSNHZG.js} +1 -1
  32. package/dist/chunks/{chunk-ORF2KLRG.js → chunk-HLVUEYOZ.js} +1 -1
  33. package/dist/chunks/chunk-HVROAV4B.js +9 -0
  34. package/dist/chunks/{chunk-HTPAVQS4.js → chunk-HYW4A5B3.js} +1 -1
  35. package/dist/chunks/{chunk-ZXE4XYIV.js → chunk-ILFUNCJZ.js} +1 -1
  36. package/dist/chunks/{chunk-GA25RADA.js → chunk-ILXXXXVQ.js} +1 -1
  37. package/dist/chunks/{chunk-X7REKM7I.js → chunk-JO3XBFR3.js} +1 -1
  38. package/dist/chunks/{chunk-63524SZ2.js → chunk-JRU6AGXG.js} +1 -1
  39. package/dist/chunks/{chunk-6FGTAOZC.js → chunk-JSKSNCK2.js} +1 -1
  40. package/dist/chunks/{chunk-XSBLZMTW.js → chunk-K5WTLFS6.js} +1 -1
  41. package/dist/chunks/{chunk-KMHCNMWF.js → chunk-KG5BMLOI.js} +1 -1
  42. package/dist/chunks/{chunk-SVOAPAXM.js → chunk-KOSM3DYE.js} +1 -1
  43. package/dist/chunks/{chunk-UNXGP4T4.js → chunk-KREBNPHL.js} +1 -1
  44. package/dist/chunks/{chunk-UOS7HE4I.js → chunk-L46BHPRD.js} +1 -1
  45. package/dist/chunks/{chunk-NNEWLQZ2.js → chunk-LCWCTL6L.js} +1 -1
  46. package/dist/chunks/{chunk-3AZEJ674.js → chunk-LCY4SULE.js} +1 -1
  47. package/dist/chunks/chunk-LHQUNL52.js +7 -0
  48. package/dist/chunks/{chunk-53BZCZTW.js → chunk-M7ZGWERO.js} +1 -1
  49. package/dist/chunks/{chunk-A5VLP25I.js → chunk-MCCL762Q.js} +1 -1
  50. package/dist/chunks/chunk-MK3CTSDV.js +24 -0
  51. package/dist/chunks/{chunk-DT3EUC6S.js → chunk-N4PVXHAJ.js} +2 -1
  52. package/dist/chunks/{chunk-T72CT7NM.js → chunk-N5MNZPPJ.js} +1 -1
  53. package/dist/chunks/{chunk-ODEEQEAD.js → chunk-N7XPPYQQ.js} +1 -1
  54. package/dist/chunks/{chunk-OMXVC7WL.js → chunk-NESZV33T.js} +1 -1
  55. package/dist/chunks/{chunk-J27GIFGM.js → chunk-NRN65VUM.js} +1 -1
  56. package/dist/chunks/{chunk-6HWPJHPE.js → chunk-NT67T6DL.js} +1 -1
  57. package/dist/chunks/chunk-NXTK7VKL.js +7 -0
  58. package/dist/chunks/{chunk-6MNJOHPD.js → chunk-PADCVJ7G.js} +1 -1
  59. package/dist/chunks/{chunk-2RU3W7DI.js → chunk-PAI3WRPA.js} +1 -1
  60. package/dist/chunks/{chunk-3RR5CAUY.js → chunk-PTFKU33G.js} +1 -1
  61. package/dist/chunks/{chunk-UKVHDIP7.js → chunk-PV5YI2ZZ.js} +1 -1
  62. package/dist/chunks/{chunk-UMSD2UEI.js → chunk-RFWCEREA.js} +1 -1
  63. package/dist/chunks/{chunk-HRW6JPGE.js → chunk-RVKOPGOI.js} +1 -1
  64. package/dist/chunks/{chunk-JV2R73IG.js → chunk-S2LBGLRE.js} +1 -1
  65. package/dist/chunks/{chunk-6OI6SRHZ.js → chunk-SDGWKUST.js} +1 -1
  66. package/dist/chunks/{chunk-QS3H2ANN.js → chunk-UOHVKN6N.js} +1 -1
  67. package/dist/chunks/{chunk-4HR5QZI5.js → chunk-UWO3M2L2.js} +1 -1
  68. package/dist/chunks/{chunk-J4WPHU3P.js → chunk-VDOJERIW.js} +1 -1
  69. package/dist/chunks/chunk-VGXFOQ4P.js +8 -0
  70. package/dist/chunks/{chunk-WPC7UHAS.js → chunk-VTMLKJVQ.js} +1 -1
  71. package/dist/chunks/{chunk-YIJERP7V.js → chunk-VZDY57PJ.js} +1 -1
  72. package/dist/chunks/{chunk-LW7WCZ52.js → chunk-W7PVS44H.js} +1 -1
  73. package/dist/chunks/{chunk-LQMW75EU.js → chunk-WN6OXK2F.js} +1 -1
  74. package/dist/chunks/{chunk-2YSKT6HL.js → chunk-WOKSTB3F.js} +1 -1
  75. package/dist/chunks/{chunk-3CJI4EAR.js → chunk-WW3VUXRV.js} +1 -1
  76. package/dist/chunks/{chunk-QMLU6UFC.js → chunk-X47XV2WG.js} +1 -1
  77. package/dist/chunks/{chunk-6WAQETPS.js → chunk-ZQIUMXCI.js} +1 -1
  78. package/dist/chunks/{chunk-ZRVFN7YO.js → chunk-ZUYWATU5.js} +1 -1
  79. package/dist/chunks/{clear-6NP2IT4F.js → clear-PPE55RPM.js} +1 -1
  80. package/dist/chunks/{compile-vercel-config-7JBRIIM7.js → compile-vercel-config-2IC23CNT.js} +1 -1
  81. package/dist/chunks/{config-ZP32YP6C.js → config-G2A6KPPM.js} +1 -1
  82. package/dist/chunks/{config-562NRVVZ.js → config-T3WHONFJ.js} +1 -1
  83. package/dist/chunks/config-validator.mjs +1 -1
  84. package/dist/chunks/{delete-UL76FA4Q.js → delete-75SYJKNE.js} +1 -1
  85. package/dist/chunks/{delete-J4TGLAU6.js → delete-MHXN5KTO.js} +1 -1
  86. package/dist/chunks/{detect-projects-325QE23N.js → detect-projects-GJF4VXQI.js} +1 -1
  87. package/dist/chunks/detect-services-K3363KB7.js +7 -0
  88. package/dist/chunks/{disable-CNJCXFS4.js → disable-OUYOHEWN.js} +1 -1
  89. package/dist/chunks/{discard-2YP7E4YP.js → discard-RXSHOY3J.js} +1 -1
  90. package/dist/chunks/{edit-NTJXKEVD.js → edit-Y7OL72ZK.js} +1 -1
  91. package/dist/chunks/{edit-I5L443ZZ.js → edit-Z5RCWPOX.js} +1 -1
  92. package/dist/chunks/{enable-JQVGB5EU.js → enable-HI2UH2NM.js} +1 -1
  93. package/dist/chunks/{export-KK46QDGW.js → export-CMP3APAJ.js} +1 -1
  94. package/dist/chunks/{future-T4Q7RANL.js → future-GS7ZLJ3N.js} +1 -1
  95. package/dist/chunks/{generate-cert-for-deploy-LUHAFVYC.js → generate-cert-for-deploy-2HHUYGHU.js} +1 -1
  96. package/dist/chunks/{image-4F5NKSSP.js → image-SQIUEBFK.js} +1 -1
  97. package/dist/chunks/{import-builders-B2QQXOHS.js → import-builders-EUOOFPHW.js} +1 -1
  98. package/dist/chunks/{inspect-MSDBVOII.js → inspect-2SXPXNYH.js} +1 -1
  99. package/dist/chunks/{inspect-UINFK4D6.js → inspect-DYNTJMTQ.js} +1 -1
  100. package/dist/chunks/{inspect-OZH4CRGR.js → inspect-J3F3U3YF.js} +1 -1
  101. package/dist/chunks/{inspect-VJ4JXO4W.js → inspect-KYFVYFWX.js} +1 -1
  102. package/dist/chunks/{inspect-TDCFV3JA.js → inspect-V7HA2GZ5.js} +1 -1
  103. package/dist/chunks/{list-W2AYLMXB.js → list-TSDBEAVF.js} +1 -1
  104. package/dist/chunks/{list-GDUN5WEP.js → list-X4MKKDJX.js} +1 -1
  105. package/dist/chunks/{list-VYCM7K3Y.js → list-ZQSOWXRI.js} +1 -1
  106. package/dist/chunks/{login-DFTGXDX2.js → login-5FMKHZVG.js} +1 -1
  107. package/dist/chunks/{login-EBMKYY53.js → login-YEDMPXUF.js} +1 -1
  108. package/dist/chunks/{logs-IXHYNZLV.js → logs-X2OIQXGW.js} +1 -1
  109. package/dist/chunks/{ls-XZO3FMRZ.js → ls-4W4KTJ6T.js} +1 -1
  110. package/dist/chunks/{ls-Z3VHVO6V.js → ls-6EDJUUDW.js} +1 -1
  111. package/dist/chunks/{ls-63MC7N47.js → ls-BMAVUMXU.js} +1 -1
  112. package/dist/chunks/{ls-6K3MIAYQ.js → ls-HK45UWBD.js} +1 -1
  113. package/dist/chunks/{ls-EXRSJHKJ.js → ls-LAYBQVU2.js} +1 -1
  114. package/dist/chunks/{ls-4MYTCHNA.js → ls-SQ42O6O5.js} +1 -1
  115. package/dist/chunks/{ls-AR2DBNXD.js → ls-XIJ4CY2N.js} +1 -1
  116. package/dist/chunks/{mutate-QDPLCRQI.js → mutate-6FCOCHSA.js} +1 -1
  117. package/dist/chunks/{notifications-T32HQJY3.js → notifications-JTK7ZOLC.js} +1 -1
  118. package/dist/chunks/{open-EN657452.js → open-3G4R3VIN.js} +1 -1
  119. package/dist/chunks/{openapi-V26Z3DHE.js → openapi-W365UPH2.js} +1 -1
  120. package/dist/chunks/{permissions-FOQAHGJV.js → permissions-IWUBXZBZ.js} +1 -1
  121. package/dist/chunks/{prompt-missing-credentials-OHEVPOTD.js → prompt-missing-credentials-VDR5HVA2.js} +1 -1
  122. package/dist/chunks/{publish-72BFQW57.js → publish-5QKVU6YV.js} +1 -1
  123. package/dist/chunks/pull-K4JQEP7N.js +7 -0
  124. package/dist/chunks/{purchase-domain-if-available-GNUGZD5G.js → purchase-domain-if-available-Q7H2TGKR.js} +1 -1
  125. package/dist/chunks/{push-KXIA3WMX.js → push-COILRLCW.js} +1 -1
  126. package/dist/chunks/{query-3YKNY4BU.js → query-ABPO2REN.js} +2 -2
  127. package/dist/chunks/{reauthenticate-L4S7TZ4L.js → reauthenticate-3H5Q2ZWD.js} +1 -1
  128. package/dist/chunks/{reorder-OUMHYKGW.js → reorder-FBUQ5ET7.js} +1 -1
  129. package/dist/chunks/{reply-RY25JMY6.js → reply-FR5VO7DA.js} +1 -1
  130. package/dist/chunks/{resolve-5BCDAP6S.js → resolve-JI2ENFS6.js} +1 -1
  131. package/dist/chunks/{restore-UUSDAZCM.js → restore-LYY4BSYJ.js} +1 -1
  132. package/dist/chunks/{rm-HLZI2UGH.js → rm-C2RWWMO3.js} +1 -1
  133. package/dist/chunks/{rm-OY4YZTBH.js → rm-CYYVIF2U.js} +1 -1
  134. package/dist/chunks/rm-ETLZ75RJ.js +8 -0
  135. package/dist/chunks/{rm-677RFR3N.js → rm-GHSQEFRG.js} +1 -1
  136. package/dist/chunks/{rm-LA26QYTP.js → rm-KHO6RV55.js} +1 -1
  137. package/dist/chunks/{routes-IPGKJ2E4.js → routes-FOCZWOGO.js} +1 -1
  138. package/dist/chunks/{rule-inspect-TW56Z4DI.js → rule-inspect-MISYALLU.js} +1 -1
  139. package/dist/chunks/{rules-IMBUQQNG.js → rules-KAGL6MH3.js} +1 -1
  140. package/dist/chunks/schema-EKWTCBNR.js +14 -0
  141. package/dist/chunks/{schema-CJ7N23WS.js → schema-FZVKQRNB.js} +2 -2
  142. package/dist/chunks/{select-org-EIEVJ6Z7.js → select-org-37C26F7T.js} +1 -1
  143. package/dist/chunks/set-5D7C6HMZ.js +7 -0
  144. package/dist/chunks/setup-and-link-H4P3FZB3.js +7 -0
  145. package/dist/chunks/{tags-P3BOHMPP.js → tags-DVGQQZNC.js} +1 -1
  146. package/dist/chunks/{types-CMM7WKD6.js → types-UN5J66MI.js} +1 -1
  147. package/dist/chunks/{update-L5QEVUQO.js → update-QY3ZME4T.js} +1 -1
  148. package/dist/commands/build/index.js +1 -1
  149. package/dist/commands/deploy/index.js +4 -4
  150. package/dist/commands/dev/index.js +7 -7
  151. package/dist/commands/env/index.js +1 -1
  152. package/dist/commands/link/index.js +1 -1
  153. package/dist/commands/list/index.js +1 -1
  154. package/dist/commands-bulk.js +699 -665
  155. package/dist/index.js +2 -2
  156. package/dist/root-help-commands.mjs +1 -1
  157. package/dist/vc.js +4 -2
  158. package/dist/version.mjs +1 -1
  159. package/package.json +56 -55
  160. package/dist/chunks/add-3IGZTUFX.js +0 -8
  161. package/dist/chunks/add-PVWJ6JM2.js +0 -8
  162. package/dist/chunks/chunk-2HB5UL2I.js +0 -9
  163. package/dist/chunks/chunk-6RUAMGHK.js +0 -9
  164. package/dist/chunks/chunk-K7RJ5LI6.js +0 -7
  165. package/dist/chunks/chunk-O242I22A.js +0 -7
  166. package/dist/chunks/chunk-O5GXI6UQ.js +0 -24
  167. package/dist/chunks/chunk-XKSNY65J.js +0 -7
  168. package/dist/chunks/chunk-XYPCSFQH.js +0 -7
  169. package/dist/chunks/detect-services-MGWUCUFW.js +0 -7
  170. package/dist/chunks/pull-LZHMR2OS.js +0 -7
  171. package/dist/chunks/rm-Y7E3Y4EY.js +0 -8
  172. package/dist/chunks/schema-HZIWO2YM.js +0 -14
  173. package/dist/chunks/set-G3SGK3DK.js +0 -7
  174. package/dist/chunks/setup-and-link-ARUWFOSZ.js +0 -7
package/dist/index.js CHANGED
@@ -4,14 +4,14 @@ 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{BUILD_LABEL}from"./chunks/chunk-TKBORMUF.js";import{help as help2}from"./chunks/chunk-J6OPPI3A.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-GP62PIK6.js";import{matchesCliApiTag}from"./chunks/chunk-J4WPHU3P.js";import{getUpdateCommand}from"./chunks/chunk-KMHCNMWF.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-XSBLZMTW.js";import"./chunks/chunk-U56NHYAH.js";import{Client,isValidAccessToken}from"./chunks/chunk-56CIPRSY.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-V6MR45PD.js";import"./chunks/chunk-2I64AYHG.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-I46LFJJG.js";import{commands,commandsStructs,isHiddenCommand}from"./chunks/chunk-2HB5UL2I.js";import"./chunks/chunk-XKSNY65J.js";import"./chunks/chunk-WVQLFM45.js";import"./chunks/chunk-K7RJ5LI6.js";import"./chunks/chunk-AKZAWY6R.js";import"./chunks/chunk-6HWPJHPE.js";import"./chunks/chunk-OMXVC7WL.js";import"./chunks/chunk-UMSD2UEI.js";import"./chunks/chunk-SVOAPAXM.js";import"./chunks/chunk-36RTKJWB.js";import"./chunks/chunk-HRW6JPGE.js";import"./chunks/chunk-6RUAMGHK.js";import"./chunks/chunk-63524SZ2.js";import"./chunks/chunk-LW7WCZ52.js";import"./chunks/chunk-HXKTQSVU.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-LQMW75EU.js";import"./chunks/chunk-HBB6S6FN.js";import"./chunks/chunk-FAW6NBLQ.js";import"./chunks/chunk-F46FFOPY.js";import"./chunks/chunk-SOJCELXH.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import"./chunks/chunk-JV2R73IG.js";import{help,resolveHelpTarget}from"./chunks/chunk-QS3H2ANN.js";import"./chunks/chunk-6TAQ6OWD.js";import{getAuthConfigFilePath,getConfigFilePath,getScope,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-O242I22A.js";import{getGlobalPathConfig}from"./chunks/chunk-YZH6RUFI.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-A5VLP25I.js";import"./chunks/chunk-RCTYVKM5.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-56FBKYDJ.js";import{getArgs,parseArguments}from"./chunks/chunk-NNEWLQZ2.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-ZRNMJQX5.js";import"./chunks/chunk-F2ZWW2IO.js";import"./chunks/chunk-B4ATVYZW.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{require_cli_config}from"./chunks/chunk-BRK4OB4B.js";import"./chunks/chunk-WPS6JZF6.js";import"./chunks/chunk-OSCCYU74.js";import{shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-QKIDYVDL.js";import"./chunks/chunk-BKV35LVB.js";import{globalCliFlagTakesValue}from"./chunks/chunk-UKVHDIP7.js";import"./chunks/chunk-YMM3VY3J.js";import{getUser}from"./chunks/chunk-SM5JI6QM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-RINZXCDJ.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{Diagnostic,output_manager_default,require_build_utils}from"./chunks/chunk-EWWFNMPZ.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-6L236MNA.js";var require_epipebomb=__commonJS({"../../node_modules/.pnpm/epipebomb@1.0.0/node_modules/epipebomb/epipebomb.js"(exports,module){module.exports=epipeBomb;function epipeBomb(stream,callback){stream==null&&(stream=process.stdout),callback==null&&(callback=process.exit);function epipeFilter(err){if(err.code==="EPIPE")return callback();stream.listeners("error").length<=1&&(stream.removeAllListeners(),stream.emit("error",err),stream.on("error",epipeFilter))}stream.on("error",epipeFilter)}}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags2(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve=>{let timer=setTimeout(()=>{req.destroy(),resolve(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve(void 0);return}resolve(JSON.parse(buf))}catch{resolve(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils3=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1),import_epipebomb=__toESM(require_epipebomb(),1);import{join as join2}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var sentry;async function getSentry(){if(!sentry){let[SentryModule,{SENTRY_DSN},{default:pkg}]=await Promise.all([import("./chunks/cjs-GOQHXIHX.js"),import("./chunks/constants-NCE2LWSS.js"),import("./chunks/pkg-YFU67U7I.js")]),Sentry="init"in SentryModule?SentryModule:SentryModule.default;Sentry.init({dsn:SENTRY_DSN,release:`vercel-cli@${pkg.version}`,environment:"stable",autoSessionTracking:!1}),sentry=Sentry}return sentry}var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];function isOutputDebugEnabled(debugFlag){return debugFlag===!0||process.env.VERCEL_CLI_DEBUG==="1"}function getCachedScopeTeamId(config2,scope){return config2.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config2=client2.config;config2.cachedTeamIds={...config2.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config2,currentTeam:persistedTeamId})}var import_error_utils=__toESM(require_dist(),1);async function reportError(sentry2,client2,error){if(ignoreError(error))return;let user,team,scopeError;try{({user,team}=await getScope(client2))}catch(err){(0,import_error_utils.isError)(err)&&(scopeError=err)}sentry2.withScope(scope=>{if(user){let spec={email:user.email,id:user.id,username:user.username,name:user.name};scope.setUser(spec)}team&&scope.setTag("currentTeam",team.id),scopeError&&scope.setExtra("scopeError",{name:scopeError.name,message:scopeError.message,stack:scopeError.stack});let args,argsError;try{args=getArgs(process.argv.slice(2),{})}catch(err){(0,import_error_utils.isError)(err)&&(argsError=err)}if(args){let flags=["--env","--build-env","--token"];for(let flag of flags)args[flag]&&(args[flag]="REDACTED");args._.length>=4&&args._[0].startsWith("secret")&&args._[1]==="add"&&(args._[3]="REDACTED"),scope.setExtra("args",args)}else{let msg="Unable to parse args";argsError&&(msg+=`: ${argsError}`),scope.setExtra("args",msg)}scope.setExtra("node",{execPath:process.execPath,version:process.version,platform:process.platform}),sentry2.captureException(error)});let sentryClient=sentry2.getCurrentHub().getClient();sentryClient&&await sentryClient.close()}function ignoreError(error){return(0,import_error_utils.isError)(error)&&error.message.includes("uv_cwd")}var import_types=__toESM(require_types(),1);import path from"path";var import_error_utils2=__toESM(require_dist(),1);var config;async function earlyGetConfig(configFile){if(config)return config;let localPath;try{localPath=process.cwd()}catch(err){if((0,import_error_utils2.isErrnoException)(err)&&err.code==="ENOENT")return new WorkingDirectoryDoesNotExist;throw err}if(configFile){let localFilePath=path.resolve(localPath,configFile);output_manager_default.debug(`Found config in provided --local-config path ${localFilePath}`);let localConfig=await readJSONFile(localFilePath);return localConfig instanceof CantParseJSONFile?localConfig:localConfig===null?new CantFindConfig([humanizePath(localFilePath)]):(config=localConfig,config[import_types.fileNameSymbol]=configFile,config)}let vercelFilePath=path.resolve(localPath,"vercel.json"),nowFilePath=path.resolve(localPath,"now.json"),[vercelConfig,nowConfig]=await Promise.all([readJSONFile(vercelFilePath),readJSONFile(nowFilePath)]);return vercelConfig instanceof CantParseJSONFile?vercelConfig:nowConfig instanceof CantParseJSONFile?nowConfig:vercelConfig!==null?(output_manager_default.debug(`Found config in file "${vercelFilePath}"`),config=vercelConfig,config[import_types.fileNameSymbol]="vercel.json",config):nowConfig!==null?new DeprecatedNowJson(nowFilePath):new CantFindConfig([vercelFilePath].map(humanizePath))}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}var import_ci_info=__toESM(require_ci_info(),1);var RootTelemetryClient=class extends TelemetryClient{trackCliExtension(){this.trackExtension()}trackCliDefaultDeploy(defaultDeploy){defaultDeploy&&this.trackDefaultDeploy()}trackCliCommandAgent(actual){this.trackCliCommand({command:"agent",value:actual})}trackCliCommandAgentRuns(actual){this.trackCliCommand({command:"agent-runs",value:actual})}trackCliCommandAiGateway(actual){this.trackCliCommand({command:"ai-gateway",value:actual})}trackCliCommandAlias(actual){this.trackCliCommand({command:"alias",value:actual})}trackCliCommandActivity(actual){this.trackCliCommand({command:"activity",value:actual})}trackCliCommandAlerts(actual){this.trackCliCommand({command:"alerts",value:actual})}trackCliCommandApi(actual){this.trackCliCommand({command:"api",value:actual})}trackCliCommandBisect(actual){this.trackCliCommand({command:"bisect",value:actual})}trackCliCommandBlob(actual){this.trackCliCommand({command:"blob",value:actual})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandCi(actual){this.trackCliCommand({command:"ci",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandProject(actual){this.trackCliCommand({command:"project",value:actual})}trackCliCommandPromote(actual){this.trackCliCommand({command:"promote",value:actual})}trackCliCommandPull(actual){this.trackCliCommand({command:"pull",value:actual})}trackCliCommandRollback(actual){this.trackCliCommand({command:"rollback",value:actual})}trackCliCommandRollingRelease(actual){this.trackCliCommand({command:"rolling-release",value:actual})}trackCliCommandRedeploy(actual){this.trackCliCommand({command:"redeploy",value:actual})}trackCliCommandRedirects(actual){this.trackCliCommand({command:"redirects",value:actual})}trackCliCommandRoutes(actual){this.trackCliCommand({command:"routes",value:actual})}trackCliCommandRemove(actual){this.trackCliCommand({command:"remove",value:actual})}trackCliCommandSignup(actual){this.trackCliCommand({command:"signup",value:actual})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSetup(actual){this.trackCliCommand({command:"setup",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",value:actual})}trackCliCommandSchedules(actual){this.trackCliCommand({command:"schedules",value:actual})}trackCliCommandSecurity(actual){this.trackCliCommand({command:"security",value:actual})}trackCliCommandStorage(actual){this.trackCliCommand({command:"storage",value:actual})}trackCliCommandTarget(actual){this.trackCliCommand({command:"target",value:actual})}trackCliCommandTeams(actual){this.trackCliCommand({command:"teams",value:actual})}trackCliCommandTokens(actual){this.trackCliCommand({command:"tokens",value:actual})}trackCliCommandTelemetry(actual){this.trackCliCommand({command:"telemetry",value:actual})}trackCliCommandTraces(actual){this.trackCliCommand({command:"traces",value:actual})}trackCliCommandWhoami(actual){this.trackCliCommand({command:"whoami",value:actual})}trackCliCommandUpgrade(actual){this.trackCliCommand({command:"upgrade",value:actual})}trackCliCommandVersion(actual){this.trackCliCommand({command:"version",value:actual})}trackCliCommandWebhooks(actual){this.trackCliCommand({command:"webhooks",value:actual})}trackCliCommandUsage(actual){this.trackCliCommand({command:"usage",value:actual})}trackCliCommandVcr(actual){this.trackCliCommand({command:"vcr",value:actual})}trackCPUs(){super.trackCPUs()}trackAgenticUse(agent){super.trackAgenticUse(agent)}trackArch(){super.trackArch()}trackPlatform(){super.trackPlatform()}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function printCommandHelp(client2,commandName,tokens){let name=commandName?commands.get(commandName):void 0;if(!name||name==="sandbox")return!1;let root=commandsStructs.find(command=>command.name===name&&"options"in command);if(!root)return!1;let target=resolveHelpTarget(root,tokens);return target.command.dynamicHelp?!1:(new RootTelemetryClient({opts:{store:client2.telemetryEventStore}}).trackCliFlagHelp([root.name,...target.typedPath].join(":")),client2.stdout.write(help(target.command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),!0)}function tokensAfterCommand(argv){let args=argv.slice(2);for(let i=0;i<args.length;i++){let arg=args[i];if(arg==="--")return[];if(arg.startsWith("-")){!arg.includes("=")&&globalCliFlagTakesValue(arg)&&i++;continue}return args.slice(i+1)}return[]}var BETA_COMMANDS=new Set(["api","budget","budgets","crons","curl","kms","schedules","webhooks"]);var BASIC_COMMANDS=new Set(["build","cache","deploy","dev","env","git","help","init","inspect","install","integration","integration-resource","link","list","login","logout","open","promote","pull","redeploy","rollback","signup","switch"]),MAX_LISTED_ALIAS_LENGTH=3,DEFAULT_COMMAND="deploy",HELP_ROW={names:["help"],description:"Show help for a command",basic:!0,default:!1};function summarize(description){let firstLine=description.trim().split(`
7
+ import{BUILD_LABEL}from"./chunks/chunk-TKBORMUF.js";import{help as help2}from"./chunks/chunk-J6OPPI3A.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-GASSNHZG.js";import{matchesCliApiTag}from"./chunks/chunk-VDOJERIW.js";import{getUpdateCommand}from"./chunks/chunk-KG5BMLOI.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-K5WTLFS6.js";import"./chunks/chunk-U56NHYAH.js";import{Client,isValidAccessToken}from"./chunks/chunk-DECIQZZQ.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-V6MR45PD.js";import"./chunks/chunk-2I64AYHG.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-I46LFJJG.js";import{commands,commandsStructs,isHiddenCommand}from"./chunks/chunk-ADDXKC3J.js";import"./chunks/chunk-LHQUNL52.js";import"./chunks/chunk-3R66O72V.js";import"./chunks/chunk-D5VTBRWF.js";import"./chunks/chunk-2RQFMCPJ.js";import"./chunks/chunk-NT67T6DL.js";import"./chunks/chunk-NESZV33T.js";import"./chunks/chunk-RFWCEREA.js";import"./chunks/chunk-KOSM3DYE.js";import"./chunks/chunk-7JFK53D4.js";import"./chunks/chunk-RVKOPGOI.js";import"./chunks/chunk-HVROAV4B.js";import"./chunks/chunk-JRU6AGXG.js";import"./chunks/chunk-W7PVS44H.js";import"./chunks/chunk-7I23VXBQ.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-WN6OXK2F.js";import"./chunks/chunk-C3XFIO5L.js";import"./chunks/chunk-FAW6NBLQ.js";import"./chunks/chunk-B5PFD6Q3.js";import"./chunks/chunk-SOJCELXH.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import"./chunks/chunk-S2LBGLRE.js";import{help,resolveHelpTarget}from"./chunks/chunk-UOHVKN6N.js";import"./chunks/chunk-6TAQ6OWD.js";import{forgetCachedTeamSlug,getAuthConfigFilePath,getConfigFilePath,getScope,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-ALXWJ7XN.js";import"./chunks/chunk-QTKJC2O5.js";import{getGlobalPathConfig}from"./chunks/chunk-CQ3RAERR.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-MCCL762Q.js";import"./chunks/chunk-RCTYVKM5.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-7T4CJ6MJ.js";import{getArgs,parseArguments}from"./chunks/chunk-LCWCTL6L.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-7IRKF3ZG.js";import"./chunks/chunk-F2ZWW2IO.js";import"./chunks/chunk-B4ATVYZW.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{require_cli_config}from"./chunks/chunk-BRK4OB4B.js";import"./chunks/chunk-WPS6JZF6.js";import"./chunks/chunk-OSCCYU74.js";import{shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-5VWK73R6.js";import"./chunks/chunk-BKV35LVB.js";import{globalCliFlagTakesValue}from"./chunks/chunk-PV5YI2ZZ.js";import"./chunks/chunk-YMM3VY3J.js";import{getUser}from"./chunks/chunk-SM5JI6QM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-RINZXCDJ.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{Diagnostic,output_manager_default,require_build_utils}from"./chunks/chunk-EWWFNMPZ.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-6L236MNA.js";var require_epipebomb=__commonJS({"../../node_modules/.pnpm/epipebomb@1.0.0/node_modules/epipebomb/epipebomb.js"(exports,module){module.exports=epipeBomb;function epipeBomb(stream,callback){stream==null&&(stream=process.stdout),callback==null&&(callback=process.exit);function epipeFilter(err){if(err.code==="EPIPE")return callback();stream.listeners("error").length<=1&&(stream.removeAllListeners(),stream.emit("error",err),stream.on("error",epipeFilter))}stream.on("error",epipeFilter)}}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags2(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve=>{let timer=setTimeout(()=>{req.destroy(),resolve(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve(void 0);return}resolve(JSON.parse(buf))}catch{resolve(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils3=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1),import_epipebomb=__toESM(require_epipebomb(),1);import{join as join2}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var sentry;async function getSentry(){if(!sentry){let[SentryModule,{SENTRY_DSN},{default:pkg}]=await Promise.all([import("./chunks/cjs-GOQHXIHX.js"),import("./chunks/constants-NCE2LWSS.js"),import("./chunks/pkg-YFU67U7I.js")]),Sentry="init"in SentryModule?SentryModule:SentryModule.default;Sentry.init({dsn:SENTRY_DSN,release:`vercel-cli@${pkg.version}`,environment:"stable",autoSessionTracking:!1}),sentry=Sentry}return sentry}var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];function isOutputDebugEnabled(debugFlag){return debugFlag===!0||process.env.VERCEL_CLI_DEBUG==="1"}function getCachedScopeTeamId(config2,scope){return config2.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config2=client2.config;config2.cachedTeamIds={...config2.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config2,currentTeam:persistedTeamId})}var import_error_utils=__toESM(require_dist(),1);async function reportError(sentry2,client2,error){if(ignoreError(error))return;let user,team,scopeError;try{({user,team}=await getScope(client2))}catch(err){(0,import_error_utils.isError)(err)&&(scopeError=err)}sentry2.withScope(scope=>{if(user){let spec={email:user.email,id:user.id,username:user.username,name:user.name};scope.setUser(spec)}team&&scope.setTag("currentTeam",team.id),scopeError&&scope.setExtra("scopeError",{name:scopeError.name,message:scopeError.message,stack:scopeError.stack});let args,argsError;try{args=getArgs(process.argv.slice(2),{})}catch(err){(0,import_error_utils.isError)(err)&&(argsError=err)}if(args){let flags=["--env","--build-env","--token"];for(let flag of flags)args[flag]&&(args[flag]="REDACTED");args._.length>=4&&args._[0].startsWith("secret")&&args._[1]==="add"&&(args._[3]="REDACTED"),scope.setExtra("args",args)}else{let msg="Unable to parse args";argsError&&(msg+=`: ${argsError}`),scope.setExtra("args",msg)}scope.setExtra("node",{execPath:process.execPath,version:process.version,platform:process.platform}),sentry2.captureException(error)});let sentryClient=sentry2.getCurrentHub().getClient();sentryClient&&await sentryClient.close()}function ignoreError(error){return(0,import_error_utils.isError)(error)&&error.message.includes("uv_cwd")}var import_types=__toESM(require_types(),1);import path from"path";var import_error_utils2=__toESM(require_dist(),1);var config;async function earlyGetConfig(configFile){if(config)return config;let localPath;try{localPath=process.cwd()}catch(err){if((0,import_error_utils2.isErrnoException)(err)&&err.code==="ENOENT")return new WorkingDirectoryDoesNotExist;throw err}if(configFile){let localFilePath=path.resolve(localPath,configFile);output_manager_default.debug(`Found config in provided --local-config path ${localFilePath}`);let localConfig=await readJSONFile(localFilePath);return localConfig instanceof CantParseJSONFile?localConfig:localConfig===null?new CantFindConfig([humanizePath(localFilePath)]):(config=localConfig,config[import_types.fileNameSymbol]=configFile,config)}let vercelFilePath=path.resolve(localPath,"vercel.json"),nowFilePath=path.resolve(localPath,"now.json"),[vercelConfig,nowConfig]=await Promise.all([readJSONFile(vercelFilePath),readJSONFile(nowFilePath)]);return vercelConfig instanceof CantParseJSONFile?vercelConfig:nowConfig instanceof CantParseJSONFile?nowConfig:vercelConfig!==null?(output_manager_default.debug(`Found config in file "${vercelFilePath}"`),config=vercelConfig,config[import_types.fileNameSymbol]="vercel.json",config):nowConfig!==null?new DeprecatedNowJson(nowFilePath):new CantFindConfig([vercelFilePath].map(humanizePath))}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}var import_ci_info=__toESM(require_ci_info(),1);var RootTelemetryClient=class extends TelemetryClient{trackCliExtension(){this.trackExtension()}trackCliDefaultDeploy(defaultDeploy){defaultDeploy&&this.trackDefaultDeploy()}trackCliCommandAgent(actual){this.trackCliCommand({command:"agent",value:actual})}trackCliCommandAgentRuns(actual){this.trackCliCommand({command:"agent-runs",value:actual})}trackCliCommandAiGateway(actual){this.trackCliCommand({command:"ai-gateway",value:actual})}trackCliCommandAlias(actual){this.trackCliCommand({command:"alias",value:actual})}trackCliCommandActivity(actual){this.trackCliCommand({command:"activity",value:actual})}trackCliCommandAlerts(actual){this.trackCliCommand({command:"alerts",value:actual})}trackCliCommandApi(actual){this.trackCliCommand({command:"api",value:actual})}trackCliCommandBisect(actual){this.trackCliCommand({command:"bisect",value:actual})}trackCliCommandBlob(actual){this.trackCliCommand({command:"blob",value:actual})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandCi(actual){this.trackCliCommand({command:"ci",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandProject(actual){this.trackCliCommand({command:"project",value:actual})}trackCliCommandPromote(actual){this.trackCliCommand({command:"promote",value:actual})}trackCliCommandPull(actual){this.trackCliCommand({command:"pull",value:actual})}trackCliCommandRollback(actual){this.trackCliCommand({command:"rollback",value:actual})}trackCliCommandRollingRelease(actual){this.trackCliCommand({command:"rolling-release",value:actual})}trackCliCommandRedeploy(actual){this.trackCliCommand({command:"redeploy",value:actual})}trackCliCommandRedirects(actual){this.trackCliCommand({command:"redirects",value:actual})}trackCliCommandRoutes(actual){this.trackCliCommand({command:"routes",value:actual})}trackCliCommandRemove(actual){this.trackCliCommand({command:"remove",value:actual})}trackCliCommandSignup(actual){this.trackCliCommand({command:"signup",value:actual})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSetup(actual){this.trackCliCommand({command:"setup",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",value:actual})}trackCliCommandSchedules(actual){this.trackCliCommand({command:"schedules",value:actual})}trackCliCommandSecurity(actual){this.trackCliCommand({command:"security",value:actual})}trackCliCommandStorage(actual){this.trackCliCommand({command:"storage",value:actual})}trackCliCommandTarget(actual){this.trackCliCommand({command:"target",value:actual})}trackCliCommandTeams(actual){this.trackCliCommand({command:"teams",value:actual})}trackCliCommandTokens(actual){this.trackCliCommand({command:"tokens",value:actual})}trackCliCommandTelemetry(actual){this.trackCliCommand({command:"telemetry",value:actual})}trackCliCommandTraces(actual){this.trackCliCommand({command:"traces",value:actual})}trackCliCommandWhoami(actual){this.trackCliCommand({command:"whoami",value:actual})}trackCliCommandUpgrade(actual){this.trackCliCommand({command:"upgrade",value:actual})}trackCliCommandVersion(actual){this.trackCliCommand({command:"version",value:actual})}trackCliCommandWebhooks(actual){this.trackCliCommand({command:"webhooks",value:actual})}trackCliCommandUsage(actual){this.trackCliCommand({command:"usage",value:actual})}trackCliCommandVcr(actual){this.trackCliCommand({command:"vcr",value:actual})}trackCPUs(){super.trackCPUs()}trackAgenticUse(agent){super.trackAgenticUse(agent)}trackArch(){super.trackArch()}trackPlatform(){super.trackPlatform()}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function printCommandHelp(client2,commandName,tokens){let name=commandName?commands.get(commandName):void 0;if(!name||name==="sandbox")return!1;let root=commandsStructs.find(command=>command.name===name&&"options"in command);if(!root)return!1;let target=resolveHelpTarget(root,tokens);return target.command.dynamicHelp?!1:(new RootTelemetryClient({opts:{store:client2.telemetryEventStore}}).trackCliFlagHelp([root.name,...target.typedPath].join(":")),client2.stdout.write(help(target.command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),!0)}function tokensAfterCommand(argv){let args=argv.slice(2);for(let i=0;i<args.length;i++){let arg=args[i];if(arg==="--")return[];if(arg.startsWith("-")){!arg.includes("=")&&globalCliFlagTakesValue(arg)&&i++;continue}return args.slice(i+1)}return[]}var BETA_COMMANDS=new Set(["api","budget","budgets","crons","curl","kms","schedules","webhooks"]);var BASIC_COMMANDS=new Set(["build","cache","deploy","dev","env","git","help","init","inspect","install","integration","integration-resource","link","list","login","logout","open","promote","pull","redeploy","rollback","signup","switch"]),MAX_LISTED_ALIAS_LENGTH=3,DEFAULT_COMMAND="deploy",HELP_ROW={names:["help"],description:"Show help for a command",basic:!0,default:!1};function summarize(description){let firstLine=description.trim().split(`
8
8
  `)[0],sentenceEnd=/[^.]\.(\s|$)/.exec(firstLine);return(sentenceEnd?firstLine.slice(0,sentenceEnd.index+1):firstLine).replace(/\.$/,"")}function getRootHelpCommands(commands2){let rows=[HELP_ROW];for(let command of commands2){if(!("description"in command)||command.hidden)continue;let shortAliases=command.aliases.filter(alias=>alias.length<=MAX_LISTED_ALIAS_LENGTH),description=summarize(command.description);BETA_COMMANDS.has(command.name)&&(description+=" [beta]"),rows.push({names:[...shortAliases,command.name],description,basic:BASIC_COMMANDS.has(command.name),default:command.name===DEFAULT_COMMAND});for(let alias of command.aliases){let subcommand=command.subcommands?.find(candidate=>candidate.name===alias&&!candidate.hidden);subcommand&&rows.push({names:[alias],description:summarize(subcommand.description),basic:BASIC_COMMANDS.has(alias),default:!1})}}return rows.sort((a,b)=>a.default!==b.default?a.default?-1:1:a.names[a.names.length-1].localeCompare(b.names[b.names.length-1]))}function checkTelemetryStatus({config:config2}){config2.telemetry||process.env.VERCEL_TELEMETRY_DISABLED||(output_manager_default.note("The Vercel CLI now collects telemetry regarding usage of the CLI."),output_manager_default.log("This information is used to shape the CLI roadmap and prioritize features."),output_manager_default.log("You can learn more, including how to opt-out if you'd not like to participate in this program, by visiting the following URL:"),output_manager_default.log("https://vercel.com/docs/cli/about-telemetry"),config2.telemetry={enabled:!0},writeToConfigFile(config2))}function checkGuidanceStatus({config:config2}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config2.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config2.guidance={enabled:!0},writeToConfigFile(config2)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils3.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}{let SILENCED_ERRORS=["DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead."],originalError=console.error;console.error=msg=>{SILENCED_ERRORS.some(error=>typeof msg=="string"&&msg.includes(error))||originalError(msg)}}var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}(0,import_epipebomb.default)();var client,resolvedCommandForUpdate,fatalErrorHandlerSymbol=Symbol.for("vercel.cli.fatal-error-handler");async function exitWithUnexpectedError(error){let handler=globalThis[fatalErrorHandlerSymbol];if(typeof handler=="function")try{await handler(error)}catch{}process.exit(1)}var handleRejection=async err=>{err?err instanceof Error?await handleUnexpected(err):(output_manager_default.error(`An unexpected rejection occurred
9
9
  ${err}`),await reportError(await getSentry(),client,err)):output_manager_default.error("An unexpected empty rejection occurred"),await exitWithUnexpectedError(err)},handleUnexpected=async err=>{let{message}=err;return message.includes("sentry")&&message.includes("ENOTFOUND")?(output_manager_default.debug(`Sentry is not reachable: ${err}`),!1):(output_manager_default.error(`An unexpected error occurred!
10
10
  ${err.stack}`),await reportError(await getSentry(),client,err),!0)};process.on("unhandledRejection",handleRejection);process.on("uncaughtException",async error=>{await handleUnexpected(error)&&await exitWithUnexpectedError(error)});process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
11
11
  `);var SHOULD_CHECK_FOR_UPDATES=!process.env.NO_UPDATE_NOTIFIER&&!process.env.VERCEL,{isTTY}=process.stdout,apiUrl="https://api.vercel.com",InMemoryReporter=class{constructor(){this.events=[]}report(event){this.events.push(event)}},main=async()=>{let traceReporter=new InMemoryReporter,rootSpan=new import_build_utils.Span({name:"vc.cli",reporter:traceReporter}),isTelemetryFlushCommand=process.argv[2]==="telemetry"&&process.argv[3]==="flush";process.env.FORCE_TTY==="1"&&(isTTY=!0,process.stdout.isTTY=!0,process.stdin.isTTY=!0);let parseInitialArgs=()=>parseArguments(process.argv,{"--version":Boolean,"-v":"--version","--changelog":Boolean,"--non-interactive":Boolean},{permissive:!0}),parsedArgs;try{parsedArgs=parseInitialArgs();let isDebugging=isOutputDebugEnabled(parsedArgs.flags["--debug"]),isNoColor=parsedArgs.flags["--no-color"];output_manager_default.initialize({debug:isDebugging,noColor:isNoColor})}catch(err){return printError(err),1}let localConfigPath=parsedArgs.flags["--local-config"],localConfig=await earlyGetConfig(localConfigPath);if(localConfig instanceof CantParseJSONFile)return output_manager_default.error(`Couldn't parse JSON file ${localConfig.meta.file}.`),1;if(localConfig instanceof CantFindConfig){if(localConfigPath)return output_manager_default.error(`Couldn't find a project configuration file at
12
12
  ${localConfig.meta.paths.join(` or
13
13
  `)}`),1;localConfig=void 0}if(localConfig instanceof Error)return output_manager_default.prettyError(localConfig),1;let targetOrSubcommand=parsedArgs.args[2]||(parsedArgs.flags["--changelog"]?"changelog":void 0),subSubCommand=parsedArgs.args[3],shortBuildLabel=void 0?` (${(void 0).split(" ")[0]})`:"",versionBanner=isNativeBinaryInstall()?`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel}`:`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel} (Node.js ${process.versions.node})`,msg=versionBanner;if(targetOrSubcommand==="ci"?msg=`${versionBanner} | ci is in beta`:targetOrSubcommand&&BETA_COMMANDS.has(targetOrSubcommand)&&(msg=`${versionBanner} | ${targetOrSubcommand} is in beta \u2014 https://vercel.com/feedback`),shouldPrintVersionBanner(targetOrSubcommand,process.argv)&&output_manager_default.print(`${import_chalk.default.dim(msg)}
14
- `),!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;if(!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&!subSubCommand)return process.stdout.write(help2(getRootHelpCommands(commandsStructs),process.stdout.columns)),0;try{await(0,import_fs_extra2.mkdirp)(VERCEL_DIR)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(VERCEL_DIR)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let config2;try{config2=readConfigFile()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){config2=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config2)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env");let authConfig;if(tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config2)}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(VERCEL_AUTH_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let telemetryEventStore=new TelemetryEventStore({isDebug:process.env.VERCEL_TELEMETRY_DEBUG==="1",config:config2.telemetry,cliDevice:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-device.json")},cliSession:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-session.json")}});checkTelemetryStatus({config:config2}),process.env.FF_GUIDANCE_MODE&&checkGuidanceStatus({config:config2});let telemetry=new RootTelemetryClient({opts:{store:telemetryEventStore}}),{isAgent,agent:detectedAgent}=await determineAgent();telemetry.trackInvocationId(telemetryEventStore.currentInvocationId),telemetry.trackDeviceId(telemetryEventStore.currentDeviceId);let vercelPluginMarker=readVercelPluginActiveSessionMarker();vercelPluginMarker&&(telemetry.trackVercelPluginActiveSession(),telemetry.trackVercelPluginVersion(vercelPluginMarker.pluginVersion)),telemetry.trackAgenticUse(detectedAgent?.name),telemetry.trackCPUs(),telemetry.trackPlatform(),telemetry.trackArch(),telemetry.trackCIVendorName(),telemetry.trackStdinIsTTY(process.stdin?.isTTY===!0),telemetry.trackVersion(pkg_default.version),telemetry.trackCliOptionCwd(parsedArgs.flags["--cwd"]),telemetry.trackCliOptionLocalConfig(parsedArgs.flags["--local-config"]),telemetry.trackCliOptionGlobalConfig(parsedArgs.flags["--global-config"]),telemetry.trackCliFlagDebug(parsedArgs.flags["--debug"]),telemetry.trackCliFlagNoColor(parsedArgs.flags["--no-color"]),telemetry.trackCliOptionScope(parsedArgs.flags["--scope"]),telemetry.trackCliOptionToken(parsedArgs.flags["--token"]),telemetry.trackCliOptionTeam(parsedArgs.flags["--team"]),telemetry.trackCliOptionApi(parsedArgs.flags["--api"]);let earlyGetUserPromise,telemetrySaved=!1,getStringProperty=(value,key)=>{if(typeof value=="object"&&value!==null&&key in value){let property=value[key];if(typeof property=="string")return property}},getNumberProperty=(value,key)=>{if(typeof value=="object"&&value!==null&&key in value){let property=value[key];if(typeof property=="number")return property}},trackAgenticErrorTelemetry=err=>{if(!isAgent)return;telemetry.trackErrorStatus(getNumberProperty(err,"status")),telemetry.trackErrorCode(err instanceof Diagnostic&&err.name!=="Diagnostic"?err.name:getStringProperty(err,"code")),telemetry.trackErrorSlug(getStringProperty(err,"slug")),telemetry.trackErrorAction(getStringProperty(err,"action"));let serverMessage=getStringProperty(err,"serverMessage")??((0,import_error_utils3.isError)(err)?err.message:void 0);telemetry.trackErrorServerMessage(serverMessage)},saveTelemetry=async()=>{if(telemetrySaved)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(telemetryEventStore.updateTeamId(client?.config.currentTeam??config2.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),await telemetryEventStore.save(),postCommandSpan.stop(),telemetrySaved=!0},finishWithExitCode=async code=>(client&&trackAgentCommandOutcome(client,code),await saveTelemetry(),code);typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:config2&&config2.api&&(apiUrl=config2.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-AEAWC6MD.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config:config2,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=join2(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-V26Z3DHE.js"),result=await tryOpenApiFallback(client,parsedArgs.args.slice(3),async()=>tag);return finishWithExitCode(result??1)}else targetPathExists&&(subcommand="deploy",userSuppliedSubCommand=targetOrSubcommand,output_manager_default.debug(`first token "${targetOrSubcommand}" is an existing path; routing to deploy`))}else output_manager_default.debug("user supplied no target, defaulting to deploy"),subcommand="deploy",defaultDeploy=!0;if(subcommand==="help"){if(telemetry.trackCliCommandHelp("help"),subSubCommand&&isHiddenCommand(subSubCommand))return output_manager_default.error(`The ${param(subSubCommand)} subcommand does not exist`),finishWithExitCode(1);subcommand=subSubCommand||"deploy";let helpTokenIndex=client.argv.indexOf("help",2);helpTokenIndex!==-1&&client.argv.splice(helpTokenIndex,1),client.argv.push("-h")}if((parsedArgs.args[2]==="help"||parsedArgs.flags["--help"]===!0)&&printCommandHelp(client,subcommand,tokensAfterCommand(client.argv)))return finishWithExitCode(0);let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);if(subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev"),subcommand==="flags"&&subSubCommand==="prepare"&&subcommandsWithoutToken.push("flags"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-OHEVPOTD.js"),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(1);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(1);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(1)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&output_manager_default.warn(`The ${param("--team")} option is deprecated. Please use ${param("--scope")} instead.`);let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg=>arg==="--project"||arg.startsWith("--project="));if(typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){let persistedTeamId=client.config.currentTeam,cachedTeamId=getCachedScopeTeamId(client.config,scope);if(cachedTeamId)client.config.currentTeam=cachedTeamId;else{let user=null;try{user=await getUser(client),telemetryEventStore.updateUserId(user.id)}catch(err){if(err instanceof Error&&output_manager_default.debug(err.stack||err.toString()),!((0,import_error_utils3.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"&&isAppPrincipalEnabled()&&await resolveAppTokenScope(client,scope)))return(0,import_error_utils3.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"?(output_manager_default.prettyError({message:"You do not have access to the specified account",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error(`Not able to load user because of unexpected error: ${(0,import_error_utils3.errorToString)(err)}`),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}if(user){let scopeMatchesUserIdentity=user.id===scope||user.email===scope||user.username===scope,related;try{related=await getTeamByIdOrSlug(client,scope,{useCurrentTeam:!1})}catch(err){output_manager_default.debug(`Direct team lookup for scope "${scope}" failed: ${(0,import_error_utils3.errorToString)(err)}`)}if(!related){let teams=[];try{teams=await getTeams(client)}catch(err){if(scopeMatchesUserIdentity)output_manager_default.debug("Ignoring failure to load teams; scope matches the current user's identity");else return(0,import_error_utils3.isErrnoException)(err)&&err.code==="not_authorized"?(output_manager_default.prettyError({message:"You do not have access to the specified team",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(0,import_error_utils3.isErrnoException)(err)&&err.code==="rate_limited"?(output_manager_default.prettyError({message:"Rate limited. Too many requests to the same endpoint: /teams"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error("Not able to load teams"),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}related=teams.find(team=>team.id===scope||team.slug===scope)}if(related)client.config.currentTeam=related.id,setCachedScopeTeamId(client,scope,related.id,persistedTeamId);else if(scopeMatchesUserIdentity){if(user.version==="northstar")return output_manager_default.error("You cannot set your Personal Account as the scope."),finishWithExitCode(1);delete client.config.currentTeam}else return output_manager_default.prettyError({message:"The specified scope does not exist",link:"https://err.sh/vercel/scope-not-existent"}),finishWithExitCode(1)}}}let exitCode;try{if(!targetCommand){targetCommand=parsedArgs.args[2];try{let{execExtension}=await import("./chunks/exec-3RMS2X6B.js");exitCode=await execExtension(client,targetCommand,parsedArgs.args.slice(3),cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(1);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).aiGateway;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).api;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).budget;break;case"builders":func=(await import("./commands-bulk.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).certs;break;case"ci":telemetry.trackCliCommandCi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).ci;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).curl;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).deployHooks;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).domains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).experiments;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).guidance;break}else{func=null;break}case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).kms;break;case"mcp":func=(await import("./commands-bulk.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-bulk.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).microfrontends;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).open;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).project;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).storage;break;case"target":telemetry.trackCliCommandTarget(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(1);func.default&&(func=func.default),shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),resolvedCommandForUpdate=targetCommand,exitCode=await rootSpan.child("vc.cli.command",{command:subcommand||"deploy"}).trace(()=>func(client))}}catch(err){if(trackAgenticErrorTelemetry(err),shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils3.isError)(err)&&"status"in err||(0,import_error_utils3.isError)(err)&&"code"in err&&err.code==="ARG_UNKNOWN_OPTION"))return printError(err,client),finishWithExitCode(1);if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils3.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils3.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(await getSentry(),client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(trackAgentCommandOutcome(client,exitCode??0),await saveTelemetry(),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=getReleaseNotesUrl(latest);if(isTTY){let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(` The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(`
14
+ `),!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;if(!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&!subSubCommand)return process.stdout.write(help2(getRootHelpCommands(commandsStructs),process.stdout.columns)),0;try{await(0,import_fs_extra2.mkdirp)(VERCEL_DIR)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(VERCEL_DIR)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let config2;try{config2=readConfigFile()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){config2=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config2)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env");let authConfig;if(tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config2)}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(VERCEL_AUTH_CONFIG_PATH)}" ${(0,import_error_utils3.errorToString)(err)}`),1}let telemetryEventStore=new TelemetryEventStore({isDebug:process.env.VERCEL_TELEMETRY_DEBUG==="1",config:config2.telemetry,cliDevice:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-device.json")},cliSession:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-session.json")}});checkTelemetryStatus({config:config2}),process.env.FF_GUIDANCE_MODE&&checkGuidanceStatus({config:config2});let telemetry=new RootTelemetryClient({opts:{store:telemetryEventStore}}),{isAgent,agent:detectedAgent}=await determineAgent();telemetry.trackInvocationId(telemetryEventStore.currentInvocationId),telemetry.trackDeviceId(telemetryEventStore.currentDeviceId);let vercelPluginMarker=readVercelPluginActiveSessionMarker();vercelPluginMarker&&(telemetry.trackVercelPluginActiveSession(),telemetry.trackVercelPluginVersion(vercelPluginMarker.pluginVersion)),telemetry.trackAgenticUse(detectedAgent?.name),telemetry.trackCPUs(),telemetry.trackPlatform(),telemetry.trackArch(),telemetry.trackCIVendorName(),telemetry.trackStdinIsTTY(process.stdin?.isTTY===!0),telemetry.trackVersion(pkg_default.version),telemetry.trackCliOptionCwd(parsedArgs.flags["--cwd"]),telemetry.trackCliOptionLocalConfig(parsedArgs.flags["--local-config"]),telemetry.trackCliOptionGlobalConfig(parsedArgs.flags["--global-config"]),telemetry.trackCliFlagDebug(parsedArgs.flags["--debug"]),telemetry.trackCliFlagNoColor(parsedArgs.flags["--no-color"]),telemetry.trackCliOptionScope(parsedArgs.flags["--scope"]),telemetry.trackCliOptionToken(parsedArgs.flags["--token"]),telemetry.trackCliOptionTeam(parsedArgs.flags["--team"]),telemetry.trackCliOptionApi(parsedArgs.flags["--api"]);let earlyGetUserPromise,telemetrySaved=!1,getStringProperty=(value,key)=>{if(typeof value=="object"&&value!==null&&key in value){let property=value[key];if(typeof property=="string")return property}},getNumberProperty=(value,key)=>{if(typeof value=="object"&&value!==null&&key in value){let property=value[key];if(typeof property=="number")return property}},trackAgenticErrorTelemetry=err=>{if(!isAgent)return;telemetry.trackErrorStatus(getNumberProperty(err,"status")),telemetry.trackErrorCode(err instanceof Diagnostic&&err.name!=="Diagnostic"?err.name:getStringProperty(err,"code")),telemetry.trackErrorSlug(getStringProperty(err,"slug")),telemetry.trackErrorAction(getStringProperty(err,"action"));let serverMessage=getStringProperty(err,"serverMessage")??((0,import_error_utils3.isError)(err)?err.message:void 0);telemetry.trackErrorServerMessage(serverMessage)},saveTelemetry=async()=>{if(telemetrySaved)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(telemetryEventStore.updateTeamId(client?.config.currentTeam??config2.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),await telemetryEventStore.save(),postCommandSpan.stop(),telemetrySaved=!0},finishWithExitCode=async code=>(client&&trackAgentCommandOutcome(client,code),await saveTelemetry(),code);typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:config2&&config2.api&&(apiUrl=config2.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-AEAWC6MD.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config:config2,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=join2(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-W365UPH2.js"),result=await tryOpenApiFallback(client,parsedArgs.args.slice(3),async()=>tag);return finishWithExitCode(result??1)}else targetPathExists&&(subcommand="deploy",userSuppliedSubCommand=targetOrSubcommand,output_manager_default.debug(`first token "${targetOrSubcommand}" is an existing path; routing to deploy`))}else output_manager_default.debug("user supplied no target, defaulting to deploy"),subcommand="deploy",defaultDeploy=!0;if(subcommand==="help"){if(telemetry.trackCliCommandHelp("help"),subSubCommand&&isHiddenCommand(subSubCommand))return output_manager_default.error(`The ${param(subSubCommand)} subcommand does not exist`),finishWithExitCode(1);subcommand=subSubCommand||"deploy";let helpTokenIndex=client.argv.indexOf("help",2);helpTokenIndex!==-1&&client.argv.splice(helpTokenIndex,1),client.argv.push("-h")}if((parsedArgs.args[2]==="help"||parsedArgs.flags["--help"]===!0)&&printCommandHelp(client,subcommand,tokensAfterCommand(client.argv)))return finishWithExitCode(0);let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);if(subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev"),subcommand==="flags"&&subSubCommand==="prepare"&&subcommandsWithoutToken.push("flags"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-VDR5HVA2.js"),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(1);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(1);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(1)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&output_manager_default.warn(`The ${param("--team")} option is deprecated. Please use ${param("--scope")} instead.`);let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg=>arg==="--project"||arg.startsWith("--project="));if(typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){let persistedTeamId=client.config.currentTeam,cachedTeamId=getCachedScopeTeamId(client.config,scope);if(cachedTeamId)client.config.currentTeam=cachedTeamId;else{let user=null;try{user=await getUser(client),telemetryEventStore.updateUserId(user.id)}catch(err){if(err instanceof Error&&output_manager_default.debug(err.stack||err.toString()),!((0,import_error_utils3.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"&&isAppPrincipalEnabled()&&await resolveAppTokenScope(client,scope)))return(0,import_error_utils3.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"?(output_manager_default.prettyError({message:"You do not have access to the specified account",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error(`Not able to load user because of unexpected error: ${(0,import_error_utils3.errorToString)(err)}`),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}if(user){let scopeMatchesUserIdentity=user.id===scope||user.email===scope||user.username===scope,related;try{related=await getTeamByIdOrSlug(client,scope,{useCurrentTeam:!1})}catch(err){output_manager_default.debug(`Direct team lookup for scope "${scope}" failed: ${(0,import_error_utils3.errorToString)(err)}`)}if(!related){let teams=[];try{teams=await getTeams(client)}catch(err){if(scopeMatchesUserIdentity)output_manager_default.debug("Ignoring failure to load teams; scope matches the current user's identity");else return(0,import_error_utils3.isErrnoException)(err)&&err.code==="not_authorized"?(output_manager_default.prettyError({message:"You do not have access to the specified team",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(0,import_error_utils3.isErrnoException)(err)&&err.code==="rate_limited"?(output_manager_default.prettyError({message:"Rate limited. Too many requests to the same endpoint: /teams"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error("Not able to load teams"),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}related=teams.find(team=>team.id===scope||team.slug===scope)}if(related)client.config.currentTeam=related.id,setCachedScopeTeamId(client,scope,related.id,persistedTeamId);else if(scopeMatchesUserIdentity){if(user.version==="northstar")return output_manager_default.error("You cannot set your Personal Account as the scope."),finishWithExitCode(1);delete client.config.currentTeam}else return output_manager_default.prettyError({message:"The specified scope does not exist",link:"https://err.sh/vercel/scope-not-existent"}),finishWithExitCode(1)}}}let exitCode;try{if(!targetCommand){targetCommand=parsedArgs.args[2];try{let{execExtension}=await import("./chunks/exec-3RMS2X6B.js");exitCode=await execExtension(client,targetCommand,parsedArgs.args.slice(3),cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(1);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).aiGateway;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).api;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).budget;break;case"builders":func=(await import("./commands-bulk.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).certs;break;case"ci":telemetry.trackCliCommandCi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).ci;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).curl;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).deployHooks;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).domains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).experiments;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).guidance;break}else{func=null;break}case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).kms;break;case"mcp":func=(await import("./commands-bulk.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-bulk.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).microfrontends;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).open;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).project;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).storage;break;case"target":telemetry.trackCliCommandTarget(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(1);func.default&&(func=func.default),shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),resolvedCommandForUpdate=targetCommand,exitCode=await rootSpan.child("vc.cli.command",{command:subcommand||"deploy"}).trace(()=>func(client))}}catch(err){if(trackAgenticErrorTelemetry(err),err instanceof APIError&&err.status===403&&client.config.currentTeam&&forgetCachedTeamSlug(client,client.config.currentTeam),shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils3.isError)(err)&&"status"in err||(0,import_error_utils3.isError)(err)&&"code"in err&&err.code==="ARG_UNKNOWN_OPTION"))return printError(err,client),finishWithExitCode(1);if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils3.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils3.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(await getSentry(),client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(trackAgentCommandOutcome(client,exitCode??0),await saveTelemetry(),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=getReleaseNotesUrl(latest);if(isTTY){let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(` The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(`
15
15
  Update available for Vercel CLI (${import_chalk.default.gray(`v${pkg_default.version}`)} \u2192 ${import_chalk.default.green(`v${latest}`)})${errorMsg}
16
16
  `),output_manager_default.print(`Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
17
17
  `);let upgradeExitCode=await promptAndUpgrade(client,latest);if(upgradeExitCode!==void 0)return upgradeExitCode}else{let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(`
@@ -1 +1 @@
1
- export const rootHelpCommands = [{"names":["deploy"],"description":"Deploy your project to Vercel","basic":true,"default":true},{"names":["activity"],"description":"List user activity events","basic":false,"default":false},{"names":["agent"],"description":"Generate an AGENTS.md file with Vercel deployment best practices","basic":false,"default":false},{"names":["agent-runs"],"description":"Inspect Agent Runs observability data","basic":false,"default":false},{"names":["ai-gateway"],"description":"Manage AI Gateway resources","basic":false,"default":false},{"names":["alerts"],"description":"List alert groups, inspect a group, or manage alert rules (see `alerts rules`)","basic":false,"default":false},{"names":["ln","alias"],"description":"Interact with deployment aliases","basic":false,"default":false},{"names":["api"],"description":"Make authenticated HTTP requests to the Vercel API [beta]","basic":false,"default":false},{"names":["bisect"],"description":"Bisect the current project interactively or via an automated test script","basic":false,"default":false},{"names":["blob"],"description":"Interact with Vercel Blob","basic":false,"default":false},{"names":["budgets"],"description":"Show and manage Spend Management for on-demand charges after included credit [beta]","basic":false,"default":false},{"names":["build"],"description":"Build the project","basic":true,"default":false},{"names":["buy"],"description":"Purchase Vercel products for your team","basic":false,"default":false},{"names":["cache"],"description":"Manage cache for a Project","basic":true,"default":false},{"names":["certs"],"description":"Interact with SSL certificates","basic":false,"default":false},{"names":["changelog"],"description":"Show the latest Vercel product updates","basic":false,"default":false},{"names":["ci"],"description":"List and inspect Vercel CI runs","basic":false,"default":false},{"names":["comments"],"description":"Review and act on Vercel Toolbar comments from the command line","basic":false,"default":false},{"names":["connect"],"description":"Manage connectors","basic":false,"default":false},{"names":["contract"],"description":"Show contract information for all billing periods","basic":false,"default":false},{"names":["crons"],"description":"Manage cron jobs for a project [beta]","basic":false,"default":false},{"names":["curl"],"description":"Make curl requests to Vercel deployments with automatic protection bypass [beta]","basic":false,"default":false},{"names":["deploy-hooks"],"description":"Manage deploy hooks for Git-triggered builds","basic":false,"default":false},{"names":["dev"],"description":"Starts the `vercel dev` server","basic":true,"default":false},{"names":["dns"],"description":"Interact with DNS entries for a project","basic":false,"default":false},{"names":["domains"],"description":"Manage domains","basic":false,"default":false},{"names":["env"],"description":"Interact with Environment Variables for a Project","basic":true,"default":false},{"names":["firewall"],"description":"Manage your project's firewall rules, IP blocks, and system bypass configuration","basic":false,"default":false},{"names":["flags"],"description":"Manage feature flags for a Vercel project","basic":false,"default":false},{"names":["git"],"description":"Manage your Git repository connection to the current Project","basic":true,"default":false},{"names":["global-config"],"description":"Manage Global Config stores (dashboard API parity)","basic":false,"default":false},{"names":["help"],"description":"Show help for a command","basic":true,"default":false},{"names":["httpstat"],"description":"Execute httpstat with automatic deployment URL and protection bypass to visualize HTTP timing statistics","basic":false,"default":false},{"names":["init"],"description":"Initialize example Vercel Projects","basic":true,"default":false},{"names":["inspect"],"description":"Show information about a deployment","basic":true,"default":false},{"names":["i","install"],"description":"Install an integration from the marketplace (alias for `integration add`)","basic":true,"default":false},{"names":["integration"],"description":"Manage marketplace integrations","basic":true,"default":false},{"names":["ir","integration-resource"],"description":"Manage marketplace integration resources (alias for `vercel integration resource`)","basic":true,"default":false},{"names":["kms"],"description":"Manage KMS issuers, signing keys, and project grants [beta]","basic":false,"default":false},{"names":["link"],"description":"Link a local directory to a Vercel project","basic":true,"default":false},{"names":["ls","list"],"description":"List deployments","basic":true,"default":false},{"names":["login"],"description":"Sign in to your Vercel account","basic":true,"default":false},{"names":["logout"],"description":"Sign out the currently authenticated user","basic":true,"default":false},{"names":["log","logs"],"description":"Display request logs for a project","basic":false,"default":false},{"names":["mcp"],"description":"Set up MCP agents and configuration for Vercel integration","basic":false,"default":false},{"names":["metrics"],"description":"Query observability metrics for your Vercel project or team","basic":false,"default":false},{"names":["mf","microfrontends"],"description":"Manage microfrontends groups that compose multiple projects into one cohesive application","basic":false,"default":false},{"names":["open"],"description":"Opens the current project in the Vercel Dashboard","basic":true,"default":false},{"names":["project"],"description":"Manage your Vercel projects","basic":false,"default":false},{"names":["promote"],"description":"Promote an existing Deployment to current","basic":true,"default":false},{"names":["pull"],"description":"Pull Environment Variables and project settings into .vercel","basic":true,"default":false},{"names":["redeploy"],"description":"Rebuild and deploy a previous deployment","basic":true,"default":false},{"names":["redirects"],"description":"Manage redirects for a project","basic":false,"default":false},{"names":["rm","remove"],"description":"Remove deployment(s) by project name or deployment ID","basic":false,"default":false},{"names":["rollback"],"description":"Quickly revert back to a previous deployment","basic":true,"default":false},{"names":["rr","rolling-release"],"description":"Rolling releases gradually shift traffic to a new deployment in stages, allowing you to monitor for errors before serving all traffic","basic":false,"default":false},{"names":["routes"],"description":"Manage routing rules for a project","basic":false,"default":false},{"names":["sandbox"],"description":"Interact with Vercel Sandbox","basic":false,"default":false},{"names":["schedules"],"description":"Manage schedules for the current project [beta]","basic":false,"default":false},{"names":["security"],"description":"Inspect the security posture of the current team","basic":false,"default":false},{"names":["setup"],"description":"Set up your machine for Vercel: install the Vercel plugin for Claude Code and Codex and connect local coding agents to the AI Gateway","basic":false,"default":false},{"names":["signup"],"description":"Create a Vercel account and sign in","basic":true,"default":false},{"names":["skills"],"description":"Discover agent skills relevant to your project","basic":false,"default":false},{"names":["storage"],"description":"Create, connect, and manage storage resources (Blob, Global Config, Marketplace, and 1P) for your Projects","basic":false,"default":false},{"names":["switch"],"description":"Switch to a different team","basic":true,"default":false},{"names":["target"],"description":"Manage your Vercel Project's \"targets\" (custom environments)","basic":false,"default":false},{"names":["teams"],"description":"Manage Teams under your Vercel account","basic":false,"default":false},{"names":["telemetry"],"description":"Allows you to enable or disable telemetry collection","basic":false,"default":false},{"names":["tokens"],"description":"Manage your personal Vercel authentication tokens","basic":false,"default":false},{"names":["traces"],"description":"Fetch project traces and search spans across a Vercel team","basic":false,"default":false},{"names":["upgrade"],"description":"Upgrade the current global or native Vercel CLI installation","basic":false,"default":false},{"names":["usage"],"description":"Show billing usage and costs for the current billing cycle or a custom date range","basic":false,"default":false},{"names":["vcr"],"description":"Manage Vercel Container Registry repositories and images (see `vcr image`)","basic":false,"default":false},{"names":["version"],"description":"Manages the installed Vercel CLI version","basic":false,"default":false},{"names":["webhooks"],"description":"Manage webhooks [beta]","basic":false,"default":false},{"names":["whoami"],"description":"Shows the username of the currently logged in user","basic":false,"default":false}];
1
+ export const rootHelpCommands = [{"names":["deploy"],"description":"Deploy your project to Vercel","basic":true,"default":true},{"names":["activity"],"description":"List user activity events","basic":false,"default":false},{"names":["agent"],"description":"Generate an AGENTS.md file with Vercel deployment best practices","basic":false,"default":false},{"names":["agent-runs"],"description":"Inspect Agent Runs observability data","basic":false,"default":false},{"names":["ai-gateway"],"description":"Manage AI Gateway resources","basic":false,"default":false},{"names":["alerts"],"description":"List alert groups, inspect a group, or manage alert rules (see `alerts rules`)","basic":false,"default":false},{"names":["ln","alias"],"description":"Interact with deployment aliases","basic":false,"default":false},{"names":["api"],"description":"Make authenticated HTTP requests to the Vercel API [beta]","basic":false,"default":false},{"names":["bisect"],"description":"Bisect the current project interactively or via an automated test script","basic":false,"default":false},{"names":["blob"],"description":"Interact with Vercel Blob","basic":false,"default":false},{"names":["budgets"],"description":"Show and manage Spend Management for on-demand charges after included credit [beta]","basic":false,"default":false},{"names":["build"],"description":"Build the project","basic":true,"default":false},{"names":["buy"],"description":"Purchase Vercel products for your team","basic":false,"default":false},{"names":["cache"],"description":"Manage cache for a Project","basic":true,"default":false},{"names":["certs"],"description":"Interact with SSL certificates","basic":false,"default":false},{"names":["changelog"],"description":"Show the latest Vercel product updates","basic":false,"default":false},{"names":["ci"],"description":"Inspect and rerun Vercel CI runs","basic":false,"default":false},{"names":["comments"],"description":"Review and act on Vercel Toolbar comments from the command line","basic":false,"default":false},{"names":["connect"],"description":"Manage connectors","basic":false,"default":false},{"names":["contract"],"description":"Show contract information for all billing periods","basic":false,"default":false},{"names":["crons"],"description":"Manage cron jobs for a project [beta]","basic":false,"default":false},{"names":["curl"],"description":"Make curl requests to Vercel deployments with automatic protection bypass [beta]","basic":false,"default":false},{"names":["deploy-hooks"],"description":"Manage deploy hooks for Git-triggered builds","basic":false,"default":false},{"names":["dev"],"description":"Starts the `vercel dev` server","basic":true,"default":false},{"names":["dns"],"description":"Interact with DNS entries for a project","basic":false,"default":false},{"names":["domains"],"description":"Manage domains","basic":false,"default":false},{"names":["env"],"description":"Interact with Environment Variables for a Project","basic":true,"default":false},{"names":["firewall"],"description":"Manage your project's firewall rules, IP blocks, and system bypass configuration","basic":false,"default":false},{"names":["flags"],"description":"Manage feature flags for a Vercel project","basic":false,"default":false},{"names":["git"],"description":"Manage your Git repository connection to the current Project","basic":true,"default":false},{"names":["global-config"],"description":"Manage Global Config stores (dashboard API parity)","basic":false,"default":false},{"names":["help"],"description":"Show help for a command","basic":true,"default":false},{"names":["httpstat"],"description":"Execute httpstat with automatic deployment URL and protection bypass to visualize HTTP timing statistics","basic":false,"default":false},{"names":["init"],"description":"Initialize example Vercel Projects","basic":true,"default":false},{"names":["inspect"],"description":"Show information about a deployment","basic":true,"default":false},{"names":["i","install"],"description":"Install an integration from the marketplace (alias for `integration add`)","basic":true,"default":false},{"names":["integration"],"description":"Manage marketplace integrations","basic":true,"default":false},{"names":["ir","integration-resource"],"description":"Manage marketplace integration resources (alias for `vercel integration resource`)","basic":true,"default":false},{"names":["kms"],"description":"Manage KMS issuers, signing keys, and project grants [beta]","basic":false,"default":false},{"names":["link"],"description":"Link a local directory to a Vercel project","basic":true,"default":false},{"names":["ls","list"],"description":"List deployments","basic":true,"default":false},{"names":["login"],"description":"Sign in to your Vercel account","basic":true,"default":false},{"names":["logout"],"description":"Sign out the currently authenticated user","basic":true,"default":false},{"names":["log","logs"],"description":"Display request logs for a project","basic":false,"default":false},{"names":["mcp"],"description":"Set up MCP agents and configuration for Vercel integration","basic":false,"default":false},{"names":["metrics"],"description":"Query observability metrics for your Vercel project or team","basic":false,"default":false},{"names":["mf","microfrontends"],"description":"Manage microfrontends groups that compose multiple projects into one cohesive application","basic":false,"default":false},{"names":["open"],"description":"Opens the current project in the Vercel Dashboard","basic":true,"default":false},{"names":["project"],"description":"Manage your Vercel projects","basic":false,"default":false},{"names":["promote"],"description":"Promote an existing Deployment to current","basic":true,"default":false},{"names":["pull"],"description":"Pull Environment Variables and project settings into .vercel","basic":true,"default":false},{"names":["redeploy"],"description":"Rebuild and deploy a previous deployment","basic":true,"default":false},{"names":["redirects"],"description":"Manage redirects for a project","basic":false,"default":false},{"names":["rm","remove"],"description":"Remove deployment(s) by project name or deployment ID","basic":false,"default":false},{"names":["rollback"],"description":"Quickly revert back to a previous deployment","basic":true,"default":false},{"names":["rr","rolling-release"],"description":"Rolling releases gradually shift traffic to a new deployment in stages, allowing you to monitor for errors before serving all traffic","basic":false,"default":false},{"names":["routes"],"description":"Manage routing rules for a project","basic":false,"default":false},{"names":["sandbox"],"description":"Interact with Vercel Sandbox","basic":false,"default":false},{"names":["schedules"],"description":"Manage schedules for the current project [beta]","basic":false,"default":false},{"names":["security"],"description":"Inspect the security posture of the current team","basic":false,"default":false},{"names":["setup"],"description":"Set up your machine for Vercel: install the Vercel plugin for Claude Code and Codex and connect local coding agents to the AI Gateway","basic":false,"default":false},{"names":["signup"],"description":"Create a Vercel account and sign in","basic":true,"default":false},{"names":["skills"],"description":"Discover agent skills relevant to your project","basic":false,"default":false},{"names":["storage"],"description":"Create, connect, and manage storage resources (Blob, Global Config, Marketplace, and 1P) for your Projects","basic":false,"default":false},{"names":["switch"],"description":"Switch to a different team","basic":true,"default":false},{"names":["target"],"description":"Manage your Vercel Project's \"targets\" (custom environments)","basic":false,"default":false},{"names":["teams"],"description":"Manage Teams under your Vercel account","basic":false,"default":false},{"names":["telemetry"],"description":"Allows you to enable or disable telemetry collection","basic":false,"default":false},{"names":["tokens"],"description":"Manage your personal Vercel authentication tokens","basic":false,"default":false},{"names":["traces"],"description":"Fetch project traces and search spans across a Vercel team","basic":false,"default":false},{"names":["upgrade"],"description":"Upgrade the current global or native Vercel CLI installation","basic":false,"default":false},{"names":["usage"],"description":"Show billing usage and costs for the current billing cycle or a custom date range","basic":false,"default":false},{"names":["vcr"],"description":"Manage Vercel Container Registry repositories and images (see `vcr image`)","basic":false,"default":false},{"names":["version"],"description":"Manages the installed Vercel CLI version","basic":false,"default":false},{"names":["webhooks"],"description":"Manage webhooks [beta]","basic":false,"default":false},{"names":["whoami"],"description":"Shows the username of the currently logged in user","basic":false,"default":false}];
package/dist/vc.js CHANGED
@@ -10,8 +10,8 @@ try {
10
10
  }
11
11
  } catch {}
12
12
 
13
- // Spawn the installed native binary for explicit opt-ins or internal automatic
14
- // enrollment. Explicit opt-outs always override automatic enrollment.
13
+ // Spawn the installed native binary for explicit opt-ins, macOS machines, or
14
+ // internal automatic enrollment. Explicit opt-outs always override defaults.
15
15
  import { spawnSync } from 'node:child_process';
16
16
  import { existsSync } from 'node:fs';
17
17
  import { dirname, join, resolve } from 'node:path';
@@ -76,6 +76,8 @@ async function isNativeBinaryOptedIn() {
76
76
  'useNativeBinary'
77
77
  );
78
78
  if (typeof preference === 'boolean') return preference;
79
+ // All macOS machines are opted in unless they explicitly opt out above.
80
+ if (process.platform === 'darwin') return true;
79
81
  return (
80
82
  config.readGlobalConfigFlag(configPath, 'nativeBinaryAutoOptIn') === true
81
83
  );
package/dist/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "62.0.0";
1
+ export const version = "62.2.0";
2
2
  export const buildLabel = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "62.0.0",
3
+ "version": "62.2.0",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -35,51 +35,51 @@
35
35
  "undici": "5.29.0",
36
36
  "uuid": "14.0.1",
37
37
  "zod": "4.1.11",
38
- "@vercel/backends": "11.0.2",
39
- "@vercel/build-utils": "14.13.2",
40
- "@vercel/cli-auth": "0.3.9",
41
- "@vercel/cli-config": "0.3.0",
42
- "@vercel/container": "11.0.2",
38
+ "@vercel/build-utils": "14.15.0",
39
+ "@vercel/cli-auth": "0.3.10",
40
+ "@vercel/backends": "13.0.0",
41
+ "@vercel/cli-config": "0.3.1",
42
+ "@vercel/elysia": "13.0.0",
43
+ "@vercel/container": "13.0.0",
43
44
  "@vercel/detect-agent": "1.2.5",
44
- "@vercel/elysia": "11.0.2",
45
- "@vercel/express": "11.0.2",
46
- "@vercel/fastify": "11.0.2",
47
- "@vercel/go": "14.0.2",
48
- "@vercel/h3": "11.0.2",
49
- "@vercel/hono": "11.0.2",
50
- "@vercel/hydrogen": "12.0.2",
51
- "@vercel/koa": "11.0.2",
52
- "@vercel/nestjs": "11.0.2",
53
- "@vercel/next": "15.0.2",
54
- "@vercel/node": "16.0.2",
55
- "@vercel/python": "17.0.2",
45
+ "@vercel/fastify": "13.0.0",
46
+ "@vercel/express": "13.0.0",
47
+ "@vercel/go": "16.0.0",
48
+ "@vercel/h3": "13.0.0",
49
+ "@vercel/hono": "13.0.0",
50
+ "@vercel/hydrogen": "14.0.0",
51
+ "@vercel/koa": "13.0.0",
52
+ "@vercel/nestjs": "13.0.0",
53
+ "@vercel/next": "17.0.0",
54
+ "@vercel/python": "19.0.0",
55
+ "@vercel/node": "18.0.0",
56
56
  "@vercel/python-analysis": "0.14.0",
57
- "@vercel/redwood": "13.0.2",
58
- "@vercel/ruby": "13.0.2",
59
- "@vercel/remix-builder": "16.0.2",
60
- "@vercel/rust": "12.0.2",
61
- "@vercel/static-build": "13.0.2"
57
+ "@vercel/redwood": "15.0.0",
58
+ "@vercel/remix-builder": "18.0.0",
59
+ "@vercel/ruby": "15.0.0",
60
+ "@vercel/rust": "14.0.0",
61
+ "@vercel/static-build": "15.0.0"
62
62
  },
63
63
  "builders": {
64
- "@vercel/backends": "11.0.2",
65
- "@vercel/container": "11.0.2",
66
- "@vercel/elysia": "11.0.2",
67
- "@vercel/express": "11.0.2",
68
- "@vercel/fastify": "11.0.2",
69
- "@vercel/go": "14.0.2",
70
- "@vercel/h3": "11.0.2",
71
- "@vercel/hono": "11.0.2",
72
- "@vercel/hydrogen": "12.0.2",
73
- "@vercel/koa": "11.0.2",
74
- "@vercel/nestjs": "11.0.2",
75
- "@vercel/next": "15.0.2",
76
- "@vercel/node": "16.0.2",
77
- "@vercel/python": "17.0.2",
78
- "@vercel/redwood": "13.0.2",
79
- "@vercel/remix-builder": "16.0.2",
80
- "@vercel/ruby": "13.0.2",
81
- "@vercel/rust": "12.0.2",
82
- "@vercel/static-build": "13.0.2"
64
+ "@vercel/backends": "13.0.0",
65
+ "@vercel/container": "13.0.0",
66
+ "@vercel/elysia": "13.0.0",
67
+ "@vercel/express": "13.0.0",
68
+ "@vercel/fastify": "13.0.0",
69
+ "@vercel/go": "16.0.0",
70
+ "@vercel/h3": "13.0.0",
71
+ "@vercel/hono": "13.0.0",
72
+ "@vercel/hydrogen": "14.0.0",
73
+ "@vercel/koa": "13.0.0",
74
+ "@vercel/nestjs": "13.0.0",
75
+ "@vercel/next": "17.0.0",
76
+ "@vercel/node": "18.0.0",
77
+ "@vercel/python": "19.0.0",
78
+ "@vercel/redwood": "15.0.0",
79
+ "@vercel/remix-builder": "18.0.0",
80
+ "@vercel/ruby": "15.0.0",
81
+ "@vercel/rust": "14.0.0",
82
+ "@vercel/static-build": "15.0.0"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@edge-runtime/node-utils": "2.3.0",
@@ -206,26 +206,27 @@
206
206
  "write-json-file": "2.2.0",
207
207
  "xdg-app-paths": "5.1.0",
208
208
  "yauzl-promise": "2.1.3",
209
- "@vercel-internals/builder-orchestration": "1.0.10",
210
- "@vercel-internals/cli-builder-integration": "1.0.12",
209
+ "@vercel-internals/builder-orchestration": "1.0.12",
210
+ "@vercel-internals/constants": "1.0.4",
211
211
  "@vercel-internals/get-package-json": "1.0.0",
212
+ "@vercel-internals/cli-builder-integration": "1.0.14",
212
213
  "@vercel-internals/local-schedules": "0.0.4",
213
- "@vercel-internals/constants": "1.0.4",
214
- "@vercel-internals/service-topology": "1.0.9",
215
- "@vercel-internals/types": "3.0.14",
216
- "@vercel/client": "18.4.8",
214
+ "@vercel-internals/runtimes": "1.1.8",
215
+ "@vercel-internals/service-topology": "1.0.11",
216
+ "@vercel/client": "18.6.0",
217
+ "@vercel-internals/types": "3.0.16",
217
218
  "@vercel/error-utils": "2.2.1",
219
+ "@vercel/fs-detectors": "7.9.0",
218
220
  "@vercel/frameworks": "3.35.0",
219
- "@vercel/fs-detectors": "7.8.0",
220
221
  "@vercel/routing-utils": "6.6.0"
221
222
  },
222
223
  "optionalDependencies": {
223
- "@vercel/vc-native-darwin-arm64": "62.0.0",
224
- "@vercel/vc-native-darwin-x64": "62.0.0",
225
- "@vercel/vc-native-linux-arm64": "62.0.0",
226
- "@vercel/vc-native-linux-x64": "62.0.0",
227
- "@vercel/vc-native-win32-arm64": "62.0.0",
228
- "@vercel/vc-native-win32-x64": "62.0.0"
224
+ "@vercel/vc-native-darwin-arm64": "62.2.0",
225
+ "@vercel/vc-native-darwin-x64": "62.2.0",
226
+ "@vercel/vc-native-linux-arm64": "62.2.0",
227
+ "@vercel/vc-native-linux-x64": "62.2.0",
228
+ "@vercel/vc-native-win32-arm64": "62.2.0",
229
+ "@vercel/vc-native-win32-x64": "62.2.0"
229
230
  },
230
231
  "scripts": {
231
232
  "test": "node scripts/test.mjs --run",
@@ -1,8 +0,0 @@
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{printRuleMutationReceipt}from"./chunk-XWD3HYWE.js";import"./chunk-7PNYOSDU.js";import{emitRulesArgParseError,getBodyType,handleRulesApiError,outputRulesError,readRuleBody,resolveRulesProject,resolveRulesTeam,rulesCollectionPath}from"./chunk-2RU3W7DI.js";import"./chunk-YIJERP7V.js";import"./chunk-W26LLGQV.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-FA6O7FPC.js";import"./chunk-GHAY4PSD.js";import"./chunk-56CIPRSY.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-MBL6TXEJ.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-IDWEEGMC.js";import{rulesAddSubcommand}from"./chunk-6RUAMGHK.js";import"./chunk-6TAQ6OWD.js";import"./chunk-O242I22A.js";import"./chunk-YZH6RUFI.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-56FBKYDJ.js";import{parseArguments}from"./chunk-NNEWLQZ2.js";import"./chunk-MY4MONOH.js";import"./chunk-ZRNMJQX5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-WPS6JZF6.js";import"./chunk-OSCCYU74.js";import"./chunk-QKIDYVDL.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-UKVHDIP7.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";function applyScopeFlag(client,body,type,scope,flags,jsonOutput){if(Object.hasOwn(body,"ruleScope"))return flags["--project"]||flags["--all"]?outputRulesError(client,jsonOutput,"SCOPE_CONFLICT","Specify rule scope either in the body or with --project/--all, not both."):void 0;if(flags["--project"]){body.ruleScope=type==="custom"?{type:"project",projectId:scope.projectId}:{type:"include",projectIds:[scope.projectId]};return}if(flags["--all"]){if(type==="custom")return outputRulesError(client,jsonOutput,"INVALID_SCOPE","Custom alert rules must target one project. Use --project <name-or-id>.");body.ruleScope={type:"all"};return}return outputRulesError(client,jsonOutput,"MISSING_SCOPE","Missing rule scope. Add ruleScope to the body, or pass --project or --all.")}async function resolveCreateScope(client,flags,jsonOutput){return flags["--project"]&&flags["--all"]?outputRulesError(client,jsonOutput,"MUTUAL_EXCLUSIVITY","Cannot specify both --all and --project. Use one or the other."):flags["--project"]?resolveRulesProject(client,flags["--project"],jsonOutput,"alerts rules add"):resolveRulesTeam(client,jsonOutput)}async function add(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesAddSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules add --project <name-or-id> --body <path>"),printError(error),1}let flags=parsedArgs.flags,format=validateJsonOutput(flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);if(!flags["--body"])return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS","Missing required flag: --body <PATH>.");let body=readRuleBody(client,flags["--body"],format.jsonOutput);if(typeof body=="number")return body;let type=getBodyType(body);if(!type)return outputRulesError(client,format.jsonOutput,"INVALID_RULE_TYPE","Create body must set a supported rule type.");if(Object.hasOwn(body,"ruleScope")&&(flags["--project"]||flags["--all"]))return outputRulesError(client,format.jsonOutput,"SCOPE_CONFLICT","Specify rule scope either in the body or with --project/--all, not both.");if(type==="custom"&&flags["--all"])return outputRulesError(client,format.jsonOutput,"INVALID_SCOPE","Custom alert rules must target one project. Use --project <name-or-id>.");let scope=await resolveCreateScope(client,flags,format.jsonOutput);if(typeof scope=="number")return scope;let scopeError=applyScopeFlag(client,body,type,scope,flags,format.jsonOutput);if(scopeError!==void 0)return scopeError;output_manager_default.spinner("Creating alert rule\u2026");try{let response=await client.fetch(rulesCollectionPath(scope.teamId),{method:"POST",body});return format.jsonOutput?client.stdout.write(`${JSON.stringify(response,null,2)}
8
- `):printRuleMutationReceipt("Created",response.rule,client.argv),0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{add as default};
@@ -1,8 +0,0 @@
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{emitVcrArgParseError,handleVcrApiError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-3RR5CAUY.js";import{outputError}from"./chunk-FA6O7FPC.js";import"./chunk-HWWHR7H3.js";import"./chunk-2I64AYHG.js";import"./chunk-QTKJC2O5.js";import"./chunk-D4MW3RDW.js";import{AGENT_REASON}from"./chunk-IDWEEGMC.js";import{addSubcommand}from"./chunk-K7RJ5LI6.js";import"./chunk-AKZAWY6R.js";import"./chunk-6HWPJHPE.js";import"./chunk-OMXVC7WL.js";import"./chunk-SOJCELXH.js";import"./chunk-O242I22A.js";import"./chunk-YZH6RUFI.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-56FBKYDJ.js";import{parseArguments}from"./chunk-NNEWLQZ2.js";import"./chunk-MY4MONOH.js";import"./chunk-ZRNMJQX5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-QKIDYVDL.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-UKVHDIP7.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function add(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(addSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr add <name> --project <name-or-id>"),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let name=parsedArgs.args[0],project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),!name)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing repository name. Example: ${packageName} vcr add <name>`,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr add <name>"),when:"Replace <name> with the repository name to create"}]},1),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS","Usage: `vercel vcr add <name>`");let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=`/v1/vcr/repository?teamId=${encodeURIComponent(scope.teamId)}`;output_manager_default.spinner("Creating repository...");try{let created=await client.fetch(path,{method:"POST",body:{projectId:scope.projectId,name}});return fr.jsonOutput?client.stdout.write(`${JSON.stringify(created,null,2)}
8
- `):output_manager_default.success(`Created repository ${created.repository?.name??name}`),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput,{retry:{command:buildCommandWithGlobalFlags(client.argv,"vcr ls"),when:"List existing repositories (a name conflict means it already exists)"}});throw err}finally{output_manager_default.stopSpinner()}}export{add as default};