@depup/vercel 57.0.0-depup.0 → 58.4.4-depup.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 (114) hide show
  1. package/README.md +5 -5
  2. package/changes.json +4 -4
  3. package/dist/chunks/{add-YRZTDNXX.js → add-245XOFJO.js} +14 -9
  4. package/dist/chunks/{add-7M577U56.js → add-P7WBQMBW.js} +10 -8
  5. package/dist/chunks/add-XH24V5VU.js +187 -0
  6. package/dist/chunks/build-M7NJYJPE.js +243 -0
  7. package/dist/chunks/{chunk-HD7B425F.js → chunk-2FMPLU44.js} +4 -4
  8. package/dist/chunks/{chunk-LMHT3QR3.js → chunk-2LBVX2H3.js} +3 -3
  9. package/dist/chunks/{chunk-YOZCJHLZ.js → chunk-2MAPZXVV.js} +10 -8
  10. package/dist/chunks/{chunk-DWMH5M4Q.js → chunk-2SFMOCWR.js} +1 -1
  11. package/dist/chunks/{chunk-F5PQWDOC.js → chunk-2WILSD7J.js} +1 -1
  12. package/dist/chunks/{chunk-3PKFXNJZ.js → chunk-3KNPVXJ3.js} +7 -5
  13. package/dist/chunks/{chunk-A2TYQBX2.js → chunk-3QAUXPIR.js} +927 -518
  14. package/dist/chunks/chunk-3ZE5CFVM.js +346 -0
  15. package/dist/chunks/{chunk-555WJSO5.js → chunk-4BUPRO5B.js} +7 -5
  16. package/dist/chunks/{chunk-TBR2Q37Y.js → chunk-4CCY5OPH.js} +1232 -1216
  17. package/dist/chunks/{chunk-FHEMFAHB.js → chunk-4LDQIDRM.js} +15 -9
  18. package/dist/chunks/{chunk-R5FOIIHT.js → chunk-4N7XLXM2.js} +2 -2
  19. package/dist/chunks/{chunk-KCF6S3XF.js → chunk-4UYKSYKQ.js} +10 -6
  20. package/dist/chunks/{chunk-GP5VCTEU.js → chunk-62MH5KPX.js} +207 -4
  21. package/dist/chunks/{chunk-OGG6UBXK.js → chunk-7QVJTI5H.js} +1 -1
  22. package/dist/chunks/{chunk-FYQPTH5C.js → chunk-A5KP5HAI.js} +7 -5
  23. package/dist/chunks/{chunk-2EDWKVNP.js → chunk-AQDWMAPM.js} +32 -16
  24. package/dist/chunks/{chunk-3VS4DTAU.js → chunk-AW5YINX6.js} +106 -12
  25. package/dist/chunks/{chunk-GIL3VAUR.js → chunk-B3JTF4CF.js} +5 -3
  26. package/dist/chunks/{chunk-4QVAYRYH.js → chunk-BEQV3X2L.js} +16 -1
  27. package/dist/chunks/chunk-CPFNFVCL.js +85 -0
  28. package/dist/chunks/{chunk-4G6QZSBL.js → chunk-CSJBZKC5.js} +6 -4
  29. package/dist/chunks/{chunk-3PGXYIKC.js → chunk-EBLH23AQ.js} +2 -2
  30. package/dist/chunks/{chunk-YA3WQFLY.js → chunk-GFG6QDIE.js} +1 -1
  31. package/dist/chunks/{chunk-IOAZNR6Z.js → chunk-HSYF5SI3.js} +1 -1
  32. package/dist/chunks/{chunk-F7X55TOY.js → chunk-IEDUCUDV.js} +6 -5
  33. package/dist/chunks/chunk-J6LK45HT.js +163 -0
  34. package/dist/chunks/{chunk-ZVLPUREX.js → chunk-JLWQWYKO.js} +2 -2
  35. package/dist/chunks/{chunk-SZXT3PDQ.js → chunk-KBEX5MYS.js} +1 -136
  36. package/dist/chunks/{chunk-NZRWTCRM.js → chunk-KT4XXKJK.js} +1 -1
  37. package/dist/chunks/{chunk-VZSZBD4V.js → chunk-M22O6CYY.js} +1 -1
  38. package/dist/chunks/{chunk-3242RXCN.js → chunk-M5NOLAJ4.js} +1 -1
  39. package/dist/chunks/{chunk-2MJROFVC.js → chunk-MAHXF73X.js} +8 -5
  40. package/dist/chunks/{chunk-RYO6FJFB.js → chunk-NJ6QXKQD.js} +2 -2
  41. package/dist/chunks/{chunk-LHFNIZ2P.js → chunk-O5GNPPTU.js} +4 -2
  42. package/dist/chunks/chunk-RBIFXFZX.js +52 -0
  43. package/dist/chunks/{chunk-OF2GNB42.js → chunk-RQ7H43CJ.js} +1 -1
  44. package/dist/chunks/{chunk-4PGF367U.js → chunk-SJYAUEZR.js} +232 -50
  45. package/dist/chunks/{chunk-KSSNLCL4.js → chunk-SOFC4MLS.js} +2 -2
  46. package/dist/chunks/{chunk-UDWRZXIT.js → chunk-TJJ562C5.js} +18 -14
  47. package/dist/chunks/{chunk-NRNMT43R.js → chunk-UE3JUVUZ.js} +7 -13
  48. package/dist/chunks/chunk-V5P25P7F.js +22 -0
  49. package/dist/chunks/{chunk-MIFDRYTN.js → chunk-XE5VSQ25.js} +2 -2
  50. package/dist/chunks/{chunk-QZD5DKUR.js → chunk-XIG4GH62.js} +2 -2
  51. package/dist/chunks/chunk-XLKFJPMT.js +150 -0
  52. package/dist/chunks/{chunk-MAHINYBW.js → chunk-Y5GTPWXB.js} +2 -2
  53. package/dist/chunks/{chunk-NH43BFJ3.js → chunk-YCPUAG77.js} +2 -2
  54. package/dist/chunks/{chunk-T4NODP6Y.js → chunk-YDUINEII.js} +3 -3
  55. package/dist/chunks/{chunk-RAFH25WW.js → chunk-ZGBBPJ6B.js} +10 -6
  56. package/dist/chunks/{chunk-DMSLNAVH.js → chunk-ZX2FSPWV.js} +2 -2
  57. package/dist/chunks/clear-HWIKQ4NC.js +132 -0
  58. package/dist/chunks/{compile-vercel-config-3OHO3TJA.js → compile-vercel-config-U5NRIMZ2.js} +5 -4
  59. package/dist/chunks/config-validator.mjs +1 -1
  60. package/dist/chunks/{delete-3DZOCWCC.js → delete-FZCOUFGN.js} +7 -6
  61. package/dist/chunks/{delete-VOSJLNEA.js → delete-NVMGVD5Z.js} +7 -6
  62. package/dist/chunks/{disable-LQDEVRQF.js → disable-ERM2BWEQ.js} +7 -6
  63. package/dist/chunks/{discard-RGV4JKXQ.js → discard-KM5OLEN4.js} +7 -6
  64. package/dist/chunks/{edit-SFIEOQ24.js → edit-HT3UTATZ.js} +8 -7
  65. package/dist/chunks/{edit-UPZPI54L.js → edit-TOSB2EMI.js} +7 -6
  66. package/dist/chunks/{enable-6UVH35WC.js → enable-BQL6AOQV.js} +7 -6
  67. package/dist/chunks/{export-6CEG3CK7.js → export-UOWQHOG3.js} +7 -6
  68. package/dist/chunks/{image-CQRCD2OE.js → image-F5SC6Q7Y.js} +5 -5
  69. package/dist/chunks/{inspect-ZFRY3X3H.js → inspect-35FU5R62.js} +16 -13
  70. package/dist/chunks/{inspect-UM3LDRPV.js → inspect-5J5GSTOB.js} +14 -12
  71. package/dist/chunks/{inspect-K5ZMQG7X.js → inspect-GKJ6T5H4.js} +14 -12
  72. package/dist/chunks/{inspect-4ZAH3RFT.js → inspect-LGKOLH2O.js} +8 -7
  73. package/dist/chunks/{inspect-EXQBIAFF.js → inspect-PZJM2CWT.js} +13 -11
  74. package/dist/chunks/{list-KCUHD4OA.js → list-2IIE7CAP.js} +8 -7
  75. package/dist/chunks/{list-4DRVM7Q4.js → list-ITFJYYQ2.js} +13 -11
  76. package/dist/chunks/{list-FJCBOCCA.js → list-KZETH3ZE.js} +8 -6
  77. package/dist/chunks/{login-DFGYNU3K.js → login-BQPJCJEZ.js} +22 -51
  78. package/dist/chunks/{ls-RHEQ6YQB.js → ls-7GHDK4MD.js} +13 -11
  79. package/dist/chunks/{ls-CG6A7UXF.js → ls-DL2LA35C.js} +15 -13
  80. package/dist/chunks/{ls-34NCZKBE.js → ls-UXUEP54B.js} +15 -13
  81. package/dist/chunks/ls-YSFWSM6J.js +178 -0
  82. package/dist/chunks/{ls-4QHHVXXD.js → ls-ZZFLH7PK.js} +17 -14
  83. package/dist/chunks/{open-E3XADEMX.js → open-ADNJQN5E.js} +7 -6
  84. package/dist/chunks/permissions-72SZCBIY.js +95 -0
  85. package/dist/chunks/{publish-Z3AQRUCS.js → publish-OOAGSEBM.js} +7 -6
  86. package/dist/chunks/push-B6TZDXNF.js +183 -0
  87. package/dist/chunks/{query-3EV66DO3.js → query-LZWS5TDH.js} +12 -10
  88. package/dist/chunks/{reorder-VA5E5ZJT.js → reorder-MRHFKPMK.js} +7 -6
  89. package/dist/chunks/{reply-SNSCNKAW.js → reply-BKTJXO3B.js} +7 -6
  90. package/dist/chunks/{resolve-6ZX4RTXX.js → resolve-BKVGSGPN.js} +7 -6
  91. package/dist/chunks/{restore-NEHI5B5P.js → restore-USR7SKWV.js} +7 -6
  92. package/dist/chunks/{rm-FR6KE744.js → rm-2UO6BT3A.js} +10 -8
  93. package/dist/chunks/rm-37MKKV3I.js +186 -0
  94. package/dist/chunks/{rm-E5ZVLAKO.js → rm-KUWPNZIS.js} +15 -10
  95. package/dist/chunks/{rm-22B22E47.js → rm-VY3OHKFH.js} +12 -8
  96. package/dist/chunks/{rule-inspect-DMP2CKJQ.js → rule-inspect-JVDOOTWK.js} +13 -11
  97. package/dist/chunks/{rules-EYGXEI2Z.js → rules-NTBFZBIF.js} +8 -8
  98. package/dist/chunks/{schema-2IIWOBSQ.js → schema-6EZ72OVH.js} +11 -9
  99. package/dist/chunks/{tags-ZDVYRHAY.js → tags-HNPC63QA.js} +4 -4
  100. package/dist/chunks/{types-QKLIFDDP.js → types-QTOA2BTQ.js} +7 -5
  101. package/dist/chunks/{update-QH4DQMZV.js → update-LUYWNZP3.js} +10 -8
  102. package/dist/commands/build/index.js +16 -20
  103. package/dist/commands/deploy/index.js +39 -28
  104. package/dist/commands/dev/index.js +112 -20
  105. package/dist/commands/env/index.js +308 -36
  106. package/dist/commands/link/index.js +26 -23
  107. package/dist/commands/list/index.js +16 -9
  108. package/dist/commands-bulk.js +5414 -2654
  109. package/dist/help.js +1 -1
  110. package/dist/index.js +50 -44
  111. package/dist/version.mjs +1 -1
  112. package/package.json +47 -105
  113. package/dist/chunks/chunk-6OMC3HOW.js +0 -73
  114. package/dist/chunks/chunk-V4RMJKQP.js +0 -36
@@ -4,40 +4,54 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
+ import {
8
+ highlight
9
+ } from "./chunk-V5P25P7F.js";
7
10
  import {
8
11
  PromptBackError,
9
- PromptCanceledError
10
- } from "./chunk-V4RMJKQP.js";
12
+ PromptCanceledError,
13
+ getLocalPathConfig
14
+ } from "./chunk-CPFNFVCL.js";
11
15
  import {
16
+ DEFAULT_VERCEL_CONFIG_FILENAME,
17
+ VERCEL_CONFIG_EXTENSIONS,
18
+ VERCEL_DIR,
12
19
  createPrompt,
13
20
  esm_default,
14
21
  esm_default2,
15
22
  esm_default3,
23
+ humanizePath,
16
24
  isBackspaceKey,
17
25
  isEnterKey,
26
+ isOAuthError,
18
27
  makeTheme,
19
28
  onExit,
20
29
  performDeviceCodeFlow,
21
- persistAuthConfig,
22
30
  processTokenResponse,
23
31
  refreshTokenRequest,
24
32
  require_cli_width,
33
+ require_dist as require_dist2,
25
34
  require_lib2 as require_lib,
26
35
  require_source as require_source2,
27
36
  require_wrap_ansi,
28
37
  ua_default,
29
38
  useKeypress,
30
39
  usePrefix,
31
- useState,
32
- writeToConfigFile
33
- } from "./chunk-TBR2Q37Y.js";
40
+ useState
41
+ } from "./chunk-4CCY5OPH.js";
42
+ import {
43
+ require_load_json_file
44
+ } from "./chunk-ECCWJHC6.js";
34
45
  import {
35
- parseArguments,
36
46
  require_strip_ansi
37
- } from "./chunk-SZXT3PDQ.js";
47
+ } from "./chunk-KBEX5MYS.js";
38
48
  import {
39
- APIError
40
- } from "./chunk-KSSNLCL4.js";
49
+ parseArguments
50
+ } from "./chunk-XLKFJPMT.js";
51
+ import {
52
+ APIError,
53
+ NowError
54
+ } from "./chunk-SOFC4MLS.js";
41
55
  import {
42
56
  pkg_default
43
57
  } from "./chunk-P4QNYOFB.js";
@@ -350,7 +364,7 @@ var require_retry2 = __commonJS({
350
364
  });
351
365
 
352
366
  // ../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js
353
- var require_dist2 = __commonJS({
367
+ var require_dist3 = __commonJS({
354
368
  "../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js"(exports, module) {
355
369
  "use strict";
356
370
  var retrier = require_retry2();
@@ -385,19 +399,162 @@ var require_dist2 = __commonJS({
385
399
  }
386
400
  });
387
401
 
402
+ // src/util/config/global-path.ts
403
+ import path from "path";
404
+ import * as config from "@vercel/cli-config";
405
+ function getGlobalPathConfig2(argvSlice = process.argv.slice(2), cwd = process.cwd()) {
406
+ const args = parseArguments(argvSlice, {}, { permissive: true });
407
+ const confFlag = args.flags["--global-config"];
408
+ if (confFlag) {
409
+ return path.resolve(cwd, confFlag);
410
+ } else {
411
+ return config.getGlobalPathConfig();
412
+ }
413
+ }
414
+
415
+ // src/util/config/files.ts
416
+ var import_load_json_file = __toESM(require_load_json_file(), 1);
417
+ var import_error_utils = __toESM(require_dist(), 1);
418
+ var import_client = __toESM(require_dist2(), 1);
419
+ import { join, basename, dirname } from "path";
420
+ import { accessSync, constants } from "fs";
421
+ import * as config2 from "@vercel/cli-config";
422
+ import {
423
+ persistCliAuthConfig,
424
+ readCliAuthConfig
425
+ } from "@vercel/cli-auth/credentials-store.js";
426
+ var VERCEL_DIR2 = getGlobalPathConfig2();
427
+ var CONFIG_FILE_PATH = config2.getConfigFilePath(VERCEL_DIR2);
428
+ var AUTH_CONFIG_FILE_PATH = config2.getAuthConfigFilePath(VERCEL_DIR2);
429
+ var readConfigFile = () => {
430
+ return config2.readGlobalConfigFile(CONFIG_FILE_PATH);
431
+ };
432
+ var writeToConfigFile = (stuff) => {
433
+ try {
434
+ config2.writeGlobalConfigFile(CONFIG_FILE_PATH, stuff);
435
+ } catch (err) {
436
+ if ((0, import_error_utils.isErrnoException)(err)) {
437
+ if ((0, import_error_utils.isErrnoException)(err) && err.code === "EPERM") {
438
+ output_manager_default.error(
439
+ `Not able to create ${highlight(
440
+ CONFIG_FILE_PATH
441
+ )} (operation not permitted).`
442
+ );
443
+ process.exit(1);
444
+ } else if (err.code === "EBADF") {
445
+ output_manager_default.error(
446
+ `Not able to create ${highlight(
447
+ CONFIG_FILE_PATH
448
+ )} (bad file descriptor).`
449
+ );
450
+ process.exit(1);
451
+ }
452
+ }
453
+ throw err;
454
+ }
455
+ };
456
+ var readAuthConfigFile = (_globalConfig) => {
457
+ return {
458
+ ...config2.getDefaultAuthConfig(),
459
+ ...readCliAuthConfig(VERCEL_DIR2)
460
+ };
461
+ };
462
+ var persistAuthConfig = (authConfig, _globalConfig) => {
463
+ try {
464
+ return persistCliAuthConfig(VERCEL_DIR2, authConfig);
465
+ } catch (err) {
466
+ const wrappedError = new Error(
467
+ `Not able to create ${humanizePath(AUTH_CONFIG_FILE_PATH)} (${(0, import_error_utils.errorToStringFriendly)(
468
+ err
469
+ )}).`
470
+ );
471
+ wrappedError.cause = err;
472
+ throw wrappedError;
473
+ }
474
+ };
475
+ function getConfigFilePath2() {
476
+ return CONFIG_FILE_PATH;
477
+ }
478
+ function getAuthConfigFilePath2() {
479
+ return AUTH_CONFIG_FILE_PATH;
480
+ }
481
+ function readLocalConfig(prefix = process.cwd()) {
482
+ let config3 = void 0;
483
+ let target = "";
484
+ try {
485
+ target = getLocalPathConfig(prefix);
486
+ } catch (err) {
487
+ if (err instanceof NowError) {
488
+ output_manager_default.error(err.message);
489
+ process.exit(1);
490
+ } else {
491
+ throw err;
492
+ }
493
+ }
494
+ if (!target) {
495
+ return;
496
+ }
497
+ try {
498
+ accessSync(target, constants.F_OK);
499
+ config3 = import_load_json_file.default.sync(target);
500
+ } catch (err) {
501
+ if ((0, import_error_utils.isErrnoException)(err) && err.code === "ENOENT") {
502
+ } else if ((0, import_error_utils.isError)(err) && err.name === "JSONError") {
503
+ output_manager_default.error(err.message);
504
+ process.exit(1);
505
+ } else if ((0, import_error_utils.isErrnoException)(err)) {
506
+ const code = err.code ? ` (${err.code})` : "";
507
+ output_manager_default.error(`Failed to read config file: ${target}${code}`);
508
+ process.exit(1);
509
+ } else {
510
+ output_manager_default.prettyError(err);
511
+ process.exit(1);
512
+ }
513
+ }
514
+ if (!config3) {
515
+ return;
516
+ }
517
+ const isCompiledConfig = basename(target) === "vercel.json" && basename(dirname(target)) === VERCEL_DIR;
518
+ if (isCompiledConfig) {
519
+ const workPath = dirname(dirname(target));
520
+ let sourceFile = null;
521
+ for (const ext of VERCEL_CONFIG_EXTENSIONS) {
522
+ const configPath = join(workPath, `vercel.${ext}`);
523
+ try {
524
+ accessSync(configPath, constants.F_OK);
525
+ sourceFile = basename(configPath);
526
+ break;
527
+ } catch {
528
+ }
529
+ }
530
+ if (!sourceFile) {
531
+ const tomlPath = join(workPath, "vercel.toml");
532
+ try {
533
+ accessSync(tomlPath, constants.F_OK);
534
+ sourceFile = "vercel.toml";
535
+ } catch {
536
+ }
537
+ }
538
+ config3[import_client.fileNameSymbol] = sourceFile || DEFAULT_VERCEL_CONFIG_FILENAME;
539
+ } else {
540
+ config3[import_client.fileNameSymbol] = basename(target);
541
+ }
542
+ return config3;
543
+ }
544
+
388
545
  // src/util/client.ts
389
546
  var import_chalk4 = __toESM(require_source(), 1);
390
547
 
391
548
  // ../../node_modules/.pnpm/@inquirer+confirm@3.1.2/node_modules/@inquirer/confirm/dist/esm/index.mjs
392
- var esm_default4 = createPrompt((config, done) => {
393
- const { transformer = (answer) => answer ? "yes" : "no" } = config;
549
+ var esm_default4 = createPrompt((config3, done) => {
550
+ const { transformer = (answer) => answer ? "yes" : "no" } = config3;
394
551
  const [status, setStatus] = useState("pending");
395
552
  const [value, setValue] = useState("");
396
- const theme = makeTheme(config.theme);
553
+ const theme = makeTheme(config3.theme);
397
554
  const prefix = usePrefix({ theme });
398
555
  useKeypress((key, rl) => {
399
556
  if (isEnterKey(key)) {
400
- let answer = config.default !== false;
557
+ let answer = config3.default !== false;
401
558
  if (/^(y|yes)/i.test(value))
402
559
  answer = true;
403
560
  else if (/^(n|no)/i.test(value))
@@ -414,9 +571,9 @@ var esm_default4 = createPrompt((config, done) => {
414
571
  if (status === "done") {
415
572
  formattedValue = theme.style.answer(value);
416
573
  } else {
417
- defaultValue = ` ${theme.style.defaultAnswer(config.default === false ? "y/N" : "Y/n")}`;
574
+ defaultValue = ` ${theme.style.defaultAnswer(config3.default === false ? "y/N" : "Y/n")}`;
418
575
  }
419
- const message = theme.style.message(config.message);
576
+ const message = theme.style.message(config3.message);
420
577
  return `${prefix} ${message}${defaultValue} ${formattedValue}`;
421
578
  });
422
579
 
@@ -437,13 +594,13 @@ function getChoiceKey(choice, key) {
437
594
  return choice.value;
438
595
  return choice.name;
439
596
  }
440
- var esm_default5 = createPrompt((config, done) => {
441
- const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } = config;
597
+ var esm_default5 = createPrompt((config3, done) => {
598
+ const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } = config3;
442
599
  const [status, setStatus] = useState("pending");
443
600
  const [value, setValue] = useState("");
444
601
  const [expanded, setExpanded] = useState(defaultExpandState);
445
602
  const [errorMsg, setError] = useState(void 0);
446
- const theme = makeTheme(config.theme);
603
+ const theme = makeTheme(config3.theme);
447
604
  const prefix = usePrefix({ theme });
448
605
  useKeypress((event, rl) => {
449
606
  if (isEnterKey(event)) {
@@ -468,7 +625,7 @@ var esm_default5 = createPrompt((config, done) => {
468
625
  setError(void 0);
469
626
  }
470
627
  });
471
- const message = theme.style.message(config.message);
628
+ const message = theme.style.message(config3.message);
472
629
  if (status === "done") {
473
630
  return `${prefix} ${message} ${theme.style.answer(value)}`;
474
631
  }
@@ -507,11 +664,11 @@ var esm_default5 = createPrompt((config, done) => {
507
664
  });
508
665
 
509
666
  // ../../node_modules/.pnpm/@inquirer+input@2.1.2/node_modules/@inquirer/input/dist/esm/index.mjs
510
- var esm_default6 = createPrompt((config, done) => {
511
- const { validate = () => true } = config;
512
- const theme = makeTheme(config.theme);
667
+ var esm_default6 = createPrompt((config3, done) => {
668
+ const { validate = () => true } = config3;
669
+ const theme = makeTheme(config3.theme);
513
670
  const [status, setStatus] = useState("pending");
514
- const [defaultValue = "", setDefaultValue] = useState(config.default);
671
+ const [defaultValue = "", setDefaultValue] = useState(config3.default);
515
672
  const [errorMsg, setError] = useState(void 0);
516
673
  const [value, setValue] = useState("");
517
674
  const isLoading = status === "loading";
@@ -545,10 +702,10 @@ var esm_default6 = createPrompt((config, done) => {
545
702
  setError(void 0);
546
703
  }
547
704
  });
548
- const message = theme.style.message(config.message);
705
+ const message = theme.style.message(config3.message);
549
706
  let formattedValue = value;
550
- if (typeof config.transformer === "function") {
551
- formattedValue = config.transformer(value, { isFinal: status === "done" });
707
+ if (typeof config3.transformer === "function") {
708
+ formattedValue = config3.transformer(value, { isFinal: status === "done" });
552
709
  } else if (status === "done") {
553
710
  formattedValue = theme.style.answer(value);
554
711
  }
@@ -568,9 +725,9 @@ var esm_default6 = createPrompt((config, done) => {
568
725
 
569
726
  // ../../node_modules/.pnpm/@inquirer+password@2.1.2/node_modules/@inquirer/password/dist/esm/index.mjs
570
727
  var import_ansi_escapes = __toESM(require_ansi_escapes(), 1);
571
- var esm_default7 = createPrompt((config, done) => {
572
- const { validate = () => true } = config;
573
- const theme = makeTheme(config.theme);
728
+ var esm_default7 = createPrompt((config3, done) => {
729
+ const { validate = () => true } = config3;
730
+ const theme = makeTheme(config3.theme);
574
731
  const [status, setStatus] = useState("pending");
575
732
  const [errorMsg, setError] = useState(void 0);
576
733
  const [value, setValue] = useState("");
@@ -598,11 +755,11 @@ var esm_default7 = createPrompt((config, done) => {
598
755
  setError(void 0);
599
756
  }
600
757
  });
601
- const message = theme.style.message(config.message);
758
+ const message = theme.style.message(config3.message);
602
759
  let formattedValue = "";
603
760
  let helpTip;
604
- if (config.mask) {
605
- const maskChar = typeof config.mask === "string" ? config.mask : "*";
761
+ if (config3.mask) {
762
+ const maskChar = typeof config3.mask === "string" ? config3.mask : "*";
606
763
  formattedValue = maskChar.repeat(value.length);
607
764
  } else if (status !== "done") {
608
765
  helpTip = `${theme.style.help("[input is masked]")}${import_ansi_escapes.default.cursorHide}`;
@@ -1099,7 +1256,7 @@ var PromisePolyfill = class extends Promise {
1099
1256
 
1100
1257
  // ../../node_modules/.pnpm/@inquirer+core@9.2.1/node_modules/@inquirer/core/dist/esm/lib/create-prompt.mjs
1101
1258
  function createPrompt2(view) {
1102
- const prompt = (config, context = {}) => {
1259
+ const prompt = (config3, context = {}) => {
1103
1260
  const { input = process.stdin, signal } = context;
1104
1261
  const cleanups = /* @__PURE__ */ new Set();
1105
1262
  const output = new import_mute_stream.default();
@@ -1133,7 +1290,7 @@ function createPrompt2(view) {
1133
1290
  cleanups.add(() => rl.removeListener("close", hooksCleanup));
1134
1291
  cycle(() => {
1135
1292
  try {
1136
- const nextView = view(config, (value) => {
1293
+ const nextView = view(config3, (value) => {
1137
1294
  setImmediate(() => resolve2(value));
1138
1295
  });
1139
1296
  const [content, bottomContent] = typeof nextView === "string" ? [nextView] : nextView;
@@ -1210,9 +1367,9 @@ function normalizeChoices(choices) {
1210
1367
  };
1211
1368
  });
1212
1369
  }
1213
- var esm_default8 = createPrompt2((config, done) => {
1214
- const { pageSize = 7, validate = () => true } = config;
1215
- const theme = makeTheme2(searchTheme, config.theme);
1370
+ var esm_default8 = createPrompt2((config3, done) => {
1371
+ const { pageSize = 7, validate = () => true } = config3;
1372
+ const theme = makeTheme2(searchTheme, config3.theme);
1216
1373
  const firstRender = useRef(true);
1217
1374
  const [status, setStatus] = useState2("loading");
1218
1375
  const [searchTerm, setSearchTerm] = useState2("");
@@ -1231,7 +1388,7 @@ var esm_default8 = createPrompt2((config, done) => {
1231
1388
  setSearchError(void 0);
1232
1389
  const fetchResults = async () => {
1233
1390
  try {
1234
- const results = await config.source(searchTerm || void 0, {
1391
+ const results = await config3.source(searchTerm || void 0, {
1235
1392
  signal: controller.signal
1236
1393
  });
1237
1394
  if (!controller.signal.aborted) {
@@ -1288,7 +1445,7 @@ var esm_default8 = createPrompt2((config, done) => {
1288
1445
  setSearchTerm(rl.line);
1289
1446
  }
1290
1447
  });
1291
- const message = theme.style.message(config.message, status);
1448
+ const message = theme.style.message(config3.message, status);
1292
1449
  if (active > 0) {
1293
1450
  firstRender.current = false;
1294
1451
  }
@@ -1338,8 +1495,8 @@ ${theme.style.description(selectedChoice.description)}` : ``;
1338
1495
  });
1339
1496
 
1340
1497
  // src/util/client.ts
1341
- var import_async_retry = __toESM(require_dist2(), 1);
1342
- import { join, resolve } from "path";
1498
+ var import_async_retry = __toESM(require_dist3(), 1);
1499
+ import { join as join2, resolve } from "path";
1343
1500
  import { EventEmitter } from "events";
1344
1501
  import { URL } from "url";
1345
1502
  import {
@@ -1447,7 +1604,7 @@ function sharedPromise(fn) {
1447
1604
  }
1448
1605
 
1449
1606
  // src/util/client.ts
1450
- var import_error_utils = __toESM(require_dist(), 1);
1607
+ var import_error_utils2 = __toESM(require_dist(), 1);
1451
1608
 
1452
1609
  // src/util/sleep.ts
1453
1610
  function sleep(ms) {
@@ -1665,6 +1822,23 @@ ${error.stack}`);
1665
1822
  refresh_token: authConfig.refreshToken
1666
1823
  });
1667
1824
  const [tokensError, tokens] = await processTokenResponse(tokenResponse);
1825
+ if (isOAuthError(tokensError) && tokensError.code === "invalid_grant" && !authConfig.tokenSource && this.stdin.isTTY && !this.nonInteractive) {
1826
+ output_manager_default.debug(
1827
+ `Stored session refresh failed: ${tokensError.cause.message}`
1828
+ );
1829
+ output_manager_default.log("Couldn't refresh the saved login. Starting a new login.");
1830
+ const recoveredTokens = await performDeviceCodeFlow(this);
1831
+ if (recoveredTokens) {
1832
+ this.updateAuthConfig({
1833
+ token: recoveredTokens.access_token,
1834
+ userId: void 0,
1835
+ expiresAt: Math.floor(Date.now() / 1e3) + recoveredTokens.expires_in,
1836
+ refreshToken: recoveredTokens.refresh_token
1837
+ });
1838
+ this.persistAuthConfig();
1839
+ return;
1840
+ }
1841
+ }
1668
1842
  if (tokensError) {
1669
1843
  output_manager_default.debug("Error refreshing token, emptying auth config.");
1670
1844
  this.emptyAuthConfig();
@@ -1690,7 +1864,7 @@ ${error.stack}`);
1690
1864
  return getSharedGlobalPathConfig();
1691
1865
  }
1692
1866
  async readConfig(fileName, schema) {
1693
- const filePath = join(this.getGlobalPathConfig(), fileName);
1867
+ const filePath = join2(this.getGlobalPathConfig(), fileName);
1694
1868
  return readSharedConfigFile(filePath, schema);
1695
1869
  }
1696
1870
  async maybeReadConfig(fileName, schema) {
@@ -1701,11 +1875,11 @@ ${error.stack}`);
1701
1875
  }
1702
1876
  }
1703
1877
  async writeConfig(fileName, schema, value) {
1704
- const filePath = join(this.getGlobalPathConfig(), fileName);
1878
+ const filePath = join2(this.getGlobalPathConfig(), fileName);
1705
1879
  writeSharedConfigFile(filePath, schema, value);
1706
1880
  }
1707
- updateConfig(config) {
1708
- this.config = { ...this.config, ...config };
1881
+ updateConfig(config3) {
1882
+ this.config = { ...this.config, ...config3 };
1709
1883
  }
1710
1884
  writeToConfigFile() {
1711
1885
  writeToConfigFile(this.config);
@@ -1860,7 +2034,7 @@ Are you sure you want to proceed?`;
1860
2034
  try {
1861
2035
  await this.reauthenticate(error);
1862
2036
  } catch (reauthError) {
1863
- return bail((0, import_error_utils.normalizeError)(reauthError));
2037
+ return bail((0, import_error_utils2.normalizeError)(reauthError));
1864
2038
  }
1865
2039
  } else if (res.status === 429 && opts.bailOn429) {
1866
2040
  return bail(error);
@@ -1921,8 +2095,16 @@ function progress(current, total, opts = {}) {
1921
2095
  }
1922
2096
 
1923
2097
  export {
1924
- require_dist2 as require_dist,
2098
+ getGlobalPathConfig2 as getGlobalPathConfig,
2099
+ require_dist3 as require_dist,
1925
2100
  printIndications,
2101
+ readConfigFile,
2102
+ writeToConfigFile,
2103
+ readAuthConfigFile,
2104
+ persistAuthConfig,
2105
+ getConfigFilePath2 as getConfigFilePath,
2106
+ getAuthConfigFilePath2 as getAuthConfigFilePath,
2107
+ readLocalConfig,
1926
2108
  sleep,
1927
2109
  isJSONObject,
1928
2110
  Client,
@@ -518,8 +518,8 @@ var jsonOption = {
518
518
  name: "json",
519
519
  shorthand: null,
520
520
  type: Boolean,
521
- deprecated: true,
522
- description: "DEPRECATED: Use --format=json instead"
521
+ deprecated: false,
522
+ description: "Output as JSON"
523
523
  };
524
524
  var allOption = {
525
525
  name: "all",
@@ -12,7 +12,7 @@ import {
12
12
  packageName,
13
13
  stripSensitiveAuthArgs,
14
14
  suggestionFlagTakesSeparateValue
15
- } from "./chunk-KSSNLCL4.js";
15
+ } from "./chunk-SOFC4MLS.js";
16
16
  import {
17
17
  require_dist
18
18
  } from "./chunk-OX7KI3LF.js";
@@ -328,15 +328,15 @@ function outputAgentSuccess(client, payload, exitCode = 0) {
328
328
  `);
329
329
  process.exit(exitCode);
330
330
  }
331
- function buildNextStepsForEdgeConfig(client) {
331
+ function buildNextStepsForGlobalConfig(client) {
332
332
  return [
333
333
  {
334
- command: buildCommandWithGlobalFlags(client.argv, "edge-config list"),
335
- when: "List Edge Config stores in the current team scope"
334
+ command: buildCommandWithGlobalFlags(client.argv, "global-config list"),
335
+ when: "List Global Config stores in the current team scope"
336
336
  },
337
337
  {
338
338
  command: buildCommandWithGlobalFlags(client.argv, "teams switch"),
339
- when: "Switch to the team that owns the Edge Config"
339
+ when: "Switch to the team that owns the Global Config"
340
340
  },
341
341
  {
342
342
  command: buildCommandWithGlobalFlags(client.argv, "whoami"),
@@ -344,7 +344,7 @@ function buildNextStepsForEdgeConfig(client) {
344
344
  }
345
345
  ];
346
346
  }
347
- var EDGE_CONFIG_NON_INTERACTIVE_HINT = "Edge Config commands use your current team scope. Pass --scope or run `vercel teams switch` if the store is missing.";
347
+ var GLOBAL_CONFIG_NON_INTERACTIVE_HINT = "Global Config commands use your current team scope. Pass --scope or run `vercel teams switch` if the store is missing.";
348
348
  var LIST_ERROR_HINT = "Project names are team-scoped. Use --scope when the project belongs to another team, or `list --all` to list deployments across all projects.";
349
349
  function buildNextStepsForList(client, projectName) {
350
350
  return [
@@ -393,6 +393,9 @@ function buildNextStepsForProjectSubcommands(client, variant) {
393
393
  } : variant === "checks" ? {
394
394
  template: "project checks add <name>",
395
395
  when: "Create a deployment check by project name (replace <name>)"
396
+ } : variant === "inspect" ? {
397
+ template: "project inspect <name>",
398
+ when: "Inspect a project by name (replace <name>)"
396
399
  } : {
397
400
  template: "project members <name>",
398
401
  when: "List members by project name (replace <name>)"
@@ -414,10 +417,10 @@ function buildNextStepsForProjectSubcommands(client, variant) {
414
417
  }
415
418
  var PROJECT_SUBCOMMAND_ERROR_HINT = "If you use --cwd, ensure that folder is linked to the right project, or pass an explicit project name. Use --scope when the project belongs to another team.";
416
419
  function resolveNonInteractiveDefaults(client, variant) {
417
- if (variant === "edge-config") {
420
+ if (variant === "global-config") {
418
421
  return {
419
- next: buildNextStepsForEdgeConfig(client),
420
- hint: EDGE_CONFIG_NON_INTERACTIVE_HINT
422
+ next: buildNextStepsForGlobalConfig(client),
423
+ hint: GLOBAL_CONFIG_NON_INTERACTIVE_HINT
421
424
  };
422
425
  }
423
426
  if (variant === "list") {
@@ -465,18 +468,18 @@ function exitWithNonInteractiveError(client, err, exitCode = 1, options = {
465
468
  }
466
469
  const { variant } = options;
467
470
  if (isLinkRequiredLike(err)) {
468
- if (variant === "edge-config") {
471
+ if (variant === "global-config") {
469
472
  writeAgentErrorPayloadAndExit(
470
473
  client,
471
474
  {
472
475
  status: "error",
473
476
  reason: "link_required",
474
477
  message: err instanceof Error ? err.message : String(err),
475
- next: buildNextStepsForEdgeConfig(client),
476
- hint: EDGE_CONFIG_NON_INTERACTIVE_HINT
478
+ next: buildNextStepsForGlobalConfig(client),
479
+ hint: GLOBAL_CONFIG_NON_INTERACTIVE_HINT
477
480
  },
478
481
  exitCode,
479
- "edge-config"
482
+ "global-config"
480
483
  );
481
484
  return;
482
485
  }
@@ -509,7 +512,7 @@ function exitWithNonInteractiveError(client, err, exitCode = 1, options = {
509
512
  if (isAPIError(err)) {
510
513
  const rawMessage = err.serverMessage || err.message;
511
514
  const message = normalizeApiErrorText(rawMessage);
512
- const reason = err.status === 403 ? "forbidden" : err.status === 401 ? "not_authorized" : err.status === 404 ? variant === "edge-config" ? "not_found" : "project_not_found" : err.status === 429 ? "rate_limited" : "api_error";
515
+ const reason = err.status === 403 ? "forbidden" : err.status === 401 ? "not_authorized" : err.status === 404 ? variant === "global-config" ? "not_found" : "project_not_found" : err.status === 429 ? "rate_limited" : "api_error";
513
516
  writeAgentErrorPayloadAndExit(
514
517
  client,
515
518
  {
@@ -613,6 +616,7 @@ var AGENT_REASON = {
613
616
  INVALID_BUDGET: "invalid_budget",
614
617
  INVALID_REFRESH_PERIOD: "invalid_refresh_period",
615
618
  INVALID_EXPIRATION: "invalid_expiration",
619
+ INVALID_ALERT_THRESHOLDS: "invalid_alert_thresholds",
616
620
  /**
617
621
  * Every selected agent needs explicit `--agent`/`--all` consent (see the
618
622
  * payload's skipped[]). `--yes` does not grant it, so this is deliberately
@@ -5,12 +5,13 @@ const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
+ getLocalPathConfig,
8
9
  isPromptBackError,
9
10
  isPromptCanceledError
10
- } from "./chunk-V4RMJKQP.js";
11
+ } from "./chunk-CPFNFVCL.js";
11
12
  import {
12
13
  table
13
- } from "./chunk-NZRWTCRM.js";
14
+ } from "./chunk-KT4XXKJK.js";
14
15
  import {
15
16
  Separator,
16
17
  VERCEL_DIR_PROJECT,
@@ -25,7 +26,6 @@ import {
25
26
  findRepoRoot,
26
27
  findSourceVercelConfigFile,
27
28
  getLinkedProject,
28
- getLocalPathConfig,
29
29
  getProjectByNameOrId,
30
30
  getServicesConfigWriteBlocker,
31
31
  getVercelDirectory,
@@ -46,15 +46,15 @@ import {
46
46
  selectAndParseRemoteUrl,
47
47
  selectOrg,
48
48
  writeServicesConfig
49
- } from "./chunk-TBR2Q37Y.js";
49
+ } from "./chunk-4CCY5OPH.js";
50
50
  import {
51
51
  printError
52
- } from "./chunk-SZXT3PDQ.js";
52
+ } from "./chunk-KBEX5MYS.js";
53
53
  import {
54
54
  CantParseJSONFile,
55
55
  ProjectNotFound,
56
56
  isAPIError
57
- } from "./chunk-KSSNLCL4.js";
57
+ } from "./chunk-SOFC4MLS.js";
58
58
  import {
59
59
  output_manager_default
60
60
  } from "./chunk-OX7KI3LF.js";
@@ -1378,13 +1378,7 @@ async function setupAndLink(client, path2, {
1378
1378
  }
1379
1379
  }
1380
1380
  }
1381
- let changeAdditionalSettings = false;
1382
- if (!autoConfirm) {
1383
- changeAdditionalSettings = await client.input.confirm(
1384
- "Customize advanced settings?",
1385
- false
1386
- );
1387
- }
1381
+ const changeAdditionalSettings = false;
1388
1382
  let vercelAuthSetting = DEFAULT_VERCEL_AUTH_SETTING;
1389
1383
  if (changeAdditionalSettings) {
1390
1384
  vercelAuthSetting = await vercelAuth(client, {
@@ -0,0 +1,22 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ require_source
9
+ } from "./chunk-S7KYDPEM.js";
10
+ import {
11
+ __toESM
12
+ } from "./chunk-TZ2YI2VH.js";
13
+
14
+ // src/util/output/highlight.ts
15
+ var import_chalk = __toESM(require_source(), 1);
16
+ function highlight(text) {
17
+ return import_chalk.default.bold.underline(text);
18
+ }
19
+
20
+ export {
21
+ highlight
22
+ };
@@ -6,11 +6,11 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  STANDARD_ENVIRONMENTS
9
- } from "./chunk-TBR2Q37Y.js";
9
+ } from "./chunk-4CCY5OPH.js";
10
10
  import {
11
11
  getCommandName,
12
12
  require_lib
13
- } from "./chunk-KSSNLCL4.js";
13
+ } from "./chunk-SOFC4MLS.js";
14
14
  import {
15
15
  output_manager_default
16
16
  } from "./chunk-OX7KI3LF.js";