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