vercel 59.15.0 → 59.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@ 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{validatePaths,validateRootDirectory}from"../../chunks/chunk-SGWVKRSR.js";import{Now,UploadErrorMissingArchive,printDeploymentStatus}from"../../chunks/chunk-TXELFFNK.js";import"../../chunks/chunk-M2XARQBF.js";import{parseRepoUrl}from"../../chunks/chunk-75CPY75D.js";import"../../chunks/chunk-2H77IRPI.js";import"../../chunks/chunk-OHDEHZLX.js";import"../../chunks/chunk-M2W3HKV3.js";import"../../chunks/chunk-PHW54NU5.js";import"../../chunks/chunk-U56NHYAH.js";import{readLocalConfig}from"../../chunks/chunk-2PPXY24N.js";import"../../chunks/chunk-TRTEXGVN.js";import"../../chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"../../chunks/chunk-T52FMXWC.js";import{highlight}from"../../chunks/chunk-J3U3L45Y.js";import"../../chunks/chunk-ZIPVX7LD.js";import"../../chunks/chunk-NHTF332K.js";import{isGuidanceEnabled}from"../../chunks/chunk-6YAADRQB.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,getCommandAliases,initSubcommand}from"../../chunks/chunk-BATE73HA.js";import"../../chunks/chunk-3QT7VOE3.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-7R5FEXZ5.js";import"../../chunks/chunk-FKCOBJFH.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-JEIMW3CO.js";import"../../chunks/chunk-ZKYS7EAB.js";import{pickOverrides,require_dist as require_dist2}from"../../chunks/chunk-ZT6KDLLY.js";import"../../chunks/chunk-NNP5NITU.js";import"../../chunks/chunk-K2RAW5DI.js";import"../../chunks/chunk-L3JDEHCQ.js";import{compileVercelConfig}from"../../chunks/chunk-KNEWCUWF.js";import{require_types}from"../../chunks/chunk-GHM7V3GG.js";import"../../chunks/chunk-QR7QPUFN.js";import{stamp_default}from"../../chunks/chunk-XPXOV5UO.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{ensureLink,parseEnv}from"../../chunks/chunk-HZZ5L472.js";import"../../chunks/chunk-LDM3SQAU.js";import{AGENT_STATUS}from"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-XQ73QIQ3.js";import"../../chunks/chunk-K3KJZLBD.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import{help}from"../../chunks/chunk-2B2MN3U5.js";import{table}from"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-GRNTLNC7.js";import{getDeployment}from"../../chunks/chunk-G7Y77DFH.js";import{mapCertError}from"../../chunks/chunk-JYAUUIR4.js";import"../../chunks/chunk-WPS6JZF6.js";import{outputAgentError,quoteArg,withGlobalFlags}from"../../chunks/chunk-NS4FH2TY.js";import"../../chunks/chunk-5QQNYN4N.js";import{TelemetryClient}from"../../chunks/chunk-57GHYR4Y.js";import"../../chunks/chunk-RCTYVKM5.js";import{parseArguments}from"../../chunks/chunk-HTC6KO2B.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-LNPMDXBJ.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-BRK4OB4B.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,getGitConfigPath,getGitExecutable,getLinkFromDir,getRepoLink,getVercelDirectory,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,require_lib}from"../../chunks/chunk-VLZ47RWM.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import{printAlignedLabel}from"../../chunks/chunk-XSVBYDYI.js";import"../../chunks/chunk-EVZRQGNK.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,MissingBuildScript,NotDomainOwner,NowError,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,require_bytes}from"../../chunks/chunk-R2TGGVCT.js";import{getCommandName,packageName}from"../../chunks/chunk-FI772UVH.js";import{require_build_utils}from"../../chunks/chunk-XFVGX5HG.js";import{emoji,link_default,output_manager_default,prependEmoji}from"../../chunks/chunk-Z6Y55QJW.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_build_utils2=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1),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{join as join4,resolve as resolve2}from"path";async function createDeploy(client,now,contextName,path,createArgs,org,isSettingUpProject,archive){try{return await now.create(path,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-VKOWC4PZ.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path,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
- `))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(resolve3=>setTimeout(resolve3,1e3));for(let attempt=0;attempt<5;attempt++){attempt>0&&await new Promise(resolve3=>setTimeout(resolve3,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}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 import_types2=__toESM(require_types(),1),DeployTelemetryClient=class extends TelemetryClient{trackCliArgumentProjectPath(projectPaths){projectPaths&&this.trackCliArgument({arg:"project-path",value:this.redactedValue})}trackCliOptionArchive(format){if(format){let allowedFormat=[...import_types2.VALID_ARCHIVE_FORMATS,deprecatedArchiveSplitTgz].includes(format)?format:this.redactedValue;this.trackCliOption({option:"archive",value:allowedFormat})}}trackCliOptionBuildEnv(buildEnv){buildEnv&&buildEnv.length>0&&this.trackCliOption({option:"build-env",value:this.redactedValue})}trackCliOptionEnv(env){env&&env.length>0&&this.trackCliOption({option:"env",value:this.redactedValue})}trackCliOptionMeta(meta){meta&&meta.length>0&&this.trackCliOption({option:"meta",value:this.redactedValue})}trackCliOptionName(name){name&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionRegions(regions){regions&&this.trackCliOption({option:"regions",value:this.redactedValue})}trackCliOptionTarget(target){target&&this.trackCliOption({option:"target",value:this.redactedTargetName(target)})}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliFlagForce(flag){flag&&this.trackCliFlag("force")}trackCliFlagLogs(flag){flag&&this.trackCliFlag("logs")}trackCliFlagNoLogs(flag){flag&&this.trackCliFlag("no-logs")}trackCliFlagGuidance(flag){flag&&this.trackCliFlag("guidance")}trackCliFlagNoClipboard(flag){flag&&this.trackCliFlag("no-clipboard")}trackCliFlagNoWait(flag){flag&&this.trackCliFlag("no-wait")}trackCliFlagDry(flag){flag&&this.trackCliFlag("dry")}trackCliFlagPrebuilt(flag){flag&&this.trackCliFlag("prebuilt")}trackCliSubcommandInit(actual){this.trackCliSubcommand({subcommand:"init",value:actual})}trackCliSubcommandContinue(actual){this.trackCliSubcommand({subcommand:"continue",value:actual})}trackCliFlagProd(flag){flag&&this.trackCliFlag("prod")}trackCliFlagTemporary(flag){flag&&this.trackCliFlag("temporary")}trackTargetEnvironment(target){super.trackTargetEnvironment(target==="production"?"production":"preview")}trackCliFlagPublic(flag){flag&&this.trackCliFlag("public")}trackCliFlagSkipDomain(flag){flag&&this.trackCliFlag("skip-domain")}trackCliFlagWithCache(flag){flag&&this.trackCliFlag("with-cache")}trackCliFlagYes(flag){flag&&this.trackCliFlag("yes")}trackCliFlagJson(flag){flag&&this.trackCliFlag("json")}trackCliOptionFormat(format){format&&this.trackCliOption({option:"format",value:format})}trackDeploymentId(id){id&&this.trackCommandOutput({key:"deployment-id",value:id})}};var import_fs_extra3=__toESM(require_lib(),1);import{join as join3}from"path";var import_fs_extra2=__toESM(require_lib(),1),import_ci_info=__toESM(require_ci_info(),1),import_build_utils=__toESM(require_build_utils(),1),import_error_utils=__toESM(require_dist(),1);import{join as join2}from"path";var VERCEL_DIR_ANONYMOUS="anonymous.json";function anonymousStatePath(cwd){return join2(cwd,VERCEL_DIR,VERCEL_DIR_ANONYMOUS)}async function readAnonymousState(cwd){try{let state=await(0,import_fs_extra2.readJSON)(anonymousStatePath(cwd));if(typeof state?.projectId=="string"&&typeof state.token=="string"&&typeof state.claimUrl=="string"&&typeof state.expiresAt=="number")return state}catch{}return null}async function writeAnonymousState(cwd,state){let path=anonymousStatePath(cwd);await(0,import_fs_extra2.outputJSON)(path,state,{spaces:2,mode:384}),await(0,import_fs_extra2.chmod)(path,384),await addToGitIgnore(cwd)}async function clearAnonymousState(cwd){await(0,import_fs_extra2.remove)(anonymousStatePath(cwd))}async function bootstrapAnonymousProject(client){let{projectId,token,claimUrl,expiresAt}=await client.fetch("/v1/anonymous/projects?surface=cli",{method:"POST",body:{},useCurrentTeam:!1,retry:{retries:0}});return{projectId,token,claimUrl,expiresAt}}async function ensureAnonymousLink(client,cwd,{requireExistingState=!1,confirmed=!0}={}){if(import_ci_info.default.isCI||!!((0,import_build_utils.getPlatformEnv)("ORG_ID")&&(0,import_build_utils.getPlatformEnv)("PROJECT_ID"))||!!await getLinkFromDir(getVercelDirectory(cwd))||!!(await getRepoLink(client,cwd))?.repoConfig)return"refused";let state=await readAnonymousState(cwd);if(state&&state.expiresAt<=Date.now())return output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),"failed";if(!state&&requireExistingState)return"refused";if(!confirmed&&!state)return"confirmation-required";if(!state){try{state=await bootstrapAnonymousProject(client)}catch(err){return output_manager_default.debug(`Anonymous bootstrap failed: ${(0,import_error_utils.errorToString)(err)}`),"refused"}await writeAnonymousState(cwd,state),output_manager_default.log("Not authenticated. Deploying anonymously.")}return client.authConfig={token:state.token,skipWrite:!0},delete process.env.VERCEL_TEAM_ID,{status:"linked",anonymous:!0,expiresAt:state.expiresAt,claimUrl:state.claimUrl,org:{type:"user",id:"",slug:"anonymous"},project:{id:state.projectId,name:state.projectId}}}function validateAnonymousTarget(isAnonymous,target){return isAnonymous&&target&&target!=="production"?(output_manager_default.error(`Anonymous deployments always target production, so "${target}" is not available. Remove the ${param("--target")} option, or run ${getCommandName("login")} to deploy to other environments.`),!1):!0}async function setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun}){isAnonymous||await clearAnonymousState(cwd);let anonymousLink;if(isAnonymous){let anonymous=await ensureAnonymousLink(client,cwd,{requireExistingState:dryRun});if(anonymous==="refused"){let{default:promptMissingCredentials}=await import("../../chunks/prompt-missing-credentials-IUHLYSQU.js"),loginExitCode=await promptMissingCredentials(client);if(loginExitCode!==0)return loginExitCode;isAnonymous=!1}else{if(anonymous==="failed")return 1;if(anonymous==="confirmation-required")return 1;anonymousLink=anonymous}}return{isAnonymous,anonymousLink}}async function handleAnonymousDeploymentError({client,cwd,error,link,isV0,retry}){if(!(!link||!isAPIError(error))){if(error.code==="anonymous_project_claimed"){if(client.nonInteractive||!client.stdin.isTTY)return output_manager_default.prettyError({message:`This project was claimed successfully. Run ${getCommandName("login")} to continue deploying it.`}),1;output_manager_default.log("This project was claimed successfully. Log in to continue deploying it.");let loginExitCode;try{let{default:login}=await import("../../chunks/login-DEAEVUHM.js");loginExitCode=await login(client,{shouldParseArgs:!1})}catch(loginError){return printError(loginError),1}if(loginExitCode!==0)return loginExitCode;let claimedProjectLink=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:link.project.id,failIfNotFound:!0,allowOwnerLookupFallback:!0,v0:isV0});return typeof claimedProjectLink=="number"?claimedProjectLink:(await linkFolderToProject(client,cwd,{projectId:claimedProjectLink.project.id,orgId:claimedProjectLink.org.id},claimedProjectLink.project.name,claimedProjectLink.org.slug,"link",!0,!1),await clearAnonymousState(cwd),retry())}if(error.status===401||error.status===410)return await clearAnonymousState(cwd),output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),1}}async function runImplicitBuild(client,cwd){let projectJsonPath=join3(cwd,VERCEL_DIR,VERCEL_DIR_PROJECT),projectJsonExists=await import_fs_extra3.default.pathExists(projectJsonPath);projectJsonExists||await import_fs_extra3.default.outputJSON(projectJsonPath,{settings:{}},{spaces:2}),await import_fs_extra3.default.pathExists(join3(cwd,"package.json"))&&output_manager_default.log("Building your project locally\u2026");let originalArgv=client.argv,originalCwd=client.cwd,originalStdout=client.stdout,previousVercelFirstDeployment=process.env.VERCEL_FIRST_DEPLOYMENT;client.cwd=cwd,client.setArgv([...originalArgv.slice(0,2),"build","--prod","--yes"]),process.env.VERCEL_FIRST_DEPLOYMENT="1",client.stdout=createSinkStream();try{let build=(await import("../build/index.js")).default;return await build(client)}finally{client.setArgv(originalArgv),client.cwd=originalCwd,client.stdout=originalStdout,previousVercelFirstDeployment===void 0?delete process.env.VERCEL_FIRST_DEPLOYMENT:process.env.VERCEL_FIRST_DEPLOYMENT=previousVercelFirstDeployment,projectJsonExists||await import_fs_extra3.default.remove(projectJsonPath)}}function createSinkStream(){return{isTTY:!1,write:()=>!0}}var COMMAND_CONFIG={init:getCommandAliases(initSubcommand),continue:getCommandAliases(continueSubcommand)},deploy_default=async client=>{let telemetryClient=new DeployTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArguments=null,flagsSpecification=getFlagsSpecification(deployCommand.options);try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),1}let subArgs=parsedArguments.args[0]===deployCommand.name?parsedArguments.args.slice(1):parsedArguments.args,{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG);function printSubcommandHelp(command){output_manager_default.print(help(command,{parent:deployCommand,columns:client.stderr.columns}))}switch(subcommand){case"init":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(initSubcommand),2):(telemetryClient.trackCliSubcommandInit(subcommandOriginal),handleInitDeployment(client,telemetryClient));case"continue":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(continueSubcommand),2):(telemetryClient.trackCliSubcommandContinue(subcommandOriginal),handleContinueSubcommand(client,telemetryClient));default:return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy"),output_manager_default.print(help(deployCommand,{columns:client.stderr.columns})),2):handleDefaultDeploy(client,telemetryClient)}};async function handleInitDeployment(client,telemetryClient){let flagsSpecification=getFlagsSpecification(initSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,args=parsedArguments.args;args[0]==="deploy"&&(args=args.slice(1)),args[0]==="init"&&(args=args.slice(1));let paths;args.length>0?(paths=args.map(item=>resolve2(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"],target=parseTarget({flagName:"target",flags:parsedArguments.flags});telemetryClient.trackTargetEnvironment(target);let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client.VALID_ARCHIVE_FORMATS.join(", ")}`),1;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
7
+ import{validatePaths,validateRootDirectory}from"../../chunks/chunk-SGWVKRSR.js";import{DeployTelemetryClient,Now,UploadErrorMissingArchive,printDeploymentStatus,printPrebuiltFilePathMapIgnoreWarning}from"../../chunks/chunk-AUGK2HIT.js";import"../../chunks/chunk-M2XARQBF.js";import{parseRepoUrl}from"../../chunks/chunk-75CPY75D.js";import"../../chunks/chunk-2H77IRPI.js";import"../../chunks/chunk-OHDEHZLX.js";import"../../chunks/chunk-M2W3HKV3.js";import"../../chunks/chunk-PHW54NU5.js";import"../../chunks/chunk-U56NHYAH.js";import{readLocalConfig}from"../../chunks/chunk-2PPXY24N.js";import"../../chunks/chunk-TRTEXGVN.js";import"../../chunks/chunk-T3GQAMBJ.js";import{require_ci_info}from"../../chunks/chunk-T52FMXWC.js";import{highlight}from"../../chunks/chunk-J3U3L45Y.js";import"../../chunks/chunk-ZIPVX7LD.js";import"../../chunks/chunk-NHTF332K.js";import{isGuidanceEnabled}from"../../chunks/chunk-6YAADRQB.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,getCommandAliases,initSubcommand}from"../../chunks/chunk-BATE73HA.js";import"../../chunks/chunk-3QT7VOE3.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-7R5FEXZ5.js";import"../../chunks/chunk-FKCOBJFH.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-JEIMW3CO.js";import"../../chunks/chunk-ZKYS7EAB.js";import{pickOverrides,require_dist as require_dist2}from"../../chunks/chunk-562OXD3F.js";import"../../chunks/chunk-NNP5NITU.js";import"../../chunks/chunk-K2RAW5DI.js";import"../../chunks/chunk-L3JDEHCQ.js";import{compileVercelConfig}from"../../chunks/chunk-KNEWCUWF.js";import{require_types}from"../../chunks/chunk-GHM7V3GG.js";import"../../chunks/chunk-QR7QPUFN.js";import{stamp_default}from"../../chunks/chunk-XPXOV5UO.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{ensureLink,parseEnv}from"../../chunks/chunk-HZZ5L472.js";import"../../chunks/chunk-LDM3SQAU.js";import{AGENT_STATUS}from"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-XQ73QIQ3.js";import"../../chunks/chunk-K3KJZLBD.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import{help}from"../../chunks/chunk-2B2MN3U5.js";import{table}from"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-GRNTLNC7.js";import{getDeployment}from"../../chunks/chunk-G7Y77DFH.js";import{mapCertError}from"../../chunks/chunk-JYAUUIR4.js";import"../../chunks/chunk-WPS6JZF6.js";import{outputAgentError,quoteArg,withGlobalFlags}from"../../chunks/chunk-NS4FH2TY.js";import"../../chunks/chunk-5QQNYN4N.js";import"../../chunks/chunk-57GHYR4Y.js";import"../../chunks/chunk-RCTYVKM5.js";import{parseArguments}from"../../chunks/chunk-HTC6KO2B.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-LNPMDXBJ.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-BRK4OB4B.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,getGitConfigPath,getGitExecutable,getLinkFromDir,getRepoLink,getVercelDirectory,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,require_lib}from"../../chunks/chunk-VLZ47RWM.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import{printAlignedLabel}from"../../chunks/chunk-XSVBYDYI.js";import"../../chunks/chunk-EVZRQGNK.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,MissingBuildScript,NotDomainOwner,NowError,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,require_bytes}from"../../chunks/chunk-R2TGGVCT.js";import{getCommandName,packageName}from"../../chunks/chunk-FI772UVH.js";import{require_build_utils}from"../../chunks/chunk-XFVGX5HG.js";import{emoji,link_default,output_manager_default,prependEmoji}from"../../chunks/chunk-Z6Y55QJW.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_build_utils2=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1),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{join as join4,resolve as resolve2}from"path";async function createDeploy(client,now,contextName,path,createArgs,org,isSettingUpProject,archive){try{return await now.create(path,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-VKOWC4PZ.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path,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
+ `))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(resolve3=>setTimeout(resolve3,1e3));for(let attempt=0;attempt<5;attempt++){attempt>0&&await new Promise(resolve3=>setTimeout(resolve3,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}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 import_fs_extra3=__toESM(require_lib(),1);import{join as join3}from"path";var import_fs_extra2=__toESM(require_lib(),1),import_ci_info=__toESM(require_ci_info(),1),import_build_utils=__toESM(require_build_utils(),1),import_error_utils=__toESM(require_dist(),1);import{join as join2}from"path";var VERCEL_DIR_ANONYMOUS="anonymous.json";function anonymousStatePath(cwd){return join2(cwd,VERCEL_DIR,VERCEL_DIR_ANONYMOUS)}async function readAnonymousState(cwd){try{let state=await(0,import_fs_extra2.readJSON)(anonymousStatePath(cwd));if(typeof state?.projectId=="string"&&typeof state.token=="string"&&typeof state.claimUrl=="string"&&typeof state.expiresAt=="number")return state}catch{}return null}async function writeAnonymousState(cwd,state){let path=anonymousStatePath(cwd);await(0,import_fs_extra2.outputJSON)(path,state,{spaces:2,mode:384}),await(0,import_fs_extra2.chmod)(path,384),await addToGitIgnore(cwd)}async function clearAnonymousState(cwd){await(0,import_fs_extra2.remove)(anonymousStatePath(cwd))}async function bootstrapAnonymousProject(client){let{projectId,token,claimUrl,expiresAt}=await client.fetch("/v1/anonymous/projects?surface=cli",{method:"POST",body:{},useCurrentTeam:!1,retry:{retries:0}});return{projectId,token,claimUrl,expiresAt}}async function ensureAnonymousLink(client,cwd,{requireExistingState=!1,confirmed=!0}={}){if(import_ci_info.default.isCI||!!((0,import_build_utils.getPlatformEnv)("ORG_ID")&&(0,import_build_utils.getPlatformEnv)("PROJECT_ID"))||!!await getLinkFromDir(getVercelDirectory(cwd))||!!(await getRepoLink(client,cwd))?.repoConfig)return"refused";let state=await readAnonymousState(cwd);if(state&&state.expiresAt<=Date.now())return output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),"failed";if(!state&&requireExistingState)return"refused";if(!confirmed&&!state)return"confirmation-required";if(!state){try{state=await bootstrapAnonymousProject(client)}catch(err){return output_manager_default.debug(`Anonymous bootstrap failed: ${(0,import_error_utils.errorToString)(err)}`),"refused"}await writeAnonymousState(cwd,state),output_manager_default.log("Not authenticated. Deploying anonymously.")}return client.authConfig={token:state.token,skipWrite:!0},delete process.env.VERCEL_TEAM_ID,{status:"linked",anonymous:!0,expiresAt:state.expiresAt,claimUrl:state.claimUrl,org:{type:"user",id:"",slug:"anonymous"},project:{id:state.projectId,name:state.projectId}}}function validateAnonymousTarget(isAnonymous,target){return isAnonymous&&target&&target!=="production"?(output_manager_default.error(`Anonymous deployments always target production, so "${target}" is not available. Remove the ${param("--target")} option, or run ${getCommandName("login")} to deploy to other environments.`),!1):!0}async function setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun}){isAnonymous||await clearAnonymousState(cwd);let anonymousLink;if(isAnonymous){let anonymous=await ensureAnonymousLink(client,cwd,{requireExistingState:dryRun});if(anonymous==="refused"){let{default:promptMissingCredentials}=await import("../../chunks/prompt-missing-credentials-IUHLYSQU.js"),loginExitCode=await promptMissingCredentials(client);if(loginExitCode!==0)return loginExitCode;isAnonymous=!1}else{if(anonymous==="failed")return 1;if(anonymous==="confirmation-required")return 1;anonymousLink=anonymous}}return{isAnonymous,anonymousLink}}async function handleAnonymousDeploymentError({client,cwd,error,link,isV0,retry}){if(!(!link||!isAPIError(error))){if(error.code==="anonymous_project_claimed"){if(client.nonInteractive||!client.stdin.isTTY)return output_manager_default.prettyError({message:`This project was claimed successfully. Run ${getCommandName("login")} to continue deploying it.`}),1;output_manager_default.log("This project was claimed successfully. Log in to continue deploying it.");let loginExitCode;try{let{default:login}=await import("../../chunks/login-DEAEVUHM.js");loginExitCode=await login(client,{shouldParseArgs:!1})}catch(loginError){return printError(loginError),1}if(loginExitCode!==0)return loginExitCode;let claimedProjectLink=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:link.project.id,failIfNotFound:!0,allowOwnerLookupFallback:!0,v0:isV0});return typeof claimedProjectLink=="number"?claimedProjectLink:(await linkFolderToProject(client,cwd,{projectId:claimedProjectLink.project.id,orgId:claimedProjectLink.org.id},claimedProjectLink.project.name,claimedProjectLink.org.slug,"link",!0,!1),await clearAnonymousState(cwd),retry())}if(error.status===401||error.status===410)return await clearAnonymousState(cwd),output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),1}}async function runImplicitBuild(client,cwd){let projectJsonPath=join3(cwd,VERCEL_DIR,VERCEL_DIR_PROJECT),projectJsonExists=await import_fs_extra3.default.pathExists(projectJsonPath);projectJsonExists||await import_fs_extra3.default.outputJSON(projectJsonPath,{settings:{}},{spaces:2}),await import_fs_extra3.default.pathExists(join3(cwd,"package.json"))&&output_manager_default.log("Building your project locally\u2026");let originalArgv=client.argv,originalCwd=client.cwd,originalStdout=client.stdout,previousVercelFirstDeployment=process.env.VERCEL_FIRST_DEPLOYMENT;client.cwd=cwd,client.setArgv([...originalArgv.slice(0,2),"build","--prod","--yes"]),process.env.VERCEL_FIRST_DEPLOYMENT="1",client.stdout=createSinkStream();try{let build=(await import("../build/index.js")).default;return await build(client)}finally{client.setArgv(originalArgv),client.cwd=originalCwd,client.stdout=originalStdout,previousVercelFirstDeployment===void 0?delete process.env.VERCEL_FIRST_DEPLOYMENT:process.env.VERCEL_FIRST_DEPLOYMENT=previousVercelFirstDeployment,projectJsonExists||await import_fs_extra3.default.remove(projectJsonPath)}}function createSinkStream(){return{isTTY:!1,write:()=>!0}}var COMMAND_CONFIG={init:getCommandAliases(initSubcommand),continue:getCommandAliases(continueSubcommand)},deploy_default=async client=>{let telemetryClient=new DeployTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArguments=null,flagsSpecification=getFlagsSpecification(deployCommand.options);try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),1}let subArgs=parsedArguments.args[0]===deployCommand.name?parsedArguments.args.slice(1):parsedArguments.args,{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG);function printSubcommandHelp(command){output_manager_default.print(help(command,{parent:deployCommand,columns:client.stderr.columns}))}switch(subcommand){case"init":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(initSubcommand),2):(telemetryClient.trackCliSubcommandInit(subcommandOriginal),handleInitDeployment(client,telemetryClient));case"continue":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(continueSubcommand),2):(telemetryClient.trackCliSubcommandContinue(subcommandOriginal),handleContinueSubcommand(client,telemetryClient));default:return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy"),output_manager_default.print(help(deployCommand,{columns:client.stderr.columns})),2):handleDefaultDeploy(client,telemetryClient)}};async function handleInitDeployment(client,telemetryClient){let flagsSpecification=getFlagsSpecification(initSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,args=parsedArguments.args;args[0]==="deploy"&&(args=args.slice(1)),args[0]==="init"&&(args=args.slice(1));let paths;args.length>0?(paths=args.map(item=>resolve2(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"],target=parseTarget({flagName:"target",flags:parsedArguments.flags});telemetryClient.trackTargetEnvironment(target);let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client.VALID_ARCHIVE_FORMATS.join(", ")}`),1;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
9
9
  `);let cliMeta=parseMeta(parsedArguments.flags["--meta"]),isV0=cliMeta.v0==="true";getGitExecutable(cwd);let link=await ensureLink("deploy",client,cwd,{autoConfirm,projectName:projectNameOrId??localConfig?.name,failIfNotFound:!!projectNameOrId,v0:isV0});if(typeof link=="number")return link;let{org,project}=link,rootDirectory=project.rootDirectory,sourceFilesOutsideRootDirectory=project.sourceFilesOutsideRootDirectory??!0;link.repoRoot&&(cwd=link.repoRoot);let contextName=org.slug;if(client.config.currentTeam=org.type==="team"?org.id:void 0,rootDirectory&&await validateRootDirectory(cwd,join4(cwd,rootDirectory),project?`To change your Project Settings, go to https://vercel.com/${org?.slug}/${project.name}/settings`:"")===!1)return 1;if(rootDirectory){let rootDirectoryPath=join4(cwd,rootDirectory);await compileVercelConfig(rootDirectoryPath);let rootDirectoryConfig=readLocalConfig(rootDirectoryPath);rootDirectoryConfig?(debug(`Read local config from root directory (${rootDirectory})`),localConfig=rootDirectoryConfig):localConfig&&output_manager_default.print(`${prependEmoji(`The ${highlight(localConfig[import_client.fileNameSymbol])} file should be inside of the provided root directory.`,emoji("warning"))}
10
10
  `)}localConfig=localConfig||{},localConfig.name&&output_manager_default.print(`${prependEmoji(`The ${code("name")} property in ${highlight(localConfig[import_client.fileNameSymbol])} is deprecated (https://vercel.link/name-prop)`,emoji("warning"))}
11
11
  `);let isObject=item=>Object.prototype.toString.call(item)==="[object Object]";if(typeof localConfig.env<"u"&&!isObject(localConfig.env))return error(`The ${code("env")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build<"u"){if(!isObject(localConfig.build))return error(`The ${code("build")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build.env<"u"&&!isObject(localConfig.build.env))return error(`The ${code("build.env")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1}let meta=Object.assign({},parseMeta(localConfig.meta),cliMeta),gitMetadata=createGitMeta(join4(cwd,project.rootDirectory||""),project);gitMetadata.catch(()=>{});let deploymentEnv=Object.assign({},parseEnv(localConfig.env),parseEnv(parsedArguments.flags["--env"])),deploymentBuildEnv=Object.assign({},parseEnv(localConfig.build&&localConfig.build.env),parseEnv(parsedArguments.flags["--build-env"]));try{await addProcessEnv(log,deploymentEnv),await addProcessEnv(log,deploymentBuildEnv)}catch(err){return error((0,import_error_utils2.errorToString)(err)),1}let regionFlag=(parsedArguments.flags["--regions"]||"").split(",").map(s=>s.trim()).filter(Boolean),regions=regionFlag.length>0?regionFlag:localConfig.regions,currentTeam=org.type==="team"?org.id:void 0,now=new Now({client,currentTeam}),deployStamp=stamp_default(),localConfigurationOverrides=pickOverrides(localConfig),name=project.name;if(!name)throw new Error("`name` not found on project or provided by existing project");let noWait=!0;try{let autoAssignCustomDomains=parsedArguments.flags["--skip-domain"]?!1:void 0,createArgs={name,env:deploymentEnv,build:{env:deploymentBuildEnv},forceNew:parsedArguments.flags["--force"],withCache:parsedArguments.flags["--with-cache"],prebuilt:!0,vercelOutputDir:void 0,rootDirectory,quiet,nowConfig:{...localConfig,images:void 0},regions,meta,gitMetadata,deployStamp,target,skipAutoDetectionConfirmation:autoConfirm,noWait,withFullLogs:!1,autoAssignCustomDomains,manual:!0,jsonOutput:asJson,linkedProject:project};(!localConfig.builds||localConfig.builds.length===0)&&(createArgs.projectSettings={sourceFilesOutsideRootDirectory,rootDirectory,...localConfigurationOverrides});let{packageJson}=await(0,import_build_utils2.findPackageJson)(join4(cwd,project?.rootDirectory??""),!0,cwd),nodeVersion;if(packageJson?.engines?.node)try{let{range}=await(0,import_build_utils2.getSupportedNodeVersion)(packageJson.engines.node);nodeVersion=range}catch(error2){error2 instanceof Error&&output_manager_default.warn(error2.message)}createArgs.projectSettings||(createArgs.projectSettings={}),createArgs.projectSettings.nodeVersion=nodeVersion;let deployment=await createDeploy(client,now,contextName,cwd,createArgs,org,!project,parsedArchive?"tgz":void 0);if(deployment instanceof NotDomainOwner)return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"not_domain_owner",message:deployment.message,next:[{command:withGlobalFlags(client,"deploy"),when:"retry deploy"}]},null,2)}
@@ -16,12 +16,12 @@ import{validatePaths,validateRootDirectory}from"../../chunks/chunk-SGWVKRSR.js";
16
16
  `)}else output_manager_default.error(`Running Checks: ${counterList}`);return 1}if(deployment===null)return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"upload_failed",message:"Uploading failed. Please try again.",next:[{command:withGlobalFlags(client,"deploy"),when:"retry deploy"}]},null,2)}
17
17
  `),1):(error("Uploading failed. Please try again."),1);if(asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(deployment,client.apiUrl),isImplicitProduction=deployment.target==="production"&&!target,payload=client.nonInteractive?{status:AGENT_STATUS.OK,deployment:deploymentJson,message:`Deployment ${deployment.url} ready.`,...isImplicitProduction?{hint:"This is the project\u2019s first deployment, so it was assigned to production. Future deployments will be preview deployments unless you use --prod."}:{},next:[{command:withGlobalFlags(client,`inspect ${deployment.url}`),when:"Inspect deployment"},...isImplicitProduction?[]:[{command:withGlobalFlags(client,"deploy --prod"),when:"Promote to production"}]]}:deploymentJson;return client.stdout.write(`${JSON.stringify(payload,null,2)}
18
18
  `),0}return printDeploymentStatus(client,deployment,deployStamp,noWait,!1,!0)}catch(err){if((0,import_error_utils2.isError)(err)&&debug(`Error: ${err}
19
- ${err.stack}`),err instanceof UploadErrorMissingArchive)return output_manager_default.prettyError(err),1;if(err instanceof NotDomainOwner)return output_manager_default.error(err.message),1;if(err instanceof DomainNotFound||err instanceof DomainNotVerified||err instanceof NotDomainOwner||err instanceof DomainPermissionDenied||err instanceof DomainVerificationFailed||err instanceof SchemaValidationFailed||err instanceof InvalidDomain||err instanceof DeploymentNotFound||err instanceof BuildsRateLimited||err instanceof DeploymentsRateLimited||err instanceof AliasDomainConfigured||err instanceof MissingBuildScript||err instanceof ConflictingFilePath||err instanceof ConflictingPathSegment||err instanceof ConflictingConfigFiles||err instanceof DeprecatedNowJson)return handleCreateDeployError(err,localConfig),1;if(isAPIError(err)&&err.code==="size_limit_exceeded"){let{sizeLimit=0}=err,message=`File size limit exceeded (${(0,import_bytes.default)(sizeLimit)})`;return error(message),1}return printError(err),1}}async function handleContinueSubcommand(client,telemetryClient){let flagsSpecification=getFlagsSpecification(continueSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),1}let idFlag=parsedArguments.flags["--id"],parsedArchive=parsedArguments.flags["--archive"],errorMessage=parsedArguments.flags["--error"];if(typeof parsedArchive=="string"&&!isValidArchive(parsedArchive))return output_manager_default.error(`Format must be one of: ${import_client.VALID_ARCHIVE_FORMATS.join(", ")}`),1;if(telemetryClient.trackCliOptionArchive(parsedArchive),parsedArchive&&errorMessage!==void 0)return output_manager_default.error(`Cannot use ${param("--archive")} with ${param("--error")}`),1;if(errorMessage!==void 0&&errorMessage.trim()==="")return output_manager_default.error(`${param("--error")} requires an error message`),1;if(!idFlag)return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"missing_id",message:"Missing required --id flag. Provide the deployment ID to continue.",next:[{command:withGlobalFlags(client,"deploy continue --id <deployment-id>"),when:"provide deployment ID"}]},1),1):(output_manager_default.error(`Missing required ${param("--id")} flag. Usage: ${getCommandName("deploy continue --id <deployment-id>")}`),1);let paths=[client.cwd],pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=client.localConfig||readLocalConfig(paths[0]);localConfig&&(client.localConfig=localConfig);let{path:cwd}=pathValidation,link=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:localConfig?.name});if(typeof link=="number")return link;let{org}=link;if(link.repoRoot&&(cwd=link.repoRoot),client.config.currentTeam=org.type==="team"?org.id:void 0,errorMessage!==void 0)try{return await client.fetch(`/deployments/${idFlag}/continue`,{method:"POST",body:{errorMessage}}),output_manager_default.success(`Marked deployment ${idFlag} as errored`),0}catch(error){return printError(error),1}let vercelOutputDir=join4(cwd,".vercel/output");if(link.repoRoot&&link.project.rootDirectory&&(vercelOutputDir=join4(cwd,link.project.rootDirectory,".vercel/output")),!await import_fs_extra4.default.pathExists(vercelOutputDir))return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"prebuilt_not_found",message:'No prebuilt output found in ".vercel/output". Run build first.',next:[{command:withGlobalFlags(client,"build"),when:"generate prebuilt output"},{command:withGlobalFlags(client,`deploy continue --id ${idFlag}`),when:"deploy prebuilt output"}]},1),1):(output_manager_default.error(`No prebuilt output found in ".vercel/output". Run ${getCommandName("build")} to generate a local build.`),1);let deployStamp=stamp_default();return handleContinueDeployment({client,deploymentId:idFlag,cwd,deployStamp,noWait:!1,org,vercelOutputDir,archive:parsedArchive?"tgz":void 0})}async function handleDefaultDeploy(client,telemetryClient){let flagsSpecification=getFlagsSpecification(deployCommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}telemetryClient.trackCliOptionArchive(parsedArguments.flags["--archive"]),telemetryClient.trackCliOptionEnv(parsedArguments.flags["--env"]),telemetryClient.trackCliOptionBuildEnv(parsedArguments.flags["--build-env"]),telemetryClient.trackCliOptionMeta(parsedArguments.flags["--meta"]),telemetryClient.trackCliFlagPrebuilt(parsedArguments.flags["--prebuilt"]),telemetryClient.trackCliOptionRegions(parsedArguments.flags["--regions"]),telemetryClient.trackCliFlagNoWait(parsedArguments.flags["--no-wait"]),telemetryClient.trackCliFlagDry(parsedArguments.flags["--dry"]),telemetryClient.trackCliFlagYes(parsedArguments.flags["--yes"]),telemetryClient.trackCliOptionTarget(parsedArguments.flags["--target"]),telemetryClient.trackCliFlagProd(parsedArguments.flags["--prod"]),telemetryClient.trackCliFlagTemporary(parsedArguments.flags["--temporary"]),telemetryClient.trackCliFlagSkipDomain(parsedArguments.flags["--skip-domain"]),telemetryClient.trackCliFlagLogs(parsedArguments.flags["--logs"]),telemetryClient.trackCliFlagNoLogs(parsedArguments.flags["--no-logs"]),telemetryClient.trackCliFlagGuidance(parsedArguments.flags["--guidance"]),telemetryClient.trackCliFlagForce(parsedArguments.flags["--force"]),telemetryClient.trackCliFlagWithCache(parsedArguments.flags["--with-cache"]),telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive;"--confirm"in parsedArguments.flags&&(telemetryClient.trackCliFlagConfirm(parsedArguments.flags["--confirm"]),output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArguments.flags["--yes"]=parsedArguments.flags["--confirm"]),"--no-logs"in parsedArguments.flags&&output_manager_default.warn("`--no-logs` is deprecated and now the default behavior."),parsedArguments.args[0]===deployCommand.name&&parsedArguments.args.shift();let paths;parsedArguments.args.length>0?(paths=parsedArguments.args.map(item=>resolve2(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;try{await compileVercelConfig(paths[0])}catch(err){if(err instanceof ConflictingConfigFiles||err instanceof DeprecatedNowJson)return output_manager_default.prettyError(err),1;throw err}let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error,prettyError}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"]||client.nonInteractive;parsedArguments.flags["--name"]&&(output_manager_default.print(`${prependEmoji(`The ${param("--name")} option is deprecated (https://vercel.link/name-flag)`,emoji("warning"))}
19
+ ${err.stack}`),err instanceof UploadErrorMissingArchive)return output_manager_default.prettyError(err),1;if(err instanceof NotDomainOwner)return output_manager_default.error(err.message),1;if(err instanceof DomainNotFound||err instanceof DomainNotVerified||err instanceof NotDomainOwner||err instanceof DomainPermissionDenied||err instanceof DomainVerificationFailed||err instanceof SchemaValidationFailed||err instanceof InvalidDomain||err instanceof DeploymentNotFound||err instanceof BuildsRateLimited||err instanceof DeploymentsRateLimited||err instanceof AliasDomainConfigured||err instanceof MissingBuildScript||err instanceof ConflictingFilePath||err instanceof ConflictingPathSegment||err instanceof ConflictingConfigFiles||err instanceof DeprecatedNowJson)return handleCreateDeployError(err,localConfig),1;if(isAPIError(err)&&err.code==="size_limit_exceeded"){let{sizeLimit=0}=err,message=`File size limit exceeded (${(0,import_bytes.default)(sizeLimit)})`;return error(message),1}return printError(err),1}}async function handleContinueSubcommand(client,telemetryClient){let flagsSpecification=getFlagsSpecification(continueSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),1}let idFlag=parsedArguments.flags["--id"],parsedArchive=parsedArguments.flags["--archive"],errorMessage=parsedArguments.flags["--error"];if(typeof parsedArchive=="string"&&!isValidArchive(parsedArchive))return output_manager_default.error(`Format must be one of: ${import_client.VALID_ARCHIVE_FORMATS.join(", ")}`),1;if(telemetryClient.trackCliOptionArchive(parsedArchive),parsedArchive&&errorMessage!==void 0)return output_manager_default.error(`Cannot use ${param("--archive")} with ${param("--error")}`),1;if(errorMessage!==void 0&&errorMessage.trim()==="")return output_manager_default.error(`${param("--error")} requires an error message`),1;if(!idFlag)return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"missing_id",message:"Missing required --id flag. Provide the deployment ID to continue.",next:[{command:withGlobalFlags(client,"deploy continue --id <deployment-id>"),when:"provide deployment ID"}]},1),1):(output_manager_default.error(`Missing required ${param("--id")} flag. Usage: ${getCommandName("deploy continue --id <deployment-id>")}`),1);let paths=[client.cwd],pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=client.localConfig||readLocalConfig(paths[0]);localConfig&&(client.localConfig=localConfig);let{path:cwd}=pathValidation,link=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:localConfig?.name});if(typeof link=="number")return link;let{org}=link;if(link.repoRoot&&(cwd=link.repoRoot),client.config.currentTeam=org.type==="team"?org.id:void 0,errorMessage!==void 0)try{return await client.fetch(`/deployments/${idFlag}/continue`,{method:"POST",body:{errorMessage}}),output_manager_default.success(`Marked deployment ${idFlag} as errored`),0}catch(error){return printError(error),1}let vercelOutputDir=join4(cwd,".vercel/output");if(link.repoRoot&&link.project.rootDirectory&&(vercelOutputDir=join4(cwd,link.project.rootDirectory,".vercel/output")),!await import_fs_extra4.default.pathExists(vercelOutputDir))return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"prebuilt_not_found",message:'No prebuilt output found in ".vercel/output". Run build first.',next:[{command:withGlobalFlags(client,"build"),when:"generate prebuilt output"},{command:withGlobalFlags(client,`deploy continue --id ${idFlag}`),when:"deploy prebuilt output"}]},1),1):(output_manager_default.error(`No prebuilt output found in ".vercel/output". Run ${getCommandName("build")} to generate a local build.`),1);let deployStamp=stamp_default();return handleContinueDeployment({client,telemetryClient,deploymentId:idFlag,cwd,deployStamp,noWait:!1,org,vercelOutputDir,archive:parsedArchive?"tgz":void 0})}async function handleDefaultDeploy(client,telemetryClient){let flagsSpecification=getFlagsSpecification(deployCommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}telemetryClient.trackCliOptionArchive(parsedArguments.flags["--archive"]),telemetryClient.trackCliOptionEnv(parsedArguments.flags["--env"]),telemetryClient.trackCliOptionBuildEnv(parsedArguments.flags["--build-env"]),telemetryClient.trackCliOptionMeta(parsedArguments.flags["--meta"]),telemetryClient.trackCliFlagPrebuilt(parsedArguments.flags["--prebuilt"]),telemetryClient.trackCliOptionRegions(parsedArguments.flags["--regions"]),telemetryClient.trackCliFlagNoWait(parsedArguments.flags["--no-wait"]),telemetryClient.trackCliFlagDry(parsedArguments.flags["--dry"]),telemetryClient.trackCliFlagYes(parsedArguments.flags["--yes"]),telemetryClient.trackCliOptionTarget(parsedArguments.flags["--target"]),telemetryClient.trackCliFlagProd(parsedArguments.flags["--prod"]),telemetryClient.trackCliFlagTemporary(parsedArguments.flags["--temporary"]),telemetryClient.trackCliFlagSkipDomain(parsedArguments.flags["--skip-domain"]),telemetryClient.trackCliFlagLogs(parsedArguments.flags["--logs"]),telemetryClient.trackCliFlagNoLogs(parsedArguments.flags["--no-logs"]),telemetryClient.trackCliFlagGuidance(parsedArguments.flags["--guidance"]),telemetryClient.trackCliFlagForce(parsedArguments.flags["--force"]),telemetryClient.trackCliFlagWithCache(parsedArguments.flags["--with-cache"]),telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive;"--confirm"in parsedArguments.flags&&(telemetryClient.trackCliFlagConfirm(parsedArguments.flags["--confirm"]),output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArguments.flags["--yes"]=parsedArguments.flags["--confirm"]),"--no-logs"in parsedArguments.flags&&output_manager_default.warn("`--no-logs` is deprecated and now the default behavior."),parsedArguments.args[0]===deployCommand.name&&parsedArguments.args.shift();let paths;parsedArguments.args.length>0?(paths=parsedArguments.args.map(item=>resolve2(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;try{await compileVercelConfig(paths[0])}catch(err){if(err instanceof ConflictingConfigFiles||err instanceof DeprecatedNowJson)return output_manager_default.prettyError(err),1;throw err}let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error,prettyError}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"]||client.nonInteractive;parsedArguments.flags["--name"]&&(output_manager_default.print(`${prependEmoji(`The ${param("--name")} option is deprecated (https://vercel.link/name-flag)`,emoji("warning"))}
20
20
  `),telemetryClient.trackCliOptionName(parsedArguments.flags["--name"])),parsedArguments.flags["--no-clipboard"]&&(output_manager_default.print(`${prependEmoji(`The ${param("--no-clipboard")} option was ignored because it is the default behavior. Please remove it.`,emoji("warning"))}
21
21
  `),telemetryClient.trackCliFlagNoClipboard(!0));let isAnonymous=!client.authConfig.token&&!!parsedArguments.flags["--temporary"];if(!client.authConfig.token&&!isAnonymous)return output_manager_default.prettyError({message:`No existing credentials found. Run ${getCommandName("deploy --temporary")} to create a temporary deployment you can claim later, or ${getCommandName("login")} to log in.`,link:"https://err.sh/vercel/no-credentials-found"}),1;let target=parseTarget({flagName:"target",flags:parsedArguments.flags});if(telemetryClient.trackTargetEnvironment(target),!validateAnonymousTarget(isAnonymous,target))return 1;if(parsedArguments.flags["--skip-domain"]&&target!=="production")return output_manager_default.error("The `--skip-domain` option can only be used with production deployments. Use `--prod` or `--target=production`."),1;let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client.VALID_ARCHIVE_FORMATS.join(", ")}`),1;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
22
22
  `);let cliMeta=parseMeta(parsedArguments.flags["--meta"]),isV0=cliMeta.v0==="true";parsedArguments.flags["--dry"]||getGitExecutable(cwd);let anonymousSetup=await setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun:!!parsedArguments.flags["--dry"]});if(typeof anonymousSetup=="number")return anonymousSetup;isAnonymous=anonymousSetup.isAnonymous;let anonymousLink=anonymousSetup.anonymousLink;anonymousLink&&(target="production");let link=anonymousLink??await ensureLink("deploy",client,cwd,{autoConfirm,projectName:projectNameOrId??parsedArguments.flags["--name"]??localConfig?.name,failIfNotFound:!!projectNameOrId,requireExistingLink:parsedArguments.flags["--dry"],allowOwnerLookupFallback:!0,skipRemoteLookup:!parsedArguments.flags["--dry"],v0:isV0});if(typeof link=="number")return link;let redeployCommand=withGlobalFlags(client,isAnonymous?"deploy --temporary":"deploy"),{org,project}=link,rootDirectory=project.rootDirectory,sourceFilesOutsideRootDirectory=project.sourceFilesOutsideRootDirectory??!0,projectCwd=cwd;link.repoRoot&&(cwd=link.repoRoot);let postDeployGuidanceEnabled=!anonymousLink&&(client.nonInteractive||!asJson)&&isGuidanceEnabled(client,parsedArguments.flags["--guidance"],!0),prebuilt=isAnonymous||!!parsedArguments.flags["--prebuilt"],vercelOutputDir,prebuiltBuild=null;if(prebuilt){vercelOutputDir=join4(cwd,".vercel/output"),link.repoRoot&&link.project.rootDirectory&&(vercelOutputDir=join4(cwd,link.project.rootDirectory,".vercel/output"));let prebuiltExists=await import_fs_extra4.default.pathExists(vercelOutputDir);if(isAnonymous&&!parsedArguments.flags["--prebuilt"]&&!parsedArguments.flags["--dry"]){let buildExitCode=await runImplicitBuild(client,cwd);if(buildExitCode!==0)return buildExitCode;prebuiltExists=await import_fs_extra4.default.pathExists(vercelOutputDir)}if(!prebuiltExists)return error(`The ${param("--prebuilt")} option was used, but no prebuilt output found in ".vercel/output". Run ${getCommandName("build")} to generate a local build.`),1;prebuiltBuild=await getPrebuiltJson(vercelOutputDir);let prebuiltError=prebuiltBuild?.error||prebuiltBuild?.builds?.find(build=>"error"in build)?.error;if(prebuiltError)return output_manager_default.log(`Prebuilt deployment cannot be created because ${getCommandName("build")} failed with error:
23
23
  `),prettyError(prebuiltError),1;let assumedTarget=target||"preview";if(prebuiltBuild?.target&&prebuiltBuild.target!==assumedTarget){let specifyTarget="";return prebuiltBuild.target==="production"&&(specifyTarget=" --prod"),prettyError({message:`The ${param("--prebuilt")} option was used with the target environment "${assumedTarget}", but the prebuilt output found in ".vercel/output" was built with target environment "${prebuiltBuild.target}". Please run ${getCommandName(`--prebuilt${specifyTarget}`)}.`,link:"https://vercel.link/prebuilt-environment-mismatch"}),1}}let orgSlug=isRemoteLookupSkippedLink(link)?void 0:org.slug,contextName=orgSlug??"the linked account",currentTeam=isOwnerLookupUnavailableLink(link)||org.type!=="team"?void 0:org.id;if(client.config.currentTeam=currentTeam,rootDirectory&&await validateRootDirectory(cwd,join4(cwd,rootDirectory),project&&orgSlug?`To change your Project Settings, go to https://vercel.com/${orgSlug}/${project.name}/settings`:"")===!1)return 1;if(rootDirectory){let rootDirectoryPath=join4(cwd,rootDirectory);await compileVercelConfig(rootDirectoryPath);let rootDirectoryConfig=readLocalConfig(rootDirectoryPath);rootDirectoryConfig?(debug(`Read local config from root directory (${rootDirectory})`),localConfig=rootDirectoryConfig):localConfig&&output_manager_default.print(`${prependEmoji(`The ${highlight(localConfig[import_client.fileNameSymbol])} file should be inside of the provided root directory.`,emoji("warning"))}
24
- `)}if(localConfig=localConfig||{},parsedArguments.flags["--dry"])try{let summary=await(0,import_client.inspectDeploymentFiles)({path:cwd,archive:parsedArchive?"tgz":void 0,debug:output_manager_default.isDebugEnabled(),prebuilt,vercelOutputDir,projectName:project.name,rootDirectory,bulkRedirectsPath:localConfig.bulkRedirectsPath}),{resolveDeploymentFrameworkPreset}=await import("../../chunks/resolve-deployment-framework-preset-XF3NJIDS.js"),framework=resolveDeploymentFrameworkPreset({localFramework:localConfig.framework,projectFramework:project.framework});return printDeploymentDryRun(client,summary,framework,asJson||!client.stdout.isTTY),0}catch(err){return printError(err),1}localConfig.name&&output_manager_default.print(`${prependEmoji(`The ${code("name")} property in ${highlight(localConfig[import_client.fileNameSymbol])} is deprecated (https://vercel.link/name-prop)`,emoji("warning"))}
24
+ `)}if(localConfig=localConfig||{},parsedArguments.flags["--dry"])try{let summary=await(0,import_client.inspectDeploymentFiles)({path:cwd,archive:parsedArchive?"tgz":void 0,debug:output_manager_default.isDebugEnabled(),prebuilt,vercelOutputDir,projectName:project.name,rootDirectory,bulkRedirectsPath:localConfig.bulkRedirectsPath}),{resolveDeploymentFrameworkPreset}=await import("../../chunks/resolve-deployment-framework-preset-XF3NJIDS.js"),framework=resolveDeploymentFrameworkPreset({localFramework:localConfig.framework,projectFramework:project.framework});return summary.warning&&printPrebuiltFilePathMapIgnoreWarning(summary.warning,telemetryClient),printDeploymentDryRun(client,summary,framework,asJson||!client.stdout.isTTY),0}catch(err){return printError(err),1}localConfig.name&&output_manager_default.print(`${prependEmoji(`The ${code("name")} property in ${highlight(localConfig[import_client.fileNameSymbol])} is deprecated (https://vercel.link/name-prop)`,emoji("warning"))}
25
25
  `);let isObject=item=>Object.prototype.toString.call(item)==="[object Object]";if(typeof localConfig.env<"u"&&!isObject(localConfig.env))return error(`The ${code("env")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build<"u"){if(!isObject(localConfig.build))return error(`The ${code("build")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build.env<"u"&&!isObject(localConfig.build.env))return error(`The ${code("build.env")} property in ${highlight(localConfig[import_client.fileNameSymbol])} needs to be an object`),1}let meta=Object.assign({},parseMeta(localConfig.meta),cliMeta),gitMetadata=createGitMeta(join4(cwd,project.rootDirectory||""),project);gitMetadata.catch(()=>{});let deploymentEnv=Object.assign({},parseEnv(localConfig.env),parseEnv(parsedArguments.flags["--env"])),deploymentBuildEnv=Object.assign({},parseEnv(localConfig.build&&localConfig.build.env),parseEnv(parsedArguments.flags["--build-env"]));try{await addProcessEnv(log,deploymentEnv),await addProcessEnv(log,deploymentBuildEnv)}catch(err){return error((0,import_error_utils2.errorToString)(err)),1}let regionFlag=(parsedArguments.flags["--regions"]||"").split(",").map(s=>s.trim()).filter(Boolean),regions=regionFlag.length>0?regionFlag:localConfig.regions,now=new Now({client,currentTeam}),deployStamp=stamp_default(),deployment=null,noWait=!!parsedArguments.flags["--no-wait"],withFullLogs=!!parsedArguments.flags["--logs"],localConfigurationOverrides=pickOverrides(localConfig),name=project.name;if(!name)throw new Error("`name` not found on project or provided by existing project");try{let autoAssignCustomDomains=parsedArguments.flags["--skip-domain"]?!1:void 0,createArgs={name,project:project.id,env:deploymentEnv,build:{env:deploymentBuildEnv},forceNew:parsedArguments.flags["--force"],withCache:parsedArguments.flags["--with-cache"],prebuilt,anonymous:isAnonymous,vercelOutputDir,rootDirectory,quiet,nowConfig:{...localConfig,images:void 0},regions,meta,gitMetadata,deployStamp,target,skipAutoDetectionConfirmation:autoConfirm||isAnonymous,noWait,withFullLogs,autoAssignCustomDomains,agentName:client.agentName,jsonOutput:asJson,linkedProject:project,linkedProjectIsPartial:isRemoteLookupSkippedLink(link)};(!localConfig.builds||localConfig.builds.length===0)&&(createArgs.projectSettings={sourceFilesOutsideRootDirectory,rootDirectory,...localConfigurationOverrides});let{packageJson}=await(0,import_build_utils2.findPackageJson)(join4(cwd,project?.rootDirectory??""),!0,cwd),nodeVersion;if(packageJson?.engines?.node)try{let{range}=await(0,import_build_utils2.getSupportedNodeVersion)(packageJson.engines.node);nodeVersion=range}catch(error2){error2 instanceof Error&&output_manager_default.warn(error2.message)}if(createArgs.projectSettings||(createArgs.projectSettings={}),isAnonymous&&!Object.hasOwn(localConfig,"framework")&&createArgs.projectSettings.framework===void 0&&prebuiltBuild?.detectedFramework?.status==="detected"&&prebuiltBuild.detectedFramework.slug&&(createArgs.projectSettings.framework=prebuiltBuild.detectedFramework.slug),createArgs.projectSettings.nodeVersion=nodeVersion,deployment=await createDeploy(client,now,contextName,cwd,createArgs,org,!project,parsedArchive?"tgz":void 0),deployment&&!(deployment instanceof Error)&&telemetryClient.trackDeploymentId(deployment.id),deployment instanceof NotDomainOwner)return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"not_domain_owner",message:deployment.message,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
26
26
  `),1):(output_manager_default.error(deployment.message),1);if(deployment instanceof Error){let msg=deployment.message||"An unexpected error occurred while deploying your project";return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"deploy_failed",message:msg,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
27
27
  `),1):(output_manager_default.error(msg,void 0,"https://vercel.link/help","Contact Support"),1)}if(deployment.readyState==="CANCELED"){if(asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(deployment,client.apiUrl,{name:"DEPLOYMENT_CANCELED",message:"The deployment has been canceled."}),payload=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"deployment_canceled",message:"The deployment has been canceled.",deployment:deploymentJson,next:[{command:redeployCommand,when:"retry deploy"}]}:deploymentJson;client.stdout.write(`${JSON.stringify(payload,null,2)}
@@ -38,12 +38,12 @@ ${err.stack}`);let anonymousExitCode=await handleAnonymousDeploymentError({clien
38
38
  `),error(message),1}return client.nonInteractive&&client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"deploy_failed",message:err instanceof Error?err.message:String(err),next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
39
39
  `),printError(err),1}let gitConnectCommand=postDeployGuidanceEnabled?await getGitConnectRecommendation(client,projectCwd,project,{alreadyOffered:"gitConnectOffered"in link?link.gitConnectOffered:!1}):void 0;if(asJson){output_manager_default.stopSpinner();let anonymousUrl=anonymousLink?deployment.alias?.[0]:void 0,deploymentJson={...getDeploymentOutputJson(deployment,client.apiUrl),...anonymousLink?{expiresAt:anonymousLink.expiresAt,claimUrl:anonymousLink.claimUrl}:{},...anonymousUrl?{url:`https://${anonymousUrl}`,inspectorUrl:null}:{}},isImplicitProduction=deployment.target==="production"&&!target,payload=client.nonInteractive?{status:AGENT_STATUS.OK,deployment:deploymentJson,message:anonymousLink?`Anonymous deployment ${anonymousUrl??deployment.url} ready. It expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it at ${anonymousLink.claimUrl} to keep it.`:`Deployment ${deployment.url} ready.`,...isImplicitProduction?{hint:"This is the project\u2019s first deployment, so it was assigned to production. Future deployments will be preview deployments unless you use --prod."}:{},next:anonymousLink?[{command:redeployCommand,when:"Redeploy changes to the same anonymous deployment"},{command:withGlobalFlags(client,"login"),when:"Create an account to keep deploying"}]:[...gitConnectCommand?[{command:gitConnectCommand,when:"Automatically deploy changes on every push"}]:[],{command:`${packageName} curl https://${deployment.url}`,when:"Verify deployment, including when Deployment Protection is enabled"},{command:withGlobalFlags(client,`inspect ${deployment.url}`),when:"Inspect deployment"},...isImplicitProduction?[]:[{command:withGlobalFlags(client,"deploy --prod"),when:"Promote to production"}]]}:deploymentJson;return client.stdout.write(`${JSON.stringify(payload,null,2)}
40
40
  `),0}return anonymousLink&&(output_manager_default.print(`
41
- `),log(`This deployment expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it to keep it live (don't share this link): ${import_chalk.default.cyan(anonymousLink.claimUrl)}`)),await printDeploymentStatus(client,deployment,deployStamp,noWait,postDeployGuidanceEnabled,void 0,gitConnectCommand)}function handleCreateDeployError(error,localConfig){if(error instanceof InvalidDomain)return output_manager_default.error(`The domain ${error.meta.domain} is not valid`),1;if(error instanceof DomainVerificationFailed)return output_manager_default.error(`The domain used as a suffix ${import_chalk.default.underline(error.meta.domain)} is not verified and can't be used as custom suffix.`),1;if(error instanceof DomainPermissionDenied)return output_manager_default.error(`You don't have permissions to access the domain used as a suffix ${import_chalk.default.underline(error.meta.domain)}.`),1;if(error instanceof SchemaValidationFailed){let niceError=(0,import_build_utils2.getPrettyError)(error.meta),fileName=localConfig[import_client.fileNameSymbol]||"vercel.json";return niceError.message=`Invalid ${fileName} - ${niceError.message}`,output_manager_default.prettyError(niceError),1}if(error instanceof TooManyRequests)return output_manager_default.error(`Too many requests detected for ${error.meta.api} API. Try again in ${(0,import_ms.default)(error.meta.retryAfterMs,{long:!0})}.`),1;if(error instanceof DomainNotVerified)return output_manager_default.error(`The domain used as an alias ${import_chalk.default.underline(error.meta.domain)} is not verified yet. Please verify it.`),1;if(error instanceof BuildsRateLimited){output_manager_default.error(error.message);let cta=getErrorCta(error.meta);return output_manager_default.note(cta?`${cta.label}: ${link_default(cta.url)}`:"Upgrade your plan to increase your builds limit."),1}return error instanceof DeploymentNotFound||error instanceof NotDomainOwner||error instanceof DeploymentsRateLimited||error instanceof AliasDomainConfigured||error instanceof MissingBuildScript||error instanceof ConflictingFilePath||error instanceof ConflictingPathSegment||error instanceof ConflictingConfigFiles||error instanceof DeprecatedNowJson?(output_manager_default.error(error.message),1):error}function printDeploymentDryRun(client,summary,framework,asJson){let directories=getDirectoryDistribution(summary.files),largestFiles=[...summary.files].sort((a,b)=>b.size-a.size||a.path.localeCompare(b.path)).slice(0,10);if(asJson){client.stdout.write(`${JSON.stringify({framework,basePath:summary.basePath,fileCount:summary.fileCount,totalSize:summary.totalSize,ignoredCount:summary.ignoredCount,ignored:summary.ignored,directories,largestFiles,files:summary.files},null,2)}
41
+ `),log(`This deployment expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it to keep it live (don't share this link): ${import_chalk.default.cyan(anonymousLink.claimUrl)}`)),await printDeploymentStatus(client,deployment,deployStamp,noWait,postDeployGuidanceEnabled,void 0,gitConnectCommand)}function handleCreateDeployError(error,localConfig){if(error instanceof InvalidDomain)return output_manager_default.error(`The domain ${error.meta.domain} is not valid`),1;if(error instanceof DomainVerificationFailed)return output_manager_default.error(`The domain used as a suffix ${import_chalk.default.underline(error.meta.domain)} is not verified and can't be used as custom suffix.`),1;if(error instanceof DomainPermissionDenied)return output_manager_default.error(`You don't have permissions to access the domain used as a suffix ${import_chalk.default.underline(error.meta.domain)}.`),1;if(error instanceof SchemaValidationFailed){let niceError=(0,import_build_utils2.getPrettyError)(error.meta),fileName=localConfig[import_client.fileNameSymbol]||"vercel.json";return niceError.message=`Invalid ${fileName} - ${niceError.message}`,output_manager_default.prettyError(niceError),1}if(error instanceof TooManyRequests)return output_manager_default.error(`Too many requests detected for ${error.meta.api} API. Try again in ${(0,import_ms.default)(error.meta.retryAfterMs,{long:!0})}.`),1;if(error instanceof DomainNotVerified)return output_manager_default.error(`The domain used as an alias ${import_chalk.default.underline(error.meta.domain)} is not verified yet. Please verify it.`),1;if(error instanceof BuildsRateLimited){output_manager_default.error(error.message);let cta=getErrorCta(error.meta);return output_manager_default.note(cta?`${cta.label}: ${link_default(cta.url)}`:"Upgrade your plan to increase your builds limit."),1}return error instanceof DeploymentNotFound||error instanceof NotDomainOwner||error instanceof DeploymentsRateLimited||error instanceof AliasDomainConfigured||error instanceof MissingBuildScript||error instanceof ConflictingFilePath||error instanceof ConflictingPathSegment||error instanceof ConflictingConfigFiles||error instanceof DeprecatedNowJson?(output_manager_default.error(error.message),1):error}function printDeploymentDryRun(client,summary,framework,asJson){let directories=getDirectoryDistribution(summary.files),largestFiles=[...summary.files].sort((a,b)=>b.size-a.size||a.path.localeCompare(b.path)).slice(0,10);if(asJson){client.stdout.write(`${JSON.stringify({framework,basePath:summary.basePath,fileCount:summary.fileCount,totalSize:summary.totalSize,ignoredCount:summary.ignoredCount,ignored:summary.ignored,...summary.warning?{warning:{code:"PREBUILT_FILEPATHMAP_IGNORED",message:summary.warning}}:{},directories,largestFiles,files:summary.files},null,2)}
42
42
  `);return}let lines=[`${import_chalk.default.bold("Deployment Dry Run")}
43
43
  `,`${import_chalk.default.bold("Detected Framework Preset")}: ${framework.name}${framework.slug?` (${framework.slug})`:""}`,`Included: ${summary.fileCount} ${pluralize("file",summary.fileCount)}, ${formatBytes(summary.totalSize)}`,`Ignored: ${summary.ignoredCount} ${pluralize("path",summary.ignoredCount)}
44
44
  `];directories.length>0&&lines.push(table([["Path","Files","Size"],...directories.map(item=>[item.path,String(item.fileCount),formatBytes(item.size)])],{align:["l","r","r"],hsep:4}),""),largestFiles.length>0&&lines.push(import_chalk.default.bold("Largest Files"),table(largestFiles.map(file=>[file.path,formatBytes(file.size)]),{align:["l","r"],hsep:4}),""),output_manager_default.print(`${lines.join(`
45
45
  `)}
46
- `)}function getDirectoryDistribution(files){let directories=new Map;for(let file of files){let[segment]=file.path.split("/"),key=file.path.includes("/")?segment:file.path,current=directories.get(key)??{path:key,fileCount:0,size:0};current.fileCount+=1,current.size+=file.size,directories.set(key,current)}return Array.from(directories.values()).sort((a,b)=>b.size-a.size||a.path.localeCompare(b.path))}function formatBytes(size){return import_bytes.default.format(size,{decimalPlaces:1})}function pluralize(word,count){return count===1?word:`${word}s`}var addProcessEnv=async(log,env)=>{let val;for(let key of Object.keys(env))if(!(typeof env[key]<"u"))if(val=process.env[key],typeof val=="string")log(`Reading ${import_chalk.default.bold(`"${import_chalk.default.bold(key)}"`)} from your env (as no value was specified)`),env[key]=val.replace(/^@/,"\\@");else throw new Error(`No value specified for env variable ${import_chalk.default.bold(`"${import_chalk.default.bold(key)}"`)} and it was not found in your env. If you meant to specify an environment to deploy to, use ${param("--target")}`)};async function handleContinueDeployment({client,deploymentId,cwd,deployStamp,noWait,org,vercelOutputDir,archive}){let{debug,error}=output_manager_default;if(debug(`Continuing deployment: ${deploymentId}`),!vercelOutputDir)return error("Could not determine vercel output directory"),1;let token=client.authConfig.token;if(!token)return error("Missing authentication token"),1;output_manager_default.spinner("Continuing deployment\u2026",0);try{let finalDeployment=null;for await(let event of(0,import_client.continueDeployment)({apiUrl:client.apiUrl,debug:output_manager_default.isDebugEnabled(),deploymentId,archive,path:cwd,teamId:org.type==="team"?org.id:void 0,token,vercelOutputDir})){if(debug(`Event: ${event.type}`),event.type==="hashes-calculated"){let hashCount=Object.keys(event.payload).length;debug(`Calculated ${hashCount} hashes`)}if(event.type==="file-count"){let{total,missing}=event.payload;output_manager_default.spinner(`Uploading ${missing.length} of ${total.size} files\u2026`,0)}if(event.type==="file-uploaded"&&debug(`Uploaded: ${event.payload.file.names.join(" ")}`),event.type==="all-files-uploaded"&&output_manager_default.spinner("Continuing deployment\u2026",0),event.type==="created"){finalDeployment=event.payload,output_manager_default.stopSpinner(),finalDeployment.inspectorUrl&&printAlignedLabel("Inspect",import_chalk.default.cyan(finalDeployment.inspectorUrl));let isProdDeployment=finalDeployment.target==="production",previewUrl=`https://${finalDeployment.url}`;if(printAlignedLabel(isProdDeployment?"Production":"Preview",import_chalk.default.cyan(previewUrl),isProdDeployment&&noWait?{gutter:"\u25B2"}:{}),noWait)return printDeploymentStatus(client,finalDeployment,deployStamp,noWait,!1);output_manager_default.spinner("Building\u2026",0)}if(event.type==="building"&&output_manager_default.spinner("Building\u2026",0),event.type==="ready"&&(finalDeployment=event.payload,output_manager_default.stopSpinner()),event.type==="alias-assigned"&&(finalDeployment=event.payload,output_manager_default.stopSpinner(),finalDeployment.target==="production"&&finalDeployment.alias&&finalDeployment.alias.length>0)){let prodUrl=`https://${finalDeployment.alias[0]}`;printAlignedLabel("Aliased",import_chalk.default.cyan(prodUrl),{gutter:"\u25B2"})}if(event.type==="checks-v2-failed")return output_manager_default.stopSpinner(),handleFailedCheckRuns(client,event.payload,!1);if(event.type==="error"){output_manager_default.stopSpinner();let payload=event.payload;return error(payload.message||"An error occurred during deployment"),1}}return finalDeployment?printDeploymentStatus(client,finalDeployment,deployStamp,noWait,!1):(error("Deployment failed: no deployment returned"),1)}catch(err){return output_manager_default.stopSpinner(),(0,import_error_utils2.isError)(err)?(debug(`Error: ${err}
47
- ${err.stack}`),error(err.message)):error("An unexpected error occurred"),1}}function getDeploymentOutputJson(deployment,apiUrl,error){return{id:deployment.id,url:`https://${deployment.url}`,inspectorUrl:deployment.inspectorUrl??null,readyState:deployment.readyState,target:deployment.target??null,deploymentApiUrl:`${apiUrl}/v13/deployments/${deployment.id}`,...error?{error}:{}}}function shouldReconcileFinalDeployment(deployment){return deployment?!!(deployment.readyState!=="READY"||deployment.aliasError||!deployment.aliasAssigned||deployment.checksConclusion==="failed"||deployment.checks?.["deployment-alias"]?.state==="failed"):!1}async function handleFailedCheckRuns(client,deployment,asJson,retryCommand=withGlobalFlags(client,"deploy")){let{runs}=await getDeploymentCheckRuns(client,deployment.id),failedRuns=(runs??[]).filter(run=>run.conclusion==="failed"),counters=new Map;(runs??[]).forEach(r=>{counters.set(r.conclusion,(counters.get(r.conclusion)??0)+1)});let message=`Running Checks: ${Array.from(counters).map(([name,no])=>`${no} ${name}`).join(", ")}`,getCheckRunUrl=run=>run.externalUrl?run.externalUrl:run.detailsUrl?run.detailsUrl:deployment.inspectorUrl?`${deployment.inspectorUrl}?checkRunLog=${encodeURIComponent(run.id)}`:null;if(asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(deployment,client.apiUrl,{name:"CHECKS_FAILED",message}),payload;if(client.nonInteractive){let failedCheckRunsWithLogs=await Promise.all(failedRuns.map(async run=>{let logs=[];try{logs=await getDeploymentCheckRunLogs(client,deployment.id,run.id)}catch{}return{id:run.id,name:run.name,conclusion:run.conclusion,source:run.source,url:getCheckRunUrl(run),logs}}));payload={status:AGENT_STATUS.ERROR,reason:"checks_failed",message,deployment:deploymentJson,failedCheckRuns:failedCheckRunsWithLogs,next:[{command:retryCommand,when:"retry deploy after fixing check failures"}]}}else payload=deploymentJson;client.stdout.write(`${JSON.stringify(payload,null,2)}
46
+ `)}function getDirectoryDistribution(files){let directories=new Map;for(let file of files){let[segment]=file.path.split("/"),key=file.path.includes("/")?segment:file.path,current=directories.get(key)??{path:key,fileCount:0,size:0};current.fileCount+=1,current.size+=file.size,directories.set(key,current)}return Array.from(directories.values()).sort((a,b)=>b.size-a.size||a.path.localeCompare(b.path))}function formatBytes(size){return import_bytes.default.format(size,{decimalPlaces:1})}function pluralize(word,count){return count===1?word:`${word}s`}var addProcessEnv=async(log,env)=>{let val;for(let key of Object.keys(env))if(!(typeof env[key]<"u"))if(val=process.env[key],typeof val=="string")log(`Reading ${import_chalk.default.bold(`"${import_chalk.default.bold(key)}"`)} from your env (as no value was specified)`),env[key]=val.replace(/^@/,"\\@");else throw new Error(`No value specified for env variable ${import_chalk.default.bold(`"${import_chalk.default.bold(key)}"`)} and it was not found in your env. If you meant to specify an environment to deploy to, use ${param("--target")}`)};async function handleContinueDeployment({client,telemetryClient,deploymentId,cwd,deployStamp,noWait,org,vercelOutputDir,archive}){let{debug,error}=output_manager_default;if(debug(`Continuing deployment: ${deploymentId}`),!vercelOutputDir)return error("Could not determine vercel output directory"),1;let token=client.authConfig.token;if(!token)return error("Missing authentication token"),1;output_manager_default.spinner("Continuing deployment\u2026",0);try{let finalDeployment=null,prebuiltFilePathMapWarning;for await(let event of(0,import_client.continueDeployment)({apiUrl:client.apiUrl,debug:output_manager_default.isDebugEnabled(),deploymentId,archive,path:cwd,teamId:org.type==="team"?org.id:void 0,token,vercelOutputDir})){if(debug(`Event: ${event.type}`),event.type==="warning"&&"code"in event&&event.code==="PREBUILT_FILEPATHMAP_IGNORED"){let message=String(event.payload);prebuiltFilePathMapWarning={code:"PREBUILT_FILEPATHMAP_IGNORED",message},printPrebuiltFilePathMapIgnoreWarning(message,telemetryClient),client.stderr.isTTY&&output_manager_default.spinner("Continuing deployment\u2026",0);continue}if(event.type==="hashes-calculated"){let hashCount=Object.keys(event.payload).length;debug(`Calculated ${hashCount} hashes`)}if(event.type==="file-count"){let{total,missing}=event.payload;output_manager_default.spinner(`Uploading ${missing.length} of ${total.size} files\u2026`,0)}if(event.type==="file-uploaded"&&debug(`Uploaded: ${event.payload.file.names.join(" ")}`),event.type==="all-files-uploaded"&&output_manager_default.spinner("Continuing deployment\u2026",0),event.type==="created"){finalDeployment=event.payload,output_manager_default.stopSpinner(),finalDeployment.inspectorUrl&&printAlignedLabel("Inspect",import_chalk.default.cyan(finalDeployment.inspectorUrl));let isProdDeployment=finalDeployment.target==="production",previewUrl=`https://${finalDeployment.url}`;if(printAlignedLabel(isProdDeployment?"Production":"Preview",import_chalk.default.cyan(previewUrl),isProdDeployment&&noWait?{gutter:"\u25B2"}:{}),noWait)return prebuiltFilePathMapWarning&&(finalDeployment.warning=prebuiltFilePathMapWarning),printDeploymentStatus(client,finalDeployment,deployStamp,noWait,!1);output_manager_default.spinner("Building\u2026",0)}if(event.type==="building"&&output_manager_default.spinner("Building\u2026",0),event.type==="ready"&&(finalDeployment=event.payload,output_manager_default.stopSpinner()),event.type==="alias-assigned"&&(finalDeployment=event.payload,output_manager_default.stopSpinner(),finalDeployment.target==="production"&&finalDeployment.alias&&finalDeployment.alias.length>0)){let prodUrl=`https://${finalDeployment.alias[0]}`;printAlignedLabel("Aliased",import_chalk.default.cyan(prodUrl),{gutter:"\u25B2"})}if(event.type==="checks-v2-failed")return output_manager_default.stopSpinner(),handleFailedCheckRuns(client,event.payload,!1);if(event.type==="error"){output_manager_default.stopSpinner();let payload=event.payload;return error(payload.message||"An error occurred during deployment"),1}}return finalDeployment?(prebuiltFilePathMapWarning&&(finalDeployment.warning=prebuiltFilePathMapWarning),printDeploymentStatus(client,finalDeployment,deployStamp,noWait,!1)):(error("Deployment failed: no deployment returned"),1)}catch(err){return output_manager_default.stopSpinner(),(0,import_error_utils2.isError)(err)?(debug(`Error: ${err}
47
+ ${err.stack}`),error(err.message)):error("An unexpected error occurred"),1}}function getDeploymentOutputJson(deployment,apiUrl,error){return{id:deployment.id,url:`https://${deployment.url}`,inspectorUrl:deployment.inspectorUrl??null,readyState:deployment.readyState,target:deployment.target??null,deploymentApiUrl:`${apiUrl}/v13/deployments/${deployment.id}`,...deployment.warning?{warning:deployment.warning}:{},...error?{error}:{}}}function shouldReconcileFinalDeployment(deployment){return deployment?!!(deployment.readyState!=="READY"||deployment.aliasError||!deployment.aliasAssigned||deployment.checksConclusion==="failed"||deployment.checks?.["deployment-alias"]?.state==="failed"):!1}async function handleFailedCheckRuns(client,deployment,asJson,retryCommand=withGlobalFlags(client,"deploy")){let{runs}=await getDeploymentCheckRuns(client,deployment.id),failedRuns=(runs??[]).filter(run=>run.conclusion==="failed"),counters=new Map;(runs??[]).forEach(r=>{counters.set(r.conclusion,(counters.get(r.conclusion)??0)+1)});let message=`Running Checks: ${Array.from(counters).map(([name,no])=>`${no} ${name}`).join(", ")}`,getCheckRunUrl=run=>run.externalUrl?run.externalUrl:run.detailsUrl?run.detailsUrl:deployment.inspectorUrl?`${deployment.inspectorUrl}?checkRunLog=${encodeURIComponent(run.id)}`:null;if(asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(deployment,client.apiUrl,{name:"CHECKS_FAILED",message}),payload;if(client.nonInteractive){let failedCheckRunsWithLogs=await Promise.all(failedRuns.map(async run=>{let logs=[];try{logs=await getDeploymentCheckRunLogs(client,deployment.id,run.id)}catch{}return{id:run.id,name:run.name,conclusion:run.conclusion,source:run.source,url:getCheckRunUrl(run),logs}}));payload={status:AGENT_STATUS.ERROR,reason:"checks_failed",message,deployment:deploymentJson,failedCheckRuns:failedCheckRunsWithLogs,next:[{command:retryCommand,when:"retry deploy after fixing check failures"}]}}else payload=deploymentJson;client.stdout.write(`${JSON.stringify(payload,null,2)}
48
48
  `)}else{output_manager_default.error(message);for(let run of failedRuns){let dashboardUrl=getCheckRunUrl(run),label=dashboardUrl?output_manager_default.link(run.name,dashboardUrl):run.name;output_manager_default.print(` ${import_chalk.default.red("\u2717")} ${label}
49
49
  `)}}return 1}export{deploy_default 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{require_dist as require_dist4}from"../../chunks/chunk-FAW6NBLQ.js";import{displayDetectedServices,readConfig,setupAndLink}from"../../chunks/chunk-NGNOUPWS.js";import"../../chunks/chunk-4PNSSS3L.js";import{tryDetectServices}from"../../chunks/chunk-HSJ6AHWG.js";import"../../chunks/chunk-7RR7MIMT.js";import"../../chunks/chunk-UETTIYUQ.js";import"../../chunks/chunk-QHJLRTVY.js";import{getUpdateCommand}from"../../chunks/chunk-OD6RZ3XZ.js";import"../../chunks/chunk-SGWVKRSR.js";import"../../chunks/chunk-75CPY75D.js";import"../../chunks/chunk-2H77IRPI.js";import"../../chunks/chunk-OHDEHZLX.js";import"../../chunks/chunk-M2W3HKV3.js";import"../../chunks/chunk-PHW54NU5.js";import{highlight}from"../../chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"../../chunks/chunk-ZIPVX7LD.js";import{getLocalPathConfig}from"../../chunks/chunk-NHTF332K.js";import"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{devCommand}from"../../chunks/chunk-JEIMW3CO.js";import{import_write_build_result,require_detect_builders_with_services,require_get_files,require_mime_types,require_service_schedules}from"../../chunks/chunk-UGMZQZJE.js";import{importBuilders,require_npa}from"../../chunks/chunk-EOBD4ZEG.js";import{validateConfig}from"../../chunks/chunk-EOCTK4EA.js";import{require_fast_deep_equal}from"../../chunks/chunk-4MZK6JT6.js";import{require_brace_expansion,require_dist as require_dist2,require_dist2 as require_dist3,require_minimatch}from"../../chunks/chunk-7RMCBXBB.js";import"../../chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"../../chunks/chunk-JIYY3B4C.js";import{pickOverrides,require_dist as require_dist5}from"../../chunks/chunk-ZT6KDLLY.js";import"../../chunks/chunk-NNP5NITU.js";import"../../chunks/chunk-K2RAW5DI.js";import{require_inherits}from"../../chunks/chunk-L3JDEHCQ.js";import{require_main}from"../../chunks/chunk-KNEWCUWF.js";import"../../chunks/chunk-GHM7V3GG.js";import"../../chunks/chunk-QR7QPUFN.js";import"../../chunks/chunk-HBFPLBTX.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{VERCEL_OIDC_TOKEN,pullEnvRecords}from"../../chunks/chunk-OKZDOANA.js";import"../../chunks/chunk-ENS6KX2F.js";import"../../chunks/chunk-L243RUIR.js";import"../../chunks/chunk-ULLWCOYC.js";import{require_frameworks}from"../../chunks/chunk-KK4AJES5.js";import{require_json_parse_better_errors}from"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-CN2QZO4U.js";import"../../chunks/chunk-HZZ5L472.js";import{printProjectNotFoundError}from"../../chunks/chunk-LDM3SQAU.js";import"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-K3KJZLBD.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import"../../chunks/chunk-YV6CTDHR.js";import{help}from"../../chunks/chunk-2B2MN3U5.js";import"../../chunks/chunk-6TAQ6OWD.js";import"../../chunks/chunk-GRNTLNC7.js";import"../../chunks/chunk-G7Y77DFH.js";import"../../chunks/chunk-JYAUUIR4.js";import"../../chunks/chunk-WPS6JZF6.js";import{buildCommandWithYes,outputActionRequired}from"../../chunks/chunk-NS4FH2TY.js";import{detectExplicitScope}from"../../chunks/chunk-5QQNYN4N.js";import{TelemetryClient}from"../../chunks/chunk-57GHYR4Y.js";import"../../chunks/chunk-RCTYVKM5.js";import{parseArguments}from"../../chunks/chunk-HTC6KO2B.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-LNPMDXBJ.js";import{directFetch}from"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-BRK4OB4B.js";import{VERCEL_DIR,findRepoRoot,getLinkedProject,getVercelDirectory,require_lib,require_pluralize,resolveProjectCwd}from"../../chunks/chunk-VLZ47RWM.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-XSVBYDYI.js";import"../../chunks/chunk-EVZRQGNK.js";import{CantParseJSONFile,LambdaSizeExceededError,MissingDotenvVarsError,NowError,require_bytes}from"../../chunks/chunk-R2TGGVCT.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName,packageName}from"../../chunks/chunk-FI772UVH.js";import{require_build_utils}from"../../chunks/chunk-XFVGX5HG.js";import{link_default,output_manager_default}from"../../chunks/chunk-Z6Y55QJW.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import{pkg_default}from"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import{require_supports_color}from"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"../../chunks/chunk-6L236MNA.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{require_dist as require_dist4}from"../../chunks/chunk-FAW6NBLQ.js";import{displayDetectedServices,readConfig,setupAndLink}from"../../chunks/chunk-NGNOUPWS.js";import"../../chunks/chunk-4PNSSS3L.js";import{tryDetectServices}from"../../chunks/chunk-HSJ6AHWG.js";import"../../chunks/chunk-7RR7MIMT.js";import"../../chunks/chunk-UETTIYUQ.js";import"../../chunks/chunk-QHJLRTVY.js";import{getUpdateCommand}from"../../chunks/chunk-OD6RZ3XZ.js";import"../../chunks/chunk-SGWVKRSR.js";import"../../chunks/chunk-75CPY75D.js";import"../../chunks/chunk-2H77IRPI.js";import"../../chunks/chunk-OHDEHZLX.js";import"../../chunks/chunk-M2W3HKV3.js";import"../../chunks/chunk-PHW54NU5.js";import{highlight}from"../../chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"../../chunks/chunk-ZIPVX7LD.js";import{getLocalPathConfig}from"../../chunks/chunk-NHTF332K.js";import"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{devCommand}from"../../chunks/chunk-JEIMW3CO.js";import{import_write_build_result,require_detect_builders_with_services,require_get_files,require_mime_types,require_service_schedules}from"../../chunks/chunk-D3EHMP4U.js";import{importBuilders,require_npa}from"../../chunks/chunk-EOBD4ZEG.js";import{validateConfig}from"../../chunks/chunk-EOCTK4EA.js";import{require_fast_deep_equal}from"../../chunks/chunk-4MZK6JT6.js";import{require_brace_expansion,require_dist as require_dist2,require_dist2 as require_dist3,require_minimatch}from"../../chunks/chunk-7RMCBXBB.js";import"../../chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"../../chunks/chunk-JIYY3B4C.js";import{pickOverrides,require_dist as require_dist5}from"../../chunks/chunk-562OXD3F.js";import"../../chunks/chunk-NNP5NITU.js";import"../../chunks/chunk-K2RAW5DI.js";import{require_inherits}from"../../chunks/chunk-L3JDEHCQ.js";import{require_main}from"../../chunks/chunk-KNEWCUWF.js";import"../../chunks/chunk-GHM7V3GG.js";import"../../chunks/chunk-QR7QPUFN.js";import"../../chunks/chunk-HBFPLBTX.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{VERCEL_OIDC_TOKEN,pullEnvRecords}from"../../chunks/chunk-OKZDOANA.js";import"../../chunks/chunk-ENS6KX2F.js";import"../../chunks/chunk-L243RUIR.js";import"../../chunks/chunk-ULLWCOYC.js";import{require_frameworks}from"../../chunks/chunk-KK4AJES5.js";import{require_json_parse_better_errors}from"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-CN2QZO4U.js";import"../../chunks/chunk-HZZ5L472.js";import{printProjectNotFoundError}from"../../chunks/chunk-LDM3SQAU.js";import"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-K3KJZLBD.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import"../../chunks/chunk-YV6CTDHR.js";import{help}from"../../chunks/chunk-2B2MN3U5.js";import"../../chunks/chunk-6TAQ6OWD.js";import"../../chunks/chunk-GRNTLNC7.js";import"../../chunks/chunk-G7Y77DFH.js";import"../../chunks/chunk-JYAUUIR4.js";import"../../chunks/chunk-WPS6JZF6.js";import{buildCommandWithYes,outputActionRequired}from"../../chunks/chunk-NS4FH2TY.js";import{detectExplicitScope}from"../../chunks/chunk-5QQNYN4N.js";import{TelemetryClient}from"../../chunks/chunk-57GHYR4Y.js";import"../../chunks/chunk-RCTYVKM5.js";import{parseArguments}from"../../chunks/chunk-HTC6KO2B.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-LNPMDXBJ.js";import{directFetch}from"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-BRK4OB4B.js";import{VERCEL_DIR,findRepoRoot,getLinkedProject,getVercelDirectory,require_lib,require_pluralize,resolveProjectCwd}from"../../chunks/chunk-VLZ47RWM.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-XSVBYDYI.js";import"../../chunks/chunk-EVZRQGNK.js";import{CantParseJSONFile,LambdaSizeExceededError,MissingDotenvVarsError,NowError,require_bytes}from"../../chunks/chunk-R2TGGVCT.js";import{cmd,getCommandName,getCommandNamePlain,getTitleName,packageName}from"../../chunks/chunk-FI772UVH.js";import{require_build_utils}from"../../chunks/chunk-XFVGX5HG.js";import{link_default,output_manager_default}from"../../chunks/chunk-Z6Y55QJW.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import{pkg_default}from"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import{require_supports_color}from"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__commonJS,__require,__toESM}from"../../chunks/chunk-6L236MNA.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{resolveScope}from"./chunks/chunk-CUAIEGNE.js";import{computeGranularity,formatText,generateSparkline,toGranularityMsFromDuration}from"./chunks/chunk-OK3S6KFX.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-4NE5IQ25.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-RKAUVPOQ.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-EE3FVJLV.js";import{canPrompt}from"./chunks/chunk-XD2LZRBS.js";import{getRollupColumnName,handleApiError}from"./chunks/chunk-G5FC5ZCO.js";import{collectBuildLogs,displayBuildLogs,displayRuntimeLogs}from"./chunks/chunk-HVUHCRZB.js";import{addDomain,createCertForCns,extractDomain,getDomainByName,isWildcardAlias,require_cjs,setupDomain}from"./chunks/chunk-MAVRGZQP.js";import{collectContactInformation,getDomainPrice,getDomainStatus,pollForOrder,purchaseDomain}from"./chunks/chunk-3IAQUNQH.js";import"./chunks/chunk-IVSSTHB6.js";import{formatDate,formatDateWithoutTime}from"./chunks/chunk-6PFC3KWQ.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{require_format}from"./chunks/chunk-WRILLB46.js";import{normalizeRepeatableStringFilters,outputError,parseTimeFlag,resolveTimeRange,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-6RIQPTJA.js";import{CURL_INSTALL_COMMAND,executeNativeSelfUpdate,getLinkedVersion,getPinnedVersion,getPrBuildSha,installAndLinkPrBinary,installAndLinkVersion,isCurlInstall,listAvailableVersions,listInstalledVersions,parsePrTarget,require_tar_fs,setPinnedVersion}from"./chunks/chunk-YKZLKOOD.js";import{api,tryOpenApiFallback}from"./chunks/chunk-EGMJRU5P.js";import"./chunks/chunk-GHAY4PSD.js";import{login}from"./chunks/chunk-QGIGNMII.js";import{applyEdits,init_main,modify,parse,printParseErrorCode}from"./chunks/chunk-UXTHEQVJ.js";import{selectOrg}from"./chunks/chunk-UETTIYUQ.js";import{createProject}from"./chunks/chunk-QHJLRTVY.js";import{box,did_you_mean_default,executeUpgrade,isAutoUpdateEnabled,setAutoUpdate}from"./chunks/chunk-ADUYPK2G.js";import{OpenApiCache,resolveOpenApiTagForProjectsCli,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-RAIBQIKB.js";import{getUpdateCommand,getUpdateCommandInfo,isGlobal}from"./chunks/chunk-OD6RZ3XZ.js";import{Now,isDeploying,printDeploymentStatus}from"./chunks/chunk-TXELFFNK.js";import{require_jsonlines}from"./chunks/chunk-M2XARQBF.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-75CPY75D.js";import"./chunks/chunk-2H77IRPI.js";import"./chunks/chunk-OHDEHZLX.js";import"./chunks/chunk-M2W3HKV3.js";import"./chunks/chunk-PHW54NU5.js";import"./chunks/chunk-U56NHYAH.js";import{persistAuthConfig,readLocalConfig,writeToConfigFile}from"./chunks/chunk-2PPXY24N.js";import"./chunks/chunk-TRTEXGVN.js";import{sleep}from"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"./chunks/chunk-ZIPVX7LD.js";import"./chunks/chunk-NHTF332K.js";import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,pickCustomEnvironment,readStandardInput,require_dist as require_dist4}from"./chunks/chunk-COQGD2EI.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{ellipsis}from"./chunks/chunk-ZDX75YNZ.js";import{formatTable}from"./chunks/chunk-NUGLE4QY.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-MBL6TXEJ.js";import{isGuidanceEnabled}from"./chunks/chunk-6YAADRQB.js";import{getPaginationOpts,isValidName}from"./chunks/chunk-ZXE4XYIV.js";import{getCommandFlags}from"./chunks/chunk-OUHPDA7Q.js";import{formatEnvironment}from"./chunks/chunk-4QX77CP7.js";import{validateLsArgs}from"./chunks/chunk-3TXEXPUW.js";import{validateJsonOutput,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import{getSubcommand as getSubcommand5}from"./chunks/chunk-ETV3C2CV.js";import{CREDIT_TYPE_LABELS,FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_GRANULARITIES,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,PROJECT_MEMBER_ROLES,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,apiKeysSubcommand,approveSubcommand,archiveSubcommand,attachSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,autoRenewSubcommand,autoupdateSubcommand,backupsSubcommand,balanceSubcommand,bisectCommand,blobCommand,budgetsDefaultsListSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,budgetsSetSubcommand,budgetsSubcommand,buyCommand,buySubcommand,cacheCommand,categoriesSubcommand,certsCommand,changelogCommand,checkSubcommand,checkSubcommand2,checksAddFlags,checksRemoveFlags,checksSubcommand,claimSubcommand,codingAgentsSubcommand,completeSubcommand,configureSubcommand,connectSubcommand,connectSubcommand2,connectSubcommand3,connexCommand,contactsAddSubcommand,contactsSubcommand,contractCommand,copySubcommand,createGroupSubcommand,createStoreSubcommand,createSubcommand,createSubcommand2,createSubcommand3,createSubcommand4,createSubcommand5 as createSubcommand6,createThresholdSubcommand,creditsSubcommand,cronsCommand,curlCommand,dangerouslyDeleteSubcommand,delSubcommand,deleteGroupSubcommand,deleteStoreSubcommand,deployHooksCommand,detachSubcommand,diffSubcommand,disableSubcommand,disableSubcommand2,disableSubcommand3 as disableSubcommand4,discardSubcommand,disconnectSubcommand,disconnectSubcommand2,disconnectSubcommand3,discoverSubcommand,dnsCommand,domainSubcommand,domainsCommand,emptyStoreSubcommand,enableSubcommand,enableSubcommand2,enableSubcommand3 as enableSubcommand4,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,fetchSubcommand,firewallCommand,flagsCommand,flushSubcommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getFlagAttributeType,getStoreInfoSubcommand,getSubcommand,getSubcommand2 as getSubcommand3,getSubcommand3 as getSubcommand4,gitCommand,globalConfigCommand,guidanceCommand,guideSubcommand,httpstatCommand,importKeySubcommand,importSubcommand,importSubcommand2,initCommand,inspectCommand,inspectGroupSubcommand,inspectSubcommand,inspectSubcommand2,inspectSubcommand3 as inspectSubcommand5,inspectSubcommand4 as inspectSubcommand6,inspectSubcommand5 as inspectSubcommand7,inspectSubcommand6 as inspectSubcommand8,inspectSubcommand7 as inspectSubcommand9,inspectSubcommand8 as inspectSubcommand10,installCommand,installationsSubcommand,installedSubcommand,integrationCommand,integrationResourceCommand,invalidateSubcommand,inviteSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isCustomEnvironmentAddonAlias,isFlagAttributeType,isFlagEvaluationsGranularity,isProjectGrant,isTimestampAttributeType,issueSubcommand,issuerJwksUrl,issuerUrl,itemsSubcommand,kmsCommand,leaderboardAppsSubcommand,leaderboardLabsSubcommand,leaderboardModelsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,listStoresSubcommand,listSubcommand,listSubcommand10 as listSubcommand12,listSubcommand11 as listSubcommand13,listSubcommand12 as listSubcommand14,listSubcommand13 as listSubcommand15,listSubcommand14 as listSubcommand16,listSubcommand15 as listSubcommand17,listSubcommand16 as listSubcommand19,listSubcommand17 as listSubcommand20,listSubcommand18 as listSubcommand21,listSubcommand19 as listSubcommand23,listSubcommand2,listSubcommand20 as listSubcommand24,listSubcommand21 as listSubcommand25,listSubcommand3 as listSubcommand4,listSubcommand4 as listSubcommand5,listSubcommand5 as listSubcommand7,listSubcommand6 as listSubcommand8,listSubcommand7 as listSubcommand9,listSubcommand8 as listSubcommand10,listSubcommand9 as listSubcommand11,listVersionsSubcommand,logoutCommand,mcpCommand,membersAddFlags,membersRemoveFlags,membersSubcommand,membersSubcommand2,microfrontendsCommand,modelsEndpointsSubcommand,modelsListSubcommand,modelsSubcommand,moveSubcommand,observabilitySubcommand,openCommand,openSubcommand as openSubcommand2,openSubcommand2 as openSubcommand3,openSubcommand3 as openSubcommand4,overrideSubcommand,overviewSubcommand,pauseSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,prepareSubcommand,presignSubcommand,priceSubcommand,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,removeSubcommand2,removeSubcommand3,removeSubcommand4,removeSubcommand5,removeSubcommand6,removeSubcommand7,removeSubcommand8,removeSubcommand9,renameSubcommand,renewSubcommand,requestSubcommand,resourceSubcommand,restoreSubcommand,resumeSubcommand,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,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,searchSubcommand,searchSubcommand2,securityCommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setSubcommand,setSubcommand2,setupSubcommand,signedTokenSubcommand,skillsCommand,speedInsightsSubcommand,splitSubcommand,ssoSubcommand,staleSubcommand,startSubcommand,statusSubcommand,statusSubcommand2,statusSubcommand3,statusSubcommand4,statusSubcommand5,statusSubcommand6,storageCommand,switchSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetCommand,teamsCommand,telemetryCommand,tokenSubcommand,tokenSubcommand2,tokensCommand,tokensSubcommand,traceSubcommand,transferInSubcommand,unarchiveSubcommand,updateGrantSubcommand,updateSubcommand,updateSubcommand2,updateSubcommand3,updateSubcommand4,updateSubcommand5,updateSubcommand6,updateSubcommand7,updateSubcommand8,updateSubcommand9,upgradeCommand,uploadSubcommand,usageCommand,useSubcommand,useTargetingSubcommand,verifySubcommand,versionCommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand,webAnalyticsSubcommand,webhooksCommand,whoamiCommand}from"./chunks/chunk-BATE73HA.js";import{addSubcommand as addSubcommand13,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand12,listSubcommand as listSubcommand22,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand16,vcrCommand}from"./chunks/chunk-3QT7VOE3.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-O7G3CZ42.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-N3N5UHIL.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-YMVDWVMO.js";import{createSubcommand as createSubcommand5,getSubcommand as getSubcommand2,tracesCommand}from"./chunks/chunk-M5AV545M.js";import{tracesConfigCommand}from"./chunks/chunk-IVWPQYIH.js";import{addSubcommand as addSubcommand10,deleteSubcommand as deleteSubcommand2,disableSubcommand as disableSubcommand3,discardSubcommand as discardSubcommand2,editSubcommand as editSubcommand2,enableSubcommand as enableSubcommand3,exportSubcommand,inspectSubcommand as inspectSubcommand11,listSubcommand as listSubcommand18,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand as publishSubcommand2,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-3QHJYVCY.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand6,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-NBVY237X.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-WUZD4KBL.js";import{logsCommand}from"./chunks/chunk-MEAY2K5Z.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-EQ52F4LH.js";import{alertsCommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand3}from"./chunks/chunk-7R5FEXZ5.js";import{rulesAddSubcommand as rulesAddSubcommand2,rulesAggregateCommand,rulesInspectSubcommand,rulesLsSubcommand,rulesRmSubcommand,rulesSchemaSubcommand,rulesUpdateSubcommand}from"./chunks/chunk-FKCOBJFH.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-JEIMW3CO.js";import"./chunks/chunk-ZKYS7EAB.js";import{dump,load,main}from"./chunks/chunk-FVGESGJI.js";import{require_fast_deep_equal}from"./chunks/chunk-4MZK6JT6.js";import{require_dist2}from"./chunks/chunk-7RMCBXBB.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-JIYY3B4C.js";import{require_dist as require_dist3}from"./chunks/chunk-ZT6KDLLY.js";import"./chunks/chunk-NNP5NITU.js";import"./chunks/chunk-K2RAW5DI.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-KNEWCUWF.js";import"./chunks/chunk-GHM7V3GG.js";import{VERCEL_CONFIG_EXTENSIONS}from"./chunks/chunk-QR7QPUFN.js";import{autoInstallVercelPlugin}from"./chunks/chunk-TJCIHDPZ.js";import{require_execa}from"./chunks/chunk-HBFPLBTX.js";import{stamp_default}from"./chunks/chunk-XPXOV5UO.js";import"./chunks/chunk-2I64AYHG.js";import"./chunks/chunk-SOJCELXH.js";import{elapsed}from"./chunks/chunk-JZRMH5UA.js";import{require_ms}from"./chunks/chunk-QTKJC2O5.js";import{createEnvObject,envPullCommandLogic,pull}from"./chunks/chunk-OKZDOANA.js";import{resolveProjectContext}from"./chunks/chunk-ENS6KX2F.js";import"./chunks/chunk-L243RUIR.js";import{require_open}from"./chunks/chunk-ULLWCOYC.js";import{require_frameworks}from"./chunks/chunk-KK4AJES5.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-CN2QZO4U.js";import{ensureLink}from"./chunks/chunk-HZZ5L472.js";import"./chunks/chunk-LDM3SQAU.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS}from"./chunks/chunk-ENBTTYJR.js";import"./chunks/chunk-XQ73QIQ3.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-K3KJZLBD.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"./chunks/chunk-YV6CTDHR.js";import{buildCommandDocumentationLines,help}from"./chunks/chunk-2B2MN3U5.js";import{table}from"./chunks/chunk-6TAQ6OWD.js";import"./chunks/chunk-GRNTLNC7.js";import{getDeployment,toHost}from"./chunks/chunk-G7Y77DFH.js";import{mapCertError}from"./chunks/chunk-JYAUUIR4.js";import"./chunks/chunk-WPS6JZF6.js";import{argvHasNonInteractive,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,exitWithNonInteractiveError,openUrlInBrowserCommand,outputActionRequired,outputAgentError,outputAgentSuccess,quoteArg,shouldEmitNonInteractiveCommandError,withGlobalFlags}from"./chunks/chunk-NS4FH2TY.js";import{detectExplicitScope,getScope}from"./chunks/chunk-5QQNYN4N.js";import{TelemetryClient}from"./chunks/chunk-57GHYR4Y.js";import"./chunks/chunk-RCTYVKM5.js";import{parseArguments}from"./chunks/chunk-HTC6KO2B.js";import{processRevocationResponse,revocationRequest,ua_default}from"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-LNPMDXBJ.js";import{fetch as fetch2,getFetchDispatcher,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import"./chunks/chunk-BRK4OB4B.js";import{getGitConfigPath,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getProjectLink,getVercelDirectory,parseGitConfig,pluckRemoteUrls,require_lib,require_pluralize,resolveProjectCwd}from"./chunks/chunk-VLZ47RWM.js";import"./chunks/chunk-F2ZWW2IO.js";import"./chunks/chunk-B4ATVYZW.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{require_strip_ansi}from"./chunks/chunk-OSCCYU74.js";import{arg_common_default,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags,globalCommandOptions,stripSensitiveAuthArgs}from"./chunks/chunk-JAJW3P42.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-XSVBYDYI.js";import{getTeamByIdOrSlug,getUser}from"./chunks/chunk-EVZRQGNK.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,LinkRequiredError,NoAliasInConfig,NowError,ProjectNotFound,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnexpectedDomainTransferError,UnsupportedTLD,UserAborted,code,isAPIError,require_bytes}from"./chunks/chunk-R2TGGVCT.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib as require_lib2}from"./chunks/chunk-FI772UVH.js";import"./chunks/chunk-XFVGX5HG.js";import{chars_default,emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-Z6Y55QJW.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__require,__toESM}from"./chunks/chunk-6L236MNA.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{resolveScope}from"./chunks/chunk-CUAIEGNE.js";import{computeGranularity,formatText,generateSparkline,toGranularityMsFromDuration}from"./chunks/chunk-OK3S6KFX.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-4NE5IQ25.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-RKAUVPOQ.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-EE3FVJLV.js";import{canPrompt}from"./chunks/chunk-XD2LZRBS.js";import{getRollupColumnName,handleApiError}from"./chunks/chunk-G5FC5ZCO.js";import{collectBuildLogs,displayBuildLogs,displayRuntimeLogs}from"./chunks/chunk-HVUHCRZB.js";import{addDomain,createCertForCns,extractDomain,getDomainByName,isWildcardAlias,require_cjs,setupDomain}from"./chunks/chunk-MAVRGZQP.js";import{collectContactInformation,getDomainPrice,getDomainStatus,pollForOrder,purchaseDomain}from"./chunks/chunk-3IAQUNQH.js";import"./chunks/chunk-IVSSTHB6.js";import{formatDate,formatDateWithoutTime}from"./chunks/chunk-6PFC3KWQ.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{require_format}from"./chunks/chunk-WRILLB46.js";import{normalizeRepeatableStringFilters,outputError,parseTimeFlag,resolveTimeRange,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-6RIQPTJA.js";import{CURL_INSTALL_COMMAND,executeNativeSelfUpdate,getLinkedVersion,getPinnedVersion,getPrBuildSha,installAndLinkPrBinary,installAndLinkVersion,isCurlInstall,listAvailableVersions,listInstalledVersions,parsePrTarget,require_tar_fs,setPinnedVersion}from"./chunks/chunk-YKZLKOOD.js";import{api,tryOpenApiFallback}from"./chunks/chunk-EGMJRU5P.js";import"./chunks/chunk-GHAY4PSD.js";import{login}from"./chunks/chunk-QGIGNMII.js";import{applyEdits,init_main,modify,parse,printParseErrorCode}from"./chunks/chunk-UXTHEQVJ.js";import{selectOrg}from"./chunks/chunk-UETTIYUQ.js";import{createProject}from"./chunks/chunk-QHJLRTVY.js";import{box,did_you_mean_default,executeUpgrade,isAutoUpdateEnabled,setAutoUpdate}from"./chunks/chunk-ADUYPK2G.js";import{OpenApiCache,resolveOpenApiTagForProjectsCli,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-RAIBQIKB.js";import{getUpdateCommand,getUpdateCommandInfo,isGlobal}from"./chunks/chunk-OD6RZ3XZ.js";import{Now,isDeploying,printDeploymentStatus}from"./chunks/chunk-AUGK2HIT.js";import{require_jsonlines}from"./chunks/chunk-M2XARQBF.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-75CPY75D.js";import"./chunks/chunk-2H77IRPI.js";import"./chunks/chunk-OHDEHZLX.js";import"./chunks/chunk-M2W3HKV3.js";import"./chunks/chunk-PHW54NU5.js";import"./chunks/chunk-U56NHYAH.js";import{persistAuthConfig,readLocalConfig,writeToConfigFile}from"./chunks/chunk-2PPXY24N.js";import"./chunks/chunk-TRTEXGVN.js";import{sleep}from"./chunks/chunk-T3GQAMBJ.js";import"./chunks/chunk-T52FMXWC.js";import"./chunks/chunk-J3U3L45Y.js";import{getGlobalPathConfig}from"./chunks/chunk-ZIPVX7LD.js";import"./chunks/chunk-NHTF332K.js";import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,pickCustomEnvironment,readStandardInput,require_dist as require_dist4}from"./chunks/chunk-COQGD2EI.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{ellipsis}from"./chunks/chunk-ZDX75YNZ.js";import{formatTable}from"./chunks/chunk-NUGLE4QY.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-MBL6TXEJ.js";import{isGuidanceEnabled}from"./chunks/chunk-6YAADRQB.js";import{getPaginationOpts,isValidName}from"./chunks/chunk-ZXE4XYIV.js";import{getCommandFlags}from"./chunks/chunk-OUHPDA7Q.js";import{formatEnvironment}from"./chunks/chunk-4QX77CP7.js";import{validateLsArgs}from"./chunks/chunk-3TXEXPUW.js";import{validateJsonOutput,wantsMachineReadableOutput}from"./chunks/chunk-D4MW3RDW.js";import"./chunks/chunk-P2O5DOYE.js";import{getSubcommand as getSubcommand5}from"./chunks/chunk-ETV3C2CV.js";import{CREDIT_TYPE_LABELS,FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_GRANULARITIES,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,PROJECT_MEMBER_ROLES,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,apiKeysSubcommand,approveSubcommand,archiveSubcommand,attachSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,autoRenewSubcommand,autoupdateSubcommand,backupsSubcommand,balanceSubcommand,bisectCommand,blobCommand,budgetsDefaultsListSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,budgetsSetSubcommand,budgetsSubcommand,buyCommand,buySubcommand,cacheCommand,categoriesSubcommand,certsCommand,changelogCommand,checkSubcommand,checkSubcommand2,checksAddFlags,checksRemoveFlags,checksSubcommand,claimSubcommand,codingAgentsSubcommand,completeSubcommand,configureSubcommand,connectSubcommand,connectSubcommand2,connectSubcommand3,connexCommand,contactsAddSubcommand,contactsSubcommand,contractCommand,copySubcommand,createGroupSubcommand,createStoreSubcommand,createSubcommand,createSubcommand2,createSubcommand3,createSubcommand4,createSubcommand5 as createSubcommand6,createThresholdSubcommand,creditsSubcommand,cronsCommand,curlCommand,dangerouslyDeleteSubcommand,delSubcommand,deleteGroupSubcommand,deleteStoreSubcommand,deployHooksCommand,detachSubcommand,diffSubcommand,disableSubcommand,disableSubcommand2,disableSubcommand3 as disableSubcommand4,discardSubcommand,disconnectSubcommand,disconnectSubcommand2,disconnectSubcommand3,discoverSubcommand,dnsCommand,domainSubcommand,domainsCommand,emptyStoreSubcommand,enableSubcommand,enableSubcommand2,enableSubcommand3 as enableSubcommand4,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,fetchSubcommand,firewallCommand,flagsCommand,flushSubcommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getFlagAttributeType,getStoreInfoSubcommand,getSubcommand,getSubcommand2 as getSubcommand3,getSubcommand3 as getSubcommand4,gitCommand,globalConfigCommand,guidanceCommand,guideSubcommand,httpstatCommand,importKeySubcommand,importSubcommand,importSubcommand2,initCommand,inspectCommand,inspectGroupSubcommand,inspectSubcommand,inspectSubcommand2,inspectSubcommand3 as inspectSubcommand5,inspectSubcommand4 as inspectSubcommand6,inspectSubcommand5 as inspectSubcommand7,inspectSubcommand6 as inspectSubcommand8,inspectSubcommand7 as inspectSubcommand9,inspectSubcommand8 as inspectSubcommand10,installCommand,installationsSubcommand,installedSubcommand,integrationCommand,integrationResourceCommand,invalidateSubcommand,inviteSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isCustomEnvironmentAddonAlias,isFlagAttributeType,isFlagEvaluationsGranularity,isProjectGrant,isTimestampAttributeType,issueSubcommand,issuerJwksUrl,issuerUrl,itemsSubcommand,kmsCommand,leaderboardAppsSubcommand,leaderboardLabsSubcommand,leaderboardModelsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,listStoresSubcommand,listSubcommand,listSubcommand10 as listSubcommand12,listSubcommand11 as listSubcommand13,listSubcommand12 as listSubcommand14,listSubcommand13 as listSubcommand15,listSubcommand14 as listSubcommand16,listSubcommand15 as listSubcommand17,listSubcommand16 as listSubcommand19,listSubcommand17 as listSubcommand20,listSubcommand18 as listSubcommand21,listSubcommand19 as listSubcommand23,listSubcommand2,listSubcommand20 as listSubcommand24,listSubcommand21 as listSubcommand25,listSubcommand3 as listSubcommand4,listSubcommand4 as listSubcommand5,listSubcommand5 as listSubcommand7,listSubcommand6 as listSubcommand8,listSubcommand7 as listSubcommand9,listSubcommand8 as listSubcommand10,listSubcommand9 as listSubcommand11,listVersionsSubcommand,logoutCommand,mcpCommand,membersAddFlags,membersRemoveFlags,membersSubcommand,membersSubcommand2,microfrontendsCommand,modelsEndpointsSubcommand,modelsListSubcommand,modelsSubcommand,moveSubcommand,observabilitySubcommand,openCommand,openSubcommand as openSubcommand2,openSubcommand2 as openSubcommand3,openSubcommand3 as openSubcommand4,overrideSubcommand,overviewSubcommand,pauseSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,prepareSubcommand,presignSubcommand,priceSubcommand,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,removeSubcommand2,removeSubcommand3,removeSubcommand4,removeSubcommand5,removeSubcommand6,removeSubcommand7,removeSubcommand8,removeSubcommand9,renameSubcommand,renewSubcommand,requestSubcommand,resourceSubcommand,restoreSubcommand,resumeSubcommand,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,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,searchSubcommand,searchSubcommand2,securityCommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setSubcommand,setSubcommand2,setupSubcommand,signedTokenSubcommand,skillsCommand,speedInsightsSubcommand,splitSubcommand,ssoSubcommand,staleSubcommand,startSubcommand,statusSubcommand,statusSubcommand2,statusSubcommand3,statusSubcommand4,statusSubcommand5,statusSubcommand6,storageCommand,switchSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetCommand,teamsCommand,telemetryCommand,tokenSubcommand,tokenSubcommand2,tokensCommand,tokensSubcommand,traceSubcommand,transferInSubcommand,unarchiveSubcommand,updateGrantSubcommand,updateSubcommand,updateSubcommand2,updateSubcommand3,updateSubcommand4,updateSubcommand5,updateSubcommand6,updateSubcommand7,updateSubcommand8,updateSubcommand9,upgradeCommand,uploadSubcommand,usageCommand,useSubcommand,useTargetingSubcommand,verifySubcommand,versionCommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand,webAnalyticsSubcommand,webhooksCommand,whoamiCommand}from"./chunks/chunk-BATE73HA.js";import{addSubcommand as addSubcommand13,buildSubcommand,configSubcommand,inspectSubcommand as inspectSubcommand12,listSubcommand as listSubcommand22,loginSubcommand,pushSubcommand,removeSubcommand as removeSubcommand16,vcrCommand}from"./chunks/chunk-3QT7VOE3.js";import{tagsAggregateCommand,tagsInspectSubcommand,tagsLsSubcommand}from"./chunks/chunk-O7G3CZ42.js";import{imageAggregateCommand,imageInspectSubcommand,imageLsSubcommand,imageRmSubcommand}from"./chunks/chunk-N3N5UHIL.js";import{PERMISSIONS_ACTIONS,permissionsAddSubcommand,permissionsAggregateCommand,permissionsClearSubcommand,permissionsLsSubcommand,permissionsRmSubcommand}from"./chunks/chunk-YMVDWVMO.js";import{createSubcommand as createSubcommand5,getSubcommand as getSubcommand2,tracesCommand}from"./chunks/chunk-M5AV545M.js";import{tracesConfigCommand}from"./chunks/chunk-IVWPQYIH.js";import{addSubcommand as addSubcommand10,deleteSubcommand as deleteSubcommand2,disableSubcommand as disableSubcommand3,discardSubcommand as discardSubcommand2,editSubcommand as editSubcommand2,enableSubcommand as enableSubcommand3,exportSubcommand,inspectSubcommand as inspectSubcommand11,listSubcommand as listSubcommand18,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand as publishSubcommand2,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-3QHJYVCY.js";import{commentsCommand,deleteSubcommand,editSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand6,openSubcommand,reopenSubcommand,replySubcommand,resolveSubcommand}from"./chunks/chunk-NBVY237X.js";import{metricsCommand,schemaSubcommand}from"./chunks/chunk-WUZD4KBL.js";import{logsCommand}from"./chunks/chunk-MEAY2K5Z.js";import{activityCommand,typesSubcommand}from"./chunks/chunk-EQ52F4LH.js";import{alertsCommand,inspectSubcommand as inspectSubcommand3,listSubcommand as listSubcommand3}from"./chunks/chunk-7R5FEXZ5.js";import{rulesAddSubcommand as rulesAddSubcommand2,rulesAggregateCommand,rulesInspectSubcommand,rulesLsSubcommand,rulesRmSubcommand,rulesSchemaSubcommand,rulesUpdateSubcommand}from"./chunks/chunk-FKCOBJFH.js";import"./chunks/chunk-CVKB54WW.js";import"./chunks/chunk-JKTQV2QJ.js";import"./chunks/chunk-JEIMW3CO.js";import"./chunks/chunk-ZKYS7EAB.js";import{dump,load,main}from"./chunks/chunk-CGOVWHI3.js";import{require_fast_deep_equal}from"./chunks/chunk-4MZK6JT6.js";import{require_dist2}from"./chunks/chunk-7RMCBXBB.js";import{require_semver}from"./chunks/chunk-KKS7XWEX.js";import{readJSONFile}from"./chunks/chunk-JIYY3B4C.js";import{require_dist as require_dist3}from"./chunks/chunk-562OXD3F.js";import"./chunks/chunk-NNP5NITU.js";import"./chunks/chunk-K2RAW5DI.js";import"./chunks/chunk-L3JDEHCQ.js";import"./chunks/chunk-KNEWCUWF.js";import"./chunks/chunk-GHM7V3GG.js";import{VERCEL_CONFIG_EXTENSIONS}from"./chunks/chunk-QR7QPUFN.js";import{autoInstallVercelPlugin}from"./chunks/chunk-TJCIHDPZ.js";import{require_execa}from"./chunks/chunk-HBFPLBTX.js";import{stamp_default}from"./chunks/chunk-XPXOV5UO.js";import"./chunks/chunk-2I64AYHG.js";import"./chunks/chunk-SOJCELXH.js";import{elapsed}from"./chunks/chunk-JZRMH5UA.js";import{require_ms}from"./chunks/chunk-QTKJC2O5.js";import{createEnvObject,envPullCommandLogic,pull}from"./chunks/chunk-OKZDOANA.js";import{resolveProjectContext}from"./chunks/chunk-ENS6KX2F.js";import"./chunks/chunk-L243RUIR.js";import{require_open}from"./chunks/chunk-ULLWCOYC.js";import{require_frameworks}from"./chunks/chunk-KK4AJES5.js";import"./chunks/chunk-N6CNMMSZ.js";import{getTeams}from"./chunks/chunk-CN2QZO4U.js";import{ensureLink}from"./chunks/chunk-HZZ5L472.js";import"./chunks/chunk-LDM3SQAU.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS}from"./chunks/chunk-ENBTTYJR.js";import"./chunks/chunk-XQ73QIQ3.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-K3KJZLBD.js";import{param}from"./chunks/chunk-SXUEGVWB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"./chunks/chunk-YV6CTDHR.js";import{buildCommandDocumentationLines,help}from"./chunks/chunk-2B2MN3U5.js";import{table}from"./chunks/chunk-6TAQ6OWD.js";import"./chunks/chunk-GRNTLNC7.js";import{getDeployment,toHost}from"./chunks/chunk-G7Y77DFH.js";import{mapCertError}from"./chunks/chunk-JYAUUIR4.js";import"./chunks/chunk-WPS6JZF6.js";import{argvHasNonInteractive,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,exitWithNonInteractiveError,openUrlInBrowserCommand,outputActionRequired,outputAgentError,outputAgentSuccess,quoteArg,shouldEmitNonInteractiveCommandError,withGlobalFlags}from"./chunks/chunk-NS4FH2TY.js";import{detectExplicitScope,getScope}from"./chunks/chunk-5QQNYN4N.js";import{TelemetryClient}from"./chunks/chunk-57GHYR4Y.js";import"./chunks/chunk-RCTYVKM5.js";import{parseArguments}from"./chunks/chunk-HTC6KO2B.js";import{processRevocationResponse,revocationRequest,ua_default}from"./chunks/chunk-5XJNPXQK.js";import{printError}from"./chunks/chunk-LNPMDXBJ.js";import{fetch as fetch2,getFetchDispatcher,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunks/chunk-7T6TL3GQ.js";import"./chunks/chunk-BRK4OB4B.js";import{getGitConfigPath,getLinkFromDir,getLinkedProject,getProjectByNameOrId,getProjectLink,getVercelDirectory,parseGitConfig,pluckRemoteUrls,require_lib,require_pluralize,resolveProjectCwd}from"./chunks/chunk-VLZ47RWM.js";import"./chunks/chunk-F2ZWW2IO.js";import"./chunks/chunk-B4ATVYZW.js";import{humanizePath}from"./chunks/chunk-PPCFQQSU.js";import{require_strip_ansi}from"./chunks/chunk-OSCCYU74.js";import{arg_common_default,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags,globalCommandOptions,stripSensitiveAuthArgs}from"./chunks/chunk-JAJW3P42.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-XSVBYDYI.js";import{getTeamByIdOrSlug,getUser}from"./chunks/chunk-EVZRQGNK.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,LinkRequiredError,NoAliasInConfig,NowError,ProjectNotFound,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnexpectedDomainTransferError,UnsupportedTLD,UserAborted,code,isAPIError,require_bytes}from"./chunks/chunk-R2TGGVCT.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib as require_lib2}from"./chunks/chunk-FI772UVH.js";import"./chunks/chunk-XFVGX5HG.js";import{chars_default,emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-Z6Y55QJW.js";import{require_dist}from"./chunks/chunk-QGIQK47P.js";import{pkg_default}from"./chunks/chunk-AVSPFBLM.js";import"./chunks/chunk-XCJDGQO7.js";import"./chunks/chunk-YPTLSODC.js";import"./chunks/chunk-7HL2RPUO.js";import{require_source}from"./chunks/chunk-U7KCDTCH.js";import"./chunks/chunk-N3ZZ7FHQ.js";import"./chunks/chunk-GU6VIFR5.js";import{__require,__toESM}from"./chunks/chunk-6L236MNA.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
 
package/dist/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "59.15.0";
1
+ export const version = "59.15.1";
2
2
  export const buildLabel = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "59.15.0",
3
+ "version": "59.15.1",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -37,28 +37,28 @@
37
37
  "zod": "4.1.11",
38
38
  "@vercel/backends": "7.0.4",
39
39
  "@vercel/build-utils": "14.9.3",
40
+ "@vercel/cli-auth": "0.3.7",
40
41
  "@vercel/cli-config": "0.2.6",
41
42
  "@vercel/container": "7.0.3",
42
43
  "@vercel/detect-agent": "1.2.5",
43
44
  "@vercel/elysia": "7.0.3",
44
45
  "@vercel/express": "7.0.4",
45
46
  "@vercel/fastify": "7.0.3",
46
- "@vercel/go": "10.1.1",
47
47
  "@vercel/h3": "7.0.3",
48
+ "@vercel/go": "10.1.1",
48
49
  "@vercel/hono": "7.0.3",
49
50
  "@vercel/hydrogen": "8.0.3",
50
51
  "@vercel/koa": "7.0.3",
51
52
  "@vercel/nestjs": "7.0.3",
52
53
  "@vercel/next": "11.0.4",
53
54
  "@vercel/node": "12.0.3",
54
- "@vercel/python": "13.0.3",
55
+ "@vercel/python": "13.0.4",
55
56
  "@vercel/python-analysis": "0.14.0",
56
57
  "@vercel/redwood": "9.0.3",
57
58
  "@vercel/remix-builder": "12.0.3",
58
59
  "@vercel/ruby": "9.0.3",
59
60
  "@vercel/rust": "8.0.3",
60
- "@vercel/static-build": "9.0.3",
61
- "@vercel/cli-auth": "0.3.7"
61
+ "@vercel/static-build": "9.0.3"
62
62
  },
63
63
  "builders": {
64
64
  "@vercel/backends": "7.0.4",
@@ -74,7 +74,7 @@
74
74
  "@vercel/nestjs": "7.0.3",
75
75
  "@vercel/next": "11.0.4",
76
76
  "@vercel/node": "12.0.3",
77
- "@vercel/python": "13.0.3",
77
+ "@vercel/python": "13.0.4",
78
78
  "@vercel/redwood": "9.0.3",
79
79
  "@vercel/remix-builder": "12.0.3",
80
80
  "@vercel/ruby": "9.0.3",
@@ -211,17 +211,17 @@
211
211
  "@vercel-internals/get-package-json": "1.0.0",
212
212
  "@vercel-internals/service-topology": "1.0.0",
213
213
  "@vercel-internals/types": "3.0.6",
214
- "@vercel/client": "18.3.4",
214
+ "@vercel/client": "18.3.5",
215
215
  "@vercel/error-utils": "2.2.1",
216
216
  "@vercel/frameworks": "3.34.0",
217
217
  "@vercel/fs-detectors": "7.2.3",
218
218
  "@vercel/routing-utils": "6.5.0"
219
219
  },
220
220
  "optionalDependencies": {
221
- "@vercel/vc-native-darwin-arm64": "59.15.0",
222
- "@vercel/vc-native-darwin-x64": "59.15.0",
223
- "@vercel/vc-native-linux-arm64": "59.15.0",
224
- "@vercel/vc-native-linux-x64": "59.15.0"
221
+ "@vercel/vc-native-darwin-arm64": "59.15.1",
222
+ "@vercel/vc-native-darwin-x64": "59.15.1",
223
+ "@vercel/vc-native-linux-arm64": "59.15.1",
224
+ "@vercel/vc-native-linux-x64": "59.15.1"
225
225
  },
226
226
  "scripts": {
227
227
  "test": "node scripts/test.mjs --run",