vercel 58.9.5 → 58.11.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.
- package/dist/chunks/{add-W4XR5GYX.js → add-I4TVSKCW.js} +2 -2
- package/dist/chunks/{add-5KFK4EFH.js → add-IFQ74XHE.js} +6 -6
- package/dist/chunks/{add-NMYLVDBN.js → add-LLXXGWJZ.js} +2 -2
- package/dist/chunks/{build-BCMSG7TU.js → build-6DPTFQKH.js} +2 -2
- package/dist/chunks/{chunk-3MELKK7A.js → chunk-2XR3IS42.js} +80 -38
- package/dist/chunks/{chunk-AZCZV4XI.js → chunk-57E3RXRP.js} +1 -1
- package/dist/chunks/{chunk-IBIZT5M4.js → chunk-6FUU7WW5.js} +47 -6
- package/dist/chunks/{chunk-4GUI4FQR.js → chunk-74IYXJ5O.js} +10 -518
- package/dist/chunks/{chunk-MAZ2BUBX.js → chunk-A7HDIKC2.js} +2 -2
- package/dist/chunks/chunk-BTKWXOXK.js +61 -0
- package/dist/chunks/{chunk-MGCBTAA7.js → chunk-COTEMB2F.js} +1 -1
- package/dist/chunks/{chunk-UDHYVIJL.js → chunk-D7MYUPY7.js} +4 -4
- package/dist/chunks/{chunk-7RUZPHW7.js → chunk-DJUIGD6C.js} +1 -1
- package/dist/chunks/{chunk-N5YCPDWG.js → chunk-EA6MVNDR.js} +1 -1
- package/dist/chunks/{chunk-2SEBBSKD.js → chunk-EN2JH6AK.js} +1 -1
- package/dist/chunks/{chunk-BZGIBXY6.js → chunk-EPETZ7OW.js} +1 -1
- package/dist/chunks/{chunk-6SXIT6Q3.js → chunk-EVB35IJS.js} +2 -2
- package/dist/chunks/{chunk-6WWATEWK.js → chunk-FKZAFG4D.js} +1 -1
- package/dist/chunks/{chunk-U4LWFSR4.js → chunk-FYXFZ4CY.js} +1 -1
- package/dist/chunks/chunk-IM56DJEQ.js +559 -0
- package/dist/chunks/{chunk-KUZCVMVA.js → chunk-J2WXMIAP.js} +4 -3
- package/dist/chunks/{chunk-ELJ56NBY.js → chunk-JDNWPNLS.js} +173 -173
- package/dist/chunks/{chunk-5MERQE7H.js → chunk-LM5S2YN4.js} +1 -1
- package/dist/chunks/{chunk-TNKTZDOL.js → chunk-MX5JRP6N.js} +1 -1
- package/dist/chunks/{chunk-PTZ6X4P4.js → chunk-OXJFXZV2.js} +1 -1
- package/dist/chunks/{chunk-NDOZRKTB.js → chunk-UEBYWLPO.js} +1 -1
- package/dist/chunks/{chunk-DQDAQYQI.js → chunk-YJCZFVWJ.js} +1 -1
- package/dist/chunks/{chunk-2J7BL7IF.js → chunk-YP35CTKZ.js} +2 -2
- package/dist/chunks/{chunk-GBXTATOJ.js → chunk-Z3FO2ZSH.js} +158 -3
- package/dist/chunks/{clear-54WX3NA2.js → clear-NA74WCNT.js} +2 -2
- package/dist/chunks/{compile-vercel-config-LSW4TWGX.js → compile-vercel-config-BD4UGPKJ.js} +1 -1
- package/dist/chunks/{config-WXQTPQW7.js → config-WYUTVPPF.js} +2 -2
- package/dist/chunks/{delete-OGP3RVWM.js → delete-NFNYQ7LC.js} +2 -2
- package/dist/chunks/{delete-HQMI44SG.js → delete-RZ2SVQK6.js} +2 -2
- package/dist/chunks/{disable-HC266OB7.js → disable-DZ7DCWEI.js} +2 -2
- package/dist/chunks/{discard-3RFIPLXY.js → discard-VZ5QNL7B.js} +2 -2
- package/dist/chunks/{edit-TZOCRGG6.js → edit-ABJN6BMR.js} +2 -2
- package/dist/chunks/{edit-NXPQFWM6.js → edit-RIY7SWIR.js} +3 -3
- package/dist/chunks/{enable-OGFRN4CG.js → enable-JWPKENHY.js} +2 -2
- package/dist/chunks/{export-AEESZFZX.js → export-6IDA3TWA.js} +2 -2
- package/dist/chunks/{image-EIAO7LVN.js → image-DM4ZNQOL.js} +3 -3
- package/dist/chunks/{import-builders-KCQLA2YR.js → import-builders-6NCPTR6R.js} +2 -2
- package/dist/chunks/{inspect-MGIECVLH.js → inspect-6WYHE6JX.js} +2 -2
- package/dist/chunks/{inspect-RUGPLO7A.js → inspect-KUAM7UKQ.js} +2 -2
- package/dist/chunks/{inspect-EM34BOTE.js → inspect-NLWTMJHW.js} +3 -3
- package/dist/chunks/{inspect-TTHC6L7Q.js → inspect-Z6VNNFFK.js} +2 -2
- package/dist/chunks/{inspect-HHSDXTII.js → inspect-ZKZG7MCO.js} +2 -2
- package/dist/chunks/{list-A74MGEOB.js → list-2PB3N6FM.js} +2 -2
- package/dist/chunks/{list-EOG3TYBE.js → list-GPQI2LGO.js} +1 -1
- package/dist/chunks/{list-GQDUIRBU.js → list-ZUFB2CIS.js} +3 -3
- package/dist/chunks/{login-L4EWZOGH.js → login-GTZWDE5T.js} +2 -2
- package/dist/chunks/{ls-VBFBWSWD.js → ls-AG5UBKCR.js} +3 -3
- package/dist/chunks/{ls-F6WCPVB7.js → ls-ETUPWWLP.js} +2 -2
- package/dist/chunks/{ls-D5ESYWG5.js → ls-HCVYO3FF.js} +2 -2
- package/dist/chunks/{ls-OWHNAGNT.js → ls-YMQ6E7MZ.js} +2 -2
- package/dist/chunks/{ls-OJGSWVWO.js → ls-Z2XKIHA5.js} +2 -2
- package/dist/chunks/{open-FHER5QV2.js → open-4XQWNZQD.js} +2 -2
- package/dist/chunks/{permissions-JSXC7BRD.js → permissions-BJBEONBS.js} +4 -4
- package/dist/chunks/{publish-CM6ZGWIE.js → publish-TVZGIZRP.js} +2 -2
- package/dist/chunks/{push-5NYG7HIR.js → push-EJZHZC4Z.js} +2 -2
- package/dist/chunks/{query-5GQLF2BR.js → query-HXMR364K.js} +1 -1
- package/dist/chunks/{reorder-5GCNY75W.js → reorder-VE2PRU24.js} +2 -2
- package/dist/chunks/{reply-B2XCK5XR.js → reply-4YEXMUWH.js} +2 -2
- package/dist/chunks/{resolve-YQP5C2QY.js → resolve-GZ4KXDU6.js} +2 -2
- package/dist/chunks/{restore-VHX4JV5J.js → restore-ZY3IJ4S3.js} +2 -2
- package/dist/chunks/{rm-QVVQDCDX.js → rm-IE23BM6V.js} +3 -3
- package/dist/chunks/{rm-VDFSX3LH.js → rm-QS5PIVAO.js} +2 -2
- package/dist/chunks/{rm-OILUGCTW.js → rm-Y6OROWNK.js} +2 -2
- package/dist/chunks/{rm-AUUT2YIT.js → rm-YIVI23NT.js} +2 -2
- package/dist/chunks/{rule-inspect-LKTUPW4B.js → rule-inspect-6NXF565C.js} +3 -3
- package/dist/chunks/{rules-J5JM5VFQ.js → rules-QOZAWHUO.js} +6 -6
- package/dist/chunks/{schema-OIKSCLDU.js → schema-YJDZ6EOC.js} +1 -1
- package/dist/chunks/{tags-AMTMNRLQ.js → tags-67LC7TV4.js} +2 -2
- package/dist/chunks/{update-AFL3GHKB.js → update-YNL7VIL7.js} +6 -6
- package/dist/commands/build/index.js +15 -11
- package/dist/commands/deploy/index.js +347 -49
- package/dist/commands/dev/index.js +39 -13
- package/dist/commands/env/index.js +4 -4
- package/dist/commands/link/index.js +6 -6
- package/dist/commands/list/index.js +2 -2
- package/dist/commands-bulk.js +1018 -294
- package/dist/index.js +33 -43
- package/dist/version.mjs +1 -1
- package/package.json +17 -17
- package/dist/chunks/chunk-I2XE3GMB.js +0 -21
package/dist/commands-bulk.js
CHANGED
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
runInteractiveEditLoop,
|
|
38
38
|
stripQuotes,
|
|
39
39
|
validateActionFlags
|
|
40
|
-
} from "./chunks/chunk-
|
|
40
|
+
} from "./chunks/chunk-57E3RXRP.js";
|
|
41
41
|
import {
|
|
42
42
|
getRouteVersions
|
|
43
43
|
} from "./chunks/chunk-AHU7WNL2.js";
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
requireProjectContext,
|
|
58
58
|
validateRequiredArguments,
|
|
59
59
|
withGlobalFlags as withGlobalFlags2
|
|
60
|
-
} from "./chunks/chunk-
|
|
60
|
+
} from "./chunks/chunk-EPETZ7OW.js";
|
|
61
61
|
import {
|
|
62
62
|
canPrompt
|
|
63
63
|
} from "./chunks/chunk-2473DUBR.js";
|
|
@@ -96,7 +96,6 @@ import {
|
|
|
96
96
|
isLinkedToPrBuild,
|
|
97
97
|
listAvailableVersions,
|
|
98
98
|
listInstalledVersions,
|
|
99
|
-
login,
|
|
100
99
|
parsePrTarget,
|
|
101
100
|
require_tar_fs,
|
|
102
101
|
resolveOpenApiTagForProjectsCli,
|
|
@@ -104,12 +103,12 @@ import {
|
|
|
104
103
|
setAutoUpdate,
|
|
105
104
|
setPinnedVersion,
|
|
106
105
|
tryOpenApiFallback
|
|
107
|
-
} from "./chunks/chunk-
|
|
106
|
+
} from "./chunks/chunk-74IYXJ5O.js";
|
|
108
107
|
import "./chunks/chunk-FGDKMNEN.js";
|
|
109
108
|
import {
|
|
110
109
|
getUpdateCommand,
|
|
111
110
|
isGlobal
|
|
112
|
-
} from "./chunks/chunk-
|
|
111
|
+
} from "./chunks/chunk-UEBYWLPO.js";
|
|
113
112
|
import {
|
|
114
113
|
Now,
|
|
115
114
|
addDomain,
|
|
@@ -130,17 +129,19 @@ import {
|
|
|
130
129
|
require_cjs,
|
|
131
130
|
require_jsonlines,
|
|
132
131
|
setupDomain
|
|
133
|
-
} from "./chunks/chunk-
|
|
132
|
+
} from "./chunks/chunk-2XR3IS42.js";
|
|
134
133
|
import {
|
|
135
134
|
require_format
|
|
136
135
|
} from "./chunks/chunk-PRWJUY5U.js";
|
|
137
|
-
import
|
|
136
|
+
import {
|
|
137
|
+
login
|
|
138
|
+
} from "./chunks/chunk-IM56DJEQ.js";
|
|
138
139
|
import {
|
|
139
140
|
persistAuthConfig,
|
|
140
141
|
readLocalConfig,
|
|
141
142
|
sleep,
|
|
142
143
|
writeToConfigFile
|
|
143
|
-
} from "./chunks/chunk-
|
|
144
|
+
} from "./chunks/chunk-A7HDIKC2.js";
|
|
144
145
|
import {
|
|
145
146
|
getGlobalPathConfig
|
|
146
147
|
} from "./chunks/chunk-JKQWQA2T.js";
|
|
@@ -158,7 +159,9 @@ import {
|
|
|
158
159
|
import {
|
|
159
160
|
formatTable
|
|
160
161
|
} from "./chunks/chunk-JLWQWYKO.js";
|
|
161
|
-
import
|
|
162
|
+
import {
|
|
163
|
+
truncateEnd
|
|
164
|
+
} from "./chunks/chunk-RQ7H43CJ.js";
|
|
162
165
|
import "./chunks/chunk-XBN2O34P.js";
|
|
163
166
|
import {
|
|
164
167
|
getPaginationOpts,
|
|
@@ -170,7 +173,7 @@ import {
|
|
|
170
173
|
import {
|
|
171
174
|
formatEnvironment,
|
|
172
175
|
validateLsArgs
|
|
173
|
-
} from "./chunks/chunk-
|
|
176
|
+
} from "./chunks/chunk-MX5JRP6N.js";
|
|
174
177
|
import {
|
|
175
178
|
validateJsonOutput
|
|
176
179
|
} from "./chunks/chunk-KXDWXXJH.js";
|
|
@@ -233,6 +236,7 @@ import {
|
|
|
233
236
|
categoriesSubcommand,
|
|
234
237
|
certsCommand,
|
|
235
238
|
checkSubcommand,
|
|
239
|
+
checkSubcommand2,
|
|
236
240
|
checksAddFlags,
|
|
237
241
|
checksRemoveFlags,
|
|
238
242
|
checksSubcommand,
|
|
@@ -376,6 +380,7 @@ import {
|
|
|
376
380
|
publishSubcommand,
|
|
377
381
|
pullSubcommand,
|
|
378
382
|
purgeSubcommand,
|
|
383
|
+
putImageSubcommand,
|
|
379
384
|
putSubcommand,
|
|
380
385
|
redeployCommand,
|
|
381
386
|
redirectsCommand,
|
|
@@ -430,6 +435,7 @@ import {
|
|
|
430
435
|
sdkKeysRemoveSubcommand,
|
|
431
436
|
sdkKeysSubcommand,
|
|
432
437
|
searchSubcommand,
|
|
438
|
+
securityCommand,
|
|
433
439
|
segmentsCreateSubcommand,
|
|
434
440
|
segmentsInspectSubcommand,
|
|
435
441
|
segmentsListSubcommand,
|
|
@@ -486,7 +492,7 @@ import {
|
|
|
486
492
|
webAnalyticsSubcommand,
|
|
487
493
|
webhooksCommand,
|
|
488
494
|
whoamiCommand
|
|
489
|
-
} from "./chunks/chunk-
|
|
495
|
+
} from "./chunks/chunk-Z3FO2ZSH.js";
|
|
490
496
|
import {
|
|
491
497
|
addSubcommand as addSubcommand12,
|
|
492
498
|
buildSubcommand,
|
|
@@ -572,11 +578,11 @@ import {
|
|
|
572
578
|
dump,
|
|
573
579
|
load,
|
|
574
580
|
main
|
|
575
|
-
} from "./chunks/chunk-
|
|
581
|
+
} from "./chunks/chunk-D7MYUPY7.js";
|
|
576
582
|
import {
|
|
577
583
|
require_semver
|
|
578
584
|
} from "./chunks/chunk-IB5L4LKZ.js";
|
|
579
|
-
import "./chunks/chunk-
|
|
585
|
+
import "./chunks/chunk-LM5S2YN4.js";
|
|
580
586
|
import {
|
|
581
587
|
require_execa
|
|
582
588
|
} from "./chunks/chunk-R6IGDGX3.js";
|
|
@@ -591,10 +597,10 @@ import {
|
|
|
591
597
|
} from "./chunks/chunk-VXYGCOKL.js";
|
|
592
598
|
import {
|
|
593
599
|
ensureLink
|
|
594
|
-
} from "./chunks/chunk-
|
|
595
|
-
import "./chunks/chunk-
|
|
596
|
-
import "./chunks/chunk-
|
|
597
|
-
import "./chunks/chunk-
|
|
600
|
+
} from "./chunks/chunk-J2WXMIAP.js";
|
|
601
|
+
import "./chunks/chunk-EVB35IJS.js";
|
|
602
|
+
import "./chunks/chunk-COTEMB2F.js";
|
|
603
|
+
import "./chunks/chunk-EN2JH6AK.js";
|
|
598
604
|
import {
|
|
599
605
|
help
|
|
600
606
|
} from "./chunks/chunk-ZX2FSPWV.js";
|
|
@@ -653,7 +659,7 @@ import {
|
|
|
653
659
|
selectOrg,
|
|
654
660
|
toHost,
|
|
655
661
|
ua_default
|
|
656
|
-
} from "./chunks/chunk-
|
|
662
|
+
} from "./chunks/chunk-6FUU7WW5.js";
|
|
657
663
|
import {
|
|
658
664
|
TelemetryClient
|
|
659
665
|
} from "./chunks/chunk-ECCWJHC6.js";
|
|
@@ -2155,7 +2161,7 @@ async function activity(client) {
|
|
|
2155
2161
|
return 0;
|
|
2156
2162
|
}
|
|
2157
2163
|
telemetry2.trackCliSubcommandLs(subcommandOriginal);
|
|
2158
|
-
const listFn = (await import("./chunks/list-
|
|
2164
|
+
const listFn = (await import("./chunks/list-GPQI2LGO.js")).default;
|
|
2159
2165
|
return listFn(client, telemetry2);
|
|
2160
2166
|
}
|
|
2161
2167
|
}
|
|
@@ -4844,6 +4850,7 @@ async function writeConfigFile(path3, content, mode) {
|
|
|
4844
4850
|
|
|
4845
4851
|
// src/util/ai-gateway/coding-agents/gateway.ts
|
|
4846
4852
|
var GATEWAY_CODING_AGENT_BASE_URL = "https://ai-gateway.vercel.sh/coding-agent/v1";
|
|
4853
|
+
var GATEWAY_CURSOR_BASE_URL = "https://ai-gateway.vercel.sh/cursor/v1";
|
|
4847
4854
|
var GATEWAY_CODEX_BASE_URL = "https://ai-gateway.vercel.sh/codex/v1";
|
|
4848
4855
|
var GATEWAY_CLAUDE_CODE_BASE_URL = "https://ai-gateway.vercel.sh/claude-code";
|
|
4849
4856
|
var GATEWAY_API_KEY_ENV = "AI_GATEWAY_API_KEY";
|
|
@@ -5081,7 +5088,6 @@ import { join as join4 } from "path";
|
|
|
5081
5088
|
var cline = {
|
|
5082
5089
|
id: "cline",
|
|
5083
5090
|
displayName: "Cline",
|
|
5084
|
-
experimental: true,
|
|
5085
5091
|
async detect(home) {
|
|
5086
5092
|
return pathExists(join4(home, ".cline"));
|
|
5087
5093
|
},
|
|
@@ -5410,7 +5416,6 @@ import { join as join7 } from "path";
|
|
|
5410
5416
|
var cursor = {
|
|
5411
5417
|
id: "cursor",
|
|
5412
5418
|
displayName: "Cursor",
|
|
5413
|
-
experimental: true,
|
|
5414
5419
|
async detect(home) {
|
|
5415
5420
|
return pathExists(join7(home, ".cursor"));
|
|
5416
5421
|
},
|
|
@@ -5424,7 +5429,7 @@ var cursor = {
|
|
|
5424
5429
|
notes: [
|
|
5425
5430
|
"Cursor keeps its API-key settings in the app itself, so finish the setup there:",
|
|
5426
5431
|
"1. Open Cursor \u2192 Settings (Cmd+Shift+J) \u2192 Models.",
|
|
5427
|
-
`2. Under OpenAI API Key: paste your gateway key, then enable "Override OpenAI Base URL" and set it to ${ctx.baseUrlOverride ??
|
|
5432
|
+
`2. Under OpenAI API Key: paste your gateway key, then enable "Override OpenAI Base URL" and set it to ${ctx.baseUrlOverride ?? GATEWAY_CURSOR_BASE_URL}`,
|
|
5428
5433
|
'3. Copy the key from a new terminal without echoing it: printf %s "$AI_GATEWAY_API_KEY" | pbcopy',
|
|
5429
5434
|
'4. Use "Add model" to add gateway model ids you want in the picker (e.g. anthropic/claude-fable-5, openai/gpt-5.6-sol).',
|
|
5430
5435
|
"While the override is on, Cursor's built-in non-OpenAI models stop working \u2014 use gateway model ids for everything, or toggle the override off to go back.",
|
|
@@ -5444,7 +5449,6 @@ function asObject(value) {
|
|
|
5444
5449
|
var hermes = {
|
|
5445
5450
|
id: "hermes",
|
|
5446
5451
|
displayName: "Hermes",
|
|
5447
|
-
experimental: true,
|
|
5448
5452
|
async detect(home) {
|
|
5449
5453
|
return pathExists(join8(home, ".hermes"));
|
|
5450
5454
|
},
|
|
@@ -5499,7 +5503,6 @@ function kiloConfigDir(home) {
|
|
|
5499
5503
|
var kilo = {
|
|
5500
5504
|
id: "kilo",
|
|
5501
5505
|
displayName: "Kilo Code",
|
|
5502
|
-
experimental: true,
|
|
5503
5506
|
async detect(home) {
|
|
5504
5507
|
return pathExists(kiloConfigDir(home));
|
|
5505
5508
|
},
|
|
@@ -5549,7 +5552,6 @@ var STARTER_MODELS = [
|
|
|
5549
5552
|
var openclaw = {
|
|
5550
5553
|
id: "openclaw",
|
|
5551
5554
|
displayName: "OpenClaw",
|
|
5552
|
-
experimental: true,
|
|
5553
5555
|
async detect(home) {
|
|
5554
5556
|
return pathExists(join10(home, ".openclaw"));
|
|
5555
5557
|
},
|
|
@@ -5755,6 +5757,8 @@ ${import_chalk17.default.dim(
|
|
|
5755
5757
|
" Detected agents are pre-selected \xB7"
|
|
5756
5758
|
)}${CHECKBOX_INSTRUCTIONS}`,
|
|
5757
5759
|
instructions: false,
|
|
5760
|
+
loop: false,
|
|
5761
|
+
pageSize: Math.max(choices.length, 7),
|
|
5758
5762
|
choices
|
|
5759
5763
|
});
|
|
5760
5764
|
const selected = picked.map((id) => getAgentById(id)).filter((a) => Boolean(a));
|
|
@@ -9001,17 +9005,17 @@ ${extra}` : helpOutput);
|
|
|
9001
9005
|
switch (subcommand) {
|
|
9002
9006
|
case "inspect": {
|
|
9003
9007
|
telemetry2.trackCliSubcommandInspect(subcommandOriginal);
|
|
9004
|
-
const inspectFn = (await import("./chunks/inspect-
|
|
9008
|
+
const inspectFn = (await import("./chunks/inspect-ZKZG7MCO.js")).default;
|
|
9005
9009
|
return inspectFn(client, rawSubcommandArgs);
|
|
9006
9010
|
}
|
|
9007
9011
|
case "rules": {
|
|
9008
9012
|
telemetry2.trackCliSubcommandRules(args[0] ?? "ls");
|
|
9009
|
-
const rulesFn = (await import("./chunks/rules-
|
|
9013
|
+
const rulesFn = (await import("./chunks/rules-QOZAWHUO.js")).default;
|
|
9010
9014
|
return rulesFn(client, rawSubcommandArgs);
|
|
9011
9015
|
}
|
|
9012
9016
|
default: {
|
|
9013
9017
|
telemetry2.trackCliSubcommandLs(subcommandOriginal);
|
|
9014
|
-
const listFn = (await import("./chunks/list-
|
|
9018
|
+
const listFn = (await import("./chunks/list-2PB3N6FM.js")).default;
|
|
9015
9019
|
return listFn(client, telemetry2);
|
|
9016
9020
|
}
|
|
9017
9021
|
}
|
|
@@ -9995,8 +9999,8 @@ var BisectTelemetryClient = class extends TelemetryClient {
|
|
|
9995
9999
|
});
|
|
9996
10000
|
}
|
|
9997
10001
|
}
|
|
9998
|
-
trackCliFlagOpen(
|
|
9999
|
-
if (
|
|
10002
|
+
trackCliFlagOpen(open17) {
|
|
10003
|
+
if (open17) {
|
|
10000
10004
|
this.trackCliFlag("open");
|
|
10001
10005
|
}
|
|
10002
10006
|
}
|
|
@@ -10492,10 +10496,10 @@ async function list9(client, argv, auth) {
|
|
|
10492
10496
|
const tablePrint = table(
|
|
10493
10497
|
[
|
|
10494
10498
|
headers.map((header) => import_chalk34.default.dim(header)),
|
|
10495
|
-
...list22.blobs.map((
|
|
10496
|
-
urls.push(
|
|
10497
|
-
const uploadedAt = (0, import_ms5.default)(Date.now() - new Date(
|
|
10498
|
-
return [uploadedAt, String(
|
|
10499
|
+
...list22.blobs.map((blob10) => {
|
|
10500
|
+
urls.push(blob10.url);
|
|
10501
|
+
const uploadedAt = (0, import_ms5.default)(Date.now() - new Date(blob10.uploadedAt).getTime());
|
|
10502
|
+
return [uploadedAt, String(blob10.size), blob10.pathname, blob10.url];
|
|
10499
10503
|
})
|
|
10500
10504
|
],
|
|
10501
10505
|
{ hsep: 5 }
|
|
@@ -10715,6 +10719,12 @@ var BlobTelemetryClient = class extends TelemetryClient {
|
|
|
10715
10719
|
value: actual
|
|
10716
10720
|
});
|
|
10717
10721
|
}
|
|
10722
|
+
trackCliSubcommandPutImage(actual) {
|
|
10723
|
+
this.trackCliSubcommand({
|
|
10724
|
+
subcommand: "put-image",
|
|
10725
|
+
value: actual
|
|
10726
|
+
});
|
|
10727
|
+
}
|
|
10718
10728
|
trackCliSubcommandSignedToken(actual) {
|
|
10719
10729
|
this.trackCliSubcommand({
|
|
10720
10730
|
subcommand: "signed-token",
|
|
@@ -11005,8 +11015,231 @@ async function put2(client, argv, auth) {
|
|
|
11005
11015
|
return 0;
|
|
11006
11016
|
}
|
|
11007
11017
|
|
|
11008
|
-
// src/commands/blob/
|
|
11018
|
+
// src/commands/blob/put-image.ts
|
|
11009
11019
|
import * as blob3 from "@vercel/blob";
|
|
11020
|
+
var import_error_utils2 = __toESM(require_dist(), 1);
|
|
11021
|
+
import { statSync as statSync2 } from "fs";
|
|
11022
|
+
import { open as open4 } from "fs/promises";
|
|
11023
|
+
|
|
11024
|
+
// src/util/telemetry/commands/blob/put-image.ts
|
|
11025
|
+
var BlobPutImageTelemetryClient = class extends TelemetryClient {
|
|
11026
|
+
trackCliArgumentPathToFileOrUrl(pathToFileOrUrl) {
|
|
11027
|
+
if (pathToFileOrUrl) {
|
|
11028
|
+
this.trackCliArgument({
|
|
11029
|
+
arg: "pathToFileOrUrl",
|
|
11030
|
+
value: this.redactedValue
|
|
11031
|
+
});
|
|
11032
|
+
}
|
|
11033
|
+
}
|
|
11034
|
+
trackCliOptionAccess(value) {
|
|
11035
|
+
if (value) {
|
|
11036
|
+
this.trackCliOption({
|
|
11037
|
+
option: "access",
|
|
11038
|
+
value
|
|
11039
|
+
});
|
|
11040
|
+
}
|
|
11041
|
+
}
|
|
11042
|
+
trackCliOptionWidth(width) {
|
|
11043
|
+
if (width !== void 0) {
|
|
11044
|
+
this.trackCliOption({
|
|
11045
|
+
option: "width",
|
|
11046
|
+
value: String(width)
|
|
11047
|
+
});
|
|
11048
|
+
}
|
|
11049
|
+
}
|
|
11050
|
+
trackCliOptionQuality(quality) {
|
|
11051
|
+
if (quality !== void 0) {
|
|
11052
|
+
this.trackCliOption({
|
|
11053
|
+
option: "quality",
|
|
11054
|
+
value: String(quality)
|
|
11055
|
+
});
|
|
11056
|
+
}
|
|
11057
|
+
}
|
|
11058
|
+
trackCliOptionFormat(format3) {
|
|
11059
|
+
if (format3) {
|
|
11060
|
+
this.trackCliOption({
|
|
11061
|
+
option: "format",
|
|
11062
|
+
value: format3
|
|
11063
|
+
});
|
|
11064
|
+
}
|
|
11065
|
+
}
|
|
11066
|
+
trackCliOptionPathname(pathname) {
|
|
11067
|
+
if (pathname) {
|
|
11068
|
+
this.trackCliOption({
|
|
11069
|
+
option: "pathname",
|
|
11070
|
+
value: this.redactedValue
|
|
11071
|
+
});
|
|
11072
|
+
}
|
|
11073
|
+
}
|
|
11074
|
+
trackCliFlagAddRandomSuffix(addRandomSuffix) {
|
|
11075
|
+
if (addRandomSuffix) {
|
|
11076
|
+
this.trackCliFlag("add-random-suffix");
|
|
11077
|
+
}
|
|
11078
|
+
}
|
|
11079
|
+
trackCliFlagAllowOverwrite(allowOverwrite) {
|
|
11080
|
+
if (allowOverwrite) {
|
|
11081
|
+
this.trackCliFlag("allow-overwrite");
|
|
11082
|
+
}
|
|
11083
|
+
}
|
|
11084
|
+
trackCliOptionCacheControlMaxAge(cacheControlMaxAge) {
|
|
11085
|
+
if (cacheControlMaxAge) {
|
|
11086
|
+
this.trackCliOption({
|
|
11087
|
+
option: "cache-control-max-age",
|
|
11088
|
+
value: String(cacheControlMaxAge)
|
|
11089
|
+
});
|
|
11090
|
+
}
|
|
11091
|
+
}
|
|
11092
|
+
trackCliFlagJson(json) {
|
|
11093
|
+
if (json) {
|
|
11094
|
+
this.trackCliFlag("json");
|
|
11095
|
+
}
|
|
11096
|
+
}
|
|
11097
|
+
};
|
|
11098
|
+
|
|
11099
|
+
// src/commands/blob/put-image.ts
|
|
11100
|
+
async function putImage2(client, argv, auth) {
|
|
11101
|
+
const telemetryClient = new BlobPutImageTelemetryClient({
|
|
11102
|
+
opts: {
|
|
11103
|
+
store: client.telemetryEventStore
|
|
11104
|
+
}
|
|
11105
|
+
});
|
|
11106
|
+
const flagsSpecification = getFlagsSpecification(putImageSubcommand.options);
|
|
11107
|
+
let parsedArgs;
|
|
11108
|
+
try {
|
|
11109
|
+
parsedArgs = parseArguments(argv, flagsSpecification);
|
|
11110
|
+
} catch (err) {
|
|
11111
|
+
printError(err);
|
|
11112
|
+
return 1;
|
|
11113
|
+
}
|
|
11114
|
+
const {
|
|
11115
|
+
flags,
|
|
11116
|
+
args: [source]
|
|
11117
|
+
} = parsedArgs;
|
|
11118
|
+
const {
|
|
11119
|
+
"--access": accessFlag,
|
|
11120
|
+
"--width": width,
|
|
11121
|
+
"--quality": quality,
|
|
11122
|
+
"--format": formatFlag,
|
|
11123
|
+
"--pathname": pathnameFlag,
|
|
11124
|
+
"--add-random-suffix": addRandomSuffix,
|
|
11125
|
+
"--allow-overwrite": allowOverwrite,
|
|
11126
|
+
"--cache-control-max-age": cacheControlMaxAge,
|
|
11127
|
+
"--json": asJson
|
|
11128
|
+
} = flags;
|
|
11129
|
+
if (!source) {
|
|
11130
|
+
output_manager_default.error(
|
|
11131
|
+
`Missing required argument. Usage: ${getCommandName(
|
|
11132
|
+
"blob put-image <file-or-url> --pathname <pathname> --width <pixels> --access <public|private>"
|
|
11133
|
+
)}`
|
|
11134
|
+
);
|
|
11135
|
+
return 1;
|
|
11136
|
+
}
|
|
11137
|
+
const isUrl = /^https?:\/\//i.test(source);
|
|
11138
|
+
const access4 = parseAccessFlag(accessFlag);
|
|
11139
|
+
if (!access4) {
|
|
11140
|
+
return 1;
|
|
11141
|
+
}
|
|
11142
|
+
const optimizeImage = {
|
|
11143
|
+
width,
|
|
11144
|
+
quality,
|
|
11145
|
+
format: formatFlag
|
|
11146
|
+
};
|
|
11147
|
+
const format3 = optimizeImage.format;
|
|
11148
|
+
if (!pathnameFlag) {
|
|
11149
|
+
output_manager_default.error(
|
|
11150
|
+
"Missing required --pathname flag. Set the pathname to store the optimized image at in the Blob store."
|
|
11151
|
+
);
|
|
11152
|
+
return 1;
|
|
11153
|
+
}
|
|
11154
|
+
const pathname = pathnameFlag;
|
|
11155
|
+
telemetryClient.trackCliArgumentPathToFileOrUrl(source);
|
|
11156
|
+
telemetryClient.trackCliOptionAccess(accessFlag);
|
|
11157
|
+
telemetryClient.trackCliOptionWidth(width);
|
|
11158
|
+
telemetryClient.trackCliOptionQuality(quality);
|
|
11159
|
+
telemetryClient.trackCliOptionFormat(formatFlag);
|
|
11160
|
+
telemetryClient.trackCliOptionPathname(pathnameFlag);
|
|
11161
|
+
telemetryClient.trackCliFlagAddRandomSuffix(addRandomSuffix);
|
|
11162
|
+
telemetryClient.trackCliFlagAllowOverwrite(allowOverwrite);
|
|
11163
|
+
telemetryClient.trackCliOptionCacheControlMaxAge(cacheControlMaxAge);
|
|
11164
|
+
telemetryClient.trackCliFlagJson(asJson);
|
|
11165
|
+
if (!auth.success || auth.kind !== "oidc") {
|
|
11166
|
+
output_manager_default.error(
|
|
11167
|
+
`Image optimization requires OIDC credentials. Pass --oidc-token and --store-id, or set the VERCEL_OIDC_TOKEN and BLOB_STORE_ID environment variables (available in .env.local after ${getCommandName("env pull")}).`
|
|
11168
|
+
);
|
|
11169
|
+
return 1;
|
|
11170
|
+
}
|
|
11171
|
+
const commonOptions = {
|
|
11172
|
+
...blobOpts(auth),
|
|
11173
|
+
access: access4,
|
|
11174
|
+
optimizeImage,
|
|
11175
|
+
addRandomSuffix: addRandomSuffix ?? false,
|
|
11176
|
+
allowOverwrite: allowOverwrite ?? false,
|
|
11177
|
+
cacheControlMaxAge
|
|
11178
|
+
};
|
|
11179
|
+
let result;
|
|
11180
|
+
try {
|
|
11181
|
+
output_manager_default.debug("Optimizing and uploading image");
|
|
11182
|
+
output_manager_default.spinner("Optimizing and uploading image");
|
|
11183
|
+
if (isUrl) {
|
|
11184
|
+
result = await blob3.putImage(pathname, new URL(source), commonOptions);
|
|
11185
|
+
} else {
|
|
11186
|
+
let putBody;
|
|
11187
|
+
try {
|
|
11188
|
+
const stats = statSync2(source);
|
|
11189
|
+
if (!stats.isFile()) {
|
|
11190
|
+
output_manager_default.stopSpinner();
|
|
11191
|
+
output_manager_default.error("Path to optimize is not a file");
|
|
11192
|
+
return 1;
|
|
11193
|
+
}
|
|
11194
|
+
const file = await open4(source, "r");
|
|
11195
|
+
putBody = file.createReadStream();
|
|
11196
|
+
} catch (err) {
|
|
11197
|
+
output_manager_default.stopSpinner();
|
|
11198
|
+
output_manager_default.debug(`Error reading file: ${err}`);
|
|
11199
|
+
if ((0, import_error_utils2.isErrnoException)(err)) {
|
|
11200
|
+
output_manager_default.error(`File doesn't exist at '${source}'`);
|
|
11201
|
+
return 1;
|
|
11202
|
+
}
|
|
11203
|
+
output_manager_default.error("Error while reading file");
|
|
11204
|
+
return 1;
|
|
11205
|
+
}
|
|
11206
|
+
result = await blob3.putImage(pathname, putBody, commonOptions);
|
|
11207
|
+
}
|
|
11208
|
+
} catch (err) {
|
|
11209
|
+
output_manager_default.stopSpinner();
|
|
11210
|
+
printError(err);
|
|
11211
|
+
return 1;
|
|
11212
|
+
}
|
|
11213
|
+
output_manager_default.stopSpinner();
|
|
11214
|
+
const storedMimeType = result.contentType.split(";")[0].trim().toLowerCase();
|
|
11215
|
+
if (format3 && storedMimeType !== `image/${format3}`) {
|
|
11216
|
+
output_manager_default.warn(
|
|
11217
|
+
`The image was not converted to ${format3}: it was stored unchanged as ${storedMimeType}. This usually means the optimized output would have been larger than the source image. Try a lower --quality.`
|
|
11218
|
+
);
|
|
11219
|
+
}
|
|
11220
|
+
if (asJson) {
|
|
11221
|
+
client.stdout.write(
|
|
11222
|
+
`${JSON.stringify(
|
|
11223
|
+
{
|
|
11224
|
+
url: result.url,
|
|
11225
|
+
downloadUrl: result.downloadUrl,
|
|
11226
|
+
pathname: result.pathname,
|
|
11227
|
+
contentType: result.contentType
|
|
11228
|
+
},
|
|
11229
|
+
null,
|
|
11230
|
+
2
|
|
11231
|
+
)}
|
|
11232
|
+
`
|
|
11233
|
+
);
|
|
11234
|
+
} else {
|
|
11235
|
+
client.stdout.write(`${result.url}
|
|
11236
|
+
`);
|
|
11237
|
+
}
|
|
11238
|
+
return 0;
|
|
11239
|
+
}
|
|
11240
|
+
|
|
11241
|
+
// src/commands/blob/get.ts
|
|
11242
|
+
import * as blob4 from "@vercel/blob";
|
|
11010
11243
|
|
|
11011
11244
|
// src/util/telemetry/commands/blob/get.ts
|
|
11012
11245
|
var BlobGetTelemetryClient = class extends TelemetryClient {
|
|
@@ -11090,7 +11323,7 @@ async function get2(client, argv, auth) {
|
|
|
11090
11323
|
if (outputPath) {
|
|
11091
11324
|
output_manager_default.spinner("Downloading blob");
|
|
11092
11325
|
}
|
|
11093
|
-
const result = await
|
|
11326
|
+
const result = await blob4.get(urlOrPathname, {
|
|
11094
11327
|
...blobOpts(auth),
|
|
11095
11328
|
access: access4,
|
|
11096
11329
|
ifNoneMatch
|
|
@@ -11123,7 +11356,7 @@ async function get2(client, argv, auth) {
|
|
|
11123
11356
|
}
|
|
11124
11357
|
|
|
11125
11358
|
// src/commands/blob/del.ts
|
|
11126
|
-
import * as
|
|
11359
|
+
import * as blob5 from "@vercel/blob";
|
|
11127
11360
|
|
|
11128
11361
|
// src/util/telemetry/commands/blob/del.ts
|
|
11129
11362
|
var BlobDelTelemetryClient = class extends TelemetryClient {
|
|
@@ -11173,7 +11406,7 @@ async function del2(client, argv, auth) {
|
|
|
11173
11406
|
try {
|
|
11174
11407
|
output_manager_default.debug("Deleting blob");
|
|
11175
11408
|
output_manager_default.spinner("Deleting blob");
|
|
11176
|
-
await
|
|
11409
|
+
await blob5.del(args, { ...blobOpts(auth), ifMatch });
|
|
11177
11410
|
} catch (err) {
|
|
11178
11411
|
output_manager_default.error(`Error deleting blob: ${err}`);
|
|
11179
11412
|
return 1;
|
|
@@ -11184,7 +11417,7 @@ async function del2(client, argv, auth) {
|
|
|
11184
11417
|
}
|
|
11185
11418
|
|
|
11186
11419
|
// src/commands/blob/copy.ts
|
|
11187
|
-
import * as
|
|
11420
|
+
import * as blob6 from "@vercel/blob";
|
|
11188
11421
|
|
|
11189
11422
|
// src/util/telemetry/commands/blob/copy.ts
|
|
11190
11423
|
var BlobCopyTelemetryClient = class extends TelemetryClient {
|
|
@@ -11290,7 +11523,7 @@ async function copy2(client, argv, auth) {
|
|
|
11290
11523
|
try {
|
|
11291
11524
|
output_manager_default.debug("Copying blob");
|
|
11292
11525
|
output_manager_default.spinner("Copying blob");
|
|
11293
|
-
result = await
|
|
11526
|
+
result = await blob6.copy(fromUrl, toPathname, {
|
|
11294
11527
|
...blobOpts(auth),
|
|
11295
11528
|
access: access4,
|
|
11296
11529
|
addRandomSuffix: addRandomSuffix ?? false,
|
|
@@ -12199,7 +12432,7 @@ function formatCount2(count2) {
|
|
|
12199
12432
|
}
|
|
12200
12433
|
|
|
12201
12434
|
// src/commands/blob/store-empty.ts
|
|
12202
|
-
import * as
|
|
12435
|
+
import * as blob7 from "@vercel/blob";
|
|
12203
12436
|
|
|
12204
12437
|
// src/util/telemetry/commands/blob/store-empty.ts
|
|
12205
12438
|
var BlobEmptyStoreTelemetryClient = class extends TelemetryClient {
|
|
@@ -12252,7 +12485,7 @@ async function emptyStore(client, argv, auth) {
|
|
|
12252
12485
|
method: "GET",
|
|
12253
12486
|
accountId
|
|
12254
12487
|
}),
|
|
12255
|
-
|
|
12488
|
+
blob7.list({ ...blobOpts(auth), limit: 1 })
|
|
12256
12489
|
]
|
|
12257
12490
|
);
|
|
12258
12491
|
const { name } = storeResponse.store;
|
|
@@ -12292,7 +12525,7 @@ async function emptyStore(client, argv, auth) {
|
|
|
12292
12525
|
let hasMore = true;
|
|
12293
12526
|
while (hasMore) {
|
|
12294
12527
|
output_manager_default.spinner(`Deleting blobs... (${totalDeleted} deleted)`);
|
|
12295
|
-
const listResult = await
|
|
12528
|
+
const listResult = await blob7.list({
|
|
12296
12529
|
...blobOpts(auth),
|
|
12297
12530
|
limit: 1e3
|
|
12298
12531
|
});
|
|
@@ -12301,7 +12534,7 @@ async function emptyStore(client, argv, auth) {
|
|
|
12301
12534
|
break;
|
|
12302
12535
|
}
|
|
12303
12536
|
const urls = listResult.blobs.map((b) => b.url);
|
|
12304
|
-
await
|
|
12537
|
+
await blob7.del(urls, { ...blobOpts(auth) });
|
|
12305
12538
|
totalDeleted += urls.length;
|
|
12306
12539
|
}
|
|
12307
12540
|
output_manager_default.stopSpinner();
|
|
@@ -12314,7 +12547,7 @@ async function emptyStore(client, argv, auth) {
|
|
|
12314
12547
|
}
|
|
12315
12548
|
|
|
12316
12549
|
// src/commands/blob/presign.ts
|
|
12317
|
-
import * as
|
|
12550
|
+
import * as blob8 from "@vercel/blob";
|
|
12318
12551
|
|
|
12319
12552
|
// src/util/blob/validity.ts
|
|
12320
12553
|
var import_ms7 = __toESM(require_ms(), 1);
|
|
@@ -12501,7 +12734,7 @@ async function presign(client, argv, auth) {
|
|
|
12501
12734
|
const signedToken2 = delegationTokenFlag && clientSigningTokenFlag ? {
|
|
12502
12735
|
delegationToken: delegationTokenFlag,
|
|
12503
12736
|
clientSigningToken: clientSigningTokenFlag
|
|
12504
|
-
} : await
|
|
12737
|
+
} : await blob8.issueSignedToken({
|
|
12505
12738
|
...blobOpts(auth),
|
|
12506
12739
|
pathname,
|
|
12507
12740
|
operations: [operation],
|
|
@@ -12511,7 +12744,7 @@ async function presign(client, argv, auth) {
|
|
|
12511
12744
|
maximumSizeInBytes
|
|
12512
12745
|
} : {}
|
|
12513
12746
|
});
|
|
12514
|
-
const presigned = await
|
|
12747
|
+
const presigned = await blob8.presignUrl(
|
|
12515
12748
|
{
|
|
12516
12749
|
delegationToken: signedToken2.delegationToken,
|
|
12517
12750
|
clientSigningToken: signedToken2.clientSigningToken
|
|
@@ -12548,7 +12781,7 @@ async function presign(client, argv, auth) {
|
|
|
12548
12781
|
}
|
|
12549
12782
|
|
|
12550
12783
|
// src/commands/blob/signed-token.ts
|
|
12551
|
-
import * as
|
|
12784
|
+
import * as blob9 from "@vercel/blob";
|
|
12552
12785
|
function formatSignedToken(result) {
|
|
12553
12786
|
return `delegationToken=${result.delegationToken}
|
|
12554
12787
|
clientSigningToken=${result.clientSigningToken}
|
|
@@ -12604,7 +12837,7 @@ async function signedToken(client, argv, auth) {
|
|
|
12604
12837
|
try {
|
|
12605
12838
|
output_manager_default.debug("Issuing signed token");
|
|
12606
12839
|
output_manager_default.spinner("Issuing signed token");
|
|
12607
|
-
const result = await
|
|
12840
|
+
const result = await blob9.issueSignedToken({
|
|
12608
12841
|
...blobOpts(auth),
|
|
12609
12842
|
pathname,
|
|
12610
12843
|
operations,
|
|
@@ -12630,6 +12863,7 @@ async function signedToken(client, argv, auth) {
|
|
|
12630
12863
|
var COMMAND_CONFIG13 = {
|
|
12631
12864
|
list: getCommandAliases(listSubcommand23),
|
|
12632
12865
|
put: getCommandAliases(putSubcommand),
|
|
12866
|
+
"put-image": getCommandAliases(putImageSubcommand),
|
|
12633
12867
|
get: getCommandAliases(getSubcommand3),
|
|
12634
12868
|
del: getCommandAliases(delSubcommand),
|
|
12635
12869
|
copy: getCommandAliases(copySubcommand),
|
|
@@ -12702,6 +12936,18 @@ async function main3(client) {
|
|
|
12702
12936
|
return 1;
|
|
12703
12937
|
}
|
|
12704
12938
|
return put2(client, args, token2);
|
|
12939
|
+
case "put-image":
|
|
12940
|
+
if (needHelp) {
|
|
12941
|
+
telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
|
|
12942
|
+
printHelp(putImageSubcommand);
|
|
12943
|
+
return 2;
|
|
12944
|
+
}
|
|
12945
|
+
telemetry2.trackCliSubcommandPutImage(subcommandOriginal);
|
|
12946
|
+
if (!token2.success) {
|
|
12947
|
+
printError(token2.error);
|
|
12948
|
+
return 1;
|
|
12949
|
+
}
|
|
12950
|
+
return putImage2(client, args, token2);
|
|
12705
12951
|
case "get":
|
|
12706
12952
|
if (needHelp) {
|
|
12707
12953
|
telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
|
|
@@ -12826,7 +13072,7 @@ async function createPurchase(client, item) {
|
|
|
12826
13072
|
|
|
12827
13073
|
// src/util/buy/handle-purchase-error.ts
|
|
12828
13074
|
var import_open2 = __toESM(require_open(), 1);
|
|
12829
|
-
var
|
|
13075
|
+
var import_error_utils3 = __toESM(require_dist(), 1);
|
|
12830
13076
|
|
|
12831
13077
|
// src/util/billing-url.ts
|
|
12832
13078
|
var getTeamBillingUrl = (teamSlug) => `https://vercel.com/${teamSlug}/~/settings/billing`;
|
|
@@ -12916,7 +13162,7 @@ function handlePurchaseError(err, teamSlug, opts) {
|
|
|
12916
13162
|
output_manager_default.error(
|
|
12917
13163
|
"An unexpected error occurred while completing your purchase. Please try again later."
|
|
12918
13164
|
);
|
|
12919
|
-
output_manager_default.debug(`Server response: ${(0,
|
|
13165
|
+
output_manager_default.debug(`Server response: ${(0, import_error_utils3.errorToString)(err)}`);
|
|
12920
13166
|
return 1;
|
|
12921
13167
|
}
|
|
12922
13168
|
|
|
@@ -13047,7 +13293,7 @@ var import_chalk42 = __toESM(require_source(), 1);
|
|
|
13047
13293
|
var import_chalk41 = __toESM(require_source(), 1);
|
|
13048
13294
|
|
|
13049
13295
|
// src/util/buy/handle-custom-environment-purchase-error.ts
|
|
13050
|
-
var
|
|
13296
|
+
var import_error_utils4 = __toESM(require_dist(), 1);
|
|
13051
13297
|
function handleCustomEnvironmentPurchaseError(err) {
|
|
13052
13298
|
if (isAPIError(err)) {
|
|
13053
13299
|
if (err.code === "upgrade_required") {
|
|
@@ -13085,7 +13331,7 @@ function handleCustomEnvironmentPurchaseError(err) {
|
|
|
13085
13331
|
output_manager_default.error(
|
|
13086
13332
|
"An error occurred while updating custom environment capacity. Please try again later."
|
|
13087
13333
|
);
|
|
13088
|
-
output_manager_default.debug(`Server response: ${(0,
|
|
13334
|
+
output_manager_default.debug(`Server response: ${(0, import_error_utils4.errorToString)(err)}`);
|
|
13089
13335
|
return 1;
|
|
13090
13336
|
}
|
|
13091
13337
|
|
|
@@ -13404,7 +13650,7 @@ async function pro(client, argv) {
|
|
|
13404
13650
|
// src/commands/domains/buy.ts
|
|
13405
13651
|
var import_chalk44 = __toESM(require_source(), 1);
|
|
13406
13652
|
var import_tldts3 = __toESM(require_cjs(), 1);
|
|
13407
|
-
var
|
|
13653
|
+
var import_error_utils5 = __toESM(require_dist(), 1);
|
|
13408
13654
|
|
|
13409
13655
|
// src/util/telemetry/commands/domains/buy.ts
|
|
13410
13656
|
var DomainsBuyTelemetryClient = class extends TelemetryClient {
|
|
@@ -13586,7 +13832,7 @@ async function buy(client, argv) {
|
|
|
13586
13832
|
output_manager_default.error(
|
|
13587
13833
|
"An unexpected error occurred while purchasing your domain. Please try again later."
|
|
13588
13834
|
);
|
|
13589
|
-
output_manager_default.debug(`Server response: ${(0,
|
|
13835
|
+
output_manager_default.debug(`Server response: ${(0, import_error_utils5.errorToString)(err)}`);
|
|
13590
13836
|
return 1;
|
|
13591
13837
|
}
|
|
13592
13838
|
output_manager_default.stopSpinner();
|
|
@@ -14377,43 +14623,43 @@ async function comments(client) {
|
|
|
14377
14623
|
if (handleHelp(inspectSubcommand4))
|
|
14378
14624
|
return 0;
|
|
14379
14625
|
telemetry2.trackCliSubcommandInspect(subcommandOriginal);
|
|
14380
|
-
return (await import("./chunks/inspect-
|
|
14626
|
+
return (await import("./chunks/inspect-NLWTMJHW.js")).default(client, telemetry2);
|
|
14381
14627
|
}
|
|
14382
14628
|
case "open": {
|
|
14383
14629
|
if (handleHelp(openSubcommand))
|
|
14384
14630
|
return 0;
|
|
14385
14631
|
telemetry2.trackCliSubcommandOpen(subcommandOriginal);
|
|
14386
|
-
return (await import("./chunks/open-
|
|
14632
|
+
return (await import("./chunks/open-4XQWNZQD.js")).default(client, telemetry2);
|
|
14387
14633
|
}
|
|
14388
14634
|
case "reply": {
|
|
14389
14635
|
if (handleHelp(replySubcommand))
|
|
14390
14636
|
return 0;
|
|
14391
14637
|
telemetry2.trackCliSubcommandReply(subcommandOriginal);
|
|
14392
|
-
return (await import("./chunks/reply-
|
|
14638
|
+
return (await import("./chunks/reply-4YEXMUWH.js")).default(client, telemetry2);
|
|
14393
14639
|
}
|
|
14394
14640
|
case "resolve": {
|
|
14395
14641
|
if (handleHelp(resolveSubcommand))
|
|
14396
14642
|
return 0;
|
|
14397
14643
|
telemetry2.trackCliSubcommandResolve(subcommandOriginal);
|
|
14398
|
-
return (await import("./chunks/resolve-
|
|
14644
|
+
return (await import("./chunks/resolve-GZ4KXDU6.js")).default(client, telemetry2, true);
|
|
14399
14645
|
}
|
|
14400
14646
|
case "reopen": {
|
|
14401
14647
|
if (handleHelp(reopenSubcommand))
|
|
14402
14648
|
return 0;
|
|
14403
14649
|
telemetry2.trackCliSubcommandReopen(subcommandOriginal);
|
|
14404
|
-
return (await import("./chunks/resolve-
|
|
14650
|
+
return (await import("./chunks/resolve-GZ4KXDU6.js")).default(client, telemetry2, false);
|
|
14405
14651
|
}
|
|
14406
14652
|
case "edit": {
|
|
14407
14653
|
if (handleHelp(editSubcommand))
|
|
14408
14654
|
return 0;
|
|
14409
14655
|
telemetry2.trackCliSubcommandEdit(subcommandOriginal);
|
|
14410
|
-
return (await import("./chunks/edit-
|
|
14656
|
+
return (await import("./chunks/edit-ABJN6BMR.js")).default(client, telemetry2);
|
|
14411
14657
|
}
|
|
14412
14658
|
case "delete": {
|
|
14413
14659
|
if (handleHelp(deleteSubcommand))
|
|
14414
14660
|
return 0;
|
|
14415
14661
|
telemetry2.trackCliSubcommandDelete(subcommandOriginal);
|
|
14416
|
-
return (await import("./chunks/delete-
|
|
14662
|
+
return (await import("./chunks/delete-NFNYQ7LC.js")).default(client, telemetry2);
|
|
14417
14663
|
}
|
|
14418
14664
|
default: {
|
|
14419
14665
|
if (needHelp) {
|
|
@@ -14429,7 +14675,7 @@ async function comments(client) {
|
|
|
14429
14675
|
}
|
|
14430
14676
|
telemetry2.trackCliSubcommandList(subcommandOriginal);
|
|
14431
14677
|
const defaultInvocation = subcommandOriginal === "default";
|
|
14432
|
-
return (await import("./chunks/list-
|
|
14678
|
+
return (await import("./chunks/list-ZUFB2CIS.js")).default(
|
|
14433
14679
|
client,
|
|
14434
14680
|
telemetry2,
|
|
14435
14681
|
defaultInvocation
|
|
@@ -14438,6 +14684,26 @@ async function comments(client) {
|
|
|
14438
14684
|
}
|
|
14439
14685
|
}
|
|
14440
14686
|
|
|
14687
|
+
// src/util/connex/service-telemetry-value.ts
|
|
14688
|
+
function serviceTelemetryValue(value) {
|
|
14689
|
+
const trimmed = value.trim();
|
|
14690
|
+
if (!trimmed) {
|
|
14691
|
+
return null;
|
|
14692
|
+
}
|
|
14693
|
+
const withoutScheme = trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//, "");
|
|
14694
|
+
const authority = withoutScheme.split(/[/?#]/, 1)[0];
|
|
14695
|
+
const atIndex = authority.lastIndexOf("@");
|
|
14696
|
+
const hostPort = atIndex === -1 ? authority : authority.slice(atIndex + 1);
|
|
14697
|
+
let host;
|
|
14698
|
+
if (hostPort.startsWith("[")) {
|
|
14699
|
+
const end = hostPort.indexOf("]");
|
|
14700
|
+
host = end === -1 ? hostPort : hostPort.slice(0, end + 1);
|
|
14701
|
+
} else {
|
|
14702
|
+
host = hostPort.split(":", 1)[0];
|
|
14703
|
+
}
|
|
14704
|
+
return host ? host.toLowerCase() : null;
|
|
14705
|
+
}
|
|
14706
|
+
|
|
14441
14707
|
// src/util/connex/validate-hex.ts
|
|
14442
14708
|
var HEX_COLOR_REGEX = /^#[0-9a-fA-F]{6}$/;
|
|
14443
14709
|
function isValidHexColor(value) {
|
|
@@ -14526,6 +14792,50 @@ var ConnexTelemetryClient = class extends TelemetryClient {
|
|
|
14526
14792
|
});
|
|
14527
14793
|
}
|
|
14528
14794
|
}
|
|
14795
|
+
trackCliArgumentService(v) {
|
|
14796
|
+
if (v) {
|
|
14797
|
+
const value = serviceTelemetryValue(v);
|
|
14798
|
+
this.trackCliArgument({
|
|
14799
|
+
arg: "service",
|
|
14800
|
+
value: value ?? this.redactedValue
|
|
14801
|
+
});
|
|
14802
|
+
}
|
|
14803
|
+
}
|
|
14804
|
+
trackCliOptionName(v) {
|
|
14805
|
+
if (v) {
|
|
14806
|
+
this.trackCliOption({
|
|
14807
|
+
option: "name",
|
|
14808
|
+
// User-authored connector name can carry team/product names, hence redact.
|
|
14809
|
+
value: this.redactedValue
|
|
14810
|
+
});
|
|
14811
|
+
}
|
|
14812
|
+
}
|
|
14813
|
+
trackCliOptionSubject(v) {
|
|
14814
|
+
if (v) {
|
|
14815
|
+
this.trackCliOption({
|
|
14816
|
+
option: "subject",
|
|
14817
|
+
// Closed enum. Emit raw when valid so the `user` vs `app` token split
|
|
14818
|
+
// is visible; redact anything else
|
|
14819
|
+
value: v === "user" || v === "app" ? v : this.redactedValue
|
|
14820
|
+
});
|
|
14821
|
+
}
|
|
14822
|
+
}
|
|
14823
|
+
trackCliOptionInstallationId(v) {
|
|
14824
|
+
if (v) {
|
|
14825
|
+
this.trackCliOption({
|
|
14826
|
+
option: "installation-id",
|
|
14827
|
+
value: this.redactedValue
|
|
14828
|
+
});
|
|
14829
|
+
}
|
|
14830
|
+
}
|
|
14831
|
+
trackCliOptionScopes(v) {
|
|
14832
|
+
if (v) {
|
|
14833
|
+
this.trackCliOption({
|
|
14834
|
+
option: "scopes",
|
|
14835
|
+
value: this.redactedValue
|
|
14836
|
+
});
|
|
14837
|
+
}
|
|
14838
|
+
}
|
|
14529
14839
|
trackCliOptionIcon(v) {
|
|
14530
14840
|
if (v) {
|
|
14531
14841
|
this.trackCliOption({
|
|
@@ -17681,7 +17991,7 @@ async function connex(client) {
|
|
|
17681
17991
|
);
|
|
17682
17992
|
}
|
|
17683
17993
|
if (!subcommand && needHelp) {
|
|
17684
|
-
telemetry2.trackCliFlagHelp("
|
|
17994
|
+
telemetry2.trackCliFlagHelp("connect");
|
|
17685
17995
|
output_manager_default.print(
|
|
17686
17996
|
help(connexCommand, {
|
|
17687
17997
|
columns: client.stderr.columns
|
|
@@ -17693,7 +18003,7 @@ async function connex(client) {
|
|
|
17693
18003
|
switch (subcommand) {
|
|
17694
18004
|
case "create": {
|
|
17695
18005
|
if (needHelp) {
|
|
17696
|
-
telemetry2.trackCliFlagHelp("
|
|
18006
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17697
18007
|
const printed = await printCreateDynamicHelp(
|
|
17698
18008
|
client,
|
|
17699
18009
|
findHelpServiceArg(subArgs),
|
|
@@ -17711,6 +18021,8 @@ async function connex(client) {
|
|
|
17711
18021
|
normalizeCreateDataArgs(subArgs),
|
|
17712
18022
|
createFlagsSpec
|
|
17713
18023
|
);
|
|
18024
|
+
telemetry2.trackCliArgumentService(createParsedArgs.args[0]);
|
|
18025
|
+
telemetry2.trackCliOptionName(createParsedArgs.flags["--name"]);
|
|
17714
18026
|
telemetry2.trackCliOptionIcon(createParsedArgs.flags["--icon"]);
|
|
17715
18027
|
telemetry2.trackCliOptionBackgroundColor(
|
|
17716
18028
|
createParsedArgs.flags["--background-color"]
|
|
@@ -17744,6 +18056,7 @@ async function connex(client) {
|
|
|
17744
18056
|
telemetry2.trackCliOptionTriggerEnvironment(
|
|
17745
18057
|
createParsedArgs.flags["--trigger-environment"]
|
|
17746
18058
|
);
|
|
18059
|
+
telemetry2.trackCliOptionFormat(createParsedArgs.flags["--format"]);
|
|
17747
18060
|
return await create2(
|
|
17748
18061
|
client,
|
|
17749
18062
|
createParsedArgs.args,
|
|
@@ -17752,7 +18065,7 @@ async function connex(client) {
|
|
|
17752
18065
|
}
|
|
17753
18066
|
case "update": {
|
|
17754
18067
|
if (needHelp) {
|
|
17755
|
-
telemetry2.trackCliFlagHelp("
|
|
18068
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17756
18069
|
printHelp(updateSubcommand);
|
|
17757
18070
|
return 0;
|
|
17758
18071
|
}
|
|
@@ -17776,7 +18089,7 @@ async function connex(client) {
|
|
|
17776
18089
|
}
|
|
17777
18090
|
case "list": {
|
|
17778
18091
|
if (needHelp) {
|
|
17779
|
-
telemetry2.trackCliFlagHelp("
|
|
18092
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17780
18093
|
printHelp(listSubcommand7);
|
|
17781
18094
|
return 0;
|
|
17782
18095
|
}
|
|
@@ -17796,18 +18109,26 @@ async function connex(client) {
|
|
|
17796
18109
|
}
|
|
17797
18110
|
case "token": {
|
|
17798
18111
|
if (needHelp) {
|
|
17799
|
-
telemetry2.trackCliFlagHelp("
|
|
18112
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17800
18113
|
printHelp(tokenSubcommand);
|
|
17801
18114
|
return 0;
|
|
17802
18115
|
}
|
|
17803
18116
|
telemetry2.trackCliSubcommandToken(subcommandOriginal);
|
|
17804
18117
|
const tokenFlagsSpec = getFlagsSpecification(tokenSubcommand.options);
|
|
17805
18118
|
const tokenParsedArgs = parseArguments(subArgs, tokenFlagsSpec);
|
|
18119
|
+
telemetry2.trackCliArgumentId(tokenParsedArgs.args[0]);
|
|
18120
|
+
telemetry2.trackCliOptionSubject(tokenParsedArgs.flags["--subject"]);
|
|
18121
|
+
telemetry2.trackCliOptionInstallationId(
|
|
18122
|
+
tokenParsedArgs.flags["--installation-id"]
|
|
18123
|
+
);
|
|
18124
|
+
telemetry2.trackCliOptionScopes(tokenParsedArgs.flags["--scopes"]);
|
|
18125
|
+
telemetry2.trackCliFlagYes(tokenParsedArgs.flags["--yes"]);
|
|
18126
|
+
telemetry2.trackCliOptionFormat(tokenParsedArgs.flags["--format"]);
|
|
17806
18127
|
return await token(client, tokenParsedArgs.args, tokenParsedArgs.flags);
|
|
17807
18128
|
}
|
|
17808
18129
|
case "attach": {
|
|
17809
18130
|
if (needHelp) {
|
|
17810
|
-
telemetry2.trackCliFlagHelp("
|
|
18131
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17811
18132
|
printHelp(attachSubcommand);
|
|
17812
18133
|
return 0;
|
|
17813
18134
|
}
|
|
@@ -17839,7 +18160,7 @@ async function connex(client) {
|
|
|
17839
18160
|
}
|
|
17840
18161
|
case "detach": {
|
|
17841
18162
|
if (needHelp) {
|
|
17842
|
-
telemetry2.trackCliFlagHelp("
|
|
18163
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17843
18164
|
printHelp(detachSubcommand);
|
|
17844
18165
|
return 0;
|
|
17845
18166
|
}
|
|
@@ -17858,7 +18179,7 @@ async function connex(client) {
|
|
|
17858
18179
|
}
|
|
17859
18180
|
case "remove": {
|
|
17860
18181
|
if (needHelp) {
|
|
17861
|
-
telemetry2.trackCliFlagHelp("
|
|
18182
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17862
18183
|
printHelp(removeSubcommand4);
|
|
17863
18184
|
return 0;
|
|
17864
18185
|
}
|
|
@@ -17879,7 +18200,7 @@ async function connex(client) {
|
|
|
17879
18200
|
}
|
|
17880
18201
|
case "revoke-tokens": {
|
|
17881
18202
|
if (needHelp) {
|
|
17882
|
-
telemetry2.trackCliFlagHelp("
|
|
18203
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17883
18204
|
printHelp(revokeTokensSubcommand);
|
|
17884
18205
|
return 0;
|
|
17885
18206
|
}
|
|
@@ -17910,7 +18231,7 @@ async function connex(client) {
|
|
|
17910
18231
|
}
|
|
17911
18232
|
case "open": {
|
|
17912
18233
|
if (needHelp) {
|
|
17913
|
-
telemetry2.trackCliFlagHelp("
|
|
18234
|
+
telemetry2.trackCliFlagHelp("connect", subcommandOriginal);
|
|
17914
18235
|
printHelp(openSubcommand2);
|
|
17915
18236
|
return 0;
|
|
17916
18237
|
}
|
|
@@ -17997,7 +18318,7 @@ var ContractTelemetryClient = class extends TelemetryClient {
|
|
|
17997
18318
|
};
|
|
17998
18319
|
|
|
17999
18320
|
// src/commands/contract/index.ts
|
|
18000
|
-
var
|
|
18321
|
+
var import_error_utils6 = __toESM(require_dist(), 1);
|
|
18001
18322
|
|
|
18002
18323
|
// src/util/billing/format.ts
|
|
18003
18324
|
function formatCurrency(amount) {
|
|
@@ -18049,7 +18370,7 @@ async function contract(client) {
|
|
|
18049
18370
|
contextName = scope.contextName;
|
|
18050
18371
|
teamId = scope.team?.id;
|
|
18051
18372
|
} catch (err) {
|
|
18052
|
-
if ((0,
|
|
18373
|
+
if ((0, import_error_utils6.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
|
|
18053
18374
|
error(err.message);
|
|
18054
18375
|
return 1;
|
|
18055
18376
|
}
|
|
@@ -18174,7 +18495,7 @@ async function contract(client) {
|
|
|
18174
18495
|
var import_chalk56 = __toESM(require_source(), 1);
|
|
18175
18496
|
|
|
18176
18497
|
// src/util/certs/create-cert-from-file.ts
|
|
18177
|
-
var
|
|
18498
|
+
var import_error_utils7 = __toESM(require_dist(), 1);
|
|
18178
18499
|
import { readFileSync } from "fs";
|
|
18179
18500
|
import { resolve as resolve6 } from "path";
|
|
18180
18501
|
async function createCertFromFile(client, keyPath, certPath, caPath) {
|
|
@@ -18193,7 +18514,7 @@ async function createCertFromFile(client, keyPath, certPath, caPath) {
|
|
|
18193
18514
|
});
|
|
18194
18515
|
return certificate;
|
|
18195
18516
|
} catch (err) {
|
|
18196
|
-
if ((0,
|
|
18517
|
+
if ((0, import_error_utils7.isErrnoException)(err) && err.code === "ENOENT") {
|
|
18197
18518
|
return new Error(`The specified file "${err.path}" doesn't exist.`);
|
|
18198
18519
|
}
|
|
18199
18520
|
if (isAPIError(err) && err.status < 500) {
|
|
@@ -19648,7 +19969,7 @@ var CurlTelemetryClient = class extends TelemetryClient {
|
|
|
19648
19969
|
|
|
19649
19970
|
// src/commands/curl/shared.ts
|
|
19650
19971
|
var import_chalk66 = __toESM(require_source(), 1);
|
|
19651
|
-
var
|
|
19972
|
+
var import_error_utils8 = __toESM(require_dist(), 1);
|
|
19652
19973
|
|
|
19653
19974
|
// src/commands/curl/bypass-token.ts
|
|
19654
19975
|
var import_chalk65 = __toESM(require_source(), 1);
|
|
@@ -20178,7 +20499,7 @@ async function getDeploymentUrlAndToken(client, commandName, path3, options) {
|
|
|
20178
20499
|
try {
|
|
20179
20500
|
scope = await getScope(client);
|
|
20180
20501
|
} catch (err) {
|
|
20181
|
-
if ((0,
|
|
20502
|
+
if ((0, import_error_utils8.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
|
|
20182
20503
|
output_manager_default.error(err.message);
|
|
20183
20504
|
return 1;
|
|
20184
20505
|
}
|
|
@@ -20233,7 +20554,7 @@ async function getDeploymentUrlAndToken(client, commandName, path3, options) {
|
|
|
20233
20554
|
autoConfirm
|
|
20234
20555
|
});
|
|
20235
20556
|
} catch (err) {
|
|
20236
|
-
if ((0,
|
|
20557
|
+
if ((0, import_error_utils8.isErrnoException)(err) && err.code === "NOT_AUTHORIZED") {
|
|
20237
20558
|
output_manager_default.error(err.message);
|
|
20238
20559
|
return 1;
|
|
20239
20560
|
}
|
|
@@ -20286,7 +20607,7 @@ async function getDeploymentUrlAndToken(client, commandName, path3, options) {
|
|
|
20286
20607
|
}
|
|
20287
20608
|
|
|
20288
20609
|
// src/commands/curl/trace.ts
|
|
20289
|
-
var
|
|
20610
|
+
var import_error_utils9 = __toESM(require_dist(), 1);
|
|
20290
20611
|
import { spawn } from "child_process";
|
|
20291
20612
|
import { tmpdir } from "os";
|
|
20292
20613
|
import { join as join15 } from "path";
|
|
@@ -20531,7 +20852,7 @@ async function trace2(client, { fullUrl, link: link2, curlFlags, json, yes, tele
|
|
|
20531
20852
|
userId = client.authConfig.userId ?? (await getUser(client)).id;
|
|
20532
20853
|
} catch (err) {
|
|
20533
20854
|
output_manager_default.error(
|
|
20534
|
-
`Failed to resolve user for trace session: ${(0,
|
|
20855
|
+
`Failed to resolve user for trace session: ${(0, import_error_utils9.errorToString)(err)}`
|
|
20535
20856
|
);
|
|
20536
20857
|
return 1;
|
|
20537
20858
|
}
|
|
@@ -22714,7 +23035,7 @@ var DomainsAddTelemetryClient = class extends TelemetryClient {
|
|
|
22714
23035
|
};
|
|
22715
23036
|
|
|
22716
23037
|
// src/commands/domains/add.ts
|
|
22717
|
-
var
|
|
23038
|
+
var import_error_utils10 = __toESM(require_dist(), 1);
|
|
22718
23039
|
var VERCEL_DOMAINS_DASHBOARD = "https://vercel.com/dashboard/domains";
|
|
22719
23040
|
function nextCommandsForDomainsAddFailure(client, domainName, projectName, err) {
|
|
22720
23041
|
const next = [
|
|
@@ -22902,7 +23223,7 @@ async function add5(client, argv) {
|
|
|
22902
23223
|
if (code2 === "not_domain_owner" || status4 === 403 && msg.includes("not authorized")) {
|
|
22903
23224
|
reason = "domain_not_owned";
|
|
22904
23225
|
}
|
|
22905
|
-
let message = (0,
|
|
23226
|
+
let message = (0, import_error_utils10.errorToString)(error);
|
|
22906
23227
|
if (reason === "domain_not_owned" || code2 === "invalid_domain" || msg.includes("not authorized to use")) {
|
|
22907
23228
|
message += " domains add is for domains you already own or control via DNS. If you have not purchased the domain yet, the user must run 'domains buy' interactively (agents must not purchase) or buy in the dashboard; use 'domains transfer-in' to move an existing registration to Vercel.";
|
|
22908
23229
|
}
|
|
@@ -22932,7 +23253,7 @@ async function add5(client, argv) {
|
|
|
22932
23253
|
{
|
|
22933
23254
|
status: "error",
|
|
22934
23255
|
reason: "invalid_domain",
|
|
22935
|
-
message: (0,
|
|
23256
|
+
message: (0, import_error_utils10.errorToString)(addResult)
|
|
22936
23257
|
},
|
|
22937
23258
|
1
|
|
22938
23259
|
);
|
|
@@ -22947,7 +23268,7 @@ async function add5(client, argv) {
|
|
|
22947
23268
|
{
|
|
22948
23269
|
status: "error",
|
|
22949
23270
|
reason: "domain_already_exists",
|
|
22950
|
-
message: (0,
|
|
23271
|
+
message: (0, import_error_utils10.errorToString)(addResult)
|
|
22951
23272
|
},
|
|
22952
23273
|
1
|
|
22953
23274
|
);
|
|
@@ -23038,7 +23359,7 @@ async function add5(client, argv) {
|
|
|
23038
23359
|
{
|
|
23039
23360
|
status: "error",
|
|
23040
23361
|
reason: "domain_remove_failed",
|
|
23041
|
-
message: (0,
|
|
23362
|
+
message: (0, import_error_utils10.errorToString)(removeResponse)
|
|
23042
23363
|
},
|
|
23043
23364
|
1
|
|
23044
23365
|
);
|
|
@@ -23064,7 +23385,7 @@ async function add5(client, argv) {
|
|
|
23064
23385
|
if (code2 === "not_domain_owner" || status4 === 403 && msg.includes("not authorized")) {
|
|
23065
23386
|
reason = "domain_not_owned";
|
|
23066
23387
|
}
|
|
23067
|
-
let message = (0,
|
|
23388
|
+
let message = (0, import_error_utils10.errorToString)(aliasTarget);
|
|
23068
23389
|
if (reason === "domain_not_owned" || code2 === "invalid_domain" || msg.includes("not authorized to use")) {
|
|
23069
23390
|
message += " domains add is for domains you already own or control via DNS. If you have not purchased the domain yet, the user must run 'domains buy' interactively (agents must not purchase) or buy in the dashboard; use 'domains transfer-in' to move an existing registration to Vercel.";
|
|
23070
23391
|
}
|
|
@@ -45033,7 +45354,7 @@ async function guess(client, exampleList, name) {
|
|
|
45033
45354
|
}
|
|
45034
45355
|
|
|
45035
45356
|
// src/commands/init/index.ts
|
|
45036
|
-
var
|
|
45357
|
+
var import_error_utils11 = __toESM(require_dist(), 1);
|
|
45037
45358
|
|
|
45038
45359
|
// src/util/telemetry/commands/init/index.ts
|
|
45039
45360
|
var InitTelemetryClient = class extends TelemetryClient {
|
|
@@ -45094,7 +45415,7 @@ async function main19(client) {
|
|
|
45094
45415
|
return await init(client, parsedArgs.flags, args, telemetry2);
|
|
45095
45416
|
} catch (err) {
|
|
45096
45417
|
output_manager_default.prettyError(err);
|
|
45097
|
-
if ((0,
|
|
45418
|
+
if ((0, import_error_utils11.isError)(err) && typeof err.stack === "string") {
|
|
45098
45419
|
output_manager_default.debug(err.stack);
|
|
45099
45420
|
}
|
|
45100
45421
|
return 1;
|
|
@@ -45102,7 +45423,7 @@ async function main19(client) {
|
|
|
45102
45423
|
}
|
|
45103
45424
|
|
|
45104
45425
|
// src/commands/inspect/index.ts
|
|
45105
|
-
var
|
|
45426
|
+
var import_error_utils12 = __toESM(require_dist(), 1);
|
|
45106
45427
|
var import_chalk166 = __toESM(require_source(), 1);
|
|
45107
45428
|
var import_ms18 = __toESM(require_ms(), 1);
|
|
45108
45429
|
var import_title3 = __toESM(require_lib2(), 1);
|
|
@@ -45524,7 +45845,7 @@ async function inspect6(client) {
|
|
|
45524
45845
|
try {
|
|
45525
45846
|
({ contextName } = await getScope(client));
|
|
45526
45847
|
} catch (err) {
|
|
45527
|
-
if ((0,
|
|
45848
|
+
if ((0, import_error_utils12.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
|
|
45528
45849
|
error(err.message);
|
|
45529
45850
|
return 1;
|
|
45530
45851
|
}
|
|
@@ -45751,7 +46072,7 @@ function exitCode(state) {
|
|
|
45751
46072
|
// src/commands/integration/add-auto-provision.ts
|
|
45752
46073
|
var import_chalk171 = __toESM(require_source(), 1);
|
|
45753
46074
|
var import_execa2 = __toESM(require_execa(), 1);
|
|
45754
|
-
var
|
|
46075
|
+
var import_error_utils13 = __toESM(require_dist(), 1);
|
|
45755
46076
|
var import_open12 = __toESM(require_open(), 1);
|
|
45756
46077
|
|
|
45757
46078
|
// src/util/integration/auto-provision-resource.ts
|
|
@@ -47442,10 +47763,10 @@ Example: vercel ${commandName} ${integration.slug}/${integration.products[0].slu
|
|
|
47442
47763
|
"marketplace_checkout_provisioning_failed",
|
|
47443
47764
|
{
|
|
47444
47765
|
...baseProps,
|
|
47445
|
-
error_message: (0,
|
|
47766
|
+
error_message: (0, import_error_utils13.errorToString)(error)
|
|
47446
47767
|
}
|
|
47447
47768
|
);
|
|
47448
|
-
output_manager_default.error((0,
|
|
47769
|
+
output_manager_default.error((0, import_error_utils13.errorToString)(error));
|
|
47449
47770
|
return 1;
|
|
47450
47771
|
}
|
|
47451
47772
|
output_manager_default.stopSpinner();
|
|
@@ -51975,14 +52296,14 @@ async function main21(client) {
|
|
|
51975
52296
|
}
|
|
51976
52297
|
|
|
51977
52298
|
// src/commands/logout/index.ts
|
|
51978
|
-
var
|
|
52299
|
+
var import_error_utils15 = __toESM(require_dist(), 1);
|
|
51979
52300
|
|
|
51980
52301
|
// src/util/telemetry/commands/logout/index.ts
|
|
51981
52302
|
var LogoutTelemetryClient = class extends TelemetryClient {
|
|
51982
52303
|
};
|
|
51983
52304
|
|
|
51984
52305
|
// src/commands/logout/future.ts
|
|
51985
|
-
var
|
|
52306
|
+
var import_error_utils14 = __toESM(require_dist(), 1);
|
|
51986
52307
|
async function logout(client) {
|
|
51987
52308
|
const { authConfig } = client;
|
|
51988
52309
|
if (!authConfig.token) {
|
|
@@ -52015,7 +52336,7 @@ async function logout(client) {
|
|
|
52015
52336
|
return 0;
|
|
52016
52337
|
}
|
|
52017
52338
|
} catch (err) {
|
|
52018
|
-
output_manager_default.debug((0,
|
|
52339
|
+
output_manager_default.debug((0, import_error_utils14.errorToString)(err));
|
|
52019
52340
|
output_manager_default.error("Failed during logout");
|
|
52020
52341
|
}
|
|
52021
52342
|
return 1;
|
|
@@ -52079,7 +52400,7 @@ async function logout2(client) {
|
|
|
52079
52400
|
}
|
|
52080
52401
|
output_manager_default.debug("Configuration has been deleted");
|
|
52081
52402
|
} catch (err) {
|
|
52082
|
-
output_manager_default.debug((0,
|
|
52403
|
+
output_manager_default.debug((0, import_error_utils15.errorToString)(err));
|
|
52083
52404
|
exitCode2 = 1;
|
|
52084
52405
|
}
|
|
52085
52406
|
if (exitCode2 === 0) {
|
|
@@ -52091,7 +52412,7 @@ async function logout2(client) {
|
|
|
52091
52412
|
}
|
|
52092
52413
|
|
|
52093
52414
|
// src/commands/logs/index.ts
|
|
52094
|
-
var
|
|
52415
|
+
var import_error_utils16 = __toESM(require_dist(), 1);
|
|
52095
52416
|
var import_chalk191 = __toESM(require_source(), 1);
|
|
52096
52417
|
var import_format26 = __toESM(require_format(), 1);
|
|
52097
52418
|
|
|
@@ -52838,7 +53159,7 @@ async function logs(client) {
|
|
|
52838
53159
|
try {
|
|
52839
53160
|
({ contextName } = await getScope(client));
|
|
52840
53161
|
} catch (err) {
|
|
52841
|
-
if ((0,
|
|
53162
|
+
if ((0, import_error_utils16.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
|
|
52842
53163
|
output_manager_default.error(err.message);
|
|
52843
53164
|
return 1;
|
|
52844
53165
|
}
|
|
@@ -53841,7 +54162,7 @@ async function metrics(client) {
|
|
|
53841
54162
|
return 0;
|
|
53842
54163
|
}
|
|
53843
54164
|
telemetry2.trackCliSubcommandSchema(subcommandOriginal);
|
|
53844
|
-
const schemaFn = (await import("./chunks/schema-
|
|
54165
|
+
const schemaFn = (await import("./chunks/schema-YJDZ6EOC.js")).default;
|
|
53845
54166
|
return schemaFn(client, telemetry2);
|
|
53846
54167
|
}
|
|
53847
54168
|
default: {
|
|
@@ -53854,7 +54175,7 @@ async function metrics(client) {
|
|
|
53854
54175
|
output_manager_default.print(help(metricsCommand, { columns: client.stderr.columns }));
|
|
53855
54176
|
return 2;
|
|
53856
54177
|
}
|
|
53857
|
-
const queryFn = (await import("./chunks/query-
|
|
54178
|
+
const queryFn = (await import("./chunks/query-HXMR364K.js")).default;
|
|
53858
54179
|
return queryFn(client, telemetry2);
|
|
53859
54180
|
}
|
|
53860
54181
|
}
|
|
@@ -58303,7 +58624,7 @@ async function main24(client) {
|
|
|
58303
58624
|
|
|
58304
58625
|
// src/commands/promote/index.ts
|
|
58305
58626
|
var import_ms27 = __toESM(require_ms(), 1);
|
|
58306
|
-
var
|
|
58627
|
+
var import_error_utils17 = __toESM(require_dist(), 1);
|
|
58307
58628
|
|
|
58308
58629
|
// src/commands/promote/request-promote.ts
|
|
58309
58630
|
var import_chalk212 = __toESM(require_source(), 1);
|
|
@@ -58748,7 +59069,7 @@ var promote_default = async (client) => {
|
|
|
58748
59069
|
yes
|
|
58749
59070
|
});
|
|
58750
59071
|
} catch (err) {
|
|
58751
|
-
if ((0,
|
|
59072
|
+
if ((0, import_error_utils17.isErrnoException)(err)) {
|
|
58752
59073
|
if (err.code === "ERR_CANCELED") {
|
|
58753
59074
|
return 0;
|
|
58754
59075
|
}
|
|
@@ -58825,7 +59146,7 @@ async function getDeploymentByIdOrURL({
|
|
|
58825
59146
|
}
|
|
58826
59147
|
|
|
58827
59148
|
// src/commands/redeploy/index.ts
|
|
58828
|
-
var
|
|
59149
|
+
var import_error_utils18 = __toESM(require_dist(), 1);
|
|
58829
59150
|
|
|
58830
59151
|
// src/util/telemetry/commands/redeploy/index.ts
|
|
58831
59152
|
var RedeployTelemetryClient = class extends TelemetryClient {
|
|
@@ -59042,7 +59363,7 @@ async function redeploy(client) {
|
|
|
59042
59363
|
);
|
|
59043
59364
|
} catch (err) {
|
|
59044
59365
|
output_manager_default.prettyError(err);
|
|
59045
|
-
if ((0,
|
|
59366
|
+
if ((0, import_error_utils18.isErrnoException)(err) && err.code === "ERR_INVALID_TEAM") {
|
|
59046
59367
|
output_manager_default.error(
|
|
59047
59368
|
`Use ${import_chalk214.default.bold("vc switch")} to change your current team`
|
|
59048
59369
|
);
|
|
@@ -59747,7 +60068,7 @@ import { readFileSync as readFileSync4 } from "fs";
|
|
|
59747
60068
|
import { basename as basename3 } from "path";
|
|
59748
60069
|
|
|
59749
60070
|
// src/commands/redirects/validate-redirects.ts
|
|
59750
|
-
import { statSync as
|
|
60071
|
+
import { statSync as statSync3 } from "fs";
|
|
59751
60072
|
var MAX_FILE_SIZE = 50 * 1024 * 1024;
|
|
59752
60073
|
var ALLOWED_EXTENSIONS = [".csv", ".json"];
|
|
59753
60074
|
var MAX_REDIRECTS = 1e6;
|
|
@@ -59757,7 +60078,7 @@ function validateUploadFile(filePath, options = {}) {
|
|
|
59757
60078
|
const maxSize = options.maxFileSize ?? MAX_FILE_SIZE;
|
|
59758
60079
|
const allowedExts = options.allowedExtensions ?? ALLOWED_EXTENSIONS;
|
|
59759
60080
|
try {
|
|
59760
|
-
const stats =
|
|
60081
|
+
const stats = statSync3(filePath);
|
|
59761
60082
|
if (!stats.isFile()) {
|
|
59762
60083
|
return { valid: false, error: `Path "${filePath}" is not a file` };
|
|
59763
60084
|
}
|
|
@@ -61360,7 +61681,7 @@ function deploymentsAndProjects(deployments, projects2, conjunction = "and") {
|
|
|
61360
61681
|
}
|
|
61361
61682
|
|
|
61362
61683
|
// src/commands/rollback/index.ts
|
|
61363
|
-
var
|
|
61684
|
+
var import_error_utils19 = __toESM(require_dist(), 1);
|
|
61364
61685
|
var import_ms32 = __toESM(require_ms(), 1);
|
|
61365
61686
|
|
|
61366
61687
|
// src/commands/rollback/request-rollback.ts
|
|
@@ -61641,7 +61962,7 @@ var rollback_default = async (client) => {
|
|
|
61641
61962
|
timeout
|
|
61642
61963
|
});
|
|
61643
61964
|
} catch (err) {
|
|
61644
|
-
if ((0,
|
|
61965
|
+
if ((0, import_error_utils19.isErrnoException)(err)) {
|
|
61645
61966
|
if (err.code === "ERR_CANCELED") {
|
|
61646
61967
|
return 0;
|
|
61647
61968
|
}
|
|
@@ -64556,7 +64877,7 @@ async function main26(client) {
|
|
|
64556
64877
|
return 2;
|
|
64557
64878
|
}
|
|
64558
64879
|
telemetry2.trackCliSubcommandEdit(subcommandOriginal);
|
|
64559
|
-
return (await import("./chunks/edit-
|
|
64880
|
+
return (await import("./chunks/edit-RIY7SWIR.js")).default(client, args);
|
|
64560
64881
|
case "delete":
|
|
64561
64882
|
if (needHelp) {
|
|
64562
64883
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64564,7 +64885,7 @@ async function main26(client) {
|
|
|
64564
64885
|
return 2;
|
|
64565
64886
|
}
|
|
64566
64887
|
telemetry2.trackCliSubcommandDelete(subcommandOriginal);
|
|
64567
|
-
return (await import("./chunks/delete-
|
|
64888
|
+
return (await import("./chunks/delete-RZ2SVQK6.js")).default(client, args);
|
|
64568
64889
|
case "enable":
|
|
64569
64890
|
if (needHelp) {
|
|
64570
64891
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64572,7 +64893,7 @@ async function main26(client) {
|
|
|
64572
64893
|
return 2;
|
|
64573
64894
|
}
|
|
64574
64895
|
telemetry2.trackCliSubcommandEnable(subcommandOriginal);
|
|
64575
|
-
return (await import("./chunks/enable-
|
|
64896
|
+
return (await import("./chunks/enable-JWPKENHY.js")).default(client, args);
|
|
64576
64897
|
case "disable":
|
|
64577
64898
|
if (needHelp) {
|
|
64578
64899
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64580,7 +64901,7 @@ async function main26(client) {
|
|
|
64580
64901
|
return 2;
|
|
64581
64902
|
}
|
|
64582
64903
|
telemetry2.trackCliSubcommandDisable(subcommandOriginal);
|
|
64583
|
-
return (await import("./chunks/disable-
|
|
64904
|
+
return (await import("./chunks/disable-DZ7DCWEI.js")).default(client, args);
|
|
64584
64905
|
case "reorder":
|
|
64585
64906
|
if (needHelp) {
|
|
64586
64907
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64588,7 +64909,7 @@ async function main26(client) {
|
|
|
64588
64909
|
return 2;
|
|
64589
64910
|
}
|
|
64590
64911
|
telemetry2.trackCliSubcommandReorder(subcommandOriginal);
|
|
64591
|
-
return (await import("./chunks/reorder-
|
|
64912
|
+
return (await import("./chunks/reorder-VE2PRU24.js")).default(client, args);
|
|
64592
64913
|
case "export":
|
|
64593
64914
|
if (needHelp) {
|
|
64594
64915
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64596,7 +64917,7 @@ async function main26(client) {
|
|
|
64596
64917
|
return 2;
|
|
64597
64918
|
}
|
|
64598
64919
|
telemetry2.trackCliSubcommandExport(subcommandOriginal);
|
|
64599
|
-
return (await import("./chunks/export-
|
|
64920
|
+
return (await import("./chunks/export-6IDA3TWA.js")).default(client, args);
|
|
64600
64921
|
case "publish":
|
|
64601
64922
|
if (needHelp) {
|
|
64602
64923
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64604,7 +64925,7 @@ async function main26(client) {
|
|
|
64604
64925
|
return 2;
|
|
64605
64926
|
}
|
|
64606
64927
|
telemetry2.trackCliSubcommandPublish(subcommandOriginal);
|
|
64607
|
-
return (await import("./chunks/publish-
|
|
64928
|
+
return (await import("./chunks/publish-TVZGIZRP.js")).default(client, args);
|
|
64608
64929
|
case "restore":
|
|
64609
64930
|
if (needHelp) {
|
|
64610
64931
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64612,7 +64933,7 @@ async function main26(client) {
|
|
|
64612
64933
|
return 2;
|
|
64613
64934
|
}
|
|
64614
64935
|
telemetry2.trackCliSubcommandRestore(subcommandOriginal);
|
|
64615
|
-
return (await import("./chunks/restore-
|
|
64936
|
+
return (await import("./chunks/restore-ZY3IJ4S3.js")).default(client, args);
|
|
64616
64937
|
case "discard-staging":
|
|
64617
64938
|
if (needHelp) {
|
|
64618
64939
|
telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
|
|
@@ -64620,7 +64941,7 @@ async function main26(client) {
|
|
|
64620
64941
|
return 2;
|
|
64621
64942
|
}
|
|
64622
64943
|
telemetry2.trackCliSubcommandDiscardStaging(subcommandOriginal);
|
|
64623
|
-
return (await import("./chunks/discard-
|
|
64944
|
+
return (await import("./chunks/discard-VZ5QNL7B.js")).default(client, args);
|
|
64624
64945
|
default:
|
|
64625
64946
|
output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG45));
|
|
64626
64947
|
output_manager_default.print(help(routesCommand, { columns: client.stderr.columns }));
|
|
@@ -64690,8 +65011,398 @@ async function sandbox(client) {
|
|
|
64690
65011
|
}
|
|
64691
65012
|
}
|
|
64692
65013
|
|
|
64693
|
-
// src/commands/
|
|
65014
|
+
// src/util/telemetry/commands/security/index.ts
|
|
65015
|
+
var SecurityTelemetryClient = class extends TelemetryClient {
|
|
65016
|
+
trackCliSubcommandCheck(actual) {
|
|
65017
|
+
this.trackCliSubcommand({
|
|
65018
|
+
subcommand: "check",
|
|
65019
|
+
value: actual
|
|
65020
|
+
});
|
|
65021
|
+
}
|
|
65022
|
+
};
|
|
65023
|
+
|
|
65024
|
+
// src/commands/security/check.ts
|
|
64694
65025
|
var import_chalk229 = __toESM(require_source(), 1);
|
|
65026
|
+
|
|
65027
|
+
// src/util/telemetry/commands/security/check.ts
|
|
65028
|
+
var SecurityCheckTelemetryClient = class extends TelemetryClient {
|
|
65029
|
+
trackCliArgumentCheck(checks2) {
|
|
65030
|
+
if (checks2.length > 0) {
|
|
65031
|
+
this.trackCliArgument({
|
|
65032
|
+
arg: "check",
|
|
65033
|
+
value: checks2.join(",")
|
|
65034
|
+
});
|
|
65035
|
+
}
|
|
65036
|
+
}
|
|
65037
|
+
trackCliFlagFindings(findings) {
|
|
65038
|
+
if (findings) {
|
|
65039
|
+
this.trackCliFlag("findings");
|
|
65040
|
+
}
|
|
65041
|
+
}
|
|
65042
|
+
trackCliOptionLimit(limit) {
|
|
65043
|
+
if (limit !== void 0) {
|
|
65044
|
+
this.trackCliOption({
|
|
65045
|
+
option: "limit",
|
|
65046
|
+
value: String(limit)
|
|
65047
|
+
});
|
|
65048
|
+
}
|
|
65049
|
+
}
|
|
65050
|
+
trackCliOptionFormat(format3) {
|
|
65051
|
+
if (format3) {
|
|
65052
|
+
this.trackCliOption({
|
|
65053
|
+
option: "format",
|
|
65054
|
+
value: format3
|
|
65055
|
+
});
|
|
65056
|
+
}
|
|
65057
|
+
}
|
|
65058
|
+
trackCliFlagJson(json) {
|
|
65059
|
+
if (json) {
|
|
65060
|
+
this.trackCliFlag("json");
|
|
65061
|
+
}
|
|
65062
|
+
}
|
|
65063
|
+
};
|
|
65064
|
+
|
|
65065
|
+
// src/commands/security/catalog.ts
|
|
65066
|
+
var SECURITY_CHECKS = [
|
|
65067
|
+
{
|
|
65068
|
+
slug: "members-no-mfa",
|
|
65069
|
+
description: "Team members without multi-factor authentication",
|
|
65070
|
+
risk: "high"
|
|
65071
|
+
},
|
|
65072
|
+
{
|
|
65073
|
+
slug: "members-too-many-owners",
|
|
65074
|
+
description: "Team owners to review",
|
|
65075
|
+
risk: "high"
|
|
65076
|
+
},
|
|
65077
|
+
{
|
|
65078
|
+
slug: "pats-no-expiration",
|
|
65079
|
+
description: "PATs that never expire",
|
|
65080
|
+
risk: "high"
|
|
65081
|
+
},
|
|
65082
|
+
{
|
|
65083
|
+
slug: "env-vars-creds-instead-of-oidc",
|
|
65084
|
+
description: "Long-lived credentials where OIDC is available",
|
|
65085
|
+
risk: "high"
|
|
65086
|
+
},
|
|
65087
|
+
{
|
|
65088
|
+
slug: "depl-no-git-fork-protection",
|
|
65089
|
+
description: "Projects without Git fork deploy prevention",
|
|
65090
|
+
risk: "high"
|
|
65091
|
+
},
|
|
65092
|
+
{
|
|
65093
|
+
slug: "proj-no-preview-depl-protection",
|
|
65094
|
+
description: "Projects without preview deployment protection",
|
|
65095
|
+
risk: "high"
|
|
65096
|
+
},
|
|
65097
|
+
{
|
|
65098
|
+
slug: "env-vars-non-sensitive",
|
|
65099
|
+
description: "Environment variables not marked Sensitive",
|
|
65100
|
+
risk: "medium"
|
|
65101
|
+
},
|
|
65102
|
+
{
|
|
65103
|
+
slug: "env-vars-non-sensitive-stale",
|
|
65104
|
+
description: "Environment variables older than 90 days",
|
|
65105
|
+
risk: "medium"
|
|
65106
|
+
},
|
|
65107
|
+
{
|
|
65108
|
+
slug: "env-vars-exposed-web-app-fwk",
|
|
65109
|
+
description: "Environment variables exposed via web application framework",
|
|
65110
|
+
risk: "medium"
|
|
65111
|
+
}
|
|
65112
|
+
];
|
|
65113
|
+
function isKnownCheck(slug) {
|
|
65114
|
+
return SECURITY_CHECKS.some((check3) => check3.slug === slug);
|
|
65115
|
+
}
|
|
65116
|
+
|
|
65117
|
+
// src/commands/security/check.ts
|
|
65118
|
+
async function check2(client, argv) {
|
|
65119
|
+
const telemetry2 = new SecurityCheckTelemetryClient({
|
|
65120
|
+
opts: {
|
|
65121
|
+
store: client.telemetryEventStore
|
|
65122
|
+
}
|
|
65123
|
+
});
|
|
65124
|
+
let parsedArgs;
|
|
65125
|
+
const flagsSpecification = getFlagsSpecification(checkSubcommand2.options);
|
|
65126
|
+
try {
|
|
65127
|
+
parsedArgs = parseArguments(argv, flagsSpecification);
|
|
65128
|
+
} catch (error) {
|
|
65129
|
+
printError(error);
|
|
65130
|
+
return 1;
|
|
65131
|
+
}
|
|
65132
|
+
const { args: checks2, flags: opts } = parsedArgs;
|
|
65133
|
+
const unknown = checks2.filter((slug) => !isKnownCheck(slug));
|
|
65134
|
+
if (unknown.length > 0) {
|
|
65135
|
+
const message = `Unknown check${unknown.length === 1 ? "" : "s"}: ${unknown.join(", ")}. Valid slugs: ${SECURITY_CHECKS.map((check3) => check3.slug).join(", ")}`;
|
|
65136
|
+
outputAgentError(client, {
|
|
65137
|
+
status: "error",
|
|
65138
|
+
reason: AGENT_REASON.INVALID_ARGUMENTS,
|
|
65139
|
+
message,
|
|
65140
|
+
next: [
|
|
65141
|
+
{
|
|
65142
|
+
command: buildCommandWithGlobalFlags(
|
|
65143
|
+
client.argv,
|
|
65144
|
+
"security check <slug>"
|
|
65145
|
+
),
|
|
65146
|
+
when: "Re-run with a valid check slug (replace placeholder)"
|
|
65147
|
+
},
|
|
65148
|
+
{
|
|
65149
|
+
command: buildCommandWithGlobalFlags(
|
|
65150
|
+
client.argv,
|
|
65151
|
+
"security check --help"
|
|
65152
|
+
),
|
|
65153
|
+
when: "See all flags and examples"
|
|
65154
|
+
}
|
|
65155
|
+
]
|
|
65156
|
+
});
|
|
65157
|
+
output_manager_default.error(
|
|
65158
|
+
`Unknown check${unknown.length === 1 ? "" : "s"}: ${unknown.join(", ")}. Valid slugs:
|
|
65159
|
+
${SECURITY_CHECKS.map((check3) => check3.slug).join("\n ")}`
|
|
65160
|
+
);
|
|
65161
|
+
return 1;
|
|
65162
|
+
}
|
|
65163
|
+
const limit = opts["--limit"];
|
|
65164
|
+
if (limit !== void 0 && (!Number.isInteger(limit) || limit < 1)) {
|
|
65165
|
+
outputAgentError(client, {
|
|
65166
|
+
status: "error",
|
|
65167
|
+
reason: AGENT_REASON.INVALID_ARGUMENTS,
|
|
65168
|
+
message: "`--limit` must be a positive integer.",
|
|
65169
|
+
next: [
|
|
65170
|
+
{
|
|
65171
|
+
command: buildCommandWithGlobalFlags(
|
|
65172
|
+
client.argv,
|
|
65173
|
+
"security check --limit <N>"
|
|
65174
|
+
),
|
|
65175
|
+
when: "Re-run with a positive integer (replace placeholder)"
|
|
65176
|
+
}
|
|
65177
|
+
]
|
|
65178
|
+
});
|
|
65179
|
+
output_manager_default.error("`--limit` must be a positive integer.");
|
|
65180
|
+
return 1;
|
|
65181
|
+
}
|
|
65182
|
+
const formatResult = validateJsonOutput(opts);
|
|
65183
|
+
if (!formatResult.valid) {
|
|
65184
|
+
output_manager_default.error(formatResult.error);
|
|
65185
|
+
return 1;
|
|
65186
|
+
}
|
|
65187
|
+
const asJson = formatResult.jsonOutput || client.nonInteractive;
|
|
65188
|
+
telemetry2.trackCliArgumentCheck(checks2);
|
|
65189
|
+
telemetry2.trackCliOptionFormat(opts["--format"]);
|
|
65190
|
+
telemetry2.trackCliFlagFindings(opts["--findings"]);
|
|
65191
|
+
telemetry2.trackCliOptionLimit(limit);
|
|
65192
|
+
telemetry2.trackCliOptionProject(opts["--project"]);
|
|
65193
|
+
telemetry2.trackCliFlagJson(opts["--json"]);
|
|
65194
|
+
const { team, contextName } = await getScope(client);
|
|
65195
|
+
if (!team) {
|
|
65196
|
+
outputAgentError(client, {
|
|
65197
|
+
status: "error",
|
|
65198
|
+
reason: AGENT_REASON.MISSING_SCOPE,
|
|
65199
|
+
message: "Security checks require a team scope. Run `vercel switch` to select a team.",
|
|
65200
|
+
next: [
|
|
65201
|
+
{
|
|
65202
|
+
command: buildCommandWithGlobalFlags(client.argv, "whoami"),
|
|
65203
|
+
when: "See current user and team"
|
|
65204
|
+
},
|
|
65205
|
+
{
|
|
65206
|
+
command: buildCommandWithGlobalFlags(client.argv, "teams switch"),
|
|
65207
|
+
when: "Switch to a team"
|
|
65208
|
+
}
|
|
65209
|
+
]
|
|
65210
|
+
});
|
|
65211
|
+
output_manager_default.error(
|
|
65212
|
+
`Security checks require a team scope. Run ${getCommandName("switch")} to select a team.`
|
|
65213
|
+
);
|
|
65214
|
+
return 1;
|
|
65215
|
+
}
|
|
65216
|
+
const params = new URLSearchParams({
|
|
65217
|
+
teamId: team.id,
|
|
65218
|
+
maxSamples: String(limit ?? 100)
|
|
65219
|
+
});
|
|
65220
|
+
for (const slug of checks2) {
|
|
65221
|
+
params.append("facets", slug);
|
|
65222
|
+
}
|
|
65223
|
+
const project = opts["--project"];
|
|
65224
|
+
if (project) {
|
|
65225
|
+
params.set("projectIdOrName", project);
|
|
65226
|
+
}
|
|
65227
|
+
const dashStamp = stamp_default();
|
|
65228
|
+
output_manager_default.spinner(
|
|
65229
|
+
checks2.length > 0 ? "Computing security checks\u2026" : "Computing security report\u2026"
|
|
65230
|
+
);
|
|
65231
|
+
let data;
|
|
65232
|
+
try {
|
|
65233
|
+
data = await client.fetch(
|
|
65234
|
+
`/dashboard/security-dashboard?${params}`
|
|
65235
|
+
);
|
|
65236
|
+
} catch (error) {
|
|
65237
|
+
output_manager_default.stopSpinner();
|
|
65238
|
+
const status4 = isAPIError(error) ? error.status : void 0;
|
|
65239
|
+
outputAgentError(client, {
|
|
65240
|
+
status: "error",
|
|
65241
|
+
reason: status4 === 401 || status4 === 403 ? "not_authorized" : status4 === 429 ? "rate_limited" : AGENT_REASON.API_ERROR,
|
|
65242
|
+
message: isAPIError(error) && error.serverMessage || "The security report request failed.",
|
|
65243
|
+
next: [
|
|
65244
|
+
{
|
|
65245
|
+
command: buildCommandWithGlobalFlags(client.argv, "whoami"),
|
|
65246
|
+
when: "Verify the authenticated user and team"
|
|
65247
|
+
}
|
|
65248
|
+
]
|
|
65249
|
+
});
|
|
65250
|
+
printError(error);
|
|
65251
|
+
return 1;
|
|
65252
|
+
}
|
|
65253
|
+
output_manager_default.stopSpinner();
|
|
65254
|
+
if (asJson) {
|
|
65255
|
+
client.stdout.write(`${JSON.stringify(data, null, 2)}
|
|
65256
|
+
`);
|
|
65257
|
+
return 0;
|
|
65258
|
+
}
|
|
65259
|
+
const rows = SECURITY_CHECKS.filter(
|
|
65260
|
+
(check3) => checks2.length === 0 || checks2.includes(check3.slug)
|
|
65261
|
+
).map((check3) => ({ check: check3, posture: data.report[check3.slug] }));
|
|
65262
|
+
const counts = { failing: 0, passing: 0, muted: 0, unavailable: 0 };
|
|
65263
|
+
for (const { posture } of rows) {
|
|
65264
|
+
counts[statusOf(posture)]++;
|
|
65265
|
+
}
|
|
65266
|
+
const summary = [
|
|
65267
|
+
`${rows.length} ${rows.length === 1 ? "check" : "checks"}`,
|
|
65268
|
+
counts.failing > 0 && import_chalk229.default.red(`${counts.failing} failing`),
|
|
65269
|
+
counts.muted > 0 && import_chalk229.default.yellow(`${counts.muted} muted`),
|
|
65270
|
+
counts.unavailable > 0 && import_chalk229.default.gray(`${counts.unavailable} unavailable`),
|
|
65271
|
+
counts.passing > 0 && import_chalk229.default.green(`${counts.passing} passing`)
|
|
65272
|
+
].filter(Boolean).join(" \xB7 ");
|
|
65273
|
+
output_manager_default.log(
|
|
65274
|
+
`${summary} under ${import_chalk229.default.bold(contextName)} ${import_chalk229.default.gray(dashStamp())}`
|
|
65275
|
+
);
|
|
65276
|
+
output_manager_default.print(formatSummaryTable(rows).replace(/^(.*)/gm, " $1"));
|
|
65277
|
+
output_manager_default.print("\n");
|
|
65278
|
+
const showFindings = Boolean(opts["--findings"]) || checks2.length > 0;
|
|
65279
|
+
if (showFindings) {
|
|
65280
|
+
for (const { check: check3, posture } of rows) {
|
|
65281
|
+
printFindings(check3.slug, posture, data.mutes);
|
|
65282
|
+
}
|
|
65283
|
+
} else if (counts.failing > 0) {
|
|
65284
|
+
output_manager_default.log("Run with --findings to list individual findings.");
|
|
65285
|
+
}
|
|
65286
|
+
return 0;
|
|
65287
|
+
}
|
|
65288
|
+
function statusOf(posture) {
|
|
65289
|
+
if (!posture)
|
|
65290
|
+
return "unavailable";
|
|
65291
|
+
if (posture.unavailableReason === "muted")
|
|
65292
|
+
return "muted";
|
|
65293
|
+
if (posture.unavailable)
|
|
65294
|
+
return "unavailable";
|
|
65295
|
+
return posture.violationsCount > 0 ? "failing" : "passing";
|
|
65296
|
+
}
|
|
65297
|
+
function statusLabel(posture) {
|
|
65298
|
+
const status4 = statusOf(posture);
|
|
65299
|
+
if (status4 === "unavailable" && posture?.unavailableReason) {
|
|
65300
|
+
return posture.unavailableReason === "insufficient-permissions" ? import_chalk229.default.gray("no access") : import_chalk229.default.gray("error");
|
|
65301
|
+
}
|
|
65302
|
+
return {
|
|
65303
|
+
failing: import_chalk229.default.red("failing"),
|
|
65304
|
+
passing: import_chalk229.default.green("passing"),
|
|
65305
|
+
muted: import_chalk229.default.yellow("muted"),
|
|
65306
|
+
unavailable: import_chalk229.default.gray("unavailable")
|
|
65307
|
+
}[status4];
|
|
65308
|
+
}
|
|
65309
|
+
function violationsLabel(posture) {
|
|
65310
|
+
if (!posture || posture.unavailable)
|
|
65311
|
+
return import_chalk229.default.gray("\u2013");
|
|
65312
|
+
return posture.truncated ? `${posture.violationsCount}+` : String(posture.violationsCount);
|
|
65313
|
+
}
|
|
65314
|
+
function formatSummaryTable(rows) {
|
|
65315
|
+
return formatTable(
|
|
65316
|
+
["Check", "Risk", "Status", "Violations", "Muted", "Description"],
|
|
65317
|
+
["l", "l", "l", "r", "r", "l"],
|
|
65318
|
+
[
|
|
65319
|
+
{
|
|
65320
|
+
rows: rows.map(({ check: check3, posture }) => [
|
|
65321
|
+
import_chalk229.default.bold(check3.slug),
|
|
65322
|
+
check3.risk === "high" ? import_chalk229.default.red("high") : import_chalk229.default.yellow("medium"),
|
|
65323
|
+
statusLabel(posture),
|
|
65324
|
+
violationsLabel(posture),
|
|
65325
|
+
posture?.mutedCount ? String(posture.mutedCount) : import_chalk229.default.gray("\u2013"),
|
|
65326
|
+
import_chalk229.default.gray(truncateEnd(check3.description, 60))
|
|
65327
|
+
])
|
|
65328
|
+
}
|
|
65329
|
+
]
|
|
65330
|
+
);
|
|
65331
|
+
}
|
|
65332
|
+
function flattenSamples(samples) {
|
|
65333
|
+
return samples.flatMap(
|
|
65334
|
+
(sample) => sample.samples ? sample.samples.map((sub) => `${sample.label} / ${sub.label}`) : [sample.label]
|
|
65335
|
+
);
|
|
65336
|
+
}
|
|
65337
|
+
function printFindings(slug, posture, mutes) {
|
|
65338
|
+
const findings = posture && !posture.unavailable ? flattenSamples(posture.samples) : [];
|
|
65339
|
+
const mutedFindings = (mutes ?? []).filter((mute) => mute.facet === slug && mute.entityId).map((mute) => {
|
|
65340
|
+
const label = mute.labelSnapshot?.label ?? mute.entityId ?? "";
|
|
65341
|
+
const group = mute.labelSnapshot?.groupLabel;
|
|
65342
|
+
return group ? `${group} / ${label}` : label;
|
|
65343
|
+
});
|
|
65344
|
+
if (findings.length === 0 && mutedFindings.length === 0) {
|
|
65345
|
+
return;
|
|
65346
|
+
}
|
|
65347
|
+
output_manager_default.print(`
|
|
65348
|
+
${import_chalk229.default.bold(slug)}
|
|
65349
|
+
`);
|
|
65350
|
+
for (const finding of findings) {
|
|
65351
|
+
output_manager_default.print(` ${finding}
|
|
65352
|
+
`);
|
|
65353
|
+
}
|
|
65354
|
+
for (const finding of mutedFindings.sort()) {
|
|
65355
|
+
output_manager_default.print(` ${import_chalk229.default.dim(`${finding} (muted)`)}
|
|
65356
|
+
`);
|
|
65357
|
+
}
|
|
65358
|
+
if (posture && posture.violationsCount > findings.length) {
|
|
65359
|
+
output_manager_default.print(
|
|
65360
|
+
` ${import_chalk229.default.gray(`Showing ${findings.length} of ${posture.violationsCount}${posture.truncated ? "+" : ""} findings (raise with --limit)`)}
|
|
65361
|
+
`
|
|
65362
|
+
);
|
|
65363
|
+
}
|
|
65364
|
+
}
|
|
65365
|
+
|
|
65366
|
+
// src/commands/security/index.ts
|
|
65367
|
+
var COMMAND_CONFIG46 = {
|
|
65368
|
+
check: ["check"]
|
|
65369
|
+
};
|
|
65370
|
+
async function security(client) {
|
|
65371
|
+
let parsedArgs;
|
|
65372
|
+
const flagsSpecification = getFlagsSpecification(securityCommand.options);
|
|
65373
|
+
try {
|
|
65374
|
+
parsedArgs = parseArguments(client.argv.slice(2), flagsSpecification, {
|
|
65375
|
+
permissive: true
|
|
65376
|
+
});
|
|
65377
|
+
} catch (error) {
|
|
65378
|
+
printError(error);
|
|
65379
|
+
return 1;
|
|
65380
|
+
}
|
|
65381
|
+
const telemetry2 = new SecurityTelemetryClient({
|
|
65382
|
+
opts: {
|
|
65383
|
+
store: client.telemetryEventStore
|
|
65384
|
+
}
|
|
65385
|
+
});
|
|
65386
|
+
const { args, subcommandOriginal } = getSubcommand5(
|
|
65387
|
+
parsedArgs.args.slice(1),
|
|
65388
|
+
COMMAND_CONFIG46
|
|
65389
|
+
);
|
|
65390
|
+
if (parsedArgs.flags["--help"]) {
|
|
65391
|
+
telemetry2.trackCliFlagHelp("security", subcommandOriginal);
|
|
65392
|
+
output_manager_default.print(
|
|
65393
|
+
help(checkSubcommand2, {
|
|
65394
|
+
parent: securityCommand,
|
|
65395
|
+
columns: client.stderr.columns
|
|
65396
|
+
})
|
|
65397
|
+
);
|
|
65398
|
+
return 2;
|
|
65399
|
+
}
|
|
65400
|
+
telemetry2.trackCliSubcommandCheck(subcommandOriginal);
|
|
65401
|
+
return check2(client, args);
|
|
65402
|
+
}
|
|
65403
|
+
|
|
65404
|
+
// src/commands/skills/index.ts
|
|
65405
|
+
var import_chalk230 = __toESM(require_source(), 1);
|
|
64695
65406
|
var import_frameworks3 = __toESM(require_frameworks(), 1);
|
|
64696
65407
|
var import_fs_detectors = __toESM(require_dist3(), 1);
|
|
64697
65408
|
import { access as access3, readFile as readFile9 } from "fs/promises";
|
|
@@ -64904,7 +65615,7 @@ async function autoDetect(client, cwd, asJson, yes) {
|
|
|
64904
65615
|
"Could not detect a framework or notable dependencies in this directory."
|
|
64905
65616
|
);
|
|
64906
65617
|
output_manager_default.log(
|
|
64907
|
-
`Try searching directly: ${
|
|
65618
|
+
`Try searching directly: ${import_chalk230.default.cyan("vercel skills <query>")}`
|
|
64908
65619
|
);
|
|
64909
65620
|
return 0;
|
|
64910
65621
|
}
|
|
@@ -64916,7 +65627,7 @@ async function autoDetect(client, cwd, asJson, yes) {
|
|
|
64916
65627
|
if (deps.length > 0)
|
|
64917
65628
|
detectedParts.push(deps.join(", "));
|
|
64918
65629
|
output_manager_default.stopSpinner();
|
|
64919
|
-
output_manager_default.log(`Detected: ${
|
|
65630
|
+
output_manager_default.log(`Detected: ${import_chalk230.default.bold(detectedParts.join(" + "))}`);
|
|
64920
65631
|
output_manager_default.spinner("Searching for relevant skills...");
|
|
64921
65632
|
const queries = [];
|
|
64922
65633
|
if (framework) {
|
|
@@ -64982,7 +65693,7 @@ async function autoDetect(client, cwd, asJson, yes) {
|
|
|
64982
65693
|
return exitCode2;
|
|
64983
65694
|
const installable = displayedResults.map((s, i) => ({ ...s, installed: installedChecks[i] })).filter((s) => !s.installed);
|
|
64984
65695
|
if (installable.length === 0) {
|
|
64985
|
-
output_manager_default.log(
|
|
65696
|
+
output_manager_default.log(import_chalk230.default.green("All recommended skills are already installed."));
|
|
64986
65697
|
return 0;
|
|
64987
65698
|
}
|
|
64988
65699
|
let toInstall;
|
|
@@ -64997,7 +65708,7 @@ async function autoDetect(client, cwd, asJson, yes) {
|
|
|
64997
65708
|
const selected = await client.input.checkbox({
|
|
64998
65709
|
message: "Select skills to install",
|
|
64999
65710
|
choices: installable.map((s) => ({
|
|
65000
|
-
name: `${s.skillId} ${
|
|
65711
|
+
name: `${s.skillId} ${import_chalk230.default.gray(`(${s.source})`)}`,
|
|
65001
65712
|
value: s,
|
|
65002
65713
|
checked: true
|
|
65003
65714
|
}))
|
|
@@ -65053,7 +65764,7 @@ async function displayResults(client, results, asJson, context, cwd) {
|
|
|
65053
65764
|
if (results.length === 0) {
|
|
65054
65765
|
output_manager_default.log("No skills found.");
|
|
65055
65766
|
output_manager_default.log(
|
|
65056
|
-
`Try searching directly: ${
|
|
65767
|
+
`Try searching directly: ${import_chalk230.default.cyan("vercel skills <query>")}`
|
|
65057
65768
|
);
|
|
65058
65769
|
return empty;
|
|
65059
65770
|
}
|
|
@@ -65073,12 +65784,12 @@ async function displayResults(client, results, asJson, context, cwd) {
|
|
|
65073
65784
|
return { exitCode: 0, results, installedChecks };
|
|
65074
65785
|
}
|
|
65075
65786
|
const tableData = [
|
|
65076
|
-
["Skill", "Installs", "Source", ""].map((h) =>
|
|
65787
|
+
["Skill", "Installs", "Source", ""].map((h) => import_chalk230.default.bold(import_chalk230.default.cyan(h))),
|
|
65077
65788
|
...results.map((s, i) => [
|
|
65078
65789
|
s.skillId,
|
|
65079
65790
|
formatInstalls(s.installs),
|
|
65080
|
-
|
|
65081
|
-
installedChecks[i] ?
|
|
65791
|
+
import_chalk230.default.gray(s.source),
|
|
65792
|
+
installedChecks[i] ? import_chalk230.default.green("installed") : ""
|
|
65082
65793
|
])
|
|
65083
65794
|
];
|
|
65084
65795
|
output_manager_default.log(`
|
|
@@ -65097,16 +65808,16 @@ function runCommand(cmd2, args) {
|
|
|
65097
65808
|
|
|
65098
65809
|
// src/commands/target/list.ts
|
|
65099
65810
|
var import_ms35 = __toESM(require_ms(), 1);
|
|
65100
|
-
var
|
|
65811
|
+
var import_chalk231 = __toESM(require_source(), 1);
|
|
65101
65812
|
function formatBranchMatcher(branchMatcher) {
|
|
65102
65813
|
if (branchMatcher?.type === "equals") {
|
|
65103
65814
|
return branchMatcher.pattern;
|
|
65104
65815
|
} else if (branchMatcher?.type === "startsWith") {
|
|
65105
|
-
return `${branchMatcher.pattern}${
|
|
65816
|
+
return `${branchMatcher.pattern}${import_chalk231.default.dim("*")}`;
|
|
65106
65817
|
} else if (branchMatcher?.type === "endsWith") {
|
|
65107
|
-
return `${
|
|
65818
|
+
return `${import_chalk231.default.dim("*")}${branchMatcher.pattern}`;
|
|
65108
65819
|
}
|
|
65109
|
-
return
|
|
65820
|
+
return import_chalk231.default.dim("No branch configuration");
|
|
65110
65821
|
}
|
|
65111
65822
|
var TYPE_MAP = {
|
|
65112
65823
|
production: "Production",
|
|
@@ -65115,8 +65826,8 @@ var TYPE_MAP = {
|
|
|
65115
65826
|
};
|
|
65116
65827
|
var BRANCH_TRACKING_MAP = {
|
|
65117
65828
|
production: (project) => project.link?.productionBranch ?? "main",
|
|
65118
|
-
preview: (_, env) => env.slug === "preview" ?
|
|
65119
|
-
development: () =>
|
|
65829
|
+
preview: (_, env) => env.slug === "preview" ? import_chalk231.default.dim("All unassigned git branches") : formatBranchMatcher(env.branchMatcher),
|
|
65830
|
+
development: () => import_chalk231.default.dim("Accessible via CLI")
|
|
65120
65831
|
};
|
|
65121
65832
|
async function list19(client, argv) {
|
|
65122
65833
|
const { cwd } = client;
|
|
@@ -65189,12 +65900,12 @@ async function list19(client, argv) {
|
|
|
65189
65900
|
`);
|
|
65190
65901
|
} else {
|
|
65191
65902
|
output_manager_default.log(
|
|
65192
|
-
`${result.length} Environment${result.length === 1 ? "" : "s"} found under ${projectSlugLink} ${
|
|
65903
|
+
`${result.length} Environment${result.length === 1 ? "" : "s"} found under ${projectSlugLink} ${import_chalk231.default.gray(`[${elapsed2}]`)}`
|
|
65193
65904
|
);
|
|
65194
65905
|
const tablePrint = table(
|
|
65195
65906
|
[
|
|
65196
65907
|
["Target Name", "Branch Tracking", "Type", "Updated"].map(
|
|
65197
|
-
(header) =>
|
|
65908
|
+
(header) => import_chalk231.default.bold(import_chalk231.default.cyan(header))
|
|
65198
65909
|
),
|
|
65199
65910
|
...result.flatMap((target) => {
|
|
65200
65911
|
return [
|
|
@@ -65202,7 +65913,7 @@ async function list19(client, argv) {
|
|
|
65202
65913
|
formatEnvironment(link2.org.slug, link2.project.name, target),
|
|
65203
65914
|
BRANCH_TRACKING_MAP[target.type](link2.project, target),
|
|
65204
65915
|
TYPE_MAP[target.type],
|
|
65205
|
-
|
|
65916
|
+
import_chalk231.default.gray(
|
|
65206
65917
|
target.updatedAt > 0 ? (0, import_ms35.default)(Date.now() - target.updatedAt) : "-"
|
|
65207
65918
|
)
|
|
65208
65919
|
]
|
|
@@ -65262,7 +65973,7 @@ var TargetTelemetryClient = class extends TelemetryClient {
|
|
|
65262
65973
|
};
|
|
65263
65974
|
|
|
65264
65975
|
// src/commands/target/index.ts
|
|
65265
|
-
var
|
|
65976
|
+
var COMMAND_CONFIG47 = {
|
|
65266
65977
|
ls: getCommandAliases(listSubcommand18)
|
|
65267
65978
|
};
|
|
65268
65979
|
async function main27(client) {
|
|
@@ -65307,14 +66018,14 @@ async function main27(client) {
|
|
|
65307
66018
|
telemetry2.trackCliSubcommandList(subcommand);
|
|
65308
66019
|
return await list19(client, args);
|
|
65309
66020
|
default:
|
|
65310
|
-
output_manager_default.error(getInvalidSubcommand(
|
|
66021
|
+
output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG47));
|
|
65311
66022
|
output_manager_default.print(help(targetCommand, { columns: client.stderr.columns }));
|
|
65312
66023
|
return 2;
|
|
65313
66024
|
}
|
|
65314
66025
|
}
|
|
65315
66026
|
|
|
65316
66027
|
// src/commands/teams/list.ts
|
|
65317
|
-
var
|
|
66028
|
+
var import_chalk232 = __toESM(require_source(), 1);
|
|
65318
66029
|
|
|
65319
66030
|
// src/util/telemetry/commands/teams/list.ts
|
|
65320
66031
|
var TeamsListTelemetryClient = class extends TelemetryClient {
|
|
@@ -65474,7 +66185,7 @@ async function list20(client, argv) {
|
|
|
65474
66185
|
client.stdout.write("\n");
|
|
65475
66186
|
const teamTable = table(
|
|
65476
66187
|
[
|
|
65477
|
-
["id", "Team name"].map((str) => (0,
|
|
66188
|
+
["id", "Team name"].map((str) => (0, import_chalk232.gray)(str)),
|
|
65478
66189
|
...teamList.map((team) => [team.value, team.name])
|
|
65479
66190
|
],
|
|
65480
66191
|
{ hsep: 5 }
|
|
@@ -65502,10 +66213,10 @@ async function list20(client, argv) {
|
|
|
65502
66213
|
}
|
|
65503
66214
|
|
|
65504
66215
|
// src/commands/teams/add.ts
|
|
65505
|
-
var
|
|
66216
|
+
var import_chalk234 = __toESM(require_source(), 1);
|
|
65506
66217
|
|
|
65507
66218
|
// src/commands/teams/invite.ts
|
|
65508
|
-
var
|
|
66219
|
+
var import_chalk233 = __toESM(require_source(), 1);
|
|
65509
66220
|
|
|
65510
66221
|
// src/util/input/regexes.ts
|
|
65511
66222
|
var email = /.+@.+\..+$/;
|
|
@@ -65523,7 +66234,7 @@ async function inviteUserToTeam(client, teamId, email2) {
|
|
|
65523
66234
|
}
|
|
65524
66235
|
|
|
65525
66236
|
// src/commands/teams/invite.ts
|
|
65526
|
-
var
|
|
66237
|
+
var import_error_utils20 = __toESM(require_dist(), 1);
|
|
65527
66238
|
|
|
65528
66239
|
// src/util/telemetry/commands/teams/invite.ts
|
|
65529
66240
|
var TeamsInviteTelemetryClient = class extends TelemetryClient {
|
|
@@ -65644,7 +66355,7 @@ Please select a team scope using ${getCommandName(
|
|
|
65644
66355
|
return 1;
|
|
65645
66356
|
}
|
|
65646
66357
|
output_manager_default.log(
|
|
65647
|
-
introMsg || `Inviting team members to ${
|
|
66358
|
+
introMsg || `Inviting team members to ${import_chalk233.default.bold(currentTeam.name)}`
|
|
65648
66359
|
);
|
|
65649
66360
|
telemetry2.trackCliArgumentEmail(emails);
|
|
65650
66361
|
if (emails.length > 0) {
|
|
@@ -65687,10 +66398,10 @@ Please select a team scope using ${getCommandName(
|
|
|
65687
66398
|
throw err;
|
|
65688
66399
|
}
|
|
65689
66400
|
output_manager_default.log(
|
|
65690
|
-
`${
|
|
66401
|
+
`${import_chalk233.default.cyan(chars_default.tick)} ${email3}${userInfo2 ? ` (${userInfo2})` : ""} ${elapsed2()}`
|
|
65691
66402
|
);
|
|
65692
66403
|
} else {
|
|
65693
|
-
output_manager_default.log(`${
|
|
66404
|
+
output_manager_default.log(`${import_chalk233.default.red(`\u2716 ${email3}`)} ${import_chalk233.default.gray("[invalid]")}`);
|
|
65694
66405
|
}
|
|
65695
66406
|
}
|
|
65696
66407
|
return 0;
|
|
@@ -65707,7 +66418,7 @@ Please select a team scope using ${getCommandName(
|
|
|
65707
66418
|
validate: validateEmail
|
|
65708
66419
|
});
|
|
65709
66420
|
} catch (err) {
|
|
65710
|
-
if (!(0,
|
|
66421
|
+
if (!(0, import_error_utils20.isError)(err) || err.message !== "USER_ABORT") {
|
|
65711
66422
|
throw err;
|
|
65712
66423
|
}
|
|
65713
66424
|
}
|
|
@@ -65723,24 +66434,24 @@ Please select a team scope using ${getCommandName(
|
|
|
65723
66434
|
);
|
|
65724
66435
|
email2 = `${email2}${username ? ` (${username})` : ""} ${elapsed2()}`;
|
|
65725
66436
|
emails.push(email2);
|
|
65726
|
-
output_manager_default.log(`${
|
|
66437
|
+
output_manager_default.log(`${import_chalk233.default.cyan(chars_default.tick)} ${sentEmailPrefix}${email2}`);
|
|
65727
66438
|
if (hasError) {
|
|
65728
66439
|
hasError = false;
|
|
65729
66440
|
process.stderr.write(eraseLines(emails.length + 2));
|
|
65730
66441
|
output_manager_default.log(
|
|
65731
|
-
introMsg || `Inviting team members to ${
|
|
66442
|
+
introMsg || `Inviting team members to ${import_chalk233.default.bold(currentTeam.name)}`
|
|
65732
66443
|
);
|
|
65733
66444
|
for (const email3 of emails) {
|
|
65734
|
-
output_manager_default.log(`${
|
|
66445
|
+
output_manager_default.log(`${import_chalk233.default.cyan(chars_default.tick)} ${inviteUserPrefix}${email3}`);
|
|
65735
66446
|
}
|
|
65736
66447
|
}
|
|
65737
66448
|
} catch (err) {
|
|
65738
66449
|
output_manager_default.stopSpinner();
|
|
65739
66450
|
process.stderr.write(eraseLines(emails.length + 2));
|
|
65740
|
-
output_manager_default.error((0,
|
|
66451
|
+
output_manager_default.error((0, import_error_utils20.errorToString)(err));
|
|
65741
66452
|
hasError = true;
|
|
65742
66453
|
for (const email3 of emails) {
|
|
65743
|
-
output_manager_default.log(`${
|
|
66454
|
+
output_manager_default.log(`${import_chalk233.default.cyan(chars_default.tick)} ${sentEmailPrefix}${email3}`);
|
|
65744
66455
|
}
|
|
65745
66456
|
}
|
|
65746
66457
|
}
|
|
@@ -65753,7 +66464,7 @@ Please select a team scope using ${getCommandName(
|
|
|
65753
66464
|
} else {
|
|
65754
66465
|
output_manager_default.success(`Invited ${n} teammate${n > 1 ? "s" : ""}`);
|
|
65755
66466
|
for (const email3 of emails) {
|
|
65756
|
-
output_manager_default.log(`${
|
|
66467
|
+
output_manager_default.log(`${import_chalk233.default.cyan(chars_default.tick)} ${inviteUserPrefix}${email3}`);
|
|
65757
66468
|
}
|
|
65758
66469
|
}
|
|
65759
66470
|
return 0;
|
|
@@ -65790,10 +66501,10 @@ async function patchTeam(client, teamId, payload) {
|
|
|
65790
66501
|
}
|
|
65791
66502
|
|
|
65792
66503
|
// src/commands/teams/add.ts
|
|
65793
|
-
var
|
|
66504
|
+
var import_error_utils21 = __toESM(require_dist(), 1);
|
|
65794
66505
|
var validateSlug = (value) => /^[a-z]+[a-z0-9_-]*$/.test(value);
|
|
65795
66506
|
var validateName = (value) => /^[ a-zA-Z0-9_-]+$/.test(value);
|
|
65796
|
-
var teamUrlPrefix = "Team URL".padEnd(14) +
|
|
66507
|
+
var teamUrlPrefix = "Team URL".padEnd(14) + import_chalk234.default.gray("vercel.com/");
|
|
65797
66508
|
var teamNamePrefix = "Team Name".padEnd(14);
|
|
65798
66509
|
var CREATE_TEAM_TIMEOUT_MS = 3e4;
|
|
65799
66510
|
var TIMEOUT_HINT = "The request took too long and was cancelled. The team URL may already be taken, or the server may be slow. Try a different slug (e.g. your-company-name) or try again later. Run with `--debug` to see where the request is getting stuck.";
|
|
@@ -65824,8 +66535,8 @@ function createTeamWithTimeout(client, slug) {
|
|
|
65824
66535
|
]);
|
|
65825
66536
|
}
|
|
65826
66537
|
function formatCreateTeamError(err, slug) {
|
|
65827
|
-
const isAbort = (0,
|
|
65828
|
-
const isTimeoutMsg = (0,
|
|
66538
|
+
const isAbort = (0, import_error_utils21.isError)(err) && err.name === "AbortError";
|
|
66539
|
+
const isTimeoutMsg = (0, import_error_utils21.isError)(err) && err.message === "Request timed out.";
|
|
65829
66540
|
if (isAbort || isTimeoutMsg) {
|
|
65830
66541
|
return TIMEOUT_HINT;
|
|
65831
66542
|
}
|
|
@@ -65844,16 +66555,16 @@ function formatCreateTeamError(err, slug) {
|
|
|
65844
66555
|
}
|
|
65845
66556
|
if (isAPIError(err) && err.status === 400) {
|
|
65846
66557
|
const msg = (err.serverMessage || err.message || "").toLowerCase();
|
|
65847
|
-
const slugHint = msg.includes("slug") || msg.includes("cannot be used") ? `That team URL (${
|
|
66558
|
+
const slugHint = msg.includes("slug") || msg.includes("cannot be used") ? `That team URL (${import_chalk234.default.cyan(`vercel.com/${slug}`)}) is not available. It may already be taken. ` : "";
|
|
65848
66559
|
const paymentHint = msg.includes("payment") ? "A payment method is required to create a team. " : "";
|
|
65849
66560
|
const prefix = slugHint || paymentHint;
|
|
65850
66561
|
return prefix ? `${prefix}${prefix.trim() ? "\n" : ""}${err.serverMessage || err.message}` : err.serverMessage || err.message;
|
|
65851
66562
|
}
|
|
65852
|
-
return (0,
|
|
66563
|
+
return (0, import_error_utils21.errorToString)(err);
|
|
65853
66564
|
}
|
|
65854
66565
|
function formatCreateTeamErrorPlain(err, slug) {
|
|
65855
|
-
const isAbort = (0,
|
|
65856
|
-
const isTimeoutMsg = (0,
|
|
66566
|
+
const isAbort = (0, import_error_utils21.isError)(err) && err.name === "AbortError";
|
|
66567
|
+
const isTimeoutMsg = (0, import_error_utils21.isError)(err) && err.message === "Request timed out.";
|
|
65857
66568
|
if (isAbort || isTimeoutMsg) {
|
|
65858
66569
|
return TIMEOUT_HINT;
|
|
65859
66570
|
}
|
|
@@ -65867,7 +66578,7 @@ function formatCreateTeamErrorPlain(err, slug) {
|
|
|
65867
66578
|
const prefix = slugHint || paymentHint;
|
|
65868
66579
|
return prefix ? `${prefix}${prefix.trim() ? "\n" : ""}${err.serverMessage || err.message}` : err.serverMessage || err.message;
|
|
65869
66580
|
}
|
|
65870
|
-
return (0,
|
|
66581
|
+
return (0, import_error_utils21.errorToString)(err);
|
|
65871
66582
|
}
|
|
65872
66583
|
var VERCEL_ACCOUNT_BILLING_URL = "https://vercel.com/account/billing";
|
|
65873
66584
|
function createTeamErrorReason(err) {
|
|
@@ -65880,7 +66591,7 @@ function createTeamErrorReason(err) {
|
|
|
65880
66591
|
}
|
|
65881
66592
|
if (isAPIError(err) && err.status === 429)
|
|
65882
66593
|
return "rate_limited";
|
|
65883
|
-
if ((0,
|
|
66594
|
+
if ((0, import_error_utils21.isError)(err) && (err.name === "AbortError" || err.message === "Request timed out.")) {
|
|
65884
66595
|
return "timeout";
|
|
65885
66596
|
}
|
|
65886
66597
|
return "team_creation_failed";
|
|
@@ -66027,19 +66738,19 @@ async function add12(client, argv = []) {
|
|
|
66027
66738
|
{
|
|
66028
66739
|
status: "error",
|
|
66029
66740
|
reason: "team_update_failed",
|
|
66030
|
-
message: (0,
|
|
66741
|
+
message: (0, import_error_utils21.errorToString)(err)
|
|
66031
66742
|
},
|
|
66032
66743
|
1
|
|
66033
66744
|
);
|
|
66034
66745
|
}
|
|
66035
|
-
output_manager_default.error((0,
|
|
66746
|
+
output_manager_default.error((0, import_error_utils21.errorToString)(err));
|
|
66036
66747
|
return 1;
|
|
66037
66748
|
}
|
|
66038
66749
|
output_manager_default.stopSpinner();
|
|
66039
66750
|
client.config.currentTeam = team2.id;
|
|
66040
66751
|
writeToConfigFile(client.config);
|
|
66041
66752
|
output_manager_default.success(
|
|
66042
|
-
`Team ${
|
|
66753
|
+
`Team ${import_chalk234.default.bold(team2.name)} (${import_chalk234.default.cyan(`vercel.com/${slug2}`)}) created.`
|
|
66043
66754
|
);
|
|
66044
66755
|
return 0;
|
|
66045
66756
|
}
|
|
@@ -66047,7 +66758,7 @@ async function add12(client, argv = []) {
|
|
|
66047
66758
|
let team;
|
|
66048
66759
|
let elapsed2;
|
|
66049
66760
|
output_manager_default.log(
|
|
66050
|
-
`Pick a team identifier for its URL (e.g.: ${
|
|
66761
|
+
`Pick a team identifier for its URL (e.g.: ${import_chalk234.default.cyan(
|
|
66051
66762
|
"`vercel.com/acme`"
|
|
66052
66763
|
)})`
|
|
66053
66764
|
);
|
|
@@ -66059,7 +66770,7 @@ async function add12(client, argv = []) {
|
|
|
66059
66770
|
default: slug
|
|
66060
66771
|
});
|
|
66061
66772
|
} catch (err) {
|
|
66062
|
-
if ((0,
|
|
66773
|
+
if ((0, import_error_utils21.isError)(err) && err.message === "USER_ABORT") {
|
|
66063
66774
|
output_manager_default.log("Canceled");
|
|
66064
66775
|
return 0;
|
|
66065
66776
|
}
|
|
@@ -66079,7 +66790,7 @@ async function add12(client, argv = []) {
|
|
|
66079
66790
|
output_manager_default.stopSpinner();
|
|
66080
66791
|
process.stdout.write(eraseLines(2));
|
|
66081
66792
|
output_manager_default.success(`Team created ${elapsed2()}`);
|
|
66082
|
-
output_manager_default.log(`${
|
|
66793
|
+
output_manager_default.log(`${import_chalk234.default.cyan(`${chars_default.tick} `) + teamUrlPrefix + slug}
|
|
66083
66794
|
`);
|
|
66084
66795
|
output_manager_default.log("Pick a display name for your team");
|
|
66085
66796
|
let name = nameFlag?.trim();
|
|
@@ -66090,7 +66801,7 @@ async function add12(client, argv = []) {
|
|
|
66090
66801
|
default: name
|
|
66091
66802
|
});
|
|
66092
66803
|
} catch (err) {
|
|
66093
|
-
if ((0,
|
|
66804
|
+
if ((0, import_error_utils21.isError)(err) && err.message === "USER_ABORT") {
|
|
66094
66805
|
output_manager_default.log("No name specified");
|
|
66095
66806
|
return 2;
|
|
66096
66807
|
}
|
|
@@ -66103,7 +66814,7 @@ async function add12(client, argv = []) {
|
|
|
66103
66814
|
process.stdout.write(eraseLines(2));
|
|
66104
66815
|
team = Object.assign(team, res);
|
|
66105
66816
|
output_manager_default.success(`Team name saved ${elapsed2()}`);
|
|
66106
|
-
output_manager_default.log(`${
|
|
66817
|
+
output_manager_default.log(`${import_chalk234.default.cyan(`${chars_default.tick} `) + teamNamePrefix + team.name}
|
|
66107
66818
|
`);
|
|
66108
66819
|
output_manager_default.spinner("Saving");
|
|
66109
66820
|
client.config.currentTeam = team.id;
|
|
@@ -66119,7 +66830,7 @@ async function add12(client, argv = []) {
|
|
|
66119
66830
|
}
|
|
66120
66831
|
|
|
66121
66832
|
// src/commands/teams/switch.ts
|
|
66122
|
-
var
|
|
66833
|
+
var import_chalk235 = __toESM(require_source(), 1);
|
|
66123
66834
|
|
|
66124
66835
|
// src/util/telemetry/commands/teams/switch.ts
|
|
66125
66836
|
var TeamsSwitchTelemetryClient = class extends TelemetryClient {
|
|
@@ -66237,7 +66948,7 @@ async function change(client, argv) {
|
|
|
66237
66948
|
let title6 = `${team.name} (${team.slug})`;
|
|
66238
66949
|
const selected = team.id === currentTeam?.id;
|
|
66239
66950
|
if (selected) {
|
|
66240
|
-
title6 += ` ${
|
|
66951
|
+
title6 += ` ${import_chalk235.default.bold("(current)")}`;
|
|
66241
66952
|
}
|
|
66242
66953
|
if (team.limited) {
|
|
66243
66954
|
title6 += ` ${emoji("locked")}`;
|
|
@@ -66249,7 +66960,7 @@ async function change(client, argv) {
|
|
|
66249
66960
|
selected
|
|
66250
66961
|
};
|
|
66251
66962
|
});
|
|
66252
|
-
let suffix = personalScopeSelected ? ` ${
|
|
66963
|
+
let suffix = personalScopeSelected ? ` ${import_chalk235.default.bold("(current)")}` : "";
|
|
66253
66964
|
if (user.limited) {
|
|
66254
66965
|
suffix += ` ${emoji("locked")}`;
|
|
66255
66966
|
}
|
|
@@ -66339,7 +67050,7 @@ async function change(client, argv) {
|
|
|
66339
67050
|
}
|
|
66340
67051
|
updateCurrentTeam(config);
|
|
66341
67052
|
output_manager_default.success(
|
|
66342
|
-
`Your account (${
|
|
67053
|
+
`Your account (${import_chalk235.default.bold(user.username)}) is now active!`
|
|
66343
67054
|
);
|
|
66344
67055
|
await warnIfStaleLinkExists(client, user.id);
|
|
66345
67056
|
return 0;
|
|
@@ -66363,7 +67074,7 @@ async function change(client, argv) {
|
|
|
66363
67074
|
);
|
|
66364
67075
|
}
|
|
66365
67076
|
output_manager_default.error(
|
|
66366
|
-
`You do not have permission to access scope ${
|
|
67077
|
+
`You do not have permission to access scope ${import_chalk235.default.bold(desiredSlug)}.`
|
|
66367
67078
|
);
|
|
66368
67079
|
return 1;
|
|
66369
67080
|
}
|
|
@@ -66381,7 +67092,7 @@ async function change(client, argv) {
|
|
|
66381
67092
|
}
|
|
66382
67093
|
updateCurrentTeam(config, newTeam);
|
|
66383
67094
|
output_manager_default.success(
|
|
66384
|
-
`The team ${
|
|
67095
|
+
`The team ${import_chalk235.default.bold(newTeam.name)} (${newTeam.slug}) is now active!`
|
|
66385
67096
|
);
|
|
66386
67097
|
await warnIfStaleLinkExists(client, newTeam.id);
|
|
66387
67098
|
return 0;
|
|
@@ -66571,7 +67282,7 @@ async function request(client, argv) {
|
|
|
66571
67282
|
}
|
|
66572
67283
|
|
|
66573
67284
|
// src/commands/teams/members.ts
|
|
66574
|
-
var
|
|
67285
|
+
var import_chalk236 = __toESM(require_source(), 1);
|
|
66575
67286
|
async function members2(client, argv) {
|
|
66576
67287
|
let parsedArgs;
|
|
66577
67288
|
const flagsSpecification = getFlagsSpecification(membersSubcommand2.options);
|
|
@@ -66634,7 +67345,7 @@ async function members2(client, argv) {
|
|
|
66634
67345
|
return 0;
|
|
66635
67346
|
}
|
|
66636
67347
|
const rows = [
|
|
66637
|
-
["uid", "Identity", "Role"].map((str) => (0,
|
|
67348
|
+
["uid", "Identity", "Role"].map((str) => (0, import_chalk236.gray)(str)),
|
|
66638
67349
|
...members3.map((member) => [
|
|
66639
67350
|
member.uid,
|
|
66640
67351
|
member.username || member.email || "",
|
|
@@ -66652,7 +67363,7 @@ async function members2(client, argv) {
|
|
|
66652
67363
|
}
|
|
66653
67364
|
|
|
66654
67365
|
// src/commands/teams/sso.ts
|
|
66655
|
-
var
|
|
67366
|
+
var import_chalk237 = __toESM(require_source(), 1);
|
|
66656
67367
|
async function sso(client, argv) {
|
|
66657
67368
|
let parsedArgs;
|
|
66658
67369
|
const flagsSpecification = getFlagsSpecification(ssoSubcommand.options);
|
|
@@ -66687,14 +67398,14 @@ async function sso(client, argv) {
|
|
|
66687
67398
|
`);
|
|
66688
67399
|
return 0;
|
|
66689
67400
|
}
|
|
66690
|
-
output_manager_default.log(`${
|
|
67401
|
+
output_manager_default.log(`${import_chalk237.default.bold("Team")} ${full.name} (${import_chalk237.default.cyan(full.slug)})`);
|
|
66691
67402
|
if (full.saml) {
|
|
66692
67403
|
output_manager_default.log(
|
|
66693
|
-
`${
|
|
67404
|
+
`${import_chalk237.default.cyan("SAML enforced:")} ${String(full.saml.enforced)}`
|
|
66694
67405
|
);
|
|
66695
67406
|
if (full.saml.connection?.state) {
|
|
66696
67407
|
output_manager_default.log(
|
|
66697
|
-
`${
|
|
67408
|
+
`${import_chalk237.default.cyan("Connection state:")} ${full.saml.connection.state}`
|
|
66698
67409
|
);
|
|
66699
67410
|
}
|
|
66700
67411
|
} else {
|
|
@@ -66773,7 +67484,7 @@ var TeamsTelemetryClient = class extends TelemetryClient {
|
|
|
66773
67484
|
};
|
|
66774
67485
|
|
|
66775
67486
|
// src/commands/teams/index.ts
|
|
66776
|
-
var
|
|
67487
|
+
var COMMAND_CONFIG48 = {
|
|
66777
67488
|
list: ["ls", "list"],
|
|
66778
67489
|
switch: ["switch", "change"],
|
|
66779
67490
|
add: ["create", "add"],
|
|
@@ -66814,7 +67525,7 @@ async function teams(client) {
|
|
|
66814
67525
|
}
|
|
66815
67526
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
66816
67527
|
parsedArgs.args.slice(1),
|
|
66817
|
-
|
|
67528
|
+
COMMAND_CONFIG48
|
|
66818
67529
|
);
|
|
66819
67530
|
const needHelp = parsedArgs.flags["--help"];
|
|
66820
67531
|
if (!subcommand && needHelp) {
|
|
@@ -66910,7 +67621,7 @@ async function teams(client) {
|
|
|
66910
67621
|
}
|
|
66911
67622
|
|
|
66912
67623
|
// src/commands/tokens/ls.ts
|
|
66913
|
-
var
|
|
67624
|
+
var import_chalk238 = __toESM(require_source(), 1);
|
|
66914
67625
|
async function ls8(client, argv) {
|
|
66915
67626
|
let parsedArgs;
|
|
66916
67627
|
const flagsSpecification = getFlagsSpecification(listSubcommand20.options);
|
|
@@ -66951,7 +67662,7 @@ async function ls8(client, argv) {
|
|
|
66951
67662
|
return 0;
|
|
66952
67663
|
}
|
|
66953
67664
|
const rows = [
|
|
66954
|
-
["id", "name", "type", "active"].map((h) => (0,
|
|
67665
|
+
["id", "name", "type", "active"].map((h) => (0, import_chalk238.gray)(h)),
|
|
66955
67666
|
...tokens.map((t) => [
|
|
66956
67667
|
t.id ?? "",
|
|
66957
67668
|
t.name ?? "",
|
|
@@ -67246,7 +67957,7 @@ var TokensTelemetryClient = class extends TelemetryClient {
|
|
|
67246
67957
|
};
|
|
67247
67958
|
|
|
67248
67959
|
// src/commands/tokens/index.ts
|
|
67249
|
-
var
|
|
67960
|
+
var COMMAND_CONFIG49 = {
|
|
67250
67961
|
add: ["add", "create"],
|
|
67251
67962
|
remove: ["rm", "remove", "delete"],
|
|
67252
67963
|
ls: ["ls", "list"]
|
|
@@ -67269,7 +67980,7 @@ async function main28(client) {
|
|
|
67269
67980
|
});
|
|
67270
67981
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
67271
67982
|
parsedArgs.args.slice(1),
|
|
67272
|
-
|
|
67983
|
+
COMMAND_CONFIG49
|
|
67273
67984
|
);
|
|
67274
67985
|
const needHelp = parsedArgs.flags["--help"];
|
|
67275
67986
|
if (!subcommand && needHelp) {
|
|
@@ -67309,16 +68020,16 @@ async function main28(client) {
|
|
|
67309
68020
|
}
|
|
67310
68021
|
|
|
67311
68022
|
// src/commands/telemetry/status.ts
|
|
67312
|
-
var
|
|
68023
|
+
var import_chalk239 = __toESM(require_source(), 1);
|
|
67313
68024
|
async function status2(client) {
|
|
67314
68025
|
const enabled = client.config.telemetry?.enabled !== false;
|
|
67315
|
-
const status4 = enabled ?
|
|
68026
|
+
const status4 = enabled ? import_chalk239.default.green("Enabled") : import_chalk239.default.red("Disabled");
|
|
67316
68027
|
output_manager_default.print("\n");
|
|
67317
|
-
output_manager_default.log(`${
|
|
68028
|
+
output_manager_default.log(`${import_chalk239.default.bold("Telemetry status")}: ${status4}
|
|
67318
68029
|
`);
|
|
67319
68030
|
const learnMoreMessage = `
|
|
67320
68031
|
|
|
67321
|
-
Learn more: ${
|
|
68032
|
+
Learn more: ${import_chalk239.default.cyan("https://vercel.com/docs/cli/about-telemetry")}`;
|
|
67322
68033
|
if (enabled) {
|
|
67323
68034
|
output_manager_default.log(`You have opted in to Vercel CLI telemetry${learnMoreMessage}`);
|
|
67324
68035
|
} else {
|
|
@@ -67412,8 +68123,8 @@ var TelemetryTelemetryClient = class extends TelemetryClient {
|
|
|
67412
68123
|
};
|
|
67413
68124
|
|
|
67414
68125
|
// src/commands/telemetry/index.ts
|
|
67415
|
-
var
|
|
67416
|
-
var
|
|
68126
|
+
var import_chalk240 = __toESM(require_source(), 1);
|
|
68127
|
+
var COMMAND_CONFIG50 = {
|
|
67417
68128
|
status: getCommandAliases(statusSubcommand4),
|
|
67418
68129
|
enable: getCommandAliases(enableSubcommand4),
|
|
67419
68130
|
disable: getCommandAliases(disableSubcommand4),
|
|
@@ -67435,7 +68146,7 @@ async function telemetry(client) {
|
|
|
67435
68146
|
}
|
|
67436
68147
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
67437
68148
|
parsedArguments.args.slice(1),
|
|
67438
|
-
|
|
68149
|
+
COMMAND_CONFIG50
|
|
67439
68150
|
);
|
|
67440
68151
|
const needHelp = parsedArguments.flags["--help"];
|
|
67441
68152
|
function printHelp(command) {
|
|
@@ -67480,7 +68191,7 @@ async function telemetry(client) {
|
|
|
67480
68191
|
default: {
|
|
67481
68192
|
const errorMessage2 = parsedArguments.args.length !== 2 ? "Invalid number of arguments" : "Invalid subcommand";
|
|
67482
68193
|
output_manager_default.print(
|
|
67483
|
-
`${
|
|
68194
|
+
`${import_chalk240.default.red("Error")}: ${errorMessage2}. See help instructions for usage:
|
|
67484
68195
|
`
|
|
67485
68196
|
);
|
|
67486
68197
|
output_manager_default.print(help(telemetryCommand, { columns: client.stderr.columns }));
|
|
@@ -67512,8 +68223,8 @@ var TracesTelemetryClient = class extends TelemetryClient {
|
|
|
67512
68223
|
});
|
|
67513
68224
|
}
|
|
67514
68225
|
}
|
|
67515
|
-
trackCliFlagOpen(
|
|
67516
|
-
if (
|
|
68226
|
+
trackCliFlagOpen(open17) {
|
|
68227
|
+
if (open17) {
|
|
67517
68228
|
this.trackCliFlag("open");
|
|
67518
68229
|
}
|
|
67519
68230
|
}
|
|
@@ -68166,7 +68877,7 @@ async function get3(client, telemetry2) {
|
|
|
68166
68877
|
}
|
|
68167
68878
|
|
|
68168
68879
|
// src/commands/traces/index.ts
|
|
68169
|
-
var
|
|
68880
|
+
var COMMAND_CONFIG51 = {
|
|
68170
68881
|
get: getCommandAliases(getSubcommand2),
|
|
68171
68882
|
create: getCommandAliases(createSubcommand5)
|
|
68172
68883
|
};
|
|
@@ -68192,7 +68903,7 @@ async function traces(client) {
|
|
|
68192
68903
|
}
|
|
68193
68904
|
const { subcommand, subcommandOriginal } = getSubcommand5(
|
|
68194
68905
|
parsedArgs.args.slice(1),
|
|
68195
|
-
|
|
68906
|
+
COMMAND_CONFIG51
|
|
68196
68907
|
);
|
|
68197
68908
|
if (parsedArgs.flags["--help"]) {
|
|
68198
68909
|
telemetry2.trackCliFlagHelp("traces", subcommandOriginal);
|
|
@@ -68347,7 +69058,7 @@ async function upgrade(client) {
|
|
|
68347
69058
|
}
|
|
68348
69059
|
|
|
68349
69060
|
// src/commands/version/index.ts
|
|
68350
|
-
var
|
|
69061
|
+
var import_chalk243 = __toESM(require_source(), 1);
|
|
68351
69062
|
|
|
68352
69063
|
// src/commands/version/status.ts
|
|
68353
69064
|
async function status3(client) {
|
|
@@ -68400,7 +69111,7 @@ async function status3(client) {
|
|
|
68400
69111
|
}
|
|
68401
69112
|
|
|
68402
69113
|
// src/commands/version/list.ts
|
|
68403
|
-
var
|
|
69114
|
+
var import_chalk241 = __toESM(require_source(), 1);
|
|
68404
69115
|
var DEFAULT_COUNT = 20;
|
|
68405
69116
|
async function list21() {
|
|
68406
69117
|
output_manager_default.spinner("Fetching available versions\u2026", 0);
|
|
@@ -68423,23 +69134,23 @@ async function list21() {
|
|
|
68423
69134
|
for (const version2 of shown) {
|
|
68424
69135
|
const current = version2 === pkg_default.version;
|
|
68425
69136
|
output_manager_default.print(
|
|
68426
|
-
current ? `${
|
|
69137
|
+
current ? `${import_chalk241.default.cyan(version2)} ${import_chalk241.default.dim("(current)")}
|
|
68427
69138
|
` : `${version2}
|
|
68428
69139
|
`
|
|
68429
69140
|
);
|
|
68430
69141
|
}
|
|
68431
69142
|
if (versions2.length > shown.length) {
|
|
68432
|
-
output_manager_default.print(
|
|
69143
|
+
output_manager_default.print(import_chalk241.default.dim(`\u2026 and ${versions2.length - shown.length} more
|
|
68433
69144
|
`));
|
|
68434
69145
|
}
|
|
68435
69146
|
return 0;
|
|
68436
69147
|
}
|
|
68437
69148
|
|
|
68438
69149
|
// src/commands/version/installed.ts
|
|
68439
|
-
var
|
|
69150
|
+
var import_chalk242 = __toESM(require_source(), 1);
|
|
68440
69151
|
async function installed() {
|
|
68441
69152
|
if (!await isCurlInstall()) {
|
|
68442
|
-
output_manager_default.print(`${pkg_default.version} ${
|
|
69153
|
+
output_manager_default.print(`${pkg_default.version} ${import_chalk242.default.dim("(current)")}
|
|
68443
69154
|
`);
|
|
68444
69155
|
output_manager_default.log(
|
|
68445
69156
|
`This CLI is managed by a package manager, so only the current version is available. The recommended way to manage CLI versions is the installer: ${CURL_INSTALL_COMMAND}`
|
|
@@ -68463,7 +69174,7 @@ async function installed() {
|
|
|
68463
69174
|
if (version2 === pinned)
|
|
68464
69175
|
labels.push("pinned");
|
|
68465
69176
|
output_manager_default.print(
|
|
68466
|
-
active ? `${
|
|
69177
|
+
active ? `${import_chalk242.default.cyan(version2)} ${import_chalk242.default.dim(`(${labels.join(", ")})`)}
|
|
68467
69178
|
` : `${version2}
|
|
68468
69179
|
`
|
|
68469
69180
|
);
|
|
@@ -68641,7 +69352,7 @@ var VersionTelemetryClient = class extends TelemetryClient {
|
|
|
68641
69352
|
};
|
|
68642
69353
|
|
|
68643
69354
|
// src/commands/version/index.ts
|
|
68644
|
-
var
|
|
69355
|
+
var COMMAND_CONFIG52 = {
|
|
68645
69356
|
list: getCommandAliases(listSubcommand22),
|
|
68646
69357
|
installed: getCommandAliases(installedSubcommand),
|
|
68647
69358
|
use: getCommandAliases(useSubcommand),
|
|
@@ -68664,7 +69375,7 @@ async function version(client) {
|
|
|
68664
69375
|
}
|
|
68665
69376
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
68666
69377
|
parsedArguments.args.slice(1),
|
|
68667
|
-
|
|
69378
|
+
COMMAND_CONFIG52
|
|
68668
69379
|
);
|
|
68669
69380
|
const needHelp = parsedArguments.flags["--help"];
|
|
68670
69381
|
function printHelp(command) {
|
|
@@ -68724,7 +69435,7 @@ async function version(client) {
|
|
|
68724
69435
|
default: {
|
|
68725
69436
|
if (parsedArguments.args.length > 1) {
|
|
68726
69437
|
output_manager_default.print(
|
|
68727
|
-
`${
|
|
69438
|
+
`${import_chalk243.default.red("Error")}: Invalid subcommand. See help instructions for usage:
|
|
68728
69439
|
`
|
|
68729
69440
|
);
|
|
68730
69441
|
output_manager_default.print(help(versionCommand, { columns: client.stderr.columns }));
|
|
@@ -68736,7 +69447,7 @@ async function version(client) {
|
|
|
68736
69447
|
}
|
|
68737
69448
|
|
|
68738
69449
|
// src/commands/usage/index.ts
|
|
68739
|
-
var
|
|
69450
|
+
var import_chalk247 = __toESM(require_source(), 1);
|
|
68740
69451
|
var import_jsonlines = __toESM(require_jsonlines(), 1);
|
|
68741
69452
|
|
|
68742
69453
|
// src/util/telemetry/commands/usage/index.ts
|
|
@@ -68781,7 +69492,7 @@ var UsageTelemetryClient = class extends TelemetryClient {
|
|
|
68781
69492
|
};
|
|
68782
69493
|
|
|
68783
69494
|
// src/commands/usage/index.ts
|
|
68784
|
-
var
|
|
69495
|
+
var import_error_utils22 = __toESM(require_dist(), 1);
|
|
68785
69496
|
|
|
68786
69497
|
// src/util/billing/period-utils.ts
|
|
68787
69498
|
import { DateTime } from "luxon";
|
|
@@ -68890,19 +69601,19 @@ function isValidGroupByDimension(value) {
|
|
|
68890
69601
|
}
|
|
68891
69602
|
|
|
68892
69603
|
// src/commands/usage/output-aggregated.ts
|
|
68893
|
-
var
|
|
69604
|
+
var import_chalk244 = __toESM(require_source(), 1);
|
|
68894
69605
|
function outputAggregated({ data, startTime }) {
|
|
68895
69606
|
const { print, log } = output_manager_default;
|
|
68896
69607
|
log(
|
|
68897
|
-
`Usage for ${
|
|
69608
|
+
`Usage for ${import_chalk244.default.bold(data.contextName)} ${elapsed(Date.now() - startTime)}`
|
|
68898
69609
|
);
|
|
68899
69610
|
log("");
|
|
68900
69611
|
const periodSuffix = data.usingDefaults ? " (current month)" : "";
|
|
68901
69612
|
log(
|
|
68902
|
-
`${
|
|
69613
|
+
`${import_chalk244.default.gray("Period:")} ${data.fromDisplay} to ${data.toDisplay}${periodSuffix}`
|
|
68903
69614
|
);
|
|
68904
|
-
log(`${
|
|
68905
|
-
log(`${
|
|
69615
|
+
log(`${import_chalk244.default.gray("Charges processed:")} ${data.chargeCount}`);
|
|
69616
|
+
log(`${import_chalk244.default.gray("Pricing unit:")} ${data.pricingUnit}`);
|
|
68906
69617
|
log("");
|
|
68907
69618
|
const sortedServices = [...data.services.entries()].sort(
|
|
68908
69619
|
(a, b) => b[1].billedCost - a[1].billedCost
|
|
@@ -68920,15 +69631,15 @@ function outputAggregated({ data, startTime }) {
|
|
|
68920
69631
|
formatCurrency(svc.billedCost)
|
|
68921
69632
|
]);
|
|
68922
69633
|
rows.push([
|
|
68923
|
-
|
|
68924
|
-
|
|
69634
|
+
import_chalk244.default.bold("Total"),
|
|
69635
|
+
import_chalk244.default.bold(
|
|
68925
69636
|
formatQuantity(data.grandTotals.pricingQuantity, data.pricingUnit)
|
|
68926
69637
|
),
|
|
68927
|
-
|
|
68928
|
-
|
|
69638
|
+
import_chalk244.default.bold(formatCurrency(data.grandTotals.effectiveCost)),
|
|
69639
|
+
import_chalk244.default.bold(formatCurrency(data.grandTotals.billedCost))
|
|
68929
69640
|
]);
|
|
68930
69641
|
const tablePrint = table(
|
|
68931
|
-
[headers.map((h) =>
|
|
69642
|
+
[headers.map((h) => import_chalk244.default.bold(import_chalk244.default.cyan(h))), ...rows],
|
|
68932
69643
|
{ hsep: 4, align: ["l", "r", "r", "r"] }
|
|
68933
69644
|
).replace(/^/gm, " ");
|
|
68934
69645
|
print(`
|
|
@@ -68936,12 +69647,12 @@ ${tablePrint}
|
|
|
68936
69647
|
|
|
68937
69648
|
`);
|
|
68938
69649
|
log(
|
|
68939
|
-
`${
|
|
69650
|
+
`${import_chalk244.default.gray("Amount due:")} ${import_chalk244.default.bold(formatCurrency(data.grandTotals.billedCost))}`
|
|
68940
69651
|
);
|
|
68941
69652
|
}
|
|
68942
69653
|
|
|
68943
69654
|
// src/commands/usage/output-breakdown.ts
|
|
68944
|
-
var
|
|
69655
|
+
var import_chalk245 = __toESM(require_source(), 1);
|
|
68945
69656
|
function getPeriodLabel(period) {
|
|
68946
69657
|
switch (period) {
|
|
68947
69658
|
case "daily":
|
|
@@ -68962,15 +69673,15 @@ function outputBreakdown({
|
|
|
68962
69673
|
const { print, log } = output_manager_default;
|
|
68963
69674
|
const periodLabel = getPeriodLabel(breakdownPeriod);
|
|
68964
69675
|
log(
|
|
68965
|
-
`${periodLabel} Usage for ${
|
|
69676
|
+
`${periodLabel} Usage for ${import_chalk245.default.bold(data.contextName)} ${elapsed(Date.now() - startTime)}`
|
|
68966
69677
|
);
|
|
68967
69678
|
log("");
|
|
68968
69679
|
const periodSuffix = data.usingDefaults ? " (current month)" : "";
|
|
68969
69680
|
log(
|
|
68970
|
-
`${
|
|
69681
|
+
`${import_chalk245.default.gray("Period:")} ${data.fromDisplay} to ${data.toDisplay}${periodSuffix}`
|
|
68971
69682
|
);
|
|
68972
|
-
log(`${
|
|
68973
|
-
log(`${
|
|
69683
|
+
log(`${import_chalk245.default.gray("Charges processed:")} ${data.chargeCount}`);
|
|
69684
|
+
log(`${import_chalk245.default.gray("Pricing unit:")} ${data.pricingUnit}`);
|
|
68974
69685
|
log("");
|
|
68975
69686
|
const sortedServices = [...data.services.entries()].sort(
|
|
68976
69687
|
(a, b) => b[1].billedCost - a[1].billedCost
|
|
@@ -68987,7 +69698,7 @@ function outputBreakdown({
|
|
|
68987
69698
|
(a, b) => b[1].billedCost - a[1].billedCost
|
|
68988
69699
|
);
|
|
68989
69700
|
log(
|
|
68990
|
-
`${
|
|
69701
|
+
`${import_chalk245.default.bold(import_chalk245.default.cyan(periodKey))} (Total: ${formatQuantity(periodData.totalPricingQuantity, data.pricingUnit)}, ${formatCurrency(periodData.totalBilledCost)})`
|
|
68991
69702
|
);
|
|
68992
69703
|
const headers = ["Service", quantityHeader, "Billed Cost"];
|
|
68993
69704
|
const rows = sortedPeriodServices.map(([name, svc]) => [
|
|
@@ -68996,7 +69707,7 @@ function outputBreakdown({
|
|
|
68996
69707
|
formatCurrency(svc.billedCost)
|
|
68997
69708
|
]);
|
|
68998
69709
|
const tablePrint = table(
|
|
68999
|
-
[headers.map((h) =>
|
|
69710
|
+
[headers.map((h) => import_chalk245.default.bold(import_chalk245.default.gray(h))), ...rows],
|
|
69000
69711
|
{ hsep: 4, align: ["l", "r", "r"] }
|
|
69001
69712
|
).replace(/^/gm, " ");
|
|
69002
69713
|
print(`${tablePrint}
|
|
@@ -69005,7 +69716,7 @@ function outputBreakdown({
|
|
|
69005
69716
|
}
|
|
69006
69717
|
|
|
69007
69718
|
// src/commands/usage/output-group-by.ts
|
|
69008
|
-
var
|
|
69719
|
+
var import_chalk246 = __toESM(require_source(), 1);
|
|
69009
69720
|
function getDimensionLabel(dimension) {
|
|
69010
69721
|
switch (dimension) {
|
|
69011
69722
|
case "project":
|
|
@@ -69024,15 +69735,15 @@ function outputGroupBy({
|
|
|
69024
69735
|
const { print, log } = output_manager_default;
|
|
69025
69736
|
const dimensionLabel = getDimensionLabel(groupByDimension);
|
|
69026
69737
|
log(
|
|
69027
|
-
`Usage by ${dimensionLabel} for ${
|
|
69738
|
+
`Usage by ${dimensionLabel} for ${import_chalk246.default.bold(data.contextName)} ${elapsed(Date.now() - startTime)}`
|
|
69028
69739
|
);
|
|
69029
69740
|
log("");
|
|
69030
69741
|
const periodSuffix = data.usingDefaults ? " (current month)" : "";
|
|
69031
69742
|
log(
|
|
69032
|
-
`${
|
|
69743
|
+
`${import_chalk246.default.gray("Period:")} ${data.fromDisplay} to ${data.toDisplay}${periodSuffix}`
|
|
69033
69744
|
);
|
|
69034
|
-
log(`${
|
|
69035
|
-
log(`${
|
|
69745
|
+
log(`${import_chalk246.default.gray("Charges processed:")} ${data.chargeCount}`);
|
|
69746
|
+
log(`${import_chalk246.default.gray("Pricing unit:")} ${data.pricingUnit}`);
|
|
69036
69747
|
log("");
|
|
69037
69748
|
const sortedGroups = [...data.groupByUsage.entries()].sort(
|
|
69038
69749
|
(a, b) => b[1].totalBilledCost - a[1].totalBilledCost
|
|
@@ -69044,7 +69755,7 @@ function outputGroupBy({
|
|
|
69044
69755
|
const quantityHeader = data.pricingUnit === "USD" ? "Usage (USD)" : data.pricingUnit;
|
|
69045
69756
|
for (const [groupName, groupData] of sortedGroups) {
|
|
69046
69757
|
log(
|
|
69047
|
-
`${
|
|
69758
|
+
`${import_chalk246.default.bold(import_chalk246.default.cyan(groupName))} (Total: ${formatQuantity(groupData.totalPricingQuantity, data.pricingUnit)}, ${formatCurrency(groupData.totalBilledCost)})`
|
|
69048
69759
|
);
|
|
69049
69760
|
const sortedServices = [...groupData.services.entries()].sort(
|
|
69050
69761
|
(a, b) => b[1].billedCost - a[1].billedCost
|
|
@@ -69056,7 +69767,7 @@ function outputGroupBy({
|
|
|
69056
69767
|
formatCurrency(svc.billedCost)
|
|
69057
69768
|
]);
|
|
69058
69769
|
const tablePrint = table(
|
|
69059
|
-
[headers.map((h) =>
|
|
69770
|
+
[headers.map((h) => import_chalk246.default.bold(import_chalk246.default.gray(h))), ...rows],
|
|
69060
69771
|
{ hsep: 4, align: ["l", "r", "r"] }
|
|
69061
69772
|
).replace(/^/gm, " ");
|
|
69062
69773
|
print(`${tablePrint}
|
|
@@ -69064,7 +69775,7 @@ function outputGroupBy({
|
|
|
69064
69775
|
}
|
|
69065
69776
|
log("");
|
|
69066
69777
|
log(
|
|
69067
|
-
`${
|
|
69778
|
+
`${import_chalk246.default.gray("Amount due:")} ${import_chalk246.default.bold(formatCurrency(data.grandTotals.billedCost))}`
|
|
69068
69779
|
);
|
|
69069
69780
|
}
|
|
69070
69781
|
|
|
@@ -69253,7 +69964,7 @@ async function usage(client) {
|
|
|
69253
69964
|
contextName = scope.contextName;
|
|
69254
69965
|
teamId = scope.team?.id;
|
|
69255
69966
|
} catch (err) {
|
|
69256
|
-
if ((0,
|
|
69967
|
+
if ((0, import_error_utils22.isErrnoException)(err) && (err.code === "NOT_AUTHORIZED" || err.code === "TEAM_DELETED")) {
|
|
69257
69968
|
error(err.message);
|
|
69258
69969
|
return 1;
|
|
69259
69970
|
}
|
|
@@ -69261,7 +69972,7 @@ async function usage(client) {
|
|
|
69261
69972
|
}
|
|
69262
69973
|
const start = Date.now();
|
|
69263
69974
|
if (!asJson) {
|
|
69264
|
-
spinner(`Fetching usage data for ${
|
|
69975
|
+
spinner(`Fetching usage data for ${import_chalk247.default.bold(contextName)}`);
|
|
69265
69976
|
}
|
|
69266
69977
|
debug(`Fetching charges from ${fromDate} to ${toDate}`);
|
|
69267
69978
|
const query = new URLSearchParams({
|
|
@@ -69605,7 +70316,7 @@ var VcrTelemetryClient = class extends TelemetryClient {
|
|
|
69605
70316
|
};
|
|
69606
70317
|
|
|
69607
70318
|
// src/commands/vcr/index.ts
|
|
69608
|
-
var
|
|
70319
|
+
var COMMAND_CONFIG53 = {
|
|
69609
70320
|
ls: getCommandAliases(listSubcommand21),
|
|
69610
70321
|
inspect: getCommandAliases(inspectSubcommand10),
|
|
69611
70322
|
add: getCommandAliases(addSubcommand12),
|
|
@@ -69636,7 +70347,7 @@ async function vcr(client) {
|
|
|
69636
70347
|
}
|
|
69637
70348
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
69638
70349
|
parsedArgs.args.slice(1),
|
|
69639
|
-
|
|
70350
|
+
COMMAND_CONFIG53
|
|
69640
70351
|
);
|
|
69641
70352
|
const needHelp = parsedArgs.flags["--help"];
|
|
69642
70353
|
function printHelp(command) {
|
|
@@ -69751,39 +70462,39 @@ async function vcr(client) {
|
|
|
69751
70462
|
switch (subcommand) {
|
|
69752
70463
|
case "ls":
|
|
69753
70464
|
telemetry2.trackCliSubcommandLs(subcommandOriginal);
|
|
69754
|
-
return (await import("./chunks/ls-
|
|
70465
|
+
return (await import("./chunks/ls-HCVYO3FF.js")).default(client, args, telemetry2);
|
|
69755
70466
|
case "inspect":
|
|
69756
70467
|
telemetry2.trackCliSubcommandInspect(subcommandOriginal);
|
|
69757
|
-
return (await import("./chunks/inspect-
|
|
70468
|
+
return (await import("./chunks/inspect-Z6VNNFFK.js")).default(client, args, telemetry2);
|
|
69758
70469
|
case "add":
|
|
69759
70470
|
telemetry2.trackCliSubcommandAdd(subcommandOriginal);
|
|
69760
|
-
return (await import("./chunks/add-
|
|
70471
|
+
return (await import("./chunks/add-LLXXGWJZ.js")).default(client, args, telemetry2);
|
|
69761
70472
|
case "config":
|
|
69762
70473
|
telemetry2.trackCliSubcommandConfig(subcommandOriginal);
|
|
69763
|
-
return (await import("./chunks/config-
|
|
70474
|
+
return (await import("./chunks/config-WYUTVPPF.js")).default(client, args, telemetry2);
|
|
69764
70475
|
case "rm":
|
|
69765
70476
|
telemetry2.trackCliSubcommandRm(subcommandOriginal);
|
|
69766
|
-
return (await import("./chunks/rm-
|
|
70477
|
+
return (await import("./chunks/rm-Y6OROWNK.js")).default(client, args, telemetry2);
|
|
69767
70478
|
case "login":
|
|
69768
70479
|
telemetry2.trackCliSubcommandLogin(subcommandOriginal);
|
|
69769
|
-
return (await import("./chunks/login-
|
|
70480
|
+
return (await import("./chunks/login-GTZWDE5T.js")).default(client, args, telemetry2);
|
|
69770
70481
|
case "build":
|
|
69771
70482
|
telemetry2.trackCliSubcommandBuild(subcommandOriginal);
|
|
69772
|
-
return (await import("./chunks/build-
|
|
70483
|
+
return (await import("./chunks/build-6DPTFQKH.js")).default(client, telemetry2);
|
|
69773
70484
|
case "push":
|
|
69774
70485
|
telemetry2.trackCliSubcommandPush(subcommandOriginal);
|
|
69775
|
-
return (await import("./chunks/push-
|
|
70486
|
+
return (await import("./chunks/push-EJZHZC4Z.js")).default(client, telemetry2);
|
|
69776
70487
|
case "tag":
|
|
69777
70488
|
telemetry2.trackCliSubcommandTag(subcommandOriginal);
|
|
69778
|
-
return (await import("./chunks/tags-
|
|
70489
|
+
return (await import("./chunks/tags-67LC7TV4.js")).default(client, args, telemetry2);
|
|
69779
70490
|
case "image":
|
|
69780
70491
|
telemetry2.trackCliSubcommandImage(subcommandOriginal);
|
|
69781
|
-
return (await import("./chunks/image-
|
|
70492
|
+
return (await import("./chunks/image-DM4ZNQOL.js")).default(client, args, telemetry2);
|
|
69782
70493
|
case "permissions":
|
|
69783
70494
|
telemetry2.trackCliSubcommandPermissions(subcommandOriginal);
|
|
69784
|
-
return (await import("./chunks/permissions-
|
|
70495
|
+
return (await import("./chunks/permissions-BJBEONBS.js")).default(client, args, telemetry2);
|
|
69785
70496
|
default:
|
|
69786
|
-
output_manager_default.error(getInvalidSubcommand(
|
|
70497
|
+
output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG53));
|
|
69787
70498
|
output_manager_default.print(help(vcrCommand, { columns: client.stderr.columns }));
|
|
69788
70499
|
return 2;
|
|
69789
70500
|
}
|
|
@@ -69791,7 +70502,7 @@ async function vcr(client) {
|
|
|
69791
70502
|
|
|
69792
70503
|
// src/commands/webhooks/ls.ts
|
|
69793
70504
|
var import_ms36 = __toESM(require_ms(), 1);
|
|
69794
|
-
var
|
|
70505
|
+
var import_chalk248 = __toESM(require_source(), 1);
|
|
69795
70506
|
var import_pluralize16 = __toESM(require_pluralize(), 1);
|
|
69796
70507
|
|
|
69797
70508
|
// src/util/webhooks/get-webhooks.ts
|
|
@@ -69855,7 +70566,7 @@ async function ls9(client, argv) {
|
|
|
69855
70566
|
const { contextName } = await getScope(client);
|
|
69856
70567
|
const lsStamp = stamp_default();
|
|
69857
70568
|
if (!client.nonInteractive) {
|
|
69858
|
-
output_manager_default.spinner(`Fetching Webhooks under ${
|
|
70569
|
+
output_manager_default.spinner(`Fetching Webhooks under ${import_chalk248.default.bold(contextName)}`);
|
|
69859
70570
|
}
|
|
69860
70571
|
const { webhooks } = await getWebhooks(client);
|
|
69861
70572
|
if (asJson) {
|
|
@@ -69883,9 +70594,9 @@ async function ls9(client, argv) {
|
|
|
69883
70594
|
`);
|
|
69884
70595
|
} else {
|
|
69885
70596
|
output_manager_default.log(
|
|
69886
|
-
`${(0, import_pluralize16.default)("Webhook", webhooks.length, true)} found under ${
|
|
70597
|
+
`${(0, import_pluralize16.default)("Webhook", webhooks.length, true)} found under ${import_chalk248.default.bold(
|
|
69887
70598
|
contextName
|
|
69888
|
-
)} ${
|
|
70599
|
+
)} ${import_chalk248.default.gray(lsStamp())}`
|
|
69889
70600
|
);
|
|
69890
70601
|
if (webhooks.length > 0) {
|
|
69891
70602
|
output_manager_default.print(
|
|
@@ -69901,7 +70612,7 @@ function formatWebhooksTable(webhooks) {
|
|
|
69901
70612
|
const rows = webhooks.map((webhook) => {
|
|
69902
70613
|
const age = webhook.createdAt ? (0, import_ms36.default)(current - webhook.createdAt) : "-";
|
|
69903
70614
|
const eventsDisplay = webhook.events.length > 2 ? `${webhook.events.slice(0, 2).join(", ")} +${webhook.events.length - 2}` : webhook.events.join(", ");
|
|
69904
|
-
return [webhook.id, webhook.url, eventsDisplay,
|
|
70615
|
+
return [webhook.id, webhook.url, eventsDisplay, import_chalk248.default.gray(age)];
|
|
69905
70616
|
});
|
|
69906
70617
|
return formatTable(
|
|
69907
70618
|
["ID", "URL", "Events", "Age"],
|
|
@@ -69911,7 +70622,7 @@ function formatWebhooksTable(webhooks) {
|
|
|
69911
70622
|
}
|
|
69912
70623
|
|
|
69913
70624
|
// src/commands/webhooks/get.ts
|
|
69914
|
-
var
|
|
70625
|
+
var import_chalk249 = __toESM(require_source(), 1);
|
|
69915
70626
|
|
|
69916
70627
|
// src/util/webhooks/get-webhook.ts
|
|
69917
70628
|
async function getWebhook(client, webhookId) {
|
|
@@ -69992,7 +70703,7 @@ async function get4(client, argv) {
|
|
|
69992
70703
|
const asJson = formatResult.jsonOutput || client.nonInteractive;
|
|
69993
70704
|
if (args.length !== 1) {
|
|
69994
70705
|
output_manager_default.error(
|
|
69995
|
-
`Invalid number of arguments. Usage: ${
|
|
70706
|
+
`Invalid number of arguments. Usage: ${import_chalk249.default.cyan(
|
|
69996
70707
|
`${getCommandName("webhooks get <id>")}`
|
|
69997
70708
|
)}`
|
|
69998
70709
|
);
|
|
@@ -70002,7 +70713,7 @@ async function get4(client, argv) {
|
|
|
70002
70713
|
const { contextName } = await getScope(client);
|
|
70003
70714
|
if (!client.nonInteractive) {
|
|
70004
70715
|
output_manager_default.spinner(
|
|
70005
|
-
`Fetching Webhook ${webhookId} under ${
|
|
70716
|
+
`Fetching Webhook ${webhookId} under ${import_chalk249.default.bold(contextName)}`
|
|
70006
70717
|
);
|
|
70007
70718
|
}
|
|
70008
70719
|
let webhook;
|
|
@@ -70046,33 +70757,33 @@ async function get4(client, argv) {
|
|
|
70046
70757
|
`);
|
|
70047
70758
|
} else {
|
|
70048
70759
|
output_manager_default.log(
|
|
70049
|
-
`Webhook ${webhookId} found under ${
|
|
70760
|
+
`Webhook ${webhookId} found under ${import_chalk249.default.bold(contextName)} ${import_chalk249.default.gray(
|
|
70050
70761
|
getStamp()
|
|
70051
70762
|
)}`
|
|
70052
70763
|
);
|
|
70053
70764
|
output_manager_default.print("\n");
|
|
70054
|
-
output_manager_default.print(
|
|
70055
|
-
output_manager_default.print(` ${
|
|
70765
|
+
output_manager_default.print(import_chalk249.default.bold(" General\n\n"));
|
|
70766
|
+
output_manager_default.print(` ${import_chalk249.default.cyan("ID")} ${webhook.id}
|
|
70056
70767
|
`);
|
|
70057
|
-
output_manager_default.print(` ${
|
|
70768
|
+
output_manager_default.print(` ${import_chalk249.default.cyan("URL")} ${webhook.url}
|
|
70058
70769
|
`);
|
|
70059
70770
|
output_manager_default.print(
|
|
70060
|
-
` ${
|
|
70771
|
+
` ${import_chalk249.default.cyan("Created At")} ${formatDate(webhook.createdAt)}
|
|
70061
70772
|
`
|
|
70062
70773
|
);
|
|
70063
70774
|
output_manager_default.print(
|
|
70064
|
-
` ${
|
|
70775
|
+
` ${import_chalk249.default.cyan("Updated At")} ${formatDate(webhook.updatedAt)}
|
|
70065
70776
|
`
|
|
70066
70777
|
);
|
|
70067
70778
|
output_manager_default.print("\n");
|
|
70068
|
-
output_manager_default.print(
|
|
70779
|
+
output_manager_default.print(import_chalk249.default.bold(" Events\n\n"));
|
|
70069
70780
|
for (const event of webhook.events) {
|
|
70070
70781
|
output_manager_default.print(` - ${event}
|
|
70071
70782
|
`);
|
|
70072
70783
|
}
|
|
70073
70784
|
if (webhook.projectIds && webhook.projectIds.length > 0) {
|
|
70074
70785
|
output_manager_default.print("\n");
|
|
70075
|
-
output_manager_default.print(
|
|
70786
|
+
output_manager_default.print(import_chalk249.default.bold(" Projects\n\n"));
|
|
70076
70787
|
if (webhook.projectsMetadata && webhook.projectsMetadata.length > 0) {
|
|
70077
70788
|
for (const project of webhook.projectsMetadata) {
|
|
70078
70789
|
output_manager_default.print(` - ${project.name} (${project.id})
|
|
@@ -70091,7 +70802,7 @@ async function get4(client, argv) {
|
|
|
70091
70802
|
}
|
|
70092
70803
|
|
|
70093
70804
|
// src/commands/webhooks/create.ts
|
|
70094
|
-
var
|
|
70805
|
+
var import_chalk250 = __toESM(require_source(), 1);
|
|
70095
70806
|
|
|
70096
70807
|
// src/util/webhooks/create-webhook.ts
|
|
70097
70808
|
async function createWebhook(client, payload) {
|
|
@@ -70311,7 +71022,7 @@ async function create5(client, argv) {
|
|
|
70311
71022
|
const { contextName } = await getScope(client);
|
|
70312
71023
|
const createStamp = stamp_default();
|
|
70313
71024
|
if (!client.nonInteractive) {
|
|
70314
|
-
output_manager_default.spinner(`Creating webhook under ${
|
|
71025
|
+
output_manager_default.spinner(`Creating webhook under ${import_chalk250.default.bold(contextName)}`);
|
|
70315
71026
|
}
|
|
70316
71027
|
try {
|
|
70317
71028
|
const webhook = await createWebhook(client, {
|
|
@@ -70344,27 +71055,27 @@ async function create5(client, argv) {
|
|
|
70344
71055
|
}
|
|
70345
71056
|
output_manager_default.stopSpinner();
|
|
70346
71057
|
output_manager_default.success(
|
|
70347
|
-
`Webhook created: ${
|
|
71058
|
+
`Webhook created: ${import_chalk250.default.bold(webhook.id)} ${createStamp()}`
|
|
70348
71059
|
);
|
|
70349
71060
|
output_manager_default.print("\n");
|
|
70350
|
-
output_manager_default.print(
|
|
70351
|
-
output_manager_default.print(` ${
|
|
71061
|
+
output_manager_default.print(import_chalk250.default.bold(" Webhook Details\n\n"));
|
|
71062
|
+
output_manager_default.print(` ${import_chalk250.default.cyan("ID".padEnd(10))}${webhook.id}
|
|
70352
71063
|
`);
|
|
70353
|
-
output_manager_default.print(` ${
|
|
71064
|
+
output_manager_default.print(` ${import_chalk250.default.cyan("URL".padEnd(10))}${webhook.url}
|
|
70354
71065
|
`);
|
|
70355
71066
|
output_manager_default.print(
|
|
70356
|
-
` ${
|
|
71067
|
+
` ${import_chalk250.default.cyan("Events".padEnd(10))}${webhook.events.join(", ")}
|
|
70357
71068
|
`
|
|
70358
71069
|
);
|
|
70359
71070
|
if (webhook.projectIds && webhook.projectIds.length > 0) {
|
|
70360
71071
|
output_manager_default.print(
|
|
70361
|
-
` ${
|
|
71072
|
+
` ${import_chalk250.default.cyan("Projects".padEnd(10))}${webhook.projectIds.join(", ")}
|
|
70362
71073
|
`
|
|
70363
71074
|
);
|
|
70364
71075
|
}
|
|
70365
71076
|
output_manager_default.print("\n");
|
|
70366
71077
|
output_manager_default.warn(
|
|
70367
|
-
`Save this secret - it will not be shown again: ${
|
|
71078
|
+
`Save this secret - it will not be shown again: ${import_chalk250.default.bold(webhook.secret)}`
|
|
70368
71079
|
);
|
|
70369
71080
|
output_manager_default.print("\n");
|
|
70370
71081
|
return 0;
|
|
@@ -70422,7 +71133,7 @@ function buildCreateCommandWithEventPlaceholder(fullArgv, url) {
|
|
|
70422
71133
|
}
|
|
70423
71134
|
|
|
70424
71135
|
// src/commands/webhooks/rm.ts
|
|
70425
|
-
var
|
|
71136
|
+
var import_chalk251 = __toESM(require_source(), 1);
|
|
70426
71137
|
|
|
70427
71138
|
// src/util/webhooks/delete-webhook.ts
|
|
70428
71139
|
async function deleteWebhook(client, webhookId) {
|
|
@@ -70517,7 +71228,7 @@ async function rm10(client, argv) {
|
|
|
70517
71228
|
const { contextName } = await getScope(client);
|
|
70518
71229
|
if (args.length !== 1) {
|
|
70519
71230
|
output_manager_default.error(
|
|
70520
|
-
`Invalid number of arguments. Usage: ${
|
|
71231
|
+
`Invalid number of arguments. Usage: ${import_chalk251.default.cyan(
|
|
70521
71232
|
`${getCommandName("webhooks rm <id>")}`
|
|
70522
71233
|
)}`
|
|
70523
71234
|
);
|
|
@@ -70568,7 +71279,7 @@ async function rm10(client, argv) {
|
|
|
70568
71279
|
}
|
|
70569
71280
|
const removeStamp = stamp_default();
|
|
70570
71281
|
if (!client.nonInteractive) {
|
|
70571
|
-
output_manager_default.spinner(`Removing webhook under ${
|
|
71282
|
+
output_manager_default.spinner(`Removing webhook under ${import_chalk251.default.bold(contextName)}`);
|
|
70572
71283
|
}
|
|
70573
71284
|
try {
|
|
70574
71285
|
await deleteWebhook(client, webhookId);
|
|
@@ -70588,7 +71299,7 @@ async function rm10(client, argv) {
|
|
|
70588
71299
|
);
|
|
70589
71300
|
return 0;
|
|
70590
71301
|
}
|
|
70591
|
-
output_manager_default.success(`Webhook ${
|
|
71302
|
+
output_manager_default.success(`Webhook ${import_chalk251.default.bold(webhookId)} removed ${removeStamp()}`);
|
|
70592
71303
|
return 0;
|
|
70593
71304
|
} catch (err) {
|
|
70594
71305
|
output_manager_default.stopSpinner();
|
|
@@ -70648,7 +71359,7 @@ var WebhooksTelemetryClient = class extends TelemetryClient {
|
|
|
70648
71359
|
};
|
|
70649
71360
|
|
|
70650
71361
|
// src/commands/webhooks/index.ts
|
|
70651
|
-
var
|
|
71362
|
+
var COMMAND_CONFIG54 = {
|
|
70652
71363
|
create: ["create", "add"],
|
|
70653
71364
|
get: ["get", "inspect"],
|
|
70654
71365
|
ls: ["ls", "list"],
|
|
@@ -70672,7 +71383,7 @@ async function main29(client) {
|
|
|
70672
71383
|
});
|
|
70673
71384
|
const { subcommand, args, subcommandOriginal } = getSubcommand5(
|
|
70674
71385
|
parsedArgs.args.slice(1),
|
|
70675
|
-
|
|
71386
|
+
COMMAND_CONFIG54
|
|
70676
71387
|
);
|
|
70677
71388
|
const needHelp = parsedArgs.flags["--help"];
|
|
70678
71389
|
if (!subcommand && needHelp) {
|
|
@@ -70719,7 +71430,7 @@ async function main29(client) {
|
|
|
70719
71430
|
}
|
|
70720
71431
|
|
|
70721
71432
|
// src/commands/whoami/index.ts
|
|
70722
|
-
var
|
|
71433
|
+
var import_chalk252 = __toESM(require_source(), 1);
|
|
70723
71434
|
|
|
70724
71435
|
// src/util/telemetry/commands/whoami/index.ts
|
|
70725
71436
|
var WhoamiTelemetryClient = class extends TelemetryClient {
|
|
@@ -70752,6 +71463,18 @@ async function whoami(client) {
|
|
|
70752
71463
|
}
|
|
70753
71464
|
const asJson = formatResult.jsonOutput;
|
|
70754
71465
|
telemetry2.trackCliOptionFormat(parsedArgs.flags["--format"]);
|
|
71466
|
+
if (!client.authConfig.token) {
|
|
71467
|
+
if (asJson) {
|
|
71468
|
+
client.stdout.write(`${JSON.stringify({ loggedIn: false }, null, 2)}
|
|
71469
|
+
`);
|
|
71470
|
+
} else {
|
|
71471
|
+
output_manager_default.log("Logged out.");
|
|
71472
|
+
output_manager_default.log(
|
|
71473
|
+
`Run ${getCommandName("deploy")} to deploy without an account and claim it later. Alternatively you can login with ${getCommandName("login")}.`
|
|
71474
|
+
);
|
|
71475
|
+
}
|
|
71476
|
+
return 1;
|
|
71477
|
+
}
|
|
70755
71478
|
const scope = await getScope(client, { resolveLocalScope: true });
|
|
70756
71479
|
const { user, team, app, globalTeam } = scope;
|
|
70757
71480
|
const hasLocalOverride = !scope.explicitScopeProvided && ((team?.id ?? null) !== (globalTeam?.id ?? null) || // `team` being null while a local project linked to personal scope
|
|
@@ -70776,21 +71499,21 @@ async function whoami(client) {
|
|
|
70776
71499
|
client.stdout.write(`${JSON.stringify(jsonOutput, null, 2)}
|
|
70777
71500
|
`);
|
|
70778
71501
|
} else if (client.stdout.isTTY) {
|
|
70779
|
-
output_manager_default.log(`Logged in as ${
|
|
71502
|
+
output_manager_default.log(`Logged in as ${import_chalk252.default.bold(formatUsername(scope))}`);
|
|
70780
71503
|
if (team) {
|
|
70781
71504
|
output_manager_default.log(
|
|
70782
|
-
`Active team: ${
|
|
71505
|
+
`Active team: ${import_chalk252.default.bold(team.slug)}${team.name && team.name !== team.slug ? ` (${team.name})` : ""}`
|
|
70783
71506
|
);
|
|
70784
71507
|
} else {
|
|
70785
|
-
output_manager_default.log(`Active team: ${
|
|
71508
|
+
output_manager_default.log(`Active team: ${import_chalk252.default.bold("Personal Account")}`);
|
|
70786
71509
|
}
|
|
70787
71510
|
if (hasLocalOverride) {
|
|
70788
71511
|
const globalLabel = globalTeam ? globalTeam.slug : "Personal Account";
|
|
70789
71512
|
const localLabel = team ? team.slug : "Personal Account";
|
|
70790
71513
|
output_manager_default.log(
|
|
70791
|
-
`${
|
|
71514
|
+
`${import_chalk252.default.yellow("Local override:")} scope is set to ${import_chalk252.default.bold(
|
|
70792
71515
|
localLabel
|
|
70793
|
-
)} by the linked project in this directory (globally selected: ${
|
|
71516
|
+
)} by the linked project in this directory (globally selected: ${import_chalk252.default.bold(
|
|
70794
71517
|
globalLabel
|
|
70795
71518
|
)}).`
|
|
70796
71519
|
);
|
|
@@ -70859,6 +71582,7 @@ export {
|
|
|
70859
71582
|
rollingRelease,
|
|
70860
71583
|
main26 as routes,
|
|
70861
71584
|
sandbox,
|
|
71585
|
+
security,
|
|
70862
71586
|
skills,
|
|
70863
71587
|
main27 as target,
|
|
70864
71588
|
teams,
|