vercel 56.5.0 → 57.0.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 (90) hide show
  1. package/dist/chunks/{add-6GRH6G2M.js → add-7M577U56.js} +6 -5
  2. package/dist/chunks/{add-KNK5E2YT.js → add-YRZTDNXX.js} +2 -2
  3. package/dist/chunks/{chunk-4MK452Y5.js → chunk-2EDWKVNP.js} +8 -8
  4. package/dist/chunks/{chunk-YS6EDZHB.js → chunk-2MJROFVC.js} +5 -1
  5. package/dist/chunks/{chunk-JQG5EDRD.js → chunk-3242RXCN.js} +1 -1
  6. package/dist/chunks/chunk-3PGXYIKC.js +147 -0
  7. package/dist/chunks/{chunk-3BHSS5E2.js → chunk-4PGF367U.js} +47 -210
  8. package/dist/chunks/{chunk-ARKHETJP.js → chunk-555WJSO5.js} +1 -1
  9. package/dist/chunks/chunk-5AJPMLDV.js +28 -0
  10. package/dist/chunks/{chunk-IBP2XAUH.js → chunk-A2TYQBX2.js} +17 -3
  11. package/dist/chunks/{chunk-V5P25P7F.js → chunk-A3NYPUKZ.js} +7 -12
  12. package/dist/chunks/{chunk-W346YNDN.js → chunk-DWMH5M4Q.js} +4 -1
  13. package/dist/chunks/{chunk-BM36UWE2.js → chunk-F5PQWDOC.js} +1 -1
  14. package/dist/chunks/{chunk-DOF6CJLL.js → chunk-F7X55TOY.js} +15 -839
  15. package/dist/chunks/chunk-FGDKMNEN.js +21 -0
  16. package/dist/chunks/{chunk-DI3HR3K6.js → chunk-GP5VCTEU.js} +1 -1
  17. package/dist/chunks/chunk-GZLPFESR.js +48 -0
  18. package/dist/chunks/{chunk-X43U65TH.js → chunk-HD7B425F.js} +2 -2
  19. package/dist/chunks/{chunk-CM3DLBDY.js → chunk-IOAZNR6Z.js} +1 -1
  20. package/dist/chunks/{chunk-STJJ3DFO.js → chunk-KCF6S3XF.js} +16 -1
  21. package/dist/chunks/{chunk-YTFJGKRG.js → chunk-LMHT3QR3.js} +1 -1
  22. package/dist/chunks/{chunk-SWEPOMSA.js → chunk-MAHINYBW.js} +4 -3
  23. package/dist/chunks/{chunk-G4MTGCZ5.js → chunk-MIFDRYTN.js} +1 -1
  24. package/dist/chunks/{chunk-PRYNIKBZ.js → chunk-NH43BFJ3.js} +1 -1
  25. package/dist/chunks/{chunk-Z7NPYIZ6.js → chunk-NM43FFV6.js} +0 -8
  26. package/dist/chunks/{chunk-PPEQUJ7T.js → chunk-NRNMT43R.js} +3 -3
  27. package/dist/chunks/chunk-OF2GNB42.js +53 -0
  28. package/dist/chunks/chunk-PRWJUY5U.js +848 -0
  29. package/dist/chunks/{chunk-F5OMERHI.js → chunk-QZD5DKUR.js} +10 -23
  30. package/dist/chunks/{chunk-26TEKOBZ.js → chunk-RAFH25WW.js} +8 -1
  31. package/dist/chunks/{chunk-GAOAGU5K.js → chunk-RYO6FJFB.js} +1 -1
  32. package/dist/chunks/{chunk-23U6FANO.js → chunk-T4NODP6Y.js} +11 -18
  33. package/dist/chunks/{chunk-TMK6RSYW.js → chunk-TBR2Q37Y.js} +1202 -947
  34. package/dist/chunks/chunk-V4RMJKQP.js +36 -0
  35. package/dist/chunks/{chunk-6RTK6BWX.js → chunk-YA3WQFLY.js} +1 -1
  36. package/dist/chunks/{chunk-EYICIM2K.js → chunk-YOZCJHLZ.js} +4 -4
  37. package/dist/chunks/{compile-vercel-config-IFET4E6H.js → compile-vercel-config-3OHO3TJA.js} +1 -1
  38. package/dist/chunks/config-validator.mjs +1 -1
  39. package/dist/chunks/{delete-X2MUMONI.js → delete-3DZOCWCC.js} +2 -2
  40. package/dist/chunks/{delete-PXB5WRH7.js → delete-VOSJLNEA.js} +2 -2
  41. package/dist/chunks/{disable-GBL3SHJL.js → disable-LQDEVRQF.js} +2 -2
  42. package/dist/chunks/{discard-XVVSRGDR.js → discard-RGV4JKXQ.js} +2 -2
  43. package/dist/chunks/{edit-EIHRP6XT.js → edit-SFIEOQ24.js} +3 -3
  44. package/dist/chunks/{edit-K5Y2BDJO.js → edit-UPZPI54L.js} +2 -2
  45. package/dist/chunks/{enable-W7AMJWKH.js → enable-6UVH35WC.js} +2 -2
  46. package/dist/chunks/{export-N3AZ2KOO.js → export-6CEG3CK7.js} +2 -2
  47. package/dist/chunks/{image-DRTGVPVJ.js → image-CQRCD2OE.js} +3 -3
  48. package/dist/chunks/{inspect-SLZLI6ZC.js → inspect-4ZAH3RFT.js} +3 -3
  49. package/dist/chunks/inspect-EXQBIAFF.js +587 -0
  50. package/dist/chunks/{inspect-AAIVWSJI.js → inspect-K5ZMQG7X.js} +2 -2
  51. package/dist/chunks/{inspect-DYXTX6P4.js → inspect-UM3LDRPV.js} +2 -2
  52. package/dist/chunks/{inspect-IPSAYR2C.js → inspect-ZFRY3X3H.js} +2 -2
  53. package/dist/chunks/{list-V7VTXVK4.js → list-4DRVM7Q4.js} +41 -54
  54. package/dist/chunks/{list-IF2YW73F.js → list-FJCBOCCA.js} +1 -1
  55. package/dist/chunks/{list-K2HLGUXV.js → list-KCUHD4OA.js} +3 -3
  56. package/dist/chunks/{login-7C6HQEOG.js → login-DFGYNU3K.js} +2 -2
  57. package/dist/chunks/{ls-QQQHOJBE.js → ls-34NCZKBE.js} +2 -2
  58. package/dist/chunks/{ls-NKECPPOR.js → ls-4QHHVXXD.js} +2 -2
  59. package/dist/chunks/{ls-2NU353QP.js → ls-CG6A7UXF.js} +2 -2
  60. package/dist/chunks/ls-RHEQ6YQB.js +188 -0
  61. package/dist/chunks/{open-2FAPZA6V.js → open-E3XADEMX.js} +2 -2
  62. package/dist/chunks/{publish-G7PB64LJ.js → publish-Z3AQRUCS.js} +2 -2
  63. package/dist/chunks/{query-D4QBT4WR.js → query-3EV66DO3.js} +8 -8
  64. package/dist/chunks/{reorder-3Z7YIPAX.js → reorder-VA5E5ZJT.js} +2 -2
  65. package/dist/chunks/{reply-7QQBXL5H.js → reply-SNSCNKAW.js} +2 -2
  66. package/dist/chunks/{resolve-UYKTDZEX.js → resolve-6ZX4RTXX.js} +2 -2
  67. package/dist/chunks/{restore-Q2DR7SMW.js → restore-NEHI5B5P.js} +2 -2
  68. package/dist/chunks/{rm-PCWMEHQ2.js → rm-22B22E47.js} +2 -2
  69. package/dist/chunks/{rm-O4M4GFSK.js → rm-E5ZVLAKO.js} +2 -2
  70. package/dist/chunks/{rm-OCLUTM57.js → rm-FR6KE744.js} +6 -5
  71. package/dist/chunks/rule-inspect-DMP2CKJQ.js +283 -0
  72. package/dist/chunks/{rules-LIH5FLPJ.js → rules-EYGXEI2Z.js} +7 -7
  73. package/dist/chunks/{schema-OFALTXXM.js → schema-2IIWOBSQ.js} +6 -4
  74. package/dist/chunks/{tags-P4HIAI6D.js → tags-ZDVYRHAY.js} +2 -2
  75. package/dist/chunks/{update-E3ZQAFBS.js → update-QH4DQMZV.js} +6 -5
  76. package/dist/commands/build/index.js +42 -10
  77. package/dist/commands/deploy/index.js +34 -24
  78. package/dist/commands/dev/index.js +10 -13
  79. package/dist/commands/env/index.js +8 -7
  80. package/dist/commands/link/index.js +8 -8
  81. package/dist/commands/list/index.js +2 -2
  82. package/dist/commands-bulk.js +1836 -1796
  83. package/dist/index.js +19 -20
  84. package/dist/vc.js +54 -18
  85. package/dist/version.mjs +1 -1
  86. package/package.json +38 -38
  87. package/dist/chunks/chunk-GNV7547O.js +0 -86
  88. package/dist/chunks/inspect-5YUAEI3L.js +0 -351
  89. package/dist/chunks/ls-RH6Y4XBS.js +0 -113
  90. package/dist/chunks/rule-inspect-XJ47UEG7.js +0 -141
@@ -4,51 +4,39 @@ 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";
10
7
  import {
11
8
  PromptBackError,
12
- PromptCanceledError,
13
- getLocalPathConfig
14
- } from "./chunk-GNV7547O.js";
9
+ PromptCanceledError
10
+ } from "./chunk-V4RMJKQP.js";
15
11
  import {
16
- DEFAULT_VERCEL_CONFIG_FILENAME,
17
- VERCEL_CONFIG_EXTENSIONS,
18
- VERCEL_DIR,
19
12
  createPrompt,
20
13
  esm_default,
21
14
  esm_default2,
22
15
  esm_default3,
23
- humanizePath,
24
16
  isBackspaceKey,
25
17
  isEnterKey,
26
- isVercelTomlEnabled,
27
18
  makeTheme,
28
19
  onExit,
29
20
  performDeviceCodeFlow,
21
+ persistAuthConfig,
30
22
  processTokenResponse,
31
23
  refreshTokenRequest,
32
24
  require_cli_width,
33
- require_dist as require_dist2,
34
25
  require_lib2 as require_lib,
35
26
  require_source as require_source2,
36
27
  require_wrap_ansi,
37
28
  ua_default,
38
29
  useKeypress,
39
30
  usePrefix,
40
- useState
41
- } from "./chunk-TMK6RSYW.js";
42
- import {
43
- require_load_json_file
44
- } from "./chunk-ECCWJHC6.js";
31
+ useState,
32
+ writeToConfigFile
33
+ } from "./chunk-TBR2Q37Y.js";
45
34
  import {
46
35
  parseArguments,
47
36
  require_strip_ansi
48
37
  } from "./chunk-SZXT3PDQ.js";
49
38
  import {
50
- APIError,
51
- NowError
39
+ APIError
52
40
  } from "./chunk-KSSNLCL4.js";
53
41
  import {
54
42
  pkg_default
@@ -362,7 +350,7 @@ var require_retry2 = __commonJS({
362
350
  });
363
351
 
364
352
  // ../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js
365
- var require_dist3 = __commonJS({
353
+ var require_dist2 = __commonJS({
366
354
  "../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js"(exports, module) {
367
355
  "use strict";
368
356
  var retrier = require_retry2();
@@ -397,162 +385,19 @@ var require_dist3 = __commonJS({
397
385
  }
398
386
  });
399
387
 
400
- // src/util/config/global-path.ts
401
- import path from "path";
402
- import * as config from "@vercel/cli-config";
403
- function getGlobalPathConfig2(argvSlice = process.argv.slice(2), cwd = process.cwd()) {
404
- const args = parseArguments(argvSlice, {}, { permissive: true });
405
- const confFlag = args.flags["--global-config"];
406
- if (confFlag) {
407
- return path.resolve(cwd, confFlag);
408
- } else {
409
- return config.getGlobalPathConfig();
410
- }
411
- }
412
-
413
- // src/util/config/files.ts
414
- var import_load_json_file = __toESM(require_load_json_file(), 1);
415
- var import_error_utils = __toESM(require_dist(), 1);
416
- var import_client = __toESM(require_dist2(), 1);
417
- import { join, basename, dirname } from "path";
418
- import { accessSync, constants } from "fs";
419
- import * as config2 from "@vercel/cli-config";
420
- import {
421
- persistCliAuthConfig,
422
- readCliAuthConfig
423
- } from "@vercel/cli-auth/credentials-store.js";
424
- var VERCEL_DIR2 = getGlobalPathConfig2();
425
- var CONFIG_FILE_PATH = config2.getConfigFilePath(VERCEL_DIR2);
426
- var AUTH_CONFIG_FILE_PATH = config2.getAuthConfigFilePath(VERCEL_DIR2);
427
- var readConfigFile = () => {
428
- return config2.readGlobalConfigFile(CONFIG_FILE_PATH);
429
- };
430
- var writeToConfigFile = (stuff) => {
431
- try {
432
- config2.writeGlobalConfigFile(CONFIG_FILE_PATH, stuff);
433
- } catch (err) {
434
- if ((0, import_error_utils.isErrnoException)(err)) {
435
- if ((0, import_error_utils.isErrnoException)(err) && err.code === "EPERM") {
436
- output_manager_default.error(
437
- `Not able to create ${highlight(
438
- CONFIG_FILE_PATH
439
- )} (operation not permitted).`
440
- );
441
- process.exit(1);
442
- } else if (err.code === "EBADF") {
443
- output_manager_default.error(
444
- `Not able to create ${highlight(
445
- CONFIG_FILE_PATH
446
- )} (bad file descriptor).`
447
- );
448
- process.exit(1);
449
- }
450
- }
451
- throw err;
452
- }
453
- };
454
- var readAuthConfigFile = (_globalConfig) => {
455
- return {
456
- ...config2.getDefaultAuthConfig(),
457
- ...readCliAuthConfig(VERCEL_DIR2)
458
- };
459
- };
460
- var persistAuthConfig = (authConfig, _globalConfig) => {
461
- try {
462
- return persistCliAuthConfig(VERCEL_DIR2, authConfig);
463
- } catch (err) {
464
- const wrappedError = new Error(
465
- `Not able to create ${humanizePath(AUTH_CONFIG_FILE_PATH)} (${(0, import_error_utils.errorToStringFriendly)(
466
- err
467
- )}).`
468
- );
469
- wrappedError.cause = err;
470
- throw wrappedError;
471
- }
472
- };
473
- function getConfigFilePath2() {
474
- return CONFIG_FILE_PATH;
475
- }
476
- function getAuthConfigFilePath2() {
477
- return AUTH_CONFIG_FILE_PATH;
478
- }
479
- function readLocalConfig(prefix = process.cwd()) {
480
- let config3 = void 0;
481
- let target = "";
482
- try {
483
- target = getLocalPathConfig(prefix);
484
- } catch (err) {
485
- if (err instanceof NowError) {
486
- output_manager_default.error(err.message);
487
- process.exit(1);
488
- } else {
489
- throw err;
490
- }
491
- }
492
- if (!target) {
493
- return;
494
- }
495
- try {
496
- accessSync(target, constants.F_OK);
497
- config3 = import_load_json_file.default.sync(target);
498
- } catch (err) {
499
- if ((0, import_error_utils.isErrnoException)(err) && err.code === "ENOENT") {
500
- } else if ((0, import_error_utils.isError)(err) && err.name === "JSONError") {
501
- output_manager_default.error(err.message);
502
- process.exit(1);
503
- } else if ((0, import_error_utils.isErrnoException)(err)) {
504
- const code = err.code ? ` (${err.code})` : "";
505
- output_manager_default.error(`Failed to read config file: ${target}${code}`);
506
- process.exit(1);
507
- } else {
508
- output_manager_default.prettyError(err);
509
- process.exit(1);
510
- }
511
- }
512
- if (!config3) {
513
- return;
514
- }
515
- const isCompiledConfig = basename(target) === "vercel.json" && basename(dirname(target)) === VERCEL_DIR;
516
- if (isCompiledConfig) {
517
- const workPath = dirname(dirname(target));
518
- let sourceFile = null;
519
- for (const ext of VERCEL_CONFIG_EXTENSIONS) {
520
- const configPath = join(workPath, `vercel.${ext}`);
521
- try {
522
- accessSync(configPath, constants.F_OK);
523
- sourceFile = basename(configPath);
524
- break;
525
- } catch {
526
- }
527
- }
528
- if (!sourceFile && isVercelTomlEnabled()) {
529
- const tomlPath = join(workPath, "vercel.toml");
530
- try {
531
- accessSync(tomlPath, constants.F_OK);
532
- sourceFile = "vercel.toml";
533
- } catch {
534
- }
535
- }
536
- config3[import_client.fileNameSymbol] = sourceFile || DEFAULT_VERCEL_CONFIG_FILENAME;
537
- } else {
538
- config3[import_client.fileNameSymbol] = basename(target);
539
- }
540
- return config3;
541
- }
542
-
543
388
  // src/util/client.ts
544
389
  var import_chalk4 = __toESM(require_source(), 1);
545
390
 
546
391
  // ../../node_modules/.pnpm/@inquirer+confirm@3.1.2/node_modules/@inquirer/confirm/dist/esm/index.mjs
547
- var esm_default4 = createPrompt((config3, done) => {
548
- const { transformer = (answer) => answer ? "yes" : "no" } = config3;
392
+ var esm_default4 = createPrompt((config, done) => {
393
+ const { transformer = (answer) => answer ? "yes" : "no" } = config;
549
394
  const [status, setStatus] = useState("pending");
550
395
  const [value, setValue] = useState("");
551
- const theme = makeTheme(config3.theme);
396
+ const theme = makeTheme(config.theme);
552
397
  const prefix = usePrefix({ theme });
553
398
  useKeypress((key, rl) => {
554
399
  if (isEnterKey(key)) {
555
- let answer = config3.default !== false;
400
+ let answer = config.default !== false;
556
401
  if (/^(y|yes)/i.test(value))
557
402
  answer = true;
558
403
  else if (/^(n|no)/i.test(value))
@@ -569,9 +414,9 @@ var esm_default4 = createPrompt((config3, done) => {
569
414
  if (status === "done") {
570
415
  formattedValue = theme.style.answer(value);
571
416
  } else {
572
- defaultValue = ` ${theme.style.defaultAnswer(config3.default === false ? "y/N" : "Y/n")}`;
417
+ defaultValue = ` ${theme.style.defaultAnswer(config.default === false ? "y/N" : "Y/n")}`;
573
418
  }
574
- const message = theme.style.message(config3.message);
419
+ const message = theme.style.message(config.message);
575
420
  return `${prefix} ${message}${defaultValue} ${formattedValue}`;
576
421
  });
577
422
 
@@ -592,13 +437,13 @@ function getChoiceKey(choice, key) {
592
437
  return choice.value;
593
438
  return choice.name;
594
439
  }
595
- var esm_default5 = createPrompt((config3, done) => {
596
- const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } = config3;
440
+ var esm_default5 = createPrompt((config, done) => {
441
+ const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } = config;
597
442
  const [status, setStatus] = useState("pending");
598
443
  const [value, setValue] = useState("");
599
444
  const [expanded, setExpanded] = useState(defaultExpandState);
600
445
  const [errorMsg, setError] = useState(void 0);
601
- const theme = makeTheme(config3.theme);
446
+ const theme = makeTheme(config.theme);
602
447
  const prefix = usePrefix({ theme });
603
448
  useKeypress((event, rl) => {
604
449
  if (isEnterKey(event)) {
@@ -623,7 +468,7 @@ var esm_default5 = createPrompt((config3, done) => {
623
468
  setError(void 0);
624
469
  }
625
470
  });
626
- const message = theme.style.message(config3.message);
471
+ const message = theme.style.message(config.message);
627
472
  if (status === "done") {
628
473
  return `${prefix} ${message} ${theme.style.answer(value)}`;
629
474
  }
@@ -662,11 +507,11 @@ var esm_default5 = createPrompt((config3, done) => {
662
507
  });
663
508
 
664
509
  // ../../node_modules/.pnpm/@inquirer+input@2.1.2/node_modules/@inquirer/input/dist/esm/index.mjs
665
- var esm_default6 = createPrompt((config3, done) => {
666
- const { validate = () => true } = config3;
667
- const theme = makeTheme(config3.theme);
510
+ var esm_default6 = createPrompt((config, done) => {
511
+ const { validate = () => true } = config;
512
+ const theme = makeTheme(config.theme);
668
513
  const [status, setStatus] = useState("pending");
669
- const [defaultValue = "", setDefaultValue] = useState(config3.default);
514
+ const [defaultValue = "", setDefaultValue] = useState(config.default);
670
515
  const [errorMsg, setError] = useState(void 0);
671
516
  const [value, setValue] = useState("");
672
517
  const isLoading = status === "loading";
@@ -700,10 +545,10 @@ var esm_default6 = createPrompt((config3, done) => {
700
545
  setError(void 0);
701
546
  }
702
547
  });
703
- const message = theme.style.message(config3.message);
548
+ const message = theme.style.message(config.message);
704
549
  let formattedValue = value;
705
- if (typeof config3.transformer === "function") {
706
- formattedValue = config3.transformer(value, { isFinal: status === "done" });
550
+ if (typeof config.transformer === "function") {
551
+ formattedValue = config.transformer(value, { isFinal: status === "done" });
707
552
  } else if (status === "done") {
708
553
  formattedValue = theme.style.answer(value);
709
554
  }
@@ -723,9 +568,9 @@ var esm_default6 = createPrompt((config3, done) => {
723
568
 
724
569
  // ../../node_modules/.pnpm/@inquirer+password@2.1.2/node_modules/@inquirer/password/dist/esm/index.mjs
725
570
  var import_ansi_escapes = __toESM(require_ansi_escapes(), 1);
726
- var esm_default7 = createPrompt((config3, done) => {
727
- const { validate = () => true } = config3;
728
- const theme = makeTheme(config3.theme);
571
+ var esm_default7 = createPrompt((config, done) => {
572
+ const { validate = () => true } = config;
573
+ const theme = makeTheme(config.theme);
729
574
  const [status, setStatus] = useState("pending");
730
575
  const [errorMsg, setError] = useState(void 0);
731
576
  const [value, setValue] = useState("");
@@ -753,11 +598,11 @@ var esm_default7 = createPrompt((config3, done) => {
753
598
  setError(void 0);
754
599
  }
755
600
  });
756
- const message = theme.style.message(config3.message);
601
+ const message = theme.style.message(config.message);
757
602
  let formattedValue = "";
758
603
  let helpTip;
759
- if (config3.mask) {
760
- const maskChar = typeof config3.mask === "string" ? config3.mask : "*";
604
+ if (config.mask) {
605
+ const maskChar = typeof config.mask === "string" ? config.mask : "*";
761
606
  formattedValue = maskChar.repeat(value.length);
762
607
  } else if (status !== "done") {
763
608
  helpTip = `${theme.style.help("[input is masked]")}${import_ansi_escapes.default.cursorHide}`;
@@ -1254,7 +1099,7 @@ var PromisePolyfill = class extends Promise {
1254
1099
 
1255
1100
  // ../../node_modules/.pnpm/@inquirer+core@9.2.1/node_modules/@inquirer/core/dist/esm/lib/create-prompt.mjs
1256
1101
  function createPrompt2(view) {
1257
- const prompt = (config3, context = {}) => {
1102
+ const prompt = (config, context = {}) => {
1258
1103
  const { input = process.stdin, signal } = context;
1259
1104
  const cleanups = /* @__PURE__ */ new Set();
1260
1105
  const output = new import_mute_stream.default();
@@ -1288,7 +1133,7 @@ function createPrompt2(view) {
1288
1133
  cleanups.add(() => rl.removeListener("close", hooksCleanup));
1289
1134
  cycle(() => {
1290
1135
  try {
1291
- const nextView = view(config3, (value) => {
1136
+ const nextView = view(config, (value) => {
1292
1137
  setImmediate(() => resolve2(value));
1293
1138
  });
1294
1139
  const [content, bottomContent] = typeof nextView === "string" ? [nextView] : nextView;
@@ -1365,9 +1210,9 @@ function normalizeChoices(choices) {
1365
1210
  };
1366
1211
  });
1367
1212
  }
1368
- var esm_default8 = createPrompt2((config3, done) => {
1369
- const { pageSize = 7, validate = () => true } = config3;
1370
- const theme = makeTheme2(searchTheme, config3.theme);
1213
+ var esm_default8 = createPrompt2((config, done) => {
1214
+ const { pageSize = 7, validate = () => true } = config;
1215
+ const theme = makeTheme2(searchTheme, config.theme);
1371
1216
  const firstRender = useRef(true);
1372
1217
  const [status, setStatus] = useState2("loading");
1373
1218
  const [searchTerm, setSearchTerm] = useState2("");
@@ -1386,7 +1231,7 @@ var esm_default8 = createPrompt2((config3, done) => {
1386
1231
  setSearchError(void 0);
1387
1232
  const fetchResults = async () => {
1388
1233
  try {
1389
- const results = await config3.source(searchTerm || void 0, {
1234
+ const results = await config.source(searchTerm || void 0, {
1390
1235
  signal: controller.signal
1391
1236
  });
1392
1237
  if (!controller.signal.aborted) {
@@ -1443,7 +1288,7 @@ var esm_default8 = createPrompt2((config3, done) => {
1443
1288
  setSearchTerm(rl.line);
1444
1289
  }
1445
1290
  });
1446
- const message = theme.style.message(config3.message, status);
1291
+ const message = theme.style.message(config.message, status);
1447
1292
  if (active > 0) {
1448
1293
  firstRender.current = false;
1449
1294
  }
@@ -1493,8 +1338,8 @@ ${theme.style.description(selectedChoice.description)}` : ``;
1493
1338
  });
1494
1339
 
1495
1340
  // src/util/client.ts
1496
- var import_async_retry = __toESM(require_dist3(), 1);
1497
- import { join as join2, resolve } from "path";
1341
+ var import_async_retry = __toESM(require_dist2(), 1);
1342
+ import { join, resolve } from "path";
1498
1343
  import { EventEmitter } from "events";
1499
1344
  import { URL } from "url";
1500
1345
  import {
@@ -1602,7 +1447,7 @@ function sharedPromise(fn) {
1602
1447
  }
1603
1448
 
1604
1449
  // src/util/client.ts
1605
- var import_error_utils2 = __toESM(require_dist(), 1);
1450
+ var import_error_utils = __toESM(require_dist(), 1);
1606
1451
 
1607
1452
  // src/util/sleep.ts
1608
1453
  function sleep(ms) {
@@ -1845,7 +1690,7 @@ ${error.stack}`);
1845
1690
  return getSharedGlobalPathConfig();
1846
1691
  }
1847
1692
  async readConfig(fileName, schema) {
1848
- const filePath = join2(this.getGlobalPathConfig(), fileName);
1693
+ const filePath = join(this.getGlobalPathConfig(), fileName);
1849
1694
  return readSharedConfigFile(filePath, schema);
1850
1695
  }
1851
1696
  async maybeReadConfig(fileName, schema) {
@@ -1856,11 +1701,11 @@ ${error.stack}`);
1856
1701
  }
1857
1702
  }
1858
1703
  async writeConfig(fileName, schema, value) {
1859
- const filePath = join2(this.getGlobalPathConfig(), fileName);
1704
+ const filePath = join(this.getGlobalPathConfig(), fileName);
1860
1705
  writeSharedConfigFile(filePath, schema, value);
1861
1706
  }
1862
- updateConfig(config3) {
1863
- this.config = { ...this.config, ...config3 };
1707
+ updateConfig(config) {
1708
+ this.config = { ...this.config, ...config };
1864
1709
  }
1865
1710
  writeToConfigFile() {
1866
1711
  writeToConfigFile(this.config);
@@ -2015,7 +1860,7 @@ Are you sure you want to proceed?`;
2015
1860
  try {
2016
1861
  await this.reauthenticate(error);
2017
1862
  } catch (reauthError) {
2018
- return bail((0, import_error_utils2.normalizeError)(reauthError));
1863
+ return bail((0, import_error_utils.normalizeError)(reauthError));
2019
1864
  }
2020
1865
  } else if (res.status === 429 && opts.bailOn429) {
2021
1866
  return bail(error);
@@ -2076,16 +1921,8 @@ function progress(current, total, opts = {}) {
2076
1921
  }
2077
1922
 
2078
1923
  export {
2079
- getGlobalPathConfig2 as getGlobalPathConfig,
2080
- require_dist3 as require_dist,
1924
+ require_dist2 as require_dist,
2081
1925
  printIndications,
2082
- readConfigFile,
2083
- writeToConfigFile,
2084
- readAuthConfigFile,
2085
- persistAuthConfig,
2086
- getConfigFilePath2 as getConfigFilePath,
2087
- getAuthConfigFilePath2 as getAuthConfigFilePath,
2088
- readLocalConfig,
2089
1926
  sleep,
2090
1927
  isJSONObject,
2091
1928
  Client,
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  resolveProjectContext
9
- } from "./chunk-TMK6RSYW.js";
9
+ } from "./chunk-TBR2Q37Y.js";
10
10
  import {
11
11
  AGENT_REASON,
12
12
  AGENT_STATUS,
@@ -0,0 +1,28 @@
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
+
8
+ // src/util/output/format-granularity.ts
9
+ function formatGranularity(value) {
10
+ if (!value || typeof value !== "object") {
11
+ return void 0;
12
+ }
13
+ const granularity = value;
14
+ if (typeof granularity.minutes === "number") {
15
+ return `${granularity.minutes}m`;
16
+ }
17
+ if (typeof granularity.hours === "number") {
18
+ return `${granularity.hours}h`;
19
+ }
20
+ if (typeof granularity.days === "number") {
21
+ return `${granularity.days}d`;
22
+ }
23
+ return void 0;
24
+ }
25
+
26
+ export {
27
+ formatGranularity
28
+ };
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-3PKFXNJZ.js";
22
22
  import {
23
23
  alertsCommand
24
- } from "./chunk-YS6EDZHB.js";
24
+ } from "./chunk-2MJROFVC.js";
25
25
  import {
26
26
  devCommand
27
27
  } from "./chunk-OGG6UBXK.js";
@@ -31,10 +31,10 @@ import {
31
31
  import {
32
32
  buildCommand,
33
33
  pullCommand
34
- } from "./chunk-PRYNIKBZ.js";
34
+ } from "./chunk-NH43BFJ3.js";
35
35
  import {
36
36
  envCommand
37
- } from "./chunk-TMK6RSYW.js";
37
+ } from "./chunk-TBR2Q37Y.js";
38
38
  import {
39
39
  confirmOption,
40
40
  deploymentOption,
@@ -9646,6 +9646,20 @@ var upgradeCommand = {
9646
9646
  deprecated: false,
9647
9647
  description: "Disable automatic CLI updates"
9648
9648
  },
9649
+ {
9650
+ // Internal: opt in/out of the native CLI binary. Undocumented (no
9651
+ // `description`) so it is omitted from `--help`.
9652
+ name: "enable-binary",
9653
+ shorthand: null,
9654
+ type: Boolean,
9655
+ deprecated: false
9656
+ },
9657
+ {
9658
+ name: "disable-binary",
9659
+ shorthand: null,
9660
+ type: Boolean,
9661
+ deprecated: false
9662
+ },
9649
9663
  {
9650
9664
  ...formatOption,
9651
9665
  description: "Specify the output format (json) - implies --dry-run"
@@ -4,19 +4,14 @@ 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
- require_source
9
- } from "./chunk-S7KYDPEM.js";
10
- import {
11
- __toESM
12
- } from "./chunk-TZ2YI2VH.js";
13
7
 
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
- }
8
+ // src/util/output/indent.ts
9
+ var indent_default = (input, level) => {
10
+ const fill = " ".repeat(level);
11
+ return `${fill}${input.replace(/\n/g, `
12
+ ${fill}`)}`;
13
+ };
19
14
 
20
15
  export {
21
- highlight
16
+ indent_default
22
17
  };
@@ -4,6 +4,9 @@ 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
+ truncateEnd
9
+ } from "./chunk-OF2GNB42.js";
7
10
  import {
8
11
  require_dist
9
12
  } from "./chunk-OX7KI3LF.js";
@@ -296,7 +299,7 @@ function pickCustomEnvironment(customEnvironments, customEnvironmentSlugOrId) {
296
299
 
297
300
  // src/util/output/ellipsis.ts
298
301
  function ellipsis(str, length) {
299
- return str.length > length ? `${str.slice(0, length - 1)}\u2026` : str;
302
+ return truncateEnd(str, length, { omission: "\u2026" });
300
303
  }
301
304
 
302
305
  export {
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  ALIGNED_LABEL_WIDTH
9
- } from "./chunk-TMK6RSYW.js";
9
+ } from "./chunk-TBR2Q37Y.js";
10
10
  import {
11
11
  require_ms
12
12
  } from "./chunk-GGP5R3FU.js";