vercel 58.3.0 → 58.4.4
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.
- package/dist/chunks/{add-X634O3US.js → add-245XOFJO.js} +3 -3
- package/dist/chunks/{add-3RKTVRL7.js → add-P7WBQMBW.js} +4 -4
- package/dist/chunks/{add-YTFWON7N.js → add-XH24V5VU.js} +3 -3
- package/dist/chunks/{build-DJIDUWYB.js → build-M7NJYJPE.js} +3 -3
- package/dist/chunks/{chunk-C33L5ZKY.js → chunk-2FMPLU44.js} +3 -3
- package/dist/chunks/{chunk-UJNNTGJY.js → chunk-2LBVX2H3.js} +1 -1
- package/dist/chunks/{chunk-MTW6MVY7.js → chunk-2MAPZXVV.js} +4 -4
- package/dist/chunks/{chunk-752Z4JQP.js → chunk-2WILSD7J.js} +1 -1
- package/dist/chunks/{chunk-ZPH66MB6.js → chunk-3QAUXPIR.js} +122 -3
- package/dist/chunks/{chunk-UQJMDWCY.js → chunk-4BUPRO5B.js} +2 -2
- package/dist/chunks/{chunk-BM5FP7VW.js → chunk-4CCY5OPH.js} +997 -1184
- package/dist/chunks/{chunk-C6BDHNNF.js → chunk-62MH5KPX.js} +2 -2
- package/dist/chunks/{chunk-QZV24TDR.js → chunk-AQDWMAPM.js} +8 -8
- package/dist/chunks/chunk-CPFNFVCL.js +85 -0
- package/dist/chunks/{chunk-NVSQ6KXI.js → chunk-HSYF5SI3.js} +1 -1
- package/dist/chunks/{chunk-PNXQB4IO.js → chunk-IEDUCUDV.js} +3 -3
- package/dist/chunks/{chunk-5YXUTGSY.js → chunk-M5NOLAJ4.js} +1 -1
- package/dist/chunks/{chunk-AZNCOIGT.js → chunk-NJ6QXKQD.js} +1 -1
- package/dist/chunks/{chunk-WXJ6E3MY.js → chunk-SJYAUEZR.js} +209 -47
- package/dist/chunks/{chunk-Z5ZQJ5VJ.js → chunk-TJJ562C5.js} +3 -0
- package/dist/chunks/{chunk-OTQD3MHJ.js → chunk-UE3JUVUZ.js} +3 -3
- package/dist/chunks/chunk-V5P25P7F.js +22 -0
- package/dist/chunks/{chunk-D3EEVTWR.js → chunk-XE5VSQ25.js} +1 -1
- package/dist/chunks/{chunk-UDDCOV62.js → chunk-Y5GTPWXB.js} +2 -2
- package/dist/chunks/{chunk-RUOBMMEA.js → chunk-YCPUAG77.js} +1 -1
- package/dist/chunks/{chunk-JID5CRQL.js → chunk-YDUINEII.js} +2 -2
- package/dist/chunks/{chunk-IH5JOYGQ.js → chunk-ZGBBPJ6B.js} +7 -3
- package/dist/chunks/{clear-J3OCB2DQ.js → clear-HWIKQ4NC.js} +3 -3
- package/dist/chunks/{compile-vercel-config-G2WILJR4.js → compile-vercel-config-U5NRIMZ2.js} +2 -2
- package/dist/chunks/config-validator.mjs +1 -1
- package/dist/chunks/{delete-HKUZTZE7.js → delete-FZCOUFGN.js} +3 -3
- package/dist/chunks/{delete-3NQLU7PQ.js → delete-NVMGVD5Z.js} +3 -3
- package/dist/chunks/{disable-7AIA4JV3.js → disable-ERM2BWEQ.js} +3 -3
- package/dist/chunks/{discard-MIGUGPGO.js → discard-KM5OLEN4.js} +3 -3
- package/dist/chunks/{edit-3AU746TG.js → edit-HT3UTATZ.js} +4 -4
- package/dist/chunks/{edit-MDQW3S4R.js → edit-TOSB2EMI.js} +3 -3
- package/dist/chunks/{enable-EGNWRQEI.js → enable-BQL6AOQV.js} +3 -3
- package/dist/chunks/{export-EMBHNUMU.js → export-UOWQHOG3.js} +3 -3
- package/dist/chunks/{image-XXZ5DRIW.js → image-F5SC6Q7Y.js} +4 -4
- package/dist/chunks/{inspect-O7SVDBHM.js → inspect-35FU5R62.js} +3 -3
- package/dist/chunks/{inspect-TXVTHRAZ.js → inspect-5J5GSTOB.js} +3 -3
- package/dist/chunks/{inspect-MYUNZMLJ.js → inspect-GKJ6T5H4.js} +3 -3
- package/dist/chunks/{inspect-S5WJ47OH.js → inspect-LGKOLH2O.js} +4 -4
- package/dist/chunks/{inspect-7V5ZHBBB.js → inspect-PZJM2CWT.js} +3 -3
- package/dist/chunks/{list-NZ4ZOO6B.js → list-2IIE7CAP.js} +4 -4
- package/dist/chunks/{list-BQLJJACX.js → list-ITFJYYQ2.js} +3 -3
- package/dist/chunks/{list-LC2ON7OM.js → list-KZETH3ZE.js} +2 -2
- package/dist/chunks/{login-4B7KPSUW.js → login-BQPJCJEZ.js} +3 -3
- package/dist/chunks/{ls-TWNQ7KZN.js → ls-7GHDK4MD.js} +4 -4
- package/dist/chunks/{ls-FRSKR6K2.js → ls-DL2LA35C.js} +3 -3
- package/dist/chunks/{ls-WCTLFAPI.js → ls-UXUEP54B.js} +3 -3
- package/dist/chunks/{ls-4J2WGR7U.js → ls-YSFWSM6J.js} +3 -3
- package/dist/chunks/{ls-7XMM4KCU.js → ls-ZZFLH7PK.js} +3 -3
- package/dist/chunks/{open-J4SAVWUP.js → open-ADNJQN5E.js} +3 -3
- package/dist/chunks/{permissions-67T43WNH.js → permissions-72SZCBIY.js} +5 -5
- package/dist/chunks/{publish-CSXOTJLD.js → publish-OOAGSEBM.js} +3 -3
- package/dist/chunks/{push-7KOVRV5N.js → push-B6TZDXNF.js} +3 -3
- package/dist/chunks/{query-CTRPYYXR.js → query-LZWS5TDH.js} +2 -2
- package/dist/chunks/{reorder-E4PPJNEX.js → reorder-MRHFKPMK.js} +3 -3
- package/dist/chunks/{reply-Z742BMF3.js → reply-BKTJXO3B.js} +3 -3
- package/dist/chunks/{resolve-KPZJZ6IQ.js → resolve-BKVGSGPN.js} +3 -3
- package/dist/chunks/{restore-ZTH2FY4I.js → restore-USR7SKWV.js} +3 -3
- package/dist/chunks/{rm-FVGLSIHP.js → rm-2UO6BT3A.js} +4 -4
- package/dist/chunks/{rm-VOFJM4XW.js → rm-37MKKV3I.js} +3 -3
- package/dist/chunks/{rm-DE37CFKU.js → rm-KUWPNZIS.js} +3 -3
- package/dist/chunks/{rm-C4ODJDWP.js → rm-VY3OHKFH.js} +3 -3
- package/dist/chunks/{rule-inspect-6RLS3ZNB.js → rule-inspect-JVDOOTWK.js} +4 -4
- package/dist/chunks/{rules-VSXJT2QE.js → rules-NTBFZBIF.js} +7 -7
- package/dist/chunks/{schema-3E24G2AG.js → schema-6EZ72OVH.js} +2 -2
- package/dist/chunks/{tags-AIZLNITP.js → tags-HNPC63QA.js} +3 -3
- package/dist/chunks/{update-QHWT7YG4.js → update-LUYWNZP3.js} +4 -4
- package/dist/commands/build/index.js +9 -9
- package/dist/commands/deploy/index.js +15 -12
- package/dist/commands/dev/index.js +21 -10
- package/dist/commands/env/index.js +281 -17
- package/dist/commands/link/index.js +7 -7
- package/dist/commands/list/index.js +3 -3
- package/dist/commands-bulk.js +3160 -2263
- package/dist/index.js +19 -17
- package/dist/version.mjs +1 -1
- package/package.json +33 -40
- package/dist/chunks/chunk-V4RMJKQP.js +0 -36
|
@@ -20,12 +20,12 @@ import {
|
|
|
20
20
|
getLinkedProject,
|
|
21
21
|
getProjectByNameOrId,
|
|
22
22
|
getScope
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-4CCY5OPH.js";
|
|
24
24
|
import {
|
|
25
25
|
AGENT_REASON,
|
|
26
26
|
buildCommandWithGlobalFlags,
|
|
27
27
|
outputAgentError
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-TJJ562C5.js";
|
|
29
29
|
import {
|
|
30
30
|
ProjectNotFound,
|
|
31
31
|
isAPIError,
|
|
@@ -7,10 +7,12 @@ const __dirname = __dirname_(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getUpdateCommandInfo,
|
|
9
9
|
isGlobal
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NJ6QXKQD.js";
|
|
11
11
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
getGlobalPathConfig,
|
|
13
|
+
progress,
|
|
14
|
+
writeToConfigFile
|
|
15
|
+
} from "./chunk-SJYAUEZR.js";
|
|
14
16
|
import {
|
|
15
17
|
validateJsonOutput
|
|
16
18
|
} from "./chunk-XPKWKPWA.js";
|
|
@@ -18,7 +20,7 @@ import {
|
|
|
18
20
|
apiCommand,
|
|
19
21
|
listSubcommand4 as listSubcommand,
|
|
20
22
|
loginCommand
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-3QAUXPIR.js";
|
|
22
24
|
import {
|
|
23
25
|
require_semver
|
|
24
26
|
} from "./chunk-IB5L4LKZ.js";
|
|
@@ -26,10 +28,8 @@ import {
|
|
|
26
28
|
help
|
|
27
29
|
} from "./chunk-ZX2FSPWV.js";
|
|
28
30
|
import {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
writeToConfigFile
|
|
32
|
-
} from "./chunk-BM5FP7VW.js";
|
|
31
|
+
login
|
|
32
|
+
} from "./chunk-4CCY5OPH.js";
|
|
33
33
|
import {
|
|
34
34
|
TelemetryClient,
|
|
35
35
|
isNativeBinaryInstall
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
VERCEL_DIR
|
|
9
|
+
} from "./chunk-4CCY5OPH.js";
|
|
10
|
+
import {
|
|
11
|
+
parseArguments
|
|
12
|
+
} from "./chunk-XLKFJPMT.js";
|
|
13
|
+
import {
|
|
14
|
+
ConflictingConfigFiles,
|
|
15
|
+
DeprecatedNowJson,
|
|
16
|
+
InvalidLocalConfig
|
|
17
|
+
} from "./chunk-SOFC4MLS.js";
|
|
18
|
+
|
|
19
|
+
// src/util/input/prompt-cancellation.ts
|
|
20
|
+
var PromptCanceledError = class extends Error {
|
|
21
|
+
constructor() {
|
|
22
|
+
super("Prompt canceled");
|
|
23
|
+
this.name = "PromptCanceledError";
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var PromptBackError = class extends Error {
|
|
27
|
+
constructor() {
|
|
28
|
+
super("Prompt back");
|
|
29
|
+
this.name = "PromptBackError";
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
function isPromptBackError(error) {
|
|
33
|
+
return error instanceof PromptBackError;
|
|
34
|
+
}
|
|
35
|
+
function isPromptCanceledError(error) {
|
|
36
|
+
if (error instanceof PromptCanceledError) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return error instanceof Error && error.message.includes("User force closed the prompt");
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/util/config/local-path.ts
|
|
43
|
+
import path from "path";
|
|
44
|
+
import { existsSync } from "fs";
|
|
45
|
+
function getLocalPathConfig(prefix) {
|
|
46
|
+
const argv = parseArguments(process.argv.slice(2), {}, { permissive: true });
|
|
47
|
+
const customPath = argv.flags["--local-config"];
|
|
48
|
+
if (customPath) {
|
|
49
|
+
if (typeof customPath !== "string") {
|
|
50
|
+
throw new InvalidLocalConfig(customPath);
|
|
51
|
+
}
|
|
52
|
+
return path.resolve(process.cwd(), customPath);
|
|
53
|
+
}
|
|
54
|
+
const vercelConfigPath = path.join(prefix, "vercel.json");
|
|
55
|
+
const vercelTomlPath = path.join(prefix, "vercel.toml");
|
|
56
|
+
const nowConfigPath = path.join(prefix, "now.json");
|
|
57
|
+
const vercelConfigExists = existsSync(vercelConfigPath);
|
|
58
|
+
const vercelTomlExists = existsSync(vercelTomlPath);
|
|
59
|
+
const nowConfigExists = existsSync(nowConfigPath);
|
|
60
|
+
const foundConfigs = [];
|
|
61
|
+
if (vercelConfigExists)
|
|
62
|
+
foundConfigs.push(vercelConfigPath);
|
|
63
|
+
if (vercelTomlExists)
|
|
64
|
+
foundConfigs.push(vercelTomlPath);
|
|
65
|
+
if (nowConfigExists) {
|
|
66
|
+
throw new DeprecatedNowJson(nowConfigPath);
|
|
67
|
+
}
|
|
68
|
+
if (foundConfigs.length > 1) {
|
|
69
|
+
throw new ConflictingConfigFiles(foundConfigs);
|
|
70
|
+
}
|
|
71
|
+
const compiledConfigPath = path.join(prefix, VERCEL_DIR, "vercel.json");
|
|
72
|
+
const compiledConfigExists = existsSync(compiledConfigPath);
|
|
73
|
+
if (compiledConfigExists) {
|
|
74
|
+
return compiledConfigPath;
|
|
75
|
+
}
|
|
76
|
+
return vercelConfigPath;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
getLocalPathConfig,
|
|
81
|
+
PromptCanceledError,
|
|
82
|
+
PromptBackError,
|
|
83
|
+
isPromptBackError,
|
|
84
|
+
isPromptCanceledError
|
|
85
|
+
};
|
|
@@ -13,13 +13,13 @@ import {
|
|
|
13
13
|
progress,
|
|
14
14
|
require_dist as require_dist2,
|
|
15
15
|
sleep
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SJYAUEZR.js";
|
|
17
17
|
import {
|
|
18
18
|
suggestNextCommands
|
|
19
19
|
} from "./chunk-XBN2O34P.js";
|
|
20
20
|
import {
|
|
21
21
|
CommandTimeout
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-3QAUXPIR.js";
|
|
23
23
|
import {
|
|
24
24
|
showPluginTipIfNeeded
|
|
25
25
|
} from "./chunk-NJUPUGOE.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
require_dist as require_dist3,
|
|
37
37
|
require_pluralize,
|
|
38
38
|
ua_default
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-4CCY5OPH.js";
|
|
40
40
|
import {
|
|
41
41
|
require_strip_ansi,
|
|
42
42
|
responseError
|
|
@@ -4,34 +4,44 @@ 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
|
-
|
|
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,
|
|
18
26
|
isOAuthError,
|
|
19
27
|
makeTheme,
|
|
20
28
|
onExit,
|
|
21
29
|
performDeviceCodeFlow,
|
|
22
|
-
persistAuthConfig,
|
|
23
30
|
processTokenResponse,
|
|
24
31
|
refreshTokenRequest,
|
|
25
32
|
require_cli_width,
|
|
33
|
+
require_dist as require_dist2,
|
|
26
34
|
require_lib2 as require_lib,
|
|
27
35
|
require_source as require_source2,
|
|
28
36
|
require_wrap_ansi,
|
|
29
37
|
ua_default,
|
|
30
38
|
useKeypress,
|
|
31
39
|
usePrefix,
|
|
32
|
-
useState
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
useState
|
|
41
|
+
} from "./chunk-4CCY5OPH.js";
|
|
42
|
+
import {
|
|
43
|
+
require_load_json_file
|
|
44
|
+
} from "./chunk-ECCWJHC6.js";
|
|
35
45
|
import {
|
|
36
46
|
require_strip_ansi
|
|
37
47
|
} from "./chunk-KBEX5MYS.js";
|
|
@@ -39,7 +49,8 @@ import {
|
|
|
39
49
|
parseArguments
|
|
40
50
|
} from "./chunk-XLKFJPMT.js";
|
|
41
51
|
import {
|
|
42
|
-
APIError
|
|
52
|
+
APIError,
|
|
53
|
+
NowError
|
|
43
54
|
} from "./chunk-SOFC4MLS.js";
|
|
44
55
|
import {
|
|
45
56
|
pkg_default
|
|
@@ -353,7 +364,7 @@ var require_retry2 = __commonJS({
|
|
|
353
364
|
});
|
|
354
365
|
|
|
355
366
|
// ../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js
|
|
356
|
-
var
|
|
367
|
+
var require_dist3 = __commonJS({
|
|
357
368
|
"../../node_modules/.pnpm/async-retry@1.1.3/node_modules/async-retry/dist/index.js"(exports, module) {
|
|
358
369
|
"use strict";
|
|
359
370
|
var retrier = require_retry2();
|
|
@@ -388,19 +399,162 @@ var require_dist2 = __commonJS({
|
|
|
388
399
|
}
|
|
389
400
|
});
|
|
390
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
|
+
|
|
391
545
|
// src/util/client.ts
|
|
392
546
|
var import_chalk4 = __toESM(require_source(), 1);
|
|
393
547
|
|
|
394
548
|
// ../../node_modules/.pnpm/@inquirer+confirm@3.1.2/node_modules/@inquirer/confirm/dist/esm/index.mjs
|
|
395
|
-
var esm_default4 = createPrompt((
|
|
396
|
-
const { transformer = (answer) => answer ? "yes" : "no" } =
|
|
549
|
+
var esm_default4 = createPrompt((config3, done) => {
|
|
550
|
+
const { transformer = (answer) => answer ? "yes" : "no" } = config3;
|
|
397
551
|
const [status, setStatus] = useState("pending");
|
|
398
552
|
const [value, setValue] = useState("");
|
|
399
|
-
const theme = makeTheme(
|
|
553
|
+
const theme = makeTheme(config3.theme);
|
|
400
554
|
const prefix = usePrefix({ theme });
|
|
401
555
|
useKeypress((key, rl) => {
|
|
402
556
|
if (isEnterKey(key)) {
|
|
403
|
-
let answer =
|
|
557
|
+
let answer = config3.default !== false;
|
|
404
558
|
if (/^(y|yes)/i.test(value))
|
|
405
559
|
answer = true;
|
|
406
560
|
else if (/^(n|no)/i.test(value))
|
|
@@ -417,9 +571,9 @@ var esm_default4 = createPrompt((config, done) => {
|
|
|
417
571
|
if (status === "done") {
|
|
418
572
|
formattedValue = theme.style.answer(value);
|
|
419
573
|
} else {
|
|
420
|
-
defaultValue = ` ${theme.style.defaultAnswer(
|
|
574
|
+
defaultValue = ` ${theme.style.defaultAnswer(config3.default === false ? "y/N" : "Y/n")}`;
|
|
421
575
|
}
|
|
422
|
-
const message = theme.style.message(
|
|
576
|
+
const message = theme.style.message(config3.message);
|
|
423
577
|
return `${prefix} ${message}${defaultValue} ${formattedValue}`;
|
|
424
578
|
});
|
|
425
579
|
|
|
@@ -440,13 +594,13 @@ function getChoiceKey(choice, key) {
|
|
|
440
594
|
return choice.value;
|
|
441
595
|
return choice.name;
|
|
442
596
|
}
|
|
443
|
-
var esm_default5 = createPrompt((
|
|
444
|
-
const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } =
|
|
597
|
+
var esm_default5 = createPrompt((config3, done) => {
|
|
598
|
+
const { choices, default: defaultKey = "h", expanded: defaultExpandState = false } = config3;
|
|
445
599
|
const [status, setStatus] = useState("pending");
|
|
446
600
|
const [value, setValue] = useState("");
|
|
447
601
|
const [expanded, setExpanded] = useState(defaultExpandState);
|
|
448
602
|
const [errorMsg, setError] = useState(void 0);
|
|
449
|
-
const theme = makeTheme(
|
|
603
|
+
const theme = makeTheme(config3.theme);
|
|
450
604
|
const prefix = usePrefix({ theme });
|
|
451
605
|
useKeypress((event, rl) => {
|
|
452
606
|
if (isEnterKey(event)) {
|
|
@@ -471,7 +625,7 @@ var esm_default5 = createPrompt((config, done) => {
|
|
|
471
625
|
setError(void 0);
|
|
472
626
|
}
|
|
473
627
|
});
|
|
474
|
-
const message = theme.style.message(
|
|
628
|
+
const message = theme.style.message(config3.message);
|
|
475
629
|
if (status === "done") {
|
|
476
630
|
return `${prefix} ${message} ${theme.style.answer(value)}`;
|
|
477
631
|
}
|
|
@@ -510,11 +664,11 @@ var esm_default5 = createPrompt((config, done) => {
|
|
|
510
664
|
});
|
|
511
665
|
|
|
512
666
|
// ../../node_modules/.pnpm/@inquirer+input@2.1.2/node_modules/@inquirer/input/dist/esm/index.mjs
|
|
513
|
-
var esm_default6 = createPrompt((
|
|
514
|
-
const { validate = () => true } =
|
|
515
|
-
const theme = makeTheme(
|
|
667
|
+
var esm_default6 = createPrompt((config3, done) => {
|
|
668
|
+
const { validate = () => true } = config3;
|
|
669
|
+
const theme = makeTheme(config3.theme);
|
|
516
670
|
const [status, setStatus] = useState("pending");
|
|
517
|
-
const [defaultValue = "", setDefaultValue] = useState(
|
|
671
|
+
const [defaultValue = "", setDefaultValue] = useState(config3.default);
|
|
518
672
|
const [errorMsg, setError] = useState(void 0);
|
|
519
673
|
const [value, setValue] = useState("");
|
|
520
674
|
const isLoading = status === "loading";
|
|
@@ -548,10 +702,10 @@ var esm_default6 = createPrompt((config, done) => {
|
|
|
548
702
|
setError(void 0);
|
|
549
703
|
}
|
|
550
704
|
});
|
|
551
|
-
const message = theme.style.message(
|
|
705
|
+
const message = theme.style.message(config3.message);
|
|
552
706
|
let formattedValue = value;
|
|
553
|
-
if (typeof
|
|
554
|
-
formattedValue =
|
|
707
|
+
if (typeof config3.transformer === "function") {
|
|
708
|
+
formattedValue = config3.transformer(value, { isFinal: status === "done" });
|
|
555
709
|
} else if (status === "done") {
|
|
556
710
|
formattedValue = theme.style.answer(value);
|
|
557
711
|
}
|
|
@@ -571,9 +725,9 @@ var esm_default6 = createPrompt((config, done) => {
|
|
|
571
725
|
|
|
572
726
|
// ../../node_modules/.pnpm/@inquirer+password@2.1.2/node_modules/@inquirer/password/dist/esm/index.mjs
|
|
573
727
|
var import_ansi_escapes = __toESM(require_ansi_escapes(), 1);
|
|
574
|
-
var esm_default7 = createPrompt((
|
|
575
|
-
const { validate = () => true } =
|
|
576
|
-
const theme = makeTheme(
|
|
728
|
+
var esm_default7 = createPrompt((config3, done) => {
|
|
729
|
+
const { validate = () => true } = config3;
|
|
730
|
+
const theme = makeTheme(config3.theme);
|
|
577
731
|
const [status, setStatus] = useState("pending");
|
|
578
732
|
const [errorMsg, setError] = useState(void 0);
|
|
579
733
|
const [value, setValue] = useState("");
|
|
@@ -601,11 +755,11 @@ var esm_default7 = createPrompt((config, done) => {
|
|
|
601
755
|
setError(void 0);
|
|
602
756
|
}
|
|
603
757
|
});
|
|
604
|
-
const message = theme.style.message(
|
|
758
|
+
const message = theme.style.message(config3.message);
|
|
605
759
|
let formattedValue = "";
|
|
606
760
|
let helpTip;
|
|
607
|
-
if (
|
|
608
|
-
const maskChar = typeof
|
|
761
|
+
if (config3.mask) {
|
|
762
|
+
const maskChar = typeof config3.mask === "string" ? config3.mask : "*";
|
|
609
763
|
formattedValue = maskChar.repeat(value.length);
|
|
610
764
|
} else if (status !== "done") {
|
|
611
765
|
helpTip = `${theme.style.help("[input is masked]")}${import_ansi_escapes.default.cursorHide}`;
|
|
@@ -1102,7 +1256,7 @@ var PromisePolyfill = class extends Promise {
|
|
|
1102
1256
|
|
|
1103
1257
|
// ../../node_modules/.pnpm/@inquirer+core@9.2.1/node_modules/@inquirer/core/dist/esm/lib/create-prompt.mjs
|
|
1104
1258
|
function createPrompt2(view) {
|
|
1105
|
-
const prompt = (
|
|
1259
|
+
const prompt = (config3, context = {}) => {
|
|
1106
1260
|
const { input = process.stdin, signal } = context;
|
|
1107
1261
|
const cleanups = /* @__PURE__ */ new Set();
|
|
1108
1262
|
const output = new import_mute_stream.default();
|
|
@@ -1136,7 +1290,7 @@ function createPrompt2(view) {
|
|
|
1136
1290
|
cleanups.add(() => rl.removeListener("close", hooksCleanup));
|
|
1137
1291
|
cycle(() => {
|
|
1138
1292
|
try {
|
|
1139
|
-
const nextView = view(
|
|
1293
|
+
const nextView = view(config3, (value) => {
|
|
1140
1294
|
setImmediate(() => resolve2(value));
|
|
1141
1295
|
});
|
|
1142
1296
|
const [content, bottomContent] = typeof nextView === "string" ? [nextView] : nextView;
|
|
@@ -1213,9 +1367,9 @@ function normalizeChoices(choices) {
|
|
|
1213
1367
|
};
|
|
1214
1368
|
});
|
|
1215
1369
|
}
|
|
1216
|
-
var esm_default8 = createPrompt2((
|
|
1217
|
-
const { pageSize = 7, validate = () => true } =
|
|
1218
|
-
const theme = makeTheme2(searchTheme,
|
|
1370
|
+
var esm_default8 = createPrompt2((config3, done) => {
|
|
1371
|
+
const { pageSize = 7, validate = () => true } = config3;
|
|
1372
|
+
const theme = makeTheme2(searchTheme, config3.theme);
|
|
1219
1373
|
const firstRender = useRef(true);
|
|
1220
1374
|
const [status, setStatus] = useState2("loading");
|
|
1221
1375
|
const [searchTerm, setSearchTerm] = useState2("");
|
|
@@ -1234,7 +1388,7 @@ var esm_default8 = createPrompt2((config, done) => {
|
|
|
1234
1388
|
setSearchError(void 0);
|
|
1235
1389
|
const fetchResults = async () => {
|
|
1236
1390
|
try {
|
|
1237
|
-
const results = await
|
|
1391
|
+
const results = await config3.source(searchTerm || void 0, {
|
|
1238
1392
|
signal: controller.signal
|
|
1239
1393
|
});
|
|
1240
1394
|
if (!controller.signal.aborted) {
|
|
@@ -1291,7 +1445,7 @@ var esm_default8 = createPrompt2((config, done) => {
|
|
|
1291
1445
|
setSearchTerm(rl.line);
|
|
1292
1446
|
}
|
|
1293
1447
|
});
|
|
1294
|
-
const message = theme.style.message(
|
|
1448
|
+
const message = theme.style.message(config3.message, status);
|
|
1295
1449
|
if (active > 0) {
|
|
1296
1450
|
firstRender.current = false;
|
|
1297
1451
|
}
|
|
@@ -1341,8 +1495,8 @@ ${theme.style.description(selectedChoice.description)}` : ``;
|
|
|
1341
1495
|
});
|
|
1342
1496
|
|
|
1343
1497
|
// src/util/client.ts
|
|
1344
|
-
var import_async_retry = __toESM(
|
|
1345
|
-
import { join, resolve } from "path";
|
|
1498
|
+
var import_async_retry = __toESM(require_dist3(), 1);
|
|
1499
|
+
import { join as join2, resolve } from "path";
|
|
1346
1500
|
import { EventEmitter } from "events";
|
|
1347
1501
|
import { URL } from "url";
|
|
1348
1502
|
import {
|
|
@@ -1450,7 +1604,7 @@ function sharedPromise(fn) {
|
|
|
1450
1604
|
}
|
|
1451
1605
|
|
|
1452
1606
|
// src/util/client.ts
|
|
1453
|
-
var
|
|
1607
|
+
var import_error_utils2 = __toESM(require_dist(), 1);
|
|
1454
1608
|
|
|
1455
1609
|
// src/util/sleep.ts
|
|
1456
1610
|
function sleep(ms) {
|
|
@@ -1710,7 +1864,7 @@ ${error.stack}`);
|
|
|
1710
1864
|
return getSharedGlobalPathConfig();
|
|
1711
1865
|
}
|
|
1712
1866
|
async readConfig(fileName, schema) {
|
|
1713
|
-
const filePath =
|
|
1867
|
+
const filePath = join2(this.getGlobalPathConfig(), fileName);
|
|
1714
1868
|
return readSharedConfigFile(filePath, schema);
|
|
1715
1869
|
}
|
|
1716
1870
|
async maybeReadConfig(fileName, schema) {
|
|
@@ -1721,11 +1875,11 @@ ${error.stack}`);
|
|
|
1721
1875
|
}
|
|
1722
1876
|
}
|
|
1723
1877
|
async writeConfig(fileName, schema, value) {
|
|
1724
|
-
const filePath =
|
|
1878
|
+
const filePath = join2(this.getGlobalPathConfig(), fileName);
|
|
1725
1879
|
writeSharedConfigFile(filePath, schema, value);
|
|
1726
1880
|
}
|
|
1727
|
-
updateConfig(
|
|
1728
|
-
this.config = { ...this.config, ...
|
|
1881
|
+
updateConfig(config3) {
|
|
1882
|
+
this.config = { ...this.config, ...config3 };
|
|
1729
1883
|
}
|
|
1730
1884
|
writeToConfigFile() {
|
|
1731
1885
|
writeToConfigFile(this.config);
|
|
@@ -1880,7 +2034,7 @@ Are you sure you want to proceed?`;
|
|
|
1880
2034
|
try {
|
|
1881
2035
|
await this.reauthenticate(error);
|
|
1882
2036
|
} catch (reauthError) {
|
|
1883
|
-
return bail((0,
|
|
2037
|
+
return bail((0, import_error_utils2.normalizeError)(reauthError));
|
|
1884
2038
|
}
|
|
1885
2039
|
} else if (res.status === 429 && opts.bailOn429) {
|
|
1886
2040
|
return bail(error);
|
|
@@ -1941,8 +2095,16 @@ function progress(current, total, opts = {}) {
|
|
|
1941
2095
|
}
|
|
1942
2096
|
|
|
1943
2097
|
export {
|
|
1944
|
-
|
|
2098
|
+
getGlobalPathConfig2 as getGlobalPathConfig,
|
|
2099
|
+
require_dist3 as require_dist,
|
|
1945
2100
|
printIndications,
|
|
2101
|
+
readConfigFile,
|
|
2102
|
+
writeToConfigFile,
|
|
2103
|
+
readAuthConfigFile,
|
|
2104
|
+
persistAuthConfig,
|
|
2105
|
+
getConfigFilePath2 as getConfigFilePath,
|
|
2106
|
+
getAuthConfigFilePath2 as getAuthConfigFilePath,
|
|
2107
|
+
readLocalConfig,
|
|
1946
2108
|
sleep,
|
|
1947
2109
|
isJSONObject,
|
|
1948
2110
|
Client,
|
|
@@ -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>)"
|
|
@@ -5,9 +5,10 @@ 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-
|
|
11
|
+
} from "./chunk-CPFNFVCL.js";
|
|
11
12
|
import {
|
|
12
13
|
table
|
|
13
14
|
} from "./chunk-KT4XXKJK.js";
|
|
@@ -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,7 +46,7 @@ import {
|
|
|
46
46
|
selectAndParseRemoteUrl,
|
|
47
47
|
selectOrg,
|
|
48
48
|
writeServicesConfig
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-4CCY5OPH.js";
|
|
50
50
|
import {
|
|
51
51
|
printError
|
|
52
52
|
} from "./chunk-KBEX5MYS.js";
|