vercel 47.0.4 → 47.0.6-canary.a412e8ac

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 +261 -303
  2. package/package.json +7 -7
package/dist/index.js CHANGED
@@ -93,7 +93,7 @@ var require_dist2 = __commonJS2({
93
93
  var __toCommonJS4 = (mod) => __copyProps4(__defProp4({}, "__esModule", { value: true }), mod);
94
94
  var src_exports2 = {};
95
95
  __export4(src_exports2, {
96
- errorToString: () => errorToString15,
96
+ errorToString: () => errorToString14,
97
97
  isErrnoException: () => isErrnoException20,
98
98
  isError: () => isError14,
99
99
  isErrorLike: () => isErrorLike2,
@@ -111,7 +111,7 @@ var require_dist2 = __commonJS2({
111
111
  return isError14(error3) && "code" in error3;
112
112
  };
113
113
  var isErrorLike2 = (error3) => isObject2(error3) && "message" in error3;
114
- var errorToString15 = (error3, fallback) => {
114
+ var errorToString14 = (error3, fallback) => {
115
115
  if (isError14(error3) || isErrorLike2(error3))
116
116
  return error3.message;
117
117
  if (typeof error3 === "string")
@@ -121,7 +121,7 @@ var require_dist2 = __commonJS2({
121
121
  var normalizeError3 = (error3) => {
122
122
  if (isError14(error3))
123
123
  return error3;
124
- const errorMessage = errorToString15(error3);
124
+ const errorMessage = errorToString14(error3);
125
125
  return isErrorLike2(error3) ? Object.assign(new Error(errorMessage), error3) : new Error(errorMessage);
126
126
  };
127
127
  function isSpawnError2(v) {
@@ -33261,7 +33261,7 @@ var init_command20 = __esm({
33261
33261
  loginCommand = {
33262
33262
  name: "login",
33263
33263
  aliases: [],
33264
- description: "Authenticate using your email or team id.",
33264
+ description: "Sign in to your Vercel account.",
33265
33265
  arguments: [
33266
33266
  {
33267
33267
  name: "email or team id",
@@ -33274,41 +33274,29 @@ var init_command20 = __esm({
33274
33274
  description: "Log in with GitHub",
33275
33275
  shorthand: null,
33276
33276
  type: Boolean,
33277
- deprecated: false
33277
+ deprecated: true
33278
33278
  },
33279
33279
  {
33280
33280
  name: "oob",
33281
33281
  description: 'Log in with "out of band" authentication',
33282
33282
  shorthand: null,
33283
33283
  type: Boolean,
33284
- deprecated: false
33284
+ deprecated: true
33285
33285
  },
33286
- { name: "gitlab", shorthand: null, type: Boolean, deprecated: false },
33287
- { name: "bitbucket", shorthand: null, type: Boolean, deprecated: false },
33286
+ { name: "gitlab", shorthand: null, type: Boolean, deprecated: true },
33287
+ { name: "bitbucket", shorthand: null, type: Boolean, deprecated: true },
33288
33288
  {
33289
33289
  name: "future",
33290
33290
  description: "Sign in using OAuth Device Authorization",
33291
33291
  shorthand: null,
33292
33292
  type: Boolean,
33293
- deprecated: false
33293
+ deprecated: true
33294
33294
  }
33295
33295
  ],
33296
33296
  examples: [
33297
33297
  {
33298
- name: "Log into the Vercel platform",
33298
+ name: "Sign in to your Vercel account.",
33299
33299
  value: `${packageName} login`
33300
- },
33301
- {
33302
- name: "Log in using a specific email address",
33303
- value: `${packageName} login username@example.com`
33304
- },
33305
- {
33306
- name: 'Log in using a specific team "slug" for SAML Single Sign-On',
33307
- value: `${packageName} login acme`
33308
- },
33309
- {
33310
- name: 'Log in using GitHub in "out-of-band" mode',
33311
- value: `${packageName} login --github --oob`
33312
33300
  }
33313
33301
  ]
33314
33302
  };
@@ -33324,7 +33312,7 @@ var init_command21 = __esm({
33324
33312
  logoutCommand = {
33325
33313
  name: "logout",
33326
33314
  aliases: [],
33327
- description: "Logout the current authenticated user.",
33315
+ description: "Sign out the currently authenticated user.",
33328
33316
  arguments: [],
33329
33317
  options: [
33330
33318
  {
@@ -33332,12 +33320,12 @@ var init_command21 = __esm({
33332
33320
  description: "Sign out by calling the Vercel OAuth Revocation Endpoint.",
33333
33321
  shorthand: null,
33334
33322
  type: Boolean,
33335
- deprecated: false
33323
+ deprecated: true
33336
33324
  }
33337
33325
  ],
33338
33326
  examples: [
33339
33327
  {
33340
- name: "Logout from the CLI",
33328
+ name: "Sign out the currently authenticated user.",
33341
33329
  value: `${packageName} logout`
33342
33330
  }
33343
33331
  ]
@@ -42854,7 +42842,7 @@ async function decodeToken(client2) {
42854
42842
  const { token } = client2.authConfig;
42855
42843
  if (!token) {
42856
42844
  throw new Error(
42857
- `No existing credentials found. Please run \`vercel login --future\`.`
42845
+ `No existing credentials found. Please run \`vercel login\`.`
42858
42846
  );
42859
42847
  }
42860
42848
  const inspectResponse = await inspectTokenRequest(token);
@@ -42863,7 +42851,7 @@ async function decodeToken(client2) {
42863
42851
  throw inspectError;
42864
42852
  if (!inspectResult.active || !inspectResult.session_id || !inspectResult.client_id) {
42865
42853
  throw new Error(
42866
- `Invalid token type. Run \`vercel login --future\` to log-in and try again.`
42854
+ `Invalid token type. Run \`vercel login\` to log-in and try again.`
42867
42855
  );
42868
42856
  }
42869
42857
  return {
@@ -60863,7 +60851,7 @@ var require_create_deployment = __commonJS2({
60863
60851
  var import_upload = require_upload();
60864
60852
  var import_utils4 = require_utils13();
60865
60853
  var import_errors4 = require_errors2();
60866
- var import_error_utils39 = require_dist2();
60854
+ var import_error_utils38 = require_dist2();
60867
60855
  var import_build_utils18 = require("@vercel/build-utils");
60868
60856
  var import_tar_fs2 = __toESM4(require_tar_fs());
60869
60857
  var import_zlib = require("zlib");
@@ -60945,7 +60933,7 @@ var require_create_deployment = __commonJS2({
60945
60933
  files = await (0, import_hashes.hashes)(fileList);
60946
60934
  }
60947
60935
  } catch (err) {
60948
- if (clientOptions.prebuilt && (0, import_error_utils39.isErrnoException)(err) && err.code === "ENOENT" && err.path) {
60936
+ if (clientOptions.prebuilt && (0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT" && err.path) {
60949
60937
  const errPath = (0, import_path41.relative)(workPath, err.path);
60950
60938
  err.message = `File does not exist: "${(0, import_path41.relative)(workPath, errPath)}"`;
60951
60939
  if (errPath.split(import_path41.sep).includes("node_modules")) {
@@ -61278,7 +61266,8 @@ function isOAuthAuth(authConfig) {
61278
61266
  return authConfig.type === "oauth";
61279
61267
  }
61280
61268
  function isValidAccessToken(authConfig) {
61281
- return "token" in authConfig && (authConfig.expiresAt ?? 0) >= Date.now();
61269
+ const nowInSeconds = Math.floor(Date.now() / 1e3);
61270
+ return "token" in authConfig && (authConfig.expiresAt ?? 0) >= nowInSeconds;
61282
61271
  }
61283
61272
  function hasRefreshToken(authConfig) {
61284
61273
  return "refreshToken" in authConfig;
@@ -94419,6 +94408,15 @@ var init_telemetry = __esm({
94419
94408
  value: this.redactedValue
94420
94409
  });
94421
94410
  }
94411
+ trackLoginState(state) {
94412
+ if (state === "started")
94413
+ this.loginAttempt = (0, import_node_crypto.randomUUID)();
94414
+ if (this.loginAttempt) {
94415
+ this.track({ key: `login:attempt:${this.loginAttempt}`, value: state });
94416
+ }
94417
+ if (state !== "started")
94418
+ this.loginAttempt = void 0;
94419
+ }
94422
94420
  trackCliFlagHelp(command, subcommands) {
94423
94421
  let subcommand;
94424
94422
  if (subcommands) {
@@ -94429,9 +94427,6 @@ var init_telemetry = __esm({
94429
94427
  value: subcommand ? `${command}:${subcommand}` : command
94430
94428
  });
94431
94429
  }
94432
- trackCliFlagFuture(command) {
94433
- this.track({ key: "flag:future", value: command });
94434
- }
94435
94430
  };
94436
94431
  TelemetryEventStore = class {
94437
94432
  constructor(opts) {
@@ -114247,14 +114242,14 @@ var require_read_config_file = __commonJS2({
114247
114242
  var import_js_yaml = __toESM4(require_js_yaml2());
114248
114243
  var import_toml = __toESM4(require_toml());
114249
114244
  var import_fs9 = require("fs");
114250
- var import_error_utils39 = require_dist2();
114245
+ var import_error_utils38 = require_dist2();
114251
114246
  var { readFile: readFile6 } = import_fs9.promises;
114252
114247
  async function readFileOrNull(file) {
114253
114248
  try {
114254
114249
  const data = await readFile6(file);
114255
114250
  return data;
114256
114251
  } catch (error3) {
114257
- if (!(0, import_error_utils39.isErrnoException)(error3)) {
114252
+ if (!(0, import_error_utils38.isErrnoException)(error3)) {
114258
114253
  throw error3;
114259
114254
  }
114260
114255
  if (error3.code !== "ENOENT") {
@@ -115762,14 +115757,14 @@ var require_frameworks = __commonJS2({
115762
115757
  ]
115763
115758
  },
115764
115759
  {
115765
- name: "Nuxt.js",
115760
+ name: "Nuxt",
115766
115761
  slug: "nuxtjs",
115767
115762
  demo: "https://nuxtjs-template.vercel.app",
115768
115763
  logo: "https://api-frameworks.vercel.sh/framework-logos/nuxt.svg",
115769
115764
  screenshot: "https://assets.vercel.com/image/upload/v1647366075/front/import/nuxtjs.png",
115770
- tagline: "Nuxt.js is the web comprehensive framework that lets you dream big with Vue.js.",
115771
- description: "A Nuxt.js app, bootstrapped with create-nuxt-app.",
115772
- website: "https://nuxtjs.org",
115765
+ tagline: "Nuxt is the open source framework that makes full-stack development with Vue.js intuitive.",
115766
+ description: "A Nuxt app, bootstrapped with create-nuxt-app.",
115767
+ website: "https://nuxt.com",
115773
115768
  sort: 2,
115774
115769
  envPrefix: "NUXT_ENV_",
115775
115770
  supersedes: ["nitro"],
@@ -115783,6 +115778,9 @@ var require_frameworks = __commonJS2({
115783
115778
  },
115784
115779
  {
115785
115780
  matchPackage: "nuxt-edge"
115781
+ },
115782
+ {
115783
+ matchPackage: "nuxt-nightly"
115786
115784
  }
115787
115785
  ]
115788
115786
  },
@@ -115795,7 +115793,7 @@ var require_frameworks = __commonJS2({
115795
115793
  value: "nuxt build"
115796
115794
  },
115797
115795
  devCommand: {
115798
- value: "nuxt"
115796
+ value: "nuxt dev"
115799
115797
  },
115800
115798
  outputDirectory: {
115801
115799
  value: "dist"
@@ -116241,6 +116239,49 @@ var require_frameworks = __commonJS2({
116241
116239
  }
116242
116240
  ]
116243
116241
  },
116242
+ {
116243
+ name: "FastAPI (Experimental)",
116244
+ slug: "fastapi",
116245
+ logo: "https://api-frameworks.vercel.sh/framework-logos/fastapi.svg",
116246
+ darkModeLogo: "https://api-frameworks.vercel.sh/framework-logos/fastapi.svg",
116247
+ tagline: "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
116248
+ description: "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
116249
+ website: "https://fastapi.tiangolo.com",
116250
+ useRuntime: { src: "main.py", use: "@vercel/python" },
116251
+ detectors: {
116252
+ every: [
116253
+ {
116254
+ path: "requirements.txt",
116255
+ matchContent: "fastapi"
116256
+ }
116257
+ ]
116258
+ },
116259
+ settings: {
116260
+ installCommand: {
116261
+ placeholder: "`pip install -r requirements.txt`"
116262
+ },
116263
+ buildCommand: {
116264
+ placeholder: "None",
116265
+ value: null
116266
+ },
116267
+ devCommand: {
116268
+ value: "uvicorn main:app --reload --port $PORT"
116269
+ },
116270
+ outputDirectory: {
116271
+ value: "N/A"
116272
+ }
116273
+ },
116274
+ getOutputDirName: async () => "",
116275
+ defaultRoutes: [
116276
+ {
116277
+ handle: "filesystem"
116278
+ },
116279
+ {
116280
+ src: "/(.*)",
116281
+ dest: "/main"
116282
+ }
116283
+ ]
116284
+ },
116244
116285
  {
116245
116286
  name: "FastHTML (Experimental)",
116246
116287
  slug: "fasthtml",
@@ -119088,6 +119129,16 @@ var require_detect_builders = __commonJS2({
119088
119129
  builders.push(...apiBuilders);
119089
119130
  }
119090
119131
  if (frontendBuilder) {
119132
+ if (frontendBuilder?.use === "@vercel/express") {
119133
+ builders.push({
119134
+ src: "public/**/*",
119135
+ use: "@vercel/static",
119136
+ config: {
119137
+ zeroConfig: true,
119138
+ outputDirectory: "public"
119139
+ }
119140
+ });
119141
+ }
119091
119142
  builders.push(frontendBuilder);
119092
119143
  if (hasNextApiFiles && apiBuilders.some((b) => (0, import_is_official_runtime.isOfficialRuntime)("node", b.use))) {
119093
119144
  warnings.push({
@@ -120257,7 +120308,7 @@ var require_local_file_system_detector = __commonJS2({
120257
120308
  var import_promises4 = __toESM4(require("fs/promises"));
120258
120309
  var import_path41 = require("path");
120259
120310
  var import_filesystem = require_filesystem();
120260
- var import_error_utils39 = require_dist2();
120311
+ var import_error_utils38 = require_dist2();
120261
120312
  var LocalFileSystemDetector5 = class _LocalFileSystemDetector extends import_filesystem.DetectorFilesystem {
120262
120313
  constructor(rootPath) {
120263
120314
  super();
@@ -120268,7 +120319,7 @@ var require_local_file_system_detector = __commonJS2({
120268
120319
  await import_promises4.default.stat(this.getFilePath(name));
120269
120320
  return true;
120270
120321
  } catch (err) {
120271
- if ((0, import_error_utils39.isErrnoException)(err) && err.code === "ENOENT") {
120322
+ if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
120272
120323
  return false;
120273
120324
  }
120274
120325
  throw err;
@@ -179423,32 +179474,6 @@ var init_mcp2 = __esm({
179423
179474
  }
179424
179475
  });
179425
179476
 
179426
- // ../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js
179427
- var require_email_validator = __commonJS2({
179428
- "../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js"(exports2) {
179429
- "use strict";
179430
- var tester = /^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-?\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;
179431
- exports2.validate = function(email2) {
179432
- if (!email2)
179433
- return false;
179434
- if (email2.length > 254)
179435
- return false;
179436
- var valid = tester.test(email2);
179437
- if (!valid)
179438
- return false;
179439
- var parts = email2.split("@");
179440
- if (parts[0].length > 64)
179441
- return false;
179442
- var domainParts = parts[1].split(".");
179443
- if (domainParts.some(function(part) {
179444
- return part.length > 63;
179445
- }))
179446
- return false;
179447
- return true;
179448
- };
179449
- }
179450
- });
179451
-
179452
179477
  // src/util/telemetry/commands/login/index.ts
179453
179478
  var LoginTelemetryClient;
179454
179479
  var init_login2 = __esm({
@@ -179456,12 +179481,72 @@ var init_login2 = __esm({
179456
179481
  "use strict";
179457
179482
  init_telemetry();
179458
179483
  LoginTelemetryClient = class extends TelemetryClient {
179484
+ /**
179485
+ * Tracks the state of the login process.
179486
+ * - `started` when the user initiates the login process.
179487
+ * - `canceled` when the user cancels the login process.
179488
+ * - `error` when the user encounters an error during the login process.
179489
+ * - `success` when the user successfully logs in.
179490
+ */
179491
+ trackState(...args2) {
179492
+ this.trackLoginState(...args2);
179493
+ }
179459
179494
  };
179460
179495
  }
179461
179496
  });
179462
179497
 
179463
- // src/commands/login/future.ts
179498
+ // src/commands/login/index.ts
179499
+ var login_exports = {};
179500
+ __export3(login_exports, {
179501
+ default: () => login2
179502
+ });
179464
179503
  async function login2(client2) {
179504
+ let parsedArgs = null;
179505
+ const flagsSpecification = getFlagsSpecification(loginCommand.options);
179506
+ const telemetry2 = new LoginTelemetryClient({
179507
+ opts: {
179508
+ store: client2.telemetryEventStore
179509
+ }
179510
+ });
179511
+ try {
179512
+ parsedArgs = parseArguments(client2.argv.slice(2), flagsSpecification);
179513
+ } catch (error4) {
179514
+ printError(error4);
179515
+ return 1;
179516
+ }
179517
+ if (parsedArgs.flags["--help"]) {
179518
+ telemetry2.trackCliFlagHelp("login");
179519
+ output_manager_default.print(help2(loginCommand, { columns: client2.stderr.columns }));
179520
+ return 0;
179521
+ }
179522
+ if (parsedArgs.flags["--token"]) {
179523
+ output_manager_default.error('`--token` may not be used with the "login" command');
179524
+ return 2;
179525
+ }
179526
+ const obsoleteFlags = Object.keys(parsedArgs.flags).filter((flag) => {
179527
+ const flagKey = flag.replace("--", "");
179528
+ const option = loginCommand.options.find((o) => o.name === flagKey);
179529
+ if (!option || typeof option === "number")
179530
+ return;
179531
+ return "deprecated" in option && option.deprecated;
179532
+ });
179533
+ if (obsoleteFlags.length) {
179534
+ const flags = obsoleteFlags.map((f) => import_chalk107.default.bold(f)).join(", ");
179535
+ output_manager_default.warn(`The following flags are deprecated: ${flags}`);
179536
+ }
179537
+ const obsoleteArguments = parsedArgs.args.slice(1);
179538
+ if (obsoleteArguments.length) {
179539
+ const args2 = obsoleteArguments.map((a) => import_chalk107.default.bold(a)).join(", ");
179540
+ output_manager_default.warn(`The following arguments are deprecated: ${args2}`);
179541
+ }
179542
+ if (obsoleteArguments.length || obsoleteFlags.length) {
179543
+ output_manager_default.print(
179544
+ // TODO: fix link
179545
+ `Read more in our ${output_manager_default.link("changelog", "https://vercel.com/changelog")}.
179546
+ `
179547
+ );
179548
+ }
179549
+ telemetry2.trackState("started");
179465
179550
  const deviceAuthorizationResponse = await deviceAuthorizationRequest();
179466
179551
  output_manager_default.debug(
179467
179552
  `'Device Authorization response:', ${await deviceAuthorizationResponse.clone().text()}`
@@ -179469,6 +179554,7 @@ async function login2(client2) {
179469
179554
  const [deviceAuthorizationError, deviceAuthorization] = await processDeviceAuthorizationResponse(deviceAuthorizationResponse);
179470
179555
  if (deviceAuthorizationError) {
179471
179556
  printError(deviceAuthorizationError);
179557
+ telemetry2.trackState("error");
179472
179558
  return 1;
179473
179559
  }
179474
179560
  const {
@@ -179479,6 +179565,7 @@ async function login2(client2) {
179479
179565
  expiresAt,
179480
179566
  interval
179481
179567
  } = deviceAuthorization;
179568
+ let rlClosed = false;
179482
179569
  const rl = import_node_readline.default.createInterface({
179483
179570
  input: process.stdin,
179484
179571
  output: process.stdout
@@ -179499,6 +179586,7 @@ async function login2(client2) {
179499
179586
  output_manager_default.print((0, import_ansi_escapes6.eraseLines)(2));
179500
179587
  output_manager_default.spinner("Waiting for authentication...");
179501
179588
  rl.close();
179589
+ rlClosed = true;
179502
179590
  }
179503
179591
  );
179504
179592
  output_manager_default.spinner("Waiting for authentication...");
@@ -179570,41 +179658,61 @@ async function login2(client2) {
179570
179658
  }
179571
179659
  error3 = await pollForToken();
179572
179660
  output_manager_default.stopSpinner();
179573
- rl.close();
179574
- if (!error3)
179661
+ if (!rlClosed) {
179662
+ rl.close();
179663
+ }
179664
+ if (!error3) {
179665
+ telemetry2.trackState("success");
179575
179666
  return 0;
179667
+ }
179668
+ telemetry2.trackState("error");
179576
179669
  printError(error3);
179577
179670
  return 1;
179578
179671
  }
179579
- var import_node_readline, import_chalk107, open6, import_ansi_escapes6;
179580
- var init_future = __esm({
179581
- "src/commands/login/future.ts"() {
179672
+ var import_chalk107, import_node_readline, open6, import_ansi_escapes6;
179673
+ var init_login3 = __esm({
179674
+ "src/commands/login/index.ts"() {
179582
179675
  "use strict";
179583
- import_node_readline = __toESM3(require("readline"));
179676
+ init_get_args();
179677
+ init_help();
179678
+ init_command20();
179679
+ init_get_flags_specification();
179680
+ init_error2();
179681
+ init_output_manager();
179682
+ init_login2();
179584
179683
  import_chalk107 = __toESM3(require_source());
179684
+ import_node_readline = __toESM3(require("readline"));
179585
179685
  open6 = __toESM3(require_open());
179586
179686
  import_ansi_escapes6 = __toESM3(require_ansi_escapes());
179587
- init_error2();
179588
179687
  init_update_current_team_after_login();
179589
179688
  init_global_path();
179590
179689
  init_pkg_name();
179591
179690
  init_emoji();
179592
179691
  init_humanize_path();
179593
179692
  init_oauth();
179594
- init_output_manager();
179595
179693
  }
179596
179694
  });
179597
179695
 
179598
- // src/commands/login/index.ts
179599
- var login_exports = {};
179600
- __export3(login_exports, {
179601
- default: () => login3
179696
+ // src/util/telemetry/commands/logout/index.ts
179697
+ var LogoutTelemetryClient;
179698
+ var init_logout = __esm({
179699
+ "src/util/telemetry/commands/logout/index.ts"() {
179700
+ "use strict";
179701
+ init_telemetry();
179702
+ LogoutTelemetryClient = class extends TelemetryClient {
179703
+ };
179704
+ }
179705
+ });
179706
+
179707
+ // src/commands/logout/index.ts
179708
+ var logout_exports = {};
179709
+ __export3(logout_exports, {
179710
+ default: () => logout
179602
179711
  });
179603
- async function login3(client2) {
179604
- const isInitialLogin = !client2.authConfig.token;
179712
+ async function logout(client2) {
179605
179713
  let parsedArgs = null;
179606
- const flagsSpecification = getFlagsSpecification(loginCommand.options);
179607
- const telemetry2 = new LoginTelemetryClient({
179714
+ const flagsSpecification = getFlagsSpecification(logoutCommand.options);
179715
+ const telemetry2 = new LogoutTelemetryClient({
179608
179716
  opts: {
179609
179717
  store: client2.telemetryEventStore
179610
179718
  }
@@ -179615,106 +179723,34 @@ async function login3(client2) {
179615
179723
  printError(error3);
179616
179724
  return 1;
179617
179725
  }
179618
- if (parsedArgs.flags["--future"]) {
179619
- telemetry2.trackCliFlagFuture("login");
179620
- return await login2(client2);
179621
- }
179622
179726
  if (parsedArgs.flags["--help"]) {
179623
- telemetry2.trackCliFlagHelp("login");
179624
- output_manager_default.print(help2(loginCommand, { columns: client2.stderr.columns }));
179727
+ telemetry2.trackCliFlagHelp("logout");
179728
+ output_manager_default.print(help2(logoutCommand, { columns: client2.stderr.columns }));
179625
179729
  return 0;
179626
179730
  }
179627
- if (parsedArgs.flags["--token"]) {
179628
- output_manager_default.error('`--token` may not be used with the "login" command');
179629
- return 2;
179630
- }
179631
- const input = parsedArgs.args[1];
179632
- let result = 1;
179633
- if (input) {
179634
- if ((0, import_email_validator.validate)(input)) {
179635
- result = await doEmailLogin(client2, input);
179636
- } else {
179637
- result = await doSamlLogin(client2, input, parsedArgs.flags["--oob"]);
179638
- }
179639
- } else if (parsedArgs.flags["--github"]) {
179640
- result = await doGithubLogin(client2, parsedArgs.flags["--oob"]);
179641
- } else if (parsedArgs.flags["--gitlab"]) {
179642
- result = await doGitlabLogin(client2, parsedArgs.flags["--oob"]);
179643
- } else if (parsedArgs.flags["--bitbucket"]) {
179644
- result = await doBitbucketLogin(client2, parsedArgs.flags["--oob"]);
179645
- } else {
179646
- result = await prompt(client2, void 0, parsedArgs.flags["--oob"]);
179647
- }
179648
- if (typeof result === "number") {
179649
- return result;
179650
- }
179651
- client2.authConfig.token = result.token;
179652
- if (result.teamId) {
179653
- client2.config.currentTeam = result.teamId;
179654
- } else {
179655
- delete client2.config.currentTeam;
179731
+ const obsoleteFlags = Object.keys(parsedArgs.flags).filter((flag) => {
179732
+ const flagKey = flag.replace("--", "");
179733
+ const option = logoutCommand.options.find((o) => o.name === flagKey);
179734
+ if (!option || typeof option === "number")
179735
+ return;
179736
+ return "deprecated" in option && option.deprecated;
179737
+ });
179738
+ if (obsoleteFlags.length) {
179739
+ const flags = obsoleteFlags.map((f) => import_chalk108.default.bold(f)).join(", ");
179740
+ output_manager_default.warn(`The following flags are deprecated: ${flags}`);
179656
179741
  }
179657
- if (isInitialLogin) {
179658
- await updateCurrentTeamAfterLogin(client2, client2.config.currentTeam);
179742
+ const obsoleteArguments = parsedArgs.args.slice(1);
179743
+ if (obsoleteArguments.length) {
179744
+ const args2 = obsoleteArguments.map((a) => import_chalk108.default.bold(a)).join(", ");
179745
+ output_manager_default.warn(`The following arguments are deprecated: ${args2}`);
179659
179746
  }
179660
- writeToAuthConfigFile(client2.authConfig);
179661
- writeToConfigFile(client2.config);
179662
- output_manager_default.debug(`Saved credentials in "${humanizePath(global_path_default())}"`);
179663
- output_manager_default.print(
179664
- `${import_chalk108.default.cyan("Congratulations!")} You are now logged in. In order to deploy something, run ${getCommandName()}.
179665
- `
179666
- );
179667
- output_manager_default.print(
179668
- `${prependEmoji(
179669
- `Connect your Git Repositories to deploy every branch push automatically (https://vercel.link/git).`,
179670
- emoji("tip")
179671
- )}
179747
+ if (obsoleteArguments.length || obsoleteFlags.length) {
179748
+ output_manager_default.print(
179749
+ // TODO: fix link
179750
+ `Read more in our ${output_manager_default.link("changelog", "https://vercel.com/changelog")}.
179672
179751
  `
179673
- );
179674
- return 0;
179675
- }
179676
- var import_email_validator, import_chalk108;
179677
- var init_login3 = __esm({
179678
- "src/commands/login/index.ts"() {
179679
- "use strict";
179680
- import_email_validator = __toESM3(require_email_validator());
179681
- import_chalk108 = __toESM3(require_source());
179682
- init_humanize_path();
179683
- init_get_args();
179684
- init_prompt();
179685
- init_saml();
179686
- init_email();
179687
- init_github();
179688
- init_gitlab();
179689
- init_bitbucket();
179690
- init_emoji();
179691
- init_pkg_name();
179692
- init_global_path();
179693
- init_files();
179694
- init_help();
179695
- init_command20();
179696
- init_update_current_team_after_login();
179697
- init_get_flags_specification();
179698
- init_error2();
179699
- init_output_manager();
179700
- init_login2();
179701
- init_future();
179702
- }
179703
- });
179704
-
179705
- // src/util/telemetry/commands/logout/index.ts
179706
- var LogoutTelemetryClient;
179707
- var init_logout = __esm({
179708
- "src/util/telemetry/commands/logout/index.ts"() {
179709
- "use strict";
179710
- init_telemetry();
179711
- LogoutTelemetryClient = class extends TelemetryClient {
179712
- };
179752
+ );
179713
179753
  }
179714
- });
179715
-
179716
- // src/commands/logout/future.ts
179717
- async function logout(client2) {
179718
179754
  const { authConfig } = client2;
179719
179755
  if (!authConfig.token) {
179720
179756
  output_manager_default.note(
@@ -179726,7 +179762,9 @@ async function logout(client2) {
179726
179762
  const revocationResponse = await revocationRequest({
179727
179763
  token: authConfig.token
179728
179764
  });
179729
- output_manager_default.debug(`'Revocation response:', ${await revocationResponse.clone().text()}`);
179765
+ output_manager_default.debug(
179766
+ `'Revocation response:', ${await revocationResponse.clone().text()}`
179767
+ );
179730
179768
  const [revocationError] = await processRevocationResponse(revocationResponse);
179731
179769
  let logoutError = false;
179732
179770
  if (revocationError) {
@@ -179751,101 +179789,21 @@ async function logout(client2) {
179751
179789
  }
179752
179790
  return 1;
179753
179791
  }
179754
- var import_error_utils31;
179755
- var init_future2 = __esm({
179756
- "src/commands/logout/future.ts"() {
179757
- "use strict";
179758
- import_error_utils31 = __toESM3(require_dist2());
179759
- init_pkg_name();
179760
- init_oauth();
179761
- init_output_manager();
179762
- }
179763
- });
179764
-
179765
- // src/commands/logout/index.ts
179766
- var logout_exports = {};
179767
- __export3(logout_exports, {
179768
- default: () => logout2
179769
- });
179770
- async function logout2(client2) {
179771
- const { authConfig, config: config2 } = client2;
179772
- let parsedArgs = null;
179773
- const flagsSpecification = getFlagsSpecification(logoutCommand.options);
179774
- const telemetry2 = new LogoutTelemetryClient({
179775
- opts: {
179776
- store: client2.telemetryEventStore
179777
- }
179778
- });
179779
- try {
179780
- parsedArgs = parseArguments(client2.argv.slice(2), flagsSpecification);
179781
- } catch (error3) {
179782
- printError(error3);
179783
- return 1;
179784
- }
179785
- if (parsedArgs.flags["--help"]) {
179786
- telemetry2.trackCliFlagHelp("logout");
179787
- output_manager_default.print(help2(logoutCommand, { columns: client2.stderr.columns }));
179788
- return 0;
179789
- }
179790
- if (authConfig.type === "oauth") {
179791
- return await logout(client2);
179792
- }
179793
- if (!authConfig.token) {
179794
- output_manager_default.note(
179795
- `Not currently logged in, so ${getCommandName("logout")} did nothing`
179796
- );
179797
- return 0;
179798
- }
179799
- output_manager_default.spinner("Logging out\u2026", 200);
179800
- let exitCode2 = 0;
179801
- try {
179802
- await client2.fetch("/v3/user/tokens/current", {
179803
- method: "DELETE",
179804
- useCurrentTeam: false
179805
- });
179806
- } catch (err) {
179807
- if (isAPIError(err)) {
179808
- if (err.status === 403) {
179809
- output_manager_default.debug("Token is invalid so it cannot be revoked");
179810
- } else if (err.status !== 200) {
179811
- output_manager_default.debug(err?.message ?? "");
179812
- exitCode2 = 1;
179813
- }
179814
- }
179815
- }
179816
- delete config2.currentTeam;
179817
- delete authConfig.token;
179818
- try {
179819
- writeToConfigFile(config2);
179820
- writeToAuthConfigFile(authConfig);
179821
- output_manager_default.debug("Configuration has been deleted");
179822
- } catch (err) {
179823
- output_manager_default.debug((0, import_error_utils32.errorToString)(err));
179824
- exitCode2 = 1;
179825
- }
179826
- if (exitCode2 === 0) {
179827
- output_manager_default.log("Logged out!");
179828
- } else {
179829
- output_manager_default.error("Failed during logout");
179830
- }
179831
- return exitCode2;
179832
- }
179833
- var import_error_utils32;
179792
+ var import_chalk108, import_error_utils31;
179834
179793
  var init_logout2 = __esm({
179835
179794
  "src/commands/logout/index.ts"() {
179836
179795
  "use strict";
179837
179796
  init_error2();
179838
- init_files();
179839
179797
  init_get_args();
179840
- init_pkg_name();
179841
- init_errors_ts();
179842
- import_error_utils32 = __toESM3(require_dist2());
179843
179798
  init_help();
179844
179799
  init_command21();
179845
179800
  init_get_flags_specification();
179846
179801
  init_output_manager();
179847
179802
  init_logout();
179848
- init_future2();
179803
+ import_chalk108 = __toESM3(require_source());
179804
+ import_error_utils31 = __toESM3(require_dist2());
179805
+ init_pkg_name();
179806
+ init_oauth();
179849
179807
  }
179850
179808
  });
179851
179809
 
@@ -181180,7 +181138,7 @@ var promote_exports = {};
181180
181138
  __export3(promote_exports, {
181181
181139
  default: () => promote_default
181182
181140
  });
181183
- var import_ms27, import_error_utils33, promote_default;
181141
+ var import_ms27, import_error_utils32, promote_default;
181184
181142
  var init_promote2 = __esm({
181185
181143
  "src/commands/promote/index.ts"() {
181186
181144
  "use strict";
@@ -181188,7 +181146,7 @@ var init_promote2 = __esm({
181188
181146
  init_get_args();
181189
181147
  init_get_project_by_cwd_or_link();
181190
181148
  init_error2();
181191
- import_error_utils33 = __toESM3(require_dist2());
181149
+ import_error_utils32 = __toESM3(require_dist2());
181192
181150
  init_request_promote();
181193
181151
  init_status2();
181194
181152
  init_command26();
@@ -181258,7 +181216,7 @@ var init_promote2 = __esm({
181258
181216
  yes
181259
181217
  });
181260
181218
  } catch (err) {
181261
- if ((0, import_error_utils33.isErrnoException)(err)) {
181219
+ if ((0, import_error_utils32.isErrnoException)(err)) {
181262
181220
  if (err.code === "ERR_CANCELED") {
181263
181221
  return 0;
181264
181222
  }
@@ -181559,7 +181517,7 @@ async function redeploy(client2) {
181559
181517
  return printDeploymentStatus(deployment, deployStamp, noWait);
181560
181518
  } catch (err) {
181561
181519
  output_manager_default.prettyError(err);
181562
- if ((0, import_error_utils34.isErrnoException)(err) && err.code === "ERR_INVALID_TEAM") {
181520
+ if ((0, import_error_utils33.isErrnoException)(err) && err.code === "ERR_INVALID_TEAM") {
181563
181521
  output_manager_default.error(
181564
181522
  `Use ${import_chalk119.default.bold("vc switch")} to change your current team`
181565
181523
  );
@@ -181567,7 +181525,7 @@ async function redeploy(client2) {
181567
181525
  return 1;
181568
181526
  }
181569
181527
  }
181570
- var import_chalk119, import_client13, import_error_utils34;
181528
+ var import_chalk119, import_client13, import_error_utils33;
181571
181529
  var init_redeploy2 = __esm({
181572
181530
  "src/commands/redeploy/index.ts"() {
181573
181531
  "use strict";
@@ -181579,7 +181537,7 @@ var init_redeploy2 = __esm({
181579
181537
  init_get_deployment_by_id_or_url();
181580
181538
  init_get_scope();
181581
181539
  init_error2();
181582
- import_error_utils34 = __toESM3(require_dist2());
181540
+ import_error_utils33 = __toESM3(require_dist2());
181583
181541
  init_util();
181584
181542
  init_print_deployment_status();
181585
181543
  init_stamp();
@@ -182233,14 +182191,14 @@ var rollback_exports = {};
182233
182191
  __export3(rollback_exports, {
182234
182192
  default: () => rollback_default
182235
182193
  });
182236
- var import_error_utils35, import_ms31, rollback_default;
182194
+ var import_error_utils34, import_ms31, rollback_default;
182237
182195
  var init_rollback2 = __esm({
182238
182196
  "src/commands/rollback/index.ts"() {
182239
182197
  "use strict";
182240
182198
  init_get_args();
182241
182199
  init_get_project_by_cwd_or_link();
182242
182200
  init_error2();
182243
- import_error_utils35 = __toESM3(require_dist2());
182201
+ import_error_utils34 = __toESM3(require_dist2());
182244
182202
  import_ms31 = __toESM3(require_ms());
182245
182203
  init_request_rollback();
182246
182204
  init_status3();
@@ -182308,7 +182266,7 @@ var init_rollback2 = __esm({
182308
182266
  timeout
182309
182267
  });
182310
182268
  } catch (err) {
182311
- if ((0, import_error_utils35.isErrnoException)(err)) {
182269
+ if ((0, import_error_utils34.isErrnoException)(err)) {
182312
182270
  if (err.code === "ERR_CANCELED") {
182313
182271
  return 0;
182314
182272
  }
@@ -183316,10 +183274,10 @@ Please select a team scope using ${getCommandName(
183316
183274
  try {
183317
183275
  email2 = await client2.input.text({
183318
183276
  message: `- ${inviteUserPrefix}`,
183319
- validate: validateEmail2
183277
+ validate: validateEmail
183320
183278
  });
183321
183279
  } catch (err) {
183322
- if (!(0, import_error_utils36.isError)(err) || err.message !== "USER_ABORT") {
183280
+ if (!(0, import_error_utils35.isError)(err) || err.message !== "USER_ABORT") {
183323
183281
  throw err;
183324
183282
  }
183325
183283
  }
@@ -183349,7 +183307,7 @@ Please select a team scope using ${getCommandName(
183349
183307
  } catch (err) {
183350
183308
  output_manager_default.stopSpinner();
183351
183309
  process.stderr.write(eraseLines(emails.length + 2));
183352
- output_manager_default.error((0, import_error_utils36.errorToString)(err));
183310
+ output_manager_default.error((0, import_error_utils35.errorToString)(err));
183353
183311
  hasError = true;
183354
183312
  for (const email3 of emails) {
183355
183313
  output_manager_default.log(`${import_chalk125.default.cyan(chars_default.tick)} ${sentEmailPrefix}${email3}`);
@@ -183370,7 +183328,7 @@ Please select a team scope using ${getCommandName(
183370
183328
  }
183371
183329
  return 0;
183372
183330
  }
183373
- var import_chalk125, import_error_utils36, validateEmail2, domains;
183331
+ var import_chalk125, import_error_utils35, validateEmail, domains;
183374
183332
  var init_invite2 = __esm({
183375
183333
  "src/commands/teams/invite.ts"() {
183376
183334
  "use strict";
@@ -183386,14 +183344,14 @@ var init_invite2 = __esm({
183386
183344
  init_get_teams();
183387
183345
  init_invite_user_to_team();
183388
183346
  init_errors_ts();
183389
- import_error_utils36 = __toESM3(require_dist2());
183347
+ import_error_utils35 = __toESM3(require_dist2());
183390
183348
  init_invite();
183391
183349
  init_output_manager();
183392
183350
  init_get_args();
183393
183351
  init_get_flags_specification();
183394
183352
  init_error2();
183395
183353
  init_command33();
183396
- validateEmail2 = (data) => email.test(data.trim()) || data.length === 0;
183354
+ validateEmail = (data) => email.test(data.trim()) || data.length === 0;
183397
183355
  domains = Array.from(
183398
183356
  /* @__PURE__ */ new Set([
183399
183357
  "aol.com",
@@ -183462,7 +183420,7 @@ async function add7(client2) {
183462
183420
  default: slug
183463
183421
  });
183464
183422
  } catch (err) {
183465
- if ((0, import_error_utils37.isError)(err) && err.message === "USER_ABORT") {
183423
+ if ((0, import_error_utils36.isError)(err) && err.message === "USER_ABORT") {
183466
183424
  output_manager_default.log("Canceled");
183467
183425
  return 0;
183468
183426
  }
@@ -183475,7 +183433,7 @@ async function add7(client2) {
183475
183433
  } catch (err) {
183476
183434
  output_manager_default.stopSpinner();
183477
183435
  output_manager_default.print(eraseLines(2));
183478
- output_manager_default.error((0, import_error_utils37.errorToString)(err));
183436
+ output_manager_default.error((0, import_error_utils36.errorToString)(err));
183479
183437
  }
183480
183438
  } while (!team);
183481
183439
  output_manager_default.stopSpinner();
@@ -183491,7 +183449,7 @@ async function add7(client2) {
183491
183449
  validate: validateName
183492
183450
  });
183493
183451
  } catch (err) {
183494
- if ((0, import_error_utils37.isError)(err) && err.message === "USER_ABORT") {
183452
+ if ((0, import_error_utils36.isError)(err) && err.message === "USER_ABORT") {
183495
183453
  output_manager_default.log("No name specified");
183496
183454
  return 2;
183497
183455
  }
@@ -183518,7 +183476,7 @@ async function add7(client2) {
183518
183476
  });
183519
183477
  return 0;
183520
183478
  }
183521
- var import_chalk126, import_error_utils37, validateSlug, validateName, teamUrlPrefix, teamNamePrefix;
183479
+ var import_chalk126, import_error_utils36, validateSlug, validateName, teamUrlPrefix, teamNamePrefix;
183522
183480
  var init_add13 = __esm({
183523
183481
  "src/commands/teams/add.ts"() {
183524
183482
  "use strict";
@@ -183531,7 +183489,7 @@ var init_add13 = __esm({
183531
183489
  init_pkg_name();
183532
183490
  init_create_team();
183533
183491
  init_patch_team();
183534
- import_error_utils37 = __toESM3(require_dist2());
183492
+ import_error_utils36 = __toESM3(require_dist2());
183535
183493
  init_output_manager();
183536
183494
  validateSlug = (value) => /^[a-z]+[a-z0-9_-]*$/.test(value);
183537
183495
  validateName = (value) => /^[ a-zA-Z0-9_-]+$/.test(value);
@@ -184160,7 +184118,7 @@ var init_whoami2 = __esm({
184160
184118
  });
184161
184119
 
184162
184120
  // src/index.ts
184163
- var import_error_utils38 = __toESM3(require_dist2());
184121
+ var import_error_utils37 = __toESM3(require_dist2());
184164
184122
  var import_path40 = require("path");
184165
184123
  var import_fs8 = require("fs");
184166
184124
  var import_fs_extra24 = __toESM3(require_lib());
@@ -184439,7 +184397,7 @@ init_errors_ts();
184439
184397
  init_errors_ts();
184440
184398
 
184441
184399
  // src/util/constants.ts
184442
- var SENTRY_DSN = "https://26a24e59ba954011919a524b341b6ab5@sentry.io/1323225";
184400
+ var SENTRY_DSN = void 0;
184443
184401
 
184444
184402
  // src/index.ts
184445
184403
  init_get_update_command();
@@ -185019,7 +184977,7 @@ var import_detect_agent = require("@vercel/detect-agent");
185019
184977
  try {
185020
184978
  process.cwd();
185021
184979
  } catch (err) {
185022
- if ((0, import_error_utils38.isError)(err) && err.message.includes("uv_cwd")) {
184980
+ if ((0, import_error_utils37.isError)(err) && err.message.includes("uv_cwd")) {
185023
184981
  console.error("Error: The current working directory does not exist.");
185024
184982
  process.exit(1);
185025
184983
  }
@@ -185128,7 +185086,7 @@ var main17 = async () => {
185128
185086
  output_manager_default.error(
185129
185087
  `An unexpected error occurred while trying to create the global directory "${humanizePath(
185130
185088
  VERCEL_DIR4
185131
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185089
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185132
185090
  );
185133
185091
  return 1;
185134
185092
  }
@@ -185136,7 +185094,7 @@ var main17 = async () => {
185136
185094
  try {
185137
185095
  config2 = readConfigFile();
185138
185096
  } catch (err) {
185139
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185097
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185140
185098
  config2 = defaultGlobalConfig;
185141
185099
  try {
185142
185100
  writeToConfigFile(config2);
@@ -185144,7 +185102,7 @@ var main17 = async () => {
185144
185102
  output_manager_default.error(
185145
185103
  `An unexpected error occurred while trying to save the config to "${humanizePath(
185146
185104
  VERCEL_CONFIG_PATH
185147
- )}" ${(0, import_error_utils38.errorToString)(err2)}`
185105
+ )}" ${(0, import_error_utils37.errorToString)(err2)}`
185148
185106
  );
185149
185107
  return 1;
185150
185108
  }
@@ -185152,7 +185110,7 @@ var main17 = async () => {
185152
185110
  output_manager_default.error(
185153
185111
  `An unexpected error occurred while trying to read the config in "${humanizePath(
185154
185112
  VERCEL_CONFIG_PATH
185155
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185113
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185156
185114
  );
185157
185115
  return 1;
185158
185116
  }
@@ -185161,7 +185119,7 @@ var main17 = async () => {
185161
185119
  try {
185162
185120
  authConfig = readAuthConfigFile();
185163
185121
  } catch (err) {
185164
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185122
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185165
185123
  authConfig = defaultAuthConfig;
185166
185124
  try {
185167
185125
  writeToAuthConfigFile(authConfig);
@@ -185169,7 +185127,7 @@ var main17 = async () => {
185169
185127
  output_manager_default.error(
185170
185128
  `An unexpected error occurred while trying to write the auth config to "${humanizePath(
185171
185129
  VERCEL_AUTH_CONFIG_PATH
185172
- )}" ${(0, import_error_utils38.errorToString)(err2)}`
185130
+ )}" ${(0, import_error_utils37.errorToString)(err2)}`
185173
185131
  );
185174
185132
  return 1;
185175
185133
  }
@@ -185177,7 +185135,7 @@ var main17 = async () => {
185177
185135
  output_manager_default.error(
185178
185136
  `An unexpected error occurred while trying to read the auth config in "${humanizePath(
185179
185137
  VERCEL_AUTH_CONFIG_PATH
185180
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185138
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185181
185139
  );
185182
185140
  return 1;
185183
185141
  }
@@ -185361,7 +185319,7 @@ var main17 = async () => {
185361
185319
  if (err instanceof Error) {
185362
185320
  output_manager_default.debug(err.stack || err.toString());
185363
185321
  }
185364
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "NOT_AUTHORIZED") {
185322
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "NOT_AUTHORIZED") {
185365
185323
  output_manager_default.prettyError({
185366
185324
  message: `You do not have access to the specified account`,
185367
185325
  link: "https://err.sh/vercel/scope-not-accessible"
@@ -185369,7 +185327,7 @@ var main17 = async () => {
185369
185327
  return 1;
185370
185328
  }
185371
185329
  output_manager_default.error(
185372
- `Not able to load user because of unexpected error: ${(0, import_error_utils38.errorToString)(err)}`
185330
+ `Not able to load user because of unexpected error: ${(0, import_error_utils37.errorToString)(err)}`
185373
185331
  );
185374
185332
  return 1;
185375
185333
  }
@@ -185384,14 +185342,14 @@ var main17 = async () => {
185384
185342
  try {
185385
185343
  teams2 = await getTeams(client);
185386
185344
  } catch (err) {
185387
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "not_authorized") {
185345
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "not_authorized") {
185388
185346
  output_manager_default.prettyError({
185389
185347
  message: `You do not have access to the specified team`,
185390
185348
  link: "https://err.sh/vercel/scope-not-accessible"
185391
185349
  });
185392
185350
  return 1;
185393
185351
  }
185394
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "rate_limited") {
185352
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "rate_limited") {
185395
185353
  output_manager_default.prettyError({
185396
185354
  message: "Rate limited. Too many requests to the same endpoint: /teams"
185397
185355
  });
@@ -185424,7 +185382,7 @@ var main17 = async () => {
185424
185382
  );
185425
185383
  telemetry2.trackCliExtension();
185426
185384
  } catch (err) {
185427
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185385
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185428
185386
  targetCommand2 = subcommand = "deploy";
185429
185387
  } else {
185430
185388
  throw err;
@@ -185600,7 +185558,7 @@ var main17 = async () => {
185600
185558
  exitCode2 = await func(client);
185601
185559
  }
185602
185560
  } catch (err) {
185603
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOTFOUND") {
185561
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOTFOUND") {
185604
185562
  const matches = /getaddrinfo ENOTFOUND (.*)$/.exec(err.message || "");
185605
185563
  if (matches && matches[1]) {
185606
185564
  const hostname3 = matches[1];
@@ -185615,7 +185573,7 @@ var main17 = async () => {
185615
185573
  }
185616
185574
  return 1;
185617
185575
  }
185618
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ECONNRESET") {
185576
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ECONNRESET") {
185619
185577
  const matches = /request to https:\/\/(.*?)\//.exec(err.message || "");
185620
185578
  const hostname3 = matches?.[1];
185621
185579
  if (hostname3) {
@@ -185627,7 +185585,7 @@ var main17 = async () => {
185627
185585
  }
185628
185586
  return 1;
185629
185587
  }
185630
- if ((0, import_error_utils38.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
185588
+ if ((0, import_error_utils37.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
185631
185589
  output_manager_default.prettyError(err);
185632
185590
  return 1;
185633
185591
  }
@@ -185636,7 +185594,7 @@ var main17 = async () => {
185636
185594
  output_manager_default.prettyError(err);
185637
185595
  return 1;
185638
185596
  }
185639
- if ((0, import_error_utils38.isErrnoException)(err)) {
185597
+ if ((0, import_error_utils37.isErrnoException)(err)) {
185640
185598
  if (typeof err.stack === "string") {
185641
185599
  output_manager_default.debug(err.stack);
185642
185600
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "47.0.4",
3
+ "version": "47.0.6-canary.a412e8ac",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -26,16 +26,16 @@
26
26
  "@vercel/detect-agent": "0.2.0",
27
27
  "@vercel/fun": "1.1.6",
28
28
  "@vercel/go": "3.2.3",
29
- "@vercel/express": "0.0.13",
30
- "@vercel/hono": "0.0.21",
29
+ "@vercel/express": "0.0.14",
30
+ "@vercel/hono": "0.0.22",
31
31
  "@vercel/hydrogen": "1.2.4",
32
32
  "@vercel/next": "4.12.4",
33
- "@vercel/node": "5.3.20",
33
+ "@vercel/node": "5.3.21",
34
34
  "@vercel/python": "5.0.0",
35
35
  "@vercel/redwood": "2.3.6",
36
36
  "@vercel/remix-builder": "5.4.12",
37
37
  "@vercel/ruby": "2.2.1",
38
- "@vercel/static-build": "2.7.22",
38
+ "@vercel/static-build": "2.7.23",
39
39
  "chokidar": "4.0.0",
40
40
  "jose": "5.9.6"
41
41
  },
@@ -85,8 +85,8 @@
85
85
  "@vercel/client": "16.0.1",
86
86
  "@vercel/detect-agent": "0.2.0",
87
87
  "@vercel/error-utils": "2.0.3",
88
- "@vercel/frameworks": "3.8.2",
89
- "@vercel/fs-detectors": "5.5.0",
88
+ "@vercel/frameworks": "3.8.4",
89
+ "@vercel/fs-detectors": "5.5.2",
90
90
  "@vercel/routing-utils": "5.1.1",
91
91
  "@vitest/expect": "2.1.3",
92
92
  "ajv": "6.12.3",