vercel 42.1.1 → 42.3.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/index.js +527 -25
- package/package.json +12 -12
package/dist/index.js
CHANGED
@@ -33724,9 +33724,95 @@ var init_command26 = __esm({
|
|
33724
33724
|
}
|
33725
33725
|
});
|
33726
33726
|
|
33727
|
+
// src/commands/rolling-release/command.ts
|
33728
|
+
var rollingReleaseCommand;
|
33729
|
+
var init_command27 = __esm({
|
33730
|
+
"src/commands/rolling-release/command.ts"() {
|
33731
|
+
"use strict";
|
33732
|
+
rollingReleaseCommand = {
|
33733
|
+
name: "rolling-release",
|
33734
|
+
aliases: ["rr"],
|
33735
|
+
description: "Manage your project's rolling release.",
|
33736
|
+
arguments: [],
|
33737
|
+
options: [
|
33738
|
+
{
|
33739
|
+
name: "name",
|
33740
|
+
shorthand: "n",
|
33741
|
+
type: String,
|
33742
|
+
deprecated: true,
|
33743
|
+
description: "Provide a Vercel Project name"
|
33744
|
+
},
|
33745
|
+
{
|
33746
|
+
name: "action",
|
33747
|
+
shorthand: null,
|
33748
|
+
type: String,
|
33749
|
+
deprecated: false,
|
33750
|
+
description: "Action to perfom on a project's rolling release.",
|
33751
|
+
enum: ["configure", "start", "approve", "abort", "complete", "fetch"]
|
33752
|
+
},
|
33753
|
+
{
|
33754
|
+
name: "cfg",
|
33755
|
+
shorthand: null,
|
33756
|
+
type: String,
|
33757
|
+
deprecated: false,
|
33758
|
+
description: "The project's rolling release configuration"
|
33759
|
+
},
|
33760
|
+
{
|
33761
|
+
name: "deployId",
|
33762
|
+
shorthand: null,
|
33763
|
+
type: String,
|
33764
|
+
deprecated: false,
|
33765
|
+
description: "The deploymentId to target during a promote/rollback."
|
33766
|
+
},
|
33767
|
+
{
|
33768
|
+
name: "currentStageIndex",
|
33769
|
+
shorthand: null,
|
33770
|
+
type: String,
|
33771
|
+
deprecated: false,
|
33772
|
+
description: "The current stage of a rolling release to approve."
|
33773
|
+
}
|
33774
|
+
],
|
33775
|
+
examples: [
|
33776
|
+
{
|
33777
|
+
name: "Configure a new rolling release with an intial stage of 10% that lasts for 5 minutes before automatically advancing to 100%",
|
33778
|
+
value: `vercel rolling-release --action=configure --cfg='{"enabled":true, "advancementType":"automatic", "stages":[{"targetPercentage":10,"duration":5},{"targetPercentage":100}]}'`
|
33779
|
+
},
|
33780
|
+
{
|
33781
|
+
name: "Configure a new rolling release with an intial stage of 10% that requires approval, prior to advancing to 100%",
|
33782
|
+
value: `vercel rolling-release --action=configure --cfg='{"enabled":true, "advancementType":"manual-approval","stages":[{"targetPercentage":10},{"targetPercentage":100}]}'`
|
33783
|
+
},
|
33784
|
+
{
|
33785
|
+
name: "Configure a new rolling release with an intial stage of 10% that requires approval, prior to advancing to 50%, and then again to 100%",
|
33786
|
+
value: `vercel rolling-release --action=configure --cfg='{"enabled":true, "advancementType":"manual-approval", "stages":[{"targetPercentage":10},{"targetPercentage":50},{"targetPercentage":100}]}'`
|
33787
|
+
},
|
33788
|
+
{
|
33789
|
+
name: "Disable rolling releases",
|
33790
|
+
value: "vercel rolling-release --action=configure --cfg='disable'"
|
33791
|
+
},
|
33792
|
+
{
|
33793
|
+
name: "Start a rolling release",
|
33794
|
+
value: "vercel rolling-release --action=start --deployId=dpl_123"
|
33795
|
+
},
|
33796
|
+
{
|
33797
|
+
name: "Approve an active rolling release stage",
|
33798
|
+
value: "vercel rolling-release --action=approve --currentStageIndex=0 --deployId=dpl_123"
|
33799
|
+
},
|
33800
|
+
{
|
33801
|
+
name: "Abort an active rolling release.",
|
33802
|
+
value: "vercel rolling-release --action=abort --deployId=dpl_123"
|
33803
|
+
},
|
33804
|
+
{
|
33805
|
+
name: "Complete an active rolling release.",
|
33806
|
+
value: "vercel rolling-release --action=complete --deployId=dpl_123"
|
33807
|
+
}
|
33808
|
+
]
|
33809
|
+
};
|
33810
|
+
}
|
33811
|
+
});
|
33812
|
+
|
33727
33813
|
// src/commands/target/command.ts
|
33728
33814
|
var listSubcommand8, targetCommand;
|
33729
|
-
var
|
33815
|
+
var init_command28 = __esm({
|
33730
33816
|
"src/commands/target/command.ts"() {
|
33731
33817
|
"use strict";
|
33732
33818
|
init_pkg_name();
|
@@ -33757,7 +33843,7 @@ var init_command27 = __esm({
|
|
33757
33843
|
|
33758
33844
|
// src/commands/teams/command.ts
|
33759
33845
|
var addSubcommand7, listSubcommand9, switchSubcommand, inviteSubcommand, teamsCommand;
|
33760
|
-
var
|
33846
|
+
var init_command29 = __esm({
|
33761
33847
|
"src/commands/teams/command.ts"() {
|
33762
33848
|
"use strict";
|
33763
33849
|
init_pkg_name();
|
@@ -33848,7 +33934,7 @@ var init_command28 = __esm({
|
|
33848
33934
|
|
33849
33935
|
// src/commands/telemetry/command.ts
|
33850
33936
|
var statusSubcommand3, enableSubcommand, flushSubcommand, disableSubcommand, telemetryCommand;
|
33851
|
-
var
|
33937
|
+
var init_command30 = __esm({
|
33852
33938
|
"src/commands/telemetry/command.ts"() {
|
33853
33939
|
"use strict";
|
33854
33940
|
statusSubcommand3 = {
|
@@ -33903,7 +33989,7 @@ var init_command29 = __esm({
|
|
33903
33989
|
|
33904
33990
|
// src/commands/whoami/command.ts
|
33905
33991
|
var whoamiCommand;
|
33906
|
-
var
|
33992
|
+
var init_command31 = __esm({
|
33907
33993
|
"src/commands/whoami/command.ts"() {
|
33908
33994
|
"use strict";
|
33909
33995
|
init_pkg_name();
|
@@ -33961,6 +34047,7 @@ var init_commands = __esm({
|
|
33961
34047
|
init_command28();
|
33962
34048
|
init_command29();
|
33963
34049
|
init_command30();
|
34050
|
+
init_command31();
|
33964
34051
|
commandsStructs = [
|
33965
34052
|
aliasCommand,
|
33966
34053
|
bisectCommand,
|
@@ -33988,6 +34075,7 @@ var init_commands = __esm({
|
|
33988
34075
|
redeployCommand,
|
33989
34076
|
removeCommand,
|
33990
34077
|
rollbackCommand,
|
34078
|
+
rollingReleaseCommand,
|
33991
34079
|
targetCommand,
|
33992
34080
|
teamsCommand,
|
33993
34081
|
telemetryCommand,
|
@@ -46260,7 +46348,7 @@ var require_package = __commonJS2({
|
|
46260
46348
|
"../client/package.json"(exports2, module2) {
|
46261
46349
|
module2.exports = {
|
46262
46350
|
name: "@vercel/client",
|
46263
|
-
version: "15.3.
|
46351
|
+
version: "15.3.3",
|
46264
46352
|
main: "dist/index.js",
|
46265
46353
|
typings: "dist/index.d.ts",
|
46266
46354
|
homepage: "https://vercel.com",
|
@@ -46299,10 +46387,10 @@ var require_package = __commonJS2({
|
|
46299
46387
|
vitest: "2.0.1"
|
46300
46388
|
},
|
46301
46389
|
dependencies: {
|
46302
|
-
"@vercel/build-utils": "10.
|
46390
|
+
"@vercel/build-utils": "10.6.0",
|
46303
46391
|
"@vercel/error-utils": "2.0.3",
|
46304
46392
|
"@vercel/microfrontends": "1.2.2",
|
46305
|
-
"@vercel/routing-utils": "5.0.
|
46393
|
+
"@vercel/routing-utils": "5.0.5",
|
46306
46394
|
"async-retry": "1.2.3",
|
46307
46395
|
"async-sema": "3.0.0",
|
46308
46396
|
"fs-extra": "8.0.1",
|
@@ -109924,7 +110012,7 @@ var require_detect_file_system_api = __commonJS2({
|
|
109924
110012
|
});
|
109925
110013
|
module2.exports = __toCommonJS4(detect_file_system_api_exports);
|
109926
110014
|
var import_semver4 = __toESM4(require_semver2());
|
109927
|
-
var
|
110015
|
+
var import__80 = require_dist20();
|
109928
110016
|
async function detectFileSystemAPI2({
|
109929
110017
|
files,
|
109930
110018
|
projectSettings,
|
@@ -109990,7 +110078,7 @@ var require_detect_file_system_api = __commonJS2({
|
|
109990
110078
|
};
|
109991
110079
|
}
|
109992
110080
|
const invalidBuilder = builders.find(({ use }) => {
|
109993
|
-
const valid = (0,
|
110081
|
+
const valid = (0, import__80.isOfficialRuntime)("go", use) || (0, import__80.isOfficialRuntime)("python", use) || (0, import__80.isOfficialRuntime)("ruby", use) || (0, import__80.isOfficialRuntime)("node", use) || (0, import__80.isOfficialRuntime)("next", use) || (0, import__80.isOfficialRuntime)("static", use) || (0, import__80.isOfficialRuntime)("static-build", use);
|
109994
110082
|
return !valid;
|
109995
110083
|
});
|
109996
110084
|
if (invalidBuilder) {
|
@@ -110003,7 +110091,7 @@ var require_detect_file_system_api = __commonJS2({
|
|
110003
110091
|
for (const lang of ["go", "python", "ruby"]) {
|
110004
110092
|
for (const { use } of builders) {
|
110005
110093
|
const plugin = "vercel-plugin-" + lang;
|
110006
|
-
if ((0,
|
110094
|
+
if ((0, import__80.isOfficialRuntime)(lang, use) && !deps[plugin]) {
|
110007
110095
|
return {
|
110008
110096
|
metadata,
|
110009
110097
|
fsApiBuilder: null,
|
@@ -110060,7 +110148,7 @@ var require_detect_file_system_api = __commonJS2({
|
|
110060
110148
|
}
|
110061
110149
|
}
|
110062
110150
|
const frontendBuilder = builders.find(
|
110063
|
-
({ use }) => (0,
|
110151
|
+
({ use }) => (0, import__80.isOfficialRuntime)("next", use) || (0, import__80.isOfficialRuntime)("static", use) || (0, import__80.isOfficialRuntime)("static-build", use)
|
110064
110152
|
);
|
110065
110153
|
const config2 = frontendBuilder?.config || {};
|
110066
110154
|
const withTag = tag ? `@${tag}` : "";
|
@@ -116436,6 +116524,9 @@ var require_monorepo_managers = __commonJS2({
|
|
116436
116524
|
{
|
116437
116525
|
path: "turbo.json"
|
116438
116526
|
},
|
116527
|
+
{
|
116528
|
+
path: "turbo.jsonc"
|
116529
|
+
},
|
116439
116530
|
{
|
116440
116531
|
path: "package.json",
|
116441
116532
|
matchContent: '"turbo":\\s*{[^}]*.+[^}]*}'
|
@@ -139324,11 +139415,13 @@ async function writeLambda(repoRootPath, outputDir, lambda, path11, functionConf
|
|
139324
139415
|
} else {
|
139325
139416
|
throw new Error('Malformed `Lambda` - no "files" present');
|
139326
139417
|
}
|
139418
|
+
const architecture = functionConfiguration?.architecture ?? lambda.architecture;
|
139327
139419
|
const memory = functionConfiguration?.memory ?? lambda.memory;
|
139328
139420
|
const maxDuration = functionConfiguration?.maxDuration ?? lambda.maxDuration;
|
139329
139421
|
const config2 = {
|
139330
139422
|
...lambda,
|
139331
139423
|
handler: (0, import_build_utils11.normalizePath)(lambda.handler),
|
139424
|
+
architecture,
|
139332
139425
|
memory,
|
139333
139426
|
maxDuration,
|
139334
139427
|
filePathMap,
|
@@ -141112,6 +141205,11 @@ async function main2(client2) {
|
|
141112
141205
|
target,
|
141113
141206
|
argv: scrubArgv(process.argv)
|
141114
141207
|
};
|
141208
|
+
if (!process.env.VERCEL_BUILD_IMAGE) {
|
141209
|
+
output_manager_default.warn(
|
141210
|
+
"Build not running on Vercel. System environment variables will not be available."
|
141211
|
+
);
|
141212
|
+
}
|
141115
141213
|
const envToUnset = /* @__PURE__ */ new Set(["VERCEL", "NOW_BUILDER"]);
|
141116
141214
|
try {
|
141117
141215
|
const envPath = (0, import_path27.join)(
|
@@ -177031,6 +177129,23 @@ var init_render_alias_status = __esm({
|
|
177031
177129
|
}
|
177032
177130
|
});
|
177033
177131
|
|
177132
|
+
// src/commands/rolling-release/request-rolling-release.ts
|
177133
|
+
async function requestRollingRelease({
|
177134
|
+
client: client2,
|
177135
|
+
projectId,
|
177136
|
+
teamId
|
177137
|
+
}) {
|
177138
|
+
const { rollingRelease } = await client2.fetch(
|
177139
|
+
`/v1/projects/${projectId}/rolling-release?teamId=${teamId}`
|
177140
|
+
);
|
177141
|
+
return rollingRelease;
|
177142
|
+
}
|
177143
|
+
var init_request_rolling_release = __esm({
|
177144
|
+
"src/commands/rolling-release/request-rolling-release.ts"() {
|
177145
|
+
"use strict";
|
177146
|
+
}
|
177147
|
+
});
|
177148
|
+
|
177034
177149
|
// src/commands/promote/status.ts
|
177035
177150
|
async function promoteStatus({
|
177036
177151
|
client: client2,
|
@@ -177058,6 +177173,22 @@ async function promoteStatus({
|
|
177058
177173
|
if (projectCheck instanceof ProjectNotFound) {
|
177059
177174
|
throw projectCheck;
|
177060
177175
|
}
|
177176
|
+
if (projectCheck.rollingRelease) {
|
177177
|
+
output_manager_default.log(`Rolling Releases enabled \u2026`);
|
177178
|
+
const rr = await requestRollingRelease({
|
177179
|
+
client: client2,
|
177180
|
+
projectId: project.id,
|
177181
|
+
teamId: project.accountId
|
177182
|
+
});
|
177183
|
+
if (rr.activeStage) {
|
177184
|
+
output_manager_default.stopSpinner();
|
177185
|
+
output_manager_default.log(
|
177186
|
+
`Rolling Release serving traffic at initial percentage ${rr.activeStage.targetPercentage}`
|
177187
|
+
);
|
177188
|
+
return 0;
|
177189
|
+
}
|
177190
|
+
continue;
|
177191
|
+
}
|
177061
177192
|
const {
|
177062
177193
|
jobStatus,
|
177063
177194
|
requestedAt,
|
@@ -177196,6 +177327,7 @@ var init_status = __esm({
|
|
177196
177327
|
init_render_alias_status();
|
177197
177328
|
init_sleep();
|
177198
177329
|
init_output_manager();
|
177330
|
+
init_request_rolling_release();
|
177199
177331
|
}
|
177200
177332
|
});
|
177201
177333
|
|
@@ -177244,12 +177376,21 @@ async function requestPromote({
|
|
177244
177376
|
);
|
177245
177377
|
return 0;
|
177246
177378
|
}
|
177247
|
-
await client2.fetch(
|
177248
|
-
|
177249
|
-
|
177250
|
-
|
177251
|
-
|
177252
|
-
|
177379
|
+
const res = await client2.fetch(
|
177380
|
+
`/v10/projects/${project.id}/promote/${deployment.id}`,
|
177381
|
+
{
|
177382
|
+
body: {},
|
177383
|
+
// required
|
177384
|
+
json: false,
|
177385
|
+
method: "POST"
|
177386
|
+
}
|
177387
|
+
);
|
177388
|
+
if (res.status === 202) {
|
177389
|
+
output_manager_default.log(
|
177390
|
+
"Promotion has been queued and will begin when the active rolling release completes successfully."
|
177391
|
+
);
|
177392
|
+
return 0;
|
177393
|
+
}
|
177253
177394
|
if (timeout !== void 0 && (0, import_ms25.default)(timeout) === 0) {
|
177254
177395
|
output_manager_default.log(
|
177255
177396
|
`Successfully requested promote of ${import_chalk110.default.bold(project.name)} to ${deployment.url} (${deployment.id})`
|
@@ -178452,6 +178593,357 @@ var init_rollback2 = __esm({
|
|
178452
178593
|
}
|
178453
178594
|
});
|
178454
178595
|
|
178596
|
+
// src/commands/rolling-release/start-rolling-release.ts
|
178597
|
+
async function startRollingRelease({
|
178598
|
+
client: client2,
|
178599
|
+
deployId,
|
178600
|
+
projectId,
|
178601
|
+
teamId
|
178602
|
+
}) {
|
178603
|
+
await client2.fetch(
|
178604
|
+
`/v10/projects/${projectId}/promote/${deployId}?teamId=${teamId}`,
|
178605
|
+
{
|
178606
|
+
body: {},
|
178607
|
+
// required
|
178608
|
+
json: false,
|
178609
|
+
method: "POST"
|
178610
|
+
}
|
178611
|
+
);
|
178612
|
+
output_manager_default.log("Successfully started rolling release");
|
178613
|
+
return 0;
|
178614
|
+
}
|
178615
|
+
var init_start_rolling_release = __esm({
|
178616
|
+
"src/commands/rolling-release/start-rolling-release.ts"() {
|
178617
|
+
"use strict";
|
178618
|
+
init_output_manager();
|
178619
|
+
}
|
178620
|
+
});
|
178621
|
+
|
178622
|
+
// src/commands/rolling-release/configure-rolling-release.ts
|
178623
|
+
async function configureRollingRelease({
|
178624
|
+
client: client2,
|
178625
|
+
projectId,
|
178626
|
+
teamId,
|
178627
|
+
rollingReleaseConfig
|
178628
|
+
}) {
|
178629
|
+
const body = {
|
178630
|
+
...rollingReleaseConfig,
|
178631
|
+
enabled: Boolean(rollingReleaseConfig)
|
178632
|
+
};
|
178633
|
+
await client2.fetch(
|
178634
|
+
`/v1/projects/${projectId}/rolling-release/config?teamId=${teamId}`,
|
178635
|
+
{
|
178636
|
+
body,
|
178637
|
+
json: true,
|
178638
|
+
method: "PATCH"
|
178639
|
+
}
|
178640
|
+
);
|
178641
|
+
output_manager_default.log("Successfully configured rolling releases.");
|
178642
|
+
return 0;
|
178643
|
+
}
|
178644
|
+
var init_configure_rolling_release = __esm({
|
178645
|
+
"src/commands/rolling-release/configure-rolling-release.ts"() {
|
178646
|
+
"use strict";
|
178647
|
+
init_output_manager();
|
178648
|
+
}
|
178649
|
+
});
|
178650
|
+
|
178651
|
+
// src/commands/rolling-release/approve-rolling-release.ts
|
178652
|
+
async function approveRollingRelease({
|
178653
|
+
client: client2,
|
178654
|
+
projectId,
|
178655
|
+
teamId,
|
178656
|
+
activeStageIndex,
|
178657
|
+
deployId
|
178658
|
+
}) {
|
178659
|
+
await client2.fetch(
|
178660
|
+
`/v1/projects/${projectId}/rolling-release/approve-stage?teamId=${teamId}`,
|
178661
|
+
{
|
178662
|
+
method: "POST",
|
178663
|
+
json: true,
|
178664
|
+
body: {
|
178665
|
+
activeStageIndex,
|
178666
|
+
nextStageIndex: activeStageIndex + 1,
|
178667
|
+
canaryDeploymentId: deployId
|
178668
|
+
}
|
178669
|
+
}
|
178670
|
+
);
|
178671
|
+
output_manager_default.log(
|
178672
|
+
"Successfully requested approval of rolling release to next stage."
|
178673
|
+
);
|
178674
|
+
return 0;
|
178675
|
+
}
|
178676
|
+
var init_approve_rolling_release = __esm({
|
178677
|
+
"src/commands/rolling-release/approve-rolling-release.ts"() {
|
178678
|
+
"use strict";
|
178679
|
+
init_output_manager();
|
178680
|
+
}
|
178681
|
+
});
|
178682
|
+
|
178683
|
+
// src/commands/rolling-release/abort-rolling-release.ts
|
178684
|
+
async function abortRollingRelease({
|
178685
|
+
client: client2,
|
178686
|
+
projectId,
|
178687
|
+
deployId,
|
178688
|
+
teamId
|
178689
|
+
}) {
|
178690
|
+
await client2.fetch(
|
178691
|
+
`/v9/projects/${projectId}/rollback/${deployId}?teamId=${teamId}`,
|
178692
|
+
{
|
178693
|
+
body: {},
|
178694
|
+
// required
|
178695
|
+
method: "POST"
|
178696
|
+
}
|
178697
|
+
);
|
178698
|
+
output_manager_default.log("Successfully aborted the active rolling release.");
|
178699
|
+
return 0;
|
178700
|
+
}
|
178701
|
+
var init_abort_rolling_release = __esm({
|
178702
|
+
"src/commands/rolling-release/abort-rolling-release.ts"() {
|
178703
|
+
"use strict";
|
178704
|
+
init_output_manager();
|
178705
|
+
}
|
178706
|
+
});
|
178707
|
+
|
178708
|
+
// src/commands/rolling-release/complete-rolling-release.ts
|
178709
|
+
async function completeRollingRelease({
|
178710
|
+
client: client2,
|
178711
|
+
projectId,
|
178712
|
+
teamId,
|
178713
|
+
deployId
|
178714
|
+
}) {
|
178715
|
+
await client2.fetch(
|
178716
|
+
`/v1/projects/${projectId}/rolling-release/complete?teamId=${teamId}`,
|
178717
|
+
{
|
178718
|
+
body: { canaryDeploymentId: deployId },
|
178719
|
+
// required
|
178720
|
+
json: true,
|
178721
|
+
method: "POST"
|
178722
|
+
}
|
178723
|
+
);
|
178724
|
+
output_manager_default.log(
|
178725
|
+
"Successfully requested completion of the active rolling release."
|
178726
|
+
);
|
178727
|
+
return 0;
|
178728
|
+
}
|
178729
|
+
var init_complete_rolling_release = __esm({
|
178730
|
+
"src/commands/rolling-release/complete-rolling-release.ts"() {
|
178731
|
+
"use strict";
|
178732
|
+
init_output_manager();
|
178733
|
+
}
|
178734
|
+
});
|
178735
|
+
|
178736
|
+
// src/util/telemetry/commands/rolling-release/index.ts
|
178737
|
+
var RollingReleaseTelemetryClient;
|
178738
|
+
var init_rolling_release = __esm({
|
178739
|
+
"src/util/telemetry/commands/rolling-release/index.ts"() {
|
178740
|
+
"use strict";
|
178741
|
+
init_telemetry();
|
178742
|
+
RollingReleaseTelemetryClient = class extends TelemetryClient {
|
178743
|
+
trackCliOptionAction(value) {
|
178744
|
+
this.trackCliOption({
|
178745
|
+
option: "action",
|
178746
|
+
value: value ?? ""
|
178747
|
+
});
|
178748
|
+
}
|
178749
|
+
trackCliOptionName(name) {
|
178750
|
+
if (name) {
|
178751
|
+
this.trackCliOption({
|
178752
|
+
option: "name",
|
178753
|
+
value: this.redactedValue
|
178754
|
+
});
|
178755
|
+
}
|
178756
|
+
}
|
178757
|
+
trackCliOptionCfg(value) {
|
178758
|
+
this.trackCliOption({
|
178759
|
+
option: "cfg",
|
178760
|
+
value: value ?? ""
|
178761
|
+
});
|
178762
|
+
}
|
178763
|
+
trackCliOptionDeployId(value) {
|
178764
|
+
this.trackCliOption({
|
178765
|
+
option: "deployId",
|
178766
|
+
value: value ?? ""
|
178767
|
+
});
|
178768
|
+
}
|
178769
|
+
trackCliOptionCurrentStageIndex(value) {
|
178770
|
+
this.trackCliOption({
|
178771
|
+
option: "currentStageIndex",
|
178772
|
+
value: value ?? ""
|
178773
|
+
});
|
178774
|
+
}
|
178775
|
+
};
|
178776
|
+
}
|
178777
|
+
});
|
178778
|
+
|
178779
|
+
// src/commands/rolling-release/index.ts
|
178780
|
+
var rolling_release_exports = {};
|
178781
|
+
__export3(rolling_release_exports, {
|
178782
|
+
default: () => rolling_release_default
|
178783
|
+
});
|
178784
|
+
var rolling_release_default;
|
178785
|
+
var init_rolling_release2 = __esm({
|
178786
|
+
"src/commands/rolling-release/index.ts"() {
|
178787
|
+
"use strict";
|
178788
|
+
init_get_args();
|
178789
|
+
init_get_flags_specification();
|
178790
|
+
init_help();
|
178791
|
+
init_command27();
|
178792
|
+
init_request_rolling_release();
|
178793
|
+
init_start_rolling_release();
|
178794
|
+
init_configure_rolling_release();
|
178795
|
+
init_approve_rolling_release();
|
178796
|
+
init_abort_rolling_release();
|
178797
|
+
init_complete_rolling_release();
|
178798
|
+
init_error2();
|
178799
|
+
init_output_manager();
|
178800
|
+
init_get_project_by_cwd_or_link();
|
178801
|
+
init_rolling_release();
|
178802
|
+
rolling_release_default = async (client2) => {
|
178803
|
+
const telemetry2 = new RollingReleaseTelemetryClient({
|
178804
|
+
opts: {
|
178805
|
+
store: client2.telemetryEventStore
|
178806
|
+
}
|
178807
|
+
});
|
178808
|
+
let parsedArguments = null;
|
178809
|
+
const flagsSpecification = getFlagsSpecification(
|
178810
|
+
rollingReleaseCommand.options
|
178811
|
+
);
|
178812
|
+
try {
|
178813
|
+
parsedArguments = parseArguments(client2.argv.slice(2), flagsSpecification);
|
178814
|
+
} catch (error3) {
|
178815
|
+
printError(error3);
|
178816
|
+
return 1;
|
178817
|
+
}
|
178818
|
+
if (parsedArguments.flags["--help"]) {
|
178819
|
+
output_manager_default.print(
|
178820
|
+
help2(rollingReleaseCommand, { columns: client2.stderr.columns })
|
178821
|
+
);
|
178822
|
+
return 2;
|
178823
|
+
}
|
178824
|
+
const projectNameOrId = parsedArguments.flags["--name"];
|
178825
|
+
const currentStageIndex = parsedArguments.flags["--currentStageIndex"];
|
178826
|
+
const activeStageIndex = parseInt(currentStageIndex ?? "");
|
178827
|
+
const deployId = parsedArguments.flags["--deployId"];
|
178828
|
+
const cfgString = parsedArguments.flags["--cfg"];
|
178829
|
+
let cfg = void 0;
|
178830
|
+
telemetry2.trackCliOptionName(projectNameOrId);
|
178831
|
+
telemetry2.trackCliOptionAction(parsedArguments.flags["--action"]);
|
178832
|
+
telemetry2.trackCliOptionDeployId(deployId);
|
178833
|
+
telemetry2.trackCliOptionCfg(cfgString);
|
178834
|
+
telemetry2.trackCliOptionCurrentStageIndex(currentStageIndex);
|
178835
|
+
const project = await getProjectByCwdOrLink({
|
178836
|
+
client: client2,
|
178837
|
+
commandName: "rolling-release",
|
178838
|
+
projectNameOrId
|
178839
|
+
});
|
178840
|
+
switch (parsedArguments.flags["--action"]) {
|
178841
|
+
case "configure":
|
178842
|
+
if (cfgString === void 0) {
|
178843
|
+
output_manager_default.error("configuring a rolling release requires --cfg option.");
|
178844
|
+
break;
|
178845
|
+
}
|
178846
|
+
if (cfgString !== "disable") {
|
178847
|
+
try {
|
178848
|
+
cfg = JSON.parse(cfgString);
|
178849
|
+
} catch (e2) {
|
178850
|
+
output_manager_default.error(`unable to parse cfg: ${cfg}, err: ${e2}`);
|
178851
|
+
break;
|
178852
|
+
}
|
178853
|
+
}
|
178854
|
+
try {
|
178855
|
+
await configureRollingRelease({
|
178856
|
+
client: client2,
|
178857
|
+
projectId: project.id,
|
178858
|
+
teamId: project.accountId,
|
178859
|
+
rollingReleaseConfig: cfg
|
178860
|
+
});
|
178861
|
+
} catch (e2) {
|
178862
|
+
output_manager_default.error(`unable to set cfg: ${JSON.stringify(cfg)}, err: ${e2}`);
|
178863
|
+
}
|
178864
|
+
break;
|
178865
|
+
case "start":
|
178866
|
+
if (deployId === void 0) {
|
178867
|
+
output_manager_default.error("starting a rolling release requires --deployId option.");
|
178868
|
+
break;
|
178869
|
+
}
|
178870
|
+
await startRollingRelease({
|
178871
|
+
client: client2,
|
178872
|
+
deployId,
|
178873
|
+
projectId: project.id,
|
178874
|
+
teamId: project.accountId
|
178875
|
+
});
|
178876
|
+
break;
|
178877
|
+
case "abort":
|
178878
|
+
if (deployId === void 0) {
|
178879
|
+
output_manager_default.error("aborting a rolling release requires --deployId option.");
|
178880
|
+
break;
|
178881
|
+
}
|
178882
|
+
await abortRollingRelease({
|
178883
|
+
client: client2,
|
178884
|
+
projectId: project.id,
|
178885
|
+
deployId,
|
178886
|
+
teamId: project.accountId
|
178887
|
+
});
|
178888
|
+
break;
|
178889
|
+
case "approve":
|
178890
|
+
if (deployId === void 0) {
|
178891
|
+
output_manager_default.error("approving a rolling release requires --deployId option.");
|
178892
|
+
break;
|
178893
|
+
}
|
178894
|
+
if (currentStageIndex === void 0) {
|
178895
|
+
output_manager_default.error(
|
178896
|
+
"approving a rolling release stage requires --currentStageIndex option."
|
178897
|
+
);
|
178898
|
+
break;
|
178899
|
+
}
|
178900
|
+
if (isNaN(activeStageIndex)) {
|
178901
|
+
output_manager_default.error(
|
178902
|
+
"approving a rolling release stage requires --currentStageIndex to be an int."
|
178903
|
+
);
|
178904
|
+
break;
|
178905
|
+
}
|
178906
|
+
await approveRollingRelease({
|
178907
|
+
client: client2,
|
178908
|
+
projectId: project.id,
|
178909
|
+
teamId: project.accountId,
|
178910
|
+
activeStageIndex,
|
178911
|
+
deployId
|
178912
|
+
});
|
178913
|
+
break;
|
178914
|
+
case "complete":
|
178915
|
+
if (deployId === void 0) {
|
178916
|
+
output_manager_default.error(
|
178917
|
+
"completing a rolling release requires --deployId option."
|
178918
|
+
);
|
178919
|
+
break;
|
178920
|
+
}
|
178921
|
+
await completeRollingRelease({
|
178922
|
+
client: client2,
|
178923
|
+
projectId: project.id,
|
178924
|
+
teamId: project.accountId,
|
178925
|
+
deployId
|
178926
|
+
});
|
178927
|
+
break;
|
178928
|
+
case "fetch":
|
178929
|
+
output_manager_default.log(
|
178930
|
+
JSON.stringify(
|
178931
|
+
await requestRollingRelease({
|
178932
|
+
client: client2,
|
178933
|
+
projectId: project.id,
|
178934
|
+
teamId: project.accountId
|
178935
|
+
})
|
178936
|
+
)
|
178937
|
+
);
|
178938
|
+
break;
|
178939
|
+
default:
|
178940
|
+
output_manager_default.log("Need to supply --action");
|
178941
|
+
}
|
178942
|
+
return 0;
|
178943
|
+
};
|
178944
|
+
}
|
178945
|
+
});
|
178946
|
+
|
178455
178947
|
// src/commands/target/list.ts
|
178456
178948
|
function formatBranchMatcher(branchMatcher) {
|
178457
178949
|
if (branchMatcher?.type === "equals") {
|
@@ -178559,7 +179051,7 @@ var init_list9 = __esm({
|
|
178559
179051
|
import_chalk116 = __toESM3(require_source());
|
178560
179052
|
init_table();
|
178561
179053
|
init_output_manager();
|
178562
|
-
|
179054
|
+
init_command28();
|
178563
179055
|
init_pkg_name();
|
178564
179056
|
init_ensure_link();
|
178565
179057
|
init_format_project();
|
@@ -178652,7 +179144,7 @@ var init_target2 = __esm({
|
|
178652
179144
|
init_get_invalid_subcommand();
|
178653
179145
|
init_help();
|
178654
179146
|
init_list9();
|
178655
|
-
|
179147
|
+
init_command28();
|
178656
179148
|
init_get_flags_specification();
|
178657
179149
|
init_error2();
|
178658
179150
|
init_output_manager();
|
@@ -178799,7 +179291,7 @@ var init_list11 = __esm({
|
|
178799
179291
|
init_get_args();
|
178800
179292
|
init_error2();
|
178801
179293
|
init_get_flags_specification();
|
178802
|
-
|
179294
|
+
init_command29();
|
178803
179295
|
init_output_manager();
|
178804
179296
|
init_list10();
|
178805
179297
|
}
|
@@ -178998,7 +179490,7 @@ var init_invite2 = __esm({
|
|
178998
179490
|
init_get_args();
|
178999
179491
|
init_get_flags_specification();
|
179000
179492
|
init_error2();
|
179001
|
-
|
179493
|
+
init_command29();
|
179002
179494
|
validateEmail2 = (data) => email.test(data.trim()) || data.length === 0;
|
179003
179495
|
domains = Array.from(
|
179004
179496
|
/* @__PURE__ */ new Set([
|
@@ -179299,7 +179791,7 @@ var init_switch2 = __esm({
|
|
179299
179791
|
init_files();
|
179300
179792
|
init_output_manager();
|
179301
179793
|
init_switch();
|
179302
|
-
|
179794
|
+
init_command29();
|
179303
179795
|
init_get_args();
|
179304
179796
|
init_get_flags_specification();
|
179305
179797
|
init_error2();
|
@@ -179451,7 +179943,7 @@ var init_teams2 = __esm({
|
|
179451
179943
|
init_switch2();
|
179452
179944
|
init_invite2();
|
179453
179945
|
init_get_args();
|
179454
|
-
|
179946
|
+
init_command29();
|
179455
179947
|
init_help();
|
179456
179948
|
init_get_flags_specification();
|
179457
179949
|
init_error2();
|
@@ -179692,7 +180184,7 @@ var init_telemetry3 = __esm({
|
|
179692
180184
|
init_enable();
|
179693
180185
|
init_disable();
|
179694
180186
|
init_flush();
|
179695
|
-
|
180187
|
+
init_command30();
|
179696
180188
|
init_get_flags_specification();
|
179697
180189
|
init_telemetry2();
|
179698
180190
|
import_chalk122 = __toESM3(require_source());
|
@@ -179755,7 +180247,7 @@ var init_whoami2 = __esm({
|
|
179755
180247
|
"src/commands/whoami/index.ts"() {
|
179756
180248
|
"use strict";
|
179757
180249
|
init_help();
|
179758
|
-
|
180250
|
+
init_command31();
|
179759
180251
|
init_get_scope();
|
179760
180252
|
init_get_args();
|
179761
180253
|
init_get_flags_specification();
|
@@ -180322,6 +180814,12 @@ var RootTelemetryClient = class extends TelemetryClient {
|
|
180322
180814
|
value: actual
|
180323
180815
|
});
|
180324
180816
|
}
|
180817
|
+
trackCliCommandRollingRelease(actual) {
|
180818
|
+
this.trackCliCommand({
|
180819
|
+
command: "rolling-release",
|
180820
|
+
value: actual
|
180821
|
+
});
|
180822
|
+
}
|
180325
180823
|
trackCliCommandRedeploy(actual) {
|
180326
180824
|
this.trackCliCommand({
|
180327
180825
|
command: "redeploy",
|
@@ -181061,6 +181559,10 @@ var main13 = async () => {
|
|
181061
181559
|
telemetry2.trackCliCommandRollback(userSuppliedSubCommand);
|
181062
181560
|
func = (init_rollback2(), __toCommonJS3(rollback_exports)).default;
|
181063
181561
|
break;
|
181562
|
+
case "rolling-release":
|
181563
|
+
telemetry2.trackCliCommandRollingRelease(userSuppliedSubCommand);
|
181564
|
+
func = (init_rolling_release2(), __toCommonJS3(rolling_release_exports)).default;
|
181565
|
+
break;
|
181064
181566
|
case "target":
|
181065
181567
|
telemetry2.trackCliCommandTarget(userSuppliedSubCommand);
|
181066
181568
|
func = (init_target2(), __toCommonJS3(target_exports)).default;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "vercel",
|
3
|
-
"version": "42.
|
3
|
+
"version": "42.3.0",
|
4
4
|
"preferGlobal": true,
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"description": "The command-line interface for Vercel",
|
@@ -21,17 +21,17 @@
|
|
21
21
|
"node": ">= 18"
|
22
22
|
},
|
23
23
|
"dependencies": {
|
24
|
-
"@vercel/build-utils": "10.
|
24
|
+
"@vercel/build-utils": "10.6.0",
|
25
25
|
"@vercel/fun": "1.1.6",
|
26
26
|
"@vercel/go": "3.2.1",
|
27
|
-
"@vercel/hydrogen": "1.2.
|
28
|
-
"@vercel/next": "4.
|
29
|
-
"@vercel/node": "5.1
|
27
|
+
"@vercel/hydrogen": "1.2.2",
|
28
|
+
"@vercel/next": "4.8.0",
|
29
|
+
"@vercel/node": "5.2.1",
|
30
30
|
"@vercel/python": "4.7.2",
|
31
|
-
"@vercel/redwood": "2.3.
|
32
|
-
"@vercel/remix-builder": "5.4.
|
31
|
+
"@vercel/redwood": "2.3.3",
|
32
|
+
"@vercel/remix-builder": "5.4.9",
|
33
33
|
"@vercel/ruby": "2.2.0",
|
34
|
-
"@vercel/static-build": "2.7.
|
34
|
+
"@vercel/static-build": "2.7.9",
|
35
35
|
"chokidar": "4.0.0",
|
36
36
|
"jose": "5.9.6"
|
37
37
|
},
|
@@ -77,11 +77,11 @@
|
|
77
77
|
"@types/which": "3.0.0",
|
78
78
|
"@types/write-json-file": "2.2.1",
|
79
79
|
"@types/yauzl-promise": "2.1.0",
|
80
|
-
"@vercel/client": "15.3.
|
80
|
+
"@vercel/client": "15.3.3",
|
81
81
|
"@vercel/error-utils": "2.0.3",
|
82
82
|
"@vercel/frameworks": "3.6.4",
|
83
|
-
"@vercel/fs-detectors": "5.4.
|
84
|
-
"@vercel/routing-utils": "5.0.
|
83
|
+
"@vercel/fs-detectors": "5.4.2",
|
84
|
+
"@vercel/routing-utils": "5.0.5",
|
85
85
|
"@vitest/expect": "2.1.3",
|
86
86
|
"ajv": "6.12.3",
|
87
87
|
"alpha-sort": "2.0.1",
|
@@ -159,8 +159,8 @@
|
|
159
159
|
"write-json-file": "2.2.0",
|
160
160
|
"xdg-app-paths": "5.1.0",
|
161
161
|
"yauzl-promise": "2.1.3",
|
162
|
-
"@vercel-internals/get-package-json": "1.0.0",
|
163
162
|
"@vercel-internals/constants": "1.0.4",
|
163
|
+
"@vercel-internals/get-package-json": "1.0.0",
|
164
164
|
"@vercel-internals/types": "3.0.6"
|
165
165
|
},
|
166
166
|
"scripts": {
|