vercel 63.0.0 → 63.0.2

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.
@@ -4,5 +4,5 @@ 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{parseTeamRefs,teamRefBody}from"./chunk-LSF7FY6X.js";import{repositoryPermissionsPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-B3PZ3I4Z.js";import{require_async_sema}from"./chunk-NZ2TFADV.js";import{outputError}from"./chunk-WH3SHWVK.js";import"./chunk-GSOPJJO5.js";import{permissionsAddSubcommand}from"./chunk-AU42HSQ3.js";import"./chunk-FBYA6LLM.js";import"./chunk-SCV7XEEO.js";import{printError}from"./chunk-V336CYEI.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import"./chunk-D4MW3RDW.js";import"./chunk-DZ6GORJ7.js";import"./chunk-HMS3UIQ2.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-VKXEOL4K.js";import"./chunk-4SAVH3H7.js";import"./chunk-ZS2WS4AM.js";import"./chunk-AOWWC6WZ.js";import"./chunk-MY4MONOH.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-MYMM34ZH.js";import"./chunk-ROPQIBWJ.js";import"./chunk-VKPZP4LC.js";import"./chunk-PPCFQQSU.js";import"./chunk-N7Q2IESO.js";import"./chunk-VSE5BAPP.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-AZULOP7M.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_async_sema=__toESM(require_async_sema(),1);var USAGE="vcr permissions <repository> add <team>[,<team>...]";async function add(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsAddSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],teamRefs=parseTeamRefs(parsedArgs.args.slice(2)),project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),teamRefs.length===0)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing team. Example: ${packageName} vcr permissions ${repository} add team_1a2b3c4d`,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Replace <team> with a team id or slug (comma-separate multiple teams)"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",`Usage: \`vercel ${USAGE}\``);let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPermissionsPath(scope,repository),added=[],failed=[];output_manager_default.spinner(`Sharing ${repository} with ${teamRefs.length===1?teamRefs[0]:`${teamRefs.length} teams`}...`);let sema=new import_async_sema.default(10),results;try{results=await Promise.all(teamRefs.map(async team=>{await sema.acquire();try{let result=await client.fetch(path,{method:"POST",body:teamRefBody(team)});return{ok:!0,team,permission:result.permission}}catch(err){if(!isAPIError(err))throw err;let message=err.serverMessage||`API error (${err.status}).`;return{ok:!1,team,failure:{team,code:err.code||"API_ERROR",message}}}finally{sema.release()}}))}finally{output_manager_default.stopSpinner()}for(let result of results)result.ok?(added.push(result.permission),fr.jsonOutput||output_manager_default.success(`Shared ${repository} with ${result.permission?.teamSlug??result.team}`)):(failed.push(result.failure),fr.jsonOutput||output_manager_default.error(`Failed to share ${repository} with ${result.team}: ${result.failure.message}`));return failed.length>0&&outputAgentError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:`Failed to share ${repository} with ${failed.map(f=>`${f.team} (${f.message})`).join(", ")}`},1),fr.jsonOutput&&client.stdout.write(`${JSON.stringify({permissions:added,failed},null,2)}
7
+ import{parseTeamRefs,teamRefBody}from"./chunk-LSF7FY6X.js";import{repositoryPermissionsPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-B3PZ3I4Z.js";import{outputError}from"./chunk-WH3SHWVK.js";import{require_async_sema}from"./chunk-NZ2TFADV.js";import"./chunk-GSOPJJO5.js";import{permissionsAddSubcommand}from"./chunk-AU42HSQ3.js";import"./chunk-FBYA6LLM.js";import"./chunk-SCV7XEEO.js";import{printError}from"./chunk-V336CYEI.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import"./chunk-D4MW3RDW.js";import"./chunk-DZ6GORJ7.js";import"./chunk-HMS3UIQ2.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-VKXEOL4K.js";import"./chunk-4SAVH3H7.js";import"./chunk-ZS2WS4AM.js";import"./chunk-AOWWC6WZ.js";import"./chunk-MY4MONOH.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-MYMM34ZH.js";import"./chunk-ROPQIBWJ.js";import"./chunk-VKPZP4LC.js";import"./chunk-PPCFQQSU.js";import"./chunk-N7Q2IESO.js";import"./chunk-VSE5BAPP.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-AZULOP7M.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_async_sema=__toESM(require_async_sema(),1);var USAGE="vcr permissions <repository> add <team>[,<team>...]";async function add(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsAddSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],teamRefs=parseTeamRefs(parsedArgs.args.slice(2)),project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),teamRefs.length===0)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing team. Example: ${packageName} vcr permissions ${repository} add team_1a2b3c4d`,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Replace <team> with a team id or slug (comma-separate multiple teams)"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",`Usage: \`vercel ${USAGE}\``);let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPermissionsPath(scope,repository),added=[],failed=[];output_manager_default.spinner(`Sharing ${repository} with ${teamRefs.length===1?teamRefs[0]:`${teamRefs.length} teams`}...`);let sema=new import_async_sema.default(10),results;try{results=await Promise.all(teamRefs.map(async team=>{await sema.acquire();try{let result=await client.fetch(path,{method:"POST",body:teamRefBody(team)});return{ok:!0,team,permission:result.permission}}catch(err){if(!isAPIError(err))throw err;let message=err.serverMessage||`API error (${err.status}).`;return{ok:!1,team,failure:{team,code:err.code||"API_ERROR",message}}}finally{sema.release()}}))}finally{output_manager_default.stopSpinner()}for(let result of results)result.ok?(added.push(result.permission),fr.jsonOutput||output_manager_default.success(`Shared ${repository} with ${result.permission?.teamSlug??result.team}`)):(failed.push(result.failure),fr.jsonOutput||output_manager_default.error(`Failed to share ${repository} with ${result.team}: ${result.failure.message}`));return failed.length>0&&outputAgentError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:`Failed to share ${repository} with ${failed.map(f=>`${f.team} (${f.message})`).join(", ")}`},1),fr.jsonOutput&&client.stdout.write(`${JSON.stringify({permissions:added,failed},null,2)}
8
8
  `),failed.length>0?1:0}export{add as default};
@@ -4,10 +4,10 @@ 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{getUpdateCommandInfo,getUpgradePackageManager,isGlobal,trustedUpgradeDirectory,trustedUpgradeEnvironment}from"./chunk-6ZMFJA5X.js";import{progress}from"./chunk-U56NHYAH.js";import{require_ci_info}from"./chunk-2EYYB6YN.js";import{require_semver}from"./chunk-BPUANOGW.js";import{require_chownr,require_mkdirp,require_pump,require_tar_stream}from"./chunk-3E364MJE.js";import{param}from"./chunk-3G3FQYMW.js";import{shouldEmitNonInteractiveCommandError,writeAgentError}from"./chunk-5RR3435W.js";import{require_strip_ansi}from"./chunk-BS32OUOC.js";import{writeToConfigFile}from"./chunk-DZ6GORJ7.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunk-YYPNUQDI.js";import{fetch,toNodeReadable}from"./chunk-MY4MONOH.js";import{buildCorrectedCommand,suggestCorrection}from"./chunk-R4VVQRLX.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import{require_lib}from"./chunk-MYMM34ZH.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import{pkg_default}from"./chunk-OO572JUC.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__commonJS,__require,__toESM}from"./chunk-BZENIQ7N.js";var require_jaro_winkler=__commonJS({"../../node_modules/.pnpm/jaro-winkler@0.2.8/node_modules/jaro-winkler/index.js"(exports,module){(function(root){"use strict";function extend(a,b){for(var property in b)b.hasOwnProperty(property)&&(a[property]=b[property]);return a}function distance2(s1,s2,options){var m=0,defaults={caseSensitive:!0},settings=extend(defaults,options),i,j;if(s1.length===0||s2.length===0)return 0;if(settings.caseSensitive||(s1=s1.toUpperCase(),s2=s2.toUpperCase()),s1===s2)return 1;var range=Math.floor(Math.max(s1.length,s2.length)/2)-1,s1Matches=new Array(s1.length),s2Matches=new Array(s2.length);for(i=0;i<s1.length;i++){var low=i>=range?i-range:0,high=i+range<=s2.length-1?i+range:s2.length-1;for(j=low;j<=high;j++)if(s1Matches[i]!==!0&&s2Matches[j]!==!0&&s1[i]===s2[j]){++m,s1Matches[i]=s2Matches[j]=!0;break}}if(m===0)return 0;var k=0,numTrans=0;for(i=0;i<s1.length;i++)if(s1Matches[i]===!0){for(j=k;j<s2.length;j++)if(s2Matches[j]===!0){k=j+1;break}s1[i]!==s2[j]&&++numTrans}var weight=(m/s1.length+m/s2.length+(m-numTrans/2)/m)/3,l=0,p=.1;if(weight>.7){for(;s1[l]===s2[l]&&l<4;)++l;weight=weight+l*p*(1-weight)}return weight}typeof define=="function"&&define.amd?define([],function(){return distance2}):typeof exports=="object"?module.exports=distance2:root.distance=distance2})(exports)}});var require_lib2=__commonJS({"../../node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js"(exports,module){"use strict";var os=__require("os"),paths=__require("path"),isWinOS=/^win/i.test(process.platform);function normalize_path(path){return paths.normalize(paths.join(path,"."))}var base=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TMPDIR||env.TEMP||env.TMP),object},windows=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.USERPROFILE||paths.join(env.HOMEDRIVE,env.HOMEPATH)||env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TEMP||env.TMP||paths.join(env.LOCALAPPDATA||env.SystemRoot||env.windir,"Temp")),object},_OSPaths=class __OSPaths{constructor(){let OSPaths=function(){return new __OSPaths};this._fn=OSPaths;let extension=isWinOS?windows():base();return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _OSPaths}});var require_lib3=__commonJS({"../../node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js"(exports,module){"use strict";var path=__require("path"),osPaths=require_lib2(),linux=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(osPaths.home()||osPaths.temp(),".cache"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(osPaths.home()||osPaths.temp(),".config"),object.data=()=>process.env.XDG_DATA_HOME||path.join(osPaths.home()||osPaths.temp(),".local","share"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(osPaths.home()||osPaths.temp(),".local","state"),object},macos=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Caches"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Preferences"),object.data=()=>process.env.XDG_DATA_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Application Support"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"State"),object},windows=()=>{let object={};return object.cache=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_CACHE_HOME||path.join(localAppData,"xdg.cache")},object.config=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_CONFIG_HOME||path.join(appData,"xdg.config")},object.data=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_DATA_HOME||path.join(appData,"xdg.data")},object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_STATE_HOME||path.join(localAppData,"xdg.state")},object},_XDGPortable=()=>{let XDGPortable=function(){return _XDGPortable()},extension={};return/^darwin$/i.test(process.platform)?extension=macos():/^win/i.test(process.platform)?extension=windows():extension=linux(),extension.configDirs=()=>{let dirs=[];return dirs.push(extension.config()),process.env.XDG_CONFIG_DIRS&&dirs.push(...process.env.XDG_CONFIG_DIRS.split(path.delimiter)),dirs},extension.dataDirs=()=>{let dirs=[];return dirs.push(extension.data()),process.env.XDG_DATA_DIRS&&dirs.push(...process.env.XDG_DATA_DIRS.split(path.delimiter)),dirs},Object.keys(extension).forEach(key=>{XDGPortable[key]=extension[key]}),XDGPortable};module.exports=_XDGPortable()}});var require_xdg_app_paths=__commonJS({"../../node_modules/.pnpm/xdg-app-paths@5.1.0/node_modules/xdg-app-paths/index.js"(exports,module){"use strict";var path=__require("path"),os=__require("os"),xdg=require_lib3(),isWinOS=/^win/i.test(process.platform);function _normalizeOptions(options,isolated){if(options=options||{},typeof options!="object"&&(options={isolated:options}),options.isolated=options.isolated===void 0||options.isolated===null?isolated:options.isolated,typeof options.isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof options.isolated}`);return options}var base=(name,isolated)=>{let object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.cache(),options.isolated?name:"")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.config(),options.isolated?name:"")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.data(),options.isolated?name:"")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.state(),options.isolated?name:"")),object.configDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.configDirs().map(s=>path.join(s,options.isolated?name:""))),object.dataDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.dataDirs().map(s=>path.join(s,options.isolated?name:""))),object},windows=(name,isolated)=>{let{env}=process,homedir=os.homedir(),tmpdir2=os.tmpdir(),appData=env.APPDATA||path.join(homedir||tmpdir2,"AppData","Roaming"),localAppData=env.LOCALAPPDATA||path.join(homedir||tmpdir2,"AppData","Local"),object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CACHE_HOME?path.join(xdg.cache(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","Cache")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CONFIG_HOME?path.join(xdg.config(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Config")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_DATA_HOME?path.join(xdg.data(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Data")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_STATE_HOME?path.join(xdg.state(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","State")),object.configDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.config(options)];return env.XDG_CONFIG_DIRS&&dirs.push(...env.XDG_CONFIG_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object.dataDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.data(options)];return env.XDG_DATA_DIRS&&dirs.push(...env.XDG_DATA_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object},_XDGAppPaths=class __XDGAppPaths{constructor(options={name:null,suffix:null,isolated:!0}){let XDGAppPaths2=function(options2={name:null,suffix:null,isolated:!0}){return new __XDGAppPaths(options2)};this._fn=XDGAppPaths2,options=options||{},typeof options!="object"&&(options={name:options});let name=options.name||"";if(typeof name!="string")throw new TypeError(`Expected string for "name" argument, got ${typeof name}`);let suffix=options.suffix||"";if(typeof suffix!="string")throw new TypeError(`Expected string for "suffix" argument, got ${typeof suffix}`);let isolated=options.isolated===void 0||options.isolated===null?!0:options.isolated;if(typeof isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof isolated}`);name||(name=path.parse(process.pkg?process.execPath:__require.main?__require.main.filename:process.argv[0]).name),suffix&&(name+=suffix),this._fn.$name=()=>name,this._fn.$isolated=()=>isolated;let extension=isWinOS?windows(name,isolated):base(name,isolated);return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _XDGAppPaths}});var require_tar_fs=__commonJS({"../../node_modules/.pnpm/tar-fs@1.16.5/node_modules/tar-fs/index.js"(exports){var chownr=require_chownr(),tar2=require_tar_stream(),pump=require_pump(),mkdirp=require_mkdirp(),fs=__require("fs"),path=__require("path"),os=__require("os"),win32=os.platform()==="win32",noop=function(){},echo=function(name){return name},normalize=win32?function(name){return name.replace(/\\/g,"/").replace(/[:?<>|]/g,"_")}:echo,statAll=function(fs2,stat3,cwd,ignore,entries,sort){var queue=entries||["."];return function(callback){if(!queue.length)return callback();var next=queue.shift(),nextAbs=path.join(cwd,next);stat3(nextAbs,function(err,stat4){if(err)return callback(err);if(!stat4.isDirectory())return callback(null,next,stat4);fs2.readdir(nextAbs,function(err2,files){if(err2)return callback(err2);sort&&files.sort();for(var i=0;i<files.length;i++)ignore(path.join(cwd,next,files[i]))||queue.push(path.join(next,files[i]));callback(null,next,stat4)})})}},strip=function(map,level){return function(header){header.name=header.name.split("/").slice(level).join("/");var linkname=header.linkname;return linkname&&(header.type==="link"||path.isAbsolute(linkname))&&(header.linkname=linkname.split("/").slice(level).join("/")),map(header)}};exports.pack=function(cwd,opts){cwd||(cwd="."),opts||(opts={});var xfs=opts.fs||fs,ignore=opts.ignore||opts.filter||noop,map=opts.map||noop,mapStream=opts.mapStream||echo,statNext=statAll(xfs,opts.dereference?xfs.stat:xfs.lstat,cwd,ignore,opts.entries,opts.sort),strict=opts.strict!==!1,umask=typeof opts.umask=="number"?~opts.umask:~processUmask(),dmode=typeof opts.dmode=="number"?opts.dmode:0,fmode=typeof opts.fmode=="number"?opts.fmode:0,pack=opts.pack||tar2.pack(),finish=opts.finish||noop;opts.strip&&(map=strip(map,opts.strip)),opts.readable&&(dmode|=parseInt(555,8),fmode|=parseInt(444,8)),opts.writable&&(dmode|=parseInt(333,8),fmode|=parseInt(222,8));var onsymlink=function(filename,header){xfs.readlink(path.join(cwd,filename),function(err,linkname){if(err)return pack.destroy(err);header.linkname=normalize(linkname),pack.entry(header,onnextentry)})},onstat=function(err,filename,stat3){if(err)return pack.destroy(err);if(!filename)return opts.finalize!==!1&&pack.finalize(),finish(pack);if(stat3.isSocket())return onnextentry();var header={name:normalize(filename),mode:(stat3.mode|(stat3.isDirectory()?dmode:fmode))&umask,mtime:stat3.mtime,size:stat3.size,type:"file",uid:stat3.uid,gid:stat3.gid};if(stat3.isDirectory())return header.size=0,header.type="directory",header=map(header)||header,pack.entry(header,onnextentry);if(stat3.isSymbolicLink())return header.size=0,header.type="symlink",header=map(header)||header,onsymlink(filename,header);if(header=map(header)||header,!stat3.isFile())return strict?pack.destroy(new Error("unsupported type for "+filename)):onnextentry();var entry=pack.entry(header,onnextentry);if(entry){var rs=mapStream(xfs.createReadStream(path.join(cwd,filename)),header);rs.on("error",function(err2){entry.destroy(err2)}),pump(rs,entry)}},onnextentry=function(err){if(err)return pack.destroy(err);statNext(onstat)};return onnextentry(),pack};var head=function(list){return list.length?list[list.length-1]:null},processGetuid=function(){return process.getuid?process.getuid():-1},processUmask=function(){return process.umask?process.umask():0};exports.extract=function(cwd,opts){cwd||(cwd="."),opts||(opts={});var xfs=opts.fs||fs,ignore=opts.ignore||opts.filter||noop,map=opts.map||noop,mapStream=opts.mapStream||echo,own=opts.chown!==!1&&!win32&&processGetuid()===0,extract=opts.extract||tar2.extract(),stack=[],now=new Date,umask=typeof opts.umask=="number"?~opts.umask:~processUmask(),dmode=typeof opts.dmode=="number"?opts.dmode:0,fmode=typeof opts.fmode=="number"?opts.fmode:0,strict=opts.strict!==!1;opts.strip&&(map=strip(map,opts.strip)),opts.readable&&(dmode|=parseInt(555,8),fmode|=parseInt(444,8)),opts.writable&&(dmode|=parseInt(333,8),fmode|=parseInt(222,8));var utimesParent=function(name,cb){for(var top;(top=head(stack))&&name.slice(0,top[0].length)!==top[0];)stack.pop();if(!top)return cb();xfs.utimes(top[0],now,top[1],cb)},utimes=function(name,header,cb){if(opts.utimes===!1)return cb();if(header.type==="directory")return xfs.utimes(name,now,header.mtime,cb);if(header.type==="symlink")return utimesParent(name,cb);xfs.utimes(name,now,header.mtime,function(err){if(err)return cb(err);utimesParent(name,cb)})},chperm=function(name,header,cb){var link2=header.type==="symlink",chmod2=link2?xfs.lchmod:xfs.chmod,chown=link2?xfs.lchown:xfs.chown;if(!chmod2)return cb();var mode=(header.mode|(header.type==="directory"?dmode:fmode))&umask;chmod2(name,mode,function(err){if(err)return cb(err);if(!own||!chown)return cb();chown(name,header.uid,header.gid,cb)})};return extract.on("entry",function(header,stream,next){header=map(header)||header,header.name=normalize(header.name);var name=path.join(cwd,path.join("/",header.name));if(ignore(name,header))return stream.resume(),next();var stat3=function(err){if(err)return next(err);utimes(name,header,function(err2){if(err2)return next(err2);if(win32)return next();chperm(name,header,next)})},onsymlink=function(){if(win32)return next();xfs.unlink(name,function(){var dst=path.resolve(path.dirname(name),header.linkname);if(!dst.startsWith(path.resolve(cwd)))return next(new Error(name+" is not a valid symlink"));xfs.symlink(header.linkname,name,stat3)})},onlink=function(){if(win32)return next();xfs.unlink(name,function(){var srcpath=path.join(cwd,path.join("/",header.linkname));xfs.realpath(srcpath,function(err,dst){if(err||!dst.startsWith(path.resolve(cwd)))return next(new Error(name+" is not a valid hardlink"));xfs.link(dst,name,function(err2){if(err2&&err2.code==="EPERM"&&opts.hardlinkAsFilesFallback)return stream=xfs.createReadStream(srcpath),onfile();stat3(err2)})})})},onfile=function(){var ws=xfs.createWriteStream(name),rs=mapStream(stream,header);ws.on("error",function(err){rs.destroy(err)}),pump(rs,ws,function(err){if(err)return next(err);ws.on("close",stat3)})};if(header.type==="directory")return stack.push([name,header.mtime]),mkdirfix(name,{fs:xfs,own,uid:header.uid,gid:header.gid},stat3);var dir=path.dirname(name);validate(xfs,dir,path.join(cwd,"."),function(err,valid){if(err)return next(err);if(!valid)return next(new Error(dir+" is not a valid path"));mkdirfix(dir,{fs:xfs,own,uid:header.uid,gid:header.gid},function(err2){if(err2)return next(err2);switch(header.type){case"file":return onfile();case"link":return onlink();case"symlink":return onsymlink()}if(strict)return next(new Error("unsupported type for "+name+" ("+header.type+")"));stream.resume(),next()})})}),opts.finish&&extract.on("finish",opts.finish),extract};function validate(fs2,name,root,cb){if(name===root)return cb(null,!0);fs2.lstat(name,function(err,st){if(err&&err.code!=="ENOENT")return cb(err);if(err||st.isDirectory())return validate(fs2,path.join(name,".."),root,cb);cb(null,!1)})}function mkdirfix(name,opts,cb){mkdirp(name,{fs:opts.fs},function(err,made){!err&&made&&opts.own?chownr(made,opts.uid,opts.gid,cb):cb(err)})}}});var import_jaro_winkler=__toESM(require_jaro_winkler(),1),did_you_mean_default=didYouMean;function didYouMean(input,list,threshold=.5){let found=list.map(item=>[dashAwareDistance(input,item),item]).filter(item=>item[0]>threshold);if(found.length)return found.reduce((accu,curr)=>accu[0]>curr[0]?accu:curr)[1]}function dashAwareDistance(word,dashWord){let fullDistance=(0,import_jaro_winkler.default)(word,dashWord),distances=dashWord.split("-").map(w=>(0,import_jaro_winkler.default)(w,word)),meanDistance=distances.reduce((accu,curr)=>accu+curr)/distances.length;return fullDistance>meanDistance?fullDistance:meanDistance}function handleCommandTypo({command,availableCommands,threshold=.7,client}){if(!command||command.startsWith("-"))return!1;let visibleCommands=availableCommands.filter(command2=>!command2.hidden),commandNames=visibleCommands.flatMap(({name,aliases})=>[name,...aliases]),correction=suggestCorrection(command,commandNames),suggestion=correction??did_you_mean_default(command,commandNames,threshold);if(suggestion){if(client){let definition=visibleCommands.find(candidate=>candidate.name===correction||candidate.aliases.some(alias=>alias===correction)),corrected=correction?buildCorrectedCommand(client.argv,command,correction,getFlagsSpecification(definition?.options??[])):void 0,payload={status:"error",reason:"unknown_command",message:`Unknown command "${command}". Did you mean "${suggestion}"?`,hint:corrected?"Use the suggested command after replacing any placeholders with the intended values.":`Accepted commands: ${commandNames.join(", ")}.`,...corrected&&{next:[{command:corrected,when:"Run the corrected command; replace any placeholders first"}]}};return shouldEmitNonInteractiveCommandError(client)?writeAgentError(client,payload):(output_manager_default.fatal(payload.message),output_manager_default.print(` ${corrected??payload.hint}
8
- `)),!0}return output_manager_default.error(`${param(command)} is not a valid target directory or subcommand. Did you mean ${param(suggestion)}?`),!0}return!1}var import_semver=__toESM(require_semver(),1);import{spawn,execFile}from"child_process";function renderUpgradeProgress(current,total,phase){let bar=progress(current,total);output_manager_default.spinner(bar?`Upgrading Vercel CLI [${bar}] (${current}/${total})${phase?` ${phase}`:""}`:phase||"Upgrading Vercel CLI\u2026",0)}function execFileStdout(command,args,cwd,env=trustedUpgradeEnvironment){return new Promise((resolve3,reject)=>{execFile(command,args,{encoding:"utf8",windowsHide:!0,cwd,timeout:15e3,env},(error,stdout)=>{if(error){reject(error);return}resolve3(stdout.toString())})})}function parseVersionOutput(stdout){for(let line of[stdout.trim(),...stdout.trim().split(`
7
+ import{getUpdateCommandInfo,getUpgradePackageManager,isGlobal,trustedUpgradeDirectory,trustedUpgradeEnvironment}from"./chunk-JUSQYKFF.js";import{progress}from"./chunk-U56NHYAH.js";import{require_ci_info}from"./chunk-2EYYB6YN.js";import{require_semver}from"./chunk-BPUANOGW.js";import{require_chownr,require_mkdirp,require_pump,require_tar_stream}from"./chunk-3E364MJE.js";import{param}from"./chunk-3G3FQYMW.js";import{shouldEmitNonInteractiveCommandError,writeAgentError}from"./chunk-5RR3435W.js";import{require_strip_ansi}from"./chunk-BS32OUOC.js";import{writeToConfigFile}from"./chunk-DZ6GORJ7.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunk-YYPNUQDI.js";import{fetch,toNodeReadable}from"./chunk-MY4MONOH.js";import{buildCorrectedCommand,suggestCorrection}from"./chunk-R4VVQRLX.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import{require_lib}from"./chunk-MYMM34ZH.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import{pkg_default}from"./chunk-OO572JUC.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__commonJS,__require,__toESM}from"./chunk-BZENIQ7N.js";var require_jaro_winkler=__commonJS({"../../node_modules/.pnpm/jaro-winkler@0.2.8/node_modules/jaro-winkler/index.js"(exports,module){(function(root){"use strict";function extend(a,b){for(var property in b)b.hasOwnProperty(property)&&(a[property]=b[property]);return a}function distance2(s1,s2,options){var m=0,defaults={caseSensitive:!0},settings=extend(defaults,options),i,j;if(s1.length===0||s2.length===0)return 0;if(settings.caseSensitive||(s1=s1.toUpperCase(),s2=s2.toUpperCase()),s1===s2)return 1;var range=Math.floor(Math.max(s1.length,s2.length)/2)-1,s1Matches=new Array(s1.length),s2Matches=new Array(s2.length);for(i=0;i<s1.length;i++){var low=i>=range?i-range:0,high=i+range<=s2.length-1?i+range:s2.length-1;for(j=low;j<=high;j++)if(s1Matches[i]!==!0&&s2Matches[j]!==!0&&s1[i]===s2[j]){++m,s1Matches[i]=s2Matches[j]=!0;break}}if(m===0)return 0;var k=0,numTrans=0;for(i=0;i<s1.length;i++)if(s1Matches[i]===!0){for(j=k;j<s2.length;j++)if(s2Matches[j]===!0){k=j+1;break}s1[i]!==s2[j]&&++numTrans}var weight=(m/s1.length+m/s2.length+(m-numTrans/2)/m)/3,l=0,p=.1;if(weight>.7){for(;s1[l]===s2[l]&&l<4;)++l;weight=weight+l*p*(1-weight)}return weight}typeof define=="function"&&define.amd?define([],function(){return distance2}):typeof exports=="object"?module.exports=distance2:root.distance=distance2})(exports)}});var require_lib2=__commonJS({"../../node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js"(exports,module){"use strict";var os=__require("os"),paths=__require("path"),isWinOS=/^win/i.test(process.platform);function normalize_path(path){return paths.normalize(paths.join(path,"."))}var base=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TMPDIR||env.TEMP||env.TMP),object},windows=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.USERPROFILE||paths.join(env.HOMEDRIVE,env.HOMEPATH)||env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TEMP||env.TMP||paths.join(env.LOCALAPPDATA||env.SystemRoot||env.windir,"Temp")),object},_OSPaths=class __OSPaths{constructor(){let OSPaths=function(){return new __OSPaths};this._fn=OSPaths;let extension=isWinOS?windows():base();return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _OSPaths}});var require_lib3=__commonJS({"../../node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js"(exports,module){"use strict";var path=__require("path"),osPaths=require_lib2(),linux=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(osPaths.home()||osPaths.temp(),".cache"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(osPaths.home()||osPaths.temp(),".config"),object.data=()=>process.env.XDG_DATA_HOME||path.join(osPaths.home()||osPaths.temp(),".local","share"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(osPaths.home()||osPaths.temp(),".local","state"),object},macos=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Caches"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Preferences"),object.data=()=>process.env.XDG_DATA_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Application Support"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"State"),object},windows=()=>{let object={};return object.cache=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_CACHE_HOME||path.join(localAppData,"xdg.cache")},object.config=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_CONFIG_HOME||path.join(appData,"xdg.config")},object.data=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_DATA_HOME||path.join(appData,"xdg.data")},object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_STATE_HOME||path.join(localAppData,"xdg.state")},object},_XDGPortable=()=>{let XDGPortable=function(){return _XDGPortable()},extension={};return/^darwin$/i.test(process.platform)?extension=macos():/^win/i.test(process.platform)?extension=windows():extension=linux(),extension.configDirs=()=>{let dirs=[];return dirs.push(extension.config()),process.env.XDG_CONFIG_DIRS&&dirs.push(...process.env.XDG_CONFIG_DIRS.split(path.delimiter)),dirs},extension.dataDirs=()=>{let dirs=[];return dirs.push(extension.data()),process.env.XDG_DATA_DIRS&&dirs.push(...process.env.XDG_DATA_DIRS.split(path.delimiter)),dirs},Object.keys(extension).forEach(key=>{XDGPortable[key]=extension[key]}),XDGPortable};module.exports=_XDGPortable()}});var require_xdg_app_paths=__commonJS({"../../node_modules/.pnpm/xdg-app-paths@5.1.0/node_modules/xdg-app-paths/index.js"(exports,module){"use strict";var path=__require("path"),os=__require("os"),xdg=require_lib3(),isWinOS=/^win/i.test(process.platform);function _normalizeOptions(options,isolated){if(options=options||{},typeof options!="object"&&(options={isolated:options}),options.isolated=options.isolated===void 0||options.isolated===null?isolated:options.isolated,typeof options.isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof options.isolated}`);return options}var base=(name,isolated)=>{let object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.cache(),options.isolated?name:"")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.config(),options.isolated?name:"")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.data(),options.isolated?name:"")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.state(),options.isolated?name:"")),object.configDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.configDirs().map(s=>path.join(s,options.isolated?name:""))),object.dataDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.dataDirs().map(s=>path.join(s,options.isolated?name:""))),object},windows=(name,isolated)=>{let{env}=process,homedir=os.homedir(),tmpdir2=os.tmpdir(),appData=env.APPDATA||path.join(homedir||tmpdir2,"AppData","Roaming"),localAppData=env.LOCALAPPDATA||path.join(homedir||tmpdir2,"AppData","Local"),object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CACHE_HOME?path.join(xdg.cache(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","Cache")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CONFIG_HOME?path.join(xdg.config(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Config")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_DATA_HOME?path.join(xdg.data(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Data")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_STATE_HOME?path.join(xdg.state(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","State")),object.configDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.config(options)];return env.XDG_CONFIG_DIRS&&dirs.push(...env.XDG_CONFIG_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object.dataDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.data(options)];return env.XDG_DATA_DIRS&&dirs.push(...env.XDG_DATA_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object},_XDGAppPaths=class __XDGAppPaths{constructor(options={name:null,suffix:null,isolated:!0}){let XDGAppPaths2=function(options2={name:null,suffix:null,isolated:!0}){return new __XDGAppPaths(options2)};this._fn=XDGAppPaths2,options=options||{},typeof options!="object"&&(options={name:options});let name=options.name||"";if(typeof name!="string")throw new TypeError(`Expected string for "name" argument, got ${typeof name}`);let suffix=options.suffix||"";if(typeof suffix!="string")throw new TypeError(`Expected string for "suffix" argument, got ${typeof suffix}`);let isolated=options.isolated===void 0||options.isolated===null?!0:options.isolated;if(typeof isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof isolated}`);name||(name=path.parse(process.pkg?process.execPath:__require.main?__require.main.filename:process.argv[0]).name),suffix&&(name+=suffix),this._fn.$name=()=>name,this._fn.$isolated=()=>isolated;let extension=isWinOS?windows(name,isolated):base(name,isolated);return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _XDGAppPaths}});var require_tar_fs=__commonJS({"../../node_modules/.pnpm/tar-fs@1.16.5/node_modules/tar-fs/index.js"(exports){var chownr=require_chownr(),tar2=require_tar_stream(),pump=require_pump(),mkdirp=require_mkdirp(),fs=__require("fs"),path=__require("path"),os=__require("os"),win32=os.platform()==="win32",noop=function(){},echo=function(name){return name},normalize=win32?function(name){return name.replace(/\\/g,"/").replace(/[:?<>|]/g,"_")}:echo,statAll=function(fs2,stat3,cwd,ignore,entries,sort){var queue=entries||["."];return function(callback){if(!queue.length)return callback();var next=queue.shift(),nextAbs=path.join(cwd,next);stat3(nextAbs,function(err,stat4){if(err)return callback(err);if(!stat4.isDirectory())return callback(null,next,stat4);fs2.readdir(nextAbs,function(err2,files){if(err2)return callback(err2);sort&&files.sort();for(var i=0;i<files.length;i++)ignore(path.join(cwd,next,files[i]))||queue.push(path.join(next,files[i]));callback(null,next,stat4)})})}},strip=function(map,level){return function(header){header.name=header.name.split("/").slice(level).join("/");var linkname=header.linkname;return linkname&&(header.type==="link"||path.isAbsolute(linkname))&&(header.linkname=linkname.split("/").slice(level).join("/")),map(header)}};exports.pack=function(cwd,opts){cwd||(cwd="."),opts||(opts={});var xfs=opts.fs||fs,ignore=opts.ignore||opts.filter||noop,map=opts.map||noop,mapStream=opts.mapStream||echo,statNext=statAll(xfs,opts.dereference?xfs.stat:xfs.lstat,cwd,ignore,opts.entries,opts.sort),strict=opts.strict!==!1,umask=typeof opts.umask=="number"?~opts.umask:~processUmask(),dmode=typeof opts.dmode=="number"?opts.dmode:0,fmode=typeof opts.fmode=="number"?opts.fmode:0,pack=opts.pack||tar2.pack(),finish=opts.finish||noop;opts.strip&&(map=strip(map,opts.strip)),opts.readable&&(dmode|=parseInt(555,8),fmode|=parseInt(444,8)),opts.writable&&(dmode|=parseInt(333,8),fmode|=parseInt(222,8));var onsymlink=function(filename,header){xfs.readlink(path.join(cwd,filename),function(err,linkname){if(err)return pack.destroy(err);header.linkname=normalize(linkname),pack.entry(header,onnextentry)})},onstat=function(err,filename,stat3){if(err)return pack.destroy(err);if(!filename)return opts.finalize!==!1&&pack.finalize(),finish(pack);if(stat3.isSocket())return onnextentry();var header={name:normalize(filename),mode:(stat3.mode|(stat3.isDirectory()?dmode:fmode))&umask,mtime:stat3.mtime,size:stat3.size,type:"file",uid:stat3.uid,gid:stat3.gid};if(stat3.isDirectory())return header.size=0,header.type="directory",header=map(header)||header,pack.entry(header,onnextentry);if(stat3.isSymbolicLink())return header.size=0,header.type="symlink",header=map(header)||header,onsymlink(filename,header);if(header=map(header)||header,!stat3.isFile())return strict?pack.destroy(new Error("unsupported type for "+filename)):onnextentry();var entry=pack.entry(header,onnextentry);if(entry){var rs=mapStream(xfs.createReadStream(path.join(cwd,filename)),header);rs.on("error",function(err2){entry.destroy(err2)}),pump(rs,entry)}},onnextentry=function(err){if(err)return pack.destroy(err);statNext(onstat)};return onnextentry(),pack};var head=function(list){return list.length?list[list.length-1]:null},processGetuid=function(){return process.getuid?process.getuid():-1},processUmask=function(){return process.umask?process.umask():0};exports.extract=function(cwd,opts){cwd||(cwd="."),opts||(opts={});var xfs=opts.fs||fs,ignore=opts.ignore||opts.filter||noop,map=opts.map||noop,mapStream=opts.mapStream||echo,own=opts.chown!==!1&&!win32&&processGetuid()===0,extract=opts.extract||tar2.extract(),stack=[],now=new Date,umask=typeof opts.umask=="number"?~opts.umask:~processUmask(),dmode=typeof opts.dmode=="number"?opts.dmode:0,fmode=typeof opts.fmode=="number"?opts.fmode:0,strict=opts.strict!==!1;opts.strip&&(map=strip(map,opts.strip)),opts.readable&&(dmode|=parseInt(555,8),fmode|=parseInt(444,8)),opts.writable&&(dmode|=parseInt(333,8),fmode|=parseInt(222,8));var utimesParent=function(name,cb){for(var top;(top=head(stack))&&name.slice(0,top[0].length)!==top[0];)stack.pop();if(!top)return cb();xfs.utimes(top[0],now,top[1],cb)},utimes=function(name,header,cb){if(opts.utimes===!1)return cb();if(header.type==="directory")return xfs.utimes(name,now,header.mtime,cb);if(header.type==="symlink")return utimesParent(name,cb);xfs.utimes(name,now,header.mtime,function(err){if(err)return cb(err);utimesParent(name,cb)})},chperm=function(name,header,cb){var link2=header.type==="symlink",chmod2=link2?xfs.lchmod:xfs.chmod,chown=link2?xfs.lchown:xfs.chown;if(!chmod2)return cb();var mode=(header.mode|(header.type==="directory"?dmode:fmode))&umask;chmod2(name,mode,function(err){if(err)return cb(err);if(!own||!chown)return cb();chown(name,header.uid,header.gid,cb)})};return extract.on("entry",function(header,stream,next){header=map(header)||header,header.name=normalize(header.name);var name=path.join(cwd,path.join("/",header.name));if(ignore(name,header))return stream.resume(),next();var stat3=function(err){if(err)return next(err);utimes(name,header,function(err2){if(err2)return next(err2);if(win32)return next();chperm(name,header,next)})},onsymlink=function(){if(win32)return next();xfs.unlink(name,function(){var dst=path.resolve(path.dirname(name),header.linkname);if(!dst.startsWith(path.resolve(cwd)))return next(new Error(name+" is not a valid symlink"));xfs.symlink(header.linkname,name,stat3)})},onlink=function(){if(win32)return next();xfs.unlink(name,function(){var srcpath=path.join(cwd,path.join("/",header.linkname));xfs.realpath(srcpath,function(err,dst){if(err||!dst.startsWith(path.resolve(cwd)))return next(new Error(name+" is not a valid hardlink"));xfs.link(dst,name,function(err2){if(err2&&err2.code==="EPERM"&&opts.hardlinkAsFilesFallback)return stream=xfs.createReadStream(srcpath),onfile();stat3(err2)})})})},onfile=function(){var ws=xfs.createWriteStream(name),rs=mapStream(stream,header);ws.on("error",function(err){rs.destroy(err)}),pump(rs,ws,function(err){if(err)return next(err);ws.on("close",stat3)})};if(header.type==="directory")return stack.push([name,header.mtime]),mkdirfix(name,{fs:xfs,own,uid:header.uid,gid:header.gid},stat3);var dir=path.dirname(name);validate(xfs,dir,path.join(cwd,"."),function(err,valid){if(err)return next(err);if(!valid)return next(new Error(dir+" is not a valid path"));mkdirfix(dir,{fs:xfs,own,uid:header.uid,gid:header.gid},function(err2){if(err2)return next(err2);switch(header.type){case"file":return onfile();case"link":return onlink();case"symlink":return onsymlink()}if(strict)return next(new Error("unsupported type for "+name+" ("+header.type+")"));stream.resume(),next()})})}),opts.finish&&extract.on("finish",opts.finish),extract};function validate(fs2,name,root,cb){if(name===root)return cb(null,!0);fs2.lstat(name,function(err,st){if(err&&err.code!=="ENOENT")return cb(err);if(err||st.isDirectory())return validate(fs2,path.join(name,".."),root,cb);cb(null,!1)})}function mkdirfix(name,opts,cb){mkdirp(name,{fs:opts.fs},function(err,made){!err&&made&&opts.own?chownr(made,opts.uid,opts.gid,cb):cb(err)})}}});var import_jaro_winkler=__toESM(require_jaro_winkler(),1),did_you_mean_default=didYouMean;function didYouMean(input,list,threshold=.5){let found=list.map(item=>[dashAwareDistance(input,item),item]).filter(item=>item[0]>threshold);if(found.length)return found.reduce((accu,curr)=>accu[0]>curr[0]?accu:curr)[1]}function dashAwareDistance(word,dashWord){let fullDistance=(0,import_jaro_winkler.default)(word,dashWord),distances=dashWord.split("-").map(w=>(0,import_jaro_winkler.default)(w,word)),meanDistance=distances.reduce((accu,curr)=>accu+curr)/distances.length;return fullDistance>meanDistance?fullDistance:meanDistance}function handleCommandTypo({command,availableCommands,threshold=.7,client}){if(!command||command.startsWith("-"))return!1;let visibleCommands=availableCommands.filter(command2=>!command2.hidden),commandNames=visibleCommands.flatMap(({name,aliases})=>[name,...aliases]),correction=suggestCorrection(command,commandNames),suggestion=correction??did_you_mean_default(command,commandNames,threshold);if(suggestion){if(client){let definition=visibleCommands.find(candidate=>candidate.name===correction||candidate.aliases.some(alias=>alias===correction)),corrected=correction?buildCorrectedCommand(client.argv,command,correction,getFlagsSpecification(definition?.options??[])):void 0,payload={status:"error",reason:"unknown_command",message:`Unknown command "${command}". Did you mean "${suggestion}"?`,hint:corrected?"Use the suggested command after replacing any placeholders with the intended values.":`Accepted commands: ${commandNames.join(", ")}.`,...corrected&&{next:[{command:corrected,when:"Run the corrected command; replace any placeholders first"}]}};return shouldEmitNonInteractiveCommandError(client)?writeAgentError(client,payload):(output_manager_default.fatal(payload.message),output_manager_default.print(` ${corrected??payload.hint}
8
+ `)),!0}return output_manager_default.error(`${param(command)} is not a valid target directory or subcommand. Did you mean ${param(suggestion)}?`),!0}return!1}var import_semver=__toESM(require_semver(),1);import{spawn,execFile}from"child_process";function renderUpgradeProgress(current,total,phase){let bar=progress(current,total);output_manager_default.spinner(bar?`Upgrading Vercel CLI [${bar}] (${current}/${total})${phase?` ${phase}`:""}`:phase||"Upgrading Vercel CLI\u2026",0)}function execFileStdout(command,args,cwd,env=trustedUpgradeEnvironment){return new Promise((resolve3,reject)=>{execFile(command,args,{encoding:"utf8",windowsHide:!0,cwd,timeout:15e3,env:{...env}},(error,stdout)=>{if(error){reject(error);return}resolve3(stdout.toString())})})}function parseVersionOutput(stdout){for(let line of[stdout.trim(),...stdout.trim().split(`
9
9
  `).reverse()])try{let value=JSON.parse(line),parsed=Array.isArray(value)&&value.length===1?value[0]:value,version=typeof parsed=="string"?parsed:typeof parsed?.data=="string"?parsed.data:void 0;if(version&&import_semver.default.valid(version))return version}catch{let version=line.trim();if(import_semver.default.valid(version))return version}}async function getLatestPackageVersion(packageManager,installArgs,cwd,global,env,bypassMinReleaseAge=!0){let packageSpecifier=installArgs.find(arg=>arg.endsWith("@latest"));if(!packageSpecifier)return;let manager=getUpgradePackageManager(packageManager),queryArgs=[...manager.metadataArgs(packageSpecifier),...bypassMinReleaseAge?manager.releaseAgeBypassArgs:[]];try{let stdout=await execFileStdout(packageManager,queryArgs,cwd,env);return parseVersionOutput(stdout)}catch(error){output_manager_default.debug(`Failed to resolve the latest Vercel CLI version: ${error instanceof Error?error.message:String(error)}`);return}}async function getInstalledPackageVersion(packageManager,installArgs,cwd,global){let packageSpecifier=installArgs.find(arg=>arg.endsWith("@latest"));if(!packageSpecifier)return;let packageName=packageSpecifier.slice(0,-7);try{let stdout=await execFileStdout(packageManager,["list",packageName,"--depth=0","--json",...global?["--global"]:[]],cwd),parsed=JSON.parse(stdout),projects=Array.isArray(parsed)?parsed:[parsed];for(let project of projects){let version=project?.dependencies?.[packageName]?.version??project?.devDependencies?.[packageName]?.version??project?.optionalDependencies?.[packageName]?.version;if(typeof version=="string"&&import_semver.default.valid(version))return version}}catch(error){output_manager_default.debug(`Failed to read the installed Vercel CLI version: ${error instanceof Error?error.message:String(error)}`)}}function isVersionCurrent(current,latest){return import_semver.default.valid(current)&&import_semver.default.valid(latest)?import_semver.default.gte(current,latest):current===latest}function pinPackageVersion(args,version){return args.map(arg=>arg.endsWith("@latest")?`${arg.slice(0,-6)}${version}`:arg)}async function getMinReleaseAgeContext(packageManager,cwd,global){let setting=packageManager==="pnpm"?"minimumReleaseAge":"min-release-age";try{let raw=(await execFileStdout(packageManager,["config","get",setting,"--json",...global?["--global"]:[]],cwd)).trim(),value=raw===""||raw==="undefined"?void 0:JSON.parse(raw);if(!(value==null||value===""||value==="undefined")){let age=typeof value=="number"||typeof value=="string"&&value.trim()!==""?Number(value):NaN;if(!Number.isFinite(age)||age<0)return`Could not determine ${packageManager}'s configured minimum release age.`;let minutes=packageManager==="pnpm"?age:age*1440,duration=minutes>0&&minutes%60===0?`${minutes/60} ${minutes===60?"hour":"hours"}`:`${minutes} ${minutes===1?"minute":"minutes"}`;return`${packageManager} ${setting} is configured to ${duration}.`}if(packageManager==="pnpm"){let version=parseVersionOutput(await execFileStdout(packageManager,["--version"],cwd));if(version&&!import_semver.default.prerelease(version)&&import_semver.default.gte(version,"11.0.0"))return`pnpm ${version} defaults to a minimum release age of 24 hours (1440 minutes); no explicit minimumReleaseAge setting was reported.`}return`${packageManager} did not report a configured minimum release age.`}catch{return`Could not determine ${packageManager}'s configured minimum release age.`}}function isMinReleaseAgeError(packageManager,stdout,stderr){let installerOutput=`${stdout}
10
- ${stderr}`;return packageManager==="pnpm"?installerOutput.includes("ERR_PNPM_NO_MATURE_MATCHING_VERSION")||installerOutput.includes("ERR_PNPM_NO_MATCHING_VERSION")&&installerOutput.includes("satisfies the specs but was released at"):packageManager==="npm"?/\bETARGET\b/.test(installerOutput)&&installerOutput.includes("with a date before")||/min-release-age cannot be provided/i.test(installerOutput):!1}function setMinReleaseAgeBypass(client,enabled){client.config={...client.config,updates:{...client.config.updates,bypassMinReleaseAge:enabled}},writeToConfigFile(client.config)}function executeAutomaticUpgrade(client,env=trustedUpgradeEnvironment){return executeUpgrade("latest",client,!1,!0,env,"package-manager")}async function executeUpgrade(targetVersion,client,bypassMinReleaseAge=!1,explicitTarget=!1,env=trustedUpgradeEnvironment,releaseAgePolicy="newest"){let totalSteps=targetVersion?2:3;renderUpgradeProgress(0,totalSteps,"Resolving installer\u2026");let{command:updateCommand,global,packageManager}=await getUpdateCommandInfo(env).catch(error=>{throw output_manager_default.stopSpinner(),error}),[command,...args]=updateCommand.split(" "),cwd=global?trustedUpgradeDirectory:process.cwd(),bypassArgs=getUpgradePackageManager(packageManager).releaseAgeBypassArgs;if(bypassMinReleaseAge&&bypassArgs.length===0)return output_manager_default.stopSpinner(),output_manager_default.error(`Minimum release-age bypass is not supported for ${packageManager}. Run the upgrade without --bypass-min-release-age, or configure release-age settings in ${packageManager} directly.`),1;bypassMinReleaseAge&&client&&client.config.updates?.bypassMinReleaseAge!==!0&&setMinReleaseAgeBypass(client,!0);let versionBefore=pkg_default.version,installLatestTag=explicitTarget&&targetVersion==="latest",resolvedTargetVersion=installLatestTag?void 0:targetVersion;if(targetVersion||(renderUpgradeProgress(1,totalSteps,"Checking for updates\u2026"),resolvedTargetVersion=await getLatestPackageVersion(packageManager,args,cwd,global,env,releaseAgePolicy==="newest")),!resolvedTargetVersion&&!installLatestTag)return output_manager_default.stopSpinner(),output_manager_default.error("Failed to resolve the latest Vercel CLI version."),1;if(!explicitTarget&&resolvedTargetVersion&&isVersionCurrent(versionBefore,resolvedTargetVersion))return renderUpgradeProgress(totalSteps,totalSteps),output_manager_default.stopSpinner(),output_manager_default.log(`No upgrade available. Vercel CLI is already up to date (v${versionBefore}).`),0;let installArgs=resolvedTargetVersion?pinPackageVersion(args,resolvedTargetVersion):args,shouldBypass=releaseAgePolicy==="newest"&&bypassArgs.length>0&&(bypassMinReleaseAge||client?.config.updates?.bypassMinReleaseAge===!0);shouldBypass&&(installArgs=[...installArgs,...bypassArgs]);let runInstall=currentArgs=>{let installCommand=[command,...currentArgs].join(" ");return output_manager_default.debug(`Executing: ${installCommand} (cwd: ${cwd})`),new Promise(resolve3=>{let stdout=[],stderr=[],upgradeProcess=spawn(command,currentArgs,{cwd,env,stdio:["inherit","pipe","pipe"],shell:!1});upgradeProcess.stdout?.on("data",data=>{stdout.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stdout] ${data.toString().trimEnd()}`)}),upgradeProcess.stderr?.on("data",data=>{stderr.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stderr] ${data.toString().trimEnd()}`)});let settled=!1;upgradeProcess.on("error",spawnError=>{settled||(settled=!0,resolve3({code:1,stdout:"",stderr:"",spawnError}))}),upgradeProcess.on("close",code=>{settled||(settled=!0,resolve3({code:code??1,stdout:Buffer.concat(stdout).toString(),stderr:Buffer.concat(stderr).toString()}))})})};renderUpgradeProgress(targetVersion?1:2,totalSteps,"Installing\u2026");let result=await runInstall(installArgs),usedAllowedRelease=!1;if(result.code!==0&&!result.spawnError&&releaseAgePolicy==="newest"&&!shouldBypass&&bypassArgs.length>0&&isMinReleaseAgeError(packageManager,result.stdout,result.stderr)){let context=await getMinReleaseAgeContext(packageManager,cwd,global);output_manager_default.stopSpinner();let blockedMessage=`The package manager blocked this Vercel CLI release because of its minimum release-age setting. ${context}`;if(!client||client.nonInteractive||!client.stdin.isTTY)return output_manager_default.error(`${blockedMessage}
10
+ ${stderr}`;return packageManager==="pnpm"?installerOutput.includes("ERR_PNPM_NO_MATURE_MATCHING_VERSION")||installerOutput.includes("ERR_PNPM_NO_MATCHING_VERSION")&&installerOutput.includes("satisfies the specs but was released at"):packageManager==="npm"?/\bETARGET\b/.test(installerOutput)&&installerOutput.includes("with a date before")||/min-release-age cannot be provided/i.test(installerOutput):!1}function setMinReleaseAgeBypass(client,enabled){client.config={...client.config,updates:{...client.config.updates,bypassMinReleaseAge:enabled}},writeToConfigFile(client.config)}function executeAutomaticUpgrade(client,env=trustedUpgradeEnvironment){return executeUpgrade("latest",client,!1,!0,env,"package-manager")}async function executeUpgrade(targetVersion,client,bypassMinReleaseAge=!1,explicitTarget=!1,env=trustedUpgradeEnvironment,releaseAgePolicy="newest"){let totalSteps=targetVersion?2:3;renderUpgradeProgress(0,totalSteps,"Resolving installer\u2026");let{command:updateCommand,global,packageManager}=await getUpdateCommandInfo(env).catch(error=>{throw output_manager_default.stopSpinner(),error}),[command,...args]=updateCommand.split(" "),cwd=global?trustedUpgradeDirectory:process.cwd(),bypassArgs=getUpgradePackageManager(packageManager).releaseAgeBypassArgs;if(bypassMinReleaseAge&&bypassArgs.length===0)return output_manager_default.stopSpinner(),output_manager_default.error(`Minimum release-age bypass is not supported for ${packageManager}. Run the upgrade without --bypass-min-release-age, or configure release-age settings in ${packageManager} directly.`),1;bypassMinReleaseAge&&client&&client.config.updates?.bypassMinReleaseAge!==!0&&setMinReleaseAgeBypass(client,!0);let versionBefore=pkg_default.version,installLatestTag=explicitTarget&&targetVersion==="latest",resolvedTargetVersion=installLatestTag?void 0:targetVersion;if(targetVersion||(renderUpgradeProgress(1,totalSteps,"Checking for updates\u2026"),resolvedTargetVersion=await getLatestPackageVersion(packageManager,args,cwd,global,env,releaseAgePolicy==="newest")),!resolvedTargetVersion&&!installLatestTag)return output_manager_default.stopSpinner(),output_manager_default.error("Failed to resolve the latest Vercel CLI version."),1;if(!explicitTarget&&resolvedTargetVersion&&isVersionCurrent(versionBefore,resolvedTargetVersion))return renderUpgradeProgress(totalSteps,totalSteps),output_manager_default.stopSpinner(),output_manager_default.log(`No upgrade available. Vercel CLI is already up to date (v${versionBefore}).`),0;let installArgs=resolvedTargetVersion?pinPackageVersion(args,resolvedTargetVersion):args,shouldBypass=releaseAgePolicy==="newest"&&bypassArgs.length>0&&(bypassMinReleaseAge||client?.config.updates?.bypassMinReleaseAge===!0);shouldBypass&&(installArgs=[...installArgs,...bypassArgs]);let runInstall=currentArgs=>{let installCommand=[command,...currentArgs].join(" ");return output_manager_default.debug(`Executing: ${installCommand} (cwd: ${cwd})`),new Promise(resolve3=>{let stdout=[],stderr=[],upgradeProcess=spawn(command,currentArgs,{cwd,env:{...env},stdio:["inherit","pipe","pipe"],shell:!1});upgradeProcess.stdout?.on("data",data=>{stdout.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stdout] ${data.toString().trimEnd()}`)}),upgradeProcess.stderr?.on("data",data=>{stderr.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stderr] ${data.toString().trimEnd()}`)});let settled=!1;upgradeProcess.on("error",spawnError=>{settled||(settled=!0,resolve3({code:1,stdout:"",stderr:"",spawnError}))}),upgradeProcess.on("close",code=>{settled||(settled=!0,resolve3({code:code??1,stdout:Buffer.concat(stdout).toString(),stderr:Buffer.concat(stderr).toString()}))})})};renderUpgradeProgress(targetVersion?1:2,totalSteps,"Installing\u2026");let result=await runInstall(installArgs),usedAllowedRelease=!1;if(result.code!==0&&!result.spawnError&&releaseAgePolicy==="newest"&&!shouldBypass&&bypassArgs.length>0&&isMinReleaseAgeError(packageManager,result.stdout,result.stderr)){let context=await getMinReleaseAgeContext(packageManager,cwd,global);output_manager_default.stopSpinner();let blockedMessage=`The package manager blocked this Vercel CLI release because of its minimum release-age setting. ${context}`;if(!client||client.nonInteractive||!client.stdin.isTTY)return output_manager_default.error(`${blockedMessage}
11
11
  To install the newest release allowed by your settings:
12
12
  vc upgrade latest
13
13
  To bypass the minimum release age for this and future foreground upgrades:
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{isNativeBinaryInstall}from"./chunk-YYPNUQDI.js";import{require_lib}from"./chunk-MYMM34ZH.js";import{packageName}from"./chunk-JESNVRVR.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_fs_extra=__toESM(require_lib(),1);import{join as join2,sep}from"path";import{execFile}from"child_process";import{tmpdir}from"node:os";import{resolve}from"node:path";var trustedUpgradeEnvironment=Object.freeze({...process.env}),trustedUpgradeDirectory=resolve(tmpdir());import{join}from"path";var packageManagers={npm:{metadataArgs:specifier=>["view",specifier,"version","--json","--global"],installArgs:specifier=>["i","-g",specifier],releaseAgeBypassArgs:["--min-release-age=0"],globalDetection:{args:["root","-g"],packageDir:(root,pkg)=>join(root,pkg)}},pnpm:{metadataArgs:specifier=>["view",specifier,"version","--json"],installArgs:specifier=>["i","-g",specifier],releaseAgeBypassArgs:["--config.minimumReleaseAge=0"],globalDetection:{args:pkg=>["list","-g",pkg,"--depth=0","--json"],packageDir:(output,pkg)=>{try{let projects=JSON.parse(output),path=(Array.isArray(projects)?projects[0]:projects)?.dependencies?.[pkg]?.path;return typeof path=="string"?path:void 0}catch{return}}}},yarn:{metadataArgs:specifier=>["info",specifier.endsWith("@latest")?specifier.slice(0,-7):specifier,"version","--json"],installArgs:specifier=>["global","add",specifier],releaseAgeBypassArgs:[],globalDetection:{args:["--silent","global","dir"],packageDir:(root,pkg)=>join(root,"node_modules",pkg)}},bun:{metadataArgs:specifier=>["info",specifier,"version","--json","--global"],installArgs:specifier=>["add","-g",specifier],releaseAgeBypassArgs:[],globalDetection:{args:["pm","bin","-g"],binaryNames:["vercel","vc"]}}};function getUpgradePackageManager(name){return packageManagers[name]}var UnsupportedUpgradeInstallError=class extends Error{},globalCliTypes=["npm","pnpm","yarn","bun"];function throwIfAborted(signal){if(signal?.aborted)throw signal.reason instanceof Error?signal.reason:new Error("Package manager detection was aborted")}async function getPackageManagerGlobalRoot(cliType,pkg,env=trustedUpgradeEnvironment,signal){try{let detectionArgs=getUpgradePackageManager(cliType).globalDetection.args;return(await new Promise((resolve2,reject)=>{execFile(cliType,typeof detectionArgs=="function"?detectionArgs(pkg):detectionArgs,{encoding:"utf8",windowsHide:!0,cwd:trustedUpgradeDirectory,timeout:15e3,env:{...env},signal},(error,stdout2)=>{error?reject(error):resolve2(stdout2)})})).trim()||null}catch{return throwIfAborted(signal),null}}async function detectGlobalPackageManager(installPath,pkg,cliTypes=globalCliTypes,env=trustedUpgradeEnvironment,signal){for(let cliType of cliTypes){throwIfAborted(signal);let root=await getPackageManagerGlobalRoot(cliType,pkg,env,signal);if(!root)continue;let detection=getUpgradePackageManager(cliType).globalDetection;if(detection.packageDir)try{let packageDir=detection.packageDir(root,pkg);if(!packageDir)continue;let resolvedPackageDir=await(0,import_fs_extra.realpath)(packageDir);if(installPath===resolvedPackageDir||installPath.startsWith(resolvedPackageDir+sep))return cliType}catch{}for(let binary of detection.binaryNames||[])try{let target=await(0,import_fs_extra.realpath)(join2(root,binary));if(target===installPath||target.startsWith(installPath+sep)||installPath.startsWith(target+sep))return cliType;let entrypoint=await(0,import_fs_extra.realpath)(process.argv[1]);if(!isNativeBinaryInstall()&&target===entrypoint)return cliType}catch{}}return null}async function resolveInstall(env=trustedUpgradeEnvironment,signal){throwIfAborted(signal);let nativeExecutable=isNativeBinaryInstall()&&env.VERCEL_CLI_PACKAGE_EXECUTABLE,resolvedNativeExecutable=nativeExecutable&&await(0,import_fs_extra.realpath)(nativeExecutable).catch(()=>null),entrypoint=resolvedNativeExecutable&&resolvedNativeExecutable===await(0,import_fs_extra.realpath)(process.execPath).catch(()=>null)?env.VERCEL_CLI_PACKAGE_ENTRYPOINT:process.argv[1],installPath=entrypoint&&await(0,import_fs_extra.realpath)(entrypoint).catch(()=>null);if(!installPath)throw new UnsupportedUpgradeInstallError("Could not resolve this Vercel CLI installation. Update it with the package manager that installed it.");let packageManager=await detectGlobalPackageManager(installPath,packageName,globalCliTypes,env,signal);if(!packageManager)throw new UnsupportedUpgradeInstallError("Could not detect a supported global npm, pnpm, Yarn, or Bun installation of Vercel CLI. Update it with the package manager that installed it.");return{packageManager,global:!0,assumed:!1}}async function isGlobal(){try{return await resolveInstall(),!0}catch{return!1}}async function getUpdateCommandInfo(env=trustedUpgradeEnvironment,signal){let{packageManager}=await resolveInstall(env,signal),args=getUpgradePackageManager(packageManager).installArgs(`${packageName}@latest`),allowBuild=pnpmAllowBuildFlag(packageManager,"esbuild");return{command:`${packageManager} ${args.join(" ")}${allowBuild}`,global:!0,packageManager,assumed:!1}}function pnpmAllowBuildFlag(cliType,pkg){return cliType==="pnpm"?` --allow-build=${pkg}`:""}async function getUpdateCommand(){return(await getUpdateCommandInfo()).command}export{trustedUpgradeEnvironment,trustedUpgradeDirectory,getUpgradePackageManager,isGlobal,getUpdateCommandInfo,getUpdateCommand};
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{getSubcommand}from"./chunk-ETV3C2CV.js";import{PERMISSIONS_ACTIONS,permissionsClearSubcommand,permissionsLsSubcommand}from"./chunk-AU42HSQ3.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-VOZEB6PD.js";import"./chunk-AZULOP7M.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var USAGE="vcr permissions <repository> <ls|add|rm|clear>",ROUTING_OPTIONS=[...permissionsLsSubcommand.options,...permissionsClearSubcommand.options];async function permissions(client,argv,telemetry){let positionals;try{positionals=parseArguments(argv,getFlagsSpecification(ROUTING_OPTIONS),{permissive:!0}).args}catch{positionals=argv.filter(arg=>!arg.startsWith("-"))}let repository=positionals[0],{subcommand}=getSubcommand(positionals.slice(1),PERMISSIONS_ACTIONS);if(!repository||subcommand==null){let message=repository?positionals.length<2?`Please specify an action. Usage: \`vercel ${USAGE}\`.`:`Unknown "vcr permissions" action "${positionals[1]}". Usage: \`vercel ${USAGE}\`.`:`Missing repository. Usage: \`vercel ${USAGE}\`.`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr permissions --help"),when:"Show valid permissions actions"}]},2),output_manager_default.error(`${message} Run \`vercel vcr permissions --help\`.`),2}switch(subcommand){case"ls":return(await import("./ls-G5NTVYUB.js")).default(client,argv,telemetry);case"add":return(await import("./add-ZLY3DE35.js")).default(client,argv,telemetry);case"rm":return(await import("./rm-ARMNSPGQ.js")).default(client,argv,telemetry);case"clear":return(await import("./clear-PYDGQBSS.js")).default(client,argv,telemetry);default:return output_manager_default.error(`Unhandled permissions action: ${subcommand}`),1}}export{permissions as default};
7
+ import{getSubcommand}from"./chunk-ETV3C2CV.js";import{PERMISSIONS_ACTIONS,permissionsClearSubcommand,permissionsLsSubcommand}from"./chunk-AU42HSQ3.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-VOZEB6PD.js";import"./chunk-AZULOP7M.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var USAGE="vcr permissions <repository> <ls|add|rm|clear>",ROUTING_OPTIONS=[...permissionsLsSubcommand.options,...permissionsClearSubcommand.options];async function permissions(client,argv,telemetry){let positionals;try{positionals=parseArguments(argv,getFlagsSpecification(ROUTING_OPTIONS),{permissive:!0}).args}catch{positionals=argv.filter(arg=>!arg.startsWith("-"))}let repository=positionals[0],{subcommand}=getSubcommand(positionals.slice(1),PERMISSIONS_ACTIONS);if(!repository||subcommand==null){let message=repository?positionals.length<2?`Please specify an action. Usage: \`vercel ${USAGE}\`.`:`Unknown "vcr permissions" action "${positionals[1]}". Usage: \`vercel ${USAGE}\`.`:`Missing repository. Usage: \`vercel ${USAGE}\`.`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr permissions --help"),when:"Show valid permissions actions"}]},2),output_manager_default.error(`${message} Run \`vercel vcr permissions --help\`.`),2}switch(subcommand){case"ls":return(await import("./ls-G5NTVYUB.js")).default(client,argv,telemetry);case"add":return(await import("./add-QBGY56BR.js")).default(client,argv,telemetry);case"rm":return(await import("./rm-LL2AWOZT.js")).default(client,argv,telemetry);case"clear":return(await import("./clear-PYDGQBSS.js")).default(client,argv,telemetry);default:return output_manager_default.error(`Unhandled permissions action: ${subcommand}`),1}}export{permissions as default};
@@ -4,5 +4,5 @@ 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{parseTeamRefs,teamRefBody}from"./chunk-LSF7FY6X.js";import{repositoryPermissionsPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-B3PZ3I4Z.js";import{require_async_sema}from"./chunk-NZ2TFADV.js";import{outputError}from"./chunk-WH3SHWVK.js";import"./chunk-GSOPJJO5.js";import{permissionsRmSubcommand}from"./chunk-AU42HSQ3.js";import"./chunk-FBYA6LLM.js";import"./chunk-SCV7XEEO.js";import{printError}from"./chunk-V336CYEI.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import"./chunk-D4MW3RDW.js";import"./chunk-DZ6GORJ7.js";import"./chunk-HMS3UIQ2.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-VKXEOL4K.js";import"./chunk-4SAVH3H7.js";import"./chunk-ZS2WS4AM.js";import"./chunk-AOWWC6WZ.js";import"./chunk-MY4MONOH.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-MYMM34ZH.js";import"./chunk-ROPQIBWJ.js";import"./chunk-VKPZP4LC.js";import"./chunk-PPCFQQSU.js";import"./chunk-N7Q2IESO.js";import"./chunk-VSE5BAPP.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-AZULOP7M.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_async_sema=__toESM(require_async_sema(),1);var USAGE="vcr permissions <repository> rm <team>[,<team>...]";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],teamRefs=parseTeamRefs(parsedArgs.args.slice(2)),project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),teamRefs.length===0)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing team. Example: ${packageName} vcr permissions ${repository} rm team_1a2b3c4d`,next:[{command:buildCommandWithGlobalFlags(client.argv,`vcr permissions ${repository} ls`),when:"List teams with access to pick one to remove"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",`Usage: \`vercel ${USAGE}\``);let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPermissionsPath(scope,repository),removed=[],failed=[];output_manager_default.spinner(`Removing access to ${repository} for ${teamRefs.length===1?teamRefs[0]:`${teamRefs.length} teams`}...`);let sema=new import_async_sema.default(10),results;try{results=await Promise.all(teamRefs.map(async team=>{await sema.acquire();try{return await client.fetch(path,{method:"DELETE",body:teamRefBody(team)}),{ok:!0,team}}catch(err){if(!isAPIError(err))throw err;let message=err.serverMessage||`API error (${err.status}).`;return{ok:!1,team,failure:{team,code:err.code||"API_ERROR",message}}}finally{sema.release()}}))}finally{output_manager_default.stopSpinner()}for(let result of results)result.ok?(removed.push(result.team),fr.jsonOutput||output_manager_default.success(`Removed access to ${repository} for ${result.team}`)):(failed.push(result.failure),fr.jsonOutput||output_manager_default.error(`Failed to remove access to ${repository} for ${result.team}: ${result.failure.message}`));return failed.length>0&&outputAgentError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:`Failed to remove access to ${repository} for ${failed.map(f=>`${f.team} (${f.message})`).join(", ")}`},1),fr.jsonOutput&&client.stdout.write(`${JSON.stringify({removed,failed},null,2)}
7
+ import{parseTeamRefs,teamRefBody}from"./chunk-LSF7FY6X.js";import{repositoryPermissionsPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,resolveVcrScope,validateVcrJsonOutput}from"./chunk-B3PZ3I4Z.js";import{outputError}from"./chunk-WH3SHWVK.js";import{require_async_sema}from"./chunk-NZ2TFADV.js";import"./chunk-GSOPJJO5.js";import{permissionsRmSubcommand}from"./chunk-AU42HSQ3.js";import"./chunk-FBYA6LLM.js";import"./chunk-SCV7XEEO.js";import{printError}from"./chunk-V336CYEI.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-5RR3435W.js";import"./chunk-D4MW3RDW.js";import"./chunk-DZ6GORJ7.js";import"./chunk-HMS3UIQ2.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-VKXEOL4K.js";import"./chunk-4SAVH3H7.js";import"./chunk-ZS2WS4AM.js";import"./chunk-AOWWC6WZ.js";import"./chunk-MY4MONOH.js";import{parseArguments}from"./chunk-R4VVQRLX.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-5IPBCD7K.js";import"./chunk-MYMM34ZH.js";import"./chunk-ROPQIBWJ.js";import"./chunk-VKPZP4LC.js";import"./chunk-PPCFQQSU.js";import"./chunk-N7Q2IESO.js";import"./chunk-VSE5BAPP.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-AZULOP7M.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-75IAMKGV.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_async_sema=__toESM(require_async_sema(),1);var USAGE="vcr permissions <repository> rm <team>[,<team>...]";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],teamRefs=parseTeamRefs(parsedArgs.args.slice(2)),project=parsedArgs.flags["--project"];if(telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),teamRefs.length===0)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing team. Example: ${packageName} vcr permissions ${repository} rm team_1a2b3c4d`,next:[{command:buildCommandWithGlobalFlags(client.argv,`vcr permissions ${repository} ls`),when:"List teams with access to pick one to remove"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",`Usage: \`vercel ${USAGE}\``);let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPermissionsPath(scope,repository),removed=[],failed=[];output_manager_default.spinner(`Removing access to ${repository} for ${teamRefs.length===1?teamRefs[0]:`${teamRefs.length} teams`}...`);let sema=new import_async_sema.default(10),results;try{results=await Promise.all(teamRefs.map(async team=>{await sema.acquire();try{return await client.fetch(path,{method:"DELETE",body:teamRefBody(team)}),{ok:!0,team}}catch(err){if(!isAPIError(err))throw err;let message=err.serverMessage||`API error (${err.status}).`;return{ok:!1,team,failure:{team,code:err.code||"API_ERROR",message}}}finally{sema.release()}}))}finally{output_manager_default.stopSpinner()}for(let result of results)result.ok?(removed.push(result.team),fr.jsonOutput||output_manager_default.success(`Removed access to ${repository} for ${result.team}`)):(failed.push(result.failure),fr.jsonOutput||output_manager_default.error(`Failed to remove access to ${repository} for ${result.team}: ${result.failure.message}`));return failed.length>0&&outputAgentError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:`Failed to remove access to ${repository} for ${failed.map(f=>`${f.team} (${f.message})`).join(", ")}`},1),fr.jsonOutput&&client.stdout.write(`${JSON.stringify({removed,failed},null,2)}
8
8
  `),failed.length>0?1:0}export{rm as default};
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-2LGNEOKV.js";import{isIgnoredFile,singleFileConfig,singleFileProjectSettings,validatePaths,validateRootDirectory}from"../../chunks/chunk-YLTCVZOL.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-H7LHZZKU.js";import"../../chunks/chunk-MZ6DNAVL.js";import{DeployTelemetryClient,Now,UploadErrorMissingArchive,getBuildMachineResourceConfig,getProductionUrl,printDeploymentStatus,printPrebuiltFilePathMapIgnoreWarning}from"../../chunks/chunk-T76ITV65.js";import"../../chunks/chunk-3DMY3OJR.js";import"../../chunks/chunk-V6Y6UK6B.js";import{parseRepoUrl}from"../../chunks/chunk-BZYQ6RFV.js";import"../../chunks/chunk-EAUDC24V.js";import{pickOverrides}from"../../chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist2,require_ignore}from"../../chunks/chunk-YAPHSZJ7.js";import"../../chunks/chunk-WJ4VNTE3.js";import{compileVercelConfig}from"../../chunks/chunk-VOB4W7DO.js";import"../../chunks/chunk-RRDNKB2X.js";import"../../chunks/chunk-MVGTMPMI.js";import"../../chunks/chunk-SACGQMVQ.js";import"../../chunks/chunk-U56NHYAH.js";import{require_ci_info}from"../../chunks/chunk-2EYYB6YN.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-3E364MJE.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SY4EANZH.js";import"../../chunks/chunk-O4FDRZ22.js";import"../../chunks/chunk-T3GQAMBJ.js";import"../../chunks/chunk-P2O5DOYE.js";import{isGuidanceEnabled}from"../../chunks/chunk-A5R2HHNK.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-J24BABG4.js";import{ensureLink,parseEnv}from"../../chunks/chunk-3AF3TTCR.js";import"../../chunks/chunk-QW2UP4W4.js";import"../../chunks/chunk-KTNRWBHM.js";import"../../chunks/chunk-PVASGBEF.js";import"../../chunks/chunk-MVCAUS4F.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,describeSubcommand,getCommandAliases,initSubcommand}from"../../chunks/chunk-U5C6XOLA.js";import"../../chunks/chunk-OH2RT2GN.js";import"../../chunks/chunk-UFXKCETS.js";import"../../chunks/chunk-RZGWCQP7.js";import"../../chunks/chunk-AG5QQNJ3.js";import"../../chunks/chunk-AU42HSQ3.js";import"../../chunks/chunk-L5FUUGYX.js";import"../../chunks/chunk-QC47UKDR.js";import"../../chunks/chunk-QJKJBD2M.js";import"../../chunks/chunk-MYCQIZU6.js";import"../../chunks/chunk-CNU4T7FO.js";import"../../chunks/chunk-LU5O3NH7.js";import"../../chunks/chunk-AMDHTZDV.js";import"../../chunks/chunk-2JBVMF2Y.js";import"../../chunks/chunk-JLXG2XWW.js";import"../../chunks/chunk-B4YYOSPY.js";import"../../chunks/chunk-UTW2FDSC.js";import"../../chunks/chunk-S7XZC23O.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-HJ3NY4UA.js";import"../../chunks/chunk-2H243SJV.js";import"../../chunks/chunk-SCV7XEEO.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import"../../chunks/chunk-Q7D7RGXM.js";import{parseTarget}from"../../chunks/chunk-XEQT373M.js";import{getDeployment}from"../../chunks/chunk-VIBUYIZ3.js";import{mapCertError}from"../../chunks/chunk-6LRVRPYO.js";import"../../chunks/chunk-GRTIWUV2.js";import{help}from"../../chunks/chunk-7D2HVBVP.js";import{table}from"../../chunks/chunk-773GOZIR.js";import{printError}from"../../chunks/chunk-V336CYEI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,outputAgentError,withGlobalFlags}from"../../chunks/chunk-5RR3435W.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{validateJsonOutput,wantsMachineReadableOutput}from"../../chunks/chunk-D4MW3RDW.js";import{highlight,readLocalConfig}from"../../chunks/chunk-DZ6GORJ7.js";import"../../chunks/chunk-HMS3UIQ2.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"../../chunks/chunk-HUJPGK7W.js";import"../../chunks/chunk-VKXEOL4K.js";import"../../chunks/chunk-YYPNUQDI.js";import"../../chunks/chunk-4SAVH3H7.js";import{require_types}from"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-AOWWC6WZ.js";import{getFetchDispatcher}from"../../chunks/chunk-MY4MONOH.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-R4VVQRLX.js";import{quoteArg}from"../../chunks/chunk-BKV35LVB.js";import{getFlagsSpecification}from"../../chunks/chunk-5IPBCD7K.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,findProjectsFromPath,getGitConfigPath,getGitExecutable,getLinkFromDir,getProjectLink,getRepoLink,getVercelDirectory,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,require_lib}from"../../chunks/chunk-MYMM34ZH.js";import"../../chunks/chunk-ROPQIBWJ.js";import"../../chunks/chunk-VKPZP4LC.js";import"../../chunks/chunk-PPCFQQSU.js";import{printAlignedLabel}from"../../chunks/chunk-N7Q2IESO.js";import"../../chunks/chunk-VSE5BAPP.js";import"../../chunks/chunk-VOZEB6PD.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,InvalidToken,MissingBuildScript,NotDomainOwner,NowError,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,require_bytes}from"../../chunks/chunk-AZULOP7M.js";import{getCommandName,packageName}from"../../chunks/chunk-JESNVRVR.js";import{cliErrorFromUnknown,emoji,link_default,output_manager_default,prependEmoji,recordCliError,require_build_utils}from"../../chunks/chunk-75IAMKGV.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_build_utils9=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1);var import_bytes=__toESM(require_bytes(),1),import_chalk=__toESM(require_source(),1),import_fs_extra4=__toESM(require_lib(),1),import_ms=__toESM(require_ms(),1);import{tmpdir}from"os";import{basename as basename3,dirname as dirname2,extname,join as join13,resolve as resolve3}from"path";async function createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject,archive){try{return await now.create(path2,createArgs,org,isSettingUpProject,archive)}catch(err){if(isAPIError(err)){if(err.code==="rate_limited")throw new DeploymentsRateLimited(err.message);if(err.code==="domain_missing")throw new DomainNotFound(err.value);if(err.code==="domain_not_found"&&err.domain)throw new DomainNotFound(err.domain);if(err.code==="domain_not_verified"&&err.domain)throw new DomainNotVerified(err.domain);if(err.code==="domain_not_verified"&&err.value)throw new DomainVerificationFailed(err.value);if(err.code==="not_domain_owner")throw new NotDomainOwner(err.message);if(err.code==="builds_rate_limited")throw new BuildsRateLimited(err.message,{ctaLabel:err.ctaLabel,ctaUrl:err.ctaUrl,action:err.action,link:err.link});if(err.code==="forbidden")throw new DomainPermissionDenied(err.value,contextName);if(err.code==="bad_request"&&err.keyword)throw new SchemaValidationFailed(err.message,err.keyword,err.dataPath,err.params);if(err.code==="domain_configured")throw new AliasDomainConfigured(err);if(err.code==="missing_build_script")throw new MissingBuildScript(err);if(err.code==="conflicting_file_path")throw new ConflictingFilePath(err);if(err.code==="conflicting_path_segment")throw new ConflictingPathSegment(err);if(err.code==="cert_missing"){let{default:generateCertForDeploy}=await import("../../chunks/generate-cert-for-deploy-WLYVWTBG.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject)}if(err.code==="not_found")throw new DeploymentNotFound({context:contextName});let certError=mapCertError(err);if(certError)return certError}throw err}}async function getDeploymentChecks(client,deploymentId){return await client.fetch(`/v1/deployments/${encodeURIComponent(deploymentId)}/checks`)}async function getDeploymentCheckRuns(client,deploymentId){return await client.fetch(`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs`)}function parseNdjson(text){let entries=[];for(let line of text.split(`
7
+ import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-2LGNEOKV.js";import{isIgnoredFile,singleFileConfig,singleFileProjectSettings,validatePaths,validateRootDirectory}from"../../chunks/chunk-YLTCVZOL.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-H7LHZZKU.js";import"../../chunks/chunk-MZ6DNAVL.js";import{DeployTelemetryClient,Now,UploadErrorMissingArchive,getBuildMachineResourceConfig,getProductionUrl,printDeploymentStatus,printPrebuiltFilePathMapIgnoreWarning}from"../../chunks/chunk-T76ITV65.js";import{require_async_sema}from"../../chunks/chunk-NZ2TFADV.js";import"../../chunks/chunk-3DMY3OJR.js";import"../../chunks/chunk-V6Y6UK6B.js";import{parseRepoUrl}from"../../chunks/chunk-BZYQ6RFV.js";import"../../chunks/chunk-EAUDC24V.js";import{pickOverrides}from"../../chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist2,require_ignore}from"../../chunks/chunk-YAPHSZJ7.js";import"../../chunks/chunk-WJ4VNTE3.js";import{compileVercelConfig}from"../../chunks/chunk-VOB4W7DO.js";import"../../chunks/chunk-RRDNKB2X.js";import"../../chunks/chunk-MVGTMPMI.js";import"../../chunks/chunk-SACGQMVQ.js";import"../../chunks/chunk-U56NHYAH.js";import{require_ci_info}from"../../chunks/chunk-2EYYB6YN.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-3E364MJE.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SY4EANZH.js";import"../../chunks/chunk-O4FDRZ22.js";import"../../chunks/chunk-T3GQAMBJ.js";import"../../chunks/chunk-P2O5DOYE.js";import{isGuidanceEnabled}from"../../chunks/chunk-A5R2HHNK.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-J24BABG4.js";import{ensureLink,parseEnv}from"../../chunks/chunk-3AF3TTCR.js";import"../../chunks/chunk-QW2UP4W4.js";import"../../chunks/chunk-KTNRWBHM.js";import"../../chunks/chunk-PVASGBEF.js";import"../../chunks/chunk-MVCAUS4F.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,describeSubcommand,getCommandAliases,initSubcommand}from"../../chunks/chunk-U5C6XOLA.js";import"../../chunks/chunk-OH2RT2GN.js";import"../../chunks/chunk-UFXKCETS.js";import"../../chunks/chunk-RZGWCQP7.js";import"../../chunks/chunk-AG5QQNJ3.js";import"../../chunks/chunk-AU42HSQ3.js";import"../../chunks/chunk-L5FUUGYX.js";import"../../chunks/chunk-QC47UKDR.js";import"../../chunks/chunk-QJKJBD2M.js";import"../../chunks/chunk-MYCQIZU6.js";import"../../chunks/chunk-CNU4T7FO.js";import"../../chunks/chunk-LU5O3NH7.js";import"../../chunks/chunk-AMDHTZDV.js";import"../../chunks/chunk-2JBVMF2Y.js";import"../../chunks/chunk-JLXG2XWW.js";import"../../chunks/chunk-B4YYOSPY.js";import"../../chunks/chunk-UTW2FDSC.js";import"../../chunks/chunk-S7XZC23O.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-HJ3NY4UA.js";import"../../chunks/chunk-2H243SJV.js";import"../../chunks/chunk-SCV7XEEO.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import"../../chunks/chunk-Q7D7RGXM.js";import{parseTarget}from"../../chunks/chunk-XEQT373M.js";import{getDeployment}from"../../chunks/chunk-VIBUYIZ3.js";import{mapCertError}from"../../chunks/chunk-6LRVRPYO.js";import"../../chunks/chunk-GRTIWUV2.js";import{help}from"../../chunks/chunk-7D2HVBVP.js";import{table}from"../../chunks/chunk-773GOZIR.js";import{printError}from"../../chunks/chunk-V336CYEI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,outputAgentError,withGlobalFlags}from"../../chunks/chunk-5RR3435W.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{validateJsonOutput,wantsMachineReadableOutput}from"../../chunks/chunk-D4MW3RDW.js";import{highlight,readLocalConfig}from"../../chunks/chunk-DZ6GORJ7.js";import"../../chunks/chunk-HMS3UIQ2.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"../../chunks/chunk-HUJPGK7W.js";import"../../chunks/chunk-VKXEOL4K.js";import"../../chunks/chunk-YYPNUQDI.js";import"../../chunks/chunk-4SAVH3H7.js";import{require_types}from"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-AOWWC6WZ.js";import{getFetchDispatcher}from"../../chunks/chunk-MY4MONOH.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-R4VVQRLX.js";import{quoteArg}from"../../chunks/chunk-BKV35LVB.js";import{getFlagsSpecification}from"../../chunks/chunk-5IPBCD7K.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,findProjectsFromPath,getGitConfigPath,getGitExecutable,getLinkFromDir,getProjectLink,getRepoLink,getVercelDirectory,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,require_lib}from"../../chunks/chunk-MYMM34ZH.js";import"../../chunks/chunk-ROPQIBWJ.js";import"../../chunks/chunk-VKPZP4LC.js";import"../../chunks/chunk-PPCFQQSU.js";import{printAlignedLabel}from"../../chunks/chunk-N7Q2IESO.js";import"../../chunks/chunk-VSE5BAPP.js";import"../../chunks/chunk-VOZEB6PD.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,InvalidToken,MissingBuildScript,NotDomainOwner,NowError,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,require_bytes}from"../../chunks/chunk-AZULOP7M.js";import{getCommandName,packageName}from"../../chunks/chunk-JESNVRVR.js";import{cliErrorFromUnknown,emoji,link_default,output_manager_default,prependEmoji,recordCliError,require_build_utils}from"../../chunks/chunk-75IAMKGV.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_build_utils9=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1);var import_bytes=__toESM(require_bytes(),1),import_chalk=__toESM(require_source(),1),import_fs_extra4=__toESM(require_lib(),1),import_ms=__toESM(require_ms(),1);import{tmpdir}from"os";import{basename as basename3,dirname as dirname2,extname,join as join13,resolve as resolve3}from"path";async function createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject,archive){try{return await now.create(path2,createArgs,org,isSettingUpProject,archive)}catch(err){if(isAPIError(err)){if(err.code==="rate_limited")throw new DeploymentsRateLimited(err.message);if(err.code==="domain_missing")throw new DomainNotFound(err.value);if(err.code==="domain_not_found"&&err.domain)throw new DomainNotFound(err.domain);if(err.code==="domain_not_verified"&&err.domain)throw new DomainNotVerified(err.domain);if(err.code==="domain_not_verified"&&err.value)throw new DomainVerificationFailed(err.value);if(err.code==="not_domain_owner")throw new NotDomainOwner(err.message);if(err.code==="builds_rate_limited")throw new BuildsRateLimited(err.message,{ctaLabel:err.ctaLabel,ctaUrl:err.ctaUrl,action:err.action,link:err.link});if(err.code==="forbidden")throw new DomainPermissionDenied(err.value,contextName);if(err.code==="bad_request"&&err.keyword)throw new SchemaValidationFailed(err.message,err.keyword,err.dataPath,err.params);if(err.code==="domain_configured")throw new AliasDomainConfigured(err);if(err.code==="missing_build_script")throw new MissingBuildScript(err);if(err.code==="conflicting_file_path")throw new ConflictingFilePath(err);if(err.code==="conflicting_path_segment")throw new ConflictingPathSegment(err);if(err.code==="cert_missing"){let{default:generateCertForDeploy}=await import("../../chunks/generate-cert-for-deploy-WLYVWTBG.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject)}if(err.code==="not_found")throw new DeploymentNotFound({context:contextName});let certError=mapCertError(err);if(certError)return certError}throw err}}async function getDeploymentChecks(client,deploymentId){return await client.fetch(`/v1/deployments/${encodeURIComponent(deploymentId)}/checks`)}async function getDeploymentCheckRuns(client,deploymentId){return await client.fetch(`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs`)}function parseNdjson(text){let entries=[];for(let line of text.split(`
8
8
  `))if(line.trim())try{entries.push(JSON.parse(line))}catch{}return entries}async function getDeploymentCheckRunLogs(client,deploymentId,checkRunId){let url=`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs/${encodeURIComponent(checkRunId)}/logs`;await new Promise(resolve4=>setTimeout(resolve4,1e3));for(let attempt=0;attempt<5;attempt++){attempt>0&&await new Promise(resolve4=>setTimeout(resolve4,2e3));let res=await client.fetch(url,{json:!1}),text=typeof res=="string"?res:await res.text(),entries=parseNdjson(text);if(entries.some(e=>e.level==="eof"))return entries.filter(e=>e.level!=="eof"&&e.level!=="debug").map(({level,timestamp,message})=>({level,timestamp,message}))}return[]}var import_fs_extra=__toESM(require_lib(),1);import{join}from"path";async function getPrebuiltJson(directory){try{return await import_fs_extra.default.readJSON(join(directory,"builds.json"))}catch{}return null}var PROTECTION_METHODS=[{setting:"ssoProtection",id:"vercel_authentication",name:"Vercel Authentication"},{setting:"passwordProtection",id:"password",name:"Password Protection"}];async function getEnabledProtection(client,project){try{let settings=await client.fetch(`/v9/projects/${encodeURIComponent(project.id)}`,{accountId:project.accountId});return PROTECTION_METHODS.filter(method=>settings[method.setting])}catch(err){return output_manager_default.debug(`Could not read Deployment Protection settings: ${err}`),null}}import{resolve}from"path";var SUPPORTED_PROVIDERS=new Set(["github","gitlab","bitbucket"]),defaultDeps={getGitConfigPath,parseGitConfig,fetchProject:(client,project)=>client.fetch(`/v9/projects/${encodeURIComponent(project.id)}`,{accountId:project.accountId}),buildCommand:(client,command)=>withGlobalFlags(client,command,{preserveProject:!0})};async function getGitConnectRecommendation(client,cwd,project,options={}){let{alreadyOffered=!1,deps=defaultDeps}=options;try{if(project.link||alreadyOffered)return;let gitConfigPath=deps.getGitConfigPath({cwd});if(!gitConfigPath)return;let gitConfig=await deps.parseGitConfig(gitConfigPath),remoteUrls=gitConfig&&pluckRemoteUrls(gitConfig);if(!remoteUrls)return;let remotes=Object.values(remoteUrls);if(!remotes.some(remoteUrl=>{let repo=parseRepoUrl(remoteUrl);return repo&&SUPPORTED_PROVIDERS.has(repo.provider)})||client.nonInteractive&&remotes.length!==1||(await deps.fetchProject(client,project)).link)return;let cwdFlag=resolve(cwd)===resolve(client.cwd)?"":` --cwd ${quoteArg(cwd)}`;return deps.buildCommand(client,`git connect${cwdFlag}`)}catch(error){output_manager_default.debug(`Failed to resolve Git connection guidance: ${error}`);return}}var import_types=__toESM(require_types(),1),validArchiveFormats=new Set(import_types.VALID_ARCHIVE_FORMATS);function isValidArchive(archive){return validArchiveFormats.has(archive)}function getErrorCta(source){if(typeof source.ctaLabel=="string"&&typeof source.ctaUrl=="string")return{label:source.ctaLabel,url:source.ctaUrl};if(typeof source.action=="string"&&typeof source.link=="string")return{label:source.action,url:source.link}}var DescribeError=class extends Error{constructor(reason,message){super(message);this.reason=reason}};var DescribeTelemetryClient=class extends TelemetryClient{trackCliOptionId(value){value&&this.trackCliOption({option:"id",value:this.redactedValue})}trackCliOptionAwsAccountId(value){value&&this.trackCliOption({option:"aws-account-id",value:this.redactedValue})}trackCliFlagJson(value){value&&this.trackCliFlag("json")}};import{createHash as createHash3}from"node:crypto";import{createHash as createHash2}from"node:crypto";function getFunctionConfig(lambda){return{runtime:lambda.runtime,handler:lambda.handler,architecture:lambda.architecture,environment:Object.fromEntries(Object.entries(lambda.environment).filter(entry=>typeof entry[1]=="string")),..."launcherType"in lambda&&lambda.launcherType==="Nodejs"?{launcherType:lambda.launcherType,awsLambdaHandler:lambda.awsLambdaHandler,shouldAddHelpers:lambda.shouldAddHelpers,shouldAddSourcemapSupport:lambda.shouldAddSourcemapSupport,shouldDisableAutomaticFetchInstrumentation:lambda.shouldDisableAutomaticFetchInstrumentation,useWebApi:lambda.useWebApi}:{},memory:lambda.memory,affinity:lambda.affinity,maxConcurrency:lambda.maxConcurrency,maxDuration:lambda.maxDuration,regions:lambda.regions,functionFailoverRegions:lambda.functionFailoverRegions,supportsResponseStreaming:lambda.supportsResponseStreaming,framework:lambda.framework&&{...lambda.framework}}}var import_build_utils=__toESM(require_build_utils(),1),ROOT_BOOTSTRAP_PATH="bootstrap",USER_BOOTSTRAP_PATH="___vc_bootstrap",NATIVELY_WRAPPER_SUPPORTED_FAMILIES=["nodejs","python","ruby","java","dotnetcore","bun","executable"],BOOTSTRAP_SHIM=`#!/bin/sh
9
9
  USER_BOOTSTRAP="/var/task/${USER_BOOTSTRAP_PATH}"
10
10
 
@@ -16,7 +16,7 @@ if [ -n "\${AWS_LAMBDA_EXEC_WRAPPER:-}" ]; then
16
16
  fi
17
17
 
18
18
  exec "$USER_BOOTSTRAP" "$@"
19
- `;function hydrateLambdaFiles(lambda,encryptedEnv){let files=lambda.files??{};if(lambda.runtime==="container"||!encryptedEnv.filename||!encryptedEnv.contentBase64)return files;if(files[encryptedEnv.filename]=new import_build_utils.FileBlob({data:Buffer.from(encryptedEnv.contentBase64,"base64")}),lambda.supportsWrapper!==!0&&!NATIVELY_WRAPPER_SUPPORTED_FAMILIES.some(family=>lambda.runtime.startsWith(family))){if(!lambda.runtime.startsWith("provided"))throw new Error(`Serverless Function runtime ${lambda.runtime} does not support more than 4KB for environment variables`);let userBootstrap=files[ROOT_BOOTSTRAP_PATH];if(!userBootstrap)throw new Error(`Serverless Function runtime ${lambda.runtime} does not support more than 4KB for environment variables`);if(files[USER_BOOTSTRAP_PATH])throw new Error(`Cannot wrap "provided.*" lambda: reserved file path ${USER_BOOTSTRAP_PATH} is already in use. Please rename your file.`);files[USER_BOOTSTRAP_PATH]=userBootstrap,delete files[ROOT_BOOTSTRAP_PATH],files[ROOT_BOOTSTRAP_PATH]=new import_build_utils.FileBlob({data:BOOTSTRAP_SHIM,mode:33261})}return files}import{join as join6}from"node:path";var import_build_utils2=__toESM(require_build_utils(),1);import{join as join2}from"path";import{readFile}from"node:fs/promises";async function maybeReadJSON(path2){let contents;try{contents=await readFile(path2,"utf8")}catch(err){if(err.code!=="ENOENT")throw err;return}try{return JSON.parse(contents.charCodeAt(0)===65279?contents.slice(1):contents)}catch(err){throw err.message=`${path2}: ${err.message}`,err}}async function getBuildOutputConfig(outputDir){let configPath=getBuildOutputConfigPath(outputDir),config=await maybeReadJSON(configPath);if(!config)return;if(config.version!==3)throw new Error(`Expected \`version: 3\` in "${configPath}" file (received \`${config.version}\`)`);validateDeploymentId(config.deploymentId),validateExperimentalServicesV2(config.experimentalServicesV2);let framework=validateFrameworkVersion(config.framework);return{...config,framework}}function getBuildOutputConfigPath(outputDir){return join2(outputDir,"config.json")}var MAX_DEPLOYMENT_ID_LENGTH=32,MAX_FRAMEWORK_SLUG_LENGTH=50,MAX_FRAMEWORK_VERSION_LENGTH=50,VALID_DEPLOYMENT_ID_PATTERN=/^[a-zA-Z0-9_-]+$/;function validateDeploymentId(deploymentId){if(deploymentId&&deploymentId.length>MAX_DEPLOYMENT_ID_LENGTH)throw new import_build_utils2.NowBuildError({message:`The configured deploymentId "${deploymentId}" exceeds the maximum length of ${MAX_DEPLOYMENT_ID_LENGTH} characters. Please use a shorter deploymentId.`,code:"VC_BUILD_INVALID_DEPLOYMENT_ID_LENGTH"});if(deploymentId&&!VALID_DEPLOYMENT_ID_PATTERN.test(deploymentId))throw new import_build_utils2.NowBuildError({message:`The configured deploymentId "${deploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,code:"VC_BUILD_INVALID_DEPLOYMENT_ID_CHARACTERS"})}function validateFrameworkVersion(framework){if(!framework)return;let{slug,version}=framework;if(typeof slug=="string"){if(typeof version!="string")throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "version" type "${typeof version}" should be "string"`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_VERSION_TYPE"});if(slug.length>MAX_FRAMEWORK_SLUG_LENGTH){let trimmedSlug=slug.slice(0,MAX_FRAMEWORK_SLUG_LENGTH);throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "framework.slug" length ${slug.length} > ${MAX_FRAMEWORK_SLUG_LENGTH}. "${trimmedSlug}..."`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_SLUG_LENGTH"})}if(version.length>MAX_FRAMEWORK_VERSION_LENGTH){let trimmedVersion=version.slice(0,MAX_FRAMEWORK_VERSION_LENGTH);throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "framework.version" length ${version.length} > ${MAX_FRAMEWORK_VERSION_LENGTH}. "${trimmedVersion}..."`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_VERSION_LENGTH"})}return framework}}function validateExperimentalServicesV2(experimentalServicesV2){if(experimentalServicesV2!==void 0&&(!experimentalServicesV2||typeof experimentalServicesV2!="object"||Array.isArray(experimentalServicesV2)))throw new import_build_utils2.NowBuildError({code:"INVALID_BUILD_OUTPUT_CONFIG",message:'Invalid config.json: "experimentalServicesV2" must be an object.'})}async function getBuildOutputConfigOrThrow(outputDir){let config=await getBuildOutputConfig(outputDir);if(config)return config;throw new Error(`Config file was not found at "${getBuildOutputConfigPath(outputDir)}"`)}var import_build_utils3=__toESM(require_build_utils(),1);function isRouteMiddleware(route){return"middlewarePath"in route&&typeof route.middlewarePath=="string"}var cache=new WeakMap;function getMiddlewareRouting(buildResult){let cached=cache.get(buildResult.functions);if(cached&&cached.routes===buildResult.routes)return cached.routing;let routing=new Map,{lambdas,edgeFunctions}=buildResult.functions;for(let route of buildResult.routes){if(!isRouteMiddleware(route))continue;let outputPath=route.middlewarePath;!lambdas.has(outputPath)&&!edgeFunctions.has(outputPath)&&(outputPath=outputPath.replace(/^\//,""));let output=lambdas.get(outputPath)??edgeFunctions.get(outputPath);if(!outputPath||!output)throw new import_build_utils3.NowBuildError({message:`Mapping ${route.middlewarePath} not found. Maybe you provided a wrong middlewarePath?`,code:"middleware_path_not_found"});let index=routing.get(outputPath)?.index??routing.size;routing.set(outputPath,output.type==="EdgeFunction"?{type:"middleware",middlewarePath:route.middlewarePath,outputPath,edgeFunction:output,index}:{type:"middleware-lambda",middlewarePath:route.middlewarePath,outputPath,index})}return cache.set(buildResult.functions,{routes:buildResult.routes,routing}),routing}var import_semver=__toESM(require_semver(),1),import_build_utils4=__toESM(require_build_utils(),1);import{createHash}from"crypto";import fs2 from"fs";var fileSizeCache=new Map,getFileSize=path2=>{if(!path2)return Promise.resolve(0);let cached=fileSizeCache.get(path2);if(cached)return cached;let promise=fs2.promises.lstat(path2).then(stats=>stats.size);return fileSizeCache.set(path2,promise),promise},collectUncompressedSize=async(files,ignoreFn)=>{let size=0;return await Promise.all(Object.keys(files).map(async fileKey=>{if(!ignoreFn?.(fileKey)){if(files[fileKey].type==="FileBlob")size+=files[fileKey].data.length;else if(files[fileKey].type==="FileFsRef"){let curSize=files[fileKey].size??await getFileSize(files[fileKey].fsPath);size+=curSize}}})),size};var MIB=1024*1024,MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES=250*MIB,LAMBDA_RESERVED_UNCOMPRESSED_SIZE_BYTES=25*MIB,LARGE_FUNCTION_THRESHOLD_BYTES=MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES-LAMBDA_RESERVED_UNCOMPRESSED_SIZE_BYTES,MANIFEST_FILE_NAMES=["routes-manifest.json","server/pages-manifest.json","server/app-paths-manifest.json","app-path-routes-manifest.json"],TEST_DYNAMIC_ROUTE=/\/\[[^\/]+?\](?=\/|$)/;function isNextjsDynamicRoute(route){return route=route.startsWith("/")?route:`/${route}`,TEST_DYNAMIC_ROUTE.test(route)}function computeLambdaFieldsSignature(lambda,lambdaFields){let parts=[];for(let field of lambdaFields)parts.push(JSON.stringify(lambda[field]));return parts.join("|")}async function getLambdaFileSizeMetadata(lambdaFiles){let fileKeys=Object.keys(lambdaFiles),fileSizes=new Map,uncompressedSize=0;for(let fileKey of fileKeys){let file=lambdaFiles[fileKey];if(file===void 0)throw new Error("Expected lambdaFiles[fileKey] to be defined");let fileSize=0;file.type==="FileBlob"?fileSize=file.data.length:file.type==="FileFsRef"&&(fileSize=await collectUncompressedSize({[fileKey]:file},void 0)),fileSizes.set(fileKey,fileSize),uncompressedSize+=fileSize}return{fileKeys,fileSizes,uncompressedSize}}async function groupLambdas(lambdas,options){let{force}=options,lambdaFields=["allowQuery","affinity","architecture","awsLambdaHandler","environment","experimentalResponseStreaming","experimentalTriggers","framework","handler","maxConcurrency","maxDuration","memory","operationType","regions","runtime","runtimeLanguage","shouldAddHelpers","shouldAddSourcemapSupport","shouldDisableAutomaticFetchInstrumentation","supportsCancellation","supportsMultiPayloads","supportsResponseStreaming","supportsWrapper","useWebApi","functionFailoverRegions"],_typeCheck=lambdaFields,fieldsToCompare=force==="all"?["runtime","maxConcurrency"]:lambdaFields,maxUncompressedFunctionSize=LARGE_FUNCTION_THRESHOLD_BYTES,maxBundleSizeMb=options.maxBundleSizeMb;if(maxBundleSizeMb!==void 0&&Number.isFinite(maxBundleSizeMb)){let customMaxUncompressedFunctionSize=Math.floor(maxBundleSizeMb*MIB);output_manager_default.warn(`Warn: custom max uncompressed function size of ${customMaxUncompressedFunctionSize/MIB}MiB configured`),maxUncompressedFunctionSize=Math.min(customMaxUncompressedFunctionSize,MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES)}let seenLambdas=new Map;for(let[name,lambda]of Object.entries(lambdas)){if(!lambda.experimentalAllowBundling||!lambda.files)continue;let existingNames=seenLambdas.get(lambda);existingNames?existingNames.push(name):seenLambdas.set(lambda,[name])}let handlerDigestPromiseCache=new Map,getHandlerDigest=handlerFile=>{if(!handlerFile)return Promise.resolve(void 0);let cached=handlerDigestPromiseCache.get(handlerFile);if(cached)return cached;let promise=(async()=>{try{let handlerStream=handlerFile.toStream(),handlerBuffer=await(0,import_build_utils4.streamToBuffer)(handlerStream),handlerBytes=new Uint8Array(handlerBuffer.buffer,handlerBuffer.byteOffset,handlerBuffer.byteLength);return createHash("sha1").update(handlerBytes).digest("hex")}catch{return}})();return handlerDigestPromiseCache.set(handlerFile,promise),promise},bundlesBySignature=new Map,allBundledLambdas=[];for(let[lambda,lambdaNames]of seenLambdas){let lambdaFiles=lambda.files;if(!lambdaFiles)continue;let signature=computeLambdaFieldsSignature(lambda,fieldsToCompare),{fileKeys,fileSizes,uncompressedSize}=await getLambdaFileSizeMetadata(lambdaFiles),handlerDigest=await getHandlerDigest(lambdaFiles[lambda.handler]),compatibleBundles=bundlesBySignature.get(signature),isLarge=uncompressedSize>=LARGE_FUNCTION_THRESHOLD_BYTES,foundMatchingBundle=!1;if(compatibleBundles&&!isLarge)for(let bundleMeta of compatibleBundles){if(bundleMeta.isLarge||!(handlerDigest===bundleMeta.handlerDigest)&&force!=="all")continue;let uncompressedBytesIncrease=0;for(let fileKey of fileKeys){let incomingFileSize=fileSizes.get(fileKey)??0,existingFileSize=bundleMeta.fileSizesByKey.get(fileKey);existingFileSize===void 0?uncompressedBytesIncrease+=incomingFileSize:uncompressedBytesIncrease+=incomingFileSize-existingFileSize}let newTotalSize=bundleMeta.uncompressedBytes+uncompressedBytesIncrease;if(newTotalSize<=maxUncompressedFunctionSize){foundMatchingBundle=!0,bundleMeta.uncompressedBytes=newTotalSize,bundleMeta.lambdaNames.push(...lambdaNames);for(let fileKey of fileKeys)bundleMeta.fileSizesByKey.set(fileKey,fileSizes.get(fileKey)??0);let potentialLambdaFiles=bundleMeta.lambda.files;potentialLambdaFiles&&(bundleMeta.lambda.files=Object.assign(potentialLambdaFiles,lambdaFiles));break}}if(!foundMatchingBundle){let newBundleMeta={lambda,signature,handlerDigest,isLarge,uncompressedBytes:uncompressedSize,fileSizesByKey:new Map(fileSizes),lambdaNames:[...lambdaNames]},signatureBundles=bundlesBySignature.get(signature);signatureBundles||(signatureBundles=[],bundlesBySignature.set(signature,signatureBundles)),signatureBundles.push(newBundleMeta),allBundledLambdas.push(newBundleMeta)}}let finalLambdas=Object.assign({},lambdas);options.debug&&(output_manager_default.debug("GROUP_LAMBDAS: "+JSON.stringify(allBundledLambdas.map(bundleMeta=>({lambdaNames:bundleMeta.lambdaNames,signature:bundleMeta.signature,uncompressedBytes:bundleMeta.uncompressedBytes})),null,2)),output_manager_default.debug(`total grouped lambdas: ${allBundledLambdas.length}`));for(let bundleMeta of allBundledLambdas){let lambda=bundleMeta.lambda;for(let lambdaName of bundleMeta.lambdaNames)finalLambdas[lambdaName]=lambda;if(lambda.framework?.slug==="nextjs"&&lambda.framework.version){let CORRECTED_MANIFESTS_VERSION="v12.2.0";if(import_semver.default.gte(lambda.framework.version,CORRECTED_MANIFESTS_VERSION)){let pageFiles=[],manifestFileKeys={},manifestFileNames=MANIFEST_FILE_NAMES;for(let fileKey of Object.keys(lambda.files||{})){let isPageFile=fileKey.includes("server/pages/"),isAppFile=fileKey.includes("server/app/");if(isPageFile||isAppFile){let relativePageFile=fileKey.split(`server/${isPageFile?"pages":"app"}/`).pop();relativePageFile&&pageFiles.push(relativePageFile)}for(let manifestFileName of manifestFileNames)fileKey.endsWith(`/${manifestFileName}`)&&(manifestFileKeys[manifestFileName]=fileKey)}let appPathRoutesManifestFilesKey=manifestFileKeys["app-path-routes-manifest.json"],appPathRoutesManifestFile=appPathRoutesManifestFilesKey&&lambda.files?.[appPathRoutesManifestFilesKey],appPathRoutesManifest=appPathRoutesManifestFile?await(0,import_build_utils4.streamToBuffer)(appPathRoutesManifestFile.toStream()).then(res=>JSON.parse(res.toString("utf8"))).catch(()=>({})):{};for(let manifestFileName of manifestFileNames){let manifestFilesKey=manifestFileKeys[manifestFileName],manifestFile=manifestFilesKey&&lambda.files?.[manifestFilesKey];if(!manifestFile)continue;let manifestData=JSON.parse((await(0,import_build_utils4.streamToBuffer)(manifestFile.toStream())).toString("utf8")),normalizedPages=new Set(pageFiles.map(page=>(page=`/${page.replace(/\.js$/,"")}`,page==="/index"&&(page="/"),appPathRoutesManifest[page]||page)));switch(manifestFileName){case"routes-manifest.json":{let filterItem=item=>normalizedPages.has(item.page);manifestData.dynamicRoutes=manifestData.dynamicRoutes?.filter(filterItem),manifestData.staticRoutes=manifestData.staticRoutes?.filter(filterItem);break}case"server/pages-manifest.json":{for(let key of Object.keys(manifestData))isNextjsDynamicRoute(key)&&!normalizedPages.has(key)&&delete manifestData[key];break}case"server/app-paths-manifest.json":{if(appPathRoutesManifest)for(let key of Object.keys(manifestData)){let normalizedKey=appPathRoutesManifest[key]||key.replace(/(^|\/)(page|route)$/,"");isNextjsDynamicRoute(normalizedKey)&&!normalizedPages.has(normalizedKey)&&delete manifestData[key]}break}}lambda.files&&(lambda.files[manifestFilesKey]=new import_build_utils4.FileBlob({contentType:"application/json",data:JSON.stringify(manifestData)}))}}}}return finalLambdas}async function groupBundleableLambdas(params){let lambdas={};for(let[path2,lambda]of params.functions.lambdas)lambda.experimentalAllowBundling&&(lambdas[path2]=lambda);for(let[path2,prerender]of params.functions.prerenders)prerender.lambda.experimentalAllowBundling&&(lambdas[path2]=prerender.lambda);if(Object.keys(lambdas).length===0)return;let grouped=await groupLambdas(lambdas,{force:void 0,maxBundleSizeMb:params.options.maxBundleSizeMb,debug:params.options.debugGroupLambdas});for(let[path2,lambda]of Object.entries(grouped))if(params.functions.lambdas.has(path2))params.functions.lambdas.set(path2,lambda);else{let prerender=params.functions.prerenders.get(path2);if(prerender)prerender.lambda=lambda;else throw new Error(`Grouped lambda "${path2}" does not match any build output`)}}var import_build_utils6=__toESM(require_build_utils(),1);import{join as join3,relative}from"path";import{readdir,stat}from"fs/promises";var SUFFIX=".func";async function*createFunctionEntriesIterator(dir,root=dir){let entries;try{entries=await readdir(dir,{withFileTypes:!0})}catch(error){if(!(typeof error=="object"&&error!==null&&"code"in error)||error.code!=="ENOENT"&&error.code!=="ENOTDIR")throw error;entries=[]}let names;for(let entry of entries){let absolutePath=join3(dir,entry.name),isSymbolicLink=entry.isSymbolicLink();if(entry.isDirectory()||isSymbolicLink&&(await stat(absolutePath)).isDirectory())if(entry.name.endsWith(SUFFIX)){names??=new Set(entries.map(e=>e.name));let baseName=entry.name.slice(0,-SUFFIX.length);yield{hasPrerenderConfig:names.has(`${baseName}.prerender-config.json`),isSymbolicLink,path:relative(root,absolutePath.substring(0,absolutePath.length-SUFFIX.length))}}else yield*createFunctionEntriesIterator(absolutePath,root)}}import{dirname,isAbsolute,join as join4,relative as relative2,resolve as resolve2,sep}from"node:path";var import_build_utils5=__toESM(require_build_utils(),1);import{lstat,readlink,realpath,readdir as readdir2,stat as stat2}from"node:fs/promises";import assert from"assert";import path from"path";async function glob(options){if(!path.isAbsolute(options.cwd))throw new Error(`basePath/cwd must be an absolute path (${options.cwd})`);let results={},statCache={},symlinks={},files=await walkAll(options.cwd,!!options.follow,statCache,symlinks),dirs=new Set,dirsWithEntries=new Set;for(let relativePath of files){let fsPath=path.join(options.cwd,relativePath),stats=statCache[fsPath];assert(stats,`statCache does not contain value for ${relativePath}`);let isSymlink=symlinks[fsPath];if(options.follow&&(isSymlink||(await lstat(fsPath)).isSymbolicLink())){let target=await readlink(fsPath),absoluteTarget=path.resolve(path.dirname(fsPath),target);if(path.relative(options.cwd,absoluteTarget).startsWith(`..${path.sep}`))continue}if(isSymlink||stats.isFile()||stats.isDirectory()){isSymlink&&(stats=await lstat(fsPath));let dirname3=path.dirname(relativePath);if(dirsWithEntries.add(dirname3),stats.isDirectory()){dirs.add(relativePath);continue}results[relativePath]=new import_build_utils5.FileFsRef({mode:stats.mode,fsPath,size:stats.size})}}if(options.includeDirectories)for(let relativePath of dirs){if(dirsWithEntries.has(relativePath))continue;let fsPath=path.join(options.cwd,relativePath),stats=statCache[fsPath];results[relativePath]=new import_build_utils5.FileFsRef({mode:stats.mode,fsPath,size:stats.size})}return results}async function walkAll(cwd,follow,statCache,symlinks){let files=[];async function walk(dirAbs,realDir,ancestors){let entries;try{entries=await readdir2(dirAbs,{withFileTypes:!0})}catch(err){let code2=err.code;if(code2==="ENOENT"||code2==="ENOTDIR")return;throw err}await Promise.all(entries.map(async entry=>{let abs=path.join(dirAbs,entry.name);if(entry.isSymbolicLink())if(follow){let stats=await stat2(abs).catch(()=>lstat(abs).catch(()=>null));if(stats===null)return;if(statCache[abs]=stats,files.push(abs),stats.isDirectory()){let real=await realpath(abs).catch(()=>null);real!==null&&!ancestors.has(real)&&await walk(abs,real,new Set(ancestors).add(real))}}else{let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,symlinks[abs]=!0,files.push(abs)}else if(entry.isDirectory()){let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,files.push(abs);let real=path.join(realDir,entry.name);await walk(abs,real,new Set(ancestors).add(real))}else{let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,files.push(abs)}}))}let cwdReal=follow?await realpath(cwd).catch(()=>null):cwd;return cwdReal!==null&&await walk(cwd,cwdReal,new Set([cwdReal])),files.map(abs=>path.relative(cwd,abs)).sort((a,b)=>a.localeCompare(b,"en"))}import{isNativeError}from"node:util/types";import{readlink as readlink2,realpath as realpath2}from"node:fs/promises";async function readFunctions(params){let fileFsRefsCache=new Map,entries=[],functionsDir=join4(params.outputDir,"functions"),iterator=enumerate(createFunctionEntriesIterator(functionsDir));await Promise.all(Array.from({length:params.concurrency??32},async()=>{for await(let[index,entry]of iterator)entries[index]=await deserializeFunctionEntry({prebuilt:params.prebuilt,entry,fileFsRefsCache,functionsDir,repoRootPath:params.repoRootPath})}));let serverActionsManifestPaths=new Set,edgeFunctions=new Map,unsortedPrerenders=new Map,functionSymlinks=new Map,lambdas=new Map;for(let functionEntry of entries)functionEntry.symlinkTarget!==void 0&&functionSymlinks.set(functionEntry.path,functionEntry.symlinkTarget),functionEntry.serverActionsManifestPath&&serverActionsManifestPaths.add(functionEntry.serverActionsManifestPath),functionEntry.output?.type==="Prerender"?unsortedPrerenders.set(functionEntry.path,functionEntry.output):functionEntry.output?.type==="Lambda"?lambdas.set(functionEntry.path,functionEntry.output):functionEntry.output?.type==="EdgeFunction"&&edgeFunctions.set(functionEntry.path,functionEntry.output);for(let[path2,target]of functionSymlinks){let destFunction=unsortedPrerenders.get(target)?.lambda??edgeFunctions.get(target)??lambdas.get(target);if(!destFunction)throw new Error(`Could not find target "${target}" Lambda or EdgeFunction for path "${path2}"`);let srcPrerender=unsortedPrerenders.get(path2);if(!srcPrerender)destFunction.type==="Lambda"?lambdas.set(path2,destFunction):destFunction.type==="EdgeFunction"&&edgeFunctions.set(path2,destFunction);else{if(destFunction.type!=="Lambda")throw new Error(`Unexpected function type "${destFunction.type}" at path "${path2}"`);srcPrerender.lambda=destFunction}}let prerenders=new Map;for(let[path2,prerender]of[...unsortedPrerenders].sort((a,b)=>(a[1].group??0)-(b[1].group??0)))validatePrerender(prerender),prerenders.set(path2,prerender);return{edgeFunctions,lambdas,prerenders,serverActionsManifestPaths}}async function*enumerate(iterable){let index=0;for await(let item of iterable)yield[index++,item]}async function deserializeFunctionEntry(params){let functionDir=join4(params.functionsDir,`${params.entry.path}.func`),prerenderConfigPath=join4(params.functionsDir,`${params.entry.path}.prerender-config.json`),configPromise=params.entry.hasPrerenderConfig?maybeReadJSON(prerenderConfigPath):void 0;configPromise?.catch(()=>{});let lambda,serverActionsManifestPath,symlinkTarget;if(params.entry.isSymbolicLink)symlinkTarget=await readlink2(functionDir).then(link=>join4(dirname(params.entry.path),link).slice(0,-5));else{let functionConfigPath=join4(functionDir,".vc-config.json"),[functionConfig,files]=await Promise.all([maybeReadJSON(functionConfigPath),glob({cwd:functionDir,includeDirectories:!0})]);if(!functionConfig)throw new Error(`Could not load function config: "${functionConfigPath}"`);if(delete files[".vc-config.json"],functionConfig.filePathMap&&await hydrateFilesMap(files,functionConfig.filePathMap,params.repoRootPath,params.fileFsRefsCache,params.prebuilt),"type"in functionConfig&&functionConfig.type==="EdgeFunction"||functionConfig.runtime==="edge")return{path:params.entry.path,output:new import_build_utils6.EdgeFunction({deploymentTarget:"v8-worker",...functionConfig,files})};let supportsResponseStreaming=functionConfig.supportsResponseStreaming??functionConfig.experimentalResponseStreaming;lambda="launcherType"in functionConfig&&functionConfig.launcherType==="Nodejs"?new import_build_utils6.NodejsLambda({...functionConfig,files,supportsResponseStreaming:functionConfig.awsLambdaHandler===void 0||functionConfig.awsLambdaHandler===""||supportsResponseStreaming}):new import_build_utils6.Lambda({...functionConfig,files,supportsResponseStreaming}),serverActionsManifestPath=functionConfig.filePathMap?.[".next/server/server-reference-manifest.json"]}if(configPromise){let prerenderConfig=await configPromise;if(prerenderConfig)return{path:params.entry.path,symlinkTarget,serverActionsManifestPath,output:new import_build_utils6.Prerender({...prerenderConfig,fallback:await deserializePrerenderFallback(prerenderConfigPath,prerenderConfig.fallback,params),initialMetadata:sanitizeInitialMetadata(prerenderConfig.initialMetadata),lambda})}}return{path:params.entry.path,symlinkTarget,output:lambda,serverActionsManifestPath}}function validatePrerender(prerender){if(prerender.lambda===void 0)throw new Error('Prerender "buildResult" is missing "lambda" property')}async function hydrateFilesMap(files,filesMap,repoRootPath,fileFsRefsCache,prebuilt){let rootPath=prebuilt?await realpath2(repoRootPath):void 0;async function hydrateFile(projectPath){let fsPath=join4(repoRootPath,projectPath);rootPath!==void 0&&await validatePrebuiltFilePath(fsPath,rootPath,`file map source "${projectPath}"`,!0);let file=await import_build_utils6.FileFsRef.fromFsPath({fsPath});return fileFsRefsCache.set(projectPath,file),file}let pending;for(let functionPath in filesMap){let projectPath=filesMap[functionPath],cached=fileFsRefsCache.get(projectPath);if(cached&&!(cached instanceof Promise)){files[functionPath]=cached;continue}let filePromise=cached;if(!filePromise){let promise=hydrateFile(projectPath);fileFsRefsCache.set(projectPath,promise),filePromise=promise}(pending??=[]).push(filePromise.then(file=>{files[functionPath]=file}))}pending&&await Promise.all(pending)}async function validatePrebuiltFilePath(fsPath,rootPath,source,enableDanglingSymlinks=!1){let resolvedPath;try{resolvedPath=await realpath2(fsPath)}catch(error){if(!enableDanglingSymlinks||!isNativeError(error)||!("code"in error)||error.code!=="ENOENT")throw error;let target=await readlink2(fsPath),parentPath=await validatePrebuiltFilePath(dirname(fsPath),rootPath,source);resolvedPath=resolve2(parentPath,target)}let sourcePath=relative2(rootPath,resolvedPath);if(sourcePath===".."||sourcePath.startsWith(`..${sep}`)||isAbsolute(sourcePath))throw new import_build_utils6.NowBuildError({code:"INVALID_PREBUILT_FILE_PATH",message:`Prebuilt ${source} must be inside the uploaded project.`});return resolvedPath}function sanitizeInitialMetadata(initialMetadata){try{if(typeof initialMetadata!="object"||initialMetadata===null||Array.isArray(initialMetadata))return;let{compute,htmlSize}=initialMetadata;return compute!=="blocking"&&compute!=="resuming"&&compute!=="static"||htmlSize!==void 0&&(!Number.isSafeInteger(htmlSize)||htmlSize<0)?void 0:{compute,...htmlSize!==void 0&&{htmlSize}}}catch{return}}async function deserializePrerenderFallback(prerenderConfigPath,fallback,options){if(fallback==null)return null;let path2=typeof fallback=="string"?fallback:fallback.fsPath,fsPath=join4(dirname(prerenderConfigPath),path2);return options.prebuilt&&await validatePrebuiltFilePath(fsPath,await realpath2(options.repoRootPath),`prerender fallback "${path2}"`),typeof fallback=="string"?import_build_utils6.FileFsRef.fromFsPath({fsPath}):fallback.mode!==void 0?new import_build_utils6.FileFsRef({mode:fallback.mode,size:fallback.size,contentType:fallback.contentType,fsPath}):import_build_utils6.FileFsRef.fromFsPath({mode:fallback.mode,size:fallback.size,contentType:fallback.contentType,fsPath})}var import_ignore=__toESM(require_ignore(),1);import{basename,isAbsolute as isAbsolute2,join as join5,relative as relative3,sep as sep2}from"node:path";import{readFile as readFile2,readdir as readdir3,realpath as realpath3,stat as stat3}from"node:fs/promises";function contains(root,path2){let rel=relative3(root,path2);return rel!==".."&&!rel.startsWith(`..${sep2}`)&&!isAbsolute2(rel)}function invalidSource(){throw new DescribeError("invalid_build_output","Build output references files outside the authorized output or includes excluded source files. Remove unsafe links and excluded file mappings, then rebuild.")}var vcs=(0,import_ignore.default)().add([".hg",".git",".gitmodules",".svn","CVS"]),dependencies=(0,import_ignore.default)().add(["node_modules",".next",".yarn/cache",".pnp*",".venv","venv","__pycache__","/target"]);async function readIgnore(root){let read=name=>readFile2(join5(root,name),"utf8").catch(error=>{if(error.code==="ENOENT")return"";throw error}),[vercelignore,nowignore]=await Promise.all([read(".vercelignore"),read(".nowignore")]);if(vercelignore&&nowignore)throw new DescribeError("invalid_build_output","Cannot use both .vercelignore and .nowignore. Remove the deprecated .nowignore file and retry.");return(0,import_ignore.default)().add((vercelignore||nowignore).replace(/(\n|^)\.\//g,"$1"))}async function validateBuildOutput(options){let root=await realpath3(options.repoRootPath),output=await realpath3(options.outputDir),expectedOutput=join5(root,relative3(options.repoRootPath,options.outputDir));(!contains(root,output)||relative3(expectedOutput,output)!=="")&&invalidSource();let project=options.directory?await realpath3(options.directory):root,bases=[root];if(project!==root&&contains(root,project))for(let segment of relative3(root,project).split(sep2))bases.push(join5(bases[bases.length-1],segment));let ignores=await Promise.all(bases.map(async base=>({base,rules:await readIgnore(base)}))),validateSource=async path2=>{let resolved=await realpath3(path2);for(let source of[join5(root,relative3(options.repoRootPath,path2)),resolved]){contains(root,source)||invalidSource();let rel=relative3(root,source).split(sep2).join("/");if(rel&&(vcs.ignores(rel)&&invalidSource(),!contains(output,source)))for(let{base,rules}of ignores){if(!contains(base,source))continue;let relToBase=relative3(base,source).split(sep2).join("/");relToBase&&rules.ignores(relToBase)&&!dependencies.ignores(relToBase)&&invalidSource()}}return resolved},configs=[],visited=new Set;async function walk(path2,ancestors){let resolved=await realpath3(path2);if((!contains(output,resolved)||ancestors.has(resolved))&&invalidSource(),(await stat3(resolved)).isDirectory()){if(visited.has(resolved))return;visited.add(resolved);let next=new Set(ancestors).add(resolved);for(let name of await readdir3(resolved))await walk(join5(resolved,name),next)}else basename(path2)===".vc-config.json"&&configs.push(resolved)}await walk(output,new Set);for(let path2 of configs){let config=JSON.parse(await readFile2(path2,"utf8"));for(let source of Object.values(config.filePathMap??{}))typeof source!="string"&&invalidSource(),await validateSource(join5(options.repoRootPath,source))}return validateSource}async function prepareFunctions(options){await validateBuildOutput(options);let config=await getBuildOutputConfigOrThrow(options.outputDir);if(config.experimentalServicesV2!==void 0)throw new DescribeError("unsupported_output","This build contains service outputs, which describe does not support.");let functions=await readFunctions({outputDir:options.outputDir,repoRootPath:options.repoRootPath,prebuilt:!0});if(functions.edgeFunctions.size)throw new DescribeError("unsupported_output","This build contains Edge Functions, which cannot be provisioned as AWS Lambda functions.");await groupBundleableLambdas({functions,options:{}});let allFunctions=[...functions.lambdas,...functions.prerenders],groups=new Map,middlewarePaths=getMiddlewareRouting({routes:config.routes??[],functions});for(let[path2,output]of allFunctions){let lambda=output.type==="Prerender"?output.lambda:output;if(lambda.runtime==="container")throw new DescribeError("unsupported_output","This build contains container functions. Describe supports native AWS Lambda functions only.");let outputs=groups.get(lambda)??[];groups.set(lambda,outputs),outputs.push({sourceKind:output.type==="Prerender"?"prerender":"lambda",middleware:output.type==="Lambda"&&middlewarePaths.has(path2)?{}:void 0,path:path2})}return[...groups].map(([lambda,outputs])=>({lambda,outputs}))}import{writeFile}from"node:fs/promises";import{z}from"zod/v3";var descriptorSchema=z.object({Architectures:z.array(z.string()).optional(),Environment:z.object({Variables:z.record(z.string())}),EphemeralStorage:z.object({Size:z.number()}).optional(),FunctionName:z.string().min(1),Handler:z.string(),Layers:z.array(z.string()),MemorySize:z.number(),Region:z.string().min(1),ResolvableLayers:z.record(z.object({url:z.string()})),Runtime:z.string(),Tags:z.record(z.string()),Timeout:z.number().optional()});async function describeFunctions(client,params){let functions=await prepareFunctions({directory:params.directory,repoRootPath:params.repoRootPath,outputDir:params.outputDir}),buildEnv=z.object({VERCEL_ENCRYPTED_ENV_FILENAME:z.string().min(1),VERCEL_ENCRYPTED_ENV_CONTENT:z.string().min(1)}).parse((await fetchDeploymentBuildEnv(client,params.deploymentId,{quiet:params.quiet})).buildEnv),lambdas=(await Promise.all(functions.map(async({lambda,outputs})=>{lambda.files=hydrateLambdaFiles(lambda,{filename:buildEnv.VERCEL_ENCRYPTED_ENV_FILENAME,contentBase64:buildEnv.VERCEL_ENCRYPTED_ENV_CONTENT});let zip=await lambda.createZip(),bytes2=new Uint8Array(zip.buffer,zip.byteOffset,zip.byteLength),digest=createHash2("sha256").update(bytes2).digest("hex");await writeFile(join6(params.zipDirectory,`${digest}.zip`),bytes2,{mode:384});let config=getFunctionConfig(lambda),input={...config,framework:config.framework&&{slug:config.framework.slug},digest,size:bytes2.length};return outputs.map(output=>({...output,lambda:input}))}))).flat(),{descriptors}=z.object({descriptors:z.array(z.array(descriptorSchema).min(1))}).parse(await client.fetch(`/v2/deployments/${params.deploymentId}/builds/function-descriptors`,{method:"POST",body:JSON.stringify({lambdas}),headers:{"content-type":"application/json"},accountId:params.teamId,retry:{retries:0}}));if(descriptors.length!==lambdas.length)throw new Error("Descriptor count does not match function outputs");return lambdas.map(({path:path2,lambda},index)=>{let regional=descriptors[index];if(new Set(regional.map(d=>d.FunctionName)).size!==1)throw new Error("Inconsistent regional function name");return{path:path2,digest:lambda.digest,size:lambda.size,regional}})}import{isDeepStrictEqual}from"node:util";import{join as join8}from"node:path";import{mkdir as mkdir2,mkdtemp,rename,rm,stat as stat5,writeFile as writeFile3}from"node:fs/promises";var import_build_utils7=__toESM(require_build_utils(),1);import{basename as basename2,join as join7,relative as relative4,sep as sep3}from"node:path";import{copyFile,cp,mkdir,readFile as readFile3,readdir as readdir4,stat as stat4,writeFile as writeFile2}from"node:fs/promises";async function prepareContinuation(params){let{directory,outputDir,destination,manifest,repoRootPath=directory}=params,validateSource=await validateBuildOutput({directory,outputDir,repoRootPath});await cp(outputDir,destination,{recursive:!0,dereference:!0,filter:path2=>basename2(path2)===".vc-config.json"||!relative4(outputDir,path2).split(sep3).slice(0,-1).some(segment=>segment.endsWith(".func"))}),await writeFile2(join7(destination,"provision.json"),JSON.stringify(manifest));let manifests=new Set(await packageManifests(directory));if(repoRootPath!==directory)for(let path2 of await packageManifests(repoRootPath))manifests.add(path2);for(let path2 of Object.keys(manifest)){let configPath=join7(destination,"functions",`${path2}.func`,".vc-config.json"),config=JSON.parse(await readFile3(configPath,"utf8"));for(let[file,source]of Object.entries(config.filePathMap??{}))basename2(file)==="package.json"&&manifests.add(join7(repoRootPath,source));delete config.filePathMap,await writeFile2(configPath,JSON.stringify({...config,architecture:new import_build_utils7.Lambda({...config,files:{}}).architecture}))}let[firstFunction]=Object.keys(manifest);if(firstFunction!==void 0)for(let[i,path2]of[...manifests].entries()){let target=join7(destination,"functions",`${firstFunction}.func`,"__byoc_security__",String(i));await mkdir(target,{recursive:!0}),await copyFile(await validateSource(path2),join7(target,"package.json"))}}async function packageManifests(root){let modules=join7(root,"node_modules"),names=await readdir4(modules).catch(()=>[]),packages=await Promise.all(names.map(async name=>name.startsWith(".")?[]:name.startsWith("@")?(await readdir4(join7(modules,name)).catch(()=>[])).map(entry=>join7(modules,name,entry)):[join7(modules,name)]));return(await Promise.all([root,...packages.flat()].map(dir=>{let path2=join7(dir,"package.json");return stat4(path2).then(()=>path2,()=>{})}))).filter(p=>p!==void 0)}async function describeDeployment(client,params){let output=join8(params.directory,".vercel",params.deploymentId),buildOutput=join8(params.directory,".vercel/output"),build=join8(output,"build"),repoRootPath=params.repoRootPath??params.directory,source=await exists(buildOutput)&&!await exists(join8(buildOutput,"provision.json"))?buildOutput:build;if(!await exists(join8(source,"config.json")))throw new DescribeError("prebuilt_not_found",`No local build output found. Run \`vercel build --id ${params.deploymentId}\` before \`vercel deploy describe\`.`);await mkdir2(join8(params.directory,".vercel"),{recursive:!0});let staging=await mkdtemp(join8(params.directory,".vercel",`.describe-${params.deploymentId}-`)),removeStaging=!0,functions=new Map,layers={},manifest={};try{await mkdir2(join8(staging,"zips")),await mkdir2(join8(staging,"layers"));let described=await describeFunctions(client,{deploymentId:params.deploymentId,directory:params.directory,repoRootPath,outputDir:source,quiet:params.quiet,teamId:params.teamId,zipDirectory:join8(staging,"zips")});for(let{path:path2,digest,size,regional}of described){for(let descriptor of regional){let layerNames=[];for(let arn of descriptor.Layers){let layer=descriptor.ResolvableLayers[arn];if(!layer)throw new DescribeError("invalid_response","The deployment API did not provide a download URL for a required runtime layer.");let name=createHash3("sha256").update(arn).digest("hex");if(layerNames.push(name),layers[name])continue;let response=await fetch(layer.url,{signal:AbortSignal.timeout(6e4)});if(!response.ok)throw new DescribeError("layer_download_failed","Could not download a required runtime layer. Retry this describe command.");let bytes2=new Uint8Array(await response.arrayBuffer()),file=`layers/${createHash3("sha256").update(bytes2).digest("hex")}.zip`;await writeFile3(join8(staging,file),bytes2,{mode:384}),layers[name]=file}let{Region,Layers,ResolvableLayers,...configuration}=descriptor,fn={code:`zips/${digest}.zip`,region:Region,layers:layerNames,configuration},key=`${descriptor.Region}:${descriptor.FunctionName}`,previous=functions.get(key);if(previous&&!isDeepStrictEqual(previous,fn))throw new DescribeError("invalid_response","Conflicting descriptors for the same regional function");functions.set(key,fn)}manifest[path2]={awsAccountId:params.awsAccountId,digest,functionName:regional[0].FunctionName,regions:[...new Set(regional.map(d=>d.Region))],size}}await writeFile3(join8(staging,"descriptor.json"),JSON.stringify({awsAccountId:params.awsAccountId,deploymentId:params.deploymentId,functions:[...functions.values()],layers,version:1},null,2),{mode:384}),await prepareContinuation({directory:params.directory,repoRootPath,outputDir:source,destination:join8(staging,"output"),manifest}),await mkdir2(output,{recursive:!0,mode:448});let backup=join8(staging,"backup");await mkdir2(backup);let moves=[],move=async(from,to)=>{await rename(from,to),moves.push([from,to])},preserve=async(path2,name)=>{await exists(path2)&&await move(path2,join8(backup,name))};try{for(let name of["zips","layers","descriptor.json"])await preserve(join8(output,name),name),await move(join8(staging,name),join8(output,name));source===buildOutput?(await preserve(build,"build"),await move(buildOutput,build)):await preserve(buildOutput,"output"),await move(join8(staging,"output"),buildOutput)}catch(error){removeStaging=!1;for(let[from,to]of moves.reverse())await rename(to,from);throw removeStaging=!0,error}return output}finally{removeStaging&&await rm(staging,{recursive:!0,force:!0})}}var exists=path2=>stat5(path2).then(()=>!0,error=>{if(error.code==="ENOENT")return!1;throw error});import{join as join10}from"node:path";import{join as join9,relative as relative5}from"node:path";async function resolveDescribeProject(client){try{let link=await getLinkFromDir(join9(client.cwd,".vercel"));if(link){let{repoRoot,resolvedRootDirectory}=resolvePerDirectoryLinkRoot(client.cwd,link.settings?.rootDirectory);return{...link,directory:join9(repoRoot,resolvedRootDirectory),repoRootPath:repoRoot}}let repo=await getRepoLink(client,client.cwd);if(!repo?.repoConfig?.projects.length)throw new DescribeError("not_linked","No linked project found. Run `vercel link`, or restore CI project settings with `vercel pull --yes`.");let matches=findProjectsFromPath(repo.repoConfig.projects,relative5(repo.rootPath,client.cwd)),candidates=matches.length?matches:repo.repoConfig.projects;if(candidates.length!==1)throw new DescribeError("ambiguous_project","Multiple projects are linked here. Run this command from the intended project directory, or pass --cwd <PROJECT_DIRECTORY>.");let project=await getProjectLink(client,client.cwd,candidates[0].id,!0);if(!project?.repoRoot)throw new Error("Project link changed");return{...project,directory:join9(project.repoRoot,project.projectRootDirectory||""),repoRootPath:project.repoRoot}}catch(error){throw error instanceof DescribeError?error:new DescribeError("invalid_project_link","Could not read the local project link. Check that .vercel/project.json or .vercel/repo.json is readable and contains valid project settings.")}}async function describe(client){let asJson=wantsMachineReadableOutput("deploy",client.argv),fail=(reason,message,code2=1)=>(asJson?client.stderr.write(`${JSON.stringify({status:"error",reason,message})}
19
+ `;function hydrateLambdaFiles(lambda,encryptedEnv){let files=lambda.files??{};if(lambda.runtime==="container"||!encryptedEnv.filename||!encryptedEnv.contentBase64)return files;if(files[encryptedEnv.filename]=new import_build_utils.FileBlob({data:Buffer.from(encryptedEnv.contentBase64,"base64")}),lambda.supportsWrapper!==!0&&!NATIVELY_WRAPPER_SUPPORTED_FAMILIES.some(family=>lambda.runtime.startsWith(family))){if(!lambda.runtime.startsWith("provided"))throw new Error(`Serverless Function runtime ${lambda.runtime} does not support more than 4KB for environment variables`);let userBootstrap=files[ROOT_BOOTSTRAP_PATH];if(!userBootstrap)throw new Error(`Serverless Function runtime ${lambda.runtime} does not support more than 4KB for environment variables`);if(files[USER_BOOTSTRAP_PATH])throw new Error(`Cannot wrap "provided.*" lambda: reserved file path ${USER_BOOTSTRAP_PATH} is already in use. Please rename your file.`);files[USER_BOOTSTRAP_PATH]=userBootstrap,delete files[ROOT_BOOTSTRAP_PATH],files[ROOT_BOOTSTRAP_PATH]=new import_build_utils.FileBlob({data:BOOTSTRAP_SHIM,mode:33261})}return files}import{join as join6}from"node:path";var import_build_utils2=__toESM(require_build_utils(),1);import{join as join2}from"path";import{readFile}from"node:fs/promises";async function maybeReadJSON(path2){let contents;try{contents=await readFile(path2,"utf8")}catch(err){if(err.code!=="ENOENT")throw err;return}try{return JSON.parse(contents.charCodeAt(0)===65279?contents.slice(1):contents)}catch(err){throw err.message=`${path2}: ${err.message}`,err}}async function getBuildOutputConfig(outputDir){let configPath=getBuildOutputConfigPath(outputDir),config=await maybeReadJSON(configPath);if(!config)return;if(config.version!==3)throw new Error(`Expected \`version: 3\` in "${configPath}" file (received \`${config.version}\`)`);validateDeploymentId(config.deploymentId),validateExperimentalServicesV2(config.experimentalServicesV2);let framework=validateFrameworkVersion(config.framework);return{...config,framework}}function getBuildOutputConfigPath(outputDir){return join2(outputDir,"config.json")}var MAX_DEPLOYMENT_ID_LENGTH=32,MAX_FRAMEWORK_SLUG_LENGTH=50,MAX_FRAMEWORK_VERSION_LENGTH=50,VALID_DEPLOYMENT_ID_PATTERN=/^[a-zA-Z0-9_-]+$/;function validateDeploymentId(deploymentId){if(deploymentId&&deploymentId.length>MAX_DEPLOYMENT_ID_LENGTH)throw new import_build_utils2.NowBuildError({message:`The configured deploymentId "${deploymentId}" exceeds the maximum length of ${MAX_DEPLOYMENT_ID_LENGTH} characters. Please use a shorter deploymentId.`,code:"VC_BUILD_INVALID_DEPLOYMENT_ID_LENGTH"});if(deploymentId&&!VALID_DEPLOYMENT_ID_PATTERN.test(deploymentId))throw new import_build_utils2.NowBuildError({message:`The configured deploymentId "${deploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,code:"VC_BUILD_INVALID_DEPLOYMENT_ID_CHARACTERS"})}function validateFrameworkVersion(framework){if(!framework)return;let{slug,version}=framework;if(typeof slug=="string"){if(typeof version!="string")throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "version" type "${typeof version}" should be "string"`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_VERSION_TYPE"});if(slug.length>MAX_FRAMEWORK_SLUG_LENGTH){let trimmedSlug=slug.slice(0,MAX_FRAMEWORK_SLUG_LENGTH);throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "framework.slug" length ${slug.length} > ${MAX_FRAMEWORK_SLUG_LENGTH}. "${trimmedSlug}..."`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_SLUG_LENGTH"})}if(version.length>MAX_FRAMEWORK_VERSION_LENGTH){let trimmedVersion=version.slice(0,MAX_FRAMEWORK_VERSION_LENGTH);throw new import_build_utils2.NowBuildError({message:`Invalid config.json: "framework.version" length ${version.length} > ${MAX_FRAMEWORK_VERSION_LENGTH}. "${trimmedVersion}..."`,code:"VC_BUILD_INVALID_CONFIG_JSON_FRAMEWORK_VERSION_LENGTH"})}return framework}}function validateExperimentalServicesV2(experimentalServicesV2){if(experimentalServicesV2!==void 0&&(!experimentalServicesV2||typeof experimentalServicesV2!="object"||Array.isArray(experimentalServicesV2)))throw new import_build_utils2.NowBuildError({code:"INVALID_BUILD_OUTPUT_CONFIG",message:'Invalid config.json: "experimentalServicesV2" must be an object.'})}async function getBuildOutputConfigOrThrow(outputDir){let config=await getBuildOutputConfig(outputDir);if(config)return config;throw new Error(`Config file was not found at "${getBuildOutputConfigPath(outputDir)}"`)}var import_build_utils3=__toESM(require_build_utils(),1);function isRouteMiddleware(route){return"middlewarePath"in route&&typeof route.middlewarePath=="string"}var cache=new WeakMap;function getMiddlewareRouting(buildResult){let cached=cache.get(buildResult.functions);if(cached&&cached.routes===buildResult.routes)return cached.routing;let routing=new Map,{lambdas,edgeFunctions}=buildResult.functions;for(let route of buildResult.routes){if(!isRouteMiddleware(route))continue;let outputPath=route.middlewarePath;!lambdas.has(outputPath)&&!edgeFunctions.has(outputPath)&&(outputPath=outputPath.replace(/^\//,""));let output=lambdas.get(outputPath)??edgeFunctions.get(outputPath);if(!outputPath||!output)throw new import_build_utils3.NowBuildError({message:`Mapping ${route.middlewarePath} not found. Maybe you provided a wrong middlewarePath?`,code:"middleware_path_not_found"});let index=routing.get(outputPath)?.index??routing.size;routing.set(outputPath,output.type==="EdgeFunction"?{type:"middleware",middlewarePath:route.middlewarePath,outputPath,edgeFunction:output,index}:{type:"middleware-lambda",middlewarePath:route.middlewarePath,outputPath,index})}return cache.set(buildResult.functions,{routes:buildResult.routes,routing}),routing}var import_semver=__toESM(require_semver(),1),import_build_utils4=__toESM(require_build_utils(),1);import{createHash}from"crypto";import fs2 from"fs";var fileSizeCache=new Map,getFileSize=path2=>{if(!path2)return Promise.resolve(0);let cached=fileSizeCache.get(path2);if(cached)return cached;let promise=fs2.promises.lstat(path2).then(stats=>stats.size);return fileSizeCache.set(path2,promise),promise},collectUncompressedSize=async(files,ignoreFn)=>{let size=0;return await Promise.all(Object.keys(files).map(async fileKey=>{if(!ignoreFn?.(fileKey)){if(files[fileKey].type==="FileBlob")size+=files[fileKey].data.length;else if(files[fileKey].type==="FileFsRef"){let curSize=files[fileKey].size??await getFileSize(files[fileKey].fsPath);size+=curSize}}})),size};var MIB=1024*1024,MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES=250*MIB,LAMBDA_RESERVED_UNCOMPRESSED_SIZE_BYTES=25*MIB,LARGE_FUNCTION_THRESHOLD_BYTES=MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES-LAMBDA_RESERVED_UNCOMPRESSED_SIZE_BYTES,MANIFEST_FILE_NAMES=["routes-manifest.json","server/pages-manifest.json","server/app-paths-manifest.json","app-path-routes-manifest.json"],TEST_DYNAMIC_ROUTE=/\/\[[^\/]+?\](?=\/|$)/;function isNextjsDynamicRoute(route){return route=route.startsWith("/")?route:`/${route}`,TEST_DYNAMIC_ROUTE.test(route)}function computeLambdaFieldsSignature(lambda,lambdaFields){let parts=[];for(let field of lambdaFields)parts.push(JSON.stringify(lambda[field]));return parts.join("|")}async function getLambdaFileSizeMetadata(lambdaFiles){let fileKeys=Object.keys(lambdaFiles),fileSizes=new Map,uncompressedSize=0;for(let fileKey of fileKeys){let file=lambdaFiles[fileKey];if(file===void 0)throw new Error("Expected lambdaFiles[fileKey] to be defined");let fileSize=0;file.type==="FileBlob"?fileSize=file.data.length:file.type==="FileFsRef"&&(fileSize=await collectUncompressedSize({[fileKey]:file},void 0)),fileSizes.set(fileKey,fileSize),uncompressedSize+=fileSize}return{fileKeys,fileSizes,uncompressedSize}}async function groupLambdas(lambdas,options){let{force}=options,lambdaFields=["allowQuery","affinity","architecture","awsLambdaHandler","environment","experimentalResponseStreaming","experimentalTriggers","framework","handler","maxConcurrency","maxDuration","memory","operationType","regions","runtime","runtimeLanguage","shouldAddHelpers","shouldAddSourcemapSupport","shouldDisableAutomaticFetchInstrumentation","supportsCancellation","supportsMultiPayloads","supportsResponseStreaming","supportsWrapper","useWebApi","functionFailoverRegions"],_typeCheck=lambdaFields,fieldsToCompare=force==="all"?["runtime","maxConcurrency"]:lambdaFields,maxUncompressedFunctionSize=LARGE_FUNCTION_THRESHOLD_BYTES,maxBundleSizeMb=options.maxBundleSizeMb;if(maxBundleSizeMb!==void 0&&Number.isFinite(maxBundleSizeMb)){let customMaxUncompressedFunctionSize=Math.floor(maxBundleSizeMb*MIB);output_manager_default.warn(`Warn: custom max uncompressed function size of ${customMaxUncompressedFunctionSize/MIB}MiB configured`),maxUncompressedFunctionSize=Math.min(customMaxUncompressedFunctionSize,MAX_UNCOMPRESSED_FUNCTION_SIZE_BYTES)}let seenLambdas=new Map;for(let[name,lambda]of Object.entries(lambdas)){if(!lambda.experimentalAllowBundling||!lambda.files)continue;let existingNames=seenLambdas.get(lambda);existingNames?existingNames.push(name):seenLambdas.set(lambda,[name])}let handlerDigestPromiseCache=new Map,getHandlerDigest=handlerFile=>{if(!handlerFile)return Promise.resolve(void 0);let cached=handlerDigestPromiseCache.get(handlerFile);if(cached)return cached;let promise=(async()=>{try{let handlerStream=handlerFile.toStream(),handlerBuffer=await(0,import_build_utils4.streamToBuffer)(handlerStream),handlerBytes=new Uint8Array(handlerBuffer.buffer,handlerBuffer.byteOffset,handlerBuffer.byteLength);return createHash("sha1").update(handlerBytes).digest("hex")}catch{return}})();return handlerDigestPromiseCache.set(handlerFile,promise),promise},bundlesBySignature=new Map,allBundledLambdas=[];for(let[lambda,lambdaNames]of seenLambdas){let lambdaFiles=lambda.files;if(!lambdaFiles)continue;let signature=computeLambdaFieldsSignature(lambda,fieldsToCompare),{fileKeys,fileSizes,uncompressedSize}=await getLambdaFileSizeMetadata(lambdaFiles),handlerDigest=await getHandlerDigest(lambdaFiles[lambda.handler]),compatibleBundles=bundlesBySignature.get(signature),isLarge=uncompressedSize>=LARGE_FUNCTION_THRESHOLD_BYTES,foundMatchingBundle=!1;if(compatibleBundles&&!isLarge)for(let bundleMeta of compatibleBundles){if(bundleMeta.isLarge||!(handlerDigest===bundleMeta.handlerDigest)&&force!=="all")continue;let uncompressedBytesIncrease=0;for(let fileKey of fileKeys){let incomingFileSize=fileSizes.get(fileKey)??0,existingFileSize=bundleMeta.fileSizesByKey.get(fileKey);existingFileSize===void 0?uncompressedBytesIncrease+=incomingFileSize:uncompressedBytesIncrease+=incomingFileSize-existingFileSize}let newTotalSize=bundleMeta.uncompressedBytes+uncompressedBytesIncrease;if(newTotalSize<=maxUncompressedFunctionSize){foundMatchingBundle=!0,bundleMeta.uncompressedBytes=newTotalSize,bundleMeta.lambdaNames.push(...lambdaNames);for(let fileKey of fileKeys)bundleMeta.fileSizesByKey.set(fileKey,fileSizes.get(fileKey)??0);let potentialLambdaFiles=bundleMeta.lambda.files;potentialLambdaFiles&&(bundleMeta.lambda.files=Object.assign(potentialLambdaFiles,lambdaFiles));break}}if(!foundMatchingBundle){let newBundleMeta={lambda,signature,handlerDigest,isLarge,uncompressedBytes:uncompressedSize,fileSizesByKey:new Map(fileSizes),lambdaNames:[...lambdaNames]},signatureBundles=bundlesBySignature.get(signature);signatureBundles||(signatureBundles=[],bundlesBySignature.set(signature,signatureBundles)),signatureBundles.push(newBundleMeta),allBundledLambdas.push(newBundleMeta)}}let finalLambdas=Object.assign({},lambdas);options.debug&&(output_manager_default.debug("GROUP_LAMBDAS: "+JSON.stringify(allBundledLambdas.map(bundleMeta=>({lambdaNames:bundleMeta.lambdaNames,signature:bundleMeta.signature,uncompressedBytes:bundleMeta.uncompressedBytes})),null,2)),output_manager_default.debug(`total grouped lambdas: ${allBundledLambdas.length}`));for(let bundleMeta of allBundledLambdas){let lambda=bundleMeta.lambda;for(let lambdaName of bundleMeta.lambdaNames)finalLambdas[lambdaName]=lambda;if(lambda.framework?.slug==="nextjs"&&lambda.framework.version){let CORRECTED_MANIFESTS_VERSION="v12.2.0";if(import_semver.default.gte(lambda.framework.version,CORRECTED_MANIFESTS_VERSION)){let pageFiles=[],manifestFileKeys={},manifestFileNames=MANIFEST_FILE_NAMES;for(let fileKey of Object.keys(lambda.files||{})){let isPageFile=fileKey.includes("server/pages/"),isAppFile=fileKey.includes("server/app/");if(isPageFile||isAppFile){let relativePageFile=fileKey.split(`server/${isPageFile?"pages":"app"}/`).pop();relativePageFile&&pageFiles.push(relativePageFile)}for(let manifestFileName of manifestFileNames)fileKey.endsWith(`/${manifestFileName}`)&&(manifestFileKeys[manifestFileName]=fileKey)}let appPathRoutesManifestFilesKey=manifestFileKeys["app-path-routes-manifest.json"],appPathRoutesManifestFile=appPathRoutesManifestFilesKey&&lambda.files?.[appPathRoutesManifestFilesKey],appPathRoutesManifest=appPathRoutesManifestFile?await(0,import_build_utils4.streamToBuffer)(appPathRoutesManifestFile.toStream()).then(res=>JSON.parse(res.toString("utf8"))).catch(()=>({})):{};for(let manifestFileName of manifestFileNames){let manifestFilesKey=manifestFileKeys[manifestFileName],manifestFile=manifestFilesKey&&lambda.files?.[manifestFilesKey];if(!manifestFile)continue;let manifestData=JSON.parse((await(0,import_build_utils4.streamToBuffer)(manifestFile.toStream())).toString("utf8")),normalizedPages=new Set(pageFiles.map(page=>(page=`/${page.replace(/\.js$/,"")}`,page==="/index"&&(page="/"),appPathRoutesManifest[page]||page)));switch(manifestFileName){case"routes-manifest.json":{let filterItem=item=>normalizedPages.has(item.page);manifestData.dynamicRoutes=manifestData.dynamicRoutes?.filter(filterItem),manifestData.staticRoutes=manifestData.staticRoutes?.filter(filterItem);break}case"server/pages-manifest.json":{for(let key of Object.keys(manifestData))isNextjsDynamicRoute(key)&&!normalizedPages.has(key)&&delete manifestData[key];break}case"server/app-paths-manifest.json":{if(appPathRoutesManifest)for(let key of Object.keys(manifestData)){let normalizedKey=appPathRoutesManifest[key]||key.replace(/(^|\/)(page|route)$/,"");isNextjsDynamicRoute(normalizedKey)&&!normalizedPages.has(normalizedKey)&&delete manifestData[key]}break}}lambda.files&&(lambda.files[manifestFilesKey]=new import_build_utils4.FileBlob({contentType:"application/json",data:JSON.stringify(manifestData)}))}}}}return finalLambdas}async function groupBundleableLambdas(params){let lambdas={};for(let[path2,lambda]of params.functions.lambdas)lambda.experimentalAllowBundling&&(lambdas[path2]=lambda);for(let[path2,prerender]of params.functions.prerenders)prerender.lambda.experimentalAllowBundling&&(lambdas[path2]=prerender.lambda);if(Object.keys(lambdas).length===0)return;let grouped=await groupLambdas(lambdas,{force:void 0,maxBundleSizeMb:params.options.maxBundleSizeMb,debug:params.options.debugGroupLambdas});for(let[path2,lambda]of Object.entries(grouped))if(params.functions.lambdas.has(path2))params.functions.lambdas.set(path2,lambda);else{let prerender=params.functions.prerenders.get(path2);if(prerender)prerender.lambda=lambda;else throw new Error(`Grouped lambda "${path2}" does not match any build output`)}}var import_build_utils6=__toESM(require_build_utils(),1);import{join as join3,relative}from"path";import{readdir,stat}from"fs/promises";var SUFFIX=".func";async function*createFunctionEntriesIterator(dir,root=dir){let entries;try{entries=await readdir(dir,{withFileTypes:!0})}catch(error){if(!(typeof error=="object"&&error!==null&&"code"in error)||error.code!=="ENOENT"&&error.code!=="ENOTDIR")throw error;entries=[]}let names;for(let entry of entries){let absolutePath=join3(dir,entry.name),isSymbolicLink=entry.isSymbolicLink();if(entry.isDirectory()||isSymbolicLink&&(await stat(absolutePath)).isDirectory())if(entry.name.endsWith(SUFFIX)){names??=new Set(entries.map(e=>e.name));let baseName=entry.name.slice(0,-SUFFIX.length);yield{hasPrerenderConfig:names.has(`${baseName}.prerender-config.json`),isSymbolicLink,path:relative(root,absolutePath.substring(0,absolutePath.length-SUFFIX.length))}}else yield*createFunctionEntriesIterator(absolutePath,root)}}import{dirname,isAbsolute,join as join4,relative as relative2,resolve as resolve2,sep}from"node:path";var import_build_utils5=__toESM(require_build_utils(),1);import{lstat,readlink,realpath,readdir as readdir2,stat as stat2}from"node:fs/promises";import assert from"assert";import path from"path";async function glob(options){if(!path.isAbsolute(options.cwd))throw new Error(`basePath/cwd must be an absolute path (${options.cwd})`);let results={},statCache={},symlinks={},files=await walkAll(options.cwd,!!options.follow,statCache,symlinks),dirs=new Set,dirsWithEntries=new Set;for(let relativePath of files){let fsPath=path.join(options.cwd,relativePath),stats=statCache[fsPath];assert(stats,`statCache does not contain value for ${relativePath}`);let isSymlink=symlinks[fsPath];if(options.follow&&(isSymlink||(await lstat(fsPath)).isSymbolicLink())){let target=await readlink(fsPath),absoluteTarget=path.resolve(path.dirname(fsPath),target);if(path.relative(options.cwd,absoluteTarget).startsWith(`..${path.sep}`))continue}if(isSymlink||stats.isFile()||stats.isDirectory()){isSymlink&&(stats=await lstat(fsPath));let dirname3=path.dirname(relativePath);if(dirsWithEntries.add(dirname3),stats.isDirectory()){dirs.add(relativePath);continue}results[relativePath]=new import_build_utils5.FileFsRef({mode:stats.mode,fsPath,size:stats.size})}}if(options.includeDirectories)for(let relativePath of dirs){if(dirsWithEntries.has(relativePath))continue;let fsPath=path.join(options.cwd,relativePath),stats=statCache[fsPath];results[relativePath]=new import_build_utils5.FileFsRef({mode:stats.mode,fsPath,size:stats.size})}return results}async function walkAll(cwd,follow,statCache,symlinks){let files=[];async function walk(dirAbs,realDir,ancestors){let entries;try{entries=await readdir2(dirAbs,{withFileTypes:!0})}catch(err){let code2=err.code;if(code2==="ENOENT"||code2==="ENOTDIR")return;throw err}await Promise.all(entries.map(async entry=>{let abs=path.join(dirAbs,entry.name);if(entry.isSymbolicLink())if(follow){let stats=await stat2(abs).catch(()=>lstat(abs).catch(()=>null));if(stats===null)return;if(statCache[abs]=stats,files.push(abs),stats.isDirectory()){let real=await realpath(abs).catch(()=>null);real!==null&&!ancestors.has(real)&&await walk(abs,real,new Set(ancestors).add(real))}}else{let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,symlinks[abs]=!0,files.push(abs)}else if(entry.isDirectory()){let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,files.push(abs);let real=path.join(realDir,entry.name);await walk(abs,real,new Set(ancestors).add(real))}else{let stats=await lstat(abs).catch(()=>null);if(stats===null)return;statCache[abs]=stats,files.push(abs)}}))}let cwdReal=follow?await realpath(cwd).catch(()=>null):cwd;return cwdReal!==null&&await walk(cwd,cwdReal,new Set([cwdReal])),files.map(abs=>path.relative(cwd,abs)).sort((a,b)=>a.localeCompare(b,"en"))}import{isNativeError}from"node:util/types";import{readlink as readlink2,realpath as realpath2}from"node:fs/promises";async function readFunctions(params){let fileFsRefsCache=new Map,entries=[],functionsDir=join4(params.outputDir,"functions"),iterator=enumerate(createFunctionEntriesIterator(functionsDir));await Promise.all(Array.from({length:params.concurrency??32},async()=>{for await(let[index,entry]of iterator)entries[index]=await deserializeFunctionEntry({prebuilt:params.prebuilt,entry,fileFsRefsCache,functionsDir,repoRootPath:params.repoRootPath})}));let serverActionsManifestPaths=new Set,edgeFunctions=new Map,unsortedPrerenders=new Map,functionSymlinks=new Map,lambdas=new Map;for(let functionEntry of entries)functionEntry.symlinkTarget!==void 0&&functionSymlinks.set(functionEntry.path,functionEntry.symlinkTarget),functionEntry.serverActionsManifestPath&&serverActionsManifestPaths.add(functionEntry.serverActionsManifestPath),functionEntry.output?.type==="Prerender"?unsortedPrerenders.set(functionEntry.path,functionEntry.output):functionEntry.output?.type==="Lambda"?lambdas.set(functionEntry.path,functionEntry.output):functionEntry.output?.type==="EdgeFunction"&&edgeFunctions.set(functionEntry.path,functionEntry.output);for(let[path2,target]of functionSymlinks){let destFunction=unsortedPrerenders.get(target)?.lambda??edgeFunctions.get(target)??lambdas.get(target);if(!destFunction)throw new Error(`Could not find target "${target}" Lambda or EdgeFunction for path "${path2}"`);let srcPrerender=unsortedPrerenders.get(path2);if(!srcPrerender)destFunction.type==="Lambda"?lambdas.set(path2,destFunction):destFunction.type==="EdgeFunction"&&edgeFunctions.set(path2,destFunction);else{if(destFunction.type!=="Lambda")throw new Error(`Unexpected function type "${destFunction.type}" at path "${path2}"`);srcPrerender.lambda=destFunction}}let prerenders=new Map;for(let[path2,prerender]of[...unsortedPrerenders].sort((a,b)=>(a[1].group??0)-(b[1].group??0)))validatePrerender(prerender),prerenders.set(path2,prerender);return{edgeFunctions,lambdas,prerenders,serverActionsManifestPaths}}async function*enumerate(iterable){let index=0;for await(let item of iterable)yield[index++,item]}async function deserializeFunctionEntry(params){let functionDir=join4(params.functionsDir,`${params.entry.path}.func`),prerenderConfigPath=join4(params.functionsDir,`${params.entry.path}.prerender-config.json`),configPromise=params.entry.hasPrerenderConfig?maybeReadJSON(prerenderConfigPath):void 0;configPromise?.catch(()=>{});let lambda,serverActionsManifestPath,symlinkTarget;if(params.entry.isSymbolicLink)symlinkTarget=await readlink2(functionDir).then(link=>join4(dirname(params.entry.path),link).slice(0,-5));else{let functionConfigPath=join4(functionDir,".vc-config.json"),[functionConfig,files]=await Promise.all([maybeReadJSON(functionConfigPath),glob({cwd:functionDir,includeDirectories:!0})]);if(!functionConfig)throw new Error(`Could not load function config: "${functionConfigPath}"`);if(delete files[".vc-config.json"],functionConfig.filePathMap&&await hydrateFilesMap(files,functionConfig.filePathMap,params.repoRootPath,params.fileFsRefsCache,params.prebuilt),"type"in functionConfig&&functionConfig.type==="EdgeFunction"||functionConfig.runtime==="edge")return{path:params.entry.path,output:new import_build_utils6.EdgeFunction({deploymentTarget:"v8-worker",...functionConfig,files})};let supportsResponseStreaming=functionConfig.supportsResponseStreaming??functionConfig.experimentalResponseStreaming;lambda="launcherType"in functionConfig&&functionConfig.launcherType==="Nodejs"?new import_build_utils6.NodejsLambda({...functionConfig,files,supportsResponseStreaming:functionConfig.awsLambdaHandler===void 0||functionConfig.awsLambdaHandler===""||supportsResponseStreaming}):new import_build_utils6.Lambda({...functionConfig,files,supportsResponseStreaming}),serverActionsManifestPath=functionConfig.filePathMap?.[".next/server/server-reference-manifest.json"]}if(configPromise){let prerenderConfig=await configPromise;if(prerenderConfig)return{path:params.entry.path,symlinkTarget,serverActionsManifestPath,output:new import_build_utils6.Prerender({...prerenderConfig,fallback:await deserializePrerenderFallback(prerenderConfigPath,prerenderConfig.fallback,params),initialMetadata:sanitizeInitialMetadata(prerenderConfig.initialMetadata),lambda})}}return{path:params.entry.path,symlinkTarget,output:lambda,serverActionsManifestPath}}function validatePrerender(prerender){if(prerender.lambda===void 0)throw new Error('Prerender "buildResult" is missing "lambda" property')}async function hydrateFilesMap(files,filesMap,repoRootPath,fileFsRefsCache,prebuilt){let rootPath=prebuilt?await realpath2(repoRootPath):void 0;async function hydrateFile(projectPath){let fsPath=join4(repoRootPath,projectPath);rootPath!==void 0&&await validatePrebuiltFilePath(fsPath,rootPath,`file map source "${projectPath}"`,!0);let file=await import_build_utils6.FileFsRef.fromFsPath({fsPath});return fileFsRefsCache.set(projectPath,file),file}let pending;for(let functionPath in filesMap){let projectPath=filesMap[functionPath],cached=fileFsRefsCache.get(projectPath);if(cached&&!(cached instanceof Promise)){files[functionPath]=cached;continue}let filePromise=cached;if(!filePromise){let promise=hydrateFile(projectPath);fileFsRefsCache.set(projectPath,promise),filePromise=promise}(pending??=[]).push(filePromise.then(file=>{files[functionPath]=file}))}pending&&await Promise.all(pending)}async function validatePrebuiltFilePath(fsPath,rootPath,source,enableDanglingSymlinks=!1){let resolvedPath;try{resolvedPath=await realpath2(fsPath)}catch(error){if(!enableDanglingSymlinks||!isNativeError(error)||!("code"in error)||error.code!=="ENOENT")throw error;let target=await readlink2(fsPath),parentPath=await validatePrebuiltFilePath(dirname(fsPath),rootPath,source);resolvedPath=resolve2(parentPath,target)}let sourcePath=relative2(rootPath,resolvedPath);if(sourcePath===".."||sourcePath.startsWith(`..${sep}`)||isAbsolute(sourcePath))throw new import_build_utils6.NowBuildError({code:"INVALID_PREBUILT_FILE_PATH",message:`Prebuilt ${source} must be inside the uploaded project.`});return resolvedPath}function sanitizeInitialMetadata(initialMetadata){try{if(typeof initialMetadata!="object"||initialMetadata===null||Array.isArray(initialMetadata))return;let{compute,htmlSize}=initialMetadata;return compute!=="blocking"&&compute!=="resuming"&&compute!=="static"||htmlSize!==void 0&&(!Number.isSafeInteger(htmlSize)||htmlSize<0)?void 0:{compute,...htmlSize!==void 0&&{htmlSize}}}catch{return}}async function deserializePrerenderFallback(prerenderConfigPath,fallback,options){if(fallback==null)return null;let path2=typeof fallback=="string"?fallback:fallback.fsPath,fsPath=join4(dirname(prerenderConfigPath),path2);return options.prebuilt&&await validatePrebuiltFilePath(fsPath,await realpath2(options.repoRootPath),`prerender fallback "${path2}"`),typeof fallback=="string"?import_build_utils6.FileFsRef.fromFsPath({fsPath}):fallback.mode!==void 0?new import_build_utils6.FileFsRef({mode:fallback.mode,size:fallback.size,contentType:fallback.contentType,fsPath}):import_build_utils6.FileFsRef.fromFsPath({mode:fallback.mode,size:fallback.size,contentType:fallback.contentType,fsPath})}var import_async_sema=__toESM(require_async_sema(),1),import_ignore=__toESM(require_ignore(),1);import{basename,isAbsolute as isAbsolute2,join as join5,relative as relative3,sep as sep2}from"node:path";import{readFile as readFile2,readdir as readdir3,realpath as realpath3,stat as stat3}from"node:fs/promises";function contains(root,path2){let rel=relative3(root,path2);return rel!==".."&&!rel.startsWith(`..${sep2}`)&&!isAbsolute2(rel)}function invalidSource(){throw new DescribeError("invalid_build_output","Build output references files outside the authorized output or includes excluded source files. Remove unsafe links and excluded file mappings, then rebuild.")}var vcs=(0,import_ignore.default)().add([".hg",".git",".gitmodules",".svn","CVS"]),dependencies=(0,import_ignore.default)().add(["node_modules",".next",".yarn/cache",".pnp*",".venv","venv","__pycache__","/target"]);async function readIgnore(root){let read=name=>readFile2(join5(root,name),"utf8").catch(error=>{if(error.code==="ENOENT")return"";throw error}),[vercelignore,nowignore]=await Promise.all([read(".vercelignore"),read(".nowignore")]);if(vercelignore&&nowignore)throw new DescribeError("invalid_build_output","Cannot use both .vercelignore and .nowignore. Remove the deprecated .nowignore file and retry.");return(0,import_ignore.default)().add((vercelignore||nowignore).replace(/(\n|^)\.\//g,"$1"))}async function validateBuildOutput(options){let root=await realpath3(options.repoRootPath),output=await realpath3(options.outputDir),expectedOutput=join5(root,relative3(options.repoRootPath,options.outputDir));(!contains(root,output)||relative3(expectedOutput,output)!=="")&&invalidSource();let project=options.directory?await realpath3(options.directory):root,bases=[root];if(project!==root&&contains(root,project))for(let segment of relative3(root,project).split(sep2))bases.push(join5(bases[bases.length-1],segment));let ignores=await Promise.all(bases.map(async base=>({base,rules:await readIgnore(base)}))),sema=new import_async_sema.default(32),limit=async fn=>{await sema.acquire();try{return await fn()}finally{sema.release()}},checkSource=async path2=>{let resolved=await limit(()=>realpath3(path2));for(let source of[join5(root,relative3(options.repoRootPath,path2)),resolved]){contains(root,source)||invalidSource();let rel=relative3(root,source).split(sep2).join("/");if(rel&&(vcs.ignores(rel)&&invalidSource(),!contains(output,source)))for(let{base,rules}of ignores){if(!contains(base,source))continue;let relToBase=relative3(base,source).split(sep2).join("/");relToBase&&rules.ignores(relToBase)&&!dependencies.ignores(relToBase)&&invalidSource()}}return resolved},checked=new Map,validateSource=path2=>{let result=checked.get(path2);return result||(result=checkSource(path2),checked.set(path2,result)),result},configs=[],visited=new Set;async function walk(dir,ancestors){visited.add(dir);let next=new Set(ancestors).add(dir),entries=await Promise.all((await limit(()=>readdir3(dir))).map(async name=>{let path2=join5(dir,name),resolved=await limit(()=>realpath3(path2));return(!contains(output,resolved)||next.has(resolved))&&invalidSource(),{path:path2,resolved,stats:await limit(()=>stat3(resolved))}}));for(let{path:path2,resolved,stats}of entries)stats.isDirectory()?visited.has(resolved)||await walk(resolved,next):basename(path2)===".vc-config.json"&&configs.push(resolved)}return await walk(output,new Set),await Promise.all(configs.map(async path2=>{let config=JSON.parse(await limit(()=>readFile2(path2,"utf8")));await Promise.all(Object.values(config.filePathMap??{}).map(source=>(typeof source!="string"&&invalidSource(),validateSource(join5(options.repoRootPath,source)))))})),validateSource}async function prepareFunctions(options){await validateBuildOutput(options);let config=await getBuildOutputConfigOrThrow(options.outputDir);if(config.experimentalServicesV2!==void 0)throw new DescribeError("unsupported_output","This build contains service outputs, which describe does not support.");let functions=await readFunctions({outputDir:options.outputDir,repoRootPath:options.repoRootPath,prebuilt:!0});if(functions.edgeFunctions.size)throw new DescribeError("unsupported_output","This build contains Edge Functions, which cannot be provisioned as AWS Lambda functions.");await groupBundleableLambdas({functions,options:{}});let allFunctions=[...functions.lambdas,...functions.prerenders],groups=new Map,middlewarePaths=getMiddlewareRouting({routes:config.routes??[],functions});for(let[path2,output]of allFunctions){let lambda=output.type==="Prerender"?output.lambda:output;if(lambda.runtime==="container")throw new DescribeError("unsupported_output","This build contains container functions. Describe supports native AWS Lambda functions only.");let outputs=groups.get(lambda)??[];groups.set(lambda,outputs),outputs.push({sourceKind:output.type==="Prerender"?"prerender":"lambda",middleware:output.type==="Lambda"&&middlewarePaths.has(path2)?{}:void 0,path:path2})}return[...groups].map(([lambda,outputs])=>({lambda,outputs}))}import{writeFile}from"node:fs/promises";import{z}from"zod/v3";var descriptorSchema=z.object({Architectures:z.array(z.string()).optional(),Environment:z.object({Variables:z.record(z.string())}),EphemeralStorage:z.object({Size:z.number()}).optional(),FunctionName:z.string().min(1),Handler:z.string(),Layers:z.array(z.string()),MemorySize:z.number(),Region:z.string().min(1),ResolvableLayers:z.record(z.object({url:z.string()})),Runtime:z.string(),Tags:z.record(z.string()),Timeout:z.number().optional()});async function describeFunctions(client,params){let functions=await prepareFunctions({directory:params.directory,repoRootPath:params.repoRootPath,outputDir:params.outputDir}),buildEnv=z.object({VERCEL_ENCRYPTED_ENV_FILENAME:z.string().min(1),VERCEL_ENCRYPTED_ENV_CONTENT:z.string().min(1)}).parse((await fetchDeploymentBuildEnv(client,params.deploymentId,{quiet:params.quiet})).buildEnv),lambdas=(await Promise.all(functions.map(async({lambda,outputs})=>{lambda.files=hydrateLambdaFiles(lambda,{filename:buildEnv.VERCEL_ENCRYPTED_ENV_FILENAME,contentBase64:buildEnv.VERCEL_ENCRYPTED_ENV_CONTENT});let zip=await lambda.createZip(),bytes2=new Uint8Array(zip.buffer,zip.byteOffset,zip.byteLength),digest=createHash2("sha256").update(bytes2).digest("hex");await writeFile(join6(params.zipDirectory,`${digest}.zip`),bytes2,{mode:384});let config=getFunctionConfig(lambda),input={...config,framework:config.framework&&{slug:config.framework.slug},digest,size:bytes2.length};return outputs.map(output=>({...output,lambda:input}))}))).flat(),{descriptors}=z.object({descriptors:z.array(z.array(descriptorSchema).min(1))}).parse(await client.fetch(`/v2/deployments/${params.deploymentId}/builds/function-descriptors`,{method:"POST",body:JSON.stringify({lambdas}),headers:{"content-type":"application/json"},accountId:params.teamId,retry:{retries:0}}));if(descriptors.length!==lambdas.length)throw new Error("Descriptor count does not match function outputs");return lambdas.map(({path:path2,lambda},index)=>{let regional=descriptors[index];if(new Set(regional.map(d=>d.FunctionName)).size!==1)throw new Error("Inconsistent regional function name");return{path:path2,digest:lambda.digest,size:lambda.size,regional}})}import{isDeepStrictEqual}from"node:util";import{join as join8}from"node:path";import{mkdir as mkdir2,mkdtemp,rename,rm,stat as stat5,writeFile as writeFile3}from"node:fs/promises";var import_build_utils7=__toESM(require_build_utils(),1);import{basename as basename2,join as join7,relative as relative4,sep as sep3}from"node:path";import{copyFile,cp,mkdir,readFile as readFile3,readdir as readdir4,stat as stat4,writeFile as writeFile2}from"node:fs/promises";async function prepareContinuation(params){let{directory,outputDir,destination,manifest,repoRootPath=directory}=params,validateSource=await validateBuildOutput({directory,outputDir,repoRootPath});await cp(outputDir,destination,{recursive:!0,dereference:!0,filter:path2=>basename2(path2)===".vc-config.json"||!relative4(outputDir,path2).split(sep3).slice(0,-1).some(segment=>segment.endsWith(".func"))}),await writeFile2(join7(destination,"provision.json"),JSON.stringify(manifest));let manifests=new Set(await packageManifests(directory));if(repoRootPath!==directory)for(let path2 of await packageManifests(repoRootPath))manifests.add(path2);for(let path2 of Object.keys(manifest)){let configPath=join7(destination,"functions",`${path2}.func`,".vc-config.json"),config=JSON.parse(await readFile3(configPath,"utf8"));for(let[file,source]of Object.entries(config.filePathMap??{}))basename2(file)==="package.json"&&manifests.add(join7(repoRootPath,source));delete config.filePathMap,await writeFile2(configPath,JSON.stringify({...config,architecture:new import_build_utils7.Lambda({...config,files:{}}).architecture}))}let[firstFunction]=Object.keys(manifest);if(firstFunction!==void 0)for(let[i,path2]of[...manifests].entries()){let target=join7(destination,"functions",`${firstFunction}.func`,"__byoc_security__",String(i));await mkdir(target,{recursive:!0}),await copyFile(await validateSource(path2),join7(target,"package.json"))}}async function packageManifests(root){let modules=join7(root,"node_modules"),names=await readdir4(modules).catch(()=>[]),packages=await Promise.all(names.map(async name=>name.startsWith(".")?[]:name.startsWith("@")?(await readdir4(join7(modules,name)).catch(()=>[])).map(entry=>join7(modules,name,entry)):[join7(modules,name)]));return(await Promise.all([root,...packages.flat()].map(dir=>{let path2=join7(dir,"package.json");return stat4(path2).then(()=>path2,()=>{})}))).filter(p=>p!==void 0)}async function describeDeployment(client,params){let output=join8(params.directory,".vercel",params.deploymentId),buildOutput=join8(params.directory,".vercel/output"),build=join8(output,"build"),repoRootPath=params.repoRootPath??params.directory,source=await exists(buildOutput)&&!await exists(join8(buildOutput,"provision.json"))?buildOutput:build;if(!await exists(join8(source,"config.json")))throw new DescribeError("prebuilt_not_found",`No local build output found. Run \`vercel build --id ${params.deploymentId}\` before \`vercel deploy describe\`.`);await mkdir2(join8(params.directory,".vercel"),{recursive:!0});let staging=await mkdtemp(join8(params.directory,".vercel",`.describe-${params.deploymentId}-`)),removeStaging=!0,functions=new Map,layers={},manifest={};try{await mkdir2(join8(staging,"zips")),await mkdir2(join8(staging,"layers"));let described=await describeFunctions(client,{deploymentId:params.deploymentId,directory:params.directory,repoRootPath,outputDir:source,quiet:params.quiet,teamId:params.teamId,zipDirectory:join8(staging,"zips")});for(let{path:path2,digest,size,regional}of described){for(let descriptor of regional){let layerNames=[];for(let arn of descriptor.Layers){let layer=descriptor.ResolvableLayers[arn];if(!layer)throw new DescribeError("invalid_response","The deployment API did not provide a download URL for a required runtime layer.");let name=createHash3("sha256").update(arn).digest("hex");if(layerNames.push(name),layers[name])continue;let response=await fetch(layer.url,{signal:AbortSignal.timeout(6e4)});if(!response.ok)throw new DescribeError("layer_download_failed","Could not download a required runtime layer. Retry this describe command.");let bytes2=new Uint8Array(await response.arrayBuffer()),file=`layers/${createHash3("sha256").update(bytes2).digest("hex")}.zip`;await writeFile3(join8(staging,file),bytes2,{mode:384}),layers[name]=file}let{Region,Layers,ResolvableLayers,...configuration}=descriptor,fn={code:`zips/${digest}.zip`,region:Region,layers:layerNames,configuration},key=`${descriptor.Region}:${descriptor.FunctionName}`,previous=functions.get(key);if(previous&&!isDeepStrictEqual(previous,fn))throw new DescribeError("invalid_response","Conflicting descriptors for the same regional function");functions.set(key,fn)}manifest[path2]={awsAccountId:params.awsAccountId,digest,functionName:regional[0].FunctionName,regions:[...new Set(regional.map(d=>d.Region))],size}}await writeFile3(join8(staging,"descriptor.json"),JSON.stringify({awsAccountId:params.awsAccountId,deploymentId:params.deploymentId,functions:[...functions.values()],layers,version:1},null,2),{mode:384}),await prepareContinuation({directory:params.directory,repoRootPath,outputDir:source,destination:join8(staging,"output"),manifest}),await mkdir2(output,{recursive:!0,mode:448});let backup=join8(staging,"backup");await mkdir2(backup);let moves=[],move=async(from,to)=>{await rename(from,to),moves.push([from,to])},preserve=async(path2,name)=>{await exists(path2)&&await move(path2,join8(backup,name))};try{for(let name of["zips","layers","descriptor.json"])await preserve(join8(output,name),name),await move(join8(staging,name),join8(output,name));source===buildOutput?(await preserve(build,"build"),await move(buildOutput,build)):await preserve(buildOutput,"output"),await move(join8(staging,"output"),buildOutput)}catch(error){removeStaging=!1;for(let[from,to]of moves.reverse())await rename(to,from);throw removeStaging=!0,error}return output}finally{removeStaging&&await rm(staging,{recursive:!0,force:!0})}}var exists=path2=>stat5(path2).then(()=>!0,error=>{if(error.code==="ENOENT")return!1;throw error});import{join as join10}from"node:path";import{join as join9,relative as relative5}from"node:path";async function resolveDescribeProject(client){try{let link=await getLinkFromDir(join9(client.cwd,".vercel"));if(link){let{repoRoot,resolvedRootDirectory}=resolvePerDirectoryLinkRoot(client.cwd,link.settings?.rootDirectory);return{...link,directory:join9(repoRoot,resolvedRootDirectory),repoRootPath:repoRoot}}let repo=await getRepoLink(client,client.cwd);if(!repo?.repoConfig?.projects.length)throw new DescribeError("not_linked","No linked project found. Run `vercel link`, or restore CI project settings with `vercel pull --yes`.");let matches=findProjectsFromPath(repo.repoConfig.projects,relative5(repo.rootPath,client.cwd)),candidates=matches.length?matches:repo.repoConfig.projects;if(candidates.length!==1)throw new DescribeError("ambiguous_project","Multiple projects are linked here. Run this command from the intended project directory, or pass --cwd <PROJECT_DIRECTORY>.");let project=await getProjectLink(client,client.cwd,candidates[0].id,!0);if(!project?.repoRoot)throw new Error("Project link changed");return{...project,directory:join9(project.repoRoot,project.projectRootDirectory||""),repoRootPath:project.repoRoot}}catch(error){throw error instanceof DescribeError?error:new DescribeError("invalid_project_link","Could not read the local project link. Check that .vercel/project.json or .vercel/repo.json is readable and contains valid project settings.")}}async function describe(client){let asJson=wantsMachineReadableOutput("deploy",client.argv),fail=(reason,message,code2=1)=>(asJson?client.stderr.write(`${JSON.stringify({status:"error",reason,message})}
20
20
  `):output_manager_default.error(message),code2),parsed;try{parsed=parseArguments(client.argv.slice(2),getFlagsSpecification(describeSubcommand.options))}catch(error){return fail("invalid_arguments",`${isArgumentError(error)?error.message:"Invalid describe options"}. Run \`vercel deploy describe --help\` for usage.`,2)}asJson=parsed.flags["--json"]===!0;let deploymentId=parsed.flags["--id"],awsAccountId=parsed.flags["--aws-account-id"];if((parsed.args[0]==="deploy"?parsed.args.slice(1):parsed.args).length>1)return fail("invalid_arguments","Unexpected positional arguments. Run `vercel deploy describe --help` for usage.",2);if(!deploymentId||!/^dpl_[a-zA-Z0-9]+$/.test(deploymentId))return fail("invalid_arguments","Provide a deployment ID with --id, such as --id dpl_xxx.",2);if(!awsAccountId||!/^\d{12}$/.test(awsAccountId))return fail("invalid_arguments","Provide a 12-digit AWS account ID with --aws-account-id.",2);if(process.platform==="win32")return fail("unsupported_platform","vercel deploy describe is not supported on Windows yet. Run it on macOS or Linux.");let telemetry=new DescribeTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackCliOptionId(deploymentId),telemetry.trackCliOptionAwsAccountId(awsAccountId),telemetry.trackCliFlagJson(parsed.flags["--json"]);try{let project=await resolveDescribeProject(client),explicitTeam=parsed.flags["--scope"]?client.config.currentTeam:process.env.VERCEL_ORG_ID;if(explicitTeam&&explicitTeam!==project.orgId)return fail("scope_mismatch","The selected team does not match the local project link. Use the linked team, or run `vercel pull --yes` with the intended VERCEL_ORG_ID and VERCEL_PROJECT_ID.");if(process.env.VERCEL_PROJECT_ID&&process.env.VERCEL_PROJECT_ID!==project.projectId)return fail("project_mismatch","VERCEL_PROJECT_ID differs from the linked project. Run `vercel pull --yes` to restore settings for the intended project.");client.config.currentTeam=project.orgId.startsWith("team_")?project.orgId:void 0,asJson||output_manager_default.log(`Preparing ${deploymentId} in team ${project.orgId} for AWS account ${awsAccountId}`);let directory=await describeDeployment(client,{directory:project.directory,repoRootPath:project.repoRootPath,deploymentId,awsAccountId,teamId:project.orgId,quiet:asJson}),descriptor=join10(directory,"descriptor.json");if(asJson)client.stdout.write(`${JSON.stringify({deployment:{id:deploymentId},awsAccountId,directory,descriptor})}
21
21
  `);else{client.stdout.write(`${descriptor}
22
22
  `),output_manager_default.log(`Prepared function packages in ${directory}`);let cwd=project.directory===client.cwd?"":` --cwd ${quoteArg(project.directory)}`;output_manager_default.log(`Provision the functions in descriptor.json, then run:
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{displayDetectedServices,readConfig,setupAndLink}from"../../chunks/chunk-XJOOPPSQ.js";import{loadVercelConfig,tryDetectServices}from"../../chunks/chunk-TKA7PPGY.js";import"../../chunks/chunk-7V2F5IUY.js";import{FIX_BY_CODE,createErrorReporter,import_write_build_result,require_detect_builders_with_services,require_get_files,require_mime_types,require_schedule_entrypoint,require_service_schedules,toDiagnostic}from"../../chunks/chunk-VJEQAITW.js";import{importBuilders,require_npa}from"../../chunks/chunk-JTAAWOJS.js";import"../../chunks/chunk-4CACOKMS.js";import"../../chunks/chunk-COD3WAUI.js";import{LOCAL_SCHEDULES_SESSION_HEADER,createLocalSchedulesSession}from"../../chunks/chunk-SF4E3AQ3.js";import"../../chunks/chunk-NZBUIMZG.js";import"../../chunks/chunk-QHJLRTVY.js";import{require_fast_deep_equal}from"../../chunks/chunk-MCRKBVZA.js";import{getUpdateCommand}from"../../chunks/chunk-6ZMFJA5X.js";import{readJSONFile}from"../../chunks/chunk-BRUTDRAQ.js";import"../../chunks/chunk-YLTCVZOL.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-H7LHZZKU.js";import{validateConfig}from"../../chunks/chunk-MZ6DNAVL.js";import"../../chunks/chunk-BZYQ6RFV.js";import"../../chunks/chunk-EAUDC24V.js";import{pickOverrides}from"../../chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist5}from"../../chunks/chunk-YAPHSZJ7.js";import{require_brace_expansion,require_dist as require_dist3,require_dist2 as require_dist4,require_minimatch}from"../../chunks/chunk-WJ4VNTE3.js";import{require_main}from"../../chunks/chunk-VOB4W7DO.js";import"../../chunks/chunk-RRDNKB2X.js";import"../../chunks/chunk-MVGTMPMI.js";import"../../chunks/chunk-SACGQMVQ.js";import"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-3E364MJE.js";import{require_inherits}from"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-P2O5DOYE.js";import"../../chunks/chunk-GSOPJJO5.js";import{VERCEL_OIDC_TOKEN}from"../../chunks/chunk-BWY67LI6.js";import"../../chunks/chunk-IAUAFUO2.js";import{require_json_parse_better_errors}from"../../chunks/chunk-25565AGS.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-J24BABG4.js";import{pullEnvRecords}from"../../chunks/chunk-3AF3TTCR.js";import{printProjectNotFoundError}from"../../chunks/chunk-QW2UP4W4.js";import"../../chunks/chunk-KTNRWBHM.js";import"../../chunks/chunk-PVASGBEF.js";import{require_frameworks}from"../../chunks/chunk-MVCAUS4F.js";import{DEV_QUEUE_API_PREFIX,DEV_QUEUE_DEFAULT_PORT,DEV_QUEUE_PROXY_PREFIX,DEV_RESOURCE_TOKEN,DEV_RUNTIME_CACHE_DEFAULT_PORT,DEV_SCHEDULES_DEFAULT_PORT,DEV_SCHEDULES_PROXY_PREFIX,devCommand,getDevQueueEnv,getDevSchedulesEnv,isValidDevResourceHost,listenOnDevResourcePort}from"../../chunks/chunk-S7XZC23O.js";import{require_dist as require_dist2}from"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-HJ3NY4UA.js";import"../../chunks/chunk-2H243SJV.js";import"../../chunks/chunk-SCV7XEEO.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import"../../chunks/chunk-3EYOQC4R.js";import"../../chunks/chunk-XEQT373M.js";import"../../chunks/chunk-VIBUYIZ3.js";import"../../chunks/chunk-6LRVRPYO.js";import{help}from"../../chunks/chunk-7D2HVBVP.js";import"../../chunks/chunk-773GOZIR.js";import{printError}from"../../chunks/chunk-V336CYEI.js";import{buildCommandWithYes,outputActionRequired}from"../../chunks/chunk-5RR3435W.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{detectExplicitScope,getLocalPathConfig,highlight}from"../../chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"../../chunks/chunk-HMS3UIQ2.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"../../chunks/chunk-HUJPGK7W.js";import"../../chunks/chunk-VKXEOL4K.js";import{isNativeBinaryInstall}from"../../chunks/chunk-YYPNUQDI.js";import"../../chunks/chunk-4SAVH3H7.js";import"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-AOWWC6WZ.js";import{directFetch}from"../../chunks/chunk-MY4MONOH.js";import{parseArguments}from"../../chunks/chunk-R4VVQRLX.js";import"../../chunks/chunk-BKV35LVB.js";import{getFlagsSpecification}from"../../chunks/chunk-5IPBCD7K.js";import{VERCEL_DIR,findRepoRoot,getLinkedProject,getVercelDirectory,require_lib,require_pluralize,resolveProjectCwd}from"../../chunks/chunk-MYMM34ZH.js";import"../../chunks/chunk-ROPQIBWJ.js";import"../../chunks/chunk-VKPZP4LC.js";import"../../chunks/chunk-PPCFQQSU.js";import{printAlignedLabel}from"../../chunks/chunk-N7Q2IESO.js";import"../../chunks/chunk-VSE5BAPP.js";import"../../chunks/chunk-VOZEB6PD.js";import{CantParseJSONFile,LambdaSizeExceededError,MissingDotenvVarsError,NowError,require_bytes}from"../../chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName}from"../../chunks/chunk-JESNVRVR.js";import{Diagnostic,defineDiagnostics,init_dist,link_default,output_manager_default,require_build_utils}from"../../chunks/chunk-75IAMKGV.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import{require_supports_color}from"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import{__commonJS,__require,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var require_bytes2=__commonJS({"../../node_modules/.pnpm/bytes@3.1.0/node_modules/bytes/index.js"(exports2,module2){"use strict";module2.exports=bytes2;module2.exports.format=format;module2.exports.parse=parse2;var formatThousandsRegExp=/\B(?=(\d{3})+(?!\d))/g,formatDecimalsRegExp=/(?:\.0*|(\.[^0]+)0+)$/,map={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},parseRegExp=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes2(value,options){return typeof value=="string"?parse2(value):typeof value=="number"?format(value,options):null}function format(value,options){if(!Number.isFinite(value))return null;var mag=Math.abs(value),thousandsSeparator=options&&options.thousandsSeparator||"",unitSeparator=options&&options.unitSeparator||"",decimalPlaces=options&&options.decimalPlaces!==void 0?options.decimalPlaces:2,fixedDecimals=!!(options&&options.fixedDecimals),unit=options&&options.unit||"";(!unit||!map[unit.toLowerCase()])&&(mag>=map.pb?unit="PB":mag>=map.tb?unit="TB":mag>=map.gb?unit="GB":mag>=map.mb?unit="MB":mag>=map.kb?unit="KB":unit="B");var val=value/map[unit.toLowerCase()],str=val.toFixed(decimalPlaces);return fixedDecimals||(str=str.replace(formatDecimalsRegExp,"$1")),thousandsSeparator&&(str=str.replace(formatThousandsRegExp,thousandsSeparator)),str+unitSeparator+unit}function parse2(val){if(typeof val=="number"&&!isNaN(val))return val;if(typeof val!="string")return null;var results=parseRegExp.exec(val),floatValue,unit="b";return results?(floatValue=parseFloat(results[1]),unit=results[4].toLowerCase()):(floatValue=parseInt(val,10),unit="b"),Math.floor(map[unit]*floatValue)}}});var require_callsite_tostring=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/callsite-tostring.js"(exports2,module2){"use strict";module2.exports=callSiteToString2;function callSiteFileLocation(callSite){var fileName,fileLocation="";if(callSite.isNative()?fileLocation="native":callSite.isEval()?(fileName=callSite.getScriptNameOrSourceURL(),fileName||(fileLocation=callSite.getEvalOrigin())):fileName=callSite.getFileName(),fileName){fileLocation+=fileName;var lineNumber=callSite.getLineNumber();if(lineNumber!=null){fileLocation+=":"+lineNumber;var columnNumber=callSite.getColumnNumber();columnNumber&&(fileLocation+=":"+columnNumber)}}return fileLocation||"unknown source"}function callSiteToString2(callSite){var addSuffix=!0,fileLocation=callSiteFileLocation(callSite),functionName=callSite.getFunctionName(),isConstructor=callSite.isConstructor(),isMethodCall=!(callSite.isToplevel()||isConstructor),line="";if(isMethodCall){var methodName=callSite.getMethodName(),typeName=getConstructorName(callSite);functionName?(typeName&&functionName.indexOf(typeName)!==0&&(line+=typeName+"."),line+=functionName,methodName&&functionName.lastIndexOf("."+methodName)!==functionName.length-methodName.length-1&&(line+=" [as "+methodName+"]")):line+=typeName+"."+(methodName||"<anonymous>")}else isConstructor?line+="new "+(functionName||"<anonymous>"):functionName?line+=functionName:(addSuffix=!1,line+=fileLocation);return addSuffix&&(line+=" ("+fileLocation+")"),line}function getConstructorName(obj){var receiver=obj.receiver;return receiver.constructor&&receiver.constructor.name||null}}});var require_event_listener_count=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/event-listener-count.js"(exports2,module2){"use strict";module2.exports=eventListenerCount2;function eventListenerCount2(emitter,type){return emitter.listeners(type).length}}});var require_compat=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/index.js"(exports2,module2){"use strict";var EventEmitter=__require("events").EventEmitter;lazyProperty(module2.exports,"callSiteToString",function(){var limit=Error.stackTraceLimit,obj={},prep=Error.prepareStackTrace;function prepareObjectStackTrace2(obj2,stack3){return stack3}Error.prepareStackTrace=prepareObjectStackTrace2,Error.stackTraceLimit=2,Error.captureStackTrace(obj);var stack2=obj.stack.slice();return Error.prepareStackTrace=prep,Error.stackTraceLimit=limit,stack2[0].toString?toString:require_callsite_tostring()});lazyProperty(module2.exports,"eventListenerCount",function(){return EventEmitter.listenerCount||require_event_listener_count()});function lazyProperty(obj,prop,getter){function get(){var val=getter();return Object.defineProperty(obj,prop,{configurable:!0,enumerable:!0,value:val}),val}Object.defineProperty(obj,prop,{configurable:!0,enumerable:!0,get})}function toString(obj){return obj.toString()}}});var require_depd=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/index.js"(exports,module){var callSiteToString=require_compat().callSiteToString,eventListenerCount=require_compat().eventListenerCount,relative=__require("path").relative;module.exports=depd;var basePath=process.cwd();function containsNamespace(str,namespace){for(var vals=str.split(/[ ,]+/),ns=String(namespace).toLowerCase(),i=0;i<vals.length;i++){var val=vals[i];if(val&&(val==="*"||val.toLowerCase()===ns))return!0}return!1}function convertDataDescriptorToAccessor(obj,prop,message2){var descriptor=Object.getOwnPropertyDescriptor(obj,prop),value=descriptor.value;return descriptor.get=function(){return value},descriptor.writable&&(descriptor.set=function(val){return value=val}),delete descriptor.value,delete descriptor.writable,Object.defineProperty(obj,prop,descriptor),descriptor}function createArgumentsString(arity){for(var str="",i=0;i<arity;i++)str+=", arg"+i;return str.substr(2)}function createStackString(stack2){var str=this.name+": "+this.namespace;this.message&&(str+=" deprecated "+this.message);for(var i=0;i<stack2.length;i++)str+=`
7
+ import{displayDetectedServices,readConfig,setupAndLink}from"../../chunks/chunk-XJOOPPSQ.js";import{loadVercelConfig,tryDetectServices}from"../../chunks/chunk-TKA7PPGY.js";import"../../chunks/chunk-7V2F5IUY.js";import{FIX_BY_CODE,createErrorReporter,import_write_build_result,require_detect_builders_with_services,require_get_files,require_mime_types,require_schedule_entrypoint,require_service_schedules,toDiagnostic}from"../../chunks/chunk-VJEQAITW.js";import{importBuilders,require_npa}from"../../chunks/chunk-JTAAWOJS.js";import"../../chunks/chunk-4CACOKMS.js";import"../../chunks/chunk-COD3WAUI.js";import{LOCAL_SCHEDULES_SESSION_HEADER,createLocalSchedulesSession}from"../../chunks/chunk-SF4E3AQ3.js";import"../../chunks/chunk-NZBUIMZG.js";import"../../chunks/chunk-QHJLRTVY.js";import{require_fast_deep_equal}from"../../chunks/chunk-MCRKBVZA.js";import{getUpdateCommand}from"../../chunks/chunk-JUSQYKFF.js";import{readJSONFile}from"../../chunks/chunk-BRUTDRAQ.js";import"../../chunks/chunk-YLTCVZOL.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-H7LHZZKU.js";import{validateConfig}from"../../chunks/chunk-MZ6DNAVL.js";import"../../chunks/chunk-BZYQ6RFV.js";import"../../chunks/chunk-EAUDC24V.js";import{pickOverrides}from"../../chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist5}from"../../chunks/chunk-YAPHSZJ7.js";import{require_brace_expansion,require_dist as require_dist3,require_dist2 as require_dist4,require_minimatch}from"../../chunks/chunk-WJ4VNTE3.js";import{require_main}from"../../chunks/chunk-VOB4W7DO.js";import"../../chunks/chunk-RRDNKB2X.js";import"../../chunks/chunk-MVGTMPMI.js";import"../../chunks/chunk-SACGQMVQ.js";import"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-3E364MJE.js";import{require_inherits}from"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-P2O5DOYE.js";import"../../chunks/chunk-GSOPJJO5.js";import{VERCEL_OIDC_TOKEN}from"../../chunks/chunk-BWY67LI6.js";import"../../chunks/chunk-IAUAFUO2.js";import{require_json_parse_better_errors}from"../../chunks/chunk-25565AGS.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-J24BABG4.js";import{pullEnvRecords}from"../../chunks/chunk-3AF3TTCR.js";import{printProjectNotFoundError}from"../../chunks/chunk-QW2UP4W4.js";import"../../chunks/chunk-KTNRWBHM.js";import"../../chunks/chunk-PVASGBEF.js";import{require_frameworks}from"../../chunks/chunk-MVCAUS4F.js";import{DEV_QUEUE_API_PREFIX,DEV_QUEUE_DEFAULT_PORT,DEV_QUEUE_PROXY_PREFIX,DEV_RESOURCE_TOKEN,DEV_RUNTIME_CACHE_DEFAULT_PORT,DEV_SCHEDULES_DEFAULT_PORT,DEV_SCHEDULES_PROXY_PREFIX,devCommand,getDevQueueEnv,getDevSchedulesEnv,isValidDevResourceHost,listenOnDevResourcePort}from"../../chunks/chunk-S7XZC23O.js";import{require_dist as require_dist2}from"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-HJ3NY4UA.js";import"../../chunks/chunk-2H243SJV.js";import"../../chunks/chunk-SCV7XEEO.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import"../../chunks/chunk-3EYOQC4R.js";import"../../chunks/chunk-XEQT373M.js";import"../../chunks/chunk-VIBUYIZ3.js";import"../../chunks/chunk-6LRVRPYO.js";import{help}from"../../chunks/chunk-7D2HVBVP.js";import"../../chunks/chunk-773GOZIR.js";import{printError}from"../../chunks/chunk-V336CYEI.js";import{buildCommandWithYes,outputActionRequired}from"../../chunks/chunk-5RR3435W.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{detectExplicitScope,getLocalPathConfig,highlight}from"../../chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"../../chunks/chunk-HMS3UIQ2.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"../../chunks/chunk-HUJPGK7W.js";import"../../chunks/chunk-VKXEOL4K.js";import{isNativeBinaryInstall}from"../../chunks/chunk-YYPNUQDI.js";import"../../chunks/chunk-4SAVH3H7.js";import"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-AOWWC6WZ.js";import{directFetch}from"../../chunks/chunk-MY4MONOH.js";import{parseArguments}from"../../chunks/chunk-R4VVQRLX.js";import"../../chunks/chunk-BKV35LVB.js";import{getFlagsSpecification}from"../../chunks/chunk-5IPBCD7K.js";import{VERCEL_DIR,findRepoRoot,getLinkedProject,getVercelDirectory,require_lib,require_pluralize,resolveProjectCwd}from"../../chunks/chunk-MYMM34ZH.js";import"../../chunks/chunk-ROPQIBWJ.js";import"../../chunks/chunk-VKPZP4LC.js";import"../../chunks/chunk-PPCFQQSU.js";import{printAlignedLabel}from"../../chunks/chunk-N7Q2IESO.js";import"../../chunks/chunk-VSE5BAPP.js";import"../../chunks/chunk-VOZEB6PD.js";import{CantParseJSONFile,LambdaSizeExceededError,MissingDotenvVarsError,NowError,require_bytes}from"../../chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName}from"../../chunks/chunk-JESNVRVR.js";import{Diagnostic,defineDiagnostics,init_dist,link_default,output_manager_default,require_build_utils}from"../../chunks/chunk-75IAMKGV.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import{require_supports_color}from"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import{__commonJS,__require,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var require_bytes2=__commonJS({"../../node_modules/.pnpm/bytes@3.1.0/node_modules/bytes/index.js"(exports2,module2){"use strict";module2.exports=bytes2;module2.exports.format=format;module2.exports.parse=parse2;var formatThousandsRegExp=/\B(?=(\d{3})+(?!\d))/g,formatDecimalsRegExp=/(?:\.0*|(\.[^0]+)0+)$/,map={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},parseRegExp=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes2(value,options){return typeof value=="string"?parse2(value):typeof value=="number"?format(value,options):null}function format(value,options){if(!Number.isFinite(value))return null;var mag=Math.abs(value),thousandsSeparator=options&&options.thousandsSeparator||"",unitSeparator=options&&options.unitSeparator||"",decimalPlaces=options&&options.decimalPlaces!==void 0?options.decimalPlaces:2,fixedDecimals=!!(options&&options.fixedDecimals),unit=options&&options.unit||"";(!unit||!map[unit.toLowerCase()])&&(mag>=map.pb?unit="PB":mag>=map.tb?unit="TB":mag>=map.gb?unit="GB":mag>=map.mb?unit="MB":mag>=map.kb?unit="KB":unit="B");var val=value/map[unit.toLowerCase()],str=val.toFixed(decimalPlaces);return fixedDecimals||(str=str.replace(formatDecimalsRegExp,"$1")),thousandsSeparator&&(str=str.replace(formatThousandsRegExp,thousandsSeparator)),str+unitSeparator+unit}function parse2(val){if(typeof val=="number"&&!isNaN(val))return val;if(typeof val!="string")return null;var results=parseRegExp.exec(val),floatValue,unit="b";return results?(floatValue=parseFloat(results[1]),unit=results[4].toLowerCase()):(floatValue=parseInt(val,10),unit="b"),Math.floor(map[unit]*floatValue)}}});var require_callsite_tostring=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/callsite-tostring.js"(exports2,module2){"use strict";module2.exports=callSiteToString2;function callSiteFileLocation(callSite){var fileName,fileLocation="";if(callSite.isNative()?fileLocation="native":callSite.isEval()?(fileName=callSite.getScriptNameOrSourceURL(),fileName||(fileLocation=callSite.getEvalOrigin())):fileName=callSite.getFileName(),fileName){fileLocation+=fileName;var lineNumber=callSite.getLineNumber();if(lineNumber!=null){fileLocation+=":"+lineNumber;var columnNumber=callSite.getColumnNumber();columnNumber&&(fileLocation+=":"+columnNumber)}}return fileLocation||"unknown source"}function callSiteToString2(callSite){var addSuffix=!0,fileLocation=callSiteFileLocation(callSite),functionName=callSite.getFunctionName(),isConstructor=callSite.isConstructor(),isMethodCall=!(callSite.isToplevel()||isConstructor),line="";if(isMethodCall){var methodName=callSite.getMethodName(),typeName=getConstructorName(callSite);functionName?(typeName&&functionName.indexOf(typeName)!==0&&(line+=typeName+"."),line+=functionName,methodName&&functionName.lastIndexOf("."+methodName)!==functionName.length-methodName.length-1&&(line+=" [as "+methodName+"]")):line+=typeName+"."+(methodName||"<anonymous>")}else isConstructor?line+="new "+(functionName||"<anonymous>"):functionName?line+=functionName:(addSuffix=!1,line+=fileLocation);return addSuffix&&(line+=" ("+fileLocation+")"),line}function getConstructorName(obj){var receiver=obj.receiver;return receiver.constructor&&receiver.constructor.name||null}}});var require_event_listener_count=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/event-listener-count.js"(exports2,module2){"use strict";module2.exports=eventListenerCount2;function eventListenerCount2(emitter,type){return emitter.listeners(type).length}}});var require_compat=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/lib/compat/index.js"(exports2,module2){"use strict";var EventEmitter=__require("events").EventEmitter;lazyProperty(module2.exports,"callSiteToString",function(){var limit=Error.stackTraceLimit,obj={},prep=Error.prepareStackTrace;function prepareObjectStackTrace2(obj2,stack3){return stack3}Error.prepareStackTrace=prepareObjectStackTrace2,Error.stackTraceLimit=2,Error.captureStackTrace(obj);var stack2=obj.stack.slice();return Error.prepareStackTrace=prep,Error.stackTraceLimit=limit,stack2[0].toString?toString:require_callsite_tostring()});lazyProperty(module2.exports,"eventListenerCount",function(){return EventEmitter.listenerCount||require_event_listener_count()});function lazyProperty(obj,prop,getter){function get(){var val=getter();return Object.defineProperty(obj,prop,{configurable:!0,enumerable:!0,value:val}),val}Object.defineProperty(obj,prop,{configurable:!0,enumerable:!0,get})}function toString(obj){return obj.toString()}}});var require_depd=__commonJS({"../../node_modules/.pnpm/depd@1.1.2/node_modules/depd/index.js"(exports,module){var callSiteToString=require_compat().callSiteToString,eventListenerCount=require_compat().eventListenerCount,relative=__require("path").relative;module.exports=depd;var basePath=process.cwd();function containsNamespace(str,namespace){for(var vals=str.split(/[ ,]+/),ns=String(namespace).toLowerCase(),i=0;i<vals.length;i++){var val=vals[i];if(val&&(val==="*"||val.toLowerCase()===ns))return!0}return!1}function convertDataDescriptorToAccessor(obj,prop,message2){var descriptor=Object.getOwnPropertyDescriptor(obj,prop),value=descriptor.value;return descriptor.get=function(){return value},descriptor.writable&&(descriptor.set=function(val){return value=val}),delete descriptor.value,delete descriptor.writable,Object.defineProperty(obj,prop,descriptor),descriptor}function createArgumentsString(arity){for(var str="",i=0;i<arity;i++)str+=", arg"+i;return str.substr(2)}function createStackString(stack2){var str=this.name+": "+this.namespace;this.message&&(str+=" deprecated "+this.message);for(var i=0;i<stack2.length;i++)str+=`
8
8
  at `+callSiteToString(stack2[i]);return str}function depd(namespace){if(!namespace)throw new TypeError("argument namespace is required");var stack2=getStack(),site2=callSiteLocation(stack2[1]),file=site2[0];function deprecate2(message2){log.call(deprecate2,message2)}return deprecate2._file=file,deprecate2._ignored=isignored(namespace),deprecate2._namespace=namespace,deprecate2._traced=istraced(namespace),deprecate2._warned=Object.create(null),deprecate2.function=wrapfunction,deprecate2.property=wrapproperty,deprecate2}function isignored(namespace){if(process.noDeprecation)return!0;var str=process.env.NO_DEPRECATION||"";return containsNamespace(str,namespace)}function istraced(namespace){if(process.traceDeprecation)return!0;var str=process.env.TRACE_DEPRECATION||"";return containsNamespace(str,namespace)}function log(message2,site2){var haslisteners=eventListenerCount(process,"deprecation")!==0;if(!(!haslisteners&&this._ignored)){var caller,callFile,callSite,depSite,i=0,seen=!1,stack2=getStack(),file=this._file;for(site2?(depSite=site2,callSite=callSiteLocation(stack2[1]),callSite.name=depSite.name,file=callSite[0]):(i=2,depSite=callSiteLocation(stack2[i]),callSite=depSite);i<stack2.length;i++)if(caller=callSiteLocation(stack2[i]),callFile=caller[0],callFile===file)seen=!0;else if(callFile===this._file)file=this._file;else if(seen)break;var key=caller?depSite.join(":")+"__"+caller.join(":"):void 0;if(!(key!==void 0&&key in this._warned)){this._warned[key]=!0;var msg=message2;if(msg||(msg=callSite===depSite||!callSite.name?defaultMessage(depSite):defaultMessage(callSite)),haslisteners){var err=DeprecationError(this._namespace,msg,stack2.slice(i));process.emit("deprecation",err);return}var format=process.stderr.isTTY?formatColor:formatPlain,output=format.call(this,msg,caller,stack2.slice(i));process.stderr.write(output+`
9
9
  `,"utf8")}}}function callSiteLocation(callSite){var file=callSite.getFileName()||"<anonymous>",line=callSite.getLineNumber(),colm=callSite.getColumnNumber();callSite.isEval()&&(file=callSite.getEvalOrigin()+", "+file);var site2=[file,line,colm];return site2.callSite=callSite,site2.name=callSite.getFunctionName(),site2}function defaultMessage(site2){var callSite=site2.callSite,funcName=site2.name;funcName||(funcName="<anonymous@"+formatLocation(site2)+">");var context=callSite.getThis(),typeName=context&&callSite.getTypeName();return typeName==="Object"&&(typeName=void 0),typeName==="Function"&&(typeName=context.name||typeName),typeName&&callSite.getMethodName()?typeName+"."+funcName:funcName}function formatPlain(msg,caller,stack2){var timestamp=new Date().toUTCString(),formatted=timestamp+" "+this._namespace+" deprecated "+msg;if(this._traced){for(var i=0;i<stack2.length;i++)formatted+=`
10
10
  at `+callSiteToString(stack2[i]);return formatted}return caller&&(formatted+=" at "+formatLocation(caller)),formatted}function formatColor(msg,caller,stack2){var formatted="\x1B[36;1m"+this._namespace+"\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m"+msg+"\x1B[39m";if(this._traced){for(var i=0;i<stack2.length;i++)formatted+=`
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{require_async_sema}from"./chunks/chunk-NZ2TFADV.js";import{handleTracingApiError,invalidArguments,resolveConfigScope,resolveScope}from"./chunks/chunk-64U5W6GU.js";import{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-KNBEUC4P.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,parseSubcommandArguments,requireProjectContext,validateRequiredArguments,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-MA4K5IWW.js";import{FILTER_DEPRECATION_WARNING,computeGranularity,formatText,generateSparkline,toGranularityMsFromDuration,usesODataSyntax}from"./chunks/chunk-MEJTHWZB.js";import{OBSERVABILITY_METRICS_PATH,getRollupColumnName,handleApiError}from"./chunks/chunk-VNSQCAVT.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-T6SFC3IH.js";import{canPrompt}from"./chunks/chunk-XD2LZRBS.js";import"./chunks/chunk-IVSSTHB6.js";import{formatDate,formatDateWithoutTime}from"./chunks/chunk-HRR57QNP.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{handleValidationError,normalizeRepeatableStringFilters,outputError,parseTimeFlag,resolveTimeRange,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-WH3SHWVK.js";import{collectBuildLogs,displayBuildLogs,displayRuntimeLogs,require_split2}from"./chunks/chunk-25S4PQNK.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{addDomain,createCertForCns,extractDomain,getDomainByName,isWildcardAlias,require_cjs,setupDomain}from"./chunks/chunk-4A5SGLIH.js";import{collectContactInformation,getDomainPrice,getDomainStatus,pollForOrder,purchaseDomain}from"./chunks/chunk-W6LNIG5O.js";import{api,tryOpenApiFallback}from"./chunks/chunk-V2BKSCXI.js";import"./chunks/chunk-GHAY4PSD.js";import{login}from"./chunks/chunk-X3JK3SQ2.js";import{main}from"./chunks/chunk-AUZEOUZU.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{selectOrg}from"./chunks/chunk-NZBUIMZG.js";import{createProject}from"./chunks/chunk-QHJLRTVY.js";import{require_fast_deep_equal}from"./chunks/chunk-MCRKBVZA.js";import{CURL_INSTALL_COMMAND,NATIVE_UPDATE_SELECT_PRODUCTION_ENV,NATIVE_UPDATE_VERSION_ENV,box,cacheNativeUpdateDiscoveryAttempt,cacheNativeUpdateVersion,did_you_mean_default,executeUpgrade,handleCommandTypo,installAndActivatePrBinary,installAndActivateProductionVersion,isAutoUpdateEnabled,isCurlInstall,isNativeAutoUpdateEnabled,isNativeUpdateChild,listAvailableVersions,listNativeTrackSlots,markNativeUpdateStaged,parsePrTarget,pinPackageVersion,readActivePointer,readNativeInstallState,require_tar_fs,resolveLatestNativeVersion,restoreNativeUpdateAfterDiscoveryFailure,setAutoUpdate,setMinReleaseAgeBypass,spawnNativeUpdateChild,stageProductionUpdate,withDirectoryLock}from"./chunks/chunk-FMAF3AKI.js";import{OpenApiCache,resolveOpenApiTagForProjectsCli,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-B3K6GM2W.js";import{getUpdateCommand,getUpdateCommandInfo,isGlobal}from"./chunks/chunk-6ZMFJA5X.js";import{readJSONFile}from"./chunks/chunk-BRUTDRAQ.js";import{Now,getBuildMachineResourceConfig,isDeploying,printDeploymentStatus}from"./chunks/chunk-T76ITV65.js";import"./chunks/chunk-3DMY3OJR.js";import{dump,load}from"./chunks/chunk-V6Y6UK6B.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-BZYQ6RFV.js";import"./chunks/chunk-EAUDC24V.js";import"./chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist3}from"./chunks/chunk-YAPHSZJ7.js";import{require_dist2}from"./chunks/chunk-WJ4VNTE3.js";import"./chunks/chunk-VOB4W7DO.js";import"./chunks/chunk-RRDNKB2X.js";import"./chunks/chunk-MVGTMPMI.js";import"./chunks/chunk-SACGQMVQ.js";import"./chunks/chunk-U56NHYAH.js";import"./chunks/chunk-2EYYB6YN.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-3E364MJE.js";import"./chunks/chunk-7EJQLVWX.js";import{responseError}from"./chunks/chunk-SY4EANZH.js";import"./chunks/chunk-O4FDRZ22.js";import{sleep}from"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-P2O5DOYE.js";import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,pickCustomEnvironment,readStandardInput,require_dist as require_dist4}from"./chunks/chunk-6JGC4YDH.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{ellipsis}from"./chunks/chunk-F4KY2TOK.js";import{formatTable,strlen}from"./chunks/chunk-LSQREJXO.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-ID663OJ7.js";import{GATEWAY_ANTHROPIC_BASE_URL,GATEWAY_API_KEY_ENV,GATEWAY_CODEX_BASE_URL,GATEWAY_CODING_AGENT_BASE_URL,GATEWAY_CURSOR_BASE_URL,GATEWAY_DEFAULT_MODEL,KEY_PLACEHOLDER,MANAGED_BLOCK_END,MANAGED_BLOCK_START,autoInstallVercelPlugin,backupFile,claudeCode,ensureMode,isFile,isSymlink,maskSecret,mergeJson,mergeJsonc,mergeToml,parseJsonObjectOrNull,pathExists,publishNoClobber,readFileOrNull,resolveGatewayBaseUrl,setupVercelPlugin,upsertManagedBlock,writeConfigFile}from"./chunks/chunk-N7L3XLWC.js";import{require_execa}from"./chunks/chunk-GSOPJJO5.js";import{createEnvObject,envPullCommandLogic,pull}from"./chunks/chunk-BWY67LI6.js";import{resolveProjectContext}from"./chunks/chunk-IAUAFUO2.js";import"./chunks/chunk-25565AGS.js";import{isGuidanceEnabled}from"./chunks/chunk-A5R2HHNK.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{getSubcommand as getSubcommand7}from"./chunks/chunk-ETV3C2CV.js";import{init_main,parse}from"./chunks/chunk-J24BABG4.js";import{ensureLink}from"./chunks/chunk-3AF3TTCR.js";import"./chunks/chunk-QW2UP4W4.js";import{performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunks/chunk-KTNRWBHM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import{require_frameworks}from"./chunks/chunk-MVCAUS4F.js";import{CI_LOG_LEVELS,CREDIT_TYPE_LABELS,FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_DIMENSIONS,FLAG_EVALUATIONS_DIMENSION_NAMES,FLAG_EVALUATIONS_GRANULARITIES,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,PROJECT_MEMBER_ROLES,STORAGE_PROVIDERS,SUPPORTED_ADDON_NAMES,SUPPORTED_CREDIT_TYPES,abortSubcommand,acceptTermsSubcommand,accessGroupsSubcommand,accessSummarySubcommand,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand,addSubcommand10 as addSubcommand9,addSubcommand11,addSubcommand12,addSubcommand2,addSubcommand3,addSubcommand4,addSubcommand5,addSubcommand6,addSubcommand7,addSubcommand9 as addSubcommand8,addToGroupSubcommand,addonSubcommand,agentCommand,agentRunsCommand,aiGatewayCommand,alertsInspectSubcommand,alertsListSubcommand,alertsSubcommand,aliasCommand,analyzeSubcommand,apiKeysSubcommand,approveSubcommand,archiveSubcommand,attachSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,autoRenewSubcommand,autoupdateSubcommand,backupsSubcommand,balanceSubcommand,bisectCommand,blobCommand,botManagementSubcommand,budgetCommand,budgetsDefaultsListSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,budgetsSetSubcommand,budgetsSubcommand,buildersCommand,buyCommand,buySubcommand,cacheCommand,categoriesSubcommand,certsCommand,changelogCommand,checkSubcommand,checkSubcommand2,checkSubcommand3,checksAddFlags,checksRemoveFlags,checksSubcommand,ciCommand,claimSubcommand,codingAgentsSubcommand,completeSubcommand,configureSubcommand,connectSubcommand,connectSubcommand2,connectSubcommand3,connectionsAddSubcommand,connectionsListSubcommand,connectionsRemoveSubcommand,connectionsSubcommand,connexCommand,contactsAddSubcommand,contactsSubcommand,contractCommand,copySubcommand,createGroupSubcommand,createStoreSubcommand,createSubcommand,createSubcommand2,createSubcommand3,createSubcommand4,createSubcommand5,createSubcommand6,createSubcommand7,createSubcommand8 as createSubcommand9,createThresholdSubcommand,creditsSubcommand,cronsCommand,curlCommand,dangerouslyDeleteImmutableStaticAssetSubcommand,dangerouslyDeleteSubcommand,decideSubcommand,delSubcommand,deleteGroupSubcommand,deleteStoreSubcommand,deleteSubcommand as deleteSubcommand2,deleteSubcommand2 as deleteSubcommand4,deleteSubcommand3 as deleteSubcommand5,deployHooksCommand,detachSubcommand,diagnoseSubcommand,diffSubcommand,disableSubcommand,disableSubcommand2,disableSubcommand3 as disableSubcommand4,disableSubcommand4 as disableSubcommand5,discardSubcommand,disconnectSubcommand,disconnectSubcommand2,disconnectSubcommand3,discoverSubcommand,dnsCommand,domainSubcommand,domainsCommand,emptyStoreSubcommand,enableSubcommand,enableSubcommand2,enableSubcommand3 as enableSubcommand4,enableSubcommand4 as enableSubcommand5,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,executionsListSubcommand,executionsSubcommand,experimentsCommand,fetchSubcommand,findForeignCreateFlags,findOverlappingConnections,firewallCommand,flagsCommand,flushSubcommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getConnections,getFlagAttributeType,getStorageProvider,getStorageStore,getStorageStores,getStoreInfoSubcommand,getSubcommand,getSubcommand2,getSubcommand3,getSubcommand4 as getSubcommand5,getSubcommand5 as getSubcommand6,gitCommand,globalConfigCommand,grepSubcommand,guidanceCommand,guideSubcommand,httpstatCommand,importKeySubcommand,importSubcommand,importSubcommand2,initCommand,inspectCommand,inspectGroupSubcommand,inspectSubcommand,inspectSubcommand10 as inspectSubcommand12,inspectSubcommand11 as inspectSubcommand15,inspectSubcommand2,inspectSubcommand3 as inspectSubcommand4,inspectSubcommand4 as inspectSubcommand6,inspectSubcommand5 as inspectSubcommand7,inspectSubcommand6 as inspectSubcommand8,inspectSubcommand7 as inspectSubcommand9,inspectSubcommand8 as inspectSubcommand10,inspectSubcommand9 as inspectSubcommand11,installCommand,installationsSubcommand,installedSubcommand,integrationCommand,integrationResourceCommand,invalidateSubcommand,inviteSubcommand,invokeSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isCustomEnvironmentAddonAlias,isFlagAttributeType,isFlagEvaluationsDimension,isFlagEvaluationsGranularity,isProjectGrant,isTimestampAttributeType,issueSubcommand,issuerJwksUrl,issuerUrl,itemsSubcommand,kmsCommand,labelsListSubcommand,labelsSubcommand,leaderboardAppsSubcommand,leaderboardLabsSubcommand,leaderboardModelsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,listStorageProviderTypes,listStoresSubcommand,listSubcommand,listSubcommand10 as listSubcommand12,listSubcommand11 as listSubcommand13,listSubcommand12 as listSubcommand14,listSubcommand13 as listSubcommand15,listSubcommand14 as listSubcommand16,listSubcommand15 as listSubcommand17,listSubcommand16 as listSubcommand18,listSubcommand17 as listSubcommand19,listSubcommand18 as listSubcommand21,listSubcommand19 as listSubcommand22,listSubcommand2,listSubcommand20 as listSubcommand23,listSubcommand21 as listSubcommand24,listSubcommand22 as listSubcommand25,listSubcommand23 as listSubcommand27,listSubcommand24 as listSubcommand28,listSubcommand25 as listSubcommand29,listSubcommand26 as listSubcommand30,listSubcommand3 as listSubcommand4,listSubcommand4 as listSubcommand5,listSubcommand5 as listSubcommand6,listSubcommand6 as listSubcommand8,listSubcommand7 as listSubcommand9,listSubcommand8 as listSubcommand10,listSubcommand9 as listSubcommand11,listVersionsSubcommand,loadStoreDetails,logoutCommand,logsSubcommand,mcpCommand,membersAddFlags,membersInviteSubcommand,membersRemoveFlags,membersRemoveSubcommand,membersSubcommand,membersSubcommand2,microfrontendsCommand,modelsEndpointsSubcommand,modelsListSubcommand,modelsSubcommand,moveSubcommand,observabilitySubcommand,openCommand,openSubcommand as openSubcommand2,openSubcommand2 as openSubcommand3,openSubcommand3 as openSubcommand4,openSubcommand4 as openSubcommand5,overrideSubcommand,overviewSubcommand,pauseSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,preinstallSubcommand,prepareSubcommand,presignSubcommand,priceSubcommand,pricingCommand,prioritySubcommand,proSubcommand,projectCommand,projectsSubcommand,promoteCommand,promoteSubcommand,protectionSubcommand,publishSubcommand,pullSubcommand,purgeSubcommand,putImageSubcommand,putSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand,removeSubcommand10,removeSubcommand11,removeSubcommand12,removeSubcommand13,removeSubcommand14,removeSubcommand15,removeSubcommand16 as removeSubcommand17,removeSubcommand17 as removeSubcommand18,removeSubcommand2,removeSubcommand3,removeSubcommand4,removeSubcommand5,removeSubcommand6,removeSubcommand7,removeSubcommand8,removeSubcommand9,renameSubcommand,renewSubcommand,requestSubcommand,rerunSubcommand,reseedEnrollmentSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,restartAnalysisSubcommand,restoreSubcommand,resumeSubcommand,returnToDraftSubcommand,revokeKeySubcommand,revokeTokensSubcommand,rollbackCommand,rollingReleaseCommand,rolloutSubcommand,rulesAddSubcommand,rulesAddSubcommand2 as rulesAddSubcommand3,rulesAddSubcommand3 as rulesAddSubcommand4,rulesDisableSubcommand,rulesEditSubcommand,rulesEditSubcommand2,rulesEnableSubcommand,rulesInspectSubcommand as rulesInspectSubcommand2,rulesListSubcommand,rulesListSubcommand2,rulesListSubcommand3,rulesMoveSubcommand,rulesRemoveSubcommand,rulesRemoveSubcommand2,rulesRemoveSubcommand3,rulesReorderSubcommand,rulesSubcommand,rulesSubcommand2,rulesSubcommand3,rulesUpdateSubcommand as rulesUpdateSubcommand2,runSubcommand,schedulesCommand,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,searchSubcommand,searchSubcommand2,securityCommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setRampSubcommand,setSubcommand,setSubcommand2,setSubcommand3,setupCommand,setupSubcommand,signedTokenSubcommand,signupCommand,skillsCommand,speedInsightsSubcommand,splitSubcommand,ssoSubcommand,staleSubcommand,startSubcommand,startSubcommand2,statusSubcommand,statusSubcommand2,statusSubcommand3,statusSubcommand4,statusSubcommand5,statusSubcommand6,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,switchSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetCommand,targetsAddSubcommand,targetsListSubcommand,targetsRemoveSubcommand,targetsSubcommand,teamsCommand,telemetryCommand,tokenSubcommand,tokenSubcommand2,tokensCommand,tokensSubcommand,traceSubcommand,trafficInspectSubcommand,trafficListSubcommand,trafficSubcommand,transferInSubcommand,unarchiveSubcommand,updateGrantSubcommand,updateSubcommand,updateSubcommand10,updateSubcommand11,updateSubcommand2,updateSubcommand3,updateSubcommand4,updateSubcommand5,updateSubcommand6,updateSubcommand7,updateSubcommand8,updateSubcommand9,upgradeCommand,uploadSubcommand,usageCommand,useSubcommand,useTargetingSubcommand,verifySubcommand,versionCommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand,virtualModelsCreateSubcommand,virtualModelsEditSubcommand,virtualModelsInspectSubcommand,virtualModelsListSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand,virtualModelsSubcommand,webAnalyticsSubcommand,webhooksCommand,whoamiCommand}from"./chunks/chunk-U5C6XOLA.js";import{createSubcommand as createSubcommand8,getSubcommand as getSubcommand4,searchSubcommand as searchSubcommand3,tracesCommand}from"./chunks/chunk-OH2RT2GN.js";import{tracesConfigCommand}from"./chunks/chunk-UFXKCETS.js";import{addSubcommand as addSubcommand13,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand14,listSubcommand as listSubcommand26,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand16,vcrCommand}from"./chunks/chunk-RZGWCQP7.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-AG5QQNJ3.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-AU42HSQ3.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-L5FUUGYX.js";import{addSubcommand as addSubcommand10,deleteSubcommand as deleteSubcommand3,disableSubcommand as disableSubcommand3,discardSubcommand as discardSubcommand2,editSubcommand as editSubcommand2,enableSubcommand as enableSubcommand3,exportSubcommand,inspectSubcommand as inspectSubcommand13,listSubcommand as listSubcommand20,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand as publishSubcommand2,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-QC47UKDR.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-QJKJBD2M.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand5,listSubcommand as listSubcommand7,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-MYCQIZU6.js";import{alertsCommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand3}from"./chunks/chunk-CNU4T7FO.js";import{rulesAddSubcommand as rulesAddSubcommand2,rulesAggregateCommand,rulesInspectSubcommand,rulesLsSubcommand,rulesNotificationsAggregateCommand,rulesNotificationsLinkSubcommand,rulesNotificationsLsSubcommand,rulesNotificationsUnlinkSubcommand,rulesNotificationsUpdateSubcommand,rulesRmSubcommand,rulesSchemaSubcommand,rulesUpdateSubcommand}from"./chunks/chunk-LU5O3NH7.js";import{logsCommand}from"./chunks/chunk-AMDHTZDV.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-2JBVMF2Y.js";import"./chunks/chunk-JLXG2XWW.js";import"./chunks/chunk-B4YYOSPY.js";import"./chunks/chunk-UTW2FDSC.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-S7XZC23O.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-FBYA6LLM.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-HJ3NY4UA.js";import{getTeams}from"./chunks/chunk-2H243SJV.js";import"./chunks/chunk-SCV7XEEO.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getPaginationOpts,isValidName}from"./chunks/chunk-ILFUNCJZ.js";import{getCommandFlags}from"./chunks/chunk-OUHPDA7Q.js";import{formatEnvironment}from"./chunks/chunk-JSBEAHKA.js";import{validateLsArgs}from"./chunks/chunk-EO7GUARB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"./chunks/chunk-3EYOQC4R.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import"./chunks/chunk-XEQT373M.js";import{getDeployment,toHost}from"./chunks/chunk-VIBUYIZ3.js";import{mapCertError}from"./chunks/chunk-6LRVRPYO.js";import"./chunks/chunk-GRTIWUV2.js";import{buildCommandDocumentationLines,help}from"./chunks/chunk-7D2HVBVP.js";import{table}from"./chunks/chunk-773GOZIR.js";import{printError}from"./chunks/chunk-V336CYEI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,BUY_PRO_COMMAND,PRIORITY_PROJECT_ENABLE_COMMAND,argvHasNonInteractive,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,buyProFix,clientObservabilityPlanRecovery,exitWithNonInteractiveError,getExitCodeForReason,getGlobalFlagsFromArgv,isProOrEnterprisePlan,openUrlInBrowserCommand,outputActionRequired,outputAgentError,outputAgentSuccess,shouldEmitNonInteractiveCommandError,targetRecovery,withGlobalFlags,writeAgentError}from"./chunks/chunk-5RR3435W.js";import"./chunks/chunk-67GZ5REA.js";import{require_strip_ansi}from"./chunks/chunk-BS32OUOC.js";import{validateJsonOutput,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import{detectExplicitScope,getContextName,getScope,introspectToken,isAppPrincipalEnabled,persistAuthConfig,readLocalConfig,resolveAppFromToken,writeToConfigFile}from"./chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"./chunks/chunk-HMS3UIQ2.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"./chunks/chunk-HUJPGK7W.js";import"./chunks/chunk-VKXEOL4K.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunks/chunk-YYPNUQDI.js";import"./chunks/chunk-4SAVH3H7.js";import"./chunks/chunk-ZS2WS4AM.js";import{processRevocationResponse,revocationRequest,ua_default}from"./chunks/chunk-AOWWC6WZ.js";import{directFetch,fetch as fetch2,getFetchDispatcher,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import{isArgumentError,parseArguments,require_arg}from"./chunks/chunk-R4VVQRLX.js";import{quoteArg}from"./chunks/chunk-BKV35LVB.js";import{GLOBAL_CLI_FLAG_NAMES,arg_common_default,formatOption,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags,globalCommandOptions,jsonOption,normalizeFlagName,stripSensitiveAuthArgs}from"./chunks/chunk-5IPBCD7K.js";import{VERCEL_CONFIG_EXTENSIONS,execFileAsync,getGitConfigPath,getGitExecutable,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getProjectLink,getVercelDirectory,parseGitConfig,pluckRemoteUrls,require_lib,require_pluralize,resolveProjectCwd}from"./chunks/chunk-MYMM34ZH.js";import"./chunks/chunk-ROPQIBWJ.js";import"./chunks/chunk-VKPZP4LC.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-N7Q2IESO.js";import{getUser}from"./chunks/chunk-VSE5BAPP.js";import{getTeamByIdOrSlug,teamCache}from"./chunks/chunk-VOZEB6PD.js";import{APIError,AliasInUse,CertConfigurationError,CertError,CertMissing,CertNotFound,CertOrderNotFound,CertsPermissionDenied,DNSConflictingRecord,DNSInvalidPort,DNSInvalidType,DNSPermissionDenied,DeploymentFailedAliasImpossible,DeploymentNotFound,DeploymentNotReady,DeploymentPermissionDenied,DomainAlreadyExists,DomainExternal,DomainMoveConflict,DomainNotAvailable,DomainNotFound,DomainNotVerified,DomainPaymentError,DomainPermissionDenied,DomainPurchasePending,DomainRemovalConflict,InvalidAlias,InvalidAliasInConfig,InvalidDeploymentId,InvalidDomain,InvalidMoveDestination,InvalidToken,LinkRequiredError,NoAliasInConfig,NowError,ProjectNotFound,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnexpectedDomainTransferError,UnsupportedTLD,UserAborted,code,isAPIError,require_bytes}from"./chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib as require_lib2}from"./chunks/chunk-JESNVRVR.js";import{chars_default,emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-75IAMKGV.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var AgentTelemetryClient=class extends TelemetryClient{trackCliArgumentInit(value){value&&this.trackCliArgument({arg:"init",value})}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}};var import_chalk=__toESM(require_source(),1);import{readFile,writeFile}from"node:fs/promises";import{join}from"node:path";import{KNOWN_AGENTS}from"@vercel/detect-agent";var BEST_PRACTICES_START="<!-- VERCEL BEST PRACTICES START -->",BEST_PRACTICES_END="<!-- VERCEL BEST PRACTICES END -->",BEST_PRACTICES_BODY=`## Best practices for developing on Vercel
7
+ import{handleTracingApiError,invalidArguments,resolveConfigScope,resolveScope}from"./chunks/chunk-64U5W6GU.js";import{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-KNBEUC4P.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,parseSubcommandArguments,requireProjectContext,validateRequiredArguments,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-MA4K5IWW.js";import{FILTER_DEPRECATION_WARNING,computeGranularity,formatText,generateSparkline,toGranularityMsFromDuration,usesODataSyntax}from"./chunks/chunk-MEJTHWZB.js";import{OBSERVABILITY_METRICS_PATH,getRollupColumnName,handleApiError}from"./chunks/chunk-VNSQCAVT.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-T6SFC3IH.js";import{canPrompt}from"./chunks/chunk-XD2LZRBS.js";import"./chunks/chunk-IVSSTHB6.js";import{formatDate,formatDateWithoutTime}from"./chunks/chunk-HRR57QNP.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{handleValidationError,normalizeRepeatableStringFilters,outputError,parseTimeFlag,resolveTimeRange,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-WH3SHWVK.js";import{collectBuildLogs,displayBuildLogs,displayRuntimeLogs,require_split2}from"./chunks/chunk-25S4PQNK.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{addDomain,createCertForCns,extractDomain,getDomainByName,isWildcardAlias,require_cjs,setupDomain}from"./chunks/chunk-4A5SGLIH.js";import{collectContactInformation,getDomainPrice,getDomainStatus,pollForOrder,purchaseDomain}from"./chunks/chunk-W6LNIG5O.js";import{api,tryOpenApiFallback}from"./chunks/chunk-V2BKSCXI.js";import"./chunks/chunk-GHAY4PSD.js";import{login}from"./chunks/chunk-X3JK3SQ2.js";import{main}from"./chunks/chunk-AUZEOUZU.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{selectOrg}from"./chunks/chunk-NZBUIMZG.js";import{createProject}from"./chunks/chunk-QHJLRTVY.js";import{require_fast_deep_equal}from"./chunks/chunk-MCRKBVZA.js";import{CURL_INSTALL_COMMAND,NATIVE_UPDATE_SELECT_PRODUCTION_ENV,NATIVE_UPDATE_VERSION_ENV,box,cacheNativeUpdateDiscoveryAttempt,cacheNativeUpdateVersion,did_you_mean_default,executeUpgrade,handleCommandTypo,installAndActivatePrBinary,installAndActivateProductionVersion,isAutoUpdateEnabled,isCurlInstall,isNativeAutoUpdateEnabled,isNativeUpdateChild,listAvailableVersions,listNativeTrackSlots,markNativeUpdateStaged,parsePrTarget,pinPackageVersion,readActivePointer,readNativeInstallState,require_tar_fs,resolveLatestNativeVersion,restoreNativeUpdateAfterDiscoveryFailure,setAutoUpdate,setMinReleaseAgeBypass,spawnNativeUpdateChild,stageProductionUpdate,withDirectoryLock}from"./chunks/chunk-IYL5CKZ4.js";import{OpenApiCache,resolveOpenApiTagForProjectsCli,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-B3K6GM2W.js";import{getUpdateCommand,getUpdateCommandInfo,isGlobal}from"./chunks/chunk-JUSQYKFF.js";import{readJSONFile}from"./chunks/chunk-BRUTDRAQ.js";import{Now,getBuildMachineResourceConfig,isDeploying,printDeploymentStatus}from"./chunks/chunk-T76ITV65.js";import{require_async_sema}from"./chunks/chunk-NZ2TFADV.js";import"./chunks/chunk-3DMY3OJR.js";import{dump,load}from"./chunks/chunk-V6Y6UK6B.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-BZYQ6RFV.js";import"./chunks/chunk-EAUDC24V.js";import"./chunks/chunk-WF5YVWWY.js";import{require_dist as require_dist3}from"./chunks/chunk-YAPHSZJ7.js";import{require_dist2}from"./chunks/chunk-WJ4VNTE3.js";import"./chunks/chunk-VOB4W7DO.js";import"./chunks/chunk-RRDNKB2X.js";import"./chunks/chunk-MVGTMPMI.js";import"./chunks/chunk-SACGQMVQ.js";import"./chunks/chunk-U56NHYAH.js";import"./chunks/chunk-2EYYB6YN.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-3E364MJE.js";import"./chunks/chunk-7EJQLVWX.js";import{responseError}from"./chunks/chunk-SY4EANZH.js";import"./chunks/chunk-O4FDRZ22.js";import{sleep}from"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-P2O5DOYE.js";import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,pickCustomEnvironment,readStandardInput,require_dist as require_dist4}from"./chunks/chunk-6JGC4YDH.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{ellipsis}from"./chunks/chunk-F4KY2TOK.js";import{formatTable,strlen}from"./chunks/chunk-LSQREJXO.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-ID663OJ7.js";import{GATEWAY_ANTHROPIC_BASE_URL,GATEWAY_API_KEY_ENV,GATEWAY_CODEX_BASE_URL,GATEWAY_CODING_AGENT_BASE_URL,GATEWAY_CURSOR_BASE_URL,GATEWAY_DEFAULT_MODEL,KEY_PLACEHOLDER,MANAGED_BLOCK_END,MANAGED_BLOCK_START,autoInstallVercelPlugin,backupFile,claudeCode,ensureMode,isFile,isSymlink,maskSecret,mergeJson,mergeJsonc,mergeToml,parseJsonObjectOrNull,pathExists,publishNoClobber,readFileOrNull,resolveGatewayBaseUrl,setupVercelPlugin,upsertManagedBlock,writeConfigFile}from"./chunks/chunk-N7L3XLWC.js";import{require_execa}from"./chunks/chunk-GSOPJJO5.js";import{createEnvObject,envPullCommandLogic,pull}from"./chunks/chunk-BWY67LI6.js";import{resolveProjectContext}from"./chunks/chunk-IAUAFUO2.js";import"./chunks/chunk-25565AGS.js";import{isGuidanceEnabled}from"./chunks/chunk-A5R2HHNK.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{getSubcommand as getSubcommand7}from"./chunks/chunk-ETV3C2CV.js";import{init_main,parse}from"./chunks/chunk-J24BABG4.js";import{ensureLink}from"./chunks/chunk-3AF3TTCR.js";import"./chunks/chunk-QW2UP4W4.js";import{performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunks/chunk-KTNRWBHM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import{require_frameworks}from"./chunks/chunk-MVCAUS4F.js";import{CI_LOG_LEVELS,CREDIT_TYPE_LABELS,FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_DIMENSIONS,FLAG_EVALUATIONS_DIMENSION_NAMES,FLAG_EVALUATIONS_GRANULARITIES,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,PROJECT_MEMBER_ROLES,STORAGE_PROVIDERS,SUPPORTED_ADDON_NAMES,SUPPORTED_CREDIT_TYPES,abortSubcommand,acceptTermsSubcommand,accessGroupsSubcommand,accessSummarySubcommand,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand,addSubcommand10 as addSubcommand9,addSubcommand11,addSubcommand12,addSubcommand2,addSubcommand3,addSubcommand4,addSubcommand5,addSubcommand6,addSubcommand7,addSubcommand9 as addSubcommand8,addToGroupSubcommand,addonSubcommand,agentCommand,agentRunsCommand,aiGatewayCommand,alertsInspectSubcommand,alertsListSubcommand,alertsSubcommand,aliasCommand,analyzeSubcommand,apiKeysSubcommand,approveSubcommand,archiveSubcommand,attachSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,autoRenewSubcommand,autoupdateSubcommand,backupsSubcommand,balanceSubcommand,bisectCommand,blobCommand,botManagementSubcommand,budgetCommand,budgetsDefaultsListSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,budgetsSetSubcommand,budgetsSubcommand,buildersCommand,buyCommand,buySubcommand,cacheCommand,categoriesSubcommand,certsCommand,changelogCommand,checkSubcommand,checkSubcommand2,checkSubcommand3,checksAddFlags,checksRemoveFlags,checksSubcommand,ciCommand,claimSubcommand,codingAgentsSubcommand,completeSubcommand,configureSubcommand,connectSubcommand,connectSubcommand2,connectSubcommand3,connectionsAddSubcommand,connectionsListSubcommand,connectionsRemoveSubcommand,connectionsSubcommand,connexCommand,contactsAddSubcommand,contactsSubcommand,contractCommand,copySubcommand,createGroupSubcommand,createStoreSubcommand,createSubcommand,createSubcommand2,createSubcommand3,createSubcommand4,createSubcommand5,createSubcommand6,createSubcommand7,createSubcommand8 as createSubcommand9,createThresholdSubcommand,creditsSubcommand,cronsCommand,curlCommand,dangerouslyDeleteImmutableStaticAssetSubcommand,dangerouslyDeleteSubcommand,decideSubcommand,delSubcommand,deleteGroupSubcommand,deleteStoreSubcommand,deleteSubcommand as deleteSubcommand2,deleteSubcommand2 as deleteSubcommand4,deleteSubcommand3 as deleteSubcommand5,deployHooksCommand,detachSubcommand,diagnoseSubcommand,diffSubcommand,disableSubcommand,disableSubcommand2,disableSubcommand3 as disableSubcommand4,disableSubcommand4 as disableSubcommand5,discardSubcommand,disconnectSubcommand,disconnectSubcommand2,disconnectSubcommand3,discoverSubcommand,dnsCommand,domainSubcommand,domainsCommand,emptyStoreSubcommand,enableSubcommand,enableSubcommand2,enableSubcommand3 as enableSubcommand4,enableSubcommand4 as enableSubcommand5,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,executionsListSubcommand,executionsSubcommand,experimentsCommand,fetchSubcommand,findForeignCreateFlags,findOverlappingConnections,firewallCommand,flagsCommand,flushSubcommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getConnections,getFlagAttributeType,getStorageProvider,getStorageStore,getStorageStores,getStoreInfoSubcommand,getSubcommand,getSubcommand2,getSubcommand3,getSubcommand4 as getSubcommand5,getSubcommand5 as getSubcommand6,gitCommand,globalConfigCommand,grepSubcommand,guidanceCommand,guideSubcommand,httpstatCommand,importKeySubcommand,importSubcommand,importSubcommand2,initCommand,inspectCommand,inspectGroupSubcommand,inspectSubcommand,inspectSubcommand10 as inspectSubcommand12,inspectSubcommand11 as inspectSubcommand15,inspectSubcommand2,inspectSubcommand3 as inspectSubcommand4,inspectSubcommand4 as inspectSubcommand6,inspectSubcommand5 as inspectSubcommand7,inspectSubcommand6 as inspectSubcommand8,inspectSubcommand7 as inspectSubcommand9,inspectSubcommand8 as inspectSubcommand10,inspectSubcommand9 as inspectSubcommand11,installCommand,installationsSubcommand,installedSubcommand,integrationCommand,integrationResourceCommand,invalidateSubcommand,inviteSubcommand,invokeSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isCustomEnvironmentAddonAlias,isFlagAttributeType,isFlagEvaluationsDimension,isFlagEvaluationsGranularity,isProjectGrant,isTimestampAttributeType,issueSubcommand,issuerJwksUrl,issuerUrl,itemsSubcommand,kmsCommand,labelsListSubcommand,labelsSubcommand,leaderboardAppsSubcommand,leaderboardLabsSubcommand,leaderboardModelsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,listStorageProviderTypes,listStoresSubcommand,listSubcommand,listSubcommand10 as listSubcommand12,listSubcommand11 as listSubcommand13,listSubcommand12 as listSubcommand14,listSubcommand13 as listSubcommand15,listSubcommand14 as listSubcommand16,listSubcommand15 as listSubcommand17,listSubcommand16 as listSubcommand18,listSubcommand17 as listSubcommand19,listSubcommand18 as listSubcommand21,listSubcommand19 as listSubcommand22,listSubcommand2,listSubcommand20 as listSubcommand23,listSubcommand21 as listSubcommand24,listSubcommand22 as listSubcommand25,listSubcommand23 as listSubcommand27,listSubcommand24 as listSubcommand28,listSubcommand25 as listSubcommand29,listSubcommand26 as listSubcommand30,listSubcommand3 as listSubcommand4,listSubcommand4 as listSubcommand5,listSubcommand5 as listSubcommand6,listSubcommand6 as listSubcommand8,listSubcommand7 as listSubcommand9,listSubcommand8 as listSubcommand10,listSubcommand9 as listSubcommand11,listVersionsSubcommand,loadStoreDetails,logoutCommand,logsSubcommand,mcpCommand,membersAddFlags,membersInviteSubcommand,membersRemoveFlags,membersRemoveSubcommand,membersSubcommand,membersSubcommand2,microfrontendsCommand,modelsEndpointsSubcommand,modelsListSubcommand,modelsSubcommand,moveSubcommand,observabilitySubcommand,openCommand,openSubcommand as openSubcommand2,openSubcommand2 as openSubcommand3,openSubcommand3 as openSubcommand4,openSubcommand4 as openSubcommand5,overrideSubcommand,overviewSubcommand,pauseSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,preinstallSubcommand,prepareSubcommand,presignSubcommand,priceSubcommand,pricingCommand,prioritySubcommand,proSubcommand,projectCommand,projectsSubcommand,promoteCommand,promoteSubcommand,protectionSubcommand,publishSubcommand,pullSubcommand,purgeSubcommand,putImageSubcommand,putSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand,removeSubcommand10,removeSubcommand11,removeSubcommand12,removeSubcommand13,removeSubcommand14,removeSubcommand15,removeSubcommand16 as removeSubcommand17,removeSubcommand17 as removeSubcommand18,removeSubcommand2,removeSubcommand3,removeSubcommand4,removeSubcommand5,removeSubcommand6,removeSubcommand7,removeSubcommand8,removeSubcommand9,renameSubcommand,renewSubcommand,requestSubcommand,rerunSubcommand,reseedEnrollmentSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,restartAnalysisSubcommand,restoreSubcommand,resumeSubcommand,returnToDraftSubcommand,revokeKeySubcommand,revokeTokensSubcommand,rollbackCommand,rollingReleaseCommand,rolloutSubcommand,rulesAddSubcommand,rulesAddSubcommand2 as rulesAddSubcommand3,rulesAddSubcommand3 as rulesAddSubcommand4,rulesDisableSubcommand,rulesEditSubcommand,rulesEditSubcommand2,rulesEnableSubcommand,rulesInspectSubcommand as rulesInspectSubcommand2,rulesListSubcommand,rulesListSubcommand2,rulesListSubcommand3,rulesMoveSubcommand,rulesRemoveSubcommand,rulesRemoveSubcommand2,rulesRemoveSubcommand3,rulesReorderSubcommand,rulesSubcommand,rulesSubcommand2,rulesSubcommand3,rulesUpdateSubcommand as rulesUpdateSubcommand2,runSubcommand,schedulesCommand,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,searchSubcommand,searchSubcommand2,securityCommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setRampSubcommand,setSubcommand,setSubcommand2,setSubcommand3,setupCommand,setupSubcommand,signedTokenSubcommand,signupCommand,skillsCommand,speedInsightsSubcommand,splitSubcommand,ssoSubcommand,staleSubcommand,startSubcommand,startSubcommand2,statusSubcommand,statusSubcommand2,statusSubcommand3,statusSubcommand4,statusSubcommand5,statusSubcommand6,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,switchSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetCommand,targetsAddSubcommand,targetsListSubcommand,targetsRemoveSubcommand,targetsSubcommand,teamsCommand,telemetryCommand,tokenSubcommand,tokenSubcommand2,tokensCommand,tokensSubcommand,traceSubcommand,trafficInspectSubcommand,trafficListSubcommand,trafficSubcommand,transferInSubcommand,unarchiveSubcommand,updateGrantSubcommand,updateSubcommand,updateSubcommand10,updateSubcommand11,updateSubcommand2,updateSubcommand3,updateSubcommand4,updateSubcommand5,updateSubcommand6,updateSubcommand7,updateSubcommand8,updateSubcommand9,upgradeCommand,uploadSubcommand,usageCommand,useSubcommand,useTargetingSubcommand,verifySubcommand,versionCommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand,virtualModelsCreateSubcommand,virtualModelsEditSubcommand,virtualModelsInspectSubcommand,virtualModelsListSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand,virtualModelsSubcommand,webAnalyticsSubcommand,webhooksCommand,whoamiCommand}from"./chunks/chunk-U5C6XOLA.js";import{createSubcommand as createSubcommand8,getSubcommand as getSubcommand4,searchSubcommand as searchSubcommand3,tracesCommand}from"./chunks/chunk-OH2RT2GN.js";import{tracesConfigCommand}from"./chunks/chunk-UFXKCETS.js";import{addSubcommand as addSubcommand13,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand14,listSubcommand as listSubcommand26,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand16,vcrCommand}from"./chunks/chunk-RZGWCQP7.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-AG5QQNJ3.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-AU42HSQ3.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-L5FUUGYX.js";import{addSubcommand as addSubcommand10,deleteSubcommand as deleteSubcommand3,disableSubcommand as disableSubcommand3,discardSubcommand as discardSubcommand2,editSubcommand as editSubcommand2,enableSubcommand as enableSubcommand3,exportSubcommand,inspectSubcommand as inspectSubcommand13,listSubcommand as listSubcommand20,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand as publishSubcommand2,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-QC47UKDR.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-QJKJBD2M.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand5,listSubcommand as listSubcommand7,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-MYCQIZU6.js";import{alertsCommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand3}from"./chunks/chunk-CNU4T7FO.js";import{rulesAddSubcommand as rulesAddSubcommand2,rulesAggregateCommand,rulesInspectSubcommand,rulesLsSubcommand,rulesNotificationsAggregateCommand,rulesNotificationsLinkSubcommand,rulesNotificationsLsSubcommand,rulesNotificationsUnlinkSubcommand,rulesNotificationsUpdateSubcommand,rulesRmSubcommand,rulesSchemaSubcommand,rulesUpdateSubcommand}from"./chunks/chunk-LU5O3NH7.js";import{logsCommand}from"./chunks/chunk-AMDHTZDV.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-2JBVMF2Y.js";import"./chunks/chunk-JLXG2XWW.js";import"./chunks/chunk-B4YYOSPY.js";import"./chunks/chunk-UTW2FDSC.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-S7XZC23O.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-FBYA6LLM.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-HJ3NY4UA.js";import{getTeams}from"./chunks/chunk-2H243SJV.js";import"./chunks/chunk-SCV7XEEO.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getPaginationOpts,isValidName}from"./chunks/chunk-ILFUNCJZ.js";import{getCommandFlags}from"./chunks/chunk-OUHPDA7Q.js";import{formatEnvironment}from"./chunks/chunk-JSBEAHKA.js";import{validateLsArgs}from"./chunks/chunk-EO7GUARB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"./chunks/chunk-3EYOQC4R.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import"./chunks/chunk-XEQT373M.js";import{getDeployment,toHost}from"./chunks/chunk-VIBUYIZ3.js";import{mapCertError}from"./chunks/chunk-6LRVRPYO.js";import"./chunks/chunk-GRTIWUV2.js";import{buildCommandDocumentationLines,help}from"./chunks/chunk-7D2HVBVP.js";import{table}from"./chunks/chunk-773GOZIR.js";import{printError}from"./chunks/chunk-V336CYEI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,BUY_PRO_COMMAND,PRIORITY_PROJECT_ENABLE_COMMAND,argvHasNonInteractive,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,buyProFix,clientObservabilityPlanRecovery,exitWithNonInteractiveError,getExitCodeForReason,getGlobalFlagsFromArgv,isProOrEnterprisePlan,openUrlInBrowserCommand,outputActionRequired,outputAgentError,outputAgentSuccess,shouldEmitNonInteractiveCommandError,targetRecovery,withGlobalFlags,writeAgentError}from"./chunks/chunk-5RR3435W.js";import"./chunks/chunk-67GZ5REA.js";import{require_strip_ansi}from"./chunks/chunk-BS32OUOC.js";import{validateJsonOutput,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import{detectExplicitScope,getContextName,getScope,introspectToken,isAppPrincipalEnabled,persistAuthConfig,readLocalConfig,resolveAppFromToken,writeToConfigFile}from"./chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"./chunks/chunk-HMS3UIQ2.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient}from"./chunks/chunk-HUJPGK7W.js";import"./chunks/chunk-VKXEOL4K.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunks/chunk-YYPNUQDI.js";import"./chunks/chunk-4SAVH3H7.js";import"./chunks/chunk-ZS2WS4AM.js";import{processRevocationResponse,revocationRequest,ua_default}from"./chunks/chunk-AOWWC6WZ.js";import{directFetch,fetch as fetch2,getFetchDispatcher,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import{isArgumentError,parseArguments,require_arg}from"./chunks/chunk-R4VVQRLX.js";import{quoteArg}from"./chunks/chunk-BKV35LVB.js";import{GLOBAL_CLI_FLAG_NAMES,arg_common_default,formatOption,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags,globalCommandOptions,jsonOption,normalizeFlagName,stripSensitiveAuthArgs}from"./chunks/chunk-5IPBCD7K.js";import{VERCEL_CONFIG_EXTENSIONS,execFileAsync,getGitConfigPath,getGitExecutable,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getProjectLink,getVercelDirectory,parseGitConfig,pluckRemoteUrls,require_lib,require_pluralize,resolveProjectCwd}from"./chunks/chunk-MYMM34ZH.js";import"./chunks/chunk-ROPQIBWJ.js";import"./chunks/chunk-VKPZP4LC.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-N7Q2IESO.js";import{getUser}from"./chunks/chunk-VSE5BAPP.js";import{getTeamByIdOrSlug,teamCache}from"./chunks/chunk-VOZEB6PD.js";import{APIError,AliasInUse,CertConfigurationError,CertError,CertMissing,CertNotFound,CertOrderNotFound,CertsPermissionDenied,DNSConflictingRecord,DNSInvalidPort,DNSInvalidType,DNSPermissionDenied,DeploymentFailedAliasImpossible,DeploymentNotFound,DeploymentNotReady,DeploymentPermissionDenied,DomainAlreadyExists,DomainExternal,DomainMoveConflict,DomainNotAvailable,DomainNotFound,DomainNotVerified,DomainPaymentError,DomainPermissionDenied,DomainPurchasePending,DomainRemovalConflict,InvalidAlias,InvalidAliasInConfig,InvalidDeploymentId,InvalidDomain,InvalidMoveDestination,InvalidToken,LinkRequiredError,NoAliasInConfig,NowError,ProjectNotFound,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnexpectedDomainTransferError,UnsupportedTLD,UserAborted,code,isAPIError,require_bytes}from"./chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib as require_lib2}from"./chunks/chunk-JESNVRVR.js";import{chars_default,emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-75IAMKGV.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var AgentTelemetryClient=class extends TelemetryClient{trackCliArgumentInit(value){value&&this.trackCliArgument({arg:"init",value})}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}};var import_chalk=__toESM(require_source(),1);import{readFile,writeFile}from"node:fs/promises";import{join}from"node:path";import{KNOWN_AGENTS}from"@vercel/detect-agent";var BEST_PRACTICES_START="<!-- VERCEL BEST PRACTICES START -->",BEST_PRACTICES_END="<!-- VERCEL BEST PRACTICES END -->",BEST_PRACTICES_BODY=`## Best practices for developing on Vercel
8
8
 
9
9
  These defaults are optimized for AI coding agents (and humans) working on apps that deploy to Vercel.
10
10
 
@@ -1495,7 +1495,7 @@ ${tablePrint}
1495
1495
  `)}var import_chalk330=__toESM(require_source(),1);function getPeriodLabel(period){switch(period){case"daily":return"Daily";case"weekly":return"Weekly";case"monthly":return"Monthly"}}function outputBreakdown({data,breakdownPeriod,startTime}){let{print,log}=output_manager_default,periodLabel=getPeriodLabel(breakdownPeriod);outputUsageHeader(data,`${periodLabel} usage`,elapsed(Date.now()-startTime));let sortedPeriods=[...data.periodUsage.keys()].sort();if(sortedPeriods.length===0){log("No usage data found for this period.");return}let hiddenCount=0;for(let periodKey of sortedPeriods){let periodData=data.periodUsage.get(periodKey),allServices=[...periodData.services.entries()],sortedServices=visibleServices(periodData.services).sort((a,b)=>b[1].cost-a[1].cost);if(hiddenCount+=allServices.length-sortedServices.length,sortedServices.length===0)continue;log(`${import_chalk330.default.bold(import_chalk330.default.cyan(periodKey))} (${formatUsageAmount(periodData.totalCost,data.costUnit)})`);let rows=sortedServices.map(([name,service])=>[formatServiceName(name,service),formatUsageQuantity(service.quantity,service.unit,{compact:!0,showSmallValues:!0,singularUnit:service.singularUnit,unitKind:service.unitKind}),formatServiceCost(service,data.costUnit)]),tablePrint=table([["Service","Usage","Cost"].map(header=>import_chalk330.default.bold(import_chalk330.default.gray(header))),...rows],{hsep:4,align:["l","l","r"]}).replace(/^/gm," ");print(`${tablePrint}
1496
1496
  `)}outputHiddenServicesHint(hiddenCount)}var import_chalk331=__toESM(require_source(),1);function getDimensionLabel(dimension){return dimension==="project"?"Project":"Region"}function outputGroupBy({data,groupByDimension,startTime}){let{print,log}=output_manager_default,dimensionLabel=getDimensionLabel(groupByDimension);outputUsageHeader(data,`Usage by ${dimensionLabel}`,elapsed(Date.now()-startTime));let sortedGroups=[...data.groupByUsage.entries()].sort((a,b)=>b[1].totalCost-a[1].totalCost);if(sortedGroups.length===0){log("No usage data found for this period.");return}let hiddenCount=0;for(let[groupName,groupData]of sortedGroups){let allServices=[...groupData.services.entries()],services=visibleServices(groupData.services).sort((a,b)=>b[1].cost-a[1].cost);if(hiddenCount+=allServices.length-services.length,services.length===0)continue;log(`${import_chalk331.default.bold(import_chalk331.default.cyan(groupName))} (${formatUsageAmount(groupData.totalCost,data.costUnit)})`);let rows=services.map(([name,service])=>[formatServiceName(name,service),formatUsageQuantity(service.quantity,service.unit,{compact:!0,showSmallValues:!0,singularUnit:service.singularUnit,unitKind:service.unitKind}),formatServiceCost(service,data.costUnit)]),tablePrint=table([["Service","Usage","Cost"].map(header=>import_chalk331.default.bold(import_chalk331.default.gray(header))),...rows],{hsep:4,align:["l","l","r"]}).replace(/^/gm," ");print(`${tablePrint}
1497
1497
  `)}log(""),log(`${import_chalk331.default.gray("Estimated total:")} ${import_chalk331.default.bold(formatUsageAmount(data.totalCost,data.costUnit))}`),outputHiddenServicesHint(hiddenCount)}function serializeService(service){return{name:service.name,product:service.product,quantity:service.quantity,unit:service.unit,cost:service.cost,included:service.included,category:service.category}}function outputJson9(client,{data,fromDate,toDate,breakdownPeriod,groupByDimension}){let sortedServices=[...data.services.entries()].sort((a,b)=>b[1].cost-a[1].cost),jsonOutput={period:{from:fromDate,to:toDate},context:data.contextName,costUnit:data.costUnit};data.creditBalance&&(jsonOutput.creditBalance=data.creditBalance),breakdownPeriod&&(jsonOutput.breakdown={period:breakdownPeriod,data:[...data.periodUsage.keys()].sort().map(periodKey=>{let period=data.periodUsage.get(periodKey);return{periodKey,services:[...period.services.entries()].sort((a,b)=>b[1].cost-a[1].cost).map(([,service])=>serializeService(service)),totals:{cost:period.totalCost}}})}),groupByDimension&&(jsonOutput.groupBy={dimension:groupByDimension,data:[...data.groupByUsage.entries()].sort((a,b)=>b[1].totalCost-a[1].totalCost).map(([name,group])=>({name,services:[...group.services.entries()].sort((a,b)=>b[1].cost-a[1].cost).map(([,service])=>serializeService(service)),totals:{cost:group.totalCost}}))}),jsonOutput.services=sortedServices.map(([,service])=>serializeService(service)),jsonOutput.totals={cost:data.totalCost},client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
1498
- `)}var GROSS_COST_METRIC="gross_cost",SUMMARY_VIEW="byProduct",DETAIL_VIEW="byProductRegionProject";function getCostViews(groupByDimension){let views={};return groupByDimension&&(views[DETAIL_VIEW]={groupBy:["product","region","project"]}),views[SUMMARY_VIEW]={groupBy:["product"]},{views,summaryViewName:SUMMARY_VIEW,detailViewName:groupByDimension?DETAIL_VIEW:void 0}}async function usage(client){let{print,error,debug,spinner,warn}=output_manager_default,flagsSpecification=getFlagsSpecification(usageCommand.options),parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let telemetry2=new UsageTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("usage"),print(help(usageCommand,{columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput,fromFlag=parsedArgs.flags["--from"],toFlag=parsedArgs.flags["--to"];if(fromFlag!==void 0&&parsedArgs.flags["--since"]!==void 0)return error("Pass only one of --since or --from. (--from is deprecated.)"),2;if(toFlag!==void 0&&parsedArgs.flags["--until"]!==void 0)return error("Pass only one of --until or --to. (--to is deprecated.)"),2;fromFlag!==void 0&&warn("`--from` is deprecated, please use `--since` instead"),toFlag!==void 0&&warn("`--to` is deprecated, please use `--until` instead");let sinceFlag=parsedArgs.flags["--since"]??fromFlag,untilFlag=parsedArgs.flags["--until"]??toFlag;if(untilFlag&&!sinceFlag)return error("--until requires --since. Omit both to show the current billing cycle."),2;let breakdownFlag=parsedArgs.flags["--breakdown"];if(breakdownFlag&&!isValidBreakdownPeriod(breakdownFlag))return error(`Invalid breakdown period: "${breakdownFlag}". Valid options are: ${VALID_BREAKDOWN_PERIODS.join(", ")}`),2;let breakdownPeriod=breakdownFlag,groupByFlag=parsedArgs.flags["--group-by"];if(groupByFlag&&!isValidGroupByDimension(groupByFlag))return error(`Invalid group-by dimension: "${groupByFlag}". Valid options are: ${VALID_GROUP_BY_DIMENSIONS.join(", ")}`),2;let groupByDimension=groupByFlag;if(breakdownPeriod&&groupByDimension)return error("--breakdown and --group-by cannot be used together. Use one or the other."),2;let sinceDate,untilDate;try{sinceDate=sinceFlag?parseBillingDate(sinceFlag,!1):void 0,untilDate=untilFlag?parseBillingDate(untilFlag,!0):void 0}catch(err){return error(err.message),2}telemetry2.trackCliOptionSince(parsedArgs.flags["--since"]),telemetry2.trackCliOptionUntil(parsedArgs.flags["--until"]),telemetry2.trackCliOptionFrom(fromFlag),telemetry2.trackCliOptionTo(toFlag),telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]),telemetry2.trackCliOptionBreakdown(breakdownFlag),telemetry2.trackCliOptionGroupBy(groupByFlag);let contextName,contextType,teamId,billingPeriod,hasPrecommitment=!1;try{let scope=await getScope(client),owner=scope.team??scope.user;contextName=scope.contextName,contextType=scope.team?"team":"personal account",teamId=scope.team?.id;let billing=owner?.billing;billingPeriod=billing?.subscriptions?.find(subscription=>subscription.frequency.interval==="month"&&subscription.frequency.intervalCount===1)?.period??billing?.period,hasPrecommitment=billing?.plan==="enterprise"||billing?.planIteration==="plus"||billing?.plan==="pro"&&billing?.planIteration==="flex"}catch(err){if((0,import_error_utils26.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1;throw err}let usingDefaults=!sinceFlag,fromDate=sinceDate??(billingPeriod?new Date(billingPeriod.start).toISOString():getDefaultFromDate()),toDate=untilDate??(sinceFlag?new Date().toISOString():billingPeriod?new Date(billingPeriod.end).toISOString():getDefaultToDate()),fromDisplay=sinceFlag&&!isRelativeTime(sinceFlag)?sinceFlag:extractDatePortion(fromDate),toDisplay=untilFlag&&!isRelativeTime(untilFlag)?untilFlag:extractDatePortion(toDate);debug(`Fetching dashboard usage from ${fromDate} to ${toDate}`);let start=Date.now();asJson||spinner(`Fetching usage data for ${import_chalk332.default.bold(contextName)}`);try{let query=new URLSearchParams;teamId&&query.set("teamId",teamId);let viewPlan=getCostViews(groupByDimension),queryString=query.toString(),costsRequest=client.fetch(`/v2/billing/costs${queryString?`?${queryString}`:""}`,{method:"POST",body:{from:fromDate,to:toDate,metrics:[GROSS_COST_METRIC,"quantity"],format:"timeseries",views:viewPlan.views,userAgent:"vercel-cli.usage"},useCurrentTeam:!1}),commitmentRequest=usingDefaults&&teamId&&hasPrecommitment?client.fetch(`/v1/invoices/pre-commitment-usage?teamId=${encodeURIComponent(teamId)}`,{useCurrentTeam:!1}).catch(err=>(debug(`Unable to fetch infrastructure credit: ${String(err)}`),null)):Promise.resolve(null),[response,commitmentUsage]=await Promise.all([costsRequest,commitmentRequest]),usageData=processCosts(response,{summaryView:response.results.views[viewPlan.summaryViewName],detailView:viewPlan.detailViewName?response.results.views[viewPlan.detailViewName]:void 0,contextName,contextType,scope:parsedArgs.flags["--scope"],fromDisplay,toDisplay,usingDefaults,breakdownPeriod,groupByDimension});return attachCredit(usageData,commitmentUsage),asJson?(outputJson9(client,{data:usageData,fromDate,toDate,breakdownPeriod,groupByDimension}),0):(groupByDimension?outputGroupBy({data:usageData,groupByDimension,startTime:start}):breakdownPeriod?outputBreakdown({data:usageData,breakdownPeriod,startTime:start}):outputAggregated({data:usageData,startTime:start}),0)}catch(err){return isAPIError(err)&&err.status===404&&err.code==="costs_not_found"?error(`Billing cost data is unavailable for ${fromDisplay} through ${toDisplay}. This does not mean usage was zero. It usually means the team has no active subscription for that range, or the range is before the team's billing data starts. Check that the selected team and date range are correct.`):output_manager_default.prettyError(err),1}}function roundToHundredths(value){return Math.round((value+Number.EPSILON)*100)/100}function getUsageThrough(queriedAt,toDisplay){let queriedDate=extractDatePortion(queriedAt);return queriedDate<toDisplay?queriedDate:toDisplay}function attachCredit(usageData,commitmentUsage){if(!commitmentUsage)return;let creditLedger=commitmentUsage.creditLedgers.find(ledger=>ledger.currency===usageData.costUnit);if(!creditLedger)return;let used=roundToHundredths(creditLedger.total-creditLedger.remaining);usageData.creditBalance={cadence:commitmentUsage.cadence,currency:creditLedger.currency,allocated:creditLedger.total,used,remaining:creditLedger.remaining}}function processCosts(response,options){let{summaryView,detailView,contextName,contextType,scope,fromDisplay,toDisplay,usingDefaults,breakdownPeriod,groupByDimension}=options;if(!summaryView)throw new Error("The billing API did not return the requested usage summary.");let costUnit=getCostUnit(response);if(response.availableCurrencies?.some(currency=>currency!==costUnit))throw new Error("Can't show complete costs for this date range because some costs use a different billing currency. Choose a date range within the current billing currency or view usage in the dashboard.");let products=response.results.dimensionsMeta.product?.values??{},projects2=response.results.dimensionsMeta.project?.values??{},regions=response.results.dimensionsMeta.region?.values??{};if(groupByDimension&&(!detailView||!detailView.groupBy.includes(groupByDimension)))throw new Error(`Usage cannot be grouped by ${groupByDimension} for this team.`);let services=new Map,periodUsage=new Map,groupByUsage=new Map,totalCost=0;for(let result of summaryView?.results??[]){let product=result.dimensionValues.product;if(!product)continue;let productMetadata=products[product],serviceName=productMetadata?.title??product,aggregation=aggregateResult(result,product,serviceName,response.metrics,void 0,productMetadata?.category==="Subscription Licenses");if(addService(services,serviceName,aggregation),totalCost+=aggregation.cost,breakdownPeriod)for(let index=0;index<response.results.times.length;index++){let periodKey=getPeriodKey(response.results.times[index],breakdownPeriod),period=periodUsage.get(periodKey)??emptyAggregation(),sample=aggregateResult(result,product,serviceName,response.metrics,index,productMetadata?.category==="Subscription Licenses");addService(period.services,serviceName,sample),period.totalCost+=sample.cost,periodUsage.set(periodKey,period)}}if(groupByDimension)for(let result of detailView?.results??[]){let product=result.dimensionValues.product;if(!product)continue;let productMetadata=products[product],serviceName=productMetadata?.title??product,aggregation=aggregateResult(result,product,serviceName,response.metrics,void 0,productMetadata?.category==="Subscription Licenses"),id2=result.dimensionValues[groupByDimension],groupName=id2?(groupByDimension==="project"?projects2:regions)[id2]?.title??id2:groupByDimension==="project"?"(unattributed)":"(global)",group=groupByUsage.get(groupName)??emptyAggregation();addService(group.services,serviceName,aggregation),group.totalCost+=aggregation.cost,groupByUsage.set(groupName,group)}return{contextName,contextType,scope,fromDisplay,toDisplay,usageThrough:getUsageThrough(response.queriedAt,toDisplay),usingDefaults,costUnit,services,periodUsage,groupByUsage,totalCost}}function getCostUnit(response){let unit=response.metrics.find(metric=>metric.slug===GROSS_COST_METRIC)?.unit;return unit?.singular==="MIU"||unit?.plural==="MIUs"?"managed_infrastructure_units":"USD"}function aggregateResult(result,product,name,metrics2,sampleIndex,isSubscription=!1){let grossCostIndex=result.metrics.indexOf(GROSS_COST_METRIC),quantityIndex=result.metrics.findIndex(metric=>metric!==GROSS_COST_METRIC),quantityMetric=metrics2.find(metric=>metric.slug===result.metrics[quantityIndex]),values=sampleIndex===void 0?result.totalValue:result.values[sampleIndex]??[],cost=grossCostIndex===-1?0:values[grossCostIndex]??0,included=result.flatRate===!0,rawQuantity=quantityIndex===-1?0:values[quantityIndex]??0,quantity=isSubscription&&sampleIndex===void 0&&quantityIndex!==-1?result.values.reduce((maximum,sample)=>Math.max(maximum,sample[quantityIndex]??0),0):rawQuantity,units=getQuantityUnits(quantityMetric,product,isSubscription);return{name,product,quantity,...units,cost,included,category:isSubscription?"subscription":"usage"}}function getQuantityUnits(metric,product,isSubscription){if(isSubscription)return{unit:"licenses",singularUnit:"license"};if(!metric?.unit)return{};if(metric.unit.kind==="custom"){let singularUnit=metric.unit.singular,unit2=metric.unit.plural??singularUnit;return!unit2||singularUnit===metric.title||unit2===metric.title?{}:{unit:unit2,singularUnit}}if(metric.unit.kind==="digitalStorage"&&metric.unit.name)return{unit:metric.unit.name,unitKind:metric.unit.kind};let unit=metric.unit.name;return!unit||unit===metric.title||unit===product?{}:{unit,unitKind:metric.unit.kind}}function addService(services,name,value){let key=JSON.stringify([value.product,value.included]),existing=services.get(key);if(!existing){services.set(key,{...value,name});return}let previousQuantity=existing.quantity;existing.quantity=existing.category==="subscription"?Math.max(previousQuantity,value.quantity):previousQuantity+value.quantity,existing.cost+=value.cost}function emptyAggregation(){return{services:new Map,totalCost:0}}var VcrTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandConfig(actual){this.trackCliSubcommand({subcommand:"config",value:actual})}trackCliSubcommandRm(actual){this.trackCliSubcommand({subcommand:"rm",value:actual})}trackCliSubcommandLogin(actual){this.trackCliSubcommand({subcommand:"login",value:actual})}trackCliSubcommandBuild(actual){this.trackCliSubcommand({subcommand:"build",value:actual})}trackCliSubcommandPush(actual){this.trackCliSubcommand({subcommand:"push",value:actual})}trackCliArgumentEngine(value){value&&this.trackCliArgument({arg:"engine",value})}trackCliArgumentPath(value){value&&this.trackCliArgument({arg:"path",value:this.redactedValue})}trackCliArgumentName(value){value&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionPlatform(value){if(value){let known=value==="linux/amd64"||value==="linux/arm64";this.trackCliOption({option:"platform",value:known?value:this.redactedValue})}}trackCliSubcommandTag(actual){this.trackCliSubcommand({subcommand:"tag",value:actual})}trackCliSubcommandImage(actual){this.trackCliSubcommand({subcommand:"image",value:actual})}trackCliSubcommandPermissions(actual){this.trackCliSubcommand({subcommand:"permissions",value:actual})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(value){value&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionCursor(value){value&&this.trackCliOption({option:"cursor",value:this.redactedValue})}trackCliOptionSortBy(value){value&&this.trackCliOption({option:"sort-by",value})}trackCliOptionSortOrder(value){value&&this.trackCliOption({option:"sort-order",value})}trackCliOptionPublic(value){(value==="true"||value==="false")&&this.trackCliOption({option:"public",value})}trackCliFlagUntagged(value){value&&this.trackCliFlag("untagged")}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}trackCliFlagPush(value){value&&this.trackCliFlag("push")}};var COMMAND_CONFIG69={ls:getCommandAliases(listSubcommand26),inspect:getCommandAliases(inspectSubcommand14),add:getCommandAliases(addSubcommand13),config:getCommandAliases(configSubcommand),rm:getCommandAliases(removeSubcommand16),login:getCommandAliases(loginSubcommand),build:getCommandAliases(buildSubcommand),push:getCommandAliases(pushSubcommand),tag:getCommandAliases(tagsAggregateCommand),image:getCommandAliases(imageAggregateCommand),permissions:getCommandAliases(permissionsAggregateCommand)};async function vcr(client){let telemetry2=new VcrTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(vcrCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,args,subcommandOriginal}=getSubcommand7(parsedArgs.args.slice(1),COMMAND_CONFIG69),needHelp=parsedArgs.flags["--help"];function printHelp(command2){output_manager_default.print(help(command2,{parent:vcrCommand,columns:client.stderr.columns}))}if(needHelp)switch(subcommand){case"ls":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(listSubcommand26),0;case"inspect":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(inspectSubcommand14),0;case"add":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(addSubcommand13),0;case"config":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(configSubcommand),0;case"rm":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(removeSubcommand16),0;case"login":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(loginSubcommand),0;case"build":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(buildSubcommand),0;case"push":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(pushSubcommand),0;case"tag":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(tagsLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(tagsInspectSubcommand),0):(printHelp(tagsAggregateCommand),0)}case"image":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(imageLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(imageInspectSubcommand),0):nested==="rm"||nested==="remove"||nested==="delete"?(printHelp(imageRmSubcommand),0):(printHelp(imageAggregateCommand),0)}case"permissions":{let printPermissionsActionHelp2=function(command2){output_manager_default.print(help(command2,{parent:{...vcrCommand,name:"vcr permissions repository"},columns:client.stderr.columns}))};var printPermissionsActionHelp=printPermissionsActionHelp2;telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args.slice(0,2),hasAction=aliases2=>nested.some(arg2=>arg2!==void 0&&aliases2.includes(arg2));return hasAction(PERMISSIONS_ACTIONS.ls)?(printPermissionsActionHelp2(permissionsLsSubcommand),0):hasAction(PERMISSIONS_ACTIONS.add)?(printPermissionsActionHelp2(permissionsAddSubcommand),0):hasAction(PERMISSIONS_ACTIONS.rm)?(printPermissionsActionHelp2(permissionsRmSubcommand),0):hasAction(PERMISSIONS_ACTIONS.clear)?(printPermissionsActionHelp2(permissionsClearSubcommand),0):(printHelp(permissionsAggregateCommand),0)}default:return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),output_manager_default.print(help(vcrCommand,{columns:client.stderr.columns})),0}switch(subcommand){case"ls":return telemetry2.trackCliSubcommandLs(subcommandOriginal),(await import("./chunks/ls-TE7BAMHR.js")).default(client,args,telemetry2);case"inspect":return telemetry2.trackCliSubcommandInspect(subcommandOriginal),(await import("./chunks/inspect-SEGNEPGI.js")).default(client,args,telemetry2);case"add":return telemetry2.trackCliSubcommandCreate(subcommandOriginal),(await import("./chunks/add-QKGWNVQS.js")).default(client,args,telemetry2);case"config":return telemetry2.trackCliSubcommandConfig(subcommandOriginal),(await import("./chunks/config-Y3JEZPVK.js")).default(client,args,telemetry2);case"rm":return telemetry2.trackCliSubcommandRm(subcommandOriginal),(await import("./chunks/rm-BYOBKSWY.js")).default(client,args,telemetry2);case"login":return telemetry2.trackCliSubcommandLogin(subcommandOriginal),(await import("./chunks/login-K6VYVJPS.js")).default(client,args,telemetry2);case"build":return telemetry2.trackCliSubcommandBuild(subcommandOriginal),(await import("./chunks/build-SD6SLRK7.js")).default(client,telemetry2);case"push":return telemetry2.trackCliSubcommandPush(subcommandOriginal),(await import("./chunks/push-PBKUSKXQ.js")).default(client,telemetry2);case"tag":return telemetry2.trackCliSubcommandTag(subcommandOriginal),(await import("./chunks/tags-P5GB7HTF.js")).default(client,args,telemetry2);case"image":return telemetry2.trackCliSubcommandImage(subcommandOriginal),(await import("./chunks/image-6KIQRC65.js")).default(client,args,telemetry2);case"permissions":return telemetry2.trackCliSubcommandPermissions(subcommandOriginal),(await import("./chunks/permissions-JMFKPIO4.js")).default(client,args,telemetry2);default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG69)),output_manager_default.print(help(vcrCommand,{columns:client.stderr.columns})),2}}var import_ms44=__toESM(require_ms(),1),import_chalk333=__toESM(require_source(),1),import_pluralize28=__toESM(require_pluralize(),1);async function getWebhooks(client){let response=await client.fetch("/v1/webhooks");return Array.isArray(response)?{webhooks:response}:response}var WebhooksLsTelemetryClient=class extends TelemetryClient{trackCliOptionFormat(format3){format3&&this.trackCliOption({option:"format",value:format3})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};async function ls11(client,argv){let telemetry2=new WebhooksLsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(listSubcommand30.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args,flags:opts}=parsedArgs,validationResult=validateLsArgs({commandName:"webhooks ls",args,maxArgs:0,exitCode:2});if(validationResult!==0)return validationResult;telemetry2.trackCliOptionFormat(opts["--format"]);let formatResult=validateJsonOutput(opts);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive,contextName=await getContextName(client),lsStamp=stamp_default();client.nonInteractive||output_manager_default.spinner(`Fetching Webhooks under ${import_chalk333.default.bold(contextName)}`);let{webhooks}=await getWebhooks(client);if(asJson){output_manager_default.stopSpinner();let webhooksList=webhooks.map(webhook=>({id:webhook.id,url:webhook.url,events:webhook.events,projectIds:webhook.projectIds,createdAt:webhook.createdAt,updatedAt:webhook.updatedAt})),jsonOutput=client.nonInteractive?{status:AGENT_STATUS.OK,webhooks:webhooksList,message:`${webhooks.length} webhook(s) found.`,next:[{command:getCommandNamePlain("webhooks inspect <id>"),when:"Inspect a webhook"}]}:{webhooks:webhooksList};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
1498
+ `)}var GROSS_COST_METRIC="gross_cost",SUMMARY_VIEW="byProduct",DETAIL_VIEW="byProductRegionProject";function getCostViews(groupByDimension){let views={};return groupByDimension&&(views[DETAIL_VIEW]={groupBy:["product","region","project"]}),views[SUMMARY_VIEW]={groupBy:["product"]},{views,summaryViewName:SUMMARY_VIEW,detailViewName:groupByDimension?DETAIL_VIEW:void 0}}async function usage(client){let{print,error,debug,spinner,warn}=output_manager_default,flagsSpecification=getFlagsSpecification(usageCommand.options),parsedArgs;try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let telemetry2=new UsageTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry2.trackCliFlagHelp("usage"),print(help(usageCommand,{columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput,fromFlag=parsedArgs.flags["--from"],toFlag=parsedArgs.flags["--to"];if(fromFlag!==void 0&&parsedArgs.flags["--since"]!==void 0)return error("Pass only one of --since or --from. (--from is deprecated.)"),2;if(toFlag!==void 0&&parsedArgs.flags["--until"]!==void 0)return error("Pass only one of --until or --to. (--to is deprecated.)"),2;fromFlag!==void 0&&warn("`--from` is deprecated, please use `--since` instead"),toFlag!==void 0&&warn("`--to` is deprecated, please use `--until` instead");let sinceFlag=parsedArgs.flags["--since"]??fromFlag,untilFlag=parsedArgs.flags["--until"]??toFlag;if(untilFlag&&!sinceFlag)return error("--until requires --since. Omit both to show the current billing cycle."),2;let breakdownFlag=parsedArgs.flags["--breakdown"];if(breakdownFlag&&!isValidBreakdownPeriod(breakdownFlag))return error(`Invalid breakdown period: "${breakdownFlag}". Valid options are: ${VALID_BREAKDOWN_PERIODS.join(", ")}`),2;let breakdownPeriod=breakdownFlag,groupByFlag=parsedArgs.flags["--group-by"];if(groupByFlag&&!isValidGroupByDimension(groupByFlag))return error(`Invalid group-by dimension: "${groupByFlag}". Valid options are: ${VALID_GROUP_BY_DIMENSIONS.join(", ")}`),2;let groupByDimension=groupByFlag;if(breakdownPeriod&&groupByDimension)return error("--breakdown and --group-by cannot be used together. Use one or the other."),2;let sinceDate,untilDate;try{sinceDate=sinceFlag?parseBillingDate(sinceFlag,!1):void 0,untilDate=untilFlag?parseBillingDate(untilFlag,!0):void 0}catch(err){return error(err.message),2}telemetry2.trackCliOptionSince(parsedArgs.flags["--since"]),telemetry2.trackCliOptionUntil(parsedArgs.flags["--until"]),telemetry2.trackCliOptionFrom(fromFlag),telemetry2.trackCliOptionTo(toFlag),telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry2.trackCliFlagJson(parsedArgs.flags["--json"]),telemetry2.trackCliOptionBreakdown(breakdownFlag),telemetry2.trackCliOptionGroupBy(groupByFlag);let contextName,contextType,teamId,billingPeriod,hasPrecommitment=!1;try{let scope=await getScope(client),owner=scope.team??scope.user;contextName=scope.contextName,contextType=scope.team?"team":"personal account",teamId=scope.team?.id;let billing=owner?.billing;billingPeriod=billing?.subscriptions?.find(subscription=>subscription.frequency.interval==="month"&&subscription.frequency.intervalCount===1)?.period??billing?.period,hasPrecommitment=billing?.plan==="enterprise"||billing?.planIteration==="plus"||billing?.plan==="pro"&&billing?.planIteration==="flex"}catch(err){if((0,import_error_utils26.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1;throw err}let usingDefaults=!sinceFlag,fromDate=sinceDate??(billingPeriod?new Date(billingPeriod.start).toISOString():getDefaultFromDate()),toDate=untilDate??(sinceFlag?new Date().toISOString():billingPeriod?new Date(billingPeriod.end).toISOString():getDefaultToDate()),fromDisplay=sinceFlag&&!isRelativeTime(sinceFlag)?sinceFlag:extractDatePortion(fromDate),toDisplay=untilFlag&&!isRelativeTime(untilFlag)?untilFlag:extractDatePortion(toDate);debug(`Fetching dashboard usage from ${fromDate} to ${toDate}`);let start=Date.now();asJson||spinner(`Fetching usage data for ${import_chalk332.default.bold(contextName)}`);try{let query=new URLSearchParams;teamId&&query.set("teamId",teamId);let viewPlan=getCostViews(groupByDimension),queryString=query.toString(),costsRequest=client.fetch(`/v2/billing/costs${queryString?`?${queryString}`:""}`,{method:"POST",body:{from:fromDate,to:toDate,metrics:[GROSS_COST_METRIC,"quantity"],format:"timeseries",views:viewPlan.views,userAgent:"vercel-cli.usage"},useCurrentTeam:!1}),commitmentRequest=usingDefaults&&teamId&&hasPrecommitment?client.fetch(`/v1/invoices/pre-commitment-usage?teamId=${encodeURIComponent(teamId)}`,{useCurrentTeam:!1}).catch(err=>(debug(`Unable to fetch infrastructure credit: ${String(err)}`),null)):Promise.resolve(null),[response,commitmentUsage]=await Promise.all([costsRequest,commitmentRequest]),usageData=processCosts(response,{summaryView:response.results.views[viewPlan.summaryViewName],detailView:viewPlan.detailViewName?response.results.views[viewPlan.detailViewName]:void 0,contextName,contextType,scope:parsedArgs.flags["--scope"],fromDisplay,toDisplay,usingDefaults,breakdownPeriod,groupByDimension});return attachCredit(usageData,commitmentUsage),asJson?(outputJson9(client,{data:usageData,fromDate,toDate,breakdownPeriod,groupByDimension}),0):(groupByDimension?outputGroupBy({data:usageData,groupByDimension,startTime:start}):breakdownPeriod?outputBreakdown({data:usageData,breakdownPeriod,startTime:start}):outputAggregated({data:usageData,startTime:start}),0)}catch(err){return isAPIError(err)&&err.status===404&&err.code==="costs_not_found"?error(`Billing cost data is unavailable for ${fromDisplay} through ${toDisplay}. This does not mean usage was zero. It usually means the team has no active subscription for that range, or the range is before the team's billing data starts. Check that the selected team and date range are correct.`):output_manager_default.prettyError(err),1}}function roundToHundredths(value){return Math.round((value+Number.EPSILON)*100)/100}function getUsageThrough(queriedAt,toDisplay){let queriedDate=extractDatePortion(queriedAt);return queriedDate<toDisplay?queriedDate:toDisplay}function attachCredit(usageData,commitmentUsage){if(!commitmentUsage)return;let creditLedger=commitmentUsage.creditLedgers.find(ledger=>ledger.currency===usageData.costUnit);if(!creditLedger)return;let used=roundToHundredths(creditLedger.total-creditLedger.remaining);usageData.creditBalance={cadence:commitmentUsage.cadence,currency:creditLedger.currency,allocated:creditLedger.total,used,remaining:creditLedger.remaining}}function processCosts(response,options){let{summaryView,detailView,contextName,contextType,scope,fromDisplay,toDisplay,usingDefaults,breakdownPeriod,groupByDimension}=options;if(!summaryView)throw new Error("The billing API did not return the requested usage summary.");let costUnit=getCostUnit(response);if(response.availableCurrencies?.some(currency=>currency!==costUnit))throw new Error("Can't show complete costs for this date range because some costs use a different billing currency. Choose a date range within the current billing currency or view usage in the dashboard.");let products=response.results.dimensionsMeta.product?.values??{},projects2=response.results.dimensionsMeta.project?.values??{},regions=response.results.dimensionsMeta.region?.values??{};if(groupByDimension&&(!detailView||!detailView.groupBy.includes(groupByDimension)))throw new Error(`Usage cannot be grouped by ${groupByDimension} for this team.`);let services=new Map,periodUsage=new Map,groupByUsage=new Map,totalCost=0;for(let result of summaryView?.results??[]){let product=result.dimensionValues.product;if(!product)continue;let productMetadata=products[product],serviceName=productMetadata?.title??product,aggregation=aggregateResult(result,product,serviceName,response.metrics,void 0,productMetadata?.category==="Subscription Licenses");if(addService(services,serviceName,aggregation),totalCost+=aggregation.cost,breakdownPeriod)for(let index=0;index<response.results.times.length;index++){let periodKey=getPeriodKey(response.results.times[index],breakdownPeriod),period=periodUsage.get(periodKey)??emptyAggregation(),sample=aggregateResult(result,product,serviceName,response.metrics,index,productMetadata?.category==="Subscription Licenses");addService(period.services,serviceName,sample),period.totalCost+=sample.cost,periodUsage.set(periodKey,period)}}if(groupByDimension)for(let result of detailView?.results??[]){let product=result.dimensionValues.product;if(!product)continue;let productMetadata=products[product],serviceName=productMetadata?.title??product,aggregation=aggregateResult(result,product,serviceName,response.metrics,void 0,productMetadata?.category==="Subscription Licenses"),id2=result.dimensionValues[groupByDimension],groupName=id2?(groupByDimension==="project"?projects2:regions)[id2]?.title??id2:groupByDimension==="project"?"(unattributed)":"(global)",group=groupByUsage.get(groupName)??emptyAggregation();addService(group.services,serviceName,aggregation),group.totalCost+=aggregation.cost,groupByUsage.set(groupName,group)}return{contextName,contextType,scope,fromDisplay,toDisplay,usageThrough:getUsageThrough(response.queriedAt,toDisplay),usingDefaults,costUnit,services,periodUsage,groupByUsage,totalCost}}function getCostUnit(response){let unit=response.metrics.find(metric=>metric.slug===GROSS_COST_METRIC)?.unit;return unit?.singular==="MIU"||unit?.plural==="MIUs"?"managed_infrastructure_units":"USD"}function aggregateResult(result,product,name,metrics2,sampleIndex,isSubscription=!1){let grossCostIndex=result.metrics.indexOf(GROSS_COST_METRIC),quantityIndex=result.metrics.findIndex(metric=>metric!==GROSS_COST_METRIC),quantityMetric=metrics2.find(metric=>metric.slug===result.metrics[quantityIndex]),values=sampleIndex===void 0?result.totalValue:result.values[sampleIndex]??[],cost=grossCostIndex===-1?0:values[grossCostIndex]??0,included=result.flatRate===!0,rawQuantity=quantityIndex===-1?0:values[quantityIndex]??0,quantity=isSubscription&&sampleIndex===void 0&&quantityIndex!==-1?result.values.reduce((maximum,sample)=>Math.max(maximum,sample[quantityIndex]??0),0):rawQuantity,units=getQuantityUnits(quantityMetric,product,isSubscription);return{name,product,quantity,...units,cost,included,category:isSubscription?"subscription":"usage"}}function getQuantityUnits(metric,product,isSubscription){if(isSubscription)return{unit:"licenses",singularUnit:"license"};if(!metric?.unit)return{};if(metric.unit.kind==="custom"){let singularUnit=metric.unit.singular,unit2=metric.unit.plural??singularUnit;return!unit2||singularUnit===metric.title||unit2===metric.title?{}:{unit:unit2,singularUnit}}if(metric.unit.kind==="digitalStorage"&&metric.unit.name)return{unit:metric.unit.name,unitKind:metric.unit.kind};let unit=metric.unit.name;return!unit||unit===metric.title||unit===product?{}:{unit,unitKind:metric.unit.kind}}function addService(services,name,value){let key=JSON.stringify([value.product,value.included]),existing=services.get(key);if(!existing){services.set(key,{...value,name});return}let previousQuantity=existing.quantity;existing.quantity=existing.category==="subscription"?Math.max(previousQuantity,value.quantity):previousQuantity+value.quantity,existing.cost+=value.cost}function emptyAggregation(){return{services:new Map,totalCost:0}}var VcrTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandConfig(actual){this.trackCliSubcommand({subcommand:"config",value:actual})}trackCliSubcommandRm(actual){this.trackCliSubcommand({subcommand:"rm",value:actual})}trackCliSubcommandLogin(actual){this.trackCliSubcommand({subcommand:"login",value:actual})}trackCliSubcommandBuild(actual){this.trackCliSubcommand({subcommand:"build",value:actual})}trackCliSubcommandPush(actual){this.trackCliSubcommand({subcommand:"push",value:actual})}trackCliArgumentEngine(value){value&&this.trackCliArgument({arg:"engine",value})}trackCliArgumentPath(value){value&&this.trackCliArgument({arg:"path",value:this.redactedValue})}trackCliArgumentName(value){value&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionPlatform(value){if(value){let known=value==="linux/amd64"||value==="linux/arm64";this.trackCliOption({option:"platform",value:known?value:this.redactedValue})}}trackCliSubcommandTag(actual){this.trackCliSubcommand({subcommand:"tag",value:actual})}trackCliSubcommandImage(actual){this.trackCliSubcommand({subcommand:"image",value:actual})}trackCliSubcommandPermissions(actual){this.trackCliSubcommand({subcommand:"permissions",value:actual})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliOptionNext(value){value&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionCursor(value){value&&this.trackCliOption({option:"cursor",value:this.redactedValue})}trackCliOptionSortBy(value){value&&this.trackCliOption({option:"sort-by",value})}trackCliOptionSortOrder(value){value&&this.trackCliOption({option:"sort-order",value})}trackCliOptionPublic(value){(value==="true"||value==="false")&&this.trackCliOption({option:"public",value})}trackCliFlagUntagged(value){value&&this.trackCliFlag("untagged")}trackCliFlagYes(value){value&&this.trackCliFlag("yes")}trackCliFlagPush(value){value&&this.trackCliFlag("push")}};var COMMAND_CONFIG69={ls:getCommandAliases(listSubcommand26),inspect:getCommandAliases(inspectSubcommand14),add:getCommandAliases(addSubcommand13),config:getCommandAliases(configSubcommand),rm:getCommandAliases(removeSubcommand16),login:getCommandAliases(loginSubcommand),build:getCommandAliases(buildSubcommand),push:getCommandAliases(pushSubcommand),tag:getCommandAliases(tagsAggregateCommand),image:getCommandAliases(imageAggregateCommand),permissions:getCommandAliases(permissionsAggregateCommand)};async function vcr(client){let telemetry2=new VcrTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(vcrCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let{subcommand,args,subcommandOriginal}=getSubcommand7(parsedArgs.args.slice(1),COMMAND_CONFIG69),needHelp=parsedArgs.flags["--help"];function printHelp(command2){output_manager_default.print(help(command2,{parent:vcrCommand,columns:client.stderr.columns}))}if(needHelp)switch(subcommand){case"ls":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(listSubcommand26),0;case"inspect":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(inspectSubcommand14),0;case"add":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(addSubcommand13),0;case"config":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(configSubcommand),0;case"rm":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(removeSubcommand16),0;case"login":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(loginSubcommand),0;case"build":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(buildSubcommand),0;case"push":return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),printHelp(pushSubcommand),0;case"tag":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(tagsLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(tagsInspectSubcommand),0):(printHelp(tagsAggregateCommand),0)}case"image":{telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args[0];return nested==="ls"||nested==="list"?(printHelp(imageLsSubcommand),0):nested==="inspect"||nested==="get"?(printHelp(imageInspectSubcommand),0):nested==="rm"||nested==="remove"||nested==="delete"?(printHelp(imageRmSubcommand),0):(printHelp(imageAggregateCommand),0)}case"permissions":{let printPermissionsActionHelp2=function(command2){output_manager_default.print(help(command2,{parent:{...vcrCommand,name:"vcr permissions repository"},columns:client.stderr.columns}))};var printPermissionsActionHelp=printPermissionsActionHelp2;telemetry2.trackCliFlagHelp("vcr",subcommandOriginal);let nested=args.slice(0,2),hasAction=aliases2=>nested.some(arg2=>arg2!==void 0&&aliases2.includes(arg2));return hasAction(PERMISSIONS_ACTIONS.ls)?(printPermissionsActionHelp2(permissionsLsSubcommand),0):hasAction(PERMISSIONS_ACTIONS.add)?(printPermissionsActionHelp2(permissionsAddSubcommand),0):hasAction(PERMISSIONS_ACTIONS.rm)?(printPermissionsActionHelp2(permissionsRmSubcommand),0):hasAction(PERMISSIONS_ACTIONS.clear)?(printPermissionsActionHelp2(permissionsClearSubcommand),0):(printHelp(permissionsAggregateCommand),0)}default:return telemetry2.trackCliFlagHelp("vcr",subcommandOriginal),output_manager_default.print(help(vcrCommand,{columns:client.stderr.columns})),0}switch(subcommand){case"ls":return telemetry2.trackCliSubcommandLs(subcommandOriginal),(await import("./chunks/ls-TE7BAMHR.js")).default(client,args,telemetry2);case"inspect":return telemetry2.trackCliSubcommandInspect(subcommandOriginal),(await import("./chunks/inspect-SEGNEPGI.js")).default(client,args,telemetry2);case"add":return telemetry2.trackCliSubcommandCreate(subcommandOriginal),(await import("./chunks/add-QKGWNVQS.js")).default(client,args,telemetry2);case"config":return telemetry2.trackCliSubcommandConfig(subcommandOriginal),(await import("./chunks/config-Y3JEZPVK.js")).default(client,args,telemetry2);case"rm":return telemetry2.trackCliSubcommandRm(subcommandOriginal),(await import("./chunks/rm-BYOBKSWY.js")).default(client,args,telemetry2);case"login":return telemetry2.trackCliSubcommandLogin(subcommandOriginal),(await import("./chunks/login-K6VYVJPS.js")).default(client,args,telemetry2);case"build":return telemetry2.trackCliSubcommandBuild(subcommandOriginal),(await import("./chunks/build-SD6SLRK7.js")).default(client,telemetry2);case"push":return telemetry2.trackCliSubcommandPush(subcommandOriginal),(await import("./chunks/push-PBKUSKXQ.js")).default(client,telemetry2);case"tag":return telemetry2.trackCliSubcommandTag(subcommandOriginal),(await import("./chunks/tags-P5GB7HTF.js")).default(client,args,telemetry2);case"image":return telemetry2.trackCliSubcommandImage(subcommandOriginal),(await import("./chunks/image-6KIQRC65.js")).default(client,args,telemetry2);case"permissions":return telemetry2.trackCliSubcommandPermissions(subcommandOriginal),(await import("./chunks/permissions-2WMWMXFP.js")).default(client,args,telemetry2);default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG69)),output_manager_default.print(help(vcrCommand,{columns:client.stderr.columns})),2}}var import_ms44=__toESM(require_ms(),1),import_chalk333=__toESM(require_source(),1),import_pluralize28=__toESM(require_pluralize(),1);async function getWebhooks(client){let response=await client.fetch("/v1/webhooks");return Array.isArray(response)?{webhooks:response}:response}var WebhooksLsTelemetryClient=class extends TelemetryClient{trackCliOptionFormat(format3){format3&&this.trackCliOption({option:"format",value:format3})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};async function ls11(client,argv){let telemetry2=new WebhooksLsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(listSubcommand30.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args,flags:opts}=parsedArgs,validationResult=validateLsArgs({commandName:"webhooks ls",args,maxArgs:0,exitCode:2});if(validationResult!==0)return validationResult;telemetry2.trackCliOptionFormat(opts["--format"]);let formatResult=validateJsonOutput(opts);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive,contextName=await getContextName(client),lsStamp=stamp_default();client.nonInteractive||output_manager_default.spinner(`Fetching Webhooks under ${import_chalk333.default.bold(contextName)}`);let{webhooks}=await getWebhooks(client);if(asJson){output_manager_default.stopSpinner();let webhooksList=webhooks.map(webhook=>({id:webhook.id,url:webhook.url,events:webhook.events,projectIds:webhook.projectIds,createdAt:webhook.createdAt,updatedAt:webhook.updatedAt})),jsonOutput=client.nonInteractive?{status:AGENT_STATUS.OK,webhooks:webhooksList,message:`${webhooks.length} webhook(s) found.`,next:[{command:getCommandNamePlain("webhooks inspect <id>"),when:"Inspect a webhook"}]}:{webhooks:webhooksList};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
1499
1499
  `)}else output_manager_default.log(`${(0,import_pluralize28.default)("Webhook",webhooks.length,!0)} found under ${import_chalk333.default.bold(contextName)} ${import_chalk333.default.gray(lsStamp())}`),webhooks.length>0&&(output_manager_default.print(formatWebhooksTable(webhooks).replace(/^(.*)/gm,`${" ".repeat(1)}$1`)),output_manager_default.print(`
1500
1500
 
1501
1501
  `));return 0}function formatWebhooksTable(webhooks){let current=Date.now(),rows=webhooks.map(webhook=>{let age=webhook.createdAt?(0,import_ms44.default)(current-webhook.createdAt):"-",eventsDisplay=webhook.events.length>2?`${webhook.events.slice(0,2).join(", ")} +${webhook.events.length-2}`:webhook.events.join(", ");return[webhook.id,webhook.url,eventsDisplay,import_chalk333.default.gray(age)]});return formatTable(["ID","URL","Events","Age"],["l","l","l","l"],[{rows}])}var import_chalk334=__toESM(require_source(),1);var WebhooksGetTelemetryClient=class extends TelemetryClient{trackCliArgumentId(id2){id2&&this.trackCliArgument({arg:"id",value:this.redactedValue})}trackCliOptionFormat(format3){format3&&this.trackCliOption({option:"format",value:format3})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};async function get6(client,argv){let telemetry2=new WebhooksGetTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(getSubcommand6.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args,flags:opts}=parsedArgs,[webhookId]=args,getStamp=stamp_default();if(!webhookId)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_id",message:"Webhook ID is required. Provide ID as the first argument.",next:[{command:getCommandNamePlain("webhooks ls")},{command:getCommandNamePlain("webhooks inspect <id>")}]},2),output_manager_default.error(`${getCommandName("webhooks inspect <id>")} expects one argument`),2;telemetry2.trackCliArgumentId(webhookId),telemetry2.trackCliOptionFormat(opts["--format"]);let formatResult=validateJsonOutput(opts);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive;if(args.length!==1)return output_manager_default.error(`Invalid number of arguments. Usage: ${import_chalk334.default.cyan(`${getCommandName("webhooks inspect <id>")}`)}`),2;output_manager_default.debug("Fetching webhook info");let contextName=await getContextName(client);client.nonInteractive||output_manager_default.spinner(`Fetching Webhook ${webhookId} under ${import_chalk334.default.bold(contextName)}`);let webhook;try{webhook=await getWebhook(client,webhookId)}catch(err){if(output_manager_default.stopSpinner(),isAPIError(err)&&err.status===404)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"webhook_not_found",message:`Webhook not found: ${webhookId}.`,next:[{command:getCommandNamePlain("webhooks ls")}]},1),output_manager_default.error(`Webhook not found: ${webhookId}`),output_manager_default.log(`Run ${getCommandName("webhooks ls")} to see your webhooks.`),1;throw err}if(asJson){output_manager_default.stopSpinner();let jsonOutput=client.nonInteractive?{status:"ok",webhook,message:`Webhook ${webhookId} found.`,next:[{command:getCommandNamePlain(`webhooks rm ${webhookId} --yes`),when:"Remove this webhook"}]}:webhook;client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{help as help2}from"./chunks/chunk-GWB27IAS.js";import{checkTelemetryStatus,earlyGetConfig,exitWithUnexpectedError,getDirectBuildFallbackAttributes,getSentry,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,registerUnexpectedErrorHandlers,reportError}from"./chunks/chunk-PSBBSY46.js";import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-FMAF3AKI.js";import{matchesCliApiTag}from"./chunks/chunk-B3K6GM2W.js";import{getUpdateCommand}from"./chunks/chunk-6ZMFJA5X.js";import"./chunks/chunk-BRUTDRAQ.js";import"./chunks/chunk-U56NHYAH.js";import{require_ci_info}from"./chunks/chunk-2EYYB6YN.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-3E364MJE.js";import"./chunks/chunk-7EJQLVWX.js";import{Client,isValidAccessToken}from"./chunks/chunk-SY4EANZH.js";import"./chunks/chunk-O4FDRZ22.js";import"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-25565AGS.js";import{commands,commandsStructs,executionsListSubcommand,schedulesCommand}from"./chunks/chunk-U5C6XOLA.js";import"./chunks/chunk-OH2RT2GN.js";import"./chunks/chunk-UFXKCETS.js";import"./chunks/chunk-RZGWCQP7.js";import"./chunks/chunk-AG5QQNJ3.js";import"./chunks/chunk-AU42HSQ3.js";import"./chunks/chunk-L5FUUGYX.js";import"./chunks/chunk-QC47UKDR.js";import"./chunks/chunk-QJKJBD2M.js";import"./chunks/chunk-MYCQIZU6.js";import"./chunks/chunk-CNU4T7FO.js";import"./chunks/chunk-LU5O3NH7.js";import"./chunks/chunk-AMDHTZDV.js";import"./chunks/chunk-2JBVMF2Y.js";import"./chunks/chunk-JLXG2XWW.js";import"./chunks/chunk-B4YYOSPY.js";import"./chunks/chunk-UTW2FDSC.js";import"./chunks/chunk-S7XZC23O.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-HJ3NY4UA.js";import{getTeams}from"./chunks/chunk-2H243SJV.js";import"./chunks/chunk-SCV7XEEO.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import"./chunks/chunk-GRTIWUV2.js";import{help,resolveHelpTarget}from"./chunks/chunk-7D2HVBVP.js";import"./chunks/chunk-773GOZIR.js";import{printError}from"./chunks/chunk-V336CYEI.js";import{AGENT_REASON,AGENT_STATUS,isHelpInvocation,shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome,writeAgentError}from"./chunks/chunk-5RR3435W.js";import"./chunks/chunk-67GZ5REA.js";import"./chunks/chunk-BS32OUOC.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import{forgetCachedTeamSlug,getAuthConfigFilePath,getConfigFilePath,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"./chunks/chunk-HMS3UIQ2.js";import"./chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-HUJPGK7W.js";import"./chunks/chunk-VKXEOL4K.js";import{isNativeBinaryInstall}from"./chunks/chunk-YYPNUQDI.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import"./chunks/chunk-ZS2WS4AM.js";import"./chunks/chunk-AOWWC6WZ.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{parseArguments,require_arg}from"./chunks/chunk-R4VVQRLX.js";import"./chunks/chunk-BKV35LVB.js";import{arg_common_default,getFlagsSpecification,globalCliFlagTakesValue}from"./chunks/chunk-5IPBCD7K.js";import{getLinkFromDir,getLinkedProjectIdSync,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-MYMM34ZH.js";import"./chunks/chunk-ROPQIBWJ.js";import"./chunks/chunk-VKPZP4LC.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import"./chunks/chunk-N7Q2IESO.js";import{getUser}from"./chunks/chunk-VSE5BAPP.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile}from"./chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName}from"./chunks/chunk-JESNVRVR.js";import{UNCLASSIFIED_ERROR_CODE,cliErrorFromUnknown,output_manager_default,recordCliError,recordCliErrorFromOutput,require_build_utils,takeCliError}from"./chunks/chunk-75IAMKGV.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";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(resolve2=>{let timer=setTimeout(()=>{req.destroy(),resolve2(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){resolve2(void 0);return}resolve2(JSON.parse(buf))}catch{resolve2(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve2(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1);import{join as join2,resolve}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 SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","pricing","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];var import_arg=__toESM(require_arg(),1);var flagsSpecification={...getFlagsSpecification([...schedulesCommand.options,...schedulesCommand.subcommands.flatMap(command=>command.options),...executionsListSubcommand.options]),"--local":Boolean,"-L":"--local","--changelog":Boolean};function parseSchedulesArguments(argv){let parsed=parseArguments(argv.slice(2),flagsSpecification);return{...parsed,args:[...argv.slice(0,2),...parsed.args]}}function isSchedulesCommand(argv){try{let{_:args}=(0,import_arg.default)({...arg_common_default(),...flagsSpecification},{argv:argv.slice(2),stopAtPositional:!0});return args[0]==="schedules"||args[0]==="help"&&args[1]==="schedules"}catch{return!1}}function isLocalSchedulesCommand(argv){try{let{args,flags}=parseSchedulesArguments(argv);return(args[2]==="schedules"||args[2]==="help"&&args[3]==="schedules")&&flags["--local"]===!0}catch{return!1}}function getSchedulesErrorContext(argv){let spec={...arg_common_default(),...flagsSpecification},local=!1,nonInteractive;for(let i=2;i<argv.length;i++){let token=argv[i];if(token==="--")break;if(!token.startsWith("-")||token==="-")continue;let options=token.startsWith("--")?[token]:[...token.slice(1)].map(letter=>`-${letter}`);for(let j=0;j<options.length;j++){let[option,value]=options[j].split(/=(.*)/,2),name=typeof spec[option]=="string"?spec[option]:option,handler=spec[name];if(!handler)break;if(handler!==Boolean){if(j<options.length-1)break;let next=argv[i+1];value===void 0&&next!==void 0&&(!next.startsWith("-")||next==="-"||handler===Number&&/^-?\d*(\.(?=\d))?\d*$/.test(next))&&i++;continue}if(name==="--local"&&(local=!0),name==="--non-interactive"){let separateFalse=value===void 0&&argv[i+1]==="false";value==="false"||separateFalse?(nonInteractive=!1,separateFalse&&i++):nonInteractive!==!1&&(nonInteractive=!0)}}}return{local,nonInteractive}}function getCachedScopeTeamId(config,scope){return config.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config=client2.config;config.cachedTeamIds={...config.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config,currentTeam:persistedTeamId})}function attempt(fn){try{return fn()}catch{return}}function createRunTelemetry({isAgent,telemetry,store,getClient,getConfigIdentity,getProjectId}){let runEndTracked=!1,saveStarted=!1,trackFailedRunError=(exitCode,client2)=>{let details=takeCliError();!isAgent||exitCode===0&&!details?.reportOnSuccess||isHelpInvocation(client2?.argv??process.argv)||(telemetry.trackErrorStatus(details?.status),telemetry.trackErrorCode(details?.code??UNCLASSIFIED_ERROR_CODE),telemetry.trackErrorSlug(details?.slug),telemetry.trackErrorAction(details?.action),telemetry.trackErrorServerMessage(details?.serverMessage))},trackRunEnd=exitCode=>{if(runEndTracked)return;runEndTracked=!0;let client2=getClient();trackFailedRunError(exitCode,client2),client2&&trackAgentCommandOutcome(client2,exitCode)};return{trackRunEnd,markSaveStarted:()=>{saveStarted=!0},get saveStarted(){return saveStarted},flushOnExit:exitCode=>{if(saveStarted)return;saveStarted=!0,attempt(()=>trackRunEnd(exitCode));let client2=getClient(),identity=attempt(getConfigIdentity);attempt(()=>store.updateTeamId(client2?.config.currentTeam??identity?.teamId)),attempt(()=>store.updateUserId(client2?.authConfig.userId??identity?.userId));let projectId=attempt(getProjectId);projectId&&store.updateProjectId(projectId),attempt(()=>telemetry.trackProjectId(store.currentProjectId)),attempt(()=>store.save({detach:!0}).catch(()=>{}))}}}function captureStdoutErrors(stream){let write=stream.write;return stream.write=function(chunk,...rest){return recordCliErrorFromOutput(chunk),Reflect.apply(write,this,[chunk,...rest])},()=>{stream.write=write}}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}var import_ci_info=__toESM(require_ci_info(),1);var RootTelemetryClient=class extends TelemetryClient{trackCliExtension(){this.trackExtension()}trackCliDefaultDeploy(defaultDeploy){defaultDeploy&&this.trackDefaultDeploy()}trackCliCommandAgent(actual){this.trackCliCommand({command:"agent",value:actual})}trackCliCommandAgentRuns(actual){this.trackCliCommand({command:"agent-runs",value:actual})}trackCliCommandAiGateway(actual){this.trackCliCommand({command:"ai-gateway",value:actual})}trackCliCommandAlias(actual){this.trackCliCommand({command:"alias",value:actual})}trackCliCommandActivity(actual){this.trackCliCommand({command:"activity",value:actual})}trackCliCommandAlerts(actual){this.trackCliCommand({command:"alerts",value:actual})}trackCliCommandApi(actual){this.trackCliCommand({command:"api",value:actual})}trackCliCommandBisect(actual){this.trackCliCommand({command:"bisect",value:actual})}trackCliCommandBlob(actual){this.trackCliCommand({command:"blob",value:actual})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandCi(actual){this.trackCliCommand({command:"ci",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandPricing(actual){this.trackCliCommand({command:"pricing",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()}trackLibc(libc){super.trackLibc(libc)}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function printCommandHelp(client2,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens);return target.unknownSegment!==void 0?(printUnknownCommand(client2,target.unknownSegment,[root.name,...target.typedPath]),2):target.command.dynamicHelp?void 0:(new RootTelemetryClient({opts:{store:client2.telemetryEventStore}}).trackCliFlagHelp([root.name,...target.typedPath].join(":")),client2.stdout.write(help(target.command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),0)}function printGroupHelp(client2,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens),{command}=target;if(!(target.unknownSegment!==void 0||!command.subcommands?.length||command.arguments.length>0||command.runsWithoutSubcommand||command.subcommands.some(subcommand=>subcommand.default))){try{parseArguments([...found.tokens],getFlagsSpecification(getCommandsAlongPath(root,target.typedPath).flatMap(({options})=>options)))}catch(err){return printError(err,client2),2}return client2.stdout.write(help(command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),0}}function getCommandsAlongPath(root,typedPath){let path=[root];for(let token of typedPath){let subcommand=path[path.length-1].subcommands?.find(candidate=>candidate.name===token||candidate.aliases.includes(token));if(!subcommand)break;path.push(subcommand)}return path}function findBuiltInCommand(commandName,tokens){let name=commandName?commands.get(commandName):void 0;if(!commandName||!name||name==="sandbox")return;let root=commandsStructs.find(command=>command.name===name&&"options"in command);if(!root)return;let namesSubcommand=commandName!==root.name&&root.subcommands?.some(subcommand=>subcommand.name===commandName||subcommand.aliases.includes(commandName));return{root,tokens:namesSubcommand?[commandName,...tokens]:tokens}}function printUnknownCommand(client2,segment,groupPath=[]){let group=groupPath.join(" "),message=`Unknown command ${segment} for ${getCommandNamePlain(group||void 0)}.`,helpCommand=group?`${group} --help`:"--help";if(shouldEmitNonInteractiveCommandError(client2)){writeAgentError(client2,{status:AGENT_STATUS.ERROR,reason:"unknown_command",message,next:[{command:getCommandNamePlain(helpCommand),when:"See all commands"}]});return}output_manager_default.fatal(message),output_manager_default.print(`
7
+ import{help as help2}from"./chunks/chunk-GWB27IAS.js";import{checkTelemetryStatus,earlyGetConfig,exitWithUnexpectedError,getDirectBuildFallbackAttributes,getSentry,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,registerUnexpectedErrorHandlers,reportError}from"./chunks/chunk-PSBBSY46.js";import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import{box,canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,handleCommandTypo,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-IYL5CKZ4.js";import{matchesCliApiTag}from"./chunks/chunk-B3K6GM2W.js";import{getUpdateCommand}from"./chunks/chunk-JUSQYKFF.js";import"./chunks/chunk-BRUTDRAQ.js";import"./chunks/chunk-U56NHYAH.js";import{require_ci_info}from"./chunks/chunk-2EYYB6YN.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-3E364MJE.js";import"./chunks/chunk-7EJQLVWX.js";import{Client,isValidAccessToken}from"./chunks/chunk-SY4EANZH.js";import"./chunks/chunk-O4FDRZ22.js";import"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-P2O5DOYE.js";import"./chunks/chunk-25565AGS.js";import{commands,commandsStructs,executionsListSubcommand,schedulesCommand}from"./chunks/chunk-U5C6XOLA.js";import"./chunks/chunk-OH2RT2GN.js";import"./chunks/chunk-UFXKCETS.js";import"./chunks/chunk-RZGWCQP7.js";import"./chunks/chunk-AG5QQNJ3.js";import"./chunks/chunk-AU42HSQ3.js";import"./chunks/chunk-L5FUUGYX.js";import"./chunks/chunk-QC47UKDR.js";import"./chunks/chunk-QJKJBD2M.js";import"./chunks/chunk-MYCQIZU6.js";import"./chunks/chunk-CNU4T7FO.js";import"./chunks/chunk-LU5O3NH7.js";import"./chunks/chunk-AMDHTZDV.js";import"./chunks/chunk-2JBVMF2Y.js";import"./chunks/chunk-JLXG2XWW.js";import"./chunks/chunk-B4YYOSPY.js";import"./chunks/chunk-UTW2FDSC.js";import"./chunks/chunk-S7XZC23O.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-HJ3NY4UA.js";import{getTeams}from"./chunks/chunk-2H243SJV.js";import"./chunks/chunk-SCV7XEEO.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import"./chunks/chunk-GRTIWUV2.js";import{help,resolveHelpTarget}from"./chunks/chunk-7D2HVBVP.js";import"./chunks/chunk-773GOZIR.js";import{printError}from"./chunks/chunk-V336CYEI.js";import{AGENT_REASON,AGENT_STATUS,isHelpInvocation,shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome,writeAgentError}from"./chunks/chunk-5RR3435W.js";import"./chunks/chunk-67GZ5REA.js";import"./chunks/chunk-BS32OUOC.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import{forgetCachedTeamSlug,getAuthConfigFilePath,getConfigFilePath,highlight,isAppPrincipalEnabled,readAuthConfigFile,readConfigFile,resolveAppTokenScope,writeToConfigFile}from"./chunks/chunk-DZ6GORJ7.js";import{getGlobalPathConfig}from"./chunks/chunk-HMS3UIQ2.js";import"./chunks/chunk-MXTC4ZAQ.js";import{TelemetryClient,TelemetryEventStore}from"./chunks/chunk-HUJPGK7W.js";import"./chunks/chunk-VKXEOL4K.js";import{isNativeBinaryInstall}from"./chunks/chunk-YYPNUQDI.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import"./chunks/chunk-ZS2WS4AM.js";import"./chunks/chunk-AOWWC6WZ.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import{parseArguments,require_arg}from"./chunks/chunk-R4VVQRLX.js";import"./chunks/chunk-BKV35LVB.js";import{arg_common_default,getFlagsSpecification,globalCliFlagTakesValue}from"./chunks/chunk-5IPBCD7K.js";import{getLinkFromDir,getLinkedProjectIdSync,getVercelDirectory,hasLocalProjectLink,require_lib}from"./chunks/chunk-MYMM34ZH.js";import"./chunks/chunk-ROPQIBWJ.js";import"./chunks/chunk-VKPZP4LC.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import"./chunks/chunk-N7Q2IESO.js";import{getUser}from"./chunks/chunk-VSE5BAPP.js";import{getTeamByIdOrSlug}from"./chunks/chunk-VOZEB6PD.js";import{APIError,CantFindConfig,CantParseJSONFile}from"./chunks/chunk-AZULOP7M.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName}from"./chunks/chunk-JESNVRVR.js";import{UNCLASSIFIED_ERROR_CODE,cliErrorFromUnknown,output_manager_default,recordCliError,recordCliErrorFromOutput,require_build_utils,takeCliError}from"./chunks/chunk-75IAMKGV.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";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(resolve2=>{let timer=setTimeout(()=>{req.destroy(),resolve2(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){resolve2(void 0);return}resolve2(JSON.parse(buf))}catch{resolve2(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve2(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1);import{join as join2,resolve}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 SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","pricing","deploy","sandbox","telemetry","upgrade","version","skills","agent","whoami"];var import_arg=__toESM(require_arg(),1);var flagsSpecification={...getFlagsSpecification([...schedulesCommand.options,...schedulesCommand.subcommands.flatMap(command=>command.options),...executionsListSubcommand.options]),"--local":Boolean,"-L":"--local","--changelog":Boolean};function parseSchedulesArguments(argv){let parsed=parseArguments(argv.slice(2),flagsSpecification);return{...parsed,args:[...argv.slice(0,2),...parsed.args]}}function isSchedulesCommand(argv){try{let{_:args}=(0,import_arg.default)({...arg_common_default(),...flagsSpecification},{argv:argv.slice(2),stopAtPositional:!0});return args[0]==="schedules"||args[0]==="help"&&args[1]==="schedules"}catch{return!1}}function isLocalSchedulesCommand(argv){try{let{args,flags}=parseSchedulesArguments(argv);return(args[2]==="schedules"||args[2]==="help"&&args[3]==="schedules")&&flags["--local"]===!0}catch{return!1}}function getSchedulesErrorContext(argv){let spec={...arg_common_default(),...flagsSpecification},local=!1,nonInteractive;for(let i=2;i<argv.length;i++){let token=argv[i];if(token==="--")break;if(!token.startsWith("-")||token==="-")continue;let options=token.startsWith("--")?[token]:[...token.slice(1)].map(letter=>`-${letter}`);for(let j=0;j<options.length;j++){let[option,value]=options[j].split(/=(.*)/,2),name=typeof spec[option]=="string"?spec[option]:option,handler=spec[name];if(!handler)break;if(handler!==Boolean){if(j<options.length-1)break;let next=argv[i+1];value===void 0&&next!==void 0&&(!next.startsWith("-")||next==="-"||handler===Number&&/^-?\d*(\.(?=\d))?\d*$/.test(next))&&i++;continue}if(name==="--local"&&(local=!0),name==="--non-interactive"){let separateFalse=value===void 0&&argv[i+1]==="false";value==="false"||separateFalse?(nonInteractive=!1,separateFalse&&i++):nonInteractive!==!1&&(nonInteractive=!0)}}}return{local,nonInteractive}}function getCachedScopeTeamId(config,scope){return config.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config=client2.config;config.cachedTeamIds={...config.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config,currentTeam:persistedTeamId})}function attempt(fn){try{return fn()}catch{return}}function createRunTelemetry({isAgent,telemetry,store,getClient,getConfigIdentity,getProjectId}){let runEndTracked=!1,saveStarted=!1,trackFailedRunError=(exitCode,client2)=>{let details=takeCliError();!isAgent||exitCode===0&&!details?.reportOnSuccess||isHelpInvocation(client2?.argv??process.argv)||(telemetry.trackErrorStatus(details?.status),telemetry.trackErrorCode(details?.code??UNCLASSIFIED_ERROR_CODE),telemetry.trackErrorSlug(details?.slug),telemetry.trackErrorAction(details?.action),telemetry.trackErrorServerMessage(details?.serverMessage))},trackRunEnd=exitCode=>{if(runEndTracked)return;runEndTracked=!0;let client2=getClient();trackFailedRunError(exitCode,client2),client2&&trackAgentCommandOutcome(client2,exitCode)};return{trackRunEnd,markSaveStarted:()=>{saveStarted=!0},get saveStarted(){return saveStarted},flushOnExit:exitCode=>{if(saveStarted)return;saveStarted=!0,attempt(()=>trackRunEnd(exitCode));let client2=getClient(),identity=attempt(getConfigIdentity);attempt(()=>store.updateTeamId(client2?.config.currentTeam??identity?.teamId)),attempt(()=>store.updateUserId(client2?.authConfig.userId??identity?.userId));let projectId=attempt(getProjectId);projectId&&store.updateProjectId(projectId),attempt(()=>telemetry.trackProjectId(store.currentProjectId)),attempt(()=>store.save({detach:!0}).catch(()=>{}))}}}function captureStdoutErrors(stream){let write=stream.write;return stream.write=function(chunk,...rest){return recordCliErrorFromOutput(chunk),Reflect.apply(write,this,[chunk,...rest])},()=>{stream.write=write}}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}var import_ci_info=__toESM(require_ci_info(),1);var RootTelemetryClient=class extends TelemetryClient{trackCliExtension(){this.trackExtension()}trackCliDefaultDeploy(defaultDeploy){defaultDeploy&&this.trackDefaultDeploy()}trackCliCommandAgent(actual){this.trackCliCommand({command:"agent",value:actual})}trackCliCommandAgentRuns(actual){this.trackCliCommand({command:"agent-runs",value:actual})}trackCliCommandAiGateway(actual){this.trackCliCommand({command:"ai-gateway",value:actual})}trackCliCommandAlias(actual){this.trackCliCommand({command:"alias",value:actual})}trackCliCommandActivity(actual){this.trackCliCommand({command:"activity",value:actual})}trackCliCommandAlerts(actual){this.trackCliCommand({command:"alerts",value:actual})}trackCliCommandApi(actual){this.trackCliCommand({command:"api",value:actual})}trackCliCommandBisect(actual){this.trackCliCommand({command:"bisect",value:actual})}trackCliCommandBlob(actual){this.trackCliCommand({command:"blob",value:actual})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandCi(actual){this.trackCliCommand({command:"ci",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandPricing(actual){this.trackCliCommand({command:"pricing",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()}trackLibc(libc){super.trackLibc(libc)}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY2){super.trackStdinIsTTY(isTTY2)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}};function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function printCommandHelp(client2,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens);return target.unknownSegment!==void 0?(printUnknownCommand(client2,target.unknownSegment,[root.name,...target.typedPath]),2):target.command.dynamicHelp?void 0:(new RootTelemetryClient({opts:{store:client2.telemetryEventStore}}).trackCliFlagHelp([root.name,...target.typedPath].join(":")),client2.stdout.write(help(target.command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),0)}function printGroupHelp(client2,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens),{command}=target;if(!(target.unknownSegment!==void 0||!command.subcommands?.length||command.arguments.length>0||command.runsWithoutSubcommand||command.subcommands.some(subcommand=>subcommand.default))){try{parseArguments([...found.tokens],getFlagsSpecification(getCommandsAlongPath(root,target.typedPath).flatMap(({options})=>options)))}catch(err){return printError(err,client2),2}return client2.stdout.write(help(command,{parent:target.parent,columns:client2.stdout.columns??client2.stderr.columns})),0}}function getCommandsAlongPath(root,typedPath){let path=[root];for(let token of typedPath){let subcommand=path[path.length-1].subcommands?.find(candidate=>candidate.name===token||candidate.aliases.includes(token));if(!subcommand)break;path.push(subcommand)}return path}function findBuiltInCommand(commandName,tokens){let name=commandName?commands.get(commandName):void 0;if(!commandName||!name||name==="sandbox")return;let root=commandsStructs.find(command=>command.name===name&&"options"in command);if(!root)return;let namesSubcommand=commandName!==root.name&&root.subcommands?.some(subcommand=>subcommand.name===commandName||subcommand.aliases.includes(commandName));return{root,tokens:namesSubcommand?[commandName,...tokens]:tokens}}function printUnknownCommand(client2,segment,groupPath=[]){let group=groupPath.join(" "),message=`Unknown command ${segment} for ${getCommandNamePlain(group||void 0)}.`,helpCommand=group?`${group} --help`:"--help";if(shouldEmitNonInteractiveCommandError(client2)){writeAgentError(client2,{status:AGENT_STATUS.ERROR,reason:"unknown_command",message,next:[{command:getCommandNamePlain(helpCommand),when:"See all commands"}]});return}output_manager_default.fatal(message),output_manager_default.print(`
8
8
  See all commands:
9
9
  ${getCommandName(helpCommand)}
10
10
  `)}function tokensAfterCommand(argv){let args=argv.slice(2);for(let i=0;i<args.length;i++){let arg2=args[i];if(arg2==="--")return[];if(arg2.startsWith("-")){!arg2.includes("=")&&globalCliFlagTakesValue(arg2)&&i++;continue}return args.slice(i+1)}return[]}var BETA_COMMANDS=new Set(["budget","budgets","crons","kms","schedules"]);var BASIC_COMMANDS=new Set(["build","cache","deploy","dev","env","git","help","init","inspect","install","integration","integration-resource","link","list","login","logout","open","promote","pull","redeploy","rollback","signup","switch"]),MAX_LISTED_ALIAS_LENGTH=3,DEFAULT_COMMAND="deploy",HELP_ROW={names:["help"],description:"Show help for a command",basic:!0,default:!1};function summarize(description){let firstLine=description.trim().split(`
package/dist/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "63.0.0";
1
+ export const version = "63.0.2";
2
2
  export const buildLabel = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "63.0.0",
3
+ "version": "63.0.2",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -36,12 +36,12 @@
36
36
  "uuid": "14.0.1",
37
37
  "zod": "4.1.11",
38
38
  "@vercel/backends": "18.0.0",
39
- "@vercel/build-utils": "14.20.0",
40
39
  "@vercel/cli-auth": "0.3.10",
41
40
  "@vercel/cli-config": "0.3.1",
42
- "@vercel/container": "18.0.0",
43
41
  "@vercel/detect-agent": "1.2.5",
42
+ "@vercel/container": "18.0.0",
44
43
  "@vercel/elysia": "18.0.0",
44
+ "@vercel/build-utils": "14.20.0",
45
45
  "@vercel/express": "18.0.0",
46
46
  "@vercel/fastify": "18.0.0",
47
47
  "@vercel/go": "21.0.0",
@@ -209,25 +209,25 @@
209
209
  "yauzl-promise": "2.1.3",
210
210
  "@vercel-internals/builder-orchestration": "1.0.17",
211
211
  "@vercel-internals/cli-builder-integration": "1.0.20",
212
- "@vercel-internals/constants": "1.0.4",
213
212
  "@vercel-internals/get-package-json": "1.0.0",
214
213
  "@vercel-internals/local-schedules": "0.0.4",
215
214
  "@vercel-internals/runtimes": "1.1.13",
216
215
  "@vercel-internals/service-topology": "1.0.16",
217
216
  "@vercel-internals/types": "3.0.21",
218
- "@vercel/client": "18.8.1",
219
217
  "@vercel/error-utils": "2.2.1",
218
+ "@vercel/client": "18.8.1",
220
219
  "@vercel/frameworks": "3.35.0",
221
220
  "@vercel/fs-detectors": "7.9.5",
222
- "@vercel/routing-utils": "6.6.0"
221
+ "@vercel/routing-utils": "6.6.0",
222
+ "@vercel-internals/constants": "1.0.4"
223
223
  },
224
224
  "optionalDependencies": {
225
- "@vercel/vc-native-darwin-arm64": "63.0.0",
226
- "@vercel/vc-native-darwin-x64": "63.0.0",
227
- "@vercel/vc-native-linux-arm64": "63.0.0",
228
- "@vercel/vc-native-linux-x64": "63.0.0",
229
- "@vercel/vc-native-win32-arm64": "63.0.0",
230
- "@vercel/vc-native-win32-x64": "63.0.0"
225
+ "@vercel/vc-native-darwin-arm64": "63.0.2",
226
+ "@vercel/vc-native-darwin-x64": "63.0.2",
227
+ "@vercel/vc-native-linux-arm64": "63.0.2",
228
+ "@vercel/vc-native-linux-x64": "63.0.2",
229
+ "@vercel/vc-native-win32-arm64": "63.0.2",
230
+ "@vercel/vc-native-win32-x64": "63.0.2"
231
231
  },
232
232
  "scripts": {
233
233
  "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{isNativeBinaryInstall}from"./chunk-YYPNUQDI.js";import{require_lib}from"./chunk-MYMM34ZH.js";import{packageName}from"./chunk-JESNVRVR.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_fs_extra=__toESM(require_lib(),1);import{join as join2,sep}from"path";import{execFile}from"child_process";import{promisify}from"util";import{tmpdir}from"node:os";import{resolve}from"node:path";var trustedUpgradeEnvironment=Object.freeze({...process.env}),trustedUpgradeDirectory=resolve(tmpdir());import{join}from"path";var packageManagers={npm:{metadataArgs:specifier=>["view",specifier,"version","--json","--global"],installArgs:specifier=>["i","-g",specifier],releaseAgeBypassArgs:["--min-release-age=0"],globalDetection:{args:["root","-g"],packageDir:(root,pkg)=>join(root,pkg)}},pnpm:{metadataArgs:specifier=>["view",specifier,"version","--json"],installArgs:specifier=>["i","-g",specifier],releaseAgeBypassArgs:["--config.minimumReleaseAge=0"],globalDetection:{args:pkg=>["list","-g",pkg,"--depth=0","--json"],packageDir:(output,pkg)=>{try{let projects=JSON.parse(output),path=(Array.isArray(projects)?projects[0]:projects)?.dependencies?.[pkg]?.path;return typeof path=="string"?path:void 0}catch{return}}}},yarn:{metadataArgs:specifier=>["info",specifier.endsWith("@latest")?specifier.slice(0,-7):specifier,"version","--json"],installArgs:specifier=>["global","add",specifier],releaseAgeBypassArgs:[],globalDetection:{args:["--silent","global","dir"],packageDir:(root,pkg)=>join(root,"node_modules",pkg)}},bun:{metadataArgs:specifier=>["info",specifier,"version","--json","--global"],installArgs:specifier=>["add","-g",specifier],releaseAgeBypassArgs:[],globalDetection:{args:["pm","bin","-g"],binaryNames:["vercel","vc"]}}};function getUpgradePackageManager(name){return packageManagers[name]}var execFileAsync=promisify(execFile),UnsupportedUpgradeInstallError=class extends Error{},globalCliTypes=["npm","pnpm","yarn","bun"];function throwIfAborted(signal){if(signal?.aborted)throw signal.reason instanceof Error?signal.reason:new Error("Package manager detection was aborted")}async function getPackageManagerGlobalRoot(cliType,pkg,env=trustedUpgradeEnvironment,signal){try{let detectionArgs=getUpgradePackageManager(cliType).globalDetection.args,{stdout}=await execFileAsync(cliType,typeof detectionArgs=="function"?detectionArgs(pkg):detectionArgs,{encoding:"utf8",windowsHide:!0,cwd:trustedUpgradeDirectory,timeout:15e3,env,signal});return stdout.trim()||null}catch{return throwIfAborted(signal),null}}async function detectGlobalPackageManager(installPath,pkg,cliTypes=globalCliTypes,env=trustedUpgradeEnvironment,signal){for(let cliType of cliTypes){throwIfAborted(signal);let root=await getPackageManagerGlobalRoot(cliType,pkg,env,signal);if(!root)continue;let detection=getUpgradePackageManager(cliType).globalDetection;if(detection.packageDir)try{let packageDir=detection.packageDir(root,pkg);if(!packageDir)continue;let resolvedPackageDir=await(0,import_fs_extra.realpath)(packageDir);if(installPath===resolvedPackageDir||installPath.startsWith(resolvedPackageDir+sep))return cliType}catch{}for(let binary of detection.binaryNames||[])try{let target=await(0,import_fs_extra.realpath)(join2(root,binary));if(target===installPath||target.startsWith(installPath+sep)||installPath.startsWith(target+sep))return cliType;let entrypoint=await(0,import_fs_extra.realpath)(process.argv[1]);if(!isNativeBinaryInstall()&&target===entrypoint)return cliType}catch{}}return null}async function resolveInstall(env=trustedUpgradeEnvironment,signal){throwIfAborted(signal);let nativeExecutable=isNativeBinaryInstall()&&env.VERCEL_CLI_PACKAGE_EXECUTABLE,resolvedNativeExecutable=nativeExecutable&&await(0,import_fs_extra.realpath)(nativeExecutable).catch(()=>null),entrypoint=resolvedNativeExecutable&&resolvedNativeExecutable===await(0,import_fs_extra.realpath)(process.execPath).catch(()=>null)?env.VERCEL_CLI_PACKAGE_ENTRYPOINT:process.argv[1],installPath=entrypoint&&await(0,import_fs_extra.realpath)(entrypoint).catch(()=>null);if(!installPath)throw new UnsupportedUpgradeInstallError("Could not resolve this Vercel CLI installation. Update it with the package manager that installed it.");let packageManager=await detectGlobalPackageManager(installPath,packageName,globalCliTypes,env,signal);if(!packageManager)throw new UnsupportedUpgradeInstallError("Could not detect a supported global npm, pnpm, Yarn, or Bun installation of Vercel CLI. Update it with the package manager that installed it.");return{packageManager,global:!0,assumed:!1}}async function isGlobal(){try{return await resolveInstall(),!0}catch{return!1}}async function getUpdateCommandInfo(env=trustedUpgradeEnvironment,signal){let{packageManager}=await resolveInstall(env,signal),args=getUpgradePackageManager(packageManager).installArgs(`${packageName}@latest`),allowBuild=pnpmAllowBuildFlag(packageManager,"esbuild");return{command:`${packageManager} ${args.join(" ")}${allowBuild}`,global:!0,packageManager,assumed:!1}}function pnpmAllowBuildFlag(cliType,pkg){return cliType==="pnpm"?` --allow-build=${pkg}`:""}async function getUpdateCommand(){return(await getUpdateCommandInfo()).command}export{trustedUpgradeEnvironment,trustedUpgradeDirectory,getUpgradePackageManager,isGlobal,getUpdateCommandInfo,getUpdateCommand};