vercel 28.0.0 → 28.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +63 -53
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -203456,7 +203456,7 @@ async function run({ output, contextName, currentTeam, client }) {
203456
203456
  argv.yes ||
203457
203457
  (await readConfirmation(client, output, theSecret, contextName));
203458
203458
  if (!yes) {
203459
- output.print(`Aborted. Secret not deleted.\n`);
203459
+ output.print(`Canceled. Secret not deleted.\n`);
203460
203460
  return 0;
203461
203461
  }
203462
203462
  } else {
@@ -226559,7 +226559,7 @@ async function rm(client, opts, args) {
226559
226559
  }
226560
226560
  const removeStamp = (0, stamp_1.default)();
226561
226561
  if (!opts['--yes'] && !(await confirmAliasRemove(client, alias))) {
226562
- output.log('Aborted');
226562
+ output.log('Canceled');
226563
226563
  return 0;
226564
226564
  }
226565
226565
  await (0, remove_alias_by_id_1.default)(client, alias.uid);
@@ -226726,7 +226726,7 @@ function handleSetupDomainError(output, error) {
226726
226726
  return 1;
226727
226727
  }
226728
226728
  if (error instanceof ERRORS.UserAborted) {
226729
- output.error(`User aborted`);
226729
+ output.error(`User canceled.`);
226730
226730
  return 1;
226731
226731
  }
226732
226732
  if (error instanceof ERRORS.DomainNotFound) {
@@ -226932,7 +226932,6 @@ async function main(client) {
226932
226932
  subpath = parsed.path;
226933
226933
  }
226934
226934
  }
226935
- const badDeploymentPromise = getDeployment(client, bad).catch(err => err);
226936
226935
  good = (0, normalize_url_1.normalizeURL)(good);
226937
226936
  parsed = (0, url_1.parse)(good);
226938
226937
  if (!parsed.hostname) {
@@ -226946,15 +226945,12 @@ async function main(client) {
226946
226945
  subpath !== parsed.path) {
226947
226946
  output.note(`Ignoring subpath ${chalk_1.default.bold(parsed.path)} which does not match ${chalk_1.default.bold(subpath)}`);
226948
226947
  }
226949
- const goodDeploymentPromise = getDeployment(client, good).catch(err => err);
226950
226948
  if (!subpath) {
226951
226949
  subpath = await prompt(client, `Specify the URL subpath where the bug occurs:`);
226952
226950
  }
226953
226951
  output.spinner('Retrieving deployments…');
226954
- const [badDeployment, goodDeployment] = await Promise.all([
226955
- badDeploymentPromise,
226956
- goodDeploymentPromise,
226957
- ]);
226952
+ // `getDeployment` cannot be parallelized because it might prompt for login
226953
+ const badDeployment = await getDeployment(client, bad).catch(err => err);
226958
226954
  if (badDeployment) {
226959
226955
  if (badDeployment instanceof Error) {
226960
226956
  badDeployment.message += ` "${bad}"`;
@@ -226967,7 +226963,8 @@ async function main(client) {
226967
226963
  output.error(`Failed to retrieve ${chalk_1.default.bold('bad')} Deployment: ${bad}`);
226968
226964
  return 1;
226969
226965
  }
226970
- const { projectId } = badDeployment;
226966
+ // `getDeployment` cannot be parallelized because it might prompt for login
226967
+ const goodDeployment = await getDeployment(client, good).catch(err => err);
226971
226968
  if (goodDeployment) {
226972
226969
  if (goodDeployment instanceof Error) {
226973
226970
  goodDeployment.message += ` "${good}"`;
@@ -226980,6 +226977,7 @@ async function main(client) {
226980
226977
  output.error(`Failed to retrieve ${chalk_1.default.bold('good')} Deployment: ${good}`);
226981
226978
  return 1;
226982
226979
  }
226980
+ const { projectId } = badDeployment;
226983
226981
  if (projectId !== goodDeployment.projectId) {
226984
226982
  output.error(`Good and Bad deployments must be from the same Project`);
226985
226983
  return 1;
@@ -227290,7 +227288,7 @@ async function main(client) {
227290
227288
  confirmed = await (0, confirm_1.default)(client, `No Project Settings found locally. Run ${cli.getCommandName('pull')} for retrieving them?`, true);
227291
227289
  }
227292
227290
  if (!confirmed) {
227293
- client.output.print(`Aborted. No Project Settings retrieved.\n`);
227291
+ client.output.print(`Canceled. No Project Settings retrieved.\n`);
227294
227292
  return 0;
227295
227293
  }
227296
227294
  const { argv: originalArgv } = client;
@@ -228519,7 +228517,7 @@ exports.default = async (client) => {
228519
228517
  const shouldStartSetup = autoConfirm ||
228520
228518
  (await (0, confirm_1.default)(client, `Set up and deploy ${chalk_1.default.cyan(`“${(0, humanize_path_1.default)(path)}”`)}?`, true));
228521
228519
  if (!shouldStartSetup) {
228522
- output.print(`Aborted. Project not set up.\n`);
228520
+ output.print(`Canceled. Project not set up.\n`);
228523
228521
  return 0;
228524
228522
  }
228525
228523
  try {
@@ -229195,7 +229193,7 @@ async function add(client, opts, args) {
229195
229193
  const { domain, data: argData } = parsedParams;
229196
229194
  const data = await (0, get_dns_data_1.default)(client, argData);
229197
229195
  if (!data) {
229198
- output.log(`Aborted`);
229196
+ output.log(`Canceled`);
229199
229197
  return 1;
229200
229198
  }
229201
229199
  const record = await (0, add_dns_record_1.default)(client, domain, data);
@@ -229492,7 +229490,7 @@ async function rm(client, _opts, args) {
229492
229490
  const { domain: domainName } = record;
229493
229491
  const yes = await readConfirmation(output, 'The following record will be removed permanently', domainName, record);
229494
229492
  if (!yes) {
229495
- output.error(`User aborted.`);
229493
+ output.error(`User canceled.`);
229496
229494
  return 0;
229497
229495
  }
229498
229496
  const rmStamp = (0, stamp_1.default)();
@@ -230194,7 +230192,7 @@ async function move(client, opts, args) {
230194
230192
  output.warn(`You're not a member of ${(0, param_1.default)(destination)}. ` +
230195
230193
  `${(0, param_1.default)(destination)} will have 24 hours to accept your move request before it expires.`);
230196
230194
  if (!(await (0, prompt_bool_1.default)(`Are you sure you want to move ${(0, param_1.default)(domainName)} to ${(0, param_1.default)(destination)}?`, client))) {
230197
- output.log('Aborted');
230195
+ output.log('Canceled');
230198
230196
  return 0;
230199
230197
  }
230200
230198
  }
@@ -230203,7 +230201,7 @@ async function move(client, opts, args) {
230203
230201
  if (aliases.length > 0) {
230204
230202
  output.warn(`This domain's ${chalk_1.default.bold((0, pluralize_1.default)('alias', aliases.length, true))} will be removed. Run ${(0, pkg_name_1.getCommandName)(`alias ls`)} to list them.`);
230205
230203
  if (!(await (0, prompt_bool_1.default)(`Are you sure you want to move ${(0, param_1.default)(domainName)}?`, client))) {
230206
- output.log('Aborted');
230204
+ output.log('Canceled');
230207
230205
  return 0;
230208
230206
  }
230209
230207
  }
@@ -230355,7 +230353,7 @@ async function rm(client, opts, args) {
230355
230353
  const skipConfirmation = opts['--yes'] || false;
230356
230354
  if (!skipConfirmation &&
230357
230355
  !(await (0, prompt_bool_1.default)(`Are you sure you want to remove ${(0, param_1.default)(domainName)}?`, client))) {
230358
- output.log('Aborted');
230356
+ output.log('Canceled');
230359
230357
  return 0;
230360
230358
  }
230361
230359
  return removeDomain(output, client, contextName, skipConfirmation, domain);
@@ -230432,7 +230430,7 @@ async function removeDomain(output, client, contextName, skipConfirmation, domai
230432
230430
  }
230433
230431
  if (!skipConfirmation &&
230434
230432
  !(await (0, prompt_bool_1.default)(`Remove conflicts associated with domain?`, client))) {
230435
- output.log('Aborted');
230433
+ output.log('Canceled');
230436
230434
  return 0;
230437
230435
  }
230438
230436
  return removeDomain(output, client, contextName, skipConfirmation, domain, aliases, certs, suffix, attempt + 1);
@@ -230971,7 +230969,7 @@ async function pull(client, project, environment, opts, args, output, cwd, sourc
230971
230969
  else if (exists &&
230972
230970
  !skipConfirmation &&
230973
230971
  !(await (0, confirm_1.default)(client, `Found existing file ${(0, param_1.default)(filename)}. Do you want to overwrite?`, false))) {
230974
- output.log('Aborted');
230972
+ output.log('Canceled');
230975
230973
  return 0;
230976
230974
  }
230977
230975
  output.log(`Downloading \`${chalk_1.default.cyan(environment)}\` Environment Variables for Project ${chalk_1.default.bold(project.name)}`);
@@ -231094,7 +231092,7 @@ async function rm(client, project, opts, args, output) {
231094
231092
  const skipConfirmation = opts['--yes'];
231095
231093
  if (!skipConfirmation &&
231096
231094
  !(await (0, confirm_1.default)(client, `Removing Environment Variable ${(0, param_1.default)(env.key)} from ${(0, format_env_target_1.default)(env)} in Project ${chalk_1.default.bold(project.name)}. Are you sure?`, false))) {
231097
- output.log('Aborted');
231095
+ output.log('Canceled');
231098
231096
  return 0;
231099
231097
  }
231100
231098
  const rmStamp = (0, stamp_1.default)();
@@ -231202,7 +231200,7 @@ async function connect(client, argv, args, project, org) {
231202
231200
  remoteUrl = Object.values(remoteUrls)[0];
231203
231201
  }
231204
231202
  if (remoteUrl === '') {
231205
- output.log('Aborted.');
231203
+ output.log('Canceled');
231206
231204
  return 0;
231207
231205
  }
231208
231206
  output.log(`Connecting Git remote: ${(0, link_1.default)(remoteUrl)}`);
@@ -231316,7 +231314,7 @@ async function promptConnectArg({ client, yes, repoInfo: repoInfoFromArg, remote
231316
231314
  const { url: repoUrlFromArg } = repoInfoFromArg;
231317
231315
  shouldConnect = await (0, confirm_1.default)(client, `Do you still want to connect ${(0, link_1.default)(repoUrlFromArg)}?`, false);
231318
231316
  if (!shouldConnect) {
231319
- client.output.log('Aborted. Repo not connected.');
231317
+ client.output.log('Canceled. Repo not connected.');
231320
231318
  }
231321
231319
  }
231322
231320
  return shouldConnect;
@@ -231356,7 +231354,7 @@ async function confirmRepoConnect(client, yes, connectedProvider, connectedRepoP
231356
231354
  if (!shouldReplaceProject) {
231357
231355
  shouldReplaceProject = await (0, confirm_1.default)(client, `Looks like you already have a ${(0, connect_git_provider_1.formatProvider)(connectedProvider)} repository connected: ${chalk_1.default.cyan(connectedRepoPath)}. Do you want to replace it?`, true);
231358
231356
  if (!shouldReplaceProject) {
231359
- client.output.log('Aborted. Repo not connected.');
231357
+ client.output.log('Canceled. Repo not connected.');
231360
231358
  }
231361
231359
  }
231362
231360
  return shouldReplaceProject;
@@ -231411,7 +231409,7 @@ async function disconnect(client, args, project, org) {
231411
231409
  output.log(`Disconnected ${chalk_1.default.cyan(`${linkOrg}/${repo}`)}.`);
231412
231410
  }
231413
231411
  else {
231414
- output.log('Aborted.');
231412
+ output.log('Canceled');
231415
231413
  }
231416
231414
  }
231417
231415
  else {
@@ -231701,7 +231699,7 @@ async function init(client, opts, args) {
231701
231699
  if (!name) {
231702
231700
  const chosen = await chooseFromDropdown(client, 'Select example:', exampleList);
231703
231701
  if (!chosen) {
231704
- output.log('Aborted');
231702
+ output.log('Canceled');
231705
231703
  return 0;
231706
231704
  }
231707
231705
  return extractExample(client, chosen, dir, force);
@@ -232325,7 +232323,7 @@ async function main(client) {
232325
232323
  }
232326
232324
  log(`${prod ? `Production deployments` : `Deployments`} for ${chalk_1.default.bold(app)} under ${chalk_1.default.bold(contextName)} ${(0, elapsed_1.default)(Date.now() - start)}`);
232327
232325
  // information to help the user find other deployments or instances
232328
- log(`To list more deployments for a project, run ${(0, pkg_name_1.getCommandName)('ls [project]')}.`);
232326
+ log(`To list deployments for a project, run ${(0, pkg_name_1.getCommandName)('ls [project]')}.`);
232329
232327
  print('\n');
232330
232328
  const headers = ['Age', 'Deployment', 'Status', 'Duration'];
232331
232329
  if (showUsername)
@@ -232357,7 +232355,7 @@ async function main(client) {
232357
232355
  }).replace(/^/gm, ' ')}\n\n`);
232358
232356
  if (pagination && pagination.count === 20) {
232359
232357
  const flags = (0, get_command_flags_1.default)(argv, ['_', '--next']);
232360
- log(`To display the next page run ${(0, pkg_name_1.getCommandName)(`ls${app ? ' ' + app : ''}${flags} --next ${pagination.next}`)}`);
232358
+ log(`To display the next page, run ${(0, pkg_name_1.getCommandName)(`ls${app ? ' ' + app : ''}${flags} --next ${pagination.next}`)}`);
232361
232359
  }
232362
232360
  }
232363
232361
  exports.default = main;
@@ -233482,7 +233480,7 @@ async function main(client) {
233482
233480
  if (!skipConfirmation) {
233483
233481
  const confirmation = (await readConfirmation(deployments, projects, output)).toLowerCase();
233484
233482
  if (confirmation !== 'y' && confirmation !== 'yes') {
233485
- output.log('Aborted');
233483
+ output.log('Canceled');
233486
233484
  return 1;
233487
233485
  }
233488
233486
  }
@@ -233609,7 +233607,7 @@ async function add(client) {
233609
233607
  }
233610
233608
  catch (err) {
233611
233609
  if ((0, is_error_1.isError)(err) && err.message === 'USER_ABORT') {
233612
- output.log('Aborted');
233610
+ output.log('Canceled');
233613
233611
  return 0;
233614
233612
  }
233615
233613
  throw err;
@@ -243118,7 +243116,7 @@ class UserAborted extends now_error_1.NowError {
243118
243116
  super({
243119
243117
  code: 'USER_ABORTED',
243120
243118
  meta: {},
243121
- message: `The user aborted the operation.`,
243119
+ message: `The user canceled the operation.`,
243122
243120
  });
243123
243121
  }
243124
243122
  }
@@ -244779,7 +244777,7 @@ function handleError(error, { debug = false } = {}) {
244779
244777
  console.error((0, error_1.default)('Unexpected server error. Please retry.'));
244780
244778
  }
244781
244779
  else if (code === 'USER_ABORT') {
244782
- (0, info_1.default)('Aborted');
244780
+ (0, info_1.default)('Canceled');
244783
244781
  }
244784
244782
  else {
244785
244783
  console.error((0, error_1.default)(`Unexpected error. Please try again later. (${message})`));
@@ -245598,7 +245596,7 @@ choices: _choices = [
245598
245596
  },
245599
245597
  ], pageSize = 15, // Show 15 lines without scrolling (~4 credit cards)
245600
245598
  separator = false, // Puts a blank separator between each choice
245601
- abort = 'end', // Whether the `abort` option will be at the `start` or the `end`,
245599
+ cancel = 'end', // Whether the `cancel` option will be at the `start` or the `end`,
245602
245600
  eraseFinalAnswer = false, // If true, the line with the final answer that inquirer prints will be erased before returning
245603
245601
  }) {
245604
245602
  __webpack_require__(92149);
@@ -245637,17 +245635,17 @@ eraseFinalAnswer = false, // If true, the line with the final answer that inquir
245637
245635
  choices.splice(i, 0, new inquirer_1.default.Separator(' '));
245638
245636
  }
245639
245637
  }
245640
- const abortSeparator = new inquirer_1.default.Separator('─'.repeat(biggestLength));
245641
- const _abort = {
245642
- name: 'Abort',
245638
+ const cancelSeparator = new inquirer_1.default.Separator('─'.repeat(biggestLength));
245639
+ const _cancel = {
245640
+ name: 'Cancel',
245643
245641
  value: '',
245644
245642
  short: '',
245645
245643
  };
245646
- if (abort === 'start') {
245647
- choices.unshift(_abort, abortSeparator);
245644
+ if (cancel === 'start') {
245645
+ choices.unshift(_cancel, cancelSeparator);
245648
245646
  }
245649
245647
  else {
245650
- choices.push(abortSeparator, _abort);
245648
+ choices.push(cancelSeparator, _cancel);
245651
245649
  }
245652
245650
  const answer = await client.prompt({
245653
245651
  name: 'value',
@@ -246488,19 +246486,19 @@ function getProjectSettings(project) {
246488
246486
  skipGitConnectDuringLink: project.skipGitConnectDuringLink,
246489
246487
  };
246490
246488
  }
246491
- async function addGitConnection(client, org, project, remoteUrls, settings) {
246489
+ async function addGitConnection(client, org, project, remoteUrls, autoConfirm, settings) {
246492
246490
  if (!settings) {
246493
246491
  settings = getProjectSettings(project);
246494
246492
  }
246495
246493
  if (Object.keys(remoteUrls).length === 1) {
246496
- return addSingleGitRemote(client, org, project, remoteUrls, settings || project);
246494
+ return addSingleGitRemote(client, org, project, remoteUrls, settings || project, autoConfirm);
246497
246495
  }
246498
246496
  else if (Object.keys(remoteUrls).length > 1 && !project.link) {
246499
- return addMultipleGitRemotes(client, org, project, remoteUrls, settings || project);
246497
+ return addMultipleGitRemotes(client, org, project, remoteUrls, settings || project, autoConfirm);
246500
246498
  }
246501
246499
  }
246502
246500
  exports.addGitConnection = addGitConnection;
246503
- async function addSingleGitRemote(client, org, project, remoteUrls, settings) {
246501
+ async function addSingleGitRemote(client, org, project, remoteUrls, settings, autoConfirm) {
246504
246502
  const [remoteName, remoteUrl] = Object.entries(remoteUrls)[0];
246505
246503
  const repoInfo = (0, connect_git_provider_1.parseRepoUrl)(remoteUrl);
246506
246504
  if (!repoInfo) {
@@ -246520,13 +246518,25 @@ async function addSingleGitRemote(client, org, project, remoteUrls, settings) {
246520
246518
  (project.link.org !== parsedOrg ||
246521
246519
  project.link.repo !== repo ||
246522
246520
  project.link.type !== provider);
246523
- const shouldConnect = await (0, git_connect_prompts_1.promptGitConnectSingleUrl)(client, project, remoteName, remoteUrl, replace);
246524
- return (0, handle_options_1.handleOptions)(shouldConnect, client, org, project, settings, repoInfo);
246521
+ let shouldConnectOption;
246522
+ if (autoConfirm) {
246523
+ shouldConnectOption = 'yes';
246524
+ }
246525
+ else {
246526
+ shouldConnectOption = await (0, git_connect_prompts_1.promptGitConnectSingleUrl)(client, project, remoteName, remoteUrl, replace);
246527
+ }
246528
+ return (0, handle_options_1.handleOptions)(shouldConnectOption, client, org, project, settings, repoInfo);
246525
246529
  }
246526
- async function addMultipleGitRemotes(client, org, project, remoteUrls, settings) {
246527
- client.output.log('Found multiple Git remote URLs in Git config.');
246528
- const remoteUrlOrOptions = await (0, git_connect_prompts_1.promptGitConnectMultipleUrls)(client, remoteUrls);
246529
- return (0, handle_options_1.handleOptions)(remoteUrlOrOptions, client, org, project, settings);
246530
+ async function addMultipleGitRemotes(client, org, project, remoteUrls, settings, autoConfirm) {
246531
+ let remoteUrl;
246532
+ if (autoConfirm) {
246533
+ remoteUrl = remoteUrls['origin'] || Object.values(remoteUrls)[0];
246534
+ }
246535
+ else {
246536
+ client.output.log('Found multiple Git remote URLs in Git config.');
246537
+ remoteUrl = await (0, git_connect_prompts_1.promptGitConnectMultipleUrls)(client, remoteUrls);
246538
+ }
246539
+ return (0, handle_options_1.handleOptions)(remoteUrl, client, org, project, settings);
246530
246540
  }
246531
246541
 
246532
246542
 
@@ -246742,7 +246752,7 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
246742
246752
  const shouldStartSetup = autoConfirm ||
246743
246753
  (await (0, confirm_1.default)(client, `${setupMsg} ${chalk_1.default.cyan(`“${(0, humanize_path_1.default)(path)}”`)}?`, true));
246744
246754
  if (!shouldStartSetup) {
246745
- output.print(`Aborted. Project not set up.\n`);
246755
+ output.print(`Canceled. Project not set up.\n`);
246746
246756
  return { status: 'not_linked', org: null, project: null };
246747
246757
  }
246748
246758
  try {
@@ -246771,7 +246781,7 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
246771
246781
  const project = projectOrNewProjectName;
246772
246782
  const remoteUrls = await (0, create_git_meta_1.getRemoteUrls)((0, path_1.join)(path, '.git/config'), output);
246773
246783
  if (remoteUrls && !project.skipGitConnectDuringLink) {
246774
- const connectGit = await (0, add_git_connection_1.addGitConnection)(client, org, project, remoteUrls);
246784
+ const connectGit = await (0, add_git_connection_1.addGitConnection)(client, org, project, remoteUrls, autoConfirm);
246775
246785
  if (typeof connectGit === 'number') {
246776
246786
  return { status: 'error', exitCode: connectGit };
246777
246787
  }
@@ -246850,7 +246860,7 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
246850
246860
  const project = await (0, create_project_1.default)(client, newProjectName);
246851
246861
  const remoteUrls = await (0, create_git_meta_1.getRemoteUrls)((0, path_1.join)(path, '.git/config'), output);
246852
246862
  if (remoteUrls) {
246853
- const connectGit = await (0, add_git_connection_1.addGitConnection)(client, org, project, remoteUrls, settings);
246863
+ const connectGit = await (0, add_git_connection_1.addGitConnection)(client, org, project, remoteUrls, autoConfirm, settings);
246854
246864
  if (typeof connectGit === 'number') {
246855
246865
  return { status: 'error', exitCode: connectGit };
246856
246866
  }
@@ -249517,7 +249527,7 @@ async function validatePaths(client, paths) {
249517
249527
  if (path === (0, os_1.homedir)()) {
249518
249528
  const shouldDeployHomeDirectory = await (0, confirm_1.default)(client, `You are deploying your home directory. Do you want to continue?`, false);
249519
249529
  if (!shouldDeployHomeDirectory) {
249520
- output.print(`Aborted\n`);
249530
+ output.print(`Canceled\n`);
249521
249531
  return { valid: false, exitCode: 0 };
249522
249532
  }
249523
249533
  }
@@ -249868,7 +249878,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
249868
249878
  /***/ ((module) => {
249869
249879
 
249870
249880
  "use strict";
249871
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.0.0\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --runInBand --bail --forceExit\",\"test-unit\":\"yarn test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"yarn test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"ava\":{\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"5.3.1\",\"@vercel/go\":\"2.1.1\",\"@vercel/hydrogen\":\"0.0.14\",\"@vercel/next\":\"3.1.18\",\"@vercel/node\":\"2.5.8\",\"@vercel/python\":\"3.1.9\",\"@vercel/redwood\":\"1.0.18\",\"@vercel/remix\":\"1.0.19\",\"@vercel/ruby\":\"1.3.25\",\"@vercel/static-build\":\"1.0.18\",\"update-notifier\":\"5.1.0\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/ansi-escapes\":\"3.0.0\",\"@types/ansi-regex\":\"4.0.0\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"11.11.0\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/progress\":\"2.0.3\",\"@types/psl\":\"1.1.0\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel/client\":\"12.2.0\",\"@vercel/frameworks\":\"1.1.3\",\"@vercel/fs-detectors\":\"2.0.5\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"3.0.0\",\"ansi-regex\":\"3.0.0\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"ava\":\"2.2.0\",\"boxen\":\"4.2.0\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-prompt\":\"0.3.2\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jsonlines\":\"0.1.1\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"progress\":\"2.0.3\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"5.2.0\",\"stripe\":\"5.1.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.7.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"which\":\"2.0.2\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
249881
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.1.0\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --runInBand --bail --forceExit\",\"test-unit\":\"yarn test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"yarn test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"ava\":{\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"5.3.1\",\"@vercel/go\":\"2.2.0\",\"@vercel/hydrogen\":\"0.0.14\",\"@vercel/next\":\"3.1.19\",\"@vercel/node\":\"2.5.8\",\"@vercel/python\":\"3.1.9\",\"@vercel/redwood\":\"1.0.18\",\"@vercel/remix\":\"1.0.19\",\"@vercel/ruby\":\"1.3.27\",\"@vercel/static-build\":\"1.0.18\",\"update-notifier\":\"5.1.0\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/ansi-escapes\":\"3.0.0\",\"@types/ansi-regex\":\"4.0.0\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"11.11.0\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/progress\":\"2.0.3\",\"@types/psl\":\"1.1.0\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel/client\":\"12.2.0\",\"@vercel/frameworks\":\"1.1.3\",\"@vercel/fs-detectors\":\"2.0.5\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"3.0.0\",\"ansi-regex\":\"3.0.0\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"ava\":\"2.2.0\",\"boxen\":\"4.2.0\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-prompt\":\"0.3.2\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jsonlines\":\"0.1.1\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"progress\":\"2.0.3\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"5.2.0\",\"stripe\":\"5.1.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.7.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"which\":\"2.0.2\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
249872
249882
 
249873
249883
  /***/ }),
249874
249884
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "28.0.0",
3
+ "version": "28.1.0",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -42,14 +42,14 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@vercel/build-utils": "5.3.1",
45
- "@vercel/go": "2.1.1",
45
+ "@vercel/go": "2.2.0",
46
46
  "@vercel/hydrogen": "0.0.14",
47
- "@vercel/next": "3.1.18",
47
+ "@vercel/next": "3.1.19",
48
48
  "@vercel/node": "2.5.8",
49
49
  "@vercel/python": "3.1.9",
50
50
  "@vercel/redwood": "1.0.18",
51
51
  "@vercel/remix": "1.0.19",
52
- "@vercel/ruby": "1.3.25",
52
+ "@vercel/ruby": "1.3.27",
53
53
  "@vercel/static-build": "1.0.18",
54
54
  "update-notifier": "5.1.0"
55
55
  },
@@ -195,5 +195,5 @@
195
195
  "<rootDir>/test/**/*.test.ts"
196
196
  ]
197
197
  },
198
- "gitHead": "b52d01f809b80734ed1ab61df82f299f11a04720"
198
+ "gitHead": "09c85f63d2aa47c147260d343767f6eea60e352c"
199
199
  }