vercel 60.0.0 → 60.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/chunks/{add-7OUJAZIH.js → add-D6D2J6ID.js} +1 -1
  2. package/dist/chunks/{add-D4E2N3HU.js → add-JKIDAH7K.js} +1 -1
  3. package/dist/chunks/{add-UG57LDJR.js → add-QBCRXMR3.js} +1 -1
  4. package/dist/chunks/{build-VSV5LVJK.js → build-PP4JOW2C.js} +1 -1
  5. package/dist/chunks/chunk-2TBUMUHF.js +7 -0
  6. package/dist/chunks/{chunk-MWU4ZPZ4.js → chunk-2ZIWDSUX.js} +1 -1
  7. package/dist/chunks/{chunk-REONGB6P.js → chunk-3CQQXHDI.js} +1 -1
  8. package/dist/chunks/{chunk-LTFVLQEF.js → chunk-3KQRJYBJ.js} +1 -1
  9. package/dist/chunks/chunk-4OKKSZVX.js +7 -0
  10. package/dist/chunks/{chunk-IAS5LONF.js → chunk-4S6WFNRF.js} +1 -1
  11. package/dist/chunks/{chunk-V6IKQCOT.js → chunk-5U25FWD5.js} +1 -1
  12. package/dist/chunks/{chunk-3YOA3ODU.js → chunk-6A6LV2S2.js} +1 -1
  13. package/dist/chunks/{chunk-EWSS6LUE.js → chunk-77WAICTF.js} +1 -1
  14. package/dist/chunks/{chunk-TH2WHOUV.js → chunk-7HT5KIFA.js} +1 -1
  15. package/dist/chunks/{chunk-5JFBDZTI.js → chunk-7JAKGIQ6.js} +1 -1
  16. package/dist/chunks/{chunk-5LH3CZMJ.js → chunk-C6QYMZ3S.js} +1 -1
  17. package/dist/chunks/{chunk-I7PARON4.js → chunk-CD4FLZED.js} +1 -1
  18. package/dist/chunks/chunk-DKV4IVH5.js +7 -0
  19. package/dist/chunks/{chunk-4VFDQB4H.js → chunk-DPH3CQXE.js} +2 -2
  20. package/dist/chunks/{chunk-WTAM6QXM.js → chunk-G77TCKNI.js} +1 -1
  21. package/dist/chunks/{chunk-PNY65NDD.js → chunk-GK5C5TE5.js} +1 -1
  22. package/dist/chunks/{chunk-KDKSYHTU.js → chunk-GZBSABCA.js} +1 -1
  23. package/dist/chunks/chunk-H4IUDU5W.js +9 -0
  24. package/dist/chunks/{chunk-XU4ETL7O.js → chunk-HMB4MZOB.js} +1 -1
  25. package/dist/chunks/{chunk-JSVZKMZO.js → chunk-IXN5A5WZ.js} +1 -1
  26. package/dist/chunks/{chunk-4JFQYK65.js → chunk-KOOED3TJ.js} +2 -2
  27. package/dist/chunks/{chunk-FFQ2SDHN.js → chunk-KTB75ID3.js} +1 -1
  28. package/dist/chunks/{chunk-5B3BHCFE.js → chunk-LNOX5GIA.js} +1 -1
  29. package/dist/chunks/{chunk-TZN45RBM.js → chunk-LUVIR6F2.js} +1 -1
  30. package/dist/chunks/{chunk-ECJKSW62.js → chunk-M6UYGRPW.js} +1 -1
  31. package/dist/chunks/{chunk-TUVMXISG.js → chunk-MSLHCYBD.js} +2 -2
  32. package/dist/chunks/{chunk-MRSU4C5C.js → chunk-Q5VLP2LY.js} +1 -1
  33. package/dist/chunks/{chunk-TQLNWAJY.js → chunk-RB3NPNPD.js} +1 -1
  34. package/dist/chunks/{chunk-4XAIK5CI.js → chunk-RLCFE3MK.js} +2 -2
  35. package/dist/chunks/{chunk-JC4FG6EW.js → chunk-SGU7YIY3.js} +1 -1
  36. package/dist/chunks/{chunk-Y4GI6BXT.js → chunk-STO2JRII.js} +1 -1
  37. package/dist/chunks/{chunk-25MLFUQD.js → chunk-TTMLSKF7.js} +1 -1
  38. package/dist/chunks/{chunk-5WW7LFI6.js → chunk-URI72S7J.js} +1 -1
  39. package/dist/chunks/{chunk-2HZGNTI4.js → chunk-WH6M54KF.js} +1 -1
  40. package/dist/chunks/{chunk-TKBORMUF.js → chunk-WKZ6JSGZ.js} +1 -1
  41. package/dist/chunks/{chunk-T4LZS75P.js → chunk-WUH5HYCX.js} +1 -1
  42. package/dist/chunks/{chunk-PGHEHRSM.js → chunk-YMLWTVT5.js} +1 -1
  43. package/dist/chunks/{chunk-QXC2G7JY.js → chunk-ZWYU5SBC.js} +1 -1
  44. package/dist/chunks/{clear-NUMBAODD.js → clear-TQFWNYKK.js} +1 -1
  45. package/dist/chunks/{compile-vercel-config-75XN6ZKP.js → compile-vercel-config-YY3CODZP.js} +1 -1
  46. package/dist/chunks/{config-Q6V74NTU.js → config-4FCRR7C5.js} +1 -1
  47. package/dist/chunks/{config-26RISHPB.js → config-VZQLRHHA.js} +1 -1
  48. package/dist/chunks/{constants-NCE2LWSS.js → constants-G4UYVLOF.js} +1 -1
  49. package/dist/chunks/{delete-LGIPH2II.js → delete-L45TA4WK.js} +1 -1
  50. package/dist/chunks/{delete-PWVNXN4N.js → delete-MPLEIGYN.js} +1 -1
  51. package/dist/chunks/{detect-services-EX5ZTO5D.js → detect-services-7QL6RPKV.js} +1 -1
  52. package/dist/chunks/{disable-62HLGVJG.js → disable-WY6N4R7I.js} +1 -1
  53. package/dist/chunks/{discard-LYY4AMIA.js → discard-3VYFSUTH.js} +1 -1
  54. package/dist/chunks/{edit-E6AMU6OJ.js → edit-FCPWK252.js} +1 -1
  55. package/dist/chunks/{edit-FEZFLAIJ.js → edit-VOZ4IKZI.js} +1 -1
  56. package/dist/chunks/{enable-QDIH43E3.js → enable-IJ7UEQ3G.js} +1 -1
  57. package/dist/chunks/{export-FO5JCAB4.js → export-L4D4GCJI.js} +1 -1
  58. package/dist/chunks/{generate-cert-for-deploy-FG57HLGC.js → generate-cert-for-deploy-GSWBCLZX.js} +1 -1
  59. package/dist/chunks/{image-LZ32HAQV.js → image-ORGBK7MR.js} +1 -1
  60. package/dist/chunks/{import-builders-SELE5VYE.js → import-builders-N4XIYEW5.js} +1 -1
  61. package/dist/chunks/{inspect-XWT4QQRM.js → inspect-2EMBEQHZ.js} +1 -1
  62. package/dist/chunks/{inspect-BUNQSUCN.js → inspect-377IAEIY.js} +1 -1
  63. package/dist/chunks/{inspect-D2S5CEPW.js → inspect-F4OENUQT.js} +1 -1
  64. package/dist/chunks/{inspect-22LMAKCS.js → inspect-GTALMRKE.js} +1 -1
  65. package/dist/chunks/{inspect-LGQ44GYB.js → inspect-V6IX3MOJ.js} +1 -1
  66. package/dist/chunks/{list-XL4GMICP.js → list-57XWFXDW.js} +1 -1
  67. package/dist/chunks/{list-WRQRFVUL.js → list-5ZBTU324.js} +1 -1
  68. package/dist/chunks/{list-TXJQFAGW.js → list-GKXJQRX6.js} +1 -1
  69. package/dist/chunks/{login-QIPGRGDE.js → login-MQXAAFBP.js} +1 -1
  70. package/dist/chunks/{login-VJZGWSOW.js → login-X3KPMMEP.js} +1 -1
  71. package/dist/chunks/{logs-P4NGHB4I.js → logs-ZYELN5F2.js} +1 -1
  72. package/dist/chunks/{ls-COWL5TXJ.js → ls-AAU7AKS7.js} +1 -1
  73. package/dist/chunks/{ls-TXXVAVMF.js → ls-ADATML6R.js} +1 -1
  74. package/dist/chunks/ls-GD6LB7IE.js +8 -0
  75. package/dist/chunks/{ls-HTSBFV7C.js → ls-LMHRMNKE.js} +1 -1
  76. package/dist/chunks/{ls-LOXX7YQ2.js → ls-NX3EMRFH.js} +1 -1
  77. package/dist/chunks/{ls-YTZOJEBT.js → ls-POKSXYZU.js} +1 -1
  78. package/dist/chunks/{ls-JGBNPJEW.js → ls-VYEJT272.js} +1 -1
  79. package/dist/chunks/{mutate-BZHBI2PK.js → mutate-QMU5QHF3.js} +1 -1
  80. package/dist/chunks/{notifications-CTNZYZZ2.js → notifications-OYUKYMU7.js} +1 -1
  81. package/dist/chunks/{open-D53RMFUT.js → open-SNN3JPON.js} +1 -1
  82. package/dist/chunks/{openapi-G3HACVTQ.js → openapi-7JUPKBWV.js} +1 -1
  83. package/dist/chunks/{permissions-XHGXTFEU.js → permissions-5LSKNTW7.js} +1 -1
  84. package/dist/chunks/{prompt-missing-credentials-KCPCA6L7.js → prompt-missing-credentials-PPUSNDNC.js} +1 -1
  85. package/dist/chunks/{publish-WTIW7W3Z.js → publish-FIHJARRJ.js} +1 -1
  86. package/dist/chunks/{pull-N5VAKGFJ.js → pull-2M2BJYAS.js} +1 -1
  87. package/dist/chunks/{purchase-domain-if-available-ZBXG4E7J.js → purchase-domain-if-available-VKWKDDUD.js} +1 -1
  88. package/dist/chunks/{push-ZQWVBEAJ.js → push-VN6BPT3B.js} +1 -1
  89. package/dist/chunks/{query-NNJNXQZG.js → query-P35ZTMXV.js} +1 -1
  90. package/dist/chunks/{reorder-64FNHY6J.js → reorder-L4L2V3MZ.js} +1 -1
  91. package/dist/chunks/{reply-MIJ6C3KT.js → reply-XIJ54B7U.js} +1 -1
  92. package/dist/chunks/{resolve-5HPYDKB4.js → resolve-W2O6M4GH.js} +1 -1
  93. package/dist/chunks/{restore-KQ5T3MWQ.js → restore-OZPJHXTE.js} +1 -1
  94. package/dist/chunks/{rm-ZLKEDKBI.js → rm-2YDLXDCB.js} +1 -1
  95. package/dist/chunks/{rm-WTUTQK3R.js → rm-4EUHQZ7U.js} +1 -1
  96. package/dist/chunks/{rm-C5GXOG3I.js → rm-HM7V26WX.js} +1 -1
  97. package/dist/chunks/{rm-HZRLQ2FR.js → rm-IM7VAVCG.js} +1 -1
  98. package/dist/chunks/rm-OYSWVVSJ.js +8 -0
  99. package/dist/chunks/{rule-inspect-G4RGKBOI.js → rule-inspect-75RUPIVB.js} +1 -1
  100. package/dist/chunks/{rules-5ECWTZPP.js → rules-PKOTTFKG.js} +1 -1
  101. package/dist/chunks/{schema-EQCAQVSE.js → schema-EPUGS3PX.js} +1 -1
  102. package/dist/chunks/{schema-NERSRSCG.js → schema-NJC47D5M.js} +1 -1
  103. package/dist/chunks/set-GESKJPQA.js +7 -0
  104. package/dist/chunks/{setup-and-link-G4G4JJ6W.js → setup-and-link-PM46H7GU.js} +1 -1
  105. package/dist/chunks/{tags-JSRGITRJ.js → tags-MBJR7IQW.js} +1 -1
  106. package/dist/chunks/{update-4B5AEB2C.js → update-TNUYPCS3.js} +1 -1
  107. package/dist/commands/build/index.js +1 -1
  108. package/dist/commands/deploy/index.js +4 -4
  109. package/dist/commands/dev/index.js +14 -14
  110. package/dist/commands/env/index.js +1 -1
  111. package/dist/commands/link/index.js +1 -1
  112. package/dist/commands/list/index.js +2 -2
  113. package/dist/commands-bulk.js +166 -146
  114. package/dist/index.js +2 -2
  115. package/dist/version.mjs +1 -1
  116. package/package.json +53 -53
  117. package/dist/chunks/chunk-AH3A52IK.js +0 -7
  118. package/dist/chunks/chunk-M5AV545M.js +0 -7
  119. package/dist/chunks/chunk-MCZNQE4G.js +0 -9
  120. package/dist/chunks/chunk-MNR5YQDP.js +0 -7
  121. package/dist/chunks/ls-OCTMGB6C.js +0 -8
  122. package/dist/chunks/rm-S3TN7REH.js +0 -8
  123. package/dist/chunks/set-7HZRIJ6K.js +0 -7
package/dist/index.js CHANGED
@@ -4,13 +4,13 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{BUILD_LABEL}from"./chunks/chunk-TKBORMUF.js";import{help}from"./chunks/chunk-RYZ5FAUA.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-MWU4ZPZ4.js";import{matchesCliApiTag}from"./chunks/chunk-AP36GAOG.js";import{getUpdateCommand}from"./chunks/chunk-MRSU4C5C.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-5B3BHCFE.js";import"./chunks/chunk-U56NHYAH.js";import{Client,isValidAccessToken}from"./chunks/chunk-3YOA3ODU.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-V6MR45PD.js";import"./chunks/chunk-2I64AYHG.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-I46LFJJG.js";import{commands,commandsStructs,isHiddenCommand}from"./chunks/chunk-4JFQYK65.js";import"./chunks/chunk-M5AV545M.js";import"./chunks/chunk-IVWPQYIH.js";import"./chunks/chunk-65JYSI26.js";import"./chunks/chunk-YMVDWVMO.js";import"./chunks/chunk-O7G3CZ42.js";import"./chunks/chunk-N3N5UHIL.js";import"./chunks/chunk-WUZD4KBL.js";import"./chunks/chunk-QFPCR4NL.js";import"./chunks/chunk-5ENY7DSN.js";import"./chunks/chunk-UTVDFSQS.js";import"./chunks/chunk-SW7MNF4H.js";import"./chunks/chunk-MEAY2K5Z.js";import"./chunks/chunk-EQ52F4LH.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-Y7PHTVZ6.js";import"./chunks/chunk-WSZHNPA6.js";import"./chunks/chunk-FAW6NBLQ.js";import"./chunks/chunk-5UOVEMYX.js";import"./chunks/chunk-SOJCELXH.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import"./chunks/chunk-ZKYS7EAB.js";import{getAuthConfigFilePath,getConfigFilePath,getScope,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-AH3A52IK.js";import{getGlobalPathConfig}from"./chunks/chunk-JSKGZLE4.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-A5VLP25I.js";import"./chunks/chunk-RCTYVKM5.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-N5AIKGEO.js";import{getArgs,parseArguments}from"./chunks/chunk-WWB66KP5.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-4XAIK5CI.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-KCARCOP5.js";import"./chunks/chunk-BKV35LVB.js";import"./chunks/chunk-JAJW3P42.js";import"./chunks/chunk-YMM3VY3J.js";import{getUser}from"./chunks/chunk-SM5JI6QM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-RINZXCDJ.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{Diagnostic,output_manager_default,require_build_utils}from"./chunks/chunk-EWWFNMPZ.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-6L236MNA.js";var require_epipebomb=__commonJS({"../../node_modules/.pnpm/epipebomb@1.0.0/node_modules/epipebomb/epipebomb.js"(exports,module){module.exports=epipeBomb;function epipeBomb(stream,callback){stream==null&&(stream=process.stdout),callback==null&&(callback=process.exit);function epipeFilter(err){if(err.code==="EPIPE")return callback();stream.listeners("error").length<=1&&(stream.removeAllListeners(),stream.emit("error",err),stream.on("error",epipeFilter))}stream.on("error",epipeFilter)}}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags2(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve=>{let timer=setTimeout(()=>{req.destroy(),resolve(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve(void 0);return}resolve(JSON.parse(buf))}catch{resolve(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils3=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1),import_epipebomb=__toESM(require_epipebomb(),1);import{join as join2}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var sentry;async function getSentry(){if(!sentry){let[SentryModule,{SENTRY_DSN},{default:pkg}]=await Promise.all([import("./chunks/cjs-GOQHXIHX.js"),import("./chunks/constants-NCE2LWSS.js"),import("./chunks/pkg-YFU67U7I.js")]),Sentry="init"in SentryModule?SentryModule:SentryModule.default;Sentry.init({dsn:SENTRY_DSN,release:`vercel-cli@${pkg.version}`,environment:"stable",autoSessionTracking:!1}),sentry=Sentry}return sentry}var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];function isOutputDebugEnabled(debugFlag){return debugFlag===!0||process.env.VERCEL_CLI_DEBUG==="1"}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})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandProject(actual){this.trackCliCommand({command:"project",value:actual})}trackCliCommandPromote(actual){this.trackCliCommand({command:"promote",value:actual})}trackCliCommandPull(actual){this.trackCliCommand({command:"pull",value:actual})}trackCliCommandRollback(actual){this.trackCliCommand({command:"rollback",value:actual})}trackCliCommandRollingRelease(actual){this.trackCliCommand({command:"rolling-release",value:actual})}trackCliCommandRedeploy(actual){this.trackCliCommand({command:"redeploy",value:actual})}trackCliCommandRedirects(actual){this.trackCliCommand({command:"redirects",value:actual})}trackCliCommandRoutes(actual){this.trackCliCommand({command:"routes",value:actual})}trackCliCommandRemove(actual){this.trackCliCommand({command:"remove",value:actual})}trackCliCommandSignup(actual){this.trackCliCommand({command:"signup",value:actual})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSetup(actual){this.trackCliCommand({command:"setup",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",value:actual})}trackCliCommandSchedules(actual){this.trackCliCommand({command:"schedules",value:actual})}trackCliCommandSecurity(actual){this.trackCliCommand({command:"security",value:actual})}trackCliCommandStorage(actual){this.trackCliCommand({command:"storage",value:actual})}trackCliCommandTarget(actual){this.trackCliCommand({command:"target",value:actual})}trackCliCommandTeams(actual){this.trackCliCommand({command:"teams",value:actual})}trackCliCommandTokens(actual){this.trackCliCommand({command:"tokens",value:actual})}trackCliCommandTelemetry(actual){this.trackCliCommand({command:"telemetry",value:actual})}trackCliCommandTraces(actual){this.trackCliCommand({command:"traces",value:actual})}trackCliCommandWhoami(actual){this.trackCliCommand({command:"whoami",value:actual})}trackCliCommandUpgrade(actual){this.trackCliCommand({command:"upgrade",value:actual})}trackCliCommandVersion(actual){this.trackCliCommand({command:"version",value:actual})}trackCliCommandWebhooks(actual){this.trackCliCommand({command:"webhooks",value:actual})}trackCliCommandUsage(actual){this.trackCliCommand({command:"usage",value:actual})}trackCliCommandVcr(actual){this.trackCliCommand({command:"vcr",value:actual})}trackCPUs(){super.trackCPUs()}trackAgenticUse(agent){super.trackAgenticUse(agent)}trackArch(){super.trackArch()}trackPlatform(){super.trackPlatform()}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function checkTelemetryStatus({config:config2}){config2.telemetry||process.env.VERCEL_TELEMETRY_DISABLED||(output_manager_default.note("The Vercel CLI now collects telemetry regarding usage of the CLI."),output_manager_default.log("This information is used to shape the CLI roadmap and prioritize features."),output_manager_default.log("You can learn more, including how to opt-out if you'd not like to participate in this program, by visiting the following URL:"),output_manager_default.log("https://vercel.com/docs/cli/about-telemetry"),config2.telemetry={enabled:!0},writeToConfigFile(config2))}function checkGuidanceStatus({config:config2}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config2.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config2.guidance={enabled:!0},writeToConfigFile(config2)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils3.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}{let SILENCED_ERRORS=["DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead."],originalError=console.error;console.error=msg=>{SILENCED_ERRORS.some(error=>typeof msg=="string"&&msg.includes(error))||originalError(msg)}}var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}(0,import_epipebomb.default)();var client,resolvedCommandForUpdate,fatalErrorHandlerSymbol=Symbol.for("vercel.cli.fatal-error-handler");async function exitWithUnexpectedError(error){let handler=globalThis[fatalErrorHandlerSymbol];if(typeof handler=="function")try{await handler(error)}catch{}process.exit(1)}var handleRejection=async err=>{err?err instanceof Error?await handleUnexpected(err):(output_manager_default.error(`An unexpected rejection occurred
7
+ import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import{help}from"./chunks/chunk-RYZ5FAUA.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-2ZIWDSUX.js";import{matchesCliApiTag}from"./chunks/chunk-AP36GAOG.js";import{getUpdateCommand}from"./chunks/chunk-Q5VLP2LY.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-LNOX5GIA.js";import"./chunks/chunk-U56NHYAH.js";import{Client,isValidAccessToken}from"./chunks/chunk-6A6LV2S2.js";import"./chunks/chunk-TRTEXGVN.js";import"./chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-V6MR45PD.js";import"./chunks/chunk-2I64AYHG.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-I46LFJJG.js";import{commands,commandsStructs,isHiddenCommand}from"./chunks/chunk-KOOED3TJ.js";import"./chunks/chunk-DKV4IVH5.js";import"./chunks/chunk-IVWPQYIH.js";import"./chunks/chunk-65JYSI26.js";import"./chunks/chunk-YMVDWVMO.js";import"./chunks/chunk-O7G3CZ42.js";import"./chunks/chunk-N3N5UHIL.js";import"./chunks/chunk-WUZD4KBL.js";import"./chunks/chunk-QFPCR4NL.js";import"./chunks/chunk-5ENY7DSN.js";import"./chunks/chunk-UTVDFSQS.js";import"./chunks/chunk-SW7MNF4H.js";import"./chunks/chunk-MEAY2K5Z.js";import"./chunks/chunk-EQ52F4LH.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-Y7PHTVZ6.js";import"./chunks/chunk-WSZHNPA6.js";import"./chunks/chunk-FAW6NBLQ.js";import"./chunks/chunk-5UOVEMYX.js";import"./chunks/chunk-SOJCELXH.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import"./chunks/chunk-ZKYS7EAB.js";import{getAuthConfigFilePath,getConfigFilePath,getScope,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-4OKKSZVX.js";import{getGlobalPathConfig}from"./chunks/chunk-JSKGZLE4.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-A5VLP25I.js";import"./chunks/chunk-RCTYVKM5.js";import{isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import{require_types}from"./chunks/chunk-GHM7V3GG.js";import"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-N5AIKGEO.js";import{getArgs,parseArguments}from"./chunks/chunk-WWB66KP5.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{getLinkFromDir,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-RLCFE3MK.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-KCARCOP5.js";import"./chunks/chunk-BKV35LVB.js";import"./chunks/chunk-JAJW3P42.js";import"./chunks/chunk-YMM3VY3J.js";import{getUser}from"./chunks/chunk-SM5JI6QM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile,DeprecatedNowJson,WorkingDirectoryDoesNotExist}from"./chunks/chunk-RINZXCDJ.js";import{cmd,getTitleName}from"./chunks/chunk-FI772UVH.js";import{Diagnostic,output_manager_default,require_build_utils}from"./chunks/chunk-EWWFNMPZ.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-6L236MNA.js";var require_epipebomb=__commonJS({"../../node_modules/.pnpm/epipebomb@1.0.0/node_modules/epipebomb/epipebomb.js"(exports,module){module.exports=epipeBomb;function epipeBomb(stream,callback){stream==null&&(stream=process.stdout),callback==null&&(callback=process.exit);function epipeFilter(err){if(err.code==="EPIPE")return callback();stream.listeners("error").length<=1&&(stream.removeAllListeners(),stream.emit("error",err),stream.on("error",epipeFilter))}stream.on("error",epipeFilter)}}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags2(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve=>{let timer=setTimeout(()=>{req.destroy(),resolve(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve(void 0);return}resolve(JSON.parse(buf))}catch{resolve(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils3=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1),import_epipebomb=__toESM(require_epipebomb(),1);import{join as join2}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var sentry;async function getSentry(){if(!sentry){let[SentryModule,{SENTRY_DSN},{default:pkg}]=await Promise.all([import("./chunks/cjs-GOQHXIHX.js"),import("./chunks/constants-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","signup","help","init","build","builders","changelog","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];function isOutputDebugEnabled(debugFlag){return debugFlag===!0||process.env.VERCEL_CLI_DEBUG==="1"}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})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandProject(actual){this.trackCliCommand({command:"project",value:actual})}trackCliCommandPromote(actual){this.trackCliCommand({command:"promote",value:actual})}trackCliCommandPull(actual){this.trackCliCommand({command:"pull",value:actual})}trackCliCommandRollback(actual){this.trackCliCommand({command:"rollback",value:actual})}trackCliCommandRollingRelease(actual){this.trackCliCommand({command:"rolling-release",value:actual})}trackCliCommandRedeploy(actual){this.trackCliCommand({command:"redeploy",value:actual})}trackCliCommandRedirects(actual){this.trackCliCommand({command:"redirects",value:actual})}trackCliCommandRoutes(actual){this.trackCliCommand({command:"routes",value:actual})}trackCliCommandRemove(actual){this.trackCliCommand({command:"remove",value:actual})}trackCliCommandSignup(actual){this.trackCliCommand({command:"signup",value:actual})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSetup(actual){this.trackCliCommand({command:"setup",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",value:actual})}trackCliCommandSchedules(actual){this.trackCliCommand({command:"schedules",value:actual})}trackCliCommandSecurity(actual){this.trackCliCommand({command:"security",value:actual})}trackCliCommandStorage(actual){this.trackCliCommand({command:"storage",value:actual})}trackCliCommandTarget(actual){this.trackCliCommand({command:"target",value:actual})}trackCliCommandTeams(actual){this.trackCliCommand({command:"teams",value:actual})}trackCliCommandTokens(actual){this.trackCliCommand({command:"tokens",value:actual})}trackCliCommandTelemetry(actual){this.trackCliCommand({command:"telemetry",value:actual})}trackCliCommandTraces(actual){this.trackCliCommand({command:"traces",value:actual})}trackCliCommandWhoami(actual){this.trackCliCommand({command:"whoami",value:actual})}trackCliCommandUpgrade(actual){this.trackCliCommand({command:"upgrade",value:actual})}trackCliCommandVersion(actual){this.trackCliCommand({command:"version",value:actual})}trackCliCommandWebhooks(actual){this.trackCliCommand({command:"webhooks",value:actual})}trackCliCommandUsage(actual){this.trackCliCommand({command:"usage",value:actual})}trackCliCommandVcr(actual){this.trackCliCommand({command:"vcr",value:actual})}trackCPUs(){super.trackCPUs()}trackAgenticUse(agent){super.trackAgenticUse(agent)}trackArch(){super.trackArch()}trackPlatform(){super.trackPlatform()}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function checkTelemetryStatus({config:config2}){config2.telemetry||process.env.VERCEL_TELEMETRY_DISABLED||(output_manager_default.note("The Vercel CLI now collects telemetry regarding usage of the CLI."),output_manager_default.log("This information is used to shape the CLI roadmap and prioritize features."),output_manager_default.log("You can learn more, including how to opt-out if you'd not like to participate in this program, by visiting the following URL:"),output_manager_default.log("https://vercel.com/docs/cli/about-telemetry"),config2.telemetry={enabled:!0},writeToConfigFile(config2))}function checkGuidanceStatus({config:config2}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config2.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config2.guidance={enabled:!0},writeToConfigFile(config2)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils3.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}{let SILENCED_ERRORS=["DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead."],originalError=console.error;console.error=msg=>{SILENCED_ERRORS.some(error=>typeof msg=="string"&&msg.includes(error))||originalError(msg)}}var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}(0,import_epipebomb.default)();var client,resolvedCommandForUpdate,fatalErrorHandlerSymbol=Symbol.for("vercel.cli.fatal-error-handler");async function exitWithUnexpectedError(error){let handler=globalThis[fatalErrorHandlerSymbol];if(typeof handler=="function")try{await handler(error)}catch{}process.exit(1)}var handleRejection=async err=>{err?err instanceof Error?await handleUnexpected(err):(output_manager_default.error(`An unexpected rejection occurred
8
8
  ${err}`),await reportError(await getSentry(),client,err)):output_manager_default.error("An unexpected empty rejection occurred"),await exitWithUnexpectedError(err)},handleUnexpected=async err=>{let{message}=err;return message.includes("sentry")&&message.includes("ENOTFOUND")?(output_manager_default.debug(`Sentry is not reachable: ${err}`),!1):(output_manager_default.error(`An unexpected error occurred!
9
9
  ${err.stack}`),await reportError(await getSentry(),client,err),!0)};process.on("unhandledRejection",handleRejection);process.on("uncaughtException",async error=>{await handleUnexpected(error)&&await exitWithUnexpectedError(error)});process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
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=isOutputDebugEnabled(parsedArgs.flags["--debug"]),isNoColor=parsedArgs.flags["--no-color"];output_manager_default.initialize({debug:isDebugging,noColor:isNoColor})}catch(err){return printError(err),1}let localConfigPath=parsedArgs.flags["--local-config"],localConfig=await earlyGetConfig(localConfigPath);if(localConfig instanceof CantParseJSONFile)return output_manager_default.error(`Couldn't parse JSON file ${localConfig.meta.file}.`),1;if(localConfig instanceof CantFindConfig){if(localConfigPath)return output_manager_default.error(`Couldn't find a project configuration file at
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","budget","budgets","crons","curl","kms","schedules","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(err instanceof Diagnostic&&err.name!=="Diagnostic"?err.name:getStringProperty(err,"code")),telemetry.trackErrorSlug(getStringProperty(err,"slug")),telemetry.trackErrorAction(getStringProperty(err,"action"));let serverMessage=getStringProperty(err,"serverMessage")??((0,import_error_utils3.isError)(err)?err.message:void 0);telemetry.trackErrorServerMessage(serverMessage)},saveTelemetry=async()=>{if(telemetrySaved)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(telemetryEventStore.updateTeamId(client?.config.currentTeam??config2.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),await telemetryEventStore.save(),postCommandSpan.stop(),telemetrySaved=!0},finishWithExitCode=async code=>(client&&trackAgentCommandOutcome(client,code),await saveTelemetry(),code);typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:config2&&config2.api&&(apiUrl=config2.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-AEAWC6MD.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config:config2,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=join2(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-G3HACVTQ.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],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);if(subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev"),subcommand==="flags"&&subSubCommand==="prepare"&&subcommandsWithoutToken.push("flags"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-KCPCA6L7.js"),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(1);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(1);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(1)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&output_manager_default.warn(`The ${param("--team")} option is deprecated. Please use ${param("--scope")} instead.`);let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg=>arg==="--project"||arg.startsWith("--project="));if(typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){let 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-3RMS2X6B.js");exitCode=await execExtension(client,targetCommand,parsedArgs.args.slice(3),cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(1);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).aiGateway;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).api;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).budget;break;case"builders":func=(await import("./commands-bulk.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).certs;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).curl;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).deployHooks;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).domains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).experiments;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).guidance;break}else{func=null;break}case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).kms;break;case"mcp":func=(await import("./commands-bulk.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-bulk.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).microfrontends;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).open;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).project;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).storage;break;case"target":telemetry.trackCliCommandTarget(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(1);func.default&&(func=func.default),shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),resolvedCommandForUpdate=targetCommand,exitCode=await rootSpan.child("vc.cli.command",{command:subcommand||"deploy"}).trace(()=>func(client))}}catch(err){if(trackAgenticErrorTelemetry(err),shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils3.isError)(err)&&"status"in err||(0,import_error_utils3.isError)(err)&&"code"in err&&err.code==="ARG_UNKNOWN_OPTION"))return printError(err,client),finishWithExitCode(1);if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils3.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils3.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(await getSentry(),client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(trackAgentCommandOutcome(client,exitCode??0),await saveTelemetry(),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=`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(err instanceof Diagnostic&&err.name!=="Diagnostic"?err.name:getStringProperty(err,"code")),telemetry.trackErrorSlug(getStringProperty(err,"slug")),telemetry.trackErrorAction(getStringProperty(err,"action"));let serverMessage=getStringProperty(err,"serverMessage")??((0,import_error_utils3.isError)(err)?err.message:void 0);telemetry.trackErrorServerMessage(serverMessage)},saveTelemetry=async()=>{if(telemetrySaved)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(telemetryEventStore.updateTeamId(client?.config.currentTeam??config2.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),await telemetryEventStore.save(),postCommandSpan.stop(),telemetrySaved=!0},finishWithExitCode=async code=>(client&&trackAgentCommandOutcome(client,code),await saveTelemetry(),code);typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:config2&&config2.api&&(apiUrl=config2.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-AEAWC6MD.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config:config2,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=join2(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-7JUPKBWV.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],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);if(subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev"),subcommand==="flags"&&subSubCommand==="prepare"&&subcommandsWithoutToken.push("flags"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-PPUSNDNC.js"),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(1);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(1);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(1)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&output_manager_default.warn(`The ${param("--team")} option is deprecated. Please use ${param("--scope")} instead.`);let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg=>arg==="--project"||arg.startsWith("--project="));if(typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"){let 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-3RMS2X6B.js");exitCode=await execExtension(client,targetCommand,parsedArgs.args.slice(3),cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(1);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).aiGateway;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).api;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).budget;break;case"builders":func=(await import("./commands-bulk.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).certs;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).curl;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).deployHooks;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).domains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).experiments;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).guidance;break}else{func=null;break}case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).kms;break;case"mcp":func=(await import("./commands-bulk.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-bulk.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).microfrontends;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).open;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).project;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).storage;break;case"target":telemetry.trackCliCommandTarget(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-bulk.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(1);func.default&&(func=func.default),shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),resolvedCommandForUpdate=targetCommand,exitCode=await rootSpan.child("vc.cli.command",{command:subcommand||"deploy"}).trace(()=>func(client))}}catch(err){if(trackAgenticErrorTelemetry(err),shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils3.isError)(err)&&"status"in err||(0,import_error_utils3.isError)(err)&&"code"in err&&err.code==="ARG_UNKNOWN_OPTION"))return printError(err,client),finishWithExitCode(1);if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils3.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils3.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils3.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(await getSentry(),client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(trackAgentCommandOutcome(client,exitCode??0),await saveTelemetry(),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=`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
16
  `);let upgradeExitCode=await promptAndUpgrade(client,latest);if(upgradeExitCode!==void 0)return upgradeExitCode}else{let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(`
package/dist/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "60.0.0";
1
+ export const version = "60.1.1";
2
2
  export const buildLabel = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "60.0.0",
3
+ "version": "60.1.1",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -35,51 +35,51 @@
35
35
  "undici": "5.29.0",
36
36
  "uuid": "14.0.1",
37
37
  "zod": "4.1.11",
38
+ "@vercel/backends": "11.0.0",
39
+ "@vercel/build-utils": "14.13.0",
38
40
  "@vercel/cli-auth": "0.3.9",
39
41
  "@vercel/cli-config": "0.3.0",
40
- "@vercel/backends": "10.0.0",
41
- "@vercel/build-utils": "14.12.0",
42
- "@vercel/container": "10.0.0",
42
+ "@vercel/container": "11.0.0",
43
43
  "@vercel/detect-agent": "1.2.5",
44
- "@vercel/elysia": "10.0.0",
45
- "@vercel/express": "10.0.0",
46
- "@vercel/fastify": "10.0.0",
47
- "@vercel/h3": "10.0.0",
48
- "@vercel/hono": "10.0.0",
49
- "@vercel/koa": "10.0.0",
50
- "@vercel/hydrogen": "11.0.0",
51
- "@vercel/nestjs": "10.0.0",
52
- "@vercel/next": "14.0.0",
53
- "@vercel/node": "15.0.0",
54
- "@vercel/python": "16.0.0",
44
+ "@vercel/elysia": "11.0.0",
45
+ "@vercel/express": "11.0.0",
46
+ "@vercel/fastify": "11.0.0",
47
+ "@vercel/go": "14.0.0",
48
+ "@vercel/h3": "11.0.0",
49
+ "@vercel/hono": "11.0.0",
50
+ "@vercel/hydrogen": "12.0.0",
51
+ "@vercel/koa": "11.0.0",
52
+ "@vercel/nestjs": "11.0.0",
53
+ "@vercel/next": "15.0.0",
54
+ "@vercel/node": "16.0.0",
55
+ "@vercel/python": "17.0.0",
55
56
  "@vercel/python-analysis": "0.14.0",
56
- "@vercel/redwood": "12.0.0",
57
- "@vercel/remix-builder": "15.0.0",
58
- "@vercel/ruby": "12.0.0",
59
- "@vercel/rust": "11.0.0",
60
- "@vercel/static-build": "12.0.0",
61
- "@vercel/go": "13.0.0"
57
+ "@vercel/redwood": "13.0.0",
58
+ "@vercel/remix-builder": "16.0.0",
59
+ "@vercel/ruby": "13.0.0",
60
+ "@vercel/rust": "12.0.0",
61
+ "@vercel/static-build": "13.0.0"
62
62
  },
63
63
  "builders": {
64
- "@vercel/backends": "10.0.0",
65
- "@vercel/container": "10.0.0",
66
- "@vercel/elysia": "10.0.0",
67
- "@vercel/express": "10.0.0",
68
- "@vercel/fastify": "10.0.0",
69
- "@vercel/go": "13.0.0",
70
- "@vercel/h3": "10.0.0",
71
- "@vercel/hono": "10.0.0",
72
- "@vercel/hydrogen": "11.0.0",
73
- "@vercel/koa": "10.0.0",
74
- "@vercel/nestjs": "10.0.0",
75
- "@vercel/next": "14.0.0",
76
- "@vercel/node": "15.0.0",
77
- "@vercel/python": "16.0.0",
78
- "@vercel/redwood": "12.0.0",
79
- "@vercel/remix-builder": "15.0.0",
80
- "@vercel/ruby": "12.0.0",
81
- "@vercel/rust": "11.0.0",
82
- "@vercel/static-build": "12.0.0"
64
+ "@vercel/backends": "11.0.0",
65
+ "@vercel/container": "11.0.0",
66
+ "@vercel/elysia": "11.0.0",
67
+ "@vercel/express": "11.0.0",
68
+ "@vercel/fastify": "11.0.0",
69
+ "@vercel/go": "14.0.0",
70
+ "@vercel/h3": "11.0.0",
71
+ "@vercel/hono": "11.0.0",
72
+ "@vercel/hydrogen": "12.0.0",
73
+ "@vercel/koa": "11.0.0",
74
+ "@vercel/nestjs": "11.0.0",
75
+ "@vercel/next": "15.0.0",
76
+ "@vercel/node": "16.0.0",
77
+ "@vercel/python": "17.0.0",
78
+ "@vercel/redwood": "13.0.0",
79
+ "@vercel/remix-builder": "16.0.0",
80
+ "@vercel/ruby": "13.0.0",
81
+ "@vercel/rust": "12.0.0",
82
+ "@vercel/static-build": "13.0.0"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@edge-runtime/node-utils": "2.3.0",
@@ -206,26 +206,26 @@
206
206
  "write-json-file": "2.2.0",
207
207
  "xdg-app-paths": "5.1.0",
208
208
  "yauzl-promise": "2.1.3",
209
- "@vercel-internals/builder-orchestration": "1.0.6",
210
- "@vercel-internals/cli-builder-integration": "1.0.7",
209
+ "@vercel-internals/builder-orchestration": "1.0.7",
210
+ "@vercel-internals/cli-builder-integration": "1.0.9",
211
211
  "@vercel-internals/constants": "1.0.4",
212
- "@vercel-internals/local-schedules": "0.0.1",
213
212
  "@vercel-internals/get-package-json": "1.0.0",
214
- "@vercel-internals/types": "3.0.10",
215
- "@vercel-internals/service-topology": "1.0.6",
216
- "@vercel/client": "18.4.4",
213
+ "@vercel-internals/local-schedules": "0.0.3",
214
+ "@vercel-internals/service-topology": "1.0.7",
215
+ "@vercel-internals/types": "3.0.12",
216
+ "@vercel/client": "18.4.5",
217
217
  "@vercel/error-utils": "2.2.1",
218
- "@vercel/fs-detectors": "7.7.1",
219
218
  "@vercel/frameworks": "3.34.0",
219
+ "@vercel/fs-detectors": "7.7.2",
220
220
  "@vercel/routing-utils": "6.6.0"
221
221
  },
222
222
  "optionalDependencies": {
223
- "@vercel/vc-native-darwin-arm64": "60.0.0",
224
- "@vercel/vc-native-darwin-x64": "60.0.0",
225
- "@vercel/vc-native-linux-arm64": "60.0.0",
226
- "@vercel/vc-native-linux-x64": "60.0.0",
227
- "@vercel/vc-native-win32-arm64": "60.0.0",
228
- "@vercel/vc-native-win32-x64": "60.0.0"
223
+ "@vercel/vc-native-darwin-arm64": "60.1.1",
224
+ "@vercel/vc-native-darwin-x64": "60.1.1",
225
+ "@vercel/vc-native-linux-arm64": "60.1.1",
226
+ "@vercel/vc-native-linux-x64": "60.1.1",
227
+ "@vercel/vc-native-win32-arm64": "60.1.1",
228
+ "@vercel/vc-native-win32-x64": "60.1.1"
229
229
  },
230
230
  "scripts": {
231
231
  "test": "node scripts/test.mjs --run",
@@ -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{getGlobalPathConfig}from"./chunk-JSKGZLE4.js";import{require_load_json_file}from"./chunk-RCTYVKM5.js";import{require_types}from"./chunk-GHM7V3GG.js";import{inspectTokenRequest,processInspectTokenResponse}from"./chunk-5XJNPXQK.js";import{parseArguments}from"./chunk-WWB66KP5.js";import{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_CONFIG_EXTENSIONS,VERCEL_DIR,findProjectsFromPath,getLinkFromDir,getRepoLink,getVercelDirectory}from"./chunk-4XAIK5CI.js";import{humanizePath}from"./chunk-PPCFQQSU.js";import{require_cli_config}from"./chunk-BRK4OB4B.js";import{getUser}from"./chunk-SM5JI6QM.js";import{getTeamByIdOrSlug}from"./chunk-VOZEB6PD.js";import{ConflictingConfigFiles,DeprecatedNowJson,InvalidLocalConfig,InvalidToken,NowError,TeamDeleted}from"./chunk-RINZXCDJ.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import{require_dist}from"./chunk-QGIQK47P.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);function highlight(text){return import_chalk.default.bold.underline(text)}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";var import_cli_config=__toESM(require_cli_config(),1);var import_load_json_file=__toESM(require_load_json_file(),1),config=__toESM(require_cli_config(),1),import_error_utils=__toESM(require_dist(),1),import_types=__toESM(require_types(),1);import{join,basename,dirname}from"path";import{accessSync,constants}from"fs";import{persistCliAuthConfig,readCliAuthConfig}from"@vercel/cli-auth/credentials-store.js";import path from"path";import{existsSync}from"fs";function getLocalPathConfig(prefix){let customPath=parseArguments(process.argv.slice(2),{},{permissive:!0}).flags["--local-config"];if(customPath){if(typeof customPath!="string")throw new InvalidLocalConfig(customPath);return path.resolve(process.cwd(),customPath)}let vercelConfigPath=path.join(prefix,"vercel.json"),vercelTomlPath=path.join(prefix,"vercel.toml"),nowConfigPath=path.join(prefix,"now.json"),vercelConfigExists=existsSync(vercelConfigPath),vercelTomlExists=existsSync(vercelTomlPath),nowConfigExists=existsSync(nowConfigPath),foundConfigs=[];if(vercelConfigExists&&foundConfigs.push(vercelConfigPath),vercelTomlExists&&foundConfigs.push(vercelTomlPath),nowConfigExists)throw new DeprecatedNowJson(nowConfigPath);if(foundConfigs.length>1)throw new ConflictingConfigFiles(foundConfigs);let compiledConfigPath=path.join(prefix,VERCEL_DIR,"vercel.json");return existsSync(compiledConfigPath)?compiledConfigPath:vercelConfigPath}var VERCEL_DIR2=getGlobalPathConfig(),CONFIG_FILE_PATH=config.getConfigFilePath(VERCEL_DIR2),AUTH_CONFIG_FILE_PATH=config.getAuthConfigFilePath(VERCEL_DIR2),readConfigFile=()=>config.readGlobalConfigFile(CONFIG_FILE_PATH),writeToConfigFile=stuff=>{try{config.writeGlobalConfigFile(CONFIG_FILE_PATH,stuff)}catch(err){throw(0,import_error_utils.isErrnoException)(err)&&((0,import_error_utils.isErrnoException)(err)&&err.code==="EPERM"?(output_manager_default.error(`Not able to create ${highlight(CONFIG_FILE_PATH)} (operation not permitted).`),process.exit(1)):err.code==="EBADF"&&(output_manager_default.error(`Not able to create ${highlight(CONFIG_FILE_PATH)} (bad file descriptor).`),process.exit(1))),err}},readAuthConfigFile=_globalConfig=>({...config.getDefaultAuthConfig(),...readCliAuthConfig(VERCEL_DIR2)}),persistAuthConfig=(authConfig,_globalConfig)=>{try{return persistCliAuthConfig(VERCEL_DIR2,authConfig)}catch(err){let wrappedError=new Error(`Not able to create ${humanizePath(AUTH_CONFIG_FILE_PATH)} (${(0,import_error_utils.errorToStringFriendly)(err)}).`);throw wrappedError.cause=err,wrappedError}};function getConfigFilePath2(){return CONFIG_FILE_PATH}function getAuthConfigFilePath2(){return AUTH_CONFIG_FILE_PATH}function readLocalConfig(prefix=process.cwd()){let config2,target="";try{target=getLocalPathConfig(prefix)}catch(err){if(err instanceof NowError)output_manager_default.error(err.message),process.exit(1);else throw err}if(!target)return;try{accessSync(target,constants.F_OK),config2=import_load_json_file.default.sync(target)}catch(err){if(!((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"))if((0,import_error_utils.isError)(err)&&err.name==="JSONError")output_manager_default.error(err.message),process.exit(1);else if((0,import_error_utils.isErrnoException)(err)){let code=err.code?` (${err.code})`:"";output_manager_default.error(`Failed to read config file: ${target}${code}`),process.exit(1)}else output_manager_default.prettyError(err),process.exit(1)}if(!config2)return;if(basename(target)==="vercel.json"&&basename(dirname(target))===VERCEL_DIR){let workPath=dirname(dirname(target)),sourceFile=null;for(let ext of VERCEL_CONFIG_EXTENSIONS){let configPath=join(workPath,`vercel.${ext}`);try{accessSync(configPath,constants.F_OK),sourceFile=basename(configPath);break}catch{}}if(!sourceFile){let tomlPath=join(workPath,"vercel.toml");try{accessSync(tomlPath,constants.F_OK),sourceFile="vercel.toml"}catch{}}config2[import_types.fileNameSymbol]=sourceFile||DEFAULT_VERCEL_CONFIG_FILENAME}else config2[import_types.fileNameSymbol]=basename(target);return config2}function isEligibleForNativeBinaryAutoOptIn(client){return client.teams?.some(team=>team.slug==="vercel")===!0}function autoOptInNativeBinary(client){let envOverride=process.env.VERCEL_CLI_USE_NATIVE_BINARY;if(!(envOverride==="false"||envOverride==="0"||typeof client.config.useNativeBinary=="boolean"||client.config.nativeBinaryAutoOptIn===!0||!isEligibleForNativeBinaryAutoOptIn(client)))try{let configPath=getConfigFilePath2(),savedConfig=(0,import_cli_config.readGlobalConfigFile)(configPath);if(typeof savedConfig.useNativeBinary=="boolean"||savedConfig.nativeBinaryAutoOptIn===!0)return;let config2={...savedConfig,nativeBinaryAutoOptIn:!0};(0,import_cli_config.writeGlobalConfigFile)(configPath,config2),client.config={...client.config,nativeBinaryAutoOptIn:!0}}catch{output_manager_default.debug("Failed to persist automatic native binary enrollment.")}}async function getScope(client,opts={}){let{user,app,token}=await getPrincipal(client);user&&autoOptInNativeBinary(client);let 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{highlight,isAppPrincipalEnabled,resolveAppTokenScope,getScope,detectExplicitScope,getLocalPathConfig,readConfigFile,writeToConfigFile,readAuthConfigFile,persistAuthConfig,getConfigFilePath2 as getConfigFilePath,getAuthConfigFilePath2 as getAuthConfigFilePath,readLocalConfig};
@@ -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{tracesConfigCommand}from"./chunk-IVWPQYIH.js";import{deploymentOption,protectionBypassOption,yesOption}from"./chunk-JAJW3P42.js";import{packageName}from"./chunk-FI772UVH.js";var getSubcommand={name:"get",aliases:[],default:!0,description:"Fetch a captured trace by request id.",arguments:[{name:"requestId",required:!1}],options:[{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Print the raw trace JSON to stdout instead of the markdown summary."},{name:"project",shorthand:null,type:String,argument:"NAME|ID",deprecated:!1,description:"Project name or id to fetch the trace from (overrides the linked project)."},{name:"open",shorthand:null,type:Boolean,deprecated:!1,description:"Open the trace in the Vercel Dashboard instead of printing it."},{name:"view",shorthand:null,type:String,argument:"timeline|tree|waterfall",deprecated:!1,description:"Dashboard view to open. Only valid with --open. Defaults to timeline."}],examples:[{name:"Fetch a trace by request id",value:`${packageName} traces get req_1234567890`},{name:"Print the raw trace JSON",value:`${packageName} traces get req_1234567890 --json`},{name:"`get` is the default \u2014 this is equivalent to the above",value:`${packageName} traces req_1234567890`},{name:"Fetch a trace from a specific team and project",value:`${packageName} traces get req_1234567890 --scope my-team --project my-app`},{name:"Open the trace in the Vercel Dashboard",value:`${packageName} traces get req_1234567890 --open`},{name:"Open the trace in the Vercel Dashboard with the waterfall view",value:`${packageName} traces get req_1234567890 --open --view waterfall`}]},createSubcommand={name:"create",aliases:[],description:"Capture a session trace for a request (alias for `vercel curl --trace`).",arguments:[{name:"path",required:!0}],options:[deploymentOption,protectionBypassOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Emit { response, requestId } as JSON on stdout"},{...yesOption,description:"Skip the production confirmation prompt (e.g. in non-interactive mode)"}],examples:[{name:"Capture a session trace for a request",value:`${packageName} traces create /api/hello`},{name:"Target a specific deployment",value:`${packageName} traces create /api/status --deployment https://your-project-abc123.vercel.app`},{name:"Pass curl flags after the separator",value:`${packageName} traces create /api/test -- --request POST --data '{"name": "John"}'`}]},tracesCommand={name:"traces",aliases:[],description:"Fetch traces captured for a Vercel project.",arguments:[{name:"requestId",required:!1}],subcommands:[getSubcommand,createSubcommand,tracesConfigCommand],options:[],examples:[{name:"Fetch a trace by request id",value:`${packageName} traces get req_1234567890`},{name:"Print the raw trace JSON",value:`${packageName} traces get req_1234567890 --json`},{name:"Capture a session trace for a request",value:`${packageName} traces create /api/hello`},{name:"List the trace sampling rules for a project",value:`${packageName} traces config ls`}]};export{getSubcommand,createSubcommand,tracesCommand};
@@ -1,9 +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{MISSING_BOTH_MESSAGE}from"./chunk-MNR5YQDP.js";import{resolveProjectContext}from"./chunk-QXC2G7JY.js";import{AGENT_REASON,AGENT_STATUS}from"./chunk-T4LZS75P.js";import{RULE_ENVIRONMENTS}from"./chunk-IVWPQYIH.js";import{detectExplicitScope}from"./chunk-AH3A52IK.js";import{printError}from"./chunk-N5AIKGEO.js";import{outputAgentError}from"./chunk-KCARCOP5.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";function messageFor(err){return isAPIError(err)?err.serverMessage||err.message:err instanceof Error?err.message:String(err)}function handleTracingApiError(client,err){if(client.nonInteractive){let status=isAPIError(err)?err.status:void 0;outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:status===403?AGENT_REASON.PERMISSION_DENIED:status===404?AGENT_REASON.NOT_FOUND:AGENT_REASON.API_ERROR,message:messageFor(err)})}return isAPIError(err)&&err.status===403?(output_manager_default.error(messageFor(err)),1):(printError(err),1)}function configError(client,reason,message){return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason,message}),output_manager_default.error(message),1}function invalidArguments(client,message){return configError(client,AGENT_REASON.INVALID_ARGUMENTS,message)}function ruleNotFound(client,message){return configError(client,AGENT_REASON.NOT_FOUND,message)}function confirmationRequired(client,message,next){return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message,userActionRequired:!0,next}),output_manager_default.error(message),1}function writeConfigJson(client,{project,bare,envelope,message,next}){if(!client.nonInteractive){client.stdout.write(`${JSON.stringify(bare,null,2)}
8
- `);return}client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.OK,projectId:project.id,projectName:project.name,...envelope,message,next},null,2)}
9
- `)}var RULE_LIMIT=10,MIN_SAMPLE_RATE=1,MAX_SAMPLE_RATE=100;function isRuleEnvironment(value){return RULE_ENVIRONMENTS.includes(value)}var ENVIRONMENT_ERROR=`\`environment\` must be one of: ${RULE_ENVIRONMENTS.join(", ")}.`,RATE_ERROR=`\`rate\` must be a whole number from ${MIN_SAMPLE_RATE} to ${MAX_SAMPLE_RATE}.`,EMPTY_PATH_ERROR="`requestPath` cannot be empty.";function parseSampleRate(value){if(!/^\d+$/.test(value.trim()))return;let rate=Number(value);return rate>=MIN_SAMPLE_RATE&&rate<=MAX_SAMPLE_RATE?rate:void 0}function toRow(rule){return{environment:rule.env??"any",requestPath:rule.requestPath??null,sampleRate:Math.round(rule.rate*100)}}function toApiRate(sampleRate){return sampleRate/100}function toRule(row){return{rate:toApiRate(row.sampleRate),...row.environment==="any"?{}:{env:row.environment},...row.requestPath===null?{}:{requestPath:row.requestPath}}}var ALL_PATHS_LABEL="(all paths)";function formatPath(requestPath){return requestPath??ALL_PATHS_LABEL}function formatRate(sampleRate){return`${sampleRate}%`}function formatRuleTarget(environment,requestPath){return`${environment} ${formatPath(requestPath)}`}function formatRuleLine(row){return`${formatRuleTarget(row.environment,row.requestPath)} ${formatRate(row.sampleRate)}`}var COMMAND_WORD_COUNT=3;function subcommandArguments(positional){return positional.slice(COMMAND_WORD_COUNT)}function hasSameKey(a,b){return a.environment===b.environment&&a.requestPath===b.requestPath}async function readProjectTracing({client,teamId,projectId}){let project=await client.fetch(`/v9/projects/${encodeURIComponent(projectId)}`,{accountId:teamId}),tracing=project.tracing??null;return{project,tracing,entries:(tracing?.samplingRules??[]).map(rule=>({rule,row:toRow(rule)}))}}async function writeSamplingRules({client,teamId,projectId,tracing,rules}){let body={tracing:{...tracing??{},samplingRules:rules}};await client.fetch(`/v9/projects/${encodeURIComponent(projectId)}`,{accountId:teamId,method:"PATCH",body})}async function resolveConfigScope(client,flags){let link=await resolveProjectContext({client,projectNameOrId:flags.project});return link.status==="error"?{exitCode:link.exitCode}:link.status==="not_linked"?(output_manager_default.error(MISSING_BOTH_MESSAGE),{exitCode:1}):flags.project===void 0&&detectExplicitScope(client)&&link.org.id!==client.config.currentTeam?(output_manager_default.error(`The linked project ${link.project.name} belongs to ${link.org.slug||link.org.id}, which is not the scope that was passed. Pass --project <name> to act on a project in that scope.`),{exitCode:1}):{teamId:link.org.id,projectId:link.project.id}}export{handleTracingApiError,invalidArguments,ruleNotFound,confirmationRequired,writeConfigJson,RULE_LIMIT,isRuleEnvironment,ENVIRONMENT_ERROR,RATE_ERROR,EMPTY_PATH_ERROR,parseSampleRate,toApiRate,toRule,formatPath,formatRate,formatRuleTarget,formatRuleLine,subcommandArguments,hasSameKey,readProjectTracing,writeSamplingRules,resolveConfigScope};
@@ -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{AGENT_REASON}from"./chunk-T4LZS75P.js";import{getProjectByNameOrId}from"./chunk-4XAIK5CI.js";import{ProjectNotFound}from"./chunk-RINZXCDJ.js";var MISSING_BOTH_MESSAGE="No linked project found. Run `vercel link`, pass --cwd to a linked dir, or use --scope <team> and --project <name>.";async function resolveScope({client,flags={},linkedProject}){let flagScope=flags.scope?.trim()||void 0,flagProject=flags.project?.trim()||void 0;if(linkedProject.status==="linked"){if(!flagScope&&!flagProject)return{teamId:linkedProject.org.id,projectId:linkedProject.project.id};let teamId=flagScope?client.config.currentTeam:linkedProject.org.id;if(!teamId)return{reason:AGENT_REASON.NOT_FOUND,message:`Team not found: ${flagScope}`};let project=await getProjectByNameOrId(client,flagProject??linkedProject.project.id,teamId);return project instanceof ProjectNotFound?{reason:AGENT_REASON.NOT_FOUND,message:`Project not found: ${flagProject}`}:{teamId,projectId:project.id}}if(flagScope&&flagProject){let teamId=client.config.currentTeam;if(!teamId)return{reason:AGENT_REASON.NOT_FOUND,message:`Team not found: ${flagScope}`};let project=await getProjectByNameOrId(client,flagProject,teamId);return project instanceof ProjectNotFound?{reason:AGENT_REASON.NOT_FOUND,message:`Project not found: ${flagProject}`}:{teamId,projectId:project.id}}return{reason:AGENT_REASON.NOT_LINKED,message:MISSING_BOTH_MESSAGE}}export{MISSING_BOTH_MESSAGE,resolveScope};
@@ -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{RULE_LIMIT,formatPath,formatRate,handleTracingApiError,readProjectTracing,resolveConfigScope,subcommandArguments,writeConfigJson}from"./chunk-MCZNQE4G.js";import"./chunk-MNR5YQDP.js";import{formatTable}from"./chunk-UED2PPFP.js";import{validateLsArgs}from"./chunk-Z4VR6CQ2.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-QXC2G7JY.js";import"./chunk-PNY65NDD.js";import"./chunk-T4LZS75P.js";import{lsSubcommand}from"./chunk-IVWPQYIH.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-AH3A52IK.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-4XAIK5CI.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigLsTelemetryClient=class extends TelemetryClient{trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var SET_HINT="traces config set <environment> <rate> [requestPath]";function ruleCountLabel(count){return`${count} of ${RULE_LIMIT} rules`}function printTable(projectName,rows){output_manager_default.log(`Trace sampling rules for ${import_chalk.default.bold(projectName)} (${ruleCountLabel(rows.length)})`),output_manager_default.print(`${formatTable(["environment","path","rate"],["l","l","l"],[{rows:rows.map(row=>[row.environment,formatPath(row.requestPath),formatRate(row.sampleRate)])}])}
8
- `)}async function ls(client){let telemetry=new TracesConfigLsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(lsSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs;telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]);let argsResult=validateLsArgs({commandName:"traces config ls",args:subcommandArguments(parsedArgs.args),maxArgs:0,exitCode:2});if(argsResult!==0)return argsResult;let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;asJson||output_manager_default.spinner("Fetching trace sampling rules\u2026");let project,entries;try{({project,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let rows=entries.filter(entry=>entry.rule.destination==="internal").map(entry=>entry.row),message=rows.length===0?`No trace sampling rules for ${project.name}.`:`Listed ${ruleCountLabel(rows.length)}.`;return asJson?(writeConfigJson(client,{project,bare:rows,envelope:{rules:rows},message,next:[{command:getCommandNamePlain(SET_HINT),when:"Add or replace a sampling rule"}]}),0):rows.length===0?(output_manager_default.log(`No trace sampling rules for ${import_chalk.default.bold(project.name)}.`),output_manager_default.dim(`Add one with ${getCommandName(SET_HINT)}`),0):(printTable(project.name,rows),0)}export{ls as default};
@@ -1,8 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RULE_LIMIT,confirmationRequired,formatRuleLine,formatRuleTarget,handleTracingApiError,invalidArguments,isRuleEnvironment,readProjectTracing,resolveConfigScope,ruleNotFound,subcommandArguments,writeConfigJson,writeSamplingRules}from"./chunk-MCZNQE4G.js";import"./chunk-MNR5YQDP.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-QXC2G7JY.js";import"./chunk-PNY65NDD.js";import"./chunk-T4LZS75P.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{rmSubcommand}from"./chunk-IVWPQYIH.js";import{help}from"./chunk-V6IKQCOT.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-AH3A52IK.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-4XAIK5CI.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import{buildCommandWithGlobalFlags}from"./chunk-KCARCOP5.js";import{quoteArg}from"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigRmTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagDefault(defaultOnly){defaultOnly&&this.trackCliFlag("default")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config rm <environment> [requestPath]";function matches(row,environment,selector){if(row.environment!==environment)return!1;switch(selector.kind){case"exact":return row.requestPath===selector.requestPath;case"default":return row.requestPath===null;case"every":return!0}}function describeSelection(environment,selector){switch(selector.kind){case"exact":return formatRuleTarget(environment,selector.requestPath);case"default":return formatRuleTarget(environment,null);case"every":return environment}}function ruleWord(count){return count===1?"rule":"rules"}function canConfirm(client){return!client.nonInteractive&&!client.isAgent&&client.stdin.isTTY===!0}function commandToRunByHand(client,environment,pathArg,defaultFlag){let template=["traces config rm",environment,...pathArg!==void 0?[quoteArg(pathArg)]:[],...defaultFlag?["--default"]:[]].join(" ");return buildCommandWithGlobalFlags(client.argv,template,void 0,{excludeFlags:["--non-interactive"],preserveProject:!0})}async function rm(client){let telemetry=new TracesConfigRmTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(rmSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0],defaultFlag=!!flags["--default"];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliFlagDefault(flags["--default"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0)return output_manager_default.print(help(rmSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);if(pathArg!==void 0&&defaultFlag)return invalidArguments(client,"`--default` selects the rule that has no path prefix, so it cannot be combined with a path prefix.");if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let selector=pathArg!==void 0?{kind:"exact",requestPath:pathArg}:defaultFlag?{kind:"default"}:{kind:"every"},formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;asJson||output_manager_default.spinner("Fetching trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let removed=entries.filter(entry=>matches(entry.row,environmentArg,selector)).map(entry=>entry.row),kept=entries.filter(entry=>!matches(entry.row,environmentArg,selector));if(removed.length===0)return ruleNotFound(client,`No trace sampling rule matches ${describeSelection(environmentArg,selector)} on ${project.name}.`);let removedLines=removed.map(formatRuleLine);output_manager_default.log(`The following ${removed.length} ${ruleWord(removed.length)} will be removed from ${import_chalk.default.bold(project.name)}:`);for(let line of removedLines)output_manager_default.print(` ${line}
8
- `);if(!canConfirm(client))return confirmationRequired(client,`Removing ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name} needs a confirmation, and this session cannot prompt for one. Rules at risk: ${removedLines.join(", ")}.`,[{command:commandToRunByHand(client,environmentArg,pathArg,defaultFlag),when:"Run this in a terminal and answer the prompt"}]);if(!await client.input.confirm(`Remove ${removed.length} trace sampling ${ruleWord(removed.length)}?`,!1))return output_manager_default.log("Canceled."),0;asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");try{await writeSamplingRules({client,...scope,tracing,rules:kept.map(entry=>entry.rule)})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let message=`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name}. ${kept.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:removed,envelope:{removed,ruleCount:kept.length,ruleLimit:RULE_LIMIT},message,next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every remaining sampling rule"}]}),0):(output_manager_default.success(`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${import_chalk.default.bold(project.name)}. ${kept.length} of ${RULE_LIMIT} rules.`),0)}export{rm as default};