vercel 47.0.5 → 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 +251 -303
  2. package/package.json +4 -4
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",
@@ -120267,7 +120308,7 @@ var require_local_file_system_detector = __commonJS2({
120267
120308
  var import_promises4 = __toESM4(require("fs/promises"));
120268
120309
  var import_path41 = require("path");
120269
120310
  var import_filesystem = require_filesystem();
120270
- var import_error_utils39 = require_dist2();
120311
+ var import_error_utils38 = require_dist2();
120271
120312
  var LocalFileSystemDetector5 = class _LocalFileSystemDetector extends import_filesystem.DetectorFilesystem {
120272
120313
  constructor(rootPath) {
120273
120314
  super();
@@ -120278,7 +120319,7 @@ var require_local_file_system_detector = __commonJS2({
120278
120319
  await import_promises4.default.stat(this.getFilePath(name));
120279
120320
  return true;
120280
120321
  } catch (err) {
120281
- if ((0, import_error_utils39.isErrnoException)(err) && err.code === "ENOENT") {
120322
+ if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
120282
120323
  return false;
120283
120324
  }
120284
120325
  throw err;
@@ -179433,32 +179474,6 @@ var init_mcp2 = __esm({
179433
179474
  }
179434
179475
  });
179435
179476
 
179436
- // ../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js
179437
- var require_email_validator = __commonJS2({
179438
- "../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js"(exports2) {
179439
- "use strict";
179440
- 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])+$/;
179441
- exports2.validate = function(email2) {
179442
- if (!email2)
179443
- return false;
179444
- if (email2.length > 254)
179445
- return false;
179446
- var valid = tester.test(email2);
179447
- if (!valid)
179448
- return false;
179449
- var parts = email2.split("@");
179450
- if (parts[0].length > 64)
179451
- return false;
179452
- var domainParts = parts[1].split(".");
179453
- if (domainParts.some(function(part) {
179454
- return part.length > 63;
179455
- }))
179456
- return false;
179457
- return true;
179458
- };
179459
- }
179460
- });
179461
-
179462
179477
  // src/util/telemetry/commands/login/index.ts
179463
179478
  var LoginTelemetryClient;
179464
179479
  var init_login2 = __esm({
@@ -179466,12 +179481,72 @@ var init_login2 = __esm({
179466
179481
  "use strict";
179467
179482
  init_telemetry();
179468
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
+ }
179469
179494
  };
179470
179495
  }
179471
179496
  });
179472
179497
 
179473
- // src/commands/login/future.ts
179498
+ // src/commands/login/index.ts
179499
+ var login_exports = {};
179500
+ __export3(login_exports, {
179501
+ default: () => login2
179502
+ });
179474
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");
179475
179550
  const deviceAuthorizationResponse = await deviceAuthorizationRequest();
179476
179551
  output_manager_default.debug(
179477
179552
  `'Device Authorization response:', ${await deviceAuthorizationResponse.clone().text()}`
@@ -179479,6 +179554,7 @@ async function login2(client2) {
179479
179554
  const [deviceAuthorizationError, deviceAuthorization] = await processDeviceAuthorizationResponse(deviceAuthorizationResponse);
179480
179555
  if (deviceAuthorizationError) {
179481
179556
  printError(deviceAuthorizationError);
179557
+ telemetry2.trackState("error");
179482
179558
  return 1;
179483
179559
  }
179484
179560
  const {
@@ -179489,6 +179565,7 @@ async function login2(client2) {
179489
179565
  expiresAt,
179490
179566
  interval
179491
179567
  } = deviceAuthorization;
179568
+ let rlClosed = false;
179492
179569
  const rl = import_node_readline.default.createInterface({
179493
179570
  input: process.stdin,
179494
179571
  output: process.stdout
@@ -179509,6 +179586,7 @@ async function login2(client2) {
179509
179586
  output_manager_default.print((0, import_ansi_escapes6.eraseLines)(2));
179510
179587
  output_manager_default.spinner("Waiting for authentication...");
179511
179588
  rl.close();
179589
+ rlClosed = true;
179512
179590
  }
179513
179591
  );
179514
179592
  output_manager_default.spinner("Waiting for authentication...");
@@ -179580,41 +179658,61 @@ async function login2(client2) {
179580
179658
  }
179581
179659
  error3 = await pollForToken();
179582
179660
  output_manager_default.stopSpinner();
179583
- rl.close();
179584
- if (!error3)
179661
+ if (!rlClosed) {
179662
+ rl.close();
179663
+ }
179664
+ if (!error3) {
179665
+ telemetry2.trackState("success");
179585
179666
  return 0;
179667
+ }
179668
+ telemetry2.trackState("error");
179586
179669
  printError(error3);
179587
179670
  return 1;
179588
179671
  }
179589
- var import_node_readline, import_chalk107, open6, import_ansi_escapes6;
179590
- var init_future = __esm({
179591
- "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"() {
179592
179675
  "use strict";
179593
- 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();
179594
179683
  import_chalk107 = __toESM3(require_source());
179684
+ import_node_readline = __toESM3(require("readline"));
179595
179685
  open6 = __toESM3(require_open());
179596
179686
  import_ansi_escapes6 = __toESM3(require_ansi_escapes());
179597
- init_error2();
179598
179687
  init_update_current_team_after_login();
179599
179688
  init_global_path();
179600
179689
  init_pkg_name();
179601
179690
  init_emoji();
179602
179691
  init_humanize_path();
179603
179692
  init_oauth();
179604
- init_output_manager();
179605
179693
  }
179606
179694
  });
179607
179695
 
179608
- // src/commands/login/index.ts
179609
- var login_exports = {};
179610
- __export3(login_exports, {
179611
- 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
+ }
179612
179705
  });
179613
- async function login3(client2) {
179614
- const isInitialLogin = !client2.authConfig.token;
179706
+
179707
+ // src/commands/logout/index.ts
179708
+ var logout_exports = {};
179709
+ __export3(logout_exports, {
179710
+ default: () => logout
179711
+ });
179712
+ async function logout(client2) {
179615
179713
  let parsedArgs = null;
179616
- const flagsSpecification = getFlagsSpecification(loginCommand.options);
179617
- const telemetry2 = new LoginTelemetryClient({
179714
+ const flagsSpecification = getFlagsSpecification(logoutCommand.options);
179715
+ const telemetry2 = new LogoutTelemetryClient({
179618
179716
  opts: {
179619
179717
  store: client2.telemetryEventStore
179620
179718
  }
@@ -179625,106 +179723,34 @@ async function login3(client2) {
179625
179723
  printError(error3);
179626
179724
  return 1;
179627
179725
  }
179628
- if (parsedArgs.flags["--future"]) {
179629
- telemetry2.trackCliFlagFuture("login");
179630
- return await login2(client2);
179631
- }
179632
179726
  if (parsedArgs.flags["--help"]) {
179633
- telemetry2.trackCliFlagHelp("login");
179634
- 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 }));
179635
179729
  return 0;
179636
179730
  }
179637
- if (parsedArgs.flags["--token"]) {
179638
- output_manager_default.error('`--token` may not be used with the "login" command');
179639
- return 2;
179640
- }
179641
- const input = parsedArgs.args[1];
179642
- let result = 1;
179643
- if (input) {
179644
- if ((0, import_email_validator.validate)(input)) {
179645
- result = await doEmailLogin(client2, input);
179646
- } else {
179647
- result = await doSamlLogin(client2, input, parsedArgs.flags["--oob"]);
179648
- }
179649
- } else if (parsedArgs.flags["--github"]) {
179650
- result = await doGithubLogin(client2, parsedArgs.flags["--oob"]);
179651
- } else if (parsedArgs.flags["--gitlab"]) {
179652
- result = await doGitlabLogin(client2, parsedArgs.flags["--oob"]);
179653
- } else if (parsedArgs.flags["--bitbucket"]) {
179654
- result = await doBitbucketLogin(client2, parsedArgs.flags["--oob"]);
179655
- } else {
179656
- result = await prompt(client2, void 0, parsedArgs.flags["--oob"]);
179657
- }
179658
- if (typeof result === "number") {
179659
- return result;
179660
- }
179661
- client2.authConfig.token = result.token;
179662
- if (result.teamId) {
179663
- client2.config.currentTeam = result.teamId;
179664
- } else {
179665
- 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}`);
179666
179741
  }
179667
- if (isInitialLogin) {
179668
- 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}`);
179669
179746
  }
179670
- writeToAuthConfigFile(client2.authConfig);
179671
- writeToConfigFile(client2.config);
179672
- output_manager_default.debug(`Saved credentials in "${humanizePath(global_path_default())}"`);
179673
- output_manager_default.print(
179674
- `${import_chalk108.default.cyan("Congratulations!")} You are now logged in. In order to deploy something, run ${getCommandName()}.
179675
- `
179676
- );
179677
- output_manager_default.print(
179678
- `${prependEmoji(
179679
- `Connect your Git Repositories to deploy every branch push automatically (https://vercel.link/git).`,
179680
- emoji("tip")
179681
- )}
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")}.
179682
179751
  `
179683
- );
179684
- return 0;
179685
- }
179686
- var import_email_validator, import_chalk108;
179687
- var init_login3 = __esm({
179688
- "src/commands/login/index.ts"() {
179689
- "use strict";
179690
- import_email_validator = __toESM3(require_email_validator());
179691
- import_chalk108 = __toESM3(require_source());
179692
- init_humanize_path();
179693
- init_get_args();
179694
- init_prompt();
179695
- init_saml();
179696
- init_email();
179697
- init_github();
179698
- init_gitlab();
179699
- init_bitbucket();
179700
- init_emoji();
179701
- init_pkg_name();
179702
- init_global_path();
179703
- init_files();
179704
- init_help();
179705
- init_command20();
179706
- init_update_current_team_after_login();
179707
- init_get_flags_specification();
179708
- init_error2();
179709
- init_output_manager();
179710
- init_login2();
179711
- init_future();
179712
- }
179713
- });
179714
-
179715
- // src/util/telemetry/commands/logout/index.ts
179716
- var LogoutTelemetryClient;
179717
- var init_logout = __esm({
179718
- "src/util/telemetry/commands/logout/index.ts"() {
179719
- "use strict";
179720
- init_telemetry();
179721
- LogoutTelemetryClient = class extends TelemetryClient {
179722
- };
179752
+ );
179723
179753
  }
179724
- });
179725
-
179726
- // src/commands/logout/future.ts
179727
- async function logout(client2) {
179728
179754
  const { authConfig } = client2;
179729
179755
  if (!authConfig.token) {
179730
179756
  output_manager_default.note(
@@ -179736,7 +179762,9 @@ async function logout(client2) {
179736
179762
  const revocationResponse = await revocationRequest({
179737
179763
  token: authConfig.token
179738
179764
  });
179739
- output_manager_default.debug(`'Revocation response:', ${await revocationResponse.clone().text()}`);
179765
+ output_manager_default.debug(
179766
+ `'Revocation response:', ${await revocationResponse.clone().text()}`
179767
+ );
179740
179768
  const [revocationError] = await processRevocationResponse(revocationResponse);
179741
179769
  let logoutError = false;
179742
179770
  if (revocationError) {
@@ -179761,101 +179789,21 @@ async function logout(client2) {
179761
179789
  }
179762
179790
  return 1;
179763
179791
  }
179764
- var import_error_utils31;
179765
- var init_future2 = __esm({
179766
- "src/commands/logout/future.ts"() {
179767
- "use strict";
179768
- import_error_utils31 = __toESM3(require_dist2());
179769
- init_pkg_name();
179770
- init_oauth();
179771
- init_output_manager();
179772
- }
179773
- });
179774
-
179775
- // src/commands/logout/index.ts
179776
- var logout_exports = {};
179777
- __export3(logout_exports, {
179778
- default: () => logout2
179779
- });
179780
- async function logout2(client2) {
179781
- const { authConfig, config: config2 } = client2;
179782
- let parsedArgs = null;
179783
- const flagsSpecification = getFlagsSpecification(logoutCommand.options);
179784
- const telemetry2 = new LogoutTelemetryClient({
179785
- opts: {
179786
- store: client2.telemetryEventStore
179787
- }
179788
- });
179789
- try {
179790
- parsedArgs = parseArguments(client2.argv.slice(2), flagsSpecification);
179791
- } catch (error3) {
179792
- printError(error3);
179793
- return 1;
179794
- }
179795
- if (parsedArgs.flags["--help"]) {
179796
- telemetry2.trackCliFlagHelp("logout");
179797
- output_manager_default.print(help2(logoutCommand, { columns: client2.stderr.columns }));
179798
- return 0;
179799
- }
179800
- if (authConfig.type === "oauth") {
179801
- return await logout(client2);
179802
- }
179803
- if (!authConfig.token) {
179804
- output_manager_default.note(
179805
- `Not currently logged in, so ${getCommandName("logout")} did nothing`
179806
- );
179807
- return 0;
179808
- }
179809
- output_manager_default.spinner("Logging out\u2026", 200);
179810
- let exitCode2 = 0;
179811
- try {
179812
- await client2.fetch("/v3/user/tokens/current", {
179813
- method: "DELETE",
179814
- useCurrentTeam: false
179815
- });
179816
- } catch (err) {
179817
- if (isAPIError(err)) {
179818
- if (err.status === 403) {
179819
- output_manager_default.debug("Token is invalid so it cannot be revoked");
179820
- } else if (err.status !== 200) {
179821
- output_manager_default.debug(err?.message ?? "");
179822
- exitCode2 = 1;
179823
- }
179824
- }
179825
- }
179826
- delete config2.currentTeam;
179827
- delete authConfig.token;
179828
- try {
179829
- writeToConfigFile(config2);
179830
- writeToAuthConfigFile(authConfig);
179831
- output_manager_default.debug("Configuration has been deleted");
179832
- } catch (err) {
179833
- output_manager_default.debug((0, import_error_utils32.errorToString)(err));
179834
- exitCode2 = 1;
179835
- }
179836
- if (exitCode2 === 0) {
179837
- output_manager_default.log("Logged out!");
179838
- } else {
179839
- output_manager_default.error("Failed during logout");
179840
- }
179841
- return exitCode2;
179842
- }
179843
- var import_error_utils32;
179792
+ var import_chalk108, import_error_utils31;
179844
179793
  var init_logout2 = __esm({
179845
179794
  "src/commands/logout/index.ts"() {
179846
179795
  "use strict";
179847
179796
  init_error2();
179848
- init_files();
179849
179797
  init_get_args();
179850
- init_pkg_name();
179851
- init_errors_ts();
179852
- import_error_utils32 = __toESM3(require_dist2());
179853
179798
  init_help();
179854
179799
  init_command21();
179855
179800
  init_get_flags_specification();
179856
179801
  init_output_manager();
179857
179802
  init_logout();
179858
- init_future2();
179803
+ import_chalk108 = __toESM3(require_source());
179804
+ import_error_utils31 = __toESM3(require_dist2());
179805
+ init_pkg_name();
179806
+ init_oauth();
179859
179807
  }
179860
179808
  });
179861
179809
 
@@ -181190,7 +181138,7 @@ var promote_exports = {};
181190
181138
  __export3(promote_exports, {
181191
181139
  default: () => promote_default
181192
181140
  });
181193
- var import_ms27, import_error_utils33, promote_default;
181141
+ var import_ms27, import_error_utils32, promote_default;
181194
181142
  var init_promote2 = __esm({
181195
181143
  "src/commands/promote/index.ts"() {
181196
181144
  "use strict";
@@ -181198,7 +181146,7 @@ var init_promote2 = __esm({
181198
181146
  init_get_args();
181199
181147
  init_get_project_by_cwd_or_link();
181200
181148
  init_error2();
181201
- import_error_utils33 = __toESM3(require_dist2());
181149
+ import_error_utils32 = __toESM3(require_dist2());
181202
181150
  init_request_promote();
181203
181151
  init_status2();
181204
181152
  init_command26();
@@ -181268,7 +181216,7 @@ var init_promote2 = __esm({
181268
181216
  yes
181269
181217
  });
181270
181218
  } catch (err) {
181271
- if ((0, import_error_utils33.isErrnoException)(err)) {
181219
+ if ((0, import_error_utils32.isErrnoException)(err)) {
181272
181220
  if (err.code === "ERR_CANCELED") {
181273
181221
  return 0;
181274
181222
  }
@@ -181569,7 +181517,7 @@ async function redeploy(client2) {
181569
181517
  return printDeploymentStatus(deployment, deployStamp, noWait);
181570
181518
  } catch (err) {
181571
181519
  output_manager_default.prettyError(err);
181572
- 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") {
181573
181521
  output_manager_default.error(
181574
181522
  `Use ${import_chalk119.default.bold("vc switch")} to change your current team`
181575
181523
  );
@@ -181577,7 +181525,7 @@ async function redeploy(client2) {
181577
181525
  return 1;
181578
181526
  }
181579
181527
  }
181580
- var import_chalk119, import_client13, import_error_utils34;
181528
+ var import_chalk119, import_client13, import_error_utils33;
181581
181529
  var init_redeploy2 = __esm({
181582
181530
  "src/commands/redeploy/index.ts"() {
181583
181531
  "use strict";
@@ -181589,7 +181537,7 @@ var init_redeploy2 = __esm({
181589
181537
  init_get_deployment_by_id_or_url();
181590
181538
  init_get_scope();
181591
181539
  init_error2();
181592
- import_error_utils34 = __toESM3(require_dist2());
181540
+ import_error_utils33 = __toESM3(require_dist2());
181593
181541
  init_util();
181594
181542
  init_print_deployment_status();
181595
181543
  init_stamp();
@@ -182243,14 +182191,14 @@ var rollback_exports = {};
182243
182191
  __export3(rollback_exports, {
182244
182192
  default: () => rollback_default
182245
182193
  });
182246
- var import_error_utils35, import_ms31, rollback_default;
182194
+ var import_error_utils34, import_ms31, rollback_default;
182247
182195
  var init_rollback2 = __esm({
182248
182196
  "src/commands/rollback/index.ts"() {
182249
182197
  "use strict";
182250
182198
  init_get_args();
182251
182199
  init_get_project_by_cwd_or_link();
182252
182200
  init_error2();
182253
- import_error_utils35 = __toESM3(require_dist2());
182201
+ import_error_utils34 = __toESM3(require_dist2());
182254
182202
  import_ms31 = __toESM3(require_ms());
182255
182203
  init_request_rollback();
182256
182204
  init_status3();
@@ -182318,7 +182266,7 @@ var init_rollback2 = __esm({
182318
182266
  timeout
182319
182267
  });
182320
182268
  } catch (err) {
182321
- if ((0, import_error_utils35.isErrnoException)(err)) {
182269
+ if ((0, import_error_utils34.isErrnoException)(err)) {
182322
182270
  if (err.code === "ERR_CANCELED") {
182323
182271
  return 0;
182324
182272
  }
@@ -183326,10 +183274,10 @@ Please select a team scope using ${getCommandName(
183326
183274
  try {
183327
183275
  email2 = await client2.input.text({
183328
183276
  message: `- ${inviteUserPrefix}`,
183329
- validate: validateEmail2
183277
+ validate: validateEmail
183330
183278
  });
183331
183279
  } catch (err) {
183332
- if (!(0, import_error_utils36.isError)(err) || err.message !== "USER_ABORT") {
183280
+ if (!(0, import_error_utils35.isError)(err) || err.message !== "USER_ABORT") {
183333
183281
  throw err;
183334
183282
  }
183335
183283
  }
@@ -183359,7 +183307,7 @@ Please select a team scope using ${getCommandName(
183359
183307
  } catch (err) {
183360
183308
  output_manager_default.stopSpinner();
183361
183309
  process.stderr.write(eraseLines(emails.length + 2));
183362
- output_manager_default.error((0, import_error_utils36.errorToString)(err));
183310
+ output_manager_default.error((0, import_error_utils35.errorToString)(err));
183363
183311
  hasError = true;
183364
183312
  for (const email3 of emails) {
183365
183313
  output_manager_default.log(`${import_chalk125.default.cyan(chars_default.tick)} ${sentEmailPrefix}${email3}`);
@@ -183380,7 +183328,7 @@ Please select a team scope using ${getCommandName(
183380
183328
  }
183381
183329
  return 0;
183382
183330
  }
183383
- var import_chalk125, import_error_utils36, validateEmail2, domains;
183331
+ var import_chalk125, import_error_utils35, validateEmail, domains;
183384
183332
  var init_invite2 = __esm({
183385
183333
  "src/commands/teams/invite.ts"() {
183386
183334
  "use strict";
@@ -183396,14 +183344,14 @@ var init_invite2 = __esm({
183396
183344
  init_get_teams();
183397
183345
  init_invite_user_to_team();
183398
183346
  init_errors_ts();
183399
- import_error_utils36 = __toESM3(require_dist2());
183347
+ import_error_utils35 = __toESM3(require_dist2());
183400
183348
  init_invite();
183401
183349
  init_output_manager();
183402
183350
  init_get_args();
183403
183351
  init_get_flags_specification();
183404
183352
  init_error2();
183405
183353
  init_command33();
183406
- validateEmail2 = (data) => email.test(data.trim()) || data.length === 0;
183354
+ validateEmail = (data) => email.test(data.trim()) || data.length === 0;
183407
183355
  domains = Array.from(
183408
183356
  /* @__PURE__ */ new Set([
183409
183357
  "aol.com",
@@ -183472,7 +183420,7 @@ async function add7(client2) {
183472
183420
  default: slug
183473
183421
  });
183474
183422
  } catch (err) {
183475
- if ((0, import_error_utils37.isError)(err) && err.message === "USER_ABORT") {
183423
+ if ((0, import_error_utils36.isError)(err) && err.message === "USER_ABORT") {
183476
183424
  output_manager_default.log("Canceled");
183477
183425
  return 0;
183478
183426
  }
@@ -183485,7 +183433,7 @@ async function add7(client2) {
183485
183433
  } catch (err) {
183486
183434
  output_manager_default.stopSpinner();
183487
183435
  output_manager_default.print(eraseLines(2));
183488
- output_manager_default.error((0, import_error_utils37.errorToString)(err));
183436
+ output_manager_default.error((0, import_error_utils36.errorToString)(err));
183489
183437
  }
183490
183438
  } while (!team);
183491
183439
  output_manager_default.stopSpinner();
@@ -183501,7 +183449,7 @@ async function add7(client2) {
183501
183449
  validate: validateName
183502
183450
  });
183503
183451
  } catch (err) {
183504
- if ((0, import_error_utils37.isError)(err) && err.message === "USER_ABORT") {
183452
+ if ((0, import_error_utils36.isError)(err) && err.message === "USER_ABORT") {
183505
183453
  output_manager_default.log("No name specified");
183506
183454
  return 2;
183507
183455
  }
@@ -183528,7 +183476,7 @@ async function add7(client2) {
183528
183476
  });
183529
183477
  return 0;
183530
183478
  }
183531
- var import_chalk126, import_error_utils37, validateSlug, validateName, teamUrlPrefix, teamNamePrefix;
183479
+ var import_chalk126, import_error_utils36, validateSlug, validateName, teamUrlPrefix, teamNamePrefix;
183532
183480
  var init_add13 = __esm({
183533
183481
  "src/commands/teams/add.ts"() {
183534
183482
  "use strict";
@@ -183541,7 +183489,7 @@ var init_add13 = __esm({
183541
183489
  init_pkg_name();
183542
183490
  init_create_team();
183543
183491
  init_patch_team();
183544
- import_error_utils37 = __toESM3(require_dist2());
183492
+ import_error_utils36 = __toESM3(require_dist2());
183545
183493
  init_output_manager();
183546
183494
  validateSlug = (value) => /^[a-z]+[a-z0-9_-]*$/.test(value);
183547
183495
  validateName = (value) => /^[ a-zA-Z0-9_-]+$/.test(value);
@@ -184170,7 +184118,7 @@ var init_whoami2 = __esm({
184170
184118
  });
184171
184119
 
184172
184120
  // src/index.ts
184173
- var import_error_utils38 = __toESM3(require_dist2());
184121
+ var import_error_utils37 = __toESM3(require_dist2());
184174
184122
  var import_path40 = require("path");
184175
184123
  var import_fs8 = require("fs");
184176
184124
  var import_fs_extra24 = __toESM3(require_lib());
@@ -184449,7 +184397,7 @@ init_errors_ts();
184449
184397
  init_errors_ts();
184450
184398
 
184451
184399
  // src/util/constants.ts
184452
- var SENTRY_DSN = "https://26a24e59ba954011919a524b341b6ab5@sentry.io/1323225";
184400
+ var SENTRY_DSN = void 0;
184453
184401
 
184454
184402
  // src/index.ts
184455
184403
  init_get_update_command();
@@ -185029,7 +184977,7 @@ var import_detect_agent = require("@vercel/detect-agent");
185029
184977
  try {
185030
184978
  process.cwd();
185031
184979
  } catch (err) {
185032
- 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")) {
185033
184981
  console.error("Error: The current working directory does not exist.");
185034
184982
  process.exit(1);
185035
184983
  }
@@ -185138,7 +185086,7 @@ var main17 = async () => {
185138
185086
  output_manager_default.error(
185139
185087
  `An unexpected error occurred while trying to create the global directory "${humanizePath(
185140
185088
  VERCEL_DIR4
185141
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185089
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185142
185090
  );
185143
185091
  return 1;
185144
185092
  }
@@ -185146,7 +185094,7 @@ var main17 = async () => {
185146
185094
  try {
185147
185095
  config2 = readConfigFile();
185148
185096
  } catch (err) {
185149
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185097
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185150
185098
  config2 = defaultGlobalConfig;
185151
185099
  try {
185152
185100
  writeToConfigFile(config2);
@@ -185154,7 +185102,7 @@ var main17 = async () => {
185154
185102
  output_manager_default.error(
185155
185103
  `An unexpected error occurred while trying to save the config to "${humanizePath(
185156
185104
  VERCEL_CONFIG_PATH
185157
- )}" ${(0, import_error_utils38.errorToString)(err2)}`
185105
+ )}" ${(0, import_error_utils37.errorToString)(err2)}`
185158
185106
  );
185159
185107
  return 1;
185160
185108
  }
@@ -185162,7 +185110,7 @@ var main17 = async () => {
185162
185110
  output_manager_default.error(
185163
185111
  `An unexpected error occurred while trying to read the config in "${humanizePath(
185164
185112
  VERCEL_CONFIG_PATH
185165
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185113
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185166
185114
  );
185167
185115
  return 1;
185168
185116
  }
@@ -185171,7 +185119,7 @@ var main17 = async () => {
185171
185119
  try {
185172
185120
  authConfig = readAuthConfigFile();
185173
185121
  } catch (err) {
185174
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185122
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185175
185123
  authConfig = defaultAuthConfig;
185176
185124
  try {
185177
185125
  writeToAuthConfigFile(authConfig);
@@ -185179,7 +185127,7 @@ var main17 = async () => {
185179
185127
  output_manager_default.error(
185180
185128
  `An unexpected error occurred while trying to write the auth config to "${humanizePath(
185181
185129
  VERCEL_AUTH_CONFIG_PATH
185182
- )}" ${(0, import_error_utils38.errorToString)(err2)}`
185130
+ )}" ${(0, import_error_utils37.errorToString)(err2)}`
185183
185131
  );
185184
185132
  return 1;
185185
185133
  }
@@ -185187,7 +185135,7 @@ var main17 = async () => {
185187
185135
  output_manager_default.error(
185188
185136
  `An unexpected error occurred while trying to read the auth config in "${humanizePath(
185189
185137
  VERCEL_AUTH_CONFIG_PATH
185190
- )}" ${(0, import_error_utils38.errorToString)(err)}`
185138
+ )}" ${(0, import_error_utils37.errorToString)(err)}`
185191
185139
  );
185192
185140
  return 1;
185193
185141
  }
@@ -185371,7 +185319,7 @@ var main17 = async () => {
185371
185319
  if (err instanceof Error) {
185372
185320
  output_manager_default.debug(err.stack || err.toString());
185373
185321
  }
185374
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "NOT_AUTHORIZED") {
185322
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "NOT_AUTHORIZED") {
185375
185323
  output_manager_default.prettyError({
185376
185324
  message: `You do not have access to the specified account`,
185377
185325
  link: "https://err.sh/vercel/scope-not-accessible"
@@ -185379,7 +185327,7 @@ var main17 = async () => {
185379
185327
  return 1;
185380
185328
  }
185381
185329
  output_manager_default.error(
185382
- `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)}`
185383
185331
  );
185384
185332
  return 1;
185385
185333
  }
@@ -185394,14 +185342,14 @@ var main17 = async () => {
185394
185342
  try {
185395
185343
  teams2 = await getTeams(client);
185396
185344
  } catch (err) {
185397
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "not_authorized") {
185345
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "not_authorized") {
185398
185346
  output_manager_default.prettyError({
185399
185347
  message: `You do not have access to the specified team`,
185400
185348
  link: "https://err.sh/vercel/scope-not-accessible"
185401
185349
  });
185402
185350
  return 1;
185403
185351
  }
185404
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "rate_limited") {
185352
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "rate_limited") {
185405
185353
  output_manager_default.prettyError({
185406
185354
  message: "Rate limited. Too many requests to the same endpoint: /teams"
185407
185355
  });
@@ -185434,7 +185382,7 @@ var main17 = async () => {
185434
185382
  );
185435
185383
  telemetry2.trackCliExtension();
185436
185384
  } catch (err) {
185437
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOENT") {
185385
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOENT") {
185438
185386
  targetCommand2 = subcommand = "deploy";
185439
185387
  } else {
185440
185388
  throw err;
@@ -185610,7 +185558,7 @@ var main17 = async () => {
185610
185558
  exitCode2 = await func(client);
185611
185559
  }
185612
185560
  } catch (err) {
185613
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ENOTFOUND") {
185561
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ENOTFOUND") {
185614
185562
  const matches = /getaddrinfo ENOTFOUND (.*)$/.exec(err.message || "");
185615
185563
  if (matches && matches[1]) {
185616
185564
  const hostname3 = matches[1];
@@ -185625,7 +185573,7 @@ var main17 = async () => {
185625
185573
  }
185626
185574
  return 1;
185627
185575
  }
185628
- if ((0, import_error_utils38.isErrnoException)(err) && err.code === "ECONNRESET") {
185576
+ if ((0, import_error_utils37.isErrnoException)(err) && err.code === "ECONNRESET") {
185629
185577
  const matches = /request to https:\/\/(.*?)\//.exec(err.message || "");
185630
185578
  const hostname3 = matches?.[1];
185631
185579
  if (hostname3) {
@@ -185637,7 +185585,7 @@ var main17 = async () => {
185637
185585
  }
185638
185586
  return 1;
185639
185587
  }
185640
- 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")) {
185641
185589
  output_manager_default.prettyError(err);
185642
185590
  return 1;
185643
185591
  }
@@ -185646,7 +185594,7 @@ var main17 = async () => {
185646
185594
  output_manager_default.prettyError(err);
185647
185595
  return 1;
185648
185596
  }
185649
- if ((0, import_error_utils38.isErrnoException)(err)) {
185597
+ if ((0, import_error_utils37.isErrnoException)(err)) {
185650
185598
  if (typeof err.stack === "string") {
185651
185599
  output_manager_default.debug(err.stack);
185652
185600
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "47.0.5",
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",
@@ -35,7 +35,7 @@
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",