vercel 59.17.0 → 59.18.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 (184) hide show
  1. package/dist/chunks/{add-EVIN2PRI.js → add-G2FG4MZK.js} +1 -1
  2. package/dist/chunks/{add-KHUJ5BSP.js → add-JYMUUDWF.js} +1 -1
  3. package/dist/chunks/{add-7VKP56JJ.js → add-PMMNU7RN.js} +1 -1
  4. package/dist/chunks/{build-JX4MLRH3.js → build-IVYHMLHB.js} +1 -1
  5. package/dist/chunks/{chunk-XGWR4HFH.js → chunk-22NPN6VB.js} +1 -1
  6. package/dist/chunks/{chunk-G7Y77DFH.js → chunk-254TC5HX.js} +1 -1
  7. package/dist/chunks/{chunk-ZYTGXCXP.js → chunk-2NOOW6ZP.js} +1 -1
  8. package/dist/chunks/{chunk-JTVVBRW7.js → chunk-2Q47GHFX.js} +1 -1
  9. package/dist/chunks/{chunk-PCFGV4Y7.js → chunk-2YBNGUYY.js} +1 -1
  10. package/dist/chunks/chunk-46NPQBNU.js +27 -0
  11. package/dist/chunks/{chunk-EGMJRU5P.js → chunk-4A5YIRNE.js} +1 -1
  12. package/dist/chunks/{chunk-XSVBYDYI.js → chunk-4VGOAPFY.js} +1 -1
  13. package/dist/chunks/{chunk-HJWWMWLL.js → chunk-66K6BTX2.js} +1 -1
  14. package/dist/chunks/{chunk-G77VJ754.js → chunk-72ZDPBW5.js} +1 -1
  15. package/dist/chunks/{chunk-GRNTLNC7.js → chunk-7NYQ7CTP.js} +1 -1
  16. package/dist/chunks/{chunk-HBFPLBTX.js → chunk-7O3KGTQ3.js} +1 -1
  17. package/dist/chunks/{chunk-3EZENL67.js → chunk-7VWHD7WQ.js} +1 -1
  18. package/dist/chunks/chunk-AL5JWXZE.js +9 -0
  19. package/dist/chunks/{chunk-KH4SXKLD.js → chunk-BDCZFSP2.js} +1 -1
  20. package/dist/chunks/{chunk-R2TGGVCT.js → chunk-CBWDIZAF.js} +1 -1
  21. package/dist/chunks/chunk-CJ3LL5E7.js +7 -0
  22. package/dist/chunks/chunk-CJPM2DXZ.js +7 -0
  23. package/dist/chunks/{chunk-JSFWLEP3.js → chunk-CRNMRUJK.js} +1 -1
  24. package/dist/chunks/{chunk-5QNKMAN3.js → chunk-DD5EEWWR.js} +3 -3
  25. package/dist/chunks/{chunk-YV6CTDHR.js → chunk-DLKR2CG6.js} +1 -1
  26. package/dist/chunks/chunk-EEKVUD55.js +8 -0
  27. package/dist/chunks/{chunk-6YAADRQB.js → chunk-EGG7SPNM.js} +1 -1
  28. package/dist/chunks/{chunk-V3N37D4D.js → chunk-FEV4CIBN.js} +1 -1
  29. package/dist/chunks/{chunk-PQCAYAZ3.js → chunk-FM2ODCMZ.js} +1 -1
  30. package/dist/chunks/{chunk-ZB6NNKOB.js → chunk-FOUWMNT7.js} +1 -1
  31. package/dist/chunks/{chunk-OTSU5NS3.js → chunk-FZIRRUBO.js} +1 -1
  32. package/dist/chunks/{chunk-4QX77CP7.js → chunk-GGZODU6S.js} +1 -1
  33. package/dist/chunks/{chunk-ZZQRMRWD.js → chunk-GWPIATTW.js} +1 -1
  34. package/dist/chunks/{chunk-3DRX67W4.js → chunk-H7S7TVBZ.js} +1 -1
  35. package/dist/chunks/{chunk-ZJLMBHD6.js → chunk-HFDQ3P7T.js} +1 -1
  36. package/dist/chunks/{chunk-UMCKAEPK.js → chunk-HQEAROJN.js} +1 -1
  37. package/dist/chunks/chunk-HUHUQXHY.js +7 -0
  38. package/dist/chunks/{chunk-A5SVOPQK.js → chunk-HUI32UNA.js} +4 -4
  39. package/dist/chunks/chunk-I7QY6ROQ.js +9 -0
  40. package/dist/chunks/{chunk-QY4UZGLW.js → chunk-IG7TNQGL.js} +1 -1
  41. package/dist/chunks/{chunk-K3KJZLBD.js → chunk-JDQP267R.js} +1 -1
  42. package/dist/chunks/{chunk-AJQZAHAG.js → chunk-JNFC2ASC.js} +1 -1
  43. package/dist/chunks/{chunk-ZIPVX7LD.js → chunk-KACMQTK7.js} +1 -1
  44. package/dist/chunks/{chunk-L243RUIR.js → chunk-KCSMPBFZ.js} +1 -1
  45. package/dist/chunks/chunk-KNQ3Y22G.js +10 -0
  46. package/dist/chunks/{chunk-HEE6XLHF.js → chunk-LASMHNUP.js} +2 -2
  47. package/dist/chunks/chunk-LX5GOY7N.js +8 -0
  48. package/dist/chunks/{chunk-UVOVAU43.js → chunk-MOPFNLFK.js} +1 -1
  49. package/dist/chunks/{chunk-QMY5EY5M.js → chunk-Q2TOOW5N.js} +1 -1
  50. package/dist/chunks/chunk-QDE5CFRC.js +11 -0
  51. package/dist/chunks/{chunk-ZCPBIHDL.js → chunk-QE5VDLPY.js} +2 -2
  52. package/dist/chunks/{chunk-75CPY75D.js → chunk-QTSRDWKO.js} +1 -1
  53. package/dist/chunks/{chunk-O67S7BW6.js → chunk-QVINTB7T.js} +1 -1
  54. package/dist/chunks/{chunk-UZBQDJR7.js → chunk-QYPQGOSO.js} +1 -1
  55. package/dist/chunks/chunk-RCHRY3CN.js +7 -0
  56. package/dist/chunks/{chunk-Z6Y55QJW.js → chunk-RTRCTYW6.js} +2 -2
  57. package/dist/chunks/{chunk-4NE5IQ25.js → chunk-RVJ2E3BM.js} +1 -1
  58. package/dist/chunks/{chunk-RAIBQIKB.js → chunk-SA2SQV6P.js} +1 -1
  59. package/dist/chunks/{chunk-G6CTAHKY.js → chunk-SECZRAWX.js} +1 -1
  60. package/dist/chunks/{chunk-V6GSMYQB.js → chunk-SJ6ZELKN.js} +1 -1
  61. package/dist/chunks/{chunk-LVWXFCBP.js → chunk-SQ5VXZP6.js} +1 -1
  62. package/dist/chunks/{chunk-3TXEXPUW.js → chunk-TCS3FDID.js} +1 -1
  63. package/dist/chunks/{chunk-XQ73QIQ3.js → chunk-U6TAKLJ6.js} +1 -1
  64. package/dist/chunks/{chunk-NUGLE4QY.js → chunk-UED2PPFP.js} +1 -1
  65. package/dist/chunks/chunk-VOZEB6PD.js +7 -0
  66. package/dist/chunks/chunk-W2XUH2WW.js +25 -0
  67. package/dist/chunks/{chunk-EVZRQGNK.js → chunk-WSNDO7JA.js} +1 -1
  68. package/dist/chunks/{chunk-MVAM5QXS.js → chunk-WTXJ4X2D.js} +1 -1
  69. package/dist/chunks/{chunk-CKKCHHEZ.js → chunk-WUMV6WRR.js} +1 -1
  70. package/dist/chunks/{chunk-TJCIHDPZ.js → chunk-XQWBEAKZ.js} +1 -1
  71. package/dist/chunks/{chunk-2B2MN3U5.js → chunk-XV6SDZIO.js} +1 -1
  72. package/dist/chunks/{chunk-6MSXYTO7.js → chunk-XZYKYDQO.js} +1 -1
  73. package/dist/chunks/{chunk-CN2QZO4U.js → chunk-Y7SVAW54.js} +1 -1
  74. package/dist/chunks/{chunk-MPV7JL34.js → chunk-YCFYVPFP.js} +1 -1
  75. package/dist/chunks/{chunk-JYAUUIR4.js → chunk-YNINVUX2.js} +1 -1
  76. package/dist/chunks/{chunk-QGIGNMII.js → chunk-YWDSQTGK.js} +1 -1
  77. package/dist/chunks/{chunk-QIM3U2QM.js → chunk-YYH7OWMO.js} +1 -1
  78. package/dist/chunks/{chunk-AB4GEWGP.js → chunk-ZQGW6A7G.js} +1 -1
  79. package/dist/chunks/{chunk-6RIQPTJA.js → chunk-ZVFZIWBV.js} +1 -1
  80. package/dist/chunks/{clear-X4OSHTWA.js → clear-QWLAXTZ2.js} +1 -1
  81. package/dist/chunks/{compile-vercel-config-QSK54DR5.js → compile-vercel-config-7Z4U2GXV.js} +1 -1
  82. package/dist/chunks/{config-CYB2D7JW.js → config-DWUI22HZ.js} +1 -1
  83. package/dist/chunks/config-S2ZQRGUM.js +7 -0
  84. package/dist/chunks/connect-git-provider-WOJ5VGWD.js +7 -0
  85. package/dist/chunks/{delete-FGAGJXOB.js → delete-DKXWEXSY.js} +1 -1
  86. package/dist/chunks/{delete-VCTCCONO.js → delete-LJFDZG3J.js} +1 -1
  87. package/dist/chunks/{detect-projects-KARO5GUW.js → detect-projects-64MZJZ6M.js} +1 -1
  88. package/dist/chunks/{detect-services-E6YHXKW4.js → detect-services-OYKTY23L.js} +1 -1
  89. package/dist/chunks/{disable-HH54G52S.js → disable-5ZNYIRQ6.js} +1 -1
  90. package/dist/chunks/{discard-5WINBWIU.js → discard-VGPXMVDP.js} +1 -1
  91. package/dist/chunks/{edit-VRGGDLHE.js → edit-OAUR6VZN.js} +1 -1
  92. package/dist/chunks/{edit-XPCNKJWN.js → edit-PZJIUQUQ.js} +1 -1
  93. package/dist/chunks/{enable-YDUGO5UD.js → enable-XHKXM6ZO.js} +1 -1
  94. package/dist/chunks/{exec-4AISDHUV.js → exec-ZLT5KH2Z.js} +1 -1
  95. package/dist/chunks/{export-NHFTH2RG.js → export-WJ5AOD5D.js} +1 -1
  96. package/dist/chunks/future-CFQTZYLF.js +7 -0
  97. package/dist/chunks/{generate-cert-for-deploy-XRP7KJJT.js → generate-cert-for-deploy-MLBCRZP7.js} +1 -1
  98. package/dist/chunks/{image-F7YIEOEF.js → image-O62TT3WT.js} +1 -1
  99. package/dist/chunks/import-builders-XBF4XRUV.js +7 -0
  100. package/dist/chunks/{inspect-PG2FOH2K.js → inspect-37P6UWRK.js} +1 -1
  101. package/dist/chunks/{inspect-2ODMUOBD.js → inspect-5UD3BTCK.js} +1 -1
  102. package/dist/chunks/{inspect-3FLLLXNZ.js → inspect-JNAVK3W2.js} +1 -1
  103. package/dist/chunks/{inspect-IGC2Q4VF.js → inspect-PTE3AJIM.js} +1 -1
  104. package/dist/chunks/{inspect-BDBUAW64.js → inspect-ZEQB7B56.js} +1 -1
  105. package/dist/chunks/{list-XTWDVN6W.js → list-BCNACV7V.js} +1 -1
  106. package/dist/chunks/{list-DPSVL3LB.js → list-D4WFKHXH.js} +1 -1
  107. package/dist/chunks/{list-DPLMC7O6.js → list-NFRKB6ZN.js} +1 -1
  108. package/dist/chunks/{login-XBBIV5CZ.js → login-IN4CKJYT.js} +1 -1
  109. package/dist/chunks/login-YBF2T6BO.js +7 -0
  110. package/dist/chunks/{logs-ZMEAEAT2.js → logs-3ULFZW4S.js} +1 -1
  111. package/dist/chunks/{ls-AD6U4YKQ.js → ls-454PHZ45.js} +1 -1
  112. package/dist/chunks/{ls-AOKYY6S4.js → ls-6P2SJGIV.js} +1 -1
  113. package/dist/chunks/{ls-TQCHJ433.js → ls-A2FWZ3NF.js} +1 -1
  114. package/dist/chunks/{ls-ITZ7B6PN.js → ls-AOXH6ROK.js} +1 -1
  115. package/dist/chunks/{ls-FGCLFYVB.js → ls-KOJYZ2MR.js} +1 -1
  116. package/dist/chunks/{ls-HV6R6EFU.js → ls-M4AAACDP.js} +1 -1
  117. package/dist/chunks/{ls-M6LA6GW2.js → ls-SQLHYCYD.js} +1 -1
  118. package/dist/chunks/{mutate-ECYH3M3M.js → mutate-VRGKUIKY.js} +1 -1
  119. package/dist/chunks/{notifications-ZOG67PRF.js → notifications-EWKMY3H6.js} +1 -1
  120. package/dist/chunks/{open-H6UQKAZ4.js → open-WLDHUEDQ.js} +1 -1
  121. package/dist/chunks/openapi-V5CKADGX.js +7 -0
  122. package/dist/chunks/{permissions-UXSL3L5W.js → permissions-6GBDJTT6.js} +1 -1
  123. package/dist/chunks/prompt-missing-credentials-BTUGE7QE.js +7 -0
  124. package/dist/chunks/{publish-LVRMJU7C.js → publish-2UPLM3TI.js} +1 -1
  125. package/dist/chunks/pull-Y5CUBUU7.js +7 -0
  126. package/dist/chunks/{purchase-domain-if-available-GLGUG72T.js → purchase-domain-if-available-IMVQLQ5H.js} +1 -1
  127. package/dist/chunks/{push-BR24ODVX.js → push-CAAKZO2C.js} +1 -1
  128. package/dist/chunks/{query-CDQJX2Z7.js → query-UFFZMZWM.js} +2 -2
  129. package/dist/chunks/reauthenticate-BUEUJA3T.js +7 -0
  130. package/dist/chunks/{reorder-4CT3NI3X.js → reorder-YMD7BWAB.js} +1 -1
  131. package/dist/chunks/{reply-6SBUWKEV.js → reply-3KG3AZCJ.js} +1 -1
  132. package/dist/chunks/{resolve-4YRSE3DN.js → resolve-JBH2ULOU.js} +1 -1
  133. package/dist/chunks/{restore-HKI7YSAI.js → restore-Y4Z3F6HQ.js} +1 -1
  134. package/dist/chunks/{rm-ZZYVVAWZ.js → rm-G2VITZWG.js} +1 -1
  135. package/dist/chunks/{rm-H3UFGM5B.js → rm-OPYE65YL.js} +1 -1
  136. package/dist/chunks/{rm-EHWULTJ4.js → rm-RG2M3HCR.js} +1 -1
  137. package/dist/chunks/{rm-4WGNHC36.js → rm-S2XKAZ2G.js} +1 -1
  138. package/dist/chunks/{rm-7YF4FPRG.js → rm-SUIELRWK.js} +1 -1
  139. package/dist/chunks/routes-ZD7XUKLY.js +7 -0
  140. package/dist/chunks/{rule-inspect-QJKXA6GM.js → rule-inspect-NUSKPGGY.js} +1 -1
  141. package/dist/chunks/{rules-LG2IKQ7A.js → rules-HRB2B2DX.js} +1 -1
  142. package/dist/chunks/{schema-BIFEX4HY.js → schema-HISMGDPE.js} +1 -1
  143. package/dist/chunks/{schema-2OJNI6A5.js → schema-MAANM5RD.js} +1 -1
  144. package/dist/chunks/{select-org-KSCYSESV.js → select-org-EMVG2OX2.js} +1 -1
  145. package/dist/chunks/{set-GYCTXDOC.js → set-FVZSBB5K.js} +1 -1
  146. package/dist/chunks/setup-and-link-V2VNR6UN.js +7 -0
  147. package/dist/chunks/{tags-C7RMO53H.js → tags-GH3U4E6I.js} +1 -1
  148. package/dist/chunks/{types-LRXQEDYI.js → types-6SBDA4SL.js} +1 -1
  149. package/dist/chunks/{update-4ZU5XKA2.js → update-R536DPNI.js} +1 -1
  150. package/dist/chunks/{chunk-XFVGX5HG.js → vlt-builder-graph-B4DFIUS6.js} +1 -1
  151. package/dist/commands/build/index.js +1 -1
  152. package/dist/commands/deploy/index.js +4 -4
  153. package/dist/commands/dev/index.js +12 -11
  154. package/dist/commands/env/index.js +1 -1
  155. package/dist/commands/link/index.js +1 -1
  156. package/dist/commands/list/index.js +1 -1
  157. package/dist/commands-bulk.js +594 -566
  158. package/dist/index.js +5 -5
  159. package/dist/version.mjs +1 -1
  160. package/package.json +16 -16
  161. package/dist/chunks/chunk-3AKI2QN6.js +0 -13
  162. package/dist/chunks/chunk-57GHYR4Y.js +0 -25
  163. package/dist/chunks/chunk-6SLI6JAA.js +0 -8
  164. package/dist/chunks/chunk-HODOBPBQ.js +0 -7
  165. package/dist/chunks/chunk-HTC6KO2B.js +0 -7
  166. package/dist/chunks/chunk-LNPMDXBJ.js +0 -7
  167. package/dist/chunks/chunk-LSBEGBBX.js +0 -9
  168. package/dist/chunks/chunk-NS4FH2TY.js +0 -11
  169. package/dist/chunks/chunk-OMHZEZGJ.js +0 -8
  170. package/dist/chunks/chunk-UETTIYUQ.js +0 -8
  171. package/dist/chunks/chunk-WIOGEJOJ.js +0 -9
  172. package/dist/chunks/chunk-YKZLKOOD.js +0 -12
  173. package/dist/chunks/config-OMS5PWMD.js +0 -7
  174. package/dist/chunks/connect-git-provider-GIU5WZ52.js +0 -7
  175. package/dist/chunks/future-E2FHKPJN.js +0 -7
  176. package/dist/chunks/import-builders-QRQT4S2U.js +0 -7
  177. package/dist/chunks/login-DEAEVUHM.js +0 -7
  178. package/dist/chunks/native-self-update-KOJVRMHR.js +0 -7
  179. package/dist/chunks/openapi-MO5HYMHR.js +0 -7
  180. package/dist/chunks/prompt-missing-credentials-IUHLYSQU.js +0 -7
  181. package/dist/chunks/pull-N73PO6QD.js +0 -7
  182. package/dist/chunks/reauthenticate-SH4XR7NH.js +0 -7
  183. package/dist/chunks/routes-5DERZV5M.js +0 -7
  184. package/dist/chunks/setup-and-link-FV35BKJV.js +0 -7
package/dist/index.js CHANGED
@@ -4,22 +4,22 @@ 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-WKZ6JSGZ.js";import{help}from"./chunks/chunk-3FMJYJUR.js";import{box,canAutoUpdate,did_you_mean_default,executeUpgrade,hasAutoUpdatePreference,isVersionPinned,setAutoUpdate}from"./chunks/chunk-3AKI2QN6.js";import{matchesCliApiTag}from"./chunks/chunk-RAIBQIKB.js";import{getUpdateCommand}from"./chunks/chunk-6SLI6JAA.js";import"./chunks/chunk-U56NHYAH.js";import{Client,getAuthConfigFilePath,getConfigFilePath,isValidAccessToken,readAuthConfigFile,readConfigFile,writeToConfigFile}from"./chunks/chunk-5QNKMAN3.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import{highlight}from"./chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"./chunks/chunk-ZIPVX7LD.js";import"./chunks/chunk-PQCAYAZ3.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import{commandNames,commands}from"./chunks/chunk-WIOGEJOJ.js";import"./chunks/chunk-M5AV545M.js";import"./chunks/chunk-65JYSI26.js";import"./chunks/chunk-YMVDWVMO.js";import"./chunks/chunk-O7G3CZ42.js";import"./chunks/chunk-N3N5UHIL.js";import"./chunks/chunk-IVWPQYIH.js";import"./chunks/chunk-WUZD4KBL.js";import"./chunks/chunk-3QHJYVCY.js";import"./chunks/chunk-NBVY237X.js";import"./chunks/chunk-MEAY2K5Z.js";import"./chunks/chunk-EQ52F4LH.js";import"./chunks/chunk-EIXOJUNN.js";import"./chunks/chunk-OAKO6LVS.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-JEIMW3CO.js";import"./chunks/chunk-ZKYS7EAB.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-MVAM5QXS.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-QR7QPUFN.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-CN2QZO4U.js";import"./chunks/chunk-XQ73QIQ3.js";import"./chunks/chunk-K3KJZLBD.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import{getScope,isAppPrincipalEnabled,resolveAppTokenScope}from"./chunks/chunk-HODOBPBQ.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-57GHYR4Y.js";import"./chunks/chunk-RCTYVKM5.js";import{getArgs,parseArguments}from"./chunks/chunk-HTC6KO2B.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-LNPMDXBJ.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{require_cli_config}from"./chunks/chunk-BRK4OB4B.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-A5SVOPQK.js";import"./chunks/chunk-F2ZWW2IO.js";import"./chunks/chunk-B4ATVYZW.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import"./chunks/chunk-OSCCYU74.js";import"./chunks/chunk-JAJW3P42.js";import"./chunks/chunk-XSVBYDYI.js";import{getTeamByIdOrSlug,getUser}from"./chunks/chunk-EVZRQGNK.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-R2TGGVCT.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{require_build_utils}from"./chunks/chunk-XFVGX5HG.js";import{output_manager_default}from"./chunks/chunk-Z6Y55QJW.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_lib2=__commonJS({"../../node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js"(exports,module){"use strict";var os=__require("os"),paths=__require("path"),isWinOS=/^win/i.test(process.platform);function normalize_path(path2){return paths.normalize(paths.join(path2,"."))}var base=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TMPDIR||env.TEMP||env.TMP),object},windows=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.USERPROFILE||paths.join(env.HOMEDRIVE,env.HOMEPATH)||env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TEMP||env.TMP||paths.join(env.LOCALAPPDATA||env.SystemRoot||env.windir,"Temp")),object},_OSPaths=class __OSPaths{constructor(){let OSPaths=function(){return new __OSPaths};this._fn=OSPaths;let extension=isWinOS?windows():base();return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _OSPaths}});var require_lib3=__commonJS({"../../node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js"(exports,module){"use strict";var path2=__require("path"),osPaths=require_lib2(),linux=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path2.join(osPaths.home()||osPaths.temp(),".cache"),object.config=()=>process.env.XDG_CONFIG_HOME||path2.join(osPaths.home()||osPaths.temp(),".config"),object.data=()=>process.env.XDG_DATA_HOME||path2.join(osPaths.home()||osPaths.temp(),".local","share"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path2.join(osPaths.home()||osPaths.temp(),".local","state"),object},macos=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path2.join(path2.join(osPaths.home()||osPaths.temp(),"Library"),"Caches"),object.config=()=>process.env.XDG_CONFIG_HOME||path2.join(path2.join(osPaths.home()||osPaths.temp(),"Library"),"Preferences"),object.data=()=>process.env.XDG_DATA_HOME||path2.join(path2.join(osPaths.home()||osPaths.temp(),"Library"),"Application Support"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path2.join(path2.join(osPaths.home()||osPaths.temp(),"Library"),"State"),object},windows=()=>{let object={};return object.cache=()=>{let localAppData=process.env.LOCALAPPDATA||path2.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_CACHE_HOME||path2.join(localAppData,"xdg.cache")},object.config=()=>{let appData=process.env.APPDATA||path2.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_CONFIG_HOME||path2.join(appData,"xdg.config")},object.data=()=>{let appData=process.env.APPDATA||path2.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_DATA_HOME||path2.join(appData,"xdg.data")},object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>{let localAppData=process.env.LOCALAPPDATA||path2.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_STATE_HOME||path2.join(localAppData,"xdg.state")},object},_XDGPortable=()=>{let XDGPortable=function(){return _XDGPortable()},extension={};return/^darwin$/i.test(process.platform)?extension=macos():/^win/i.test(process.platform)?extension=windows():extension=linux(),extension.configDirs=()=>{let dirs=[];return dirs.push(extension.config()),process.env.XDG_CONFIG_DIRS&&dirs.push(...process.env.XDG_CONFIG_DIRS.split(path2.delimiter)),dirs},extension.dataDirs=()=>{let dirs=[];return dirs.push(extension.data()),process.env.XDG_DATA_DIRS&&dirs.push(...process.env.XDG_DATA_DIRS.split(path2.delimiter)),dirs},Object.keys(extension).forEach(key=>{XDGPortable[key]=extension[key]}),XDGPortable};module.exports=_XDGPortable()}});var require_xdg_app_paths=__commonJS({"../../node_modules/.pnpm/xdg-app-paths@5.1.0/node_modules/xdg-app-paths/index.js"(exports,module){"use strict";var path2=__require("path"),os=__require("os"),xdg=require_lib3(),isWinOS=/^win/i.test(process.platform);function _normalizeOptions(options,isolated){if(options=options||{},typeof options!="object"&&(options={isolated:options}),options.isolated=options.isolated===void 0||options.isolated===null?isolated:options.isolated,typeof options.isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof options.isolated}`);return options}var base=(name,isolated)=>{let object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path2.join(xdg.cache(),options.isolated?name:"")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path2.join(xdg.config(),options.isolated?name:"")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path2.join(xdg.data(),options.isolated?name:"")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path2.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path2.join(xdg.state(),options.isolated?name:"")),object.configDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.configDirs().map(s=>path2.join(s,options.isolated?name:""))),object.dataDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.dataDirs().map(s=>path2.join(s,options.isolated?name:""))),object},windows=(name,isolated)=>{let{env}=process,homedir2=os.homedir(),tmpdir=os.tmpdir(),appData=env.APPDATA||path2.join(homedir2||tmpdir,"AppData","Roaming"),localAppData=env.LOCALAPPDATA||path2.join(homedir2||tmpdir,"AppData","Local"),object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CACHE_HOME?path2.join(xdg.cache(),options.isolated?name:""):path2.join(localAppData,options.isolated?name:"","Cache")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CONFIG_HOME?path2.join(xdg.config(),options.isolated?name:""):path2.join(appData,options.isolated?name:"","Config")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_DATA_HOME?path2.join(xdg.data(),options.isolated?name:""):path2.join(appData,options.isolated?name:"","Data")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path2.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_STATE_HOME?path2.join(xdg.state(),options.isolated?name:""):path2.join(localAppData,options.isolated?name:"","State")),object.configDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.config(options)];return env.XDG_CONFIG_DIRS&&dirs.push(...env.XDG_CONFIG_DIRS.split(path2.delimiter).map(s=>path2.join(s,options.isolated?name:""))),dirs},object.dataDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.data(options)];return env.XDG_DATA_DIRS&&dirs.push(...env.XDG_DATA_DIRS.split(path2.delimiter).map(s=>path2.join(s,options.isolated?name:""))),dirs},object},_XDGAppPaths=class __XDGAppPaths{constructor(options={name:null,suffix:null,isolated:!0}){let XDGAppPaths2=function(options2={name:null,suffix:null,isolated:!0}){return new __XDGAppPaths(options2)};this._fn=XDGAppPaths2,options=options||{},typeof options!="object"&&(options={name:options});let name=options.name||"";if(typeof name!="string")throw new TypeError(`Expected string for "name" argument, got ${typeof name}`);let suffix=options.suffix||"";if(typeof suffix!="string")throw new TypeError(`Expected string for "suffix" argument, got ${typeof suffix}`);let isolated=options.isolated===void 0||options.isolated===null?!0:options.isolated;if(typeof isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof isolated}`);name||(name=path2.parse(process.pkg?process.execPath:__require.main?__require.main.filename:process.argv[0]).name),suffix&&(name+=suffix),this._fn.$name=()=>name,this._fn.$isolated=()=>isolated;let extension=isWinOS?windows(name,isolated):base(name,isolated);return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _XDGAppPaths}});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-G4UYVLOF.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}function handleCommandTypo({command,availableCommands,threshold=.7}){if(!command||command.startsWith("-"))return!1;let suggestion=did_you_mean_default(command,availableCommands,threshold);return suggestion?(output_manager_default.error(`${param(command)} is not a valid target directory or subcommand. Did you mean ${param(suggestion)}?`),!0):!1}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 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})}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})}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})}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})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",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 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,handleRejection=async err=>{err?err instanceof Error?await handleUnexpected(err):(output_manager_default.error(`An unexpected rejection occurred
7
+ import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import{help}from"./chunks/chunk-3FMJYJUR.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-46NPQBNU.js";import{matchesCliApiTag}from"./chunks/chunk-SA2SQV6P.js";import{getUpdateCommand}from"./chunks/chunk-RCHRY3CN.js";import"./chunks/chunk-U56NHYAH.js";import{Client,getAuthConfigFilePath,getConfigFilePath,isValidAccessToken,readAuthConfigFile,readConfigFile,writeToConfigFile}from"./chunks/chunk-DD5EEWWR.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import{highlight}from"./chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"./chunks/chunk-KACMQTK7.js";import"./chunks/chunk-FM2ODCMZ.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import{commands,commandsStructs,isHiddenCommand}from"./chunks/chunk-I7QY6ROQ.js";import"./chunks/chunk-M5AV545M.js";import"./chunks/chunk-65JYSI26.js";import"./chunks/chunk-YMVDWVMO.js";import"./chunks/chunk-O7G3CZ42.js";import"./chunks/chunk-N3N5UHIL.js";import"./chunks/chunk-IVWPQYIH.js";import"./chunks/chunk-WUZD4KBL.js";import"./chunks/chunk-3QHJYVCY.js";import"./chunks/chunk-NBVY237X.js";import"./chunks/chunk-MEAY2K5Z.js";import"./chunks/chunk-EQ52F4LH.js";import"./chunks/chunk-EIXOJUNN.js";import"./chunks/chunk-OAKO6LVS.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-JEIMW3CO.js";import"./chunks/chunk-ZKYS7EAB.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-WTXJ4X2D.js";import"./chunks/chunk-NNP5NITU.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-QR7QPUFN.js";import"./chunks/chunk-2I64AYHG.js";import"./chunks/chunk-SOJCELXH.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-Y7SVAW54.js";import"./chunks/chunk-U6TAKLJ6.js";import"./chunks/chunk-JDQP267R.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import{getScope,isAppPrincipalEnabled,resolveAppTokenScope}from"./chunks/chunk-CJ3LL5E7.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-W2XUH2WW.js";import"./chunks/chunk-RCTYVKM5.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-AL5JWXZE.js";import{getArgs,parseArguments}from"./chunks/chunk-HUHUQXHY.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-HUI32UNA.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-OSCCYU74.js";import{shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-KNQ3Y22G.js";import"./chunks/chunk-JAJW3P42.js";import"./chunks/chunk-4VGOAPFY.js";import{getUser}from"./chunks/chunk-WSNDO7JA.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-CBWDIZAF.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{output_manager_default,require_build_utils}from"./chunks/chunk-RTRCTYW6.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-G4UYVLOF.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","help","init","build","builders","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];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);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})}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})}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})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",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 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,handleRejection=async err=>{err?err instanceof Error?await handleUnexpected(err):(output_manager_default.error(`An unexpected rejection occurred
8
8
  ${err}`),await reportError(await getSentry(),client,err)):output_manager_default.error("An unexpected empty rejection occurred"),process.exit(1)},handleUnexpected=async err=>{let{message}=err;if(message.includes("sentry")&&message.includes("ENOTFOUND")){output_manager_default.debug(`Sentry is not reachable: ${err}`);return}output_manager_default.error(`An unexpected error occurred!
9
9
  ${err.stack}`),await reportError(await getSentry(),client,err),process.exit(1)};process.on("unhandledRejection",handleRejection);process.on("uncaughtException",handleUnexpected);process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
10
10
  `);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=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
11
11
  ${localConfig.meta.paths.join(` or
12
12
  `)}`),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],betaCommands=["api","crons","curl","kms","webhooks"],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=targetOrSubcommand&&betaCommands.includes(targetOrSubcommand)?`${versionBanner} | ${targetOrSubcommand} is in beta \u2014 https://vercel.com/feedback`:versionBanner;if(shouldPrintVersionBanner(targetOrSubcommand,process.argv)&&output_manager_default.print(`${import_chalk.default.dim(msg)}
13
- `),!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;if(!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&!subSubCommand)return output_manager_default.print(help()),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(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=>(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-MO5HYMHR.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;subcommand==="help"&&(telemetry.trackCliCommandHelp("help"),subcommand=subSubCommand||"deploy",client.argv.push("-h"));let subcommandsWithoutToken=["login","logout","help","init","build","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];if(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-IUHLYSQU.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"&&targetCommand!=="login"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){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,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))}let related=teams.find(team=>team.id===scope||team.slug===scope);if(!related&&!scopeMatchesUserIdentity)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)client.config.currentTeam=related.id;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-4AISDHUV.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({command:targetCommand,availableCommands:commandNames}))return 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"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"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"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"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;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({command:subcommand,availableCommands:commandNames})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),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),(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(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);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}}main().then(async exitCode=>{if(cachedLatest&&resolvedCommandForUpdate!=="upgrade"&&!await isVersionPinned()){let originalExitCode=typeof exitCode=="number"?exitCode:0,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)){let upgradeExitCode=await executeUpgrade();process.exitCode=originalExitCode,upgradeExitCode!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`);return}if(latest){let changelog=`https://github.com/vercel/vercel/releases/tag/vercel%40${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(`
13
+ `),!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;if(!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&!subSubCommand)return output_manager_default.print(help()),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(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-V5CKADGX.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",client.argv.push("-h")}let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN];if(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-BTUGE7QE.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"&&targetCommand!=="login"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){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,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))}let related=teams.find(team=>team.id===scope||team.slug===scope);if(!related&&!scopeMatchesUserIdentity)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)client.config.currentTeam=related.id;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-ZLT5KH2Z.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"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"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"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;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=`https://github.com/vercel/vercel/releases/tag/vercel%40${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
14
  Update available for Vercel CLI (${import_chalk.default.gray(`v${pkg_default.version}`)} \u2192 ${import_chalk.default.green(`v${latest}`)})${errorMsg}
15
15
  `),output_manager_default.print(`Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
16
- `);let upgradeExitCode=await promptAndUpgrade(client,latest);if(upgradeExitCode!==void 0){process.exitCode=upgradeExitCode;return}}else{let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(`
16
+ `);let upgradeExitCode=await promptAndUpgrade(client,latest);if(upgradeExitCode!==void 0)return upgradeExitCode}else{let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(`
17
17
 
18
18
  The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(box(`Update available! ${import_chalk.default.gray(`v${pkg_default.version}`)} \u226B ${import_chalk.default.green(`v${latest}`)}
19
19
  Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
20
20
  Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.${errorMsg}`)),output_manager_default.print(`
21
21
  `)}}else if(!fresh)if(isTTY){output_manager_default.print(`
22
22
  A newer version of Vercel CLI may be available.
23
- `);let upgradeExitCode=await promptAndUpgrade(client);if(upgradeExitCode!==void 0){process.exitCode=upgradeExitCode;return}}else output_manager_default.print(box(`A newer version of Vercel CLI may be available.
23
+ `);let upgradeExitCode=await promptAndUpgrade(client);if(upgradeExitCode!==void 0)return upgradeExitCode}else output_manager_default.print(box(`A newer version of Vercel CLI may be available.
24
24
  Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.`)),output_manager_default.print(`
25
- `)}process.exitCode=exitCode}).catch(handleUnexpected);
25
+ `)}return exitCode}main().then(async exitCode=>{process.exitCode=await runUpdateMaintenance(exitCode,()=>runPostCommandUpdates(exitCode))}).catch(handleUnexpected);
package/dist/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "59.17.0";
1
+ export const version = "59.18.0";
2
2
  export const buildLabel = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "59.17.0",
3
+ "version": "59.18.0",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -36,21 +36,21 @@
36
36
  "uuid": "14.0.1",
37
37
  "zod": "4.1.11",
38
38
  "@vercel/backends": "8.0.1",
39
+ "@vercel/cli-auth": "0.3.8",
40
+ "@vercel/cli-config": "0.2.7",
41
+ "@vercel/container": "8.2.0",
39
42
  "@vercel/build-utils": "14.10.1",
40
- "@vercel/cli-auth": "0.3.7",
41
- "@vercel/cli-config": "0.2.6",
42
- "@vercel/container": "8.1.0",
43
43
  "@vercel/detect-agent": "1.2.5",
44
- "@vercel/elysia": "8.0.1",
45
44
  "@vercel/express": "8.0.1",
45
+ "@vercel/elysia": "8.0.1",
46
46
  "@vercel/fastify": "8.0.1",
47
47
  "@vercel/go": "11.0.1",
48
- "@vercel/h3": "8.0.1",
49
48
  "@vercel/hono": "8.0.1",
49
+ "@vercel/h3": "8.0.1",
50
50
  "@vercel/hydrogen": "9.0.1",
51
51
  "@vercel/koa": "8.0.1",
52
52
  "@vercel/nestjs": "8.0.1",
53
- "@vercel/next": "12.0.1",
53
+ "@vercel/next": "12.0.2",
54
54
  "@vercel/node": "13.0.1",
55
55
  "@vercel/python": "14.1.0",
56
56
  "@vercel/python-analysis": "0.14.0",
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "builders": {
64
64
  "@vercel/backends": "8.0.1",
65
- "@vercel/container": "8.1.0",
65
+ "@vercel/container": "8.2.0",
66
66
  "@vercel/elysia": "8.0.1",
67
67
  "@vercel/express": "8.0.1",
68
68
  "@vercel/fastify": "8.0.1",
@@ -72,7 +72,7 @@
72
72
  "@vercel/hydrogen": "9.0.1",
73
73
  "@vercel/koa": "8.0.1",
74
74
  "@vercel/nestjs": "8.0.1",
75
- "@vercel/next": "12.0.1",
75
+ "@vercel/next": "12.0.2",
76
76
  "@vercel/node": "13.0.1",
77
77
  "@vercel/python": "14.1.0",
78
78
  "@vercel/redwood": "10.0.1",
@@ -208,20 +208,20 @@
208
208
  "@vercel-internals/builder-orchestration": "1.0.0",
209
209
  "@vercel-internals/cli-builder-integration": "1.0.0",
210
210
  "@vercel-internals/constants": "1.0.4",
211
+ "@vercel-internals/get-package-json": "1.0.0",
211
212
  "@vercel-internals/service-topology": "1.0.0",
212
213
  "@vercel-internals/types": "3.0.6",
213
214
  "@vercel/client": "18.4.1",
214
215
  "@vercel/error-utils": "2.2.1",
215
216
  "@vercel/frameworks": "3.34.0",
216
- "@vercel/fs-detectors": "7.2.5",
217
- "@vercel/routing-utils": "6.6.0",
218
- "@vercel-internals/get-package-json": "1.0.0"
217
+ "@vercel/fs-detectors": "7.3.0",
218
+ "@vercel/routing-utils": "6.6.0"
219
219
  },
220
220
  "optionalDependencies": {
221
- "@vercel/vc-native-darwin-arm64": "59.17.0",
222
- "@vercel/vc-native-darwin-x64": "59.17.0",
223
- "@vercel/vc-native-linux-arm64": "59.17.0",
224
- "@vercel/vc-native-linux-x64": "59.17.0"
221
+ "@vercel/vc-native-darwin-arm64": "59.18.0",
222
+ "@vercel/vc-native-darwin-x64": "59.18.0",
223
+ "@vercel/vc-native-linux-arm64": "59.18.0",
224
+ "@vercel/vc-native-linux-x64": "59.18.0"
225
225
  },
226
226
  "scripts": {
227
227
  "test": "node scripts/test.mjs --run",
@@ -1,13 +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{getUpdateCommandInfo,isGlobal}from"./chunk-6SLI6JAA.js";import{progress}from"./chunk-U56NHYAH.js";import{writeToConfigFile}from"./chunk-5QNKMAN3.js";import{require_ci_info}from"./chunk-T52FMXWC.js";import{require_semver}from"./chunk-KKS7XWEX.js";import{isNativeBinaryInstall}from"./chunk-7T6TL3GQ.js";import{require_strip_ansi}from"./chunk-OSCCYU74.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";import{pkg_default}from"./chunk-AVSPFBLM.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__commonJS,__toESM}from"./chunk-6L236MNA.js";var require_jaro_winkler=__commonJS({"../../node_modules/.pnpm/jaro-winkler@0.2.8/node_modules/jaro-winkler/index.js"(exports,module){(function(root){"use strict";function extend(a,b){for(var property in b)b.hasOwnProperty(property)&&(a[property]=b[property]);return a}function distance2(s1,s2,options){var m=0,defaults={caseSensitive:!0},settings=extend(defaults,options),i,j;if(s1.length===0||s2.length===0)return 0;if(settings.caseSensitive||(s1=s1.toUpperCase(),s2=s2.toUpperCase()),s1===s2)return 1;var range=Math.floor(Math.max(s1.length,s2.length)/2)-1,s1Matches=new Array(s1.length),s2Matches=new Array(s2.length);for(i=0;i<s1.length;i++){var low=i>=range?i-range:0,high=i+range<=s2.length-1?i+range:s2.length-1;for(j=low;j<=high;j++)if(s1Matches[i]!==!0&&s2Matches[j]!==!0&&s1[i]===s2[j]){++m,s1Matches[i]=s2Matches[j]=!0;break}}if(m===0)return 0;var k=0,numTrans=0;for(i=0;i<s1.length;i++)if(s1Matches[i]===!0){for(j=k;j<s2.length;j++)if(s2Matches[j]===!0){k=j+1;break}s1[i]!==s2[j]&&++numTrans}var weight=(m/s1.length+m/s2.length+(m-numTrans/2)/m)/3,l=0,p=.1;if(weight>.7){for(;s1[l]===s2[l]&&l<4;)++l;weight=weight+l*p*(1-weight)}return weight}typeof define=="function"&&define.amd?define([],function(){return distance2}):typeof exports=="object"?module.exports=distance2:root.distance=distance2})(exports)}});var import_semver=__toESM(require_semver(),1);import{spawn,execFile}from"child_process";import{tmpdir}from"os";function renderUpgradeProgress(current,total,phase){let bar=progress(current,total);output_manager_default.spinner(bar?`Upgrading Vercel CLI [${bar}] (${current}/${total})${phase?` ${phase}`:""}`:phase||"Upgrading Vercel CLI\u2026",0)}function execFileStdout(command,args){return new Promise((resolve,reject)=>{execFile(command,args,{encoding:"utf8",windowsHide:!0},(error,stdout)=>{if(error){reject(error);return}resolve(stdout.toString())})})}function parseVersionOutput(stdout){for(let line of stdout.trim().split(`
8
- `).reverse())try{let parsed=JSON.parse(line),version=typeof parsed=="string"?parsed:typeof parsed?.data=="string"?parsed.data:void 0;if(version&&import_semver.default.valid(version))return version}catch{let version=line.trim();if(import_semver.default.valid(version))return version}}async function getLatestPackageVersion(packageManager,installArgs){let packageSpecifier=installArgs.find(arg=>arg.endsWith("@latest"));if(!packageSpecifier)return;let queryArgs=packageManager==="yarn"?["info",packageSpecifier,"version","--json"]:["view",packageSpecifier,"version","--json"];try{let stdout=await execFileStdout(packageManager,queryArgs);return parseVersionOutput(stdout)}catch(error){output_manager_default.debug(`Failed to resolve the latest Vercel CLI version: ${error instanceof Error?error.message:String(error)}`);return}}function isVersionCurrent(current,latest){return import_semver.default.valid(current)&&import_semver.default.valid(latest)?import_semver.default.gte(current,latest):current===latest}async function executeUpgrade(targetVersion){let totalSteps=targetVersion?2:3;renderUpgradeProgress(0,totalSteps,"Resolving installer\u2026");let{command:updateCommand,global}=await getUpdateCommandInfo().catch(error=>{throw output_manager_default.stopSpinner(),error}),[command,...args]=updateCommand.split(" "),cwd=global?tmpdir():process.cwd(),versionBefore=pkg_default.version,resolvedTargetVersion=targetVersion;return resolvedTargetVersion||(renderUpgradeProgress(1,totalSteps,"Checking for updates\u2026"),resolvedTargetVersion=await getLatestPackageVersion(command,args)),resolvedTargetVersion&&isVersionCurrent(versionBefore,resolvedTargetVersion)?(renderUpgradeProgress(totalSteps,totalSteps),output_manager_default.stopSpinner(),output_manager_default.log(`No upgrade available. Vercel CLI is already up to date (v${versionBefore}).`),0):(output_manager_default.debug(`Executing: ${updateCommand} (cwd: ${cwd})`),renderUpgradeProgress(targetVersion?1:2,totalSteps,"Installing\u2026"),new Promise(resolve=>{let stdout=[],stderr=[],upgradeProcess=spawn(command,args,{cwd,stdio:["inherit","pipe","pipe"],shell:!1});upgradeProcess.stdout?.on("data",data=>{stdout.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stdout] ${data.toString().trimEnd()}`)}),upgradeProcess.stderr?.on("data",data=>{stderr.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stderr] ${data.toString().trimEnd()}`)}),upgradeProcess.on("error",err=>{output_manager_default.stopSpinner(),output_manager_default.error(`Failed to execute upgrade command: ${err.message}`),output_manager_default.log(`You can try running the command manually: ${updateCommand}`),resolve(1)}),upgradeProcess.on("close",code=>{if(code!==0){output_manager_default.stopSpinner();let stdoutStr=Buffer.concat(stdout).toString(),stderrStr=Buffer.concat(stderr).toString();stdoutStr&&output_manager_default.print(stdoutStr),stderrStr&&output_manager_default.print(stderrStr),output_manager_default.error(`Upgrade failed with exit code ${code??"unknown"}`),output_manager_default.log(`You can try running the command manually: ${updateCommand}`),resolve(code??1);return}if(renderUpgradeProgress(totalSteps,totalSteps),output_manager_default.stopSpinner(),resolvedTargetVersion){output_manager_default.success(`Vercel CLI has been upgraded to v${resolvedTargetVersion} successfully!`),resolve(0);return}output_manager_default.success("Vercel CLI has been upgraded successfully!"),resolve(0)})}))}var import_ci_info=__toESM(require_ci_info(),1);async function isVersionPinned(){if(!isNativeBinaryInstall())return!1;let{getPinnedVersion}=await import("./native-self-update-KOJVRMHR.js");return await getPinnedVersion()!==void 0}function isAutoUpdateEnabled(config){return config.updates?.auto===!0}function hasAutoUpdatePreference(config){return typeof config.updates?.auto=="boolean"}function setAutoUpdate(client,enabled){client.config={...client.config,updates:{...client.config.updates,auto:enabled}},writeToConfigFile(client.config)}async function canAutoUpdate(client,exitCode,command){return isNativeBinaryInstall()||!isAutoUpdateEnabled(client.config)||exitCode!==0||import_ci_info.default.isCI||client.nonInteractive||client.isAgent||command==="upgrade"?!1:isGlobal()}var import_chalk=__toESM(require_source(),1),import_strip_ansi=__toESM(require_strip_ansi(),1),border=["\u2500","\u256D","\u256E","\u2502","\u2502","\u2570","\u256F"],nothing=["\u2500","","","","","",""];function box(message,{borderColor,padding=1,textAlignment="center",terminalColumns:cols=process.stdout.columns||process.env.COLUMNS&&parseInt(process.env.COLUMNS,10)||80}={}){let lines=message.split(/\r?\n/).map(line=>[line,(0,import_strip_ansi.default)(line).length]),maxLine=lines.reduce((p,[,len])=>Math.max(p,len),0),borderColorFn=borderColor&&import_chalk.default[borderColor]||import_chalk.default.yellow,clampedSidePadding=Math.max(1,padding*3),narrowMode=maxLine+2+clampedSidePadding*2>cols,sidePadding=narrowMode?0:clampedSidePadding,innerWidth=Math.min(maxLine+sidePadding*2,cols),[hr,topLeft,topRight,left,right,bottomLeft,bottomRight]=narrowMode?nothing:border,spacerRow=narrowMode?`
9
- `.repeat(padding):`${borderColorFn(`${left}${" ".repeat(innerWidth)}${right}`)}
10
- `.repeat(padding),renderLine=([line,len])=>{let leftPadding=0,rightPadding=0;return narrowMode||(leftPadding=sidePadding,rightPadding=sidePadding,textAlignment==="center"?(leftPadding+=Math.floor((maxLine-len)/2),rightPadding+=maxLine-len-leftPadding+sidePadding):textAlignment==="right"?leftPadding+=maxLine-len:textAlignment==="left"&&(rightPadding+=maxLine-len)),borderColorFn(left)+" ".repeat(leftPadding)+line+" ".repeat(rightPadding)+borderColorFn(right)};return borderColorFn(`${topLeft}${hr.repeat(innerWidth)}${topRight}`)+`
11
- `+spacerRow+lines.map(renderLine).join(`
12
- `)+`
13
- `+spacerRow+borderColorFn(`${bottomLeft}${hr.repeat(innerWidth)}${bottomRight}`)}var import_jaro_winkler=__toESM(require_jaro_winkler(),1),did_you_mean_default=didYouMean;function didYouMean(input,list,threshold=.5){let found=list.map(item=>[dashAwareDistance(input,item),item]).filter(item=>item[0]>threshold);if(found.length)return found.reduce((accu,curr)=>accu[0]>curr[0]?accu:curr)[1]}function dashAwareDistance(word,dashWord){let fullDistance=(0,import_jaro_winkler.default)(word,dashWord),distances=dashWord.split("-").map(w=>(0,import_jaro_winkler.default)(w,word)),meanDistance=distances.reduce((accu,curr)=>accu+curr)/distances.length;return fullDistance>meanDistance?fullDistance:meanDistance}export{did_you_mean_default,executeUpgrade,isVersionPinned,isAutoUpdateEnabled,hasAutoUpdatePreference,setAutoUpdate,canAutoUpdate,box};
@@ -1,25 +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{require_load_json_file,require_pify}from"./chunk-RCTYVKM5.js";import{isNativeBinaryInstall}from"./chunk-7T6TL3GQ.js";import{require_graceful_fs}from"./chunk-F2ZWW2IO.js";import{require_build_utils}from"./chunk-XFVGX5HG.js";import{output_manager_default,require_signal_exit}from"./chunk-Z6Y55QJW.js";import{__commonJS,__require,__toESM}from"./chunk-6L236MNA.js";var require_dist=__commonJS({"../../internals/constants/dist/index.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.TITLE=exports.NAME=exports.LOGO=exports.PROJECT_ENV_TARGET=void 0;exports.PROJECT_ENV_TARGET=["production","preview","development"];exports.LOGO="\u25B2";exports.NAME="vercel";exports.TITLE="Vercel"}});var require_imurmurhash=__commonJS({"../../node_modules/.pnpm/imurmurhash@0.1.4/node_modules/imurmurhash/imurmurhash.js"(exports,module){(function(){var cache;function MurmurHash3(key,seed){var m=this instanceof MurmurHash3?this:cache;if(m.reset(seed),typeof key=="string"&&key.length>0&&m.hash(key),m!==this)return m}MurmurHash3.prototype.hash=function(key){var h1,k1,i,top,len;switch(len=key.length,this.len+=len,k1=this.k1,i=0,this.rem){case 0:k1^=len>i?key.charCodeAt(i++)&65535:0;case 1:k1^=len>i?(key.charCodeAt(i++)&65535)<<8:0;case 2:k1^=len>i?(key.charCodeAt(i++)&65535)<<16:0;case 3:k1^=len>i?(key.charCodeAt(i)&255)<<24:0,k1^=len>i?(key.charCodeAt(i++)&65280)>>8:0}if(this.rem=len+this.rem&3,len-=this.rem,len>0){for(h1=this.h1;k1=k1*11601+(k1&65535)*3432906752&4294967295,k1=k1<<15|k1>>>17,k1=k1*13715+(k1&65535)*461832192&4294967295,h1^=k1,h1=h1<<13|h1>>>19,h1=h1*5+3864292196&4294967295,!(i>=len);)k1=key.charCodeAt(i++)&65535^(key.charCodeAt(i++)&65535)<<8^(key.charCodeAt(i++)&65535)<<16,top=key.charCodeAt(i++),k1^=(top&255)<<24^(top&65280)>>8;switch(k1=0,this.rem){case 3:k1^=(key.charCodeAt(i+2)&65535)<<16;case 2:k1^=(key.charCodeAt(i+1)&65535)<<8;case 1:k1^=key.charCodeAt(i)&65535}this.h1=h1}return this.k1=k1,this},MurmurHash3.prototype.result=function(){var k1,h1;return k1=this.k1,h1=this.h1,k1>0&&(k1=k1*11601+(k1&65535)*3432906752&4294967295,k1=k1<<15|k1>>>17,k1=k1*13715+(k1&65535)*461832192&4294967295,h1^=k1),h1^=this.len,h1^=h1>>>16,h1=h1*51819+(h1&65535)*2246770688&4294967295,h1^=h1>>>13,h1=h1*44597+(h1&65535)*3266445312&4294967295,h1^=h1>>>16,h1>>>0},MurmurHash3.prototype.reset=function(seed){return this.h1=typeof seed=="number"?seed:0,this.rem=this.k1=this.len=0,this},cache=new MurmurHash3,typeof module<"u"?module.exports=MurmurHash3:this.MurmurHash3=MurmurHash3})()}});var require_write_file_atomic=__commonJS({"../../node_modules/.pnpm/write-file-atomic@2.4.3/node_modules/write-file-atomic/index.js"(exports,module){"use strict";module.exports=writeFile;module.exports.sync=writeFileSync2;module.exports._getTmpname=getTmpname;module.exports._cleanupOnExit=cleanupOnExit;var fs=require_graceful_fs(),MurmurHash3=require_imurmurhash(),onExit=require_signal_exit(),path=__require("path"),activeFiles={},threadId=function(){try{var workerThreads=__require("worker_threads");return workerThreads.threadId}catch{return 0}}(),invocations=0;function getTmpname(filename){return filename+"."+MurmurHash3(__filename).hash(String(process.pid)).hash(String(threadId)).hash(String(++invocations)).result()}function cleanupOnExit(tmpfile){return function(){try{fs.unlinkSync(typeof tmpfile=="function"?tmpfile():tmpfile)}catch{}}}function writeFile(filename,data,options,callback){options?options instanceof Function?(callback=options,options={}):typeof options=="string"&&(options={encoding:options}):options={};var Promise2=options.Promise||global.Promise,truename,fd,tmpfile,removeOnExitHandler=onExit(cleanupOnExit(()=>tmpfile)),absoluteName=path.resolve(filename);new Promise2(function(resolve){activeFiles[absoluteName]||(activeFiles[absoluteName]=[]),activeFiles[absoluteName].push(resolve),activeFiles[absoluteName].length===1&&resolve()}).then(function(){return new Promise2(function(resolve){fs.realpath(filename,function(_,realname){truename=realname||filename,tmpfile=getTmpname(truename),resolve()})})}).then(function(){return new Promise2(function(resolve){options.mode&&options.chown?resolve():fs.stat(truename,function(err,stats){err||!stats||(options=Object.assign({},options),options.mode==null&&(options.mode=stats.mode),options.chown==null&&process.getuid&&(options.chown={uid:stats.uid,gid:stats.gid})),resolve()})})}).then(function(){return new Promise2(function(resolve,reject){fs.open(tmpfile,"w",options.mode,function(err,_fd){fd=_fd,err?reject(err):resolve()})})}).then(function(){return new Promise2(function(resolve,reject){Buffer.isBuffer(data)?fs.write(fd,data,0,data.length,0,function(err){err?reject(err):resolve()}):data!=null?fs.write(fd,String(data),0,String(options.encoding||"utf8"),function(err){err?reject(err):resolve()}):resolve()})}).then(function(){return new Promise2(function(resolve,reject){options.fsync!==!1?fs.fsync(fd,function(err){err?fs.close(fd,()=>reject(err)):fs.close(fd,resolve)}):fs.close(fd,resolve)})}).then(function(){if(fd=null,options.chown)return new Promise2(function(resolve,reject){fs.chown(tmpfile,options.chown.uid,options.chown.gid,function(err){err?reject(err):resolve()})})}).then(function(){if(options.mode)return new Promise2(function(resolve,reject){fs.chmod(tmpfile,options.mode,function(err){err?reject(err):resolve()})})}).then(function(){return new Promise2(function(resolve,reject){fs.rename(tmpfile,truename,function(err){err?reject(err):resolve()})})}).then(function(){removeOnExitHandler(),callback()},function(err){return new Promise2(resolve=>fd?fs.close(fd,resolve):resolve()).then(()=>{removeOnExitHandler(),fs.unlink(tmpfile,function(){callback(err)})})}).then(function(){activeFiles[absoluteName].shift(),activeFiles[absoluteName].length>0?activeFiles[absoluteName][0]():delete activeFiles[absoluteName]})}function writeFileSync2(filename,data,options){typeof options=="string"?options={encoding:options}:options||(options={});try{filename=fs.realpathSync(filename)}catch{}var tmpfile=getTmpname(filename);if(!options.mode||!options.chown)try{var stats=fs.statSync(filename);options=Object.assign({},options),options.mode||(options.mode=stats.mode),!options.chown&&process.getuid&&(options.chown={uid:stats.uid,gid:stats.gid})}catch{}var fd,cleanup=cleanupOnExit(tmpfile),removeOnExitHandler=onExit(cleanup);try{fd=fs.openSync(tmpfile,"w",options.mode),Buffer.isBuffer(data)?fs.writeSync(fd,data,0,data.length,0):data!=null&&fs.writeSync(fd,String(data),0,String(options.encoding||"utf8")),options.fsync!==!1&&fs.fsyncSync(fd),fs.closeSync(fd),options.chown&&fs.chownSync(tmpfile,options.chown.uid,options.chown.gid),options.mode&&fs.chmodSync(tmpfile,options.mode),fs.renameSync(tmpfile,filename),removeOnExitHandler()}catch(err){if(fd)try{fs.closeSync(fd)}catch{}throw removeOnExitHandler(),cleanup(),err}}}});var require_is_plain_obj=__commonJS({"../../node_modules/.pnpm/is-plain-obj@1.1.0/node_modules/is-plain-obj/index.js"(exports,module){"use strict";var toString=Object.prototype.toString;module.exports=function(x){var prototype;return toString.call(x)==="[object Object]"&&(prototype=Object.getPrototypeOf(x),prototype===null||prototype===Object.getPrototypeOf({}))}}});var require_sort_keys=__commonJS({"../../node_modules/.pnpm/sort-keys@1.1.2/node_modules/sort-keys/index.js"(exports,module){"use strict";var isPlainObj=require_is_plain_obj();module.exports=function(obj,opts){if(!isPlainObj(obj))throw new TypeError("Expected a plain object");opts=opts||{},typeof opts=="function"&&(opts={compare:opts});var deep=opts.deep,seenInput=[],seenOutput=[],sortKeys=function(x){var seenIndex=seenInput.indexOf(x);if(seenIndex!==-1)return seenOutput[seenIndex];var ret={},keys=Object.keys(x).sort(opts.compare);seenInput.push(x),seenOutput.push(ret);for(var i=0;i<keys.length;i++){var key=keys[i],val=x[key];ret[key]=deep&&isPlainObj(val)?sortKeys(val):val}return ret};return sortKeys(obj)}}});var require_pify2=__commonJS({"../../node_modules/.pnpm/pify@3.0.0/node_modules/pify/index.js"(exports,module){"use strict";var processFn=(fn,opts)=>function(){let P=opts.promiseModule,args=new Array(arguments.length);for(let i=0;i<arguments.length;i++)args[i]=arguments[i];return new P((resolve,reject)=>{opts.errorFirst?args.push(function(err,result){if(opts.multiArgs){let results=new Array(arguments.length-1);for(let i=1;i<arguments.length;i++)results[i-1]=arguments[i];err?(results.unshift(err),reject(results)):resolve(results)}else err?reject(err):resolve(result)}):args.push(function(result){if(opts.multiArgs){let results=new Array(arguments.length-1);for(let i=0;i<arguments.length;i++)results[i]=arguments[i];resolve(results)}else resolve(result)}),fn.apply(this,args)})};module.exports=(obj,opts)=>{opts=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},opts);let filter=key=>{let match=pattern=>typeof pattern=="string"?key===pattern:pattern.test(key);return opts.include?opts.include.some(match):!opts.exclude.some(match)},ret;typeof obj=="function"?ret=function(){return opts.excludeMain?obj.apply(this,arguments):processFn(obj,opts).apply(this,arguments)}:ret=Object.create(Object.getPrototypeOf(obj));for(let key in obj){let x=obj[key];ret[key]=typeof x=="function"&&filter(key)?processFn(x,opts):x}return ret}}});var require_make_dir=__commonJS({"../../node_modules/.pnpm/make-dir@1.3.0/node_modules/make-dir/index.js"(exports,module){"use strict";var fs=__require("fs"),path=__require("path"),pify=require_pify2(),defaults={mode:511&~process.umask(),fs},checkPath=pth=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(pth.replace(path.parse(pth).root,""))){let err=new Error(`Path contains invalid characters: ${pth}`);throw err.code="EINVAL",err}};module.exports=(input,opts)=>Promise.resolve().then(()=>{checkPath(input),opts=Object.assign({},defaults,opts);let mkdir=pify(opts.fs.mkdir),stat=pify(opts.fs.stat),make=pth=>mkdir(pth,opts.mode).then(()=>pth).catch(err=>{if(err.code==="ENOENT"){if(err.message.includes("null bytes")||path.dirname(pth)===pth)throw err;return make(path.dirname(pth)).then(()=>make(pth))}return stat(pth).then(stats=>stats.isDirectory()?pth:Promise.reject()).catch(()=>{throw err})});return make(path.resolve(input))});module.exports.sync=(input,opts)=>{checkPath(input),opts=Object.assign({},defaults,opts);let make=pth=>{try{opts.fs.mkdirSync(pth,opts.mode)}catch(err){if(err.code==="ENOENT"){if(err.message.includes("null bytes")||path.dirname(pth)===pth)throw err;return make(path.dirname(pth)),make(pth)}try{if(!opts.fs.statSync(pth).isDirectory())throw new Error("The path is not a directory")}catch{throw err}}return pth};return make(path.resolve(input))}}});var require_detect_indent=__commonJS({"../../node_modules/.pnpm/detect-indent@5.0.0/node_modules/detect-indent/index.js"(exports,module){"use strict";var INDENT_RE=/^(?:( )+|\t+)/;function getMostUsed(indents){let result=0,maxUsed=0,maxWeight=0;for(let entry of indents){let key=entry[0],val=entry[1],u=val[0],w=val[1];(u>maxUsed||u===maxUsed&&w>maxWeight)&&(maxUsed=u,maxWeight=w,result=Number(key))}return result}module.exports=str=>{if(typeof str!="string")throw new TypeError("Expected a string");let tabs=0,spaces=0,prev=0,indents=new Map,current,isIndent;for(let line of str.split(/\n/g)){if(!line)continue;let indent2,matches=line.match(INDENT_RE);matches?(indent2=matches[0].length,matches[1]?spaces++:tabs++):indent2=0;let diff=indent2-prev;prev=indent2,diff?(isIndent=diff>0,current=indents.get(isIndent?diff:-diff),current?current[0]++:(current=[1,0],indents.set(diff,current))):current&&(current[1]+=Number(isIndent))}let amount=getMostUsed(indents),type,indent;return amount?spaces>=tabs?(type="space",indent=" ".repeat(amount)):(type="tab",indent=" ".repeat(amount)):(type=null,indent=""),{amount,type,indent}}}});var require_write_json_file=__commonJS({"../../node_modules/.pnpm/write-json-file@2.2.0/node_modules/write-json-file/index.js"(exports,module){"use strict";var path=__require("path"),fs=require_graceful_fs(),writeFileAtomic=require_write_file_atomic(),sortKeys=require_sort_keys(),makeDir=require_make_dir(),pify=require_pify(),detectIndent=require_detect_indent(),init=(fn,fp,data,opts)=>{if(!fp)throw new TypeError("Expected a filepath");if(data===void 0)throw new TypeError("Expected data to stringify");return opts=Object.assign({indent:" ",sortKeys:!1},opts),opts.sortKeys&&(data=sortKeys(data,{deep:!0,compare:typeof opts.sortKeys=="function"&&opts.sortKeys})),fn(fp,data,opts)},readFile=fp=>pify(fs.readFile)(fp,"utf8").catch(()=>{}),main=(fp,data,opts)=>(opts.detectIndent?readFile(fp):Promise.resolve()).then(str=>{let indent=str?detectIndent(str).indent:opts.indent,json=JSON.stringify(data,opts.replacer,indent);return pify(writeFileAtomic)(fp,`${json}
8
- `,{mode:opts.mode})}),mainSync=(fp,data,opts)=>{let indent=opts.indent;if(opts.detectIndent)try{let file=fs.readFileSync(fp,"utf8");indent=detectIndent(file).indent}catch(err){if(err.code!=="ENOENT")throw err}let json=JSON.stringify(data,opts.replacer,indent);return writeFileAtomic.sync(fp,`${json}
9
- `,{mode:opts.mode})};module.exports=(fp,data,opts)=>makeDir(path.dirname(fp),{fs}).then(()=>init(main,fp,data,opts));module.exports.sync=(fp,data,opts)=>{makeDir.sync(path.dirname(fp),{fs}),init(mainSync,fp,data,opts)}}});import{randomUUID as randomUUID2}from"node:crypto";import os from"node:os";var import_constants=__toESM(require_dist(),1),import_build_utils=__toESM(require_build_utils(),1);import{spawn}from"node:child_process";var import_load_json_file=__toESM(require_load_json_file(),1),import_write_json_file=__toESM(require_write_json_file(),1);import{randomUUID}from"node:crypto";import{mkdirSync,renameSync,rmSync,writeFileSync}from"node:fs";import{dirname}from"node:path";var DEFAULT_CLI_SESSION_INACTIVITY_TIMEOUT_MS=30*60*1e3,DEFAULT_CLI_SESSION_MAX_LIFETIME_MS=24*60*60*1e3;function isPersistedCliSession(value){if(!value||typeof value!="object")return!1;let session=value;return typeof session.id=="string"&&typeof session.createdAt=="number"&&Number.isFinite(session.createdAt)&&typeof session.lastSeenAt=="number"&&Number.isFinite(session.lastSeenAt)}function isPersistedCliDevice(value){return!value||typeof value!="object"?!1:typeof value.id=="string"}function readPersistedCliSession(filePath){try{let session=import_load_json_file.default.sync(filePath);return isPersistedCliSession(session)?session:null}catch{return null}}function writePersistedCliSession(filePath,session){let temporaryPath=`${filePath}.${process.pid}.${randomUUID()}.tmp`;try{mkdirSync(dirname(filePath),{recursive:!0}),writeFileSync(temporaryPath,`${JSON.stringify(session,null,2)}
10
- `,{flag:"wx",mode:384}),renameSync(temporaryPath,filePath)}catch{}finally{try{rmSync(temporaryPath,{force:!0})}catch{}}}function readPersistedCliDevice(filePath){try{let device=import_load_json_file.default.sync(filePath);return isPersistedCliDevice(device)?device:null}catch{return null}}function writePersistedCliDevice(filePath,device){try{mkdirSync(dirname(filePath),{recursive:!0}),import_write_json_file.default.sync(filePath,device,{indent:2})}catch{}}function getOrCreatePersistedCliSession(opts){let now=opts.now?.()??Date.now(),inactivityTimeoutMs=opts.inactivityTimeoutMs??DEFAULT_CLI_SESSION_INACTIVITY_TIMEOUT_MS,maxLifetimeMs=opts.maxLifetimeMs??DEFAULT_CLI_SESSION_MAX_LIFETIME_MS,existing=readPersistedCliSession(opts.filePath),session=existing&&now-existing.lastSeenAt<=inactivityTimeoutMs&&now-existing.createdAt<=maxLifetimeMs?{...existing,lastSeenAt:now}:{id:randomUUID(),createdAt:now,lastSeenAt:now};return writePersistedCliSession(opts.filePath,session),session}function touchPersistedCliSession(opts,session){let nextSession={...session,lastSeenAt:opts.now?.()??Date.now()};return writePersistedCliSession(opts.filePath,nextSession),nextSession}function getOrCreatePersistedCliDevice(opts){let existing=readPersistedCliDevice(opts.filePath);if(existing)return existing;let device={id:randomUUID()};return writePersistedCliDevice(opts.filePath,device),device}var LogLabel="['telemetry']:",MAX_ERROR_SERVER_MESSAGE_LENGTH=500,TelemetryClient=class{constructor({opts}){this.redactedValue="[REDACTED]";this.noValueToTriggerPrompt="[TRIGGER_PROMPT]";this.redactedArgumentsLength=args=>args&&args.length===1?"ONE":args.length>1?"MANY":"NONE";this.redactedTargetName=target=>import_constants.PROJECT_ENV_TARGET.includes(target)?target:this.redactedValue;this.isDebug=opts.isDebug||!1,this.store=opts.store}track(eventData){this.isDebug&&output_manager_default.debug(`${LogLabel} ${eventData.key}:${eventData.value}`);let event={id:randomUUID2(),eventTime:Date.now(),...eventData};this.store.add(event)}trackCliCommand(eventData){this.track({key:`command:${eventData.command}`,value:eventData.value})}trackCliSubcommand(eventData){this.track({key:`subcommand:${eventData.subcommand}`,value:eventData.value})}trackCliArgument(eventData){eventData.value&&this.track({key:`argument:${eventData.arg}`,value:eventData.value})}trackCliOption(eventData){this.track({key:`option:${eventData.option}`,value:eventData.value})}trackTargetEnvironment(targetEnvironment){this.track({key:"target_environment",value:targetEnvironment})}trackCommandOutput(eventData){this.track({key:`output:${eventData.key}`,value:eventData.value})}trackCliFlag(flag){this.track({key:`flag:${flag}`,value:"TRUE"})}trackOidcTokenRefresh(count){this.track({key:"oidc-token-refresh",value:`${count}`})}trackCPUs(){this.track({key:"cpu_count",value:String(os.cpus().length)})}trackAgenticUse(agent){agent&&this.track({key:"agent",value:agent})}trackPlatform(){this.track({key:"platform",value:os.platform()})}trackArch(){this.track({key:"arch",value:os.arch()})}trackCI(ciVendorName){ciVendorName&&this.track({key:"ci",value:ciVendorName})}trackStdinIsTTY(isTTY){this.track({key:"stdin_is_tty",value:isTTY?"true":"false"})}trackVersion(version){version&&this.track({key:"version",value:version})}trackDefaultDeploy(){this.track({key:"default-deploy",value:"TRUE"})}trackProjectId(projectId){projectId&&this.track({key:"project_id",value:projectId})}trackInvocationId(invocationId){invocationId&&this.track({key:"invocation_id",value:invocationId})}trackDeviceId(deviceId){deviceId&&this.track({key:"device_id",value:deviceId})}trackVercelPluginActiveSession(){this.track({key:"vercel_plugin_active_session",value:"TRUE"})}trackVercelPluginVersion(version){version&&this.track({key:"vercel_plugin_version",value:version})}trackErrorStatus(status){typeof status<"u"&&this.track({key:"error_status",value:String(status)})}trackErrorCode(code){code&&this.track({key:"error_code",value:code})}trackErrorSlug(slug){slug&&this.track({key:"error_slug",value:slug})}trackErrorAction(action){action&&this.track({key:"error_action",value:action})}trackErrorServerMessage(serverMessage){if(serverMessage){let normalizedServerMessage=serverMessage.trim().replace(/\s+/g," ");this.track({key:"error_server_message",value:normalizedServerMessage.slice(0,MAX_ERROR_SERVER_MESSAGE_LENGTH)})}}trackExtension(){this.track({key:"extension",value:this.redactedValue})}trackLoginState(state){state==="started"&&(this.loginAttempt=randomUUID2()),this.loginAttempt&&this.track({key:`login:attempt:${this.loginAttempt}`,value:state}),state!=="started"&&(this.loginAttempt=void 0)}trackCliFlagHelp(command,subcommands){let subcommand;subcommands&&(subcommand=Array.isArray(subcommands)?subcommands[0]:subcommands),this.track({key:"flag:help",value:subcommand?`${command}:${subcommand}`:command})}trackCliOptionFormat(format){if(format){let allowedFormat=["json"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"format",value:allowedFormat})}}trackCliOptionProject(value){value&&(Array.isArray(value)&&value.length===0||this.trackCliOption({option:"project",value:this.redactedValue}))}},TelemetryEventStore=class{constructor(opts){this.teamId="NO_TEAM_ID";this.userId="NO_USER_ID";this.projectId="NO_PROJECT_ID";this.isDebug=opts?.isDebug||!1,this.events=[],this.config=opts?.config,this.cliDeviceOptions=opts?.cliDevice,this.cliSessionOptions=opts?.cliSession,this.invocationId=randomUUID2(),this.deviceId=randomUUID2(),this.cliDeviceOptions&&(this.cliDevice=getOrCreatePersistedCliDevice(this.cliDeviceOptions),this.deviceId=this.cliDevice.id),this.cliSessionOptions?(this.cliSession=getOrCreatePersistedCliSession(this.cliSessionOptions),this.sessionId=this.cliSession.id):this.sessionId=randomUUID2()}add(event){event.sessionId=this.sessionId,event.teamId=this.teamId,event.userId=this.userId,event.projectId=this.projectId,this.events.push(event)}updateTeamId(teamId){teamId&&(this.teamId=teamId)}updateUserId(userId){userId&&(this.userId=userId)}updateProjectId(projectId){projectId&&(this.projectId=projectId)}get hasUserId(){return this.userId!=="NO_USER_ID"}get currentProjectId(){return this.projectId}get currentInvocationId(){return this.invocationId}get currentDeviceId(){return this.deviceId}get currentSessionId(){return this.sessionId}get readonlyEvents(){return Array.from(this.events)}reset(){this.events=[]}get enabled(){return process.env.VERCEL_TELEMETRY_DISABLED?!1:this.config?.enabled??!0}async save(){if(this.cliSession&&this.cliSessionOptions&&(this.cliSession=touchPersistedCliSession(this.cliSessionOptions,this.cliSession)),this.isDebug){output_manager_default.log(`${LogLabel} Flushing Events`);for(let event of this.events)event.teamId=this.teamId,event.userId=this.userId,event.projectId=this.projectId,output_manager_default.log(JSON.stringify(event));return}if(this.enabled){let sessionId=this.events[0].sessionId;if(!sessionId){output_manager_default.debug("Unable to send metrics: no session ID");return}let events=this.events.map(event=>{delete event.sessionId,delete event.teamId,delete event.userId,delete event.projectId;let{eventTime,...rest}=event;return{event_time:eventTime,team_id:this.teamId,user_id:this.userId,project_id:this.projectId,...rest}}),payload={headers:{"Client-id":"vercel-cli","x-vercel-cli-topic-id":"generic","x-vercel-cli-session-id":sessionId},body:events};await this.sendToSubprocess(payload,output_manager_default.debugEnabled)}}async sendToSubprocess(payload,outputDebugEnabled){let flushArgs=["telemetry","flush",JSON.stringify(payload)],nodeBinaryPath,script;if(isNativeBinaryInstall())nodeBinaryPath=process.execPath,script=flushArgs;else{let args=[process.execPath,process.argv[0],process.argv[1]];args[0]===args[1]&&args.shift(),nodeBinaryPath=args[0],script=[...args.slice(1),...flushArgs]}let env=(0,import_build_utils.cloneEnv)(process.env,{VERCEL_TELEMETRY_DISABLED:"1"});if(outputDebugEnabled)return new Promise(resolve=>{let childProcess=spawn(nodeBinaryPath,script,{env,stdio:["ignore","pipe","pipe"]});childProcess.stderr.on("data",data=>output_manager_default.debug(data.toString())),childProcess.stdout.on("data",data=>output_manager_default.debug(data.toString())),childProcess.on("error",d=>{output_manager_default.debug(d)});let timeout=setTimeout(()=>{output_manager_default.debug("Telemetry subprocess killed due to timeout"),childProcess.kill()},2e3);childProcess.on("exit",code=>{output_manager_default.debug(`Telemetry subprocess exited with code ${code}`),childProcess.unref(),timeout.unref(),resolve()})});spawn(nodeBinaryPath,script,{stdio:"ignore",env,windowsHide:!0,detached:!0}).unref()}};export{require_dist,TelemetryClient,TelemetryEventStore};
11
- /*! Bundled license information:
12
-
13
- imurmurhash/imurmurhash.js:
14
- (**
15
- * @preserve
16
- * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
17
- *
18
- * @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
19
- * @see http://github.com/homebrewing/brauhaus-diff
20
- * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
21
- * @see http://github.com/garycourt/murmurhash-js
22
- * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
23
- * @see http://sites.google.com/site/murmurhash/
24
- *)
25
- */
@@ -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{isNativeBinaryInstall}from"./chunk-7T6TL3GQ.js";import{require_lib}from"./chunk-A5SVOPQK.js";import{packageName}from"./chunk-FI772UVH.js";import{require_build_utils}from"./chunk-XFVGX5HG.js";import{__toESM}from"./chunk-6L236MNA.js";var import_fs_extra=__toESM(require_lib(),1),import_build_utils=__toESM(require_build_utils(),1);import{sep,dirname,join,resolve}from"path";import{execFile}from"child_process";import{promisify}from"util";var nativePackageName="@vercel/vc-native",execFileAsync=promisify(execFile),globalRootQueries={npm:{args:["root","-g"],packageDir:(root,pkg)=>join(root,pkg)},pnpm:{args:["root","-g"],packageDir:(root,pkg)=>join(root,pkg)},yarn:{args:["global","dir"],packageDir:(root,pkg)=>join(root,"node_modules",pkg)}};async function getPackageManagerGlobalRoot(cliType){try{let{stdout}=await execFileAsync(cliType,globalRootQueries[cliType].args,{encoding:"utf8",windowsHide:!0});return stdout.trim()||null}catch{return null}}async function detectGlobalCliType(installPath,pkg){for(let cliType of Object.keys(globalRootQueries)){let root=await getPackageManagerGlobalRoot(cliType);if(!root)continue;let resolvedPackageDir;try{resolvedPackageDir=await(0,import_fs_extra.realpath)(globalRootQueries[cliType].packageDir(root,pkg))}catch{continue}if(installPath===resolvedPackageDir||installPath.startsWith(resolvedPackageDir+sep))return cliType}return null}async function getConfigPrefix(){let paths=[process.env.npm_config_userconfig||process.env.NPM_CONFIG_USERCONFIG,join(process.env.HOME||"/",".npmrc"),process.env.npm_config_globalconfig||process.env.NPM_CONFIG_GLOBALCONFIG].filter(Boolean);for(let configPath of paths){if(!configPath)continue;let content=await(0,import_fs_extra.readFile)(configPath).then(buffer=>buffer.toString()).catch(()=>null);if(content){let[prefix]=content.split(`
8
- `).map(line=>line&&line.trim()).filter(line=>line&&line.startsWith("prefix")).map(line=>line.slice(line.indexOf("=")+1).trim());if(prefix)return prefix}}return null}async function isPnpmHomeInstall(installPath){let pnpmHome=process.env.PNPM_HOME;if(!pnpmHome)return!1;let candidates=[pnpmHome];try{candidates.push(await(0,import_fs_extra.realpath)(pnpmHome))}catch{}let entrypoint=process.argv[1];for(let home of candidates){let prefix=home.endsWith(sep)?home:home+sep;if(entrypoint?.startsWith(prefix)||installPath.startsWith(prefix))return!0}return!1}function isGlobalByPath(installPath){return!!(dirname(process.argv[0])===dirname(process.argv[1])||installPath.includes(["","yarn","global","node_modules",""].join(sep))||installPath.includes(["","pnpm","global",""].join(sep))||installPath.includes(["","pnpm","store",""].join(sep))&&installPath.includes(sep+"links"+sep)||installPath.includes(["","fnm","node-versions",""].join(sep)))}async function isGlobalByPrefix(installPath){let defaultPath=process.platform==="win32"?process.env.APPDATA:"/usr/local/lib",prefixPath=process.env.PREFIX||process.env.npm_config_prefix||process.env.NPM_CONFIG_PREFIX||await getConfigPrefix()||defaultPath;if(!prefixPath)return!0;try{return installPath.startsWith(await(0,import_fs_extra.realpath)(prefixPath))}catch{return!0}}function asPackageManager(cliType){return cliType==="npm"||cliType==="pnpm"||cliType==="yarn"||cliType==="bun"||cliType==="vlt"?cliType:"npm"}async function resolveInstall(){let pkg=isNativeBinaryInstall()?nativePackageName:packageName,installPath=await(0,import_fs_extra.realpath)(resolve(__dirname));if(await isPnpmHomeInstall(installPath))return{packageManager:"pnpm",global:!0,assumed:!1};let globalCliType=await detectGlobalCliType(installPath,pkg);if(globalCliType)return{packageManager:globalCliType,global:!0,assumed:!1};let lockfileCliType;try{let entrypoint=await(0,import_fs_extra.realpath)(process.argv[1]),{cliType,lockfilePath}=await(0,import_build_utils.scanParentDirs)(dirname(dirname(entrypoint)));lockfilePath&&(lockfileCliType=cliType)}catch{}if(!lockfileCliType)return{packageManager:"npm",global:!0,assumed:!0};let packageManager=asPackageManager(lockfileCliType);return{packageManager,global:isGlobalByPath(installPath)||await isGlobalByPrefix(installPath),assumed:packageManager!==lockfileCliType}}async function isGlobal(){try{return(await resolveInstall()).global}catch{return!0}}async function getUpdateCommandInfo(){let nativeInstall=isNativeBinaryInstall(),pkgAndVersion=`${nativeInstall?nativePackageName:packageName}@latest`;if(nativeInstall){let segments=process.execPath.split(sep),packageManager2="npm";segments.includes("pnpm")||segments.includes(".pnpm")?packageManager2="pnpm":(segments.includes("yarn")||segments.includes(".yarn"))&&(packageManager2="yarn");let install2=packageManager2==="yarn"?"global add":"i -g",force=packageManager2==="npm"?" --force":"",allowBuild2=pnpmAllowBuildFlag(packageManager2,nativePackageName);return{command:`${packageManager2} ${install2} ${pkgAndVersion}${force}${allowBuild2}`,global:!0,packageManager:packageManager2,assumed:packageManager2==="npm"}}let{packageManager,global,assumed}=await resolveInstall(),yarn=packageManager==="yarn",install=yarn?"add":"i";global&&(install=yarn?"global add":"i -g");let allowBuild=global?pnpmAllowBuildFlag(packageManager,"esbuild"):"";return{command:`${packageManager} ${install} ${pkgAndVersion}${allowBuild}`,global,packageManager,assumed}}function pnpmAllowBuildFlag(cliType,pkg){return cliType==="pnpm"?` --allow-build=${pkg}`:""}async function getUpdateCommand(){return(await getUpdateCommandInfo()).command}export{isGlobal,getUpdateCommandInfo,getUpdateCommand};
@@ -1,7 +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{inspectTokenRequest,processInspectTokenResponse}from"./chunk-5XJNPXQK.js";import{findProjectsFromPath,getLinkFromDir,getRepoLink,getVercelDirectory}from"./chunk-A5SVOPQK.js";import{getTeamByIdOrSlug,getUser}from"./chunk-EVZRQGNK.js";import{InvalidToken,TeamDeleted}from"./chunk-R2TGGVCT.js";import{output_manager_default}from"./chunk-Z6Y55QJW.js";var VERCEL_API_ORIGIN="https://api.vercel.com";async function introspectToken(client){let token=client.authConfig.token;if(!token)throw new Error("No token to introspect");if(new URL(client.apiUrl).origin!==VERCEL_API_ORIGIN)throw new Error("Token introspection is unavailable for custom API origins");let[error,introspection]=await processInspectTokenResponse(await inspectTokenRequest(token));if(error)throw error;return introspection}function isAppPrincipalEnabled(){return!!process.env.APP_PRINCIPAL_ENABLED}function resolveAppFromToken(token){return!token.active||!token.client_id?null:{id:token.client_id,name:token.client_name}}async function resolveAppTokenScope(client,scope){let token=await introspectToken(client).catch(()=>null),app=token?resolveAppFromToken(token):null,team=token?.team;return!app||!team||team.id!==scope&&team.slug!==scope?!1:(client.config.currentTeam=team.id,!0)}import{relative}from"path";async function getScope(client,opts={}){let{user,app,token}=await getPrincipal(client),defaultTeamId=user?.version==="northstar"?user.defaultTeamId:void 0,appTeamId=!user&&app?token?.team?.id:void 0;if(!user&&app&&opts.getTeam===!1)throw new Error("App principal scope resolution requires a team lookup.");!user&&app&&(client.config.currentTeam=appTeamId),!client.config.currentTeam&&defaultTeamId&&(client.config.currentTeam=defaultTeamId);let teamId=client.config.currentTeam||defaultTeamId,team=teamId&&opts.getTeam!==!1?await getTeam(client,teamId):null,contextName=team?.slug||user?.username||user?.email;if(!contextName)throw new Error("Unable to determine context name");return opts.resolveLocalScope?resolveLocalScopeContext(client,{user,app,team}):{contextName,team,user,app}}async function getPrincipal(client){if(!isAppPrincipalEnabled())return{user:await getUser(client),app:null,token:null};let[userResult,tokenResult]=await Promise.allSettled([getUser(client),introspectToken(client)]),token=tokenResult.status==="fulfilled"?tokenResult.value:null,app=token?resolveAppFromToken(token):null;if(userResult.status==="rejected"&&!(app&&userResult.reason instanceof InvalidToken))throw userResult.reason;return{user:userResult.status==="fulfilled"?userResult.value:null,app,token}}async function resolveLocalScopeContext(client,{user,app,team}){let explicitScopeProvided=detectExplicitScope(client),globalTeamId=client.config.currentTeam,{localOrgId,linkedRepo,isCrossTeamRepo}=await findLocalLink(client),isAppPrincipal=!user&&!!app,effectiveLocalOrgId=isAppPrincipal?void 0:localOrgId,scopeMismatch=!!(effectiveLocalOrgId&&globalTeamId&&globalTeamId!==effectiveLocalOrgId);!isAppPrincipal&&!explicitScopeProvided&&!effectiveLocalOrgId&&isCrossTeamRepo&&output_manager_default.warn("This repository has projects across multiple teams. Use `--scope` to specify which team, or `cd` into a project directory.");let resolvedTeam=!explicitScopeProvided&&effectiveLocalOrgId?await applyLocalOrg(client,effectiveLocalOrgId):team,{org,contextName}=resolveOrg(resolvedTeam,user);return{org,contextName,user,team:resolvedTeam,app,globalTeam:team,linkedRepo,isCrossTeamRepo,scopeMismatch,explicitScopeProvided}}async function applyLocalOrg(client,localOrgId){return client.config.currentTeam=localOrgId.startsWith("team_")?localOrgId:void 0,client.config.currentTeam?await getTeamByIdOrSlug(client,client.config.currentTeam):null}async function getTeam(client,teamId){let team=await getTeamByIdOrSlug(client,teamId);if(!team)throw new TeamDeleted;return team}function resolveOrg(team,user){if(team)return{org:{type:"team",id:team.id,slug:team.slug},contextName:team.slug};if(user)return{org:{type:"user",id:user.id,slug:user.username},contextName:user.username||user.email};throw new Error("Unable to determine scope: no team or personal account is available for this token. Use `--scope` to specify a team.")}async function findLocalLink(client){let[projectLink,repoLink]=await Promise.all([findProjectLink(client),findRepoLink(client)]);return{localOrgId:findLocalOrgId(client.cwd,projectLink,repoLink),linkedRepo:repoLink?.repoConfig?{repoConfig:repoLink.repoConfig,rootPath:repoLink.rootPath}:null,isCrossTeamRepo:detectCrossTeamRepo(repoLink?.repoConfig)}}async function findProjectLink(client){try{return await getLinkFromDir(getVercelDirectory(client.cwd))}catch{return null}}async function findRepoLink(client){try{return await getRepoLink(client,client.cwd)}catch{return null}}function findLocalOrgId(cwd,projectLink,repoLink){if(projectLink)return projectLink.orgId;if(repoLink?.repoConfig)return findRepoOrgId(repoLink.repoConfig,relative(repoLink.rootPath,cwd))}function findRepoOrgId(repoConfig,pathFromRepoRoot){let projects=findProjectsFromPath(repoConfig.projects,pathFromRepoRoot),orgIds=new Set(projects.map(p=>p.orgId??repoConfig.orgId??""));if(orgIds.size!==1)return;let[orgId]=orgIds;return orgId||void 0}function detectExplicitScope(client){let argv=client.argv;for(let arg of argv){if(arg==="--")break;if(arg==="--scope"||arg==="--team"||arg.startsWith("--scope=")||arg.startsWith("--team=")||arg==="-S"||arg==="-T")return!0}return!!client.localConfig?.scope}function detectCrossTeamRepo(repoConfig){if(!repoConfig?.projects||repoConfig.projects.length<2)return!1;let orgIds=new Set;for(let project of repoConfig.projects){let orgId=project.orgId??repoConfig.orgId;orgId&&orgIds.add(orgId)}return orgIds.size>1}export{isAppPrincipalEnabled,resolveAppTokenScope,getScope,detectExplicitScope};
@@ -1,7 +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{arg_common_default}from"./chunk-JAJW3P42.js";import{__commonJS,__toESM}from"./chunk-6L236MNA.js";var require_arg=__commonJS({"../../node_modules/.pnpm/arg@5.0.0/node_modules/arg/index.js"(exports,module){var flagSymbol=Symbol("arg flag"),ArgError=class _ArgError extends Error{constructor(msg,code){super(msg),this.name="ArgError",this.code=code,Object.setPrototypeOf(this,_ArgError.prototype)}};function arg2(opts,{argv=process.argv.slice(2),permissive=!1,stopAtPositional=!1}={}){if(!opts)throw new ArgError("argument specification object is required","ARG_CONFIG_NO_SPEC");let result={_:[]},aliases={},handlers={};for(let key of Object.keys(opts)){if(!key)throw new ArgError("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(key[0]!=="-")throw new ArgError(`argument key must start with '-' but found: '${key}'`,"ARG_CONFIG_NONOPT_KEY");if(key.length===1)throw new ArgError(`argument key must have a name; singular '-' keys are not allowed: ${key}`,"ARG_CONFIG_NONAME_KEY");if(typeof opts[key]=="string"){aliases[key]=opts[key];continue}let type=opts[key],isFlag=!1;if(Array.isArray(type)&&type.length===1&&typeof type[0]=="function"){let[fn]=type;type=(value,name,prev=[])=>(prev.push(fn(value,name,prev[prev.length-1])),prev),isFlag=fn===Boolean||fn[flagSymbol]===!0}else if(typeof type=="function")isFlag=type===Boolean||type[flagSymbol]===!0;else throw new ArgError(`type missing or not a function or valid array type: ${key}`,"ARG_CONFIG_VAD_TYPE");if(key[1]!=="-"&&key.length>2)throw new ArgError(`short argument keys (with a single hyphen) must have only one character: ${key}`,"ARG_CONFIG_SHORTOPT_TOOLONG");handlers[key]=[type,isFlag]}for(let i=0,len=argv.length;i<len;i++){let wholeArg=argv[i];if(stopAtPositional&&result._.length>0){result._=result._.concat(argv.slice(i));break}if(wholeArg==="--"){result._=result._.concat(argv.slice(i+1));break}if(wholeArg.length>1&&wholeArg[0]==="-"){let separatedArguments=wholeArg[1]==="-"||wholeArg.length===2?[wholeArg]:wholeArg.slice(1).split("").map(a=>`-${a}`);for(let j=0;j<separatedArguments.length;j++){let arg3=separatedArguments[j],[originalArgName,argStr]=arg3[1]==="-"?arg3.split(/=(.*)/,2):[arg3,void 0],argName=originalArgName;for(;argName in aliases;)argName=aliases[argName];if(!(argName in handlers))if(permissive){result._.push(arg3);continue}else throw new ArgError(`unknown or unexpected option: ${originalArgName}`,"ARG_UNKNOWN_OPTION");let[type,isFlag]=handlers[argName];if(!isFlag&&j+1<separatedArguments.length)throw new ArgError(`option requires argument (but was followed by another short argument): ${originalArgName}`,"ARG_MISSING_REQUIRED_SHORTARG");if(isFlag)result[argName]=type(!0,argName,result[argName]);else if(argStr===void 0){if(argv.length<i+2||argv[i+1].length>1&&argv[i+1][0]==="-"&&!(argv[i+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(type===Number||typeof BigInt<"u"&&type===BigInt))){let extended=originalArgName===argName?"":` (alias for ${argName})`;throw new ArgError(`option requires argument: ${originalArgName}${extended}`,"ARG_MISSING_REQUIRED_LONGARG")}result[argName]=type(argv[i+1],argName,result[argName]),++i}else result[argName]=type(argStr,argName,result[argName])}}else result._.push(wholeArg)}return result}arg2.flag=fn=>(fn[flagSymbol]=!0,fn);arg2.COUNT=arg2.flag((v,name,existingCount)=>(existingCount||0)+1);arg2.ArgError=ArgError;module.exports=arg2}});var import_arg=__toESM(require_arg(),1);function getArgs(argv,argsOptions,argOptions={}){return(0,import_arg.default)(Object.assign({},arg_common_default(),argsOptions),{...argOptions,argv})}function parseArguments(args,flagsSpecification,parserOptions={}){let{_:positional,...rest}=(0,import_arg.default)(Object.assign({},arg_common_default(),flagsSpecification),{...parserOptions,argv:args});return{args:positional,flags:rest}}export{getArgs,parseArguments};