vercel 51.8.0 → 52.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/chunks/{add-6TAGTCM2.js → add-TH62Y34V.js} +8 -8
  2. package/dist/chunks/{chunk-TAOVG4PS.js → chunk-4Q5VS23S.js} +3 -3
  3. package/dist/chunks/{chunk-VGWGLBUC.js → chunk-5EDL2IVB.js} +2 -2
  4. package/dist/chunks/{chunk-Y3HAJQCS.js → chunk-5EZVRZOJ.js} +88 -40
  5. package/dist/chunks/{chunk-BHDZCUTT.js → chunk-77JGNI4Z.js} +2 -2
  6. package/dist/chunks/{chunk-N5IS4YW4.js → chunk-7L7NSLYK.js} +22 -4
  7. package/dist/chunks/{chunk-GE6G37P4.js → chunk-ABDTA3V2.js} +1 -1
  8. package/dist/chunks/{chunk-R4ZPBOD7.js → chunk-BUPMO37Q.js} +86 -16
  9. package/dist/chunks/{chunk-G6RXZLQ2.js → chunk-DFUTSURK.js} +2 -2
  10. package/dist/chunks/{chunk-DQPDIHII.js → chunk-EVDPX5BO.js} +2 -2
  11. package/dist/chunks/{chunk-UP2QQYRS.js → chunk-FPTKAORS.js} +4 -4
  12. package/dist/chunks/{chunk-IHOJDWAH.js → chunk-FUUQ2WSC.js} +6 -6
  13. package/dist/chunks/{chunk-KUY7VLTK.js → chunk-FUYNVB23.js} +3 -3
  14. package/dist/chunks/{chunk-H2PHTCJL.js → chunk-H2O3DQDC.js} +5 -5
  15. package/dist/chunks/{chunk-CRZM5WM2.js → chunk-HMM7V4AU.js} +2 -2
  16. package/dist/chunks/{chunk-KM6BIRA3.js → chunk-I5OH27IT.js} +4 -4
  17. package/dist/chunks/{chunk-XKHLPA6V.js → chunk-IABMY4Q3.js} +22 -20
  18. package/dist/chunks/{chunk-GLDQ23LD.js → chunk-IEKDY4FP.js} +1 -1
  19. package/dist/chunks/{chunk-4PQA6H63.js → chunk-JCLLQ23G.js} +1 -1
  20. package/dist/chunks/{chunk-RFMC2QXQ.js → chunk-JNOMOD7R.js} +15 -11
  21. package/dist/chunks/{chunk-UWKTUK3W.js → chunk-LN5ZMLBU.js} +2 -2
  22. package/dist/chunks/{chunk-SKXUP3WW.js → chunk-LSPPTDRH.js} +2 -2
  23. package/dist/chunks/{chunk-N45K6NXC.js → chunk-MSJX3VKI.js} +1 -1
  24. package/dist/chunks/{chunk-BJQTGP42.js → chunk-NCUOSZ6X.js} +2 -2
  25. package/dist/chunks/{chunk-6WHQFFN2.js → chunk-NJYOE4D7.js} +1 -1
  26. package/dist/chunks/{chunk-CUCRUPRY.js → chunk-O7R67TAG.js} +2 -2
  27. package/dist/chunks/{chunk-HRVQZZ3Q.js → chunk-ODASAX4M.js} +1 -1
  28. package/dist/chunks/{chunk-UBOSX7RM.js → chunk-OHOYN7R2.js} +3 -3
  29. package/dist/chunks/{chunk-BNVEZBEW.js → chunk-OVFHCZBS.js} +7 -7
  30. package/dist/chunks/{chunk-DVQ4SIWF.js → chunk-P3H4MP5H.js} +2 -2
  31. package/dist/chunks/{chunk-LDXYSGPZ.js → chunk-QPPVRYOB.js} +2 -2
  32. package/dist/chunks/{chunk-5VQMJCHT.js → chunk-QTX36APP.js} +4 -4
  33. package/dist/chunks/{chunk-AQ4L3FS4.js → chunk-WCMV6TSF.js} +1 -1
  34. package/dist/chunks/{chunk-ECRBC4HL.js → chunk-XZ7CVBQ4.js} +26 -0
  35. package/dist/chunks/{chunk-U7MQBM3F.js → chunk-ZI2C6YH2.js} +25 -8
  36. package/dist/chunks/{chunk-45TDB64X.js → chunk-ZJKFUXSF.js} +2 -2
  37. package/dist/chunks/{chunk-BQI2CW7A.js → chunk-ZZDXEXJ5.js} +9 -9
  38. package/dist/chunks/{compile-vercel-config-3LQ66C4J.js → compile-vercel-config-H5YVD5ZD.js} +4 -4
  39. package/dist/chunks/{delete-57Y647IJ.js → delete-WW5B2IIN.js} +6 -6
  40. package/dist/chunks/{disable-E7QAIMBG.js → disable-WSV2JYK6.js} +6 -6
  41. package/dist/chunks/{discard-6JNSEHUD.js → discard-BTIMKAXZ.js} +6 -6
  42. package/dist/chunks/{edit-XKOVDTOO.js → edit-LOQJITTM.js} +7 -7
  43. package/dist/chunks/{enable-HXRMVTBB.js → enable-XMWWLBL7.js} +6 -6
  44. package/dist/chunks/{export-MRADQNKX.js → export-P2OSIM3L.js} +6 -6
  45. package/dist/chunks/{inspect-AOOSX4VO.js → inspect-5NKOJ64V.js} +8 -8
  46. package/dist/chunks/{list-YIDM3OOG.js → list-OLUANKMJ.js} +9 -9
  47. package/dist/chunks/{list-LQ4BDCK7.js → list-ZSRD6M3H.js} +6 -6
  48. package/dist/chunks/{ls-7GZP6WNF.js → ls-3YMXPZ7A.js} +8 -8
  49. package/dist/chunks/{publish-VPLDS2W7.js → publish-T2HPYN5D.js} +6 -6
  50. package/dist/chunks/{query-SRFELIAP.js → query-ZKNQWF5L.js} +8 -8
  51. package/dist/chunks/{reorder-UWAXWRXX.js → reorder-WQA5LQ7X.js} +6 -6
  52. package/dist/chunks/{restore-YHQNMAGI.js → restore-QTREUYWW.js} +6 -6
  53. package/dist/chunks/{rm-HA373E4I.js → rm-4JKXZFP3.js} +8 -8
  54. package/dist/chunks/{rule-inspect-WMR7SVJY.js → rule-inspect-3PUS2RKH.js} +8 -8
  55. package/dist/chunks/{rules-CPRD5HRH.js → rules-GBXWDR3P.js} +8 -8
  56. package/dist/chunks/{schema-AGVIOWAU.js → schema-TXE5TXMY.js} +9 -9
  57. package/dist/chunks/{types-QNN5CDCB.js → types-FAFL42RV.js} +4 -4
  58. package/dist/chunks/{update-K5GTSDIT.js → update-57KTLPIK.js} +8 -8
  59. package/dist/commands/build/index.js +15 -15
  60. package/dist/commands/deploy/index.js +24 -24
  61. package/dist/commands/dev/index.js +14 -14
  62. package/dist/commands/env/index.js +99 -20
  63. package/dist/commands/link/index.js +18 -18
  64. package/dist/commands/list/index.js +10 -10
  65. package/dist/commands-bulk.js +335 -122
  66. package/dist/index.js +26 -45
  67. package/dist/version.mjs +1 -1
  68. package/package.json +22 -21
@@ -28,7 +28,7 @@ import {
28
28
  runInteractiveEditLoop,
29
29
  stripQuotes,
30
30
  validateActionFlags
31
- } from "./chunks/chunk-HRVQZZ3Q.js";
31
+ } from "./chunks/chunk-ODASAX4M.js";
32
32
  import {
33
33
  getRouteVersions
34
34
  } from "./chunks/chunk-AHU7WNL2.js";
@@ -45,7 +45,7 @@ import {
45
45
  parsePosition,
46
46
  parseSubcommandArgs,
47
47
  withGlobalFlags
48
- } from "./chunks/chunk-KM6BIRA3.js";
48
+ } from "./chunks/chunk-I5OH27IT.js";
49
49
  import {
50
50
  indent_default
51
51
  } from "./chunks/chunk-A3NYPUKZ.js";
@@ -59,11 +59,11 @@ import {
59
59
  resolveOpenApiTagForProjectsCli,
60
60
  resolveOpenApiTagForTeamsCli,
61
61
  tryOpenApiFallback
62
- } from "./chunks/chunk-BNVEZBEW.js";
62
+ } from "./chunks/chunk-OVFHCZBS.js";
63
63
  import {
64
64
  getUpdateCommand,
65
65
  isGlobal
66
- } from "./chunks/chunk-SKXUP3WW.js";
66
+ } from "./chunks/chunk-LSPPTDRH.js";
67
67
  import {
68
68
  Now,
69
69
  collectContactInformation,
@@ -85,16 +85,16 @@ import {
85
85
  require_format,
86
86
  require_jsonlines,
87
87
  setupDomain
88
- } from "./chunks/chunk-BQI2CW7A.js";
88
+ } from "./chunks/chunk-ZZDXEXJ5.js";
89
89
  import {
90
+ persistAuthConfig,
90
91
  processRevocationResponse,
91
92
  readLocalConfig,
92
93
  require_open,
93
94
  revocationRequest,
94
95
  sleep,
95
- writeToAuthConfigFile,
96
96
  writeToConfigFile
97
- } from "./chunks/chunk-Y3HAJQCS.js";
97
+ } from "./chunks/chunk-5EZVRZOJ.js";
98
98
  import "./chunks/chunk-V5P25P7F.js";
99
99
  import {
100
100
  getCustomEnvironments,
@@ -105,7 +105,7 @@ import {
105
105
  } from "./chunks/chunk-C5YP6KFI.js";
106
106
  import {
107
107
  formatTable
108
- } from "./chunks/chunk-G6RXZLQ2.js";
108
+ } from "./chunks/chunk-DFUTSURK.js";
109
109
  import "./chunks/chunk-LOS7HHU3.js";
110
110
  import {
111
111
  isValidName
@@ -117,14 +117,14 @@ import {
117
117
  getDeployment,
118
118
  mapCertError,
119
119
  toHost
120
- } from "./chunks/chunk-N45K6NXC.js";
120
+ } from "./chunks/chunk-MSJX3VKI.js";
121
121
  import {
122
122
  getScope
123
- } from "./chunks/chunk-CUCRUPRY.js";
123
+ } from "./chunks/chunk-O7R67TAG.js";
124
124
  import {
125
125
  formatEnvironment,
126
126
  validateLsArgs
127
- } from "./chunks/chunk-45TDB64X.js";
127
+ } from "./chunks/chunk-ZJKFUXSF.js";
128
128
  import {
129
129
  validateJsonOutput
130
130
  } from "./chunks/chunk-XPKWKPWA.js";
@@ -351,6 +351,7 @@ import {
351
351
  teamsCommand,
352
352
  telemetryCommand,
353
353
  tokenSubcommand,
354
+ tokenSubcommand2,
354
355
  tokensCommand,
355
356
  tokensSubcommand,
356
357
  transferInSubcommand,
@@ -364,7 +365,7 @@ import {
364
365
  webAnalyticsSubcommand,
365
366
  webhooksCommand,
366
367
  whoamiCommand
367
- } from "./chunks/chunk-R4ZPBOD7.js";
368
+ } from "./chunks/chunk-BUPMO37Q.js";
368
369
  import {
369
370
  addSubcommand as addSubcommand9,
370
371
  deleteSubcommand,
@@ -380,21 +381,21 @@ import {
380
381
  reorderSubcommand,
381
382
  restoreSubcommand as restoreSubcommand2,
382
383
  routesCommand
383
- } from "./chunks/chunk-CRZM5WM2.js";
384
+ } from "./chunks/chunk-HMM7V4AU.js";
384
385
  import {
385
386
  metricsCommand,
386
387
  schemaSubcommand
387
- } from "./chunks/chunk-BHDZCUTT.js";
388
- import "./chunks/chunk-BJQTGP42.js";
388
+ } from "./chunks/chunk-77JGNI4Z.js";
389
+ import "./chunks/chunk-NCUOSZ6X.js";
389
390
  import {
390
391
  activityCommand,
391
392
  typesSubcommand
392
- } from "./chunks/chunk-UWKTUK3W.js";
393
+ } from "./chunks/chunk-LN5ZMLBU.js";
393
394
  import {
394
395
  alertsCommand,
395
396
  inspectSubcommand,
396
397
  listSubcommand
397
- } from "./chunks/chunk-TAOVG4PS.js";
398
+ } from "./chunks/chunk-4Q5VS23S.js";
398
399
  import {
399
400
  rulesAddSubcommand,
400
401
  rulesAggregateCommand,
@@ -402,26 +403,26 @@ import {
402
403
  rulesLsSubcommand,
403
404
  rulesRmSubcommand,
404
405
  rulesUpdateSubcommand
405
- } from "./chunks/chunk-DVQ4SIWF.js";
406
- import "./chunks/chunk-VGWGLBUC.js";
406
+ } from "./chunks/chunk-P3H4MP5H.js";
407
+ import "./chunks/chunk-5EDL2IVB.js";
407
408
  import {
408
409
  main
409
- } from "./chunks/chunk-IHOJDWAH.js";
410
- import "./chunks/chunk-6WHQFFN2.js";
410
+ } from "./chunks/chunk-FUUQ2WSC.js";
411
+ import "./chunks/chunk-NJYOE4D7.js";
411
412
  import {
412
413
  ua_default
413
- } from "./chunks/chunk-4PQA6H63.js";
414
+ } from "./chunks/chunk-JCLLQ23G.js";
414
415
  import {
415
416
  require_execa
416
- } from "./chunks/chunk-AQ4L3FS4.js";
417
+ } from "./chunks/chunk-WCMV6TSF.js";
417
418
  import {
418
419
  ensureLink
419
- } from "./chunks/chunk-5VQMJCHT.js";
420
- import "./chunks/chunk-H2PHTCJL.js";
421
- import "./chunks/chunk-KUY7VLTK.js";
420
+ } from "./chunks/chunk-QTX36APP.js";
421
+ import "./chunks/chunk-H2O3DQDC.js";
422
+ import "./chunks/chunk-FUYNVB23.js";
422
423
  import {
423
424
  autoInstallVercelPlugin
424
- } from "./chunks/chunk-UBOSX7RM.js";
425
+ } from "./chunks/chunk-OHOYN7R2.js";
425
426
  import {
426
427
  AGENT_ACTION,
427
428
  AGENT_REASON,
@@ -429,10 +430,10 @@ import {
429
430
  } from "./chunks/chunk-E3NE4SKN.js";
430
431
  import {
431
432
  help
432
- } from "./chunks/chunk-LDXYSGPZ.js";
433
+ } from "./chunks/chunk-QPPVRYOB.js";
433
434
  import {
434
435
  table
435
- } from "./chunks/chunk-GE6G37P4.js";
436
+ } from "./chunks/chunk-ABDTA3V2.js";
436
437
  import {
437
438
  STANDARD_ENVIRONMENTS,
438
439
  VERCEL_CONFIG_EXTENSIONS,
@@ -472,7 +473,7 @@ import {
472
473
  resolveProjectCwd,
473
474
  selectAndParseRemoteUrl,
474
475
  selectOrg
475
- } from "./chunks/chunk-U7MQBM3F.js";
476
+ } from "./chunks/chunk-ZI2C6YH2.js";
476
477
  import {
477
478
  TelemetryClient
478
479
  } from "./chunks/chunk-U3WLEFHU.js";
@@ -487,7 +488,7 @@ import {
487
488
  outputActionRequired,
488
489
  outputAgentError,
489
490
  shouldEmitNonInteractiveCommandError
490
- } from "./chunks/chunk-XKHLPA6V.js";
491
+ } from "./chunks/chunk-IABMY4Q3.js";
491
492
  import {
492
493
  elapsed,
493
494
  require_ms,
@@ -502,7 +503,7 @@ import {
502
503
  globalCliFlagTakesValue,
503
504
  parseArguments,
504
505
  printError
505
- } from "./chunks/chunk-RFMC2QXQ.js";
506
+ } from "./chunks/chunk-JNOMOD7R.js";
506
507
  import {
507
508
  APIError,
508
509
  AliasInUse,
@@ -555,8 +556,9 @@ import {
555
556
  packageName,
556
557
  pkg_default,
557
558
  require_bytes,
558
- require_lib as require_lib2
559
- } from "./chunks/chunk-ECRBC4HL.js";
559
+ require_lib as require_lib2,
560
+ stripSensitiveAuthArgs
561
+ } from "./chunks/chunk-XZ7CVBQ4.js";
560
562
  import {
561
563
  emoji,
562
564
  eraseLines,
@@ -844,7 +846,7 @@ async function activity(client) {
844
846
  return 0;
845
847
  }
846
848
  telemetry2.trackCliSubcommandTypes(subcommandOriginal);
847
- const typesFn = (await import("./chunks/types-QNN5CDCB.js")).default;
849
+ const typesFn = (await import("./chunks/types-FAFL42RV.js")).default;
848
850
  return typesFn(client, telemetry2);
849
851
  }
850
852
  default: {
@@ -854,7 +856,7 @@ async function activity(client) {
854
856
  return 0;
855
857
  }
856
858
  telemetry2.trackCliSubcommandLs(subcommandOriginal);
857
- const listFn = (await import("./chunks/list-LQ4BDCK7.js")).default;
859
+ const listFn = (await import("./chunks/list-ZSRD6M3H.js")).default;
858
860
  return listFn(client, telemetry2);
859
861
  }
860
862
  }
@@ -1331,17 +1333,17 @@ async function alerts(client) {
1331
1333
  switch (subcommand) {
1332
1334
  case "inspect": {
1333
1335
  telemetry2.trackCliSubcommandInspect(subcommandOriginal);
1334
- const inspectFn = (await import("./chunks/inspect-AOOSX4VO.js")).default;
1336
+ const inspectFn = (await import("./chunks/inspect-5NKOJ64V.js")).default;
1335
1337
  return inspectFn(client, args);
1336
1338
  }
1337
1339
  case "rules": {
1338
1340
  telemetry2.trackCliSubcommandRules(args[0] ?? "ls");
1339
- const rulesFn = (await import("./chunks/rules-CPRD5HRH.js")).default;
1341
+ const rulesFn = (await import("./chunks/rules-GBXWDR3P.js")).default;
1340
1342
  return rulesFn(client, args);
1341
1343
  }
1342
1344
  default: {
1343
1345
  telemetry2.trackCliSubcommandLs(subcommandOriginal);
1344
- const listFn = (await import("./chunks/list-YIDM3OOG.js")).default;
1346
+ const listFn = (await import("./chunks/list-OLUANKMJ.js")).default;
1345
1347
  return listFn(client, telemetry2);
1346
1348
  }
1347
1349
  }
@@ -2377,8 +2379,8 @@ var BisectTelemetryClient = class extends TelemetryClient {
2377
2379
  });
2378
2380
  }
2379
2381
  }
2380
- trackCliFlagOpen(open11) {
2381
- if (open11) {
2382
+ trackCliFlagOpen(open12) {
2383
+ if (open12) {
2382
2384
  this.trackCliFlag("open");
2383
2385
  }
2384
2386
  }
@@ -4370,7 +4372,7 @@ async function main3(client) {
4370
4372
  help(command, { parent: blobCommand, columns: client.stderr.columns })
4371
4373
  );
4372
4374
  }
4373
- const token = await getBlobRWToken(client, client.argv);
4375
+ const token2 = await getBlobRWToken(client, client.argv);
4374
4376
  telemetry2.trackCliOptionRwToken();
4375
4377
  switch (subcommand) {
4376
4378
  case "list":
@@ -4380,11 +4382,11 @@ async function main3(client) {
4380
4382
  return 2;
4381
4383
  }
4382
4384
  telemetry2.trackCliSubcommandList(subcommandOriginal);
4383
- if (!token.success) {
4384
- printError(token.error);
4385
+ if (!token2.success) {
4386
+ printError(token2.error);
4385
4387
  return 1;
4386
4388
  }
4387
- return list3(client, args, token.token);
4389
+ return list3(client, args, token2.token);
4388
4390
  case "put":
4389
4391
  if (needHelp) {
4390
4392
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4392,11 +4394,11 @@ async function main3(client) {
4392
4394
  return 2;
4393
4395
  }
4394
4396
  telemetry2.trackCliSubcommandPut(subcommandOriginal);
4395
- if (!token.success) {
4396
- printError(token.error);
4397
+ if (!token2.success) {
4398
+ printError(token2.error);
4397
4399
  return 1;
4398
4400
  }
4399
- return put2(client, args, token.token);
4401
+ return put2(client, args, token2.token);
4400
4402
  case "get":
4401
4403
  if (needHelp) {
4402
4404
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4404,11 +4406,11 @@ async function main3(client) {
4404
4406
  return 2;
4405
4407
  }
4406
4408
  telemetry2.trackCliSubcommandGet(subcommandOriginal);
4407
- if (!token.success) {
4408
- printError(token.error);
4409
+ if (!token2.success) {
4410
+ printError(token2.error);
4409
4411
  return 1;
4410
4412
  }
4411
- return get2(client, args, token.token);
4413
+ return get2(client, args, token2.token);
4412
4414
  case "del":
4413
4415
  if (needHelp) {
4414
4416
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4416,11 +4418,11 @@ async function main3(client) {
4416
4418
  return 2;
4417
4419
  }
4418
4420
  telemetry2.trackCliSubcommandDel(subcommandOriginal);
4419
- if (!token.success) {
4420
- printError(token.error);
4421
+ if (!token2.success) {
4422
+ printError(token2.error);
4421
4423
  return 1;
4422
4424
  }
4423
- return del2(client, args, token.token);
4425
+ return del2(client, args, token2.token);
4424
4426
  case "copy":
4425
4427
  if (needHelp) {
4426
4428
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4428,11 +4430,11 @@ async function main3(client) {
4428
4430
  return 2;
4429
4431
  }
4430
4432
  telemetry2.trackCliSubcommandCopy(subcommandOriginal);
4431
- if (!token.success) {
4432
- printError(token.error);
4433
+ if (!token2.success) {
4434
+ printError(token2.error);
4433
4435
  return 1;
4434
4436
  }
4435
- return copy2(client, args, token.token);
4437
+ return copy2(client, args, token2.token);
4436
4438
  case "create-store":
4437
4439
  if (needHelp) {
4438
4440
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4448,7 +4450,7 @@ async function main3(client) {
4448
4450
  return 2;
4449
4451
  }
4450
4452
  telemetry2.trackCliSubcommandDeleteStore(subcommandOriginal);
4451
- return removeStore(client, args, token);
4453
+ return removeStore(client, args, token2);
4452
4454
  case "get-store":
4453
4455
  if (needHelp) {
4454
4456
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4456,7 +4458,7 @@ async function main3(client) {
4456
4458
  return 2;
4457
4459
  }
4458
4460
  telemetry2.trackCliSubcommandGetStore(subcommandOriginal);
4459
- return getStore(client, args, token);
4461
+ return getStore(client, args, token2);
4460
4462
  case "list-stores":
4461
4463
  if (needHelp) {
4462
4464
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -4472,11 +4474,11 @@ async function main3(client) {
4472
4474
  return 2;
4473
4475
  }
4474
4476
  telemetry2.trackCliSubcommandEmptyStore(subcommandOriginal);
4475
- if (!token.success) {
4476
- printError(token.error);
4477
+ if (!token2.success) {
4478
+ printError(token2.error);
4477
4479
  return 1;
4478
4480
  }
4479
- return emptyStore(client, args, token.token, token);
4481
+ return emptyStore(client, args, token2.token, token2);
4480
4482
  default:
4481
4483
  output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG6));
4482
4484
  output_manager_default.print(help(blobCommand, { columns: client.stderr.columns }));
@@ -5716,6 +5718,12 @@ var ConnexTelemetryClient = class extends TelemetryClient {
5716
5718
  value: actual
5717
5719
  });
5718
5720
  }
5721
+ trackCliSubcommandToken(actual) {
5722
+ this.trackCliSubcommand({
5723
+ subcommand: "token",
5724
+ value: actual
5725
+ });
5726
+ }
5719
5727
  trackCliOptionLimit(v) {
5720
5728
  if (v !== void 0) {
5721
5729
  this.trackCliOption({
@@ -5758,11 +5766,11 @@ var POLL_INTERVAL_MS = 2e3;
5758
5766
  var MAX_POLL_DURATION_MS = 30 * 60 * 1e3;
5759
5767
  var MAX_EARLY_404_COUNT = 3;
5760
5768
  function generateRequestCode() {
5761
- const original = randomBytes(37).toString("base64url");
5762
- const hash = createHash("sha256").update(original).digest("base64url");
5763
- return { original, hash };
5769
+ const verifier = randomBytes(37).toString("base64url");
5770
+ const requestCode = createHash("sha256").update(verifier).digest("base64url");
5771
+ return { verifier, requestCode };
5764
5772
  }
5765
- async function awaitConnexResult(client, originalCode) {
5773
+ async function awaitConnexResult(client, verifier) {
5766
5774
  const deadline = Date.now() + MAX_POLL_DURATION_MS;
5767
5775
  let early404Count = 0;
5768
5776
  let lastProgress;
@@ -5770,7 +5778,7 @@ async function awaitConnexResult(client, originalCode) {
5770
5778
  await sleep(POLL_INTERVAL_MS);
5771
5779
  try {
5772
5780
  const result = await client.fetch(
5773
- `/v1/connex/result/${encodeURIComponent(originalCode)}`
5781
+ `/v1/connex/result/${encodeURIComponent(verifier)}`
5774
5782
  );
5775
5783
  if (result.status === "success" && result.data) {
5776
5784
  return result.data;
@@ -5843,12 +5851,12 @@ async function create2(client, args, flags) {
5843
5851
  validate: (val) => val.trim().length > 0 || "Name cannot be empty"
5844
5852
  });
5845
5853
  }
5846
- const { original, hash } = generateRequestCode();
5854
+ const { verifier, requestCode } = generateRequestCode();
5847
5855
  const link = await getProjectLink(client, client.cwd);
5848
5856
  const body = {
5849
5857
  service: serviceType,
5850
5858
  name,
5851
- request_code: hash
5859
+ request_code: requestCode
5852
5860
  };
5853
5861
  if (link?.projectId) {
5854
5862
  body.projectId = link.projectId;
@@ -5887,7 +5895,7 @@ ${browserUrl}`);
5887
5895
  (err) => output_manager_default.debug(`Failed to open browser: ${err}`)
5888
5896
  );
5889
5897
  output_manager_default.spinner("Waiting for you to complete setup in the browser...");
5890
- const resultFromBrowser = await awaitConnexResult(client, original);
5898
+ const resultFromBrowser = await awaitConnexResult(client, verifier);
5891
5899
  output_manager_default.stopSpinner();
5892
5900
  if (resultFromBrowser && "clientId" in resultFromBrowser && typeof resultFromBrowser.clientId === "string") {
5893
5901
  const clientId = resultFromBrowser.clientId;
@@ -6019,10 +6027,177 @@ async function list5(client, flags) {
6019
6027
  return 0;
6020
6028
  }
6021
6029
 
6030
+ // src/commands/connex/token.ts
6031
+ var import_open4 = __toESM(require_open(), 1);
6032
+ async function token(client, args, flags) {
6033
+ const formatResult = validateJsonOutput(flags);
6034
+ if (!formatResult.valid) {
6035
+ output_manager_default.error(formatResult.error);
6036
+ return 1;
6037
+ }
6038
+ const asJson = formatResult.jsonOutput;
6039
+ const clientId = args[0];
6040
+ if (!clientId) {
6041
+ output_manager_default.error("Missing client ID or UID. Usage: vercel connex token <id>");
6042
+ return 1;
6043
+ }
6044
+ const subject = flags["--subject"];
6045
+ if (subject && subject !== "app" && subject !== "user") {
6046
+ output_manager_default.error('Invalid --subject value. Must be "app" or "user".');
6047
+ return 1;
6048
+ }
6049
+ await selectConnexTeam(client, "Select the team for this token request");
6050
+ const body = {};
6051
+ if (subject === "app") {
6052
+ body.subject = { type: "app" };
6053
+ } else if (subject === "user") {
6054
+ body.subject = { type: "user", id: client.authConfig.userId };
6055
+ }
6056
+ if (flags["--installation-id"]) {
6057
+ body.installationId = flags["--installation-id"];
6058
+ }
6059
+ if (flags["--scopes"]) {
6060
+ body.scopes = parseScopes(flags["--scopes"]);
6061
+ }
6062
+ output_manager_default.spinner("Fetching token...");
6063
+ const result = await fetchToken(client, clientId, body);
6064
+ output_manager_default.stopSpinner();
6065
+ if (result.ok) {
6066
+ return printTokenResult(client, result.data, asJson);
6067
+ }
6068
+ const errorCode = result.errorCode;
6069
+ const errorMessage = result.errorMessage ?? "Failed to get token";
6070
+ if (errorCode === "not_found") {
6071
+ output_manager_default.error("Client not found or Connex is not enabled for this team.");
6072
+ return 1;
6073
+ }
6074
+ if (errorCode === "unresolved_token") {
6075
+ output_manager_default.error(
6076
+ `${errorMessage} This client does not support getting a token for the requested subject.`
6077
+ );
6078
+ return 1;
6079
+ }
6080
+ if (!isActionable(errorCode)) {
6081
+ output_manager_default.error(errorMessage);
6082
+ return 1;
6083
+ }
6084
+ const teamId = client.config.currentTeam;
6085
+ if (!teamId) {
6086
+ output_manager_default.error(
6087
+ `${errorMessage} Unable to build recovery URL: no team resolved.`
6088
+ );
6089
+ return 1;
6090
+ }
6091
+ const actionLabel = errorCode === "user_authorization_required" ? "authorization" : "installation";
6092
+ const attemptRecovery = !client.nonInteractive && Boolean(client.stdin.isTTY && client.stdout.isTTY);
6093
+ if (!attemptRecovery) {
6094
+ const { requestCode: requestCode2 } = generateRequestCode();
6095
+ const actionUrl2 = buildActionUrl(errorCode, clientId, teamId, requestCode2);
6096
+ output_manager_default.error(errorMessage);
6097
+ output_manager_default.log(`To ${actionLabel}, open: ${actionUrl2}`);
6098
+ output_manager_default.log(
6099
+ `Or re-run \`vercel connex token ${clientId}\` in an interactive terminal.`
6100
+ );
6101
+ return 1;
6102
+ }
6103
+ output_manager_default.error(errorMessage);
6104
+ if (!flags["--yes"]) {
6105
+ const confirmed = await client.input.confirm(
6106
+ `Open browser to ${actionLabel}?`,
6107
+ true
6108
+ );
6109
+ if (!confirmed) {
6110
+ return 0;
6111
+ }
6112
+ }
6113
+ const { verifier, requestCode } = generateRequestCode();
6114
+ const actionUrl = buildActionUrl(errorCode, clientId, teamId, requestCode);
6115
+ output_manager_default.log(`Opening browser for ${actionLabel}...`);
6116
+ output_manager_default.log(`If the browser doesn't open, visit:
6117
+ ${actionUrl}`);
6118
+ (0, import_open4.default)(actionUrl).catch(
6119
+ (err) => output_manager_default.debug(`Failed to open browser: ${err}`)
6120
+ );
6121
+ output_manager_default.spinner(`Waiting for ${actionLabel} to complete in the browser...`);
6122
+ const pollData = await awaitConnexResult(client, verifier);
6123
+ output_manager_default.stopSpinner();
6124
+ if (!pollData) {
6125
+ return 1;
6126
+ }
6127
+ const retryBody = { ...body };
6128
+ if (pollData.installationId && !retryBody.installationId) {
6129
+ retryBody.installationId = pollData.installationId;
6130
+ }
6131
+ output_manager_default.spinner("Fetching token...");
6132
+ const retryResult = await fetchToken(client, clientId, retryBody);
6133
+ output_manager_default.stopSpinner();
6134
+ if (retryResult.ok) {
6135
+ return printTokenResult(client, retryResult.data, asJson);
6136
+ }
6137
+ output_manager_default.error(
6138
+ retryResult.errorMessage ?? `Failed to get token after ${actionLabel}`
6139
+ );
6140
+ return 1;
6141
+ }
6142
+ function parseScopes(raw) {
6143
+ return raw.split(/[\s,]+/).map((s) => s.trim()).filter(Boolean);
6144
+ }
6145
+ function isActionable(code2) {
6146
+ return code2 === "user_authorization_required" || code2 === "client_installation_required";
6147
+ }
6148
+ function buildActionUrl(code2, clientId, teamId, requestCode) {
6149
+ const path3 = code2 === "user_authorization_required" ? "authorize" : "install";
6150
+ const params = new URLSearchParams({
6151
+ teamId,
6152
+ request_code: requestCode
6153
+ });
6154
+ return `https://vercel.com/api/v1/connex/${path3}/${encodeURIComponent(clientId)}?${params.toString()}`;
6155
+ }
6156
+ function printTokenResult(client, data, asJson) {
6157
+ if (asJson) {
6158
+ client.stdout.write(`${JSON.stringify(data, null, 2)}
6159
+ `);
6160
+ } else {
6161
+ client.stdout.write(`${data.token}
6162
+ `);
6163
+ }
6164
+ return 0;
6165
+ }
6166
+ async function fetchToken(client, clientId, body) {
6167
+ try {
6168
+ const data = await client.fetch(
6169
+ `/v1/connex/token/${encodeURIComponent(clientId)}`,
6170
+ {
6171
+ method: "POST",
6172
+ body: JSON.stringify(body),
6173
+ headers: { "Content-Type": "application/json" }
6174
+ }
6175
+ );
6176
+ return { ok: true, data };
6177
+ } catch (err) {
6178
+ const serverError = extractApiError(err);
6179
+ return {
6180
+ ok: false,
6181
+ errorCode: serverError.code,
6182
+ errorMessage: serverError.message
6183
+ };
6184
+ }
6185
+ }
6186
+ function extractApiError(err) {
6187
+ if (typeof err === "object" && err !== null) {
6188
+ const errObj = err;
6189
+ const code2 = typeof errObj.code === "string" ? errObj.code : void 0;
6190
+ const message = typeof errObj.serverMessage === "string" ? errObj.serverMessage : typeof errObj.message === "string" ? errObj.message : "Unknown error";
6191
+ return { code: code2, message };
6192
+ }
6193
+ return { message: "Unknown error" };
6194
+ }
6195
+
6022
6196
  // src/commands/connex/index.ts
6023
6197
  var COMMAND_CONFIG9 = {
6024
6198
  create: getCommandAliases(createSubcommand2),
6025
- list: getCommandAliases(listSubcommand4)
6199
+ list: getCommandAliases(listSubcommand4),
6200
+ token: getCommandAliases(tokenSubcommand)
6026
6201
  };
6027
6202
  async function connex(client) {
6028
6203
  const telemetry2 = new ConnexTelemetryClient({
@@ -6089,6 +6264,17 @@ async function connex(client) {
6089
6264
  telemetry2.trackCliOptionFormat(listParsedArgs.flags["--format"]);
6090
6265
  return await list5(client, listParsedArgs.flags);
6091
6266
  }
6267
+ case "token": {
6268
+ if (needHelp) {
6269
+ telemetry2.trackCliFlagHelp("connex", subcommandOriginal);
6270
+ printHelp(tokenSubcommand);
6271
+ return 0;
6272
+ }
6273
+ telemetry2.trackCliSubcommandToken(subcommandOriginal);
6274
+ const tokenFlagsSpec = getFlagsSpecification(tokenSubcommand.options);
6275
+ const tokenParsedArgs = parseArguments(subArgs, tokenFlagsSpec);
6276
+ return await token(client, tokenParsedArgs.args, tokenParsedArgs.flags);
6277
+ }
6092
6278
  default: {
6093
6279
  const validSubcommands = Object.keys(COMMAND_CONFIG9).join(" | ");
6094
6280
  const missingSubcommand = subArgs.length === 0;
@@ -7807,15 +7993,15 @@ function getAutomationBypassToken(protectionBypass) {
7807
7993
  if (!protectionBypass) {
7808
7994
  throw new Error("No protection bypass tokens found");
7809
7995
  }
7810
- const token = Object.keys(protectionBypass).find(
7996
+ const token2 = Object.keys(protectionBypass).find(
7811
7997
  (key) => protectionBypass[key].scope === "automation-bypass"
7812
7998
  );
7813
- if (!token) {
7999
+ if (!token2) {
7814
8000
  throw new Error(
7815
8001
  "No automation bypass token found in protection bypass settings"
7816
8002
  );
7817
8003
  }
7818
- return token;
8004
+ return token2;
7819
8005
  }
7820
8006
  async function getOrCreateDeploymentProtectionToken(client, { project, org }) {
7821
8007
  if (process.env.VERCEL_AUTOMATION_BYPASS_SECRET) {
@@ -7831,12 +8017,12 @@ async function getOrCreateDeploymentProtectionToken(client, { project, org }) {
7831
8017
  return protectionBypass;
7832
8018
  }
7833
8019
  }
7834
- const token = await createDeploymentProtectionToken(
8020
+ const token2 = await createDeploymentProtectionToken(
7835
8021
  client,
7836
8022
  project.id,
7837
8023
  org.id
7838
8024
  );
7839
- return token;
8025
+ return token2;
7840
8026
  }
7841
8027
 
7842
8028
  // src/commands/curl/deployment-url.ts
@@ -19318,11 +19504,12 @@ async function tokensCmd(client, argv) {
19318
19504
  const { args, flags } = parsedArgs;
19319
19505
  const [idOrSlug] = args;
19320
19506
  const addLabel = flags["--add"];
19321
- const removeTokens = flags["--remove"];
19507
+ const removeValues = flags["--remove"];
19508
+ const removeCount = removeValues?.length ?? 0;
19322
19509
  const skipConfirmation = flags["--yes"] === true;
19323
19510
  telemetry2.trackCliArgumentIdOrSlug(idOrSlug);
19324
19511
  telemetry2.trackCliOptionAdd(addLabel);
19325
- telemetry2.trackCliOptionRemove(removeTokens);
19512
+ telemetry2.trackCliOptionRemove(removeValues);
19326
19513
  telemetry2.trackCliFlagYes(flags["--yes"]);
19327
19514
  telemetry2.trackCliOptionFormat(flags["--format"]);
19328
19515
  if (!idOrSlug) {
@@ -19350,11 +19537,11 @@ async function tokensCmd(client, argv) {
19350
19537
  );
19351
19538
  return 1;
19352
19539
  }
19353
- if (addLabel && removeTokens?.length) {
19540
+ if (addLabel && removeCount > 0) {
19354
19541
  output_manager_default.error("Use either `--add` or `--remove`, not both.");
19355
19542
  return 1;
19356
19543
  }
19357
- if (removeTokens?.length && client.nonInteractive && !skipConfirmation) {
19544
+ if (removeCount > 0 && client.nonInteractive && !skipConfirmation) {
19358
19545
  outputAgentError(
19359
19546
  client,
19360
19547
  {
@@ -19428,26 +19615,43 @@ ${created.token}
19428
19615
  `);
19429
19616
  return 0;
19430
19617
  }
19431
- if (removeTokens?.length) {
19618
+ if (removeValues?.length) {
19432
19619
  if (!skipConfirmation && !await client.input.confirm(
19433
- `Revoke ${removeTokens.length} token(s) on ${import_chalk88.default.bold(id)}?`,
19620
+ `Revoke ${removeValues.length} token(s) on ${import_chalk88.default.bold(id)}?`,
19434
19621
  false
19435
19622
  )) {
19436
19623
  output_manager_default.log("Canceled");
19437
19624
  return 0;
19438
19625
  }
19626
+ const rows2 = await client.fetch(`${base}/tokens`);
19627
+ const knownIds = new Set(
19628
+ rows2.map((r) => r.id).filter((v) => Boolean(v))
19629
+ );
19630
+ const ids = [];
19631
+ const tokens = [];
19632
+ for (const value of removeValues) {
19633
+ if (knownIds.has(value))
19634
+ ids.push(value);
19635
+ else
19636
+ tokens.push(value);
19637
+ }
19638
+ const body = {};
19639
+ if (tokens.length)
19640
+ body.tokens = tokens;
19641
+ if (ids.length)
19642
+ body.ids = ids;
19439
19643
  await client.fetch(`${base}/tokens`, {
19440
19644
  method: "DELETE",
19441
- body: { tokens: removeTokens }
19645
+ body
19442
19646
  });
19443
19647
  if (asJson) {
19444
19648
  client.stdout.write(
19445
- `${JSON.stringify({ status: "ok", revoked: removeTokens.length }, null, 2)}
19649
+ `${JSON.stringify({ status: "ok", revoked: removeValues.length }, null, 2)}
19446
19650
  `
19447
19651
  );
19448
19652
  return 0;
19449
19653
  }
19450
- output_manager_default.success(`Revoked ${removeTokens.length} token(s).`);
19654
+ output_manager_default.success(`Revoked ${removeValues.length} token(s).`);
19451
19655
  return 0;
19452
19656
  }
19453
19657
  const rows = await client.fetch(`${base}/tokens`);
@@ -20660,7 +20864,7 @@ function isValidJsonVariantValue(value) {
20660
20864
  }
20661
20865
 
20662
20866
  // src/commands/flags/open.ts
20663
- var import_open4 = __toESM(require_open(), 1);
20867
+ var import_open5 = __toESM(require_open(), 1);
20664
20868
 
20665
20869
  // src/util/telemetry/commands/flags/open.ts
20666
20870
  var FlagsOpenTelemetryClient = class extends TelemetryClient {
@@ -20722,7 +20926,7 @@ async function openFlag(client, argv) {
20722
20926
  if (client.stdout.isTTY) {
20723
20927
  output_manager_default.log(`Opening ${label} in your browser...`);
20724
20928
  output_manager_default.log(`Visit this URL if the browser does not open: ${url}`);
20725
- void (0, import_open4.default)(url).catch(() => void 0);
20929
+ void (0, import_open5.default)(url).catch(() => void 0);
20726
20930
  } else {
20727
20931
  client.stdout.write(`${url}
20728
20932
  `);
@@ -23296,7 +23500,7 @@ async function handleEncrypt(client, args, flags) {
23296
23500
  return 1;
23297
23501
  }
23298
23502
  }
23299
- async function handleDecrypt(client, token) {
23503
+ async function handleDecrypt(client, token2) {
23300
23504
  const secret = resolveSecret(client);
23301
23505
  if (!secret) {
23302
23506
  output_manager_default.error(
@@ -23305,7 +23509,7 @@ async function handleDecrypt(client, token) {
23305
23509
  return 1;
23306
23510
  }
23307
23511
  try {
23308
- const overrides = await decryptOverrides(token, secret);
23512
+ const overrides = await decryptOverrides(token2, secret);
23309
23513
  if (overrides === void 0) {
23310
23514
  output_manager_default.error("Invalid token: not a valid flag overrides token.");
23311
23515
  return 1;
@@ -24942,7 +25146,7 @@ function exitCode(state) {
24942
25146
  // src/commands/integration/add-auto-provision.ts
24943
25147
  var import_chalk115 = __toESM(require_source(), 1);
24944
25148
  var import_error_utils10 = __toESM(require_dist(), 1);
24945
- var import_open8 = __toESM(require_open(), 1);
25149
+ var import_open9 = __toESM(require_open(), 1);
24946
25150
 
24947
25151
  // src/util/integration/auto-provision-resource.ts
24948
25152
  function isAutoProvisionFallback(error) {
@@ -25132,7 +25336,7 @@ async function fetchInstallations(client, integration) {
25132
25336
  }
25133
25337
 
25134
25338
  // src/util/integration/accept-terms-via-browser.ts
25135
- var import_open7 = __toESM(require_open(), 1);
25339
+ var import_open8 = __toESM(require_open(), 1);
25136
25340
 
25137
25341
  // src/util/integration/prompt-for-terms.ts
25138
25342
  var MARKETPLACE_ADDENDUM_URL = "https://vercel.com/legal/integration-marketplace-end-users-addendum";
@@ -25211,7 +25415,7 @@ async function acceptTermsViaBrowser(client, integration, teamId, teamSlug, time
25211
25415
  "Opening browser for terms acceptance. Accept the terms to continue..."
25212
25416
  );
25213
25417
  output_manager_default.log(`Visit this URL if the browser does not open: ${url.href}`);
25214
- (0, import_open7.default)(url.href).catch(
25418
+ (0, import_open8.default)(url.href).catch(
25215
25419
  (err) => output_manager_default.debug(`Failed to open browser: ${err}`)
25216
25420
  );
25217
25421
  if (shouldEmitNonInteractiveCommandError(client)) {
@@ -26248,7 +26452,7 @@ Re-run with --installation-id to select one, e.g.:
26248
26452
  url.searchParams.set("environment", options.environments.join(","));
26249
26453
  }
26250
26454
  output_manager_default.debug(`Opening URL: ${url.href}`);
26251
- (0, import_open8.default)(url.href).catch(
26455
+ (0, import_open9.default)(url.href).catch(
26252
26456
  (err) => output_manager_default.debug(`Failed to open browser: ${err}`)
26253
26457
  );
26254
26458
  return 1;
@@ -27293,7 +27497,7 @@ function integrationLink(integration, team) {
27293
27497
 
27294
27498
  // src/commands/integration/open-integration.ts
27295
27499
  var import_chalk121 = __toESM(require_source(), 1);
27296
- var import_open9 = __toESM(require_open(), 1);
27500
+ var import_open10 = __toESM(require_open(), 1);
27297
27501
 
27298
27502
  // src/util/telemetry/commands/integration/open.ts
27299
27503
  var IntegrationOpenTelemetryClient = class extends TelemetryClient {
@@ -27413,7 +27617,7 @@ function outputLink(client, link, json, name, isResource) {
27413
27617
  } else if (client.stdout.isTTY) {
27414
27618
  const label = isResource ? `Opening the ${import_chalk121.default.bold(name)} resource dashboard...` : `Opening the ${import_chalk121.default.bold(name)} dashboard...`;
27415
27619
  output_manager_default.print(label);
27416
- (0, import_open9.default)(link);
27620
+ (0, import_open10.default)(link);
27417
27621
  } else {
27418
27622
  client.stdout.write(`${link}
27419
27623
  `);
@@ -29883,6 +30087,7 @@ var LogoutTelemetryClient = class extends TelemetryClient {
29883
30087
  var import_error_utils11 = __toESM(require_dist(), 1);
29884
30088
  async function logout(client) {
29885
30089
  const { authConfig } = client;
30090
+ const skipWrite = authConfig.skipWrite === true;
29886
30091
  if (!authConfig.token) {
29887
30092
  output_manager_default.note(
29888
30093
  `Not currently logged in, so ${getCommandName("logout")} did nothing`
@@ -29904,9 +30109,11 @@ async function logout(client) {
29904
30109
  }
29905
30110
  try {
29906
30111
  client.updateConfig({ currentTeam: void 0 });
29907
- client.writeToConfigFile();
29908
30112
  client.emptyAuthConfig();
29909
- client.writeToAuthConfigFile();
30113
+ if (!skipWrite) {
30114
+ client.writeToConfigFile();
30115
+ client.persistAuthConfig();
30116
+ }
29910
30117
  output_manager_default.debug("Configuration has been deleted");
29911
30118
  if (!logoutError) {
29912
30119
  output_manager_default.success("Logged out!");
@@ -29971,8 +30178,10 @@ async function logout2(client) {
29971
30178
  delete authConfig.token;
29972
30179
  delete authConfig.userId;
29973
30180
  try {
29974
- writeToConfigFile(config);
29975
- writeToAuthConfigFile(authConfig);
30181
+ if (!authConfig.skipWrite) {
30182
+ writeToConfigFile(config);
30183
+ persistAuthConfig(authConfig, config);
30184
+ }
29976
30185
  output_manager_default.debug("Configuration has been deleted");
29977
30186
  } catch (err) {
29978
30187
  output_manager_default.debug((0, import_error_utils12.errorToString)(err));
@@ -31532,7 +31741,7 @@ async function metrics(client) {
31532
31741
  return 0;
31533
31742
  }
31534
31743
  telemetry2.trackCliSubcommandSchema(subcommandOriginal);
31535
- const schemaFn = (await import("./chunks/schema-AGVIOWAU.js")).default;
31744
+ const schemaFn = (await import("./chunks/schema-TXE5TXMY.js")).default;
31536
31745
  return schemaFn(client, telemetry2);
31537
31746
  }
31538
31747
  default: {
@@ -31545,7 +31754,7 @@ async function metrics(client) {
31545
31754
  output_manager_default.print(help(metricsCommand, { columns: client.stderr.columns }));
31546
31755
  return 2;
31547
31756
  }
31548
- const queryFn = (await import("./chunks/query-SRFELIAP.js")).default;
31757
+ const queryFn = (await import("./chunks/query-ZKNQWF5L.js")).default;
31549
31758
  return queryFn(client, telemetry2);
31550
31759
  }
31551
31760
  }
@@ -33896,7 +34105,7 @@ async function main24(client) {
33896
34105
  }
33897
34106
 
33898
34107
  // src/commands/open/index.ts
33899
- var import_open11 = __toESM(require_open(), 1);
34108
+ var import_open12 = __toESM(require_open(), 1);
33900
34109
 
33901
34110
  // src/util/telemetry/commands/open/index.ts
33902
34111
  var OpenTelemetryClient = class extends TelemetryClient {
@@ -33950,7 +34159,7 @@ async function openCommandHandler(client) {
33950
34159
  const { org, project } = link;
33951
34160
  const projectUrl = `https://vercel.com/${org.slug}/${project.name}`;
33952
34161
  output_manager_default.log(`Opening ${projectUrl} in your browser...`);
33953
- await (0, import_open11.default)(projectUrl);
34162
+ await (0, import_open12.default)(projectUrl);
33954
34163
  return 0;
33955
34164
  }
33956
34165
 
@@ -35308,7 +35517,7 @@ It will also delete everything under the project including deployments.
35308
35517
  // src/commands/project/token.ts
35309
35518
  var import_chalk147 = __toESM(require_source(), 1);
35310
35519
  async function getOidcToken(client, argv) {
35311
- const flagsSpecification = getFlagsSpecification(tokenSubcommand.options);
35520
+ const flagsSpecification = getFlagsSpecification(tokenSubcommand2.options);
35312
35521
  let parsedArgs;
35313
35522
  try {
35314
35523
  parsedArgs = parseArguments(argv, flagsSpecification);
@@ -35991,7 +36200,7 @@ var COMMAND_CONFIG32 = {
35991
36200
  protection: getCommandAliases(protectionSubcommand),
35992
36201
  rename: getCommandAliases(renameSubcommand),
35993
36202
  remove: getCommandAliases(removeSubcommand11),
35994
- token: getCommandAliases(tokenSubcommand),
36203
+ token: getCommandAliases(tokenSubcommand2),
35995
36204
  speedInsights: getCommandAliases(speedInsightsSubcommand),
35996
36205
  webAnalytics: getCommandAliases(webAnalyticsSubcommand)
35997
36206
  };
@@ -36119,7 +36328,7 @@ async function main25(client) {
36119
36328
  case "token":
36120
36329
  if (needHelp) {
36121
36330
  telemetry2.trackCliFlagHelp("project", subcommandOriginal);
36122
- return printHelp(tokenSubcommand);
36331
+ return printHelp(tokenSubcommand2);
36123
36332
  }
36124
36333
  telemetry2.trackCliSubcommandToken(subcommandOriginal);
36125
36334
  exitCode2 = await getOidcToken(client, args);
@@ -42422,7 +42631,7 @@ async function main27(client) {
42422
42631
  return 2;
42423
42632
  }
42424
42633
  telemetry2.trackCliSubcommandEdit(subcommandOriginal);
42425
- return (await import("./chunks/edit-XKOVDTOO.js")).default(client, args);
42634
+ return (await import("./chunks/edit-LOQJITTM.js")).default(client, args);
42426
42635
  case "delete":
42427
42636
  if (needHelp) {
42428
42637
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42430,7 +42639,7 @@ async function main27(client) {
42430
42639
  return 2;
42431
42640
  }
42432
42641
  telemetry2.trackCliSubcommandDelete(subcommandOriginal);
42433
- return (await import("./chunks/delete-57Y647IJ.js")).default(client, args);
42642
+ return (await import("./chunks/delete-WW5B2IIN.js")).default(client, args);
42434
42643
  case "enable":
42435
42644
  if (needHelp) {
42436
42645
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42438,7 +42647,7 @@ async function main27(client) {
42438
42647
  return 2;
42439
42648
  }
42440
42649
  telemetry2.trackCliSubcommandEnable(subcommandOriginal);
42441
- return (await import("./chunks/enable-HXRMVTBB.js")).default(client, args);
42650
+ return (await import("./chunks/enable-XMWWLBL7.js")).default(client, args);
42442
42651
  case "disable":
42443
42652
  if (needHelp) {
42444
42653
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42446,7 +42655,7 @@ async function main27(client) {
42446
42655
  return 2;
42447
42656
  }
42448
42657
  telemetry2.trackCliSubcommandDisable(subcommandOriginal);
42449
- return (await import("./chunks/disable-E7QAIMBG.js")).default(client, args);
42658
+ return (await import("./chunks/disable-WSV2JYK6.js")).default(client, args);
42450
42659
  case "reorder":
42451
42660
  if (needHelp) {
42452
42661
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42454,7 +42663,7 @@ async function main27(client) {
42454
42663
  return 2;
42455
42664
  }
42456
42665
  telemetry2.trackCliSubcommandReorder(subcommandOriginal);
42457
- return (await import("./chunks/reorder-UWAXWRXX.js")).default(client, args);
42666
+ return (await import("./chunks/reorder-WQA5LQ7X.js")).default(client, args);
42458
42667
  case "export":
42459
42668
  if (needHelp) {
42460
42669
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42462,7 +42671,7 @@ async function main27(client) {
42462
42671
  return 2;
42463
42672
  }
42464
42673
  telemetry2.trackCliSubcommandExport(subcommandOriginal);
42465
- return (await import("./chunks/export-MRADQNKX.js")).default(client, args);
42674
+ return (await import("./chunks/export-P2OSIM3L.js")).default(client, args);
42466
42675
  case "publish":
42467
42676
  if (needHelp) {
42468
42677
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42470,7 +42679,7 @@ async function main27(client) {
42470
42679
  return 2;
42471
42680
  }
42472
42681
  telemetry2.trackCliSubcommandPublish(subcommandOriginal);
42473
- return (await import("./chunks/publish-VPLDS2W7.js")).default(client, args);
42682
+ return (await import("./chunks/publish-T2HPYN5D.js")).default(client, args);
42474
42683
  case "restore":
42475
42684
  if (needHelp) {
42476
42685
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42478,7 +42687,7 @@ async function main27(client) {
42478
42687
  return 2;
42479
42688
  }
42480
42689
  telemetry2.trackCliSubcommandRestore(subcommandOriginal);
42481
- return (await import("./chunks/restore-YHQNMAGI.js")).default(client, args);
42690
+ return (await import("./chunks/restore-QTREUYWW.js")).default(client, args);
42482
42691
  case "discard-staging":
42483
42692
  if (needHelp) {
42484
42693
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -42486,7 +42695,7 @@ async function main27(client) {
42486
42695
  return 2;
42487
42696
  }
42488
42697
  telemetry2.trackCliSubcommandDiscardStaging(subcommandOriginal);
42489
- return (await import("./chunks/discard-6JNSEHUD.js")).default(client, args);
42698
+ return (await import("./chunks/discard-BTIMKAXZ.js")).default(client, args);
42490
42699
  default:
42491
42700
  output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG35));
42492
42701
  output_manager_default.print(help(routesCommand, { columns: client.stderr.columns }));
@@ -42521,7 +42730,7 @@ async function sandbox(client) {
42521
42730
  const sandboxArgs = commandIndex === -1 ? [] : argv.slice(commandIndex + 1);
42522
42731
  const scope = getFlagValue(rootArgs, ["--scope", "-S"]);
42523
42732
  const team = getFlagValue(rootArgs, ["--team", "-T"]);
42524
- const token = getFlagValue(rootArgs, ["--token", "-t"]);
42733
+ const token2 = getFlagValue(rootArgs, ["--token", "-t"]);
42525
42734
  const forwardedArgs = [
42526
42735
  ...scope ? ["--scope", scope] : team ? ["--team", team] : [],
42527
42736
  ...sandboxArgs
@@ -42529,8 +42738,8 @@ async function sandbox(client) {
42529
42738
  const originalCwd = process.cwd();
42530
42739
  const originalAuthToken = process.env.VERCEL_AUTH_TOKEN;
42531
42740
  try {
42532
- if (token) {
42533
- process.env.VERCEL_AUTH_TOKEN = token;
42741
+ if (token2) {
42742
+ process.env.VERCEL_AUTH_TOKEN = token2;
42534
42743
  } else if (!process.env.VERCEL_AUTH_TOKEN && process.env.VERCEL_TOKEN) {
42535
42744
  process.env.VERCEL_AUTH_TOKEN = process.env.VERCEL_TOKEN;
42536
42745
  } else if (!process.env.VERCEL_AUTH_TOKEN && client.authConfig.token) {
@@ -44833,7 +45042,7 @@ async function ls8(client, argv) {
44833
45042
  }
44834
45043
 
44835
45044
  // src/commands/tokens/add.ts
44836
- var import_open13 = __toESM(require_open(), 1);
45045
+ var import_open14 = __toESM(require_open(), 1);
44837
45046
  import { KNOWN_AGENTS as KNOWN_AGENTS2 } from "@vercel/detect-agent";
44838
45047
  var VERCEL_ACCOUNT_TOKENS_URL = "https://vercel.com/account/tokens";
44839
45048
  var CLASSIC_TOKEN_GUIDANCE = `Creating a new token requires a classic personal access token. Sessions from "vercel login" use OAuth and cannot call the create-token API.
@@ -44853,6 +45062,10 @@ var USER_SCOPE_AGENT_HINT = `Creating a personal token requires a classic token
44853
45062
  function normalizeApiMessage(message) {
44854
45063
  return message.replace(/\s*\(\d{3}\)\s*$/, "").trim();
44855
45064
  }
45065
+ function getSanitizedRerunCommand(client) {
45066
+ const rerunArgs = stripSensitiveAuthArgs(client.argv.slice(2));
45067
+ return getCommandNamePlain(rerunArgs.join(" ").trim());
45068
+ }
44856
45069
  function isClassicTokenRequiredForCreateError(err) {
44857
45070
  if (!isAPIError(err) || err.status !== 403) {
44858
45071
  return false;
@@ -44892,7 +45105,7 @@ async function openTokensDashboardInBrowser(client) {
44892
45105
  return;
44893
45106
  }
44894
45107
  try {
44895
- const p = await (0, import_open13.default)(VERCEL_ACCOUNT_TOKENS_URL);
45108
+ const p = await (0, import_open14.default)(VERCEL_ACCOUNT_TOKENS_URL);
44896
45109
  p?.on?.("error", () => {
44897
45110
  });
44898
45111
  } catch {
@@ -44951,7 +45164,7 @@ async function add12(client, argv) {
44951
45164
  } catch (err) {
44952
45165
  if (isClassicTokenRequiredForCreateError(err)) {
44953
45166
  await openTokensDashboardInBrowser(client);
44954
- const rerun = getCommandNamePlain(client.argv.slice(2).join(" ").trim());
45167
+ const rerun = getSanitizedRerunCommand(client);
44955
45168
  if (shouldEmitNonInteractiveCommandError(client)) {
44956
45169
  outputAgentError(
44957
45170
  client,
@@ -44976,7 +45189,7 @@ async function add12(client, argv) {
44976
45189
  }
44977
45190
  if (isTokenUserScopeRequiredError(err)) {
44978
45191
  await openTokensDashboardInBrowser(client);
44979
- const rerun = getCommandNamePlain(client.argv.slice(2).join(" ").trim());
45192
+ const rerun = getSanitizedRerunCommand(client);
44980
45193
  const apiMessage = normalizeApiMessage(
44981
45194
  isAPIError(err) ? err.serverMessage || err.message : String(err)
44982
45195
  );