vercel 39.3.0 → 39.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +98 -144
  2. package/package.json +12 -12
package/dist/index.js CHANGED
@@ -41809,26 +41809,13 @@ var init_saml = __esm({
41809
41809
  }
41810
41810
  });
41811
41811
 
41812
- // src/util/input/confirm.ts
41813
- async function confirm(client2, message2, preferred) {
41814
- return client2.input.confirm({
41815
- message: message2,
41816
- default: preferred
41817
- });
41818
- }
41819
- var init_confirm = __esm({
41820
- "src/util/input/confirm.ts"() {
41821
- "use strict";
41822
- }
41823
- });
41824
-
41825
41812
  // src/util/login/reauthenticate.ts
41826
41813
  async function reauthenticate(client2, error3) {
41827
41814
  if (error3.teamId && error3.enforced) {
41828
41815
  output_manager_default.log(
41829
41816
  `You must re-authenticate with SAML to use ${(0, import_chalk16.bold)(error3.scope)} scope.`
41830
41817
  );
41831
- if (await confirm(client2, `Log in with SAML?`, true)) {
41818
+ if (await client2.input.confirm(`Log in with SAML?`, true)) {
41832
41819
  return doSamlLogin(client2, error3.teamId);
41833
41820
  }
41834
41821
  } else {
@@ -41844,7 +41831,6 @@ var init_reauthenticate = __esm({
41844
41831
  import_chalk16 = __toESM3(require_source());
41845
41832
  init_saml();
41846
41833
  init_prompt();
41847
- init_confirm();
41848
41834
  init_output_manager();
41849
41835
  }
41850
41836
  });
@@ -46170,7 +46156,7 @@ var require_package = __commonJS2({
46170
46156
  "../client/package.json"(exports2, module2) {
46171
46157
  module2.exports = {
46172
46158
  name: "@vercel/client",
46173
- version: "13.5.4",
46159
+ version: "13.5.5",
46174
46160
  main: "dist/index.js",
46175
46161
  typings: "dist/index.d.ts",
46176
46162
  homepage: "https://vercel.com",
@@ -46209,7 +46195,7 @@ var require_package = __commonJS2({
46209
46195
  typescript: "4.9.5"
46210
46196
  },
46211
46197
  dependencies: {
46212
- "@vercel/build-utils": "9.0.1",
46198
+ "@vercel/build-utils": "9.1.0",
46213
46199
  "@vercel/error-utils": "2.0.3",
46214
46200
  "@vercel/routing-utils": "5.0.0",
46215
46201
  "async-retry": "1.2.3",
@@ -52851,7 +52837,10 @@ ${error3.stack}`);
52851
52837
  { input: this.stdin, output: this.stderr }
52852
52838
  ),
52853
52839
  expand: (opts2) => esm_default4({ theme, ...opts2 }, { input: this.stdin, output: this.stderr }),
52854
- confirm: (opts2) => esm_default3({ theme, ...opts2 }, { input: this.stdin, output: this.stderr }),
52840
+ confirm: (message2, default_value) => esm_default3(
52841
+ { theme, message: message2, default: default_value },
52842
+ { input: this.stdin, output: this.stderr }
52843
+ ),
52855
52844
  select: (opts2) => esm_default6(
52856
52845
  { theme, ...opts2 },
52857
52846
  { input: this.stdin, output: this.stderr }
@@ -88859,7 +88848,7 @@ async function confirmAliasRemove(client2, alias2) {
88859
88848
  output_manager_default.log("The following alias will be removed permanently");
88860
88849
  output_manager_default.print(` ${tbl}
88861
88850
  `);
88862
- return confirm(client2, import_chalk23.default.red("Are you sure?"), false);
88851
+ return client2.input.confirm(import_chalk23.default.red("Are you sure?"), false);
88863
88852
  }
88864
88853
  var import_chalk23, import_ms4;
88865
88854
  var init_rm = __esm({
@@ -88871,7 +88860,6 @@ var init_rm = __esm({
88871
88860
  init_get_scope();
88872
88861
  init_remove_alias_by_id();
88873
88862
  init_stamp();
88874
- init_confirm();
88875
88863
  init_find_alias_by_alias_or_id();
88876
88864
  init_is_valid_name();
88877
88865
  init_pkg_name();
@@ -90169,8 +90157,7 @@ async function purchaseDomainIfAvailable(client2, domain, contextName) {
90169
90157
  contextName
90170
90158
  )}! ${buyDomainStamp()}`
90171
90159
  );
90172
- if (!await confirm(
90173
- client2,
90160
+ if (!await client2.input.confirm(
90174
90161
  `Buy ${import_chalk27.default.underline(domain)} for ${import_chalk27.default.bold(
90175
90162
  `$${price}`
90176
90163
  )} (${(0, import_pluralize.default)("yr", period, true)})?`,
@@ -90201,7 +90188,6 @@ var init_purchase_domain_if_available = __esm({
90201
90188
  init_erase_lines();
90202
90189
  init_get_domain_price();
90203
90190
  init_get_domain_status();
90204
- init_confirm();
90205
90191
  init_purchase_domain();
90206
90192
  init_stamp();
90207
90193
  init_errors_ts();
@@ -99298,7 +99284,6 @@ var require_frameworks = __commonJS2({
99298
99284
  {
99299
99285
  name: "Saber",
99300
99286
  slug: "saber",
99301
- demo: "https://saber-template.vercel.app",
99302
99287
  logo: "https://api-frameworks.vercel.sh/framework-logos/saber.svg",
99303
99288
  tagline: "Saber is a framework for building static sites in Vue.js that supports data from any source.",
99304
99289
  description: "A Saber site, created with npm init.",
@@ -99744,6 +99729,7 @@ var require_frameworks = __commonJS2({
99744
99729
  tagline: "Vite is a new breed of frontend build tool that significantly improves the frontend development experience.",
99745
99730
  description: "A Vue.js app, created with Vite.",
99746
99731
  website: "https://vitejs.dev",
99732
+ supersedes: ["ionic-react"],
99747
99733
  envPrefix: "VITE_",
99748
99734
  detectors: {
99749
99735
  every: [
@@ -102722,23 +102708,24 @@ var require_local_file_system_detector = __commonJS2({
102722
102708
  }
102723
102709
  async _readdir(dir) {
102724
102710
  const dirPath = this.getFilePath(dir);
102725
- const files = await import_promises.default.readdir(dirPath);
102726
- return Promise.all(
102727
- files.map(async (name) => {
102728
- const absPath = (0, import_path41.join)(this.rootPath, dir, name);
102729
- const path11 = (0, import_path41.join)(this.getRelativeFilePath(dir), name);
102730
- const stat2 = await import_promises.default.stat(absPath);
102731
- let type;
102732
- if (stat2.isFile()) {
102733
- type = "file";
102734
- } else if (stat2.isDirectory()) {
102735
- type = "dir";
102736
- } else {
102737
- throw new Error(`Dirent was neither file nor directory: ${path11}`);
102738
- }
102739
- return { name, path: path11, type };
102740
- })
102741
- );
102711
+ const entries = await import_promises.default.readdir(dirPath, { withFileTypes: true });
102712
+ const result = [];
102713
+ for (const entry of entries) {
102714
+ let type;
102715
+ if (entry.isFile()) {
102716
+ type = "file";
102717
+ } else if (entry.isDirectory()) {
102718
+ type = "dir";
102719
+ } else {
102720
+ continue;
102721
+ }
102722
+ result.push({
102723
+ name: entry.name,
102724
+ path: (0, import_path41.join)(this.getRelativeFilePath(dir), entry.name),
102725
+ type
102726
+ });
102727
+ }
102728
+ return result;
102742
102729
  }
102743
102730
  _chdir(name) {
102744
102731
  return new _LocalFileSystemDetector(this.getFilePath(name));
@@ -119463,8 +119450,7 @@ async function ensureRepoLink(client2, cwd, { yes, overwrite }) {
119463
119450
  output_manager_default.debug(`Failed to detect local projects: ${err}`);
119464
119451
  return /* @__PURE__ */ new Map();
119465
119452
  });
119466
- const shouldLink = yes || await confirm(
119467
- client2,
119453
+ const shouldLink = yes || await client2.input.confirm(
119468
119454
  `Link Git repository at ${import_chalk35.default.cyan(
119469
119455
  `\u201C${humanizePath(rootPath)}\u201D`
119470
119456
  )} to your Project(s)?`,
@@ -119721,7 +119707,6 @@ var init_repo = __esm({
119721
119707
  import_path14 = require("path");
119722
119708
  import_build_utils5 = require("@vercel/build-utils");
119723
119709
  import_fs_extra6 = __toESM3(require_lib());
119724
- init_confirm();
119725
119710
  init_humanize_path();
119726
119711
  init_link2();
119727
119712
  init_create_git_meta();
@@ -132401,8 +132386,7 @@ async function envPullCommandLogic(client2, filename, skipConfirmation, environm
132401
132386
  const exists = typeof head !== "undefined";
132402
132387
  if (head === CONTENTS_PREFIX) {
132403
132388
  output_manager_default.log(`Overwriting existing ${import_chalk39.default.bold(filename)} file`);
132404
- } else if (exists && !skipConfirmation && !await confirm(
132405
- client2,
132389
+ } else if (exists && !skipConfirmation && !await client2.input.confirm(
132406
132390
  `Found existing file ${param(filename)}. Do you want to overwrite?`,
132407
132391
  false
132408
132392
  )) {
@@ -132462,7 +132446,6 @@ var init_pull2 = __esm({
132462
132446
  import_fs5 = require("fs");
132463
132447
  import_path24 = require("path");
132464
132448
  init_emoji();
132465
- init_confirm();
132466
132449
  init_param();
132467
132450
  init_stamp();
132468
132451
  init_pkg_name();
@@ -132508,14 +132491,12 @@ async function inputProject(client2, org, detectedProjectName, autoConfirm = fal
132508
132491
  }
132509
132492
  let shouldLinkProject;
132510
132493
  if (!detectedProject) {
132511
- shouldLinkProject = await confirm(
132512
- client2,
132494
+ shouldLinkProject = await client2.input.confirm(
132513
132495
  `Link to existing project?`,
132514
132496
  false
132515
132497
  );
132516
132498
  } else {
132517
- if (await confirm(
132518
- client2,
132499
+ if (await client2.input.confirm(
132519
132500
  `Found project ${import_chalk40.default.cyan(
132520
132501
  `\u201C${org.slug}/${detectedProject.name}\u201D`
132521
132502
  )}. Link to it?`,
@@ -132523,8 +132504,7 @@ async function inputProject(client2, org, detectedProjectName, autoConfirm = fal
132523
132504
  )) {
132524
132505
  return detectedProject;
132525
132506
  }
132526
- shouldLinkProject = await confirm(
132527
- client2,
132507
+ shouldLinkProject = await client2.input.confirm(
132528
132508
  `Link to different existing project?`,
132529
132509
  true
132530
132510
  );
@@ -132566,7 +132546,6 @@ var import_chalk40, import_slugify2;
132566
132546
  var init_input_project = __esm({
132567
132547
  "src/util/input/input-project.ts"() {
132568
132548
  "use strict";
132569
- init_confirm();
132570
132549
  init_get_project_by_id_or_name();
132571
132550
  import_chalk40 = __toESM3(require_source());
132572
132551
  init_errors_ts();
@@ -132624,8 +132603,7 @@ async function validatePaths(client2, paths) {
132624
132603
  return { valid: false, exitCode: 1 };
132625
132604
  }
132626
132605
  if (path11 === (0, import_os7.homedir)()) {
132627
- const shouldDeployHomeDirectory = await confirm(
132628
- client2,
132606
+ const shouldDeployHomeDirectory = await client2.input.confirm(
132629
132607
  `You are deploying your home directory. Do you want to continue?`,
132630
132608
  false
132631
132609
  );
@@ -132644,7 +132622,6 @@ var init_validate_paths = __esm({
132644
132622
  import_fs_extra16 = __toESM3(require_lib());
132645
132623
  import_chalk41 = __toESM3(require_source());
132646
132624
  import_os7 = require("os");
132647
- init_confirm();
132648
132625
  init_humanize_path();
132649
132626
  init_output_manager();
132650
132627
  }
@@ -132769,7 +132746,7 @@ async function editProjectSettings(client2, projectSettings, framework, autoConf
132769
132746
  );
132770
132747
  }
132771
132748
  }
132772
- if (autoConfirm || !await confirm(client2, "Want to modify these settings?", false)) {
132749
+ if (autoConfirm || !await client2.input.confirm("Want to modify these settings?", false)) {
132773
132750
  return settings;
132774
132751
  }
132775
132752
  const choices = settingKeys.reduce(
@@ -132797,7 +132774,6 @@ var import_chalk43, import_frameworks3, settingMap, settingKeys;
132797
132774
  var init_edit_project_settings = __esm({
132798
132775
  "src/util/input/edit-project-settings.ts"() {
132799
132776
  "use strict";
132800
- init_confirm();
132801
132777
  import_chalk43 = __toESM3(require_source());
132802
132778
  import_frameworks3 = __toESM3(require_frameworks());
132803
132779
  init_is_setting_value();
@@ -132867,8 +132843,7 @@ async function setupAndLink(client2, path11, {
132867
132843
  if (!isTTY3 && !autoConfirm) {
132868
132844
  return { status: "error", exitCode: 1, reason: "HEADLESS" };
132869
132845
  }
132870
- const shouldStartSetup = autoConfirm || await confirm(
132871
- client2,
132846
+ const shouldStartSetup = autoConfirm || await client2.input.confirm(
132872
132847
  `${setupMsg} ${import_chalk44.default.cyan(`\u201C${humanizePath(path11)}\u201D`)}?`,
132873
132848
  true
132874
132849
  );
@@ -132993,7 +132968,6 @@ var init_setup_and_link = __esm({
132993
132968
  init_link2();
132994
132969
  init_create_project();
132995
132970
  init_error2();
132996
- init_confirm();
132997
132971
  init_humanize_path();
132998
132972
  init_global_path();
132999
132973
  init_select_org();
@@ -133297,8 +133271,7 @@ async function main2(client2) {
133297
133271
  );
133298
133272
  return 1;
133299
133273
  }
133300
- confirmed = await confirm(
133301
- client2,
133274
+ confirmed = await client2.input.confirm(
133302
133275
  `No Project Settings found locally. Run ${getCommandName(
133303
133276
  "pull"
133304
133277
  )} for retrieving them?`,
@@ -133877,7 +133850,6 @@ var init_build2 = __esm({
133877
133850
  init_get_args();
133878
133851
  init_get_files();
133879
133852
  init_get_flags_specification();
133880
- init_confirm();
133881
133853
  init_cmd();
133882
133854
  init_stamp();
133883
133855
  init_parse_target();
@@ -158833,8 +158805,8 @@ var init_dev2 = __esm({
158833
158805
  this.trackCliFlag("yes");
158834
158806
  }
158835
158807
  }
158836
- trackCliFlagConfirm(confirm2) {
158837
- if (confirm2) {
158808
+ trackCliFlagConfirm(confirm) {
158809
+ if (confirm) {
158838
158810
  this.trackCliFlag("confirm");
158839
158811
  }
158840
158812
  }
@@ -159146,7 +159118,7 @@ async function getDNSData(client2, data) {
159146
159118
  }
159147
159119
  }
159148
159120
  async function verifyData(client2) {
159149
- return confirm(client2, "Is this correct?", false);
159121
+ return client2.input.confirm("Is this correct?", false);
159150
159122
  }
159151
159123
  async function getRecordName(client2, type) {
159152
159124
  const input = await client2.input.text({
@@ -159174,7 +159146,6 @@ var init_get_dns_data = __esm({
159174
159146
  "src/util/dns/get-dns-data.ts"() {
159175
159147
  "use strict";
159176
159148
  import_chalk60 = __toESM3(require_source());
159177
- init_confirm();
159178
159149
  init_output_manager();
159179
159150
  RECORD_TYPES = ["A", "AAAA", "ALIAS", "CAA", "CNAME", "MX", "SRV", "TXT"];
159180
159151
  }
@@ -160530,15 +160501,13 @@ async function buy(client2, argv) {
160530
160501
  if (skipConfirmation) {
160531
160502
  autoRenew = true;
160532
160503
  } else {
160533
- if (!await confirm(
160534
- client2,
160504
+ if (!await client2.input.confirm(
160535
160505
  `Buy now for ${import_chalk73.default.bold(`$${price}`)} (${`${period}yr${period > 1 ? "s" : ""}`})?`,
160536
160506
  false
160537
160507
  )) {
160538
160508
  return 0;
160539
160509
  }
160540
- autoRenew = await confirm(
160541
- client2,
160510
+ autoRenew = await client2.input.confirm(
160542
160511
  renewalPrice.period === 1 ? `Auto renew yearly for ${import_chalk73.default.bold(`$${price}`)}?` : `Auto renew every ${renewalPrice.period} years for ${import_chalk73.default.bold(
160543
160512
  `$${price}`
160544
160513
  )}?`,
@@ -160635,7 +160604,6 @@ var init_buy2 = __esm({
160635
160604
  init_get_domain_status();
160636
160605
  init_get_scope();
160637
160606
  init_param();
160638
- init_confirm();
160639
160607
  init_purchase_domain();
160640
160608
  init_stamp();
160641
160609
  init_pkg_name();
@@ -160814,8 +160782,7 @@ async function transferIn(client2, argv) {
160814
160782
  )} to transfer under ${import_chalk74.default.bold(contextName)}! ${availableStamp()}`
160815
160783
  );
160816
160784
  const authCode = await getAuthCode(client2, opts["--code"]);
160817
- const shouldTransfer = await confirm(
160818
- client2,
160785
+ const shouldTransfer = await client2.input.confirm(
160819
160786
  transferPolicy === "no-change" ? `Transfer now for ${import_chalk74.default.bold(`$${price}`)}?` : `Transfer now with 1yr renewal for ${import_chalk74.default.bold(`$${price}`)}?`,
160820
160787
  false
160821
160788
  );
@@ -160897,7 +160864,6 @@ var init_transfer_in2 = __esm({
160897
160864
  init_get_auth_code();
160898
160865
  init_get_domain_price();
160899
160866
  init_check_transfer();
160900
- init_confirm();
160901
160867
  init_is_root_domain();
160902
160868
  init_pkg_name();
160903
160869
  init_transfer_in();
@@ -161478,8 +161444,7 @@ async function rm4(client2, argv) {
161478
161444
  );
161479
161445
  }
161480
161446
  const skipConfirmation = opts["--yes"] || false;
161481
- if (!skipConfirmation && !await confirm(
161482
- client2,
161447
+ if (!skipConfirmation && !await client2.input.confirm(
161483
161448
  `Are you sure you want to remove ${param(domainName)}?`,
161484
161449
  false
161485
161450
  )) {
@@ -161588,8 +161553,7 @@ async function removeDomain(client2, contextName, skipConfirmation, domain, alia
161588
161553
  `The ${import_chalk77.default.bold(`custom suffix`)} associated with this domain.`
161589
161554
  );
161590
161555
  }
161591
- if (!skipConfirmation && !await confirm(
161592
- client2,
161556
+ if (!skipConfirmation && !await client2.input.confirm(
161593
161557
  `Remove conflicts associated with domain?`,
161594
161558
  false
161595
161559
  )) {
@@ -161625,7 +161589,6 @@ var init_rm6 = __esm({
161625
161589
  init_stamp();
161626
161590
  init_errors_ts();
161627
161591
  init_param();
161628
- init_confirm();
161629
161592
  init_set_custom_suffix();
161630
161593
  init_find_projects_for_domain();
161631
161594
  init_pkg_name();
@@ -161778,8 +161741,7 @@ async function move2(client2, argv) {
161778
161741
  destination
161779
161742
  )} will have 24 hours to accept your move request before it expires.`
161780
161743
  );
161781
- if (!await confirm(
161782
- client2,
161744
+ if (!await client2.input.confirm(
161783
161745
  `Are you sure you want to move ${param(domainName)} to ${param(
161784
161746
  destination
161785
161747
  )}?`,
@@ -161797,8 +161759,7 @@ async function move2(client2, argv) {
161797
161759
  (0, import_pluralize10.default)("alias", aliases.length, true)
161798
161760
  )} will be removed. Run ${getCommandName(`alias ls`)} to list them.`
161799
161761
  );
161800
- if (!await confirm(
161801
- client2,
161762
+ if (!await client2.input.confirm(
161802
161763
  `Are you sure you want to move ${param(domainName)}?`,
161803
161764
  false
161804
161765
  )) {
@@ -161907,7 +161868,6 @@ var init_move2 = __esm({
161907
161868
  init_param();
161908
161869
  init_get_domain_aliases();
161909
161870
  init_get_domain_by_name();
161910
- init_confirm();
161911
161871
  init_get_teams();
161912
161872
  init_pkg_name();
161913
161873
  init_output_manager();
@@ -162788,8 +162748,7 @@ async function rm5(client2, argv) {
162788
162748
  }
162789
162749
  const env = envs[0];
162790
162750
  const skipConfirmation = opts["--yes"];
162791
- if (!skipConfirmation && !await confirm(
162792
- client2,
162751
+ if (!skipConfirmation && !await client2.input.confirm(
162793
162752
  `Removing Environment Variable ${param(env.key)} from ${formatEnvironments(
162794
162753
  link4,
162795
162754
  env,
@@ -162825,7 +162784,6 @@ var init_rm8 = __esm({
162825
162784
  "src/commands/env/rm.ts"() {
162826
162785
  "use strict";
162827
162786
  import_chalk82 = __toESM3(require_source());
162828
- init_confirm();
162829
162787
  init_remove_env_record();
162830
162788
  init_get_env_records();
162831
162789
  init_format_environments();
@@ -163000,8 +162958,8 @@ var init_connect = __esm({
163000
162958
  });
163001
162959
  }
163002
162960
  }
163003
- trackCliFlagConfirm(confirm2) {
163004
- if (confirm2) {
162961
+ trackCliFlagConfirm(confirm) {
162962
+ if (confirm) {
163005
162963
  this.trackCliFlag("confirm");
163006
162964
  }
163007
162965
  }
@@ -163037,7 +162995,7 @@ async function connect(client2, argv) {
163037
162995
  output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead");
163038
162996
  opts["--yes"] = opts["--confirm"];
163039
162997
  }
163040
- const confirm2 = Boolean(opts["--yes"]);
162998
+ const confirm = Boolean(opts["--yes"]);
163041
162999
  if (args2.length > 1) {
163042
163000
  output_manager_default.error(
163043
163001
  `Invalid number of arguments. Usage: ${import_chalk83.default.cyan(
@@ -163049,7 +163007,7 @@ async function connect(client2, argv) {
163049
163007
  const repoArg = args2[0];
163050
163008
  telemetry2.trackCliArgumentGitUrl(repoArg);
163051
163009
  const linkedProject = await ensureLink("git", client2, client2.cwd, {
163052
- autoConfirm: confirm2
163010
+ autoConfirm: confirm
163053
163011
  });
163054
163012
  if (typeof linkedProject === "number") {
163055
163013
  return linkedProject;
@@ -163072,14 +163030,14 @@ async function connect(client2, argv) {
163072
163030
  client: client2,
163073
163031
  org,
163074
163032
  project,
163075
- confirm: confirm2,
163033
+ confirm,
163076
163034
  gitConfig,
163077
163035
  repoInfo: parsedUrlArg
163078
163036
  });
163079
163037
  }
163080
163038
  return await connectArg({
163081
163039
  client: client2,
163082
- confirm: confirm2,
163040
+ confirm,
163083
163041
  org,
163084
163042
  project,
163085
163043
  repoInfo: parsedUrlArg
@@ -163127,7 +163085,7 @@ async function connect(client2, argv) {
163127
163085
  const repoPath = `${gitOrg}/${repo}`;
163128
163086
  const checkAndConnect = await checkExistsAndConnect({
163129
163087
  client: client2,
163130
- confirm: confirm2,
163088
+ confirm,
163131
163089
  org,
163132
163090
  project,
163133
163091
  gitProviderLink,
@@ -163146,7 +163104,7 @@ async function connect(client2, argv) {
163146
163104
  }
163147
163105
  async function connectArg({
163148
163106
  client: client2,
163149
- confirm: confirm2,
163107
+ confirm,
163150
163108
  org,
163151
163109
  project,
163152
163110
  repoInfo
@@ -163164,7 +163122,7 @@ async function connectArg({
163164
163122
  const repoPath = `${gitOrg}/${repo}`;
163165
163123
  const connect2 = await checkExistsAndConnect({
163166
163124
  client: client2,
163167
- confirm: confirm2,
163125
+ confirm,
163168
163126
  org,
163169
163127
  project,
163170
163128
  gitProviderLink: project.link,
@@ -163185,7 +163143,7 @@ async function connectArgWithLocalGit({
163185
163143
  client: client2,
163186
163144
  org,
163187
163145
  project,
163188
- confirm: confirm2,
163146
+ confirm,
163189
163147
  gitConfig,
163190
163148
  repoInfo
163191
163149
  }) {
@@ -163193,7 +163151,7 @@ async function connectArgWithLocalGit({
163193
163151
  if (remoteUrls) {
163194
163152
  const shouldConnect = await promptConnectArg({
163195
163153
  client: client2,
163196
- yes: confirm2,
163154
+ yes: confirm,
163197
163155
  repoInfo,
163198
163156
  remoteUrls
163199
163157
  });
@@ -163206,7 +163164,7 @@ async function connectArgWithLocalGit({
163206
163164
  output_manager_default.log(`Connecting Git remote: ${link_default(repoUrl)}`);
163207
163165
  const connect2 = await checkExistsAndConnect({
163208
163166
  client: client2,
163209
- confirm: confirm2,
163167
+ confirm,
163210
163168
  org,
163211
163169
  project,
163212
163170
  gitProviderLink: project.link,
@@ -163226,7 +163184,7 @@ async function connectArgWithLocalGit({
163226
163184
  }
163227
163185
  return 0;
163228
163186
  }
163229
- return await connectArg({ client: client2, confirm: confirm2, org, project, repoInfo });
163187
+ return await connectArg({ client: client2, confirm, org, project, repoInfo });
163230
163188
  }
163231
163189
  async function promptConnectArg({
163232
163190
  client: client2,
@@ -163258,8 +163216,7 @@ async function promptConnectArg({
163258
163216
  let shouldConnect = yes;
163259
163217
  if (!shouldConnect) {
163260
163218
  const { url: repoUrlFromArg } = repoInfoFromArg;
163261
- shouldConnect = await confirm(
163262
- client2,
163219
+ shouldConnect = await client2.input.confirm(
163263
163220
  `Do you still want to connect ${link_default(repoUrlFromArg)}?`,
163264
163221
  false
163265
163222
  );
@@ -163271,7 +163228,7 @@ async function promptConnectArg({
163271
163228
  }
163272
163229
  async function checkExistsAndConnect({
163273
163230
  client: client2,
163274
- confirm: confirm2,
163231
+ confirm,
163275
163232
  org,
163276
163233
  project,
163277
163234
  gitProviderLink,
@@ -163304,7 +163261,7 @@ async function checkExistsAndConnect({
163304
163261
  }
163305
163262
  const shouldReplaceRepo = await confirmRepoConnect(
163306
163263
  client2,
163307
- confirm2,
163264
+ confirm,
163308
163265
  connectedProvider,
163309
163266
  connectedRepoPath
163310
163267
  );
@@ -163326,8 +163283,7 @@ async function checkExistsAndConnect({
163326
163283
  async function confirmRepoConnect(client2, yes, connectedProvider, connectedRepoPath) {
163327
163284
  let shouldReplaceProject = yes;
163328
163285
  if (!shouldReplaceProject) {
163329
- shouldReplaceProject = await confirm(
163330
- client2,
163286
+ shouldReplaceProject = await client2.input.confirm(
163331
163287
  `Looks like you already have a ${formatProvider(
163332
163288
  connectedProvider
163333
163289
  )} repository connected: ${import_chalk83.default.cyan(
@@ -163362,7 +163318,6 @@ var init_connect2 = __esm({
163362
163318
  import_chalk83 = __toESM3(require_source());
163363
163319
  import_path39 = require("path");
163364
163320
  init_create_git_meta();
163365
- init_confirm();
163366
163321
  init_list();
163367
163322
  init_link();
163368
163323
  init_pkg_name();
@@ -163384,8 +163339,8 @@ var init_disconnect = __esm({
163384
163339
  "use strict";
163385
163340
  init_telemetry();
163386
163341
  GitDisconnectTelemetryClient = class extends TelemetryClient {
163387
- trackCliFlagConfirm(confirm2) {
163388
- if (confirm2) {
163342
+ trackCliFlagConfirm(confirm) {
163343
+ if (confirm) {
163389
163344
  this.trackCliFlag("confirm");
163390
163345
  }
163391
163346
  }
@@ -163445,8 +163400,7 @@ async function disconnect(client2, argv) {
163445
163400
  `Your Vercel project will no longer create deployments when you push to this repository.
163446
163401
  `
163447
163402
  );
163448
- const confirmDisconnect = autoConfirm || await confirm(
163449
- client2,
163403
+ const confirmDisconnect = autoConfirm || await client2.input.confirm(
163450
163404
  `Are you sure you want to disconnect ${import_chalk84.default.cyan(
163451
163405
  `${linkOrg}/${repo}`
163452
163406
  )} from your project?`,
@@ -163473,7 +163427,6 @@ var init_disconnect2 = __esm({
163473
163427
  "src/commands/git/disconnect.ts"() {
163474
163428
  "use strict";
163475
163429
  import_chalk84 = __toESM3(require_source());
163476
- init_confirm();
163477
163430
  init_pkg_name();
163478
163431
  init_connect_git_provider();
163479
163432
  init_output_manager();
@@ -163836,7 +163789,7 @@ async function guess(client2, exampleList, name) {
163836
163789
  }
163837
163790
  const found = did_you_mean_default(name, exampleList, 0.7);
163838
163791
  if (typeof found === "string") {
163839
- if (await confirm(client2, `Did you mean ${import_chalk86.default.bold(found)}?`, false)) {
163792
+ if (await client2.input.confirm(`Did you mean ${import_chalk86.default.bold(found)}?`, false)) {
163840
163793
  return found;
163841
163794
  }
163842
163795
  } else {
@@ -163853,7 +163806,6 @@ var init_init = __esm({
163853
163806
  import_chalk86 = __toESM3(require_source());
163854
163807
  init_list();
163855
163808
  init_list_item();
163856
- init_confirm();
163857
163809
  init_humanize_path();
163858
163810
  init_cmd();
163859
163811
  init_did_you_mean();
@@ -164935,15 +164887,16 @@ async function add5(client2, args2) {
164935
164887
  const metadataWizard = createMetadataWizard(metadataSchema);
164936
164888
  const isPreProtocolStorageProduct = product.type === "storage";
164937
164889
  const isPostProtocolStorageProduct = product.protocols?.storage?.status === "enabled";
164890
+ const isVideoProduct = product.protocols?.video?.status;
164938
164891
  const isStorageProduct = isPreProtocolStorageProduct || isPostProtocolStorageProduct;
164939
- const provisionResourceViaCLIIsSupported = installation && metadataWizard.isSupported && isStorageProduct;
164892
+ const isSupportedProductType = isStorageProduct || isVideoProduct;
164893
+ const provisionResourceViaCLIIsSupported = installation && metadataWizard.isSupported && isSupportedProductType;
164940
164894
  if (!provisionResourceViaCLIIsSupported) {
164941
164895
  const projectLink = await getOptionalLinkedProject(client2);
164942
164896
  if (projectLink?.status === "error") {
164943
164897
  return projectLink.exitCode;
164944
164898
  }
164945
- const openInWeb = await confirm(
164946
- client2,
164899
+ const openInWeb = await client2.input.confirm(
164947
164900
  !installation ? "Terms have not been accepted. Open Vercel Dashboard?" : "This resource must be provisioned through the Web UI. Open Vercel Dashboard?",
164948
164901
  true
164949
164902
  );
@@ -164970,8 +164923,7 @@ async function getOptionalLinkedProject(client2) {
164970
164923
  if (linkedProject.status === "not_linked") {
164971
164924
  return;
164972
164925
  }
164973
- const shouldLinkToProject = await confirm(
164974
- client2,
164926
+ const shouldLinkToProject = await client2.input.confirm(
164975
164927
  "Do you want to link this resource to the current project?",
164976
164928
  true
164977
164929
  );
@@ -165127,7 +165079,7 @@ async function confirmProductSelection(client2, product, name, metadata, billing
165127
165079
  `${import_chalk90.default.dim(`- ${import_chalk90.default.bold("Plan:")} ${billingPlan.name}`)}
165128
165080
  `
165129
165081
  );
165130
- return confirm(client2, "Confirm selection?", true);
165082
+ return client2.input.confirm("Confirm selection?", true);
165131
165083
  }
165132
165084
  async function provisionStorageProduct(client2, product, installation, name, metadata, billingPlan) {
165133
165085
  output_manager_default.spinner("Provisioning resource...");
@@ -165213,7 +165165,6 @@ var init_add10 = __esm({
165213
165165
  init_fetch_integration();
165214
165166
  init_output_manager();
165215
165167
  init_add9();
165216
- init_confirm();
165217
165168
  }
165218
165169
  });
165219
165170
 
@@ -165754,7 +165705,7 @@ async function confirmIntegrationRemoval(client2, integration, team) {
165754
165705
  output_manager_default.log(
165755
165706
  `The ${import_chalk93.default.bold(integration)} integration will be removed permanently from team ${import_chalk93.default.bold(team.name)}.`
165756
165707
  );
165757
- return confirm(client2, `${import_chalk93.default.red("Are you sure?")}`, false);
165708
+ return client2.input.confirm(`${import_chalk93.default.red("Are you sure?")}`, false);
165758
165709
  }
165759
165710
  var import_chalk93;
165760
165711
  var init_remove_integration2 = __esm({
@@ -165766,7 +165717,6 @@ var init_remove_integration2 = __esm({
165766
165717
  init_get_flags_specification();
165767
165718
  init_get_scope();
165768
165719
  init_error2();
165769
- init_confirm();
165770
165720
  init_fetch_marketplace_integrations();
165771
165721
  init_remove_integration();
165772
165722
  init_command15();
@@ -166130,7 +166080,7 @@ async function confirmDisconnectProject(client2, resource, project) {
166130
166080
  output_manager_default.log(
166131
166081
  `The resource ${import_chalk94.default.bold(resource.name)} will be disconnected from project ${import_chalk94.default.bold(project.name)}.`
166132
166082
  );
166133
- return confirm(client2, `${import_chalk94.default.red("Are you sure?")}`, false);
166083
+ return client2.input.confirm(`${import_chalk94.default.red("Are you sure?")}`, false);
166134
166084
  }
166135
166085
  async function confirmDisconnectAllProjects(client2, resource) {
166136
166086
  output_manager_default.log("The following projects will be disconnected:");
@@ -166141,7 +166091,7 @@ async function confirmDisconnectAllProjects(client2, resource) {
166141
166091
  output_manager_default.print(` ${project.name}
166142
166092
  `);
166143
166093
  }
166144
- return confirm(client2, import_chalk94.default.red("Are you sure?"), false);
166094
+ return client2.input.confirm(import_chalk94.default.red("Are you sure?"), false);
166145
166095
  }
166146
166096
  var import_chalk94;
166147
166097
  var init_disconnect4 = __esm({
@@ -166153,7 +166103,6 @@ var init_disconnect4 = __esm({
166153
166103
  init_get_flags_specification();
166154
166104
  init_get_scope();
166155
166105
  init_error2();
166156
- init_confirm();
166157
166106
  init_disconnect_resource_from_project();
166158
166107
  init_get_resources();
166159
166108
  init_link2();
@@ -166306,7 +166255,7 @@ async function handleDeleteResource(client2, team, resource, options) {
166306
166255
  }
166307
166256
  async function confirmDeleteResource(client2, resource) {
166308
166257
  output_manager_default.log(`${import_chalk95.default.bold(resource.name)} will be deleted permanently.`);
166309
- return confirm(client2, `${import_chalk95.default.red("Are you sure?")}`, false);
166258
+ return client2.input.confirm(`${import_chalk95.default.red("Are you sure?")}`, false);
166310
166259
  }
166311
166260
  var import_chalk95;
166312
166261
  var init_remove_resource = __esm({
@@ -166318,7 +166267,6 @@ var init_remove_resource = __esm({
166318
166267
  init_get_flags_specification();
166319
166268
  init_get_scope();
166320
166269
  init_error2();
166321
- init_confirm();
166322
166270
  init_delete_resource();
166323
166271
  init_get_resources();
166324
166272
  init_types();
@@ -167528,16 +167476,17 @@ async function list4(client2, argv) {
167528
167476
  output_manager_default.stopSpinner();
167529
167477
  const elapsed2 = (0, import_ms21.default)(Date.now() - start);
167530
167478
  if (deprecated) {
167531
- const upcomingDeprecationVersionsList = [];
167479
+ const upcomingDiscontinuedVersionsList = [];
167532
167480
  for (const nodeVersion of import_build_utils18.NODE_VERSIONS) {
167533
- if (nodeVersion.discontinueDate && nodeVersion.discontinueDate.valueOf() > Date.now()) {
167534
- upcomingDeprecationVersionsList.push(nodeVersion.range);
167481
+ const upcomingDiscontinueDate = nodeVersion.state === "deprecated";
167482
+ if (upcomingDiscontinueDate) {
167483
+ upcomingDiscontinuedVersionsList.push(nodeVersion.range);
167535
167484
  }
167536
167485
  }
167537
167486
  output_manager_default.warn(
167538
- `The following Node.js versions will be deprecated soon: ${upcomingDeprecationVersionsList.join(
167487
+ `The following Node.js versions are deprecated: ${upcomingDiscontinuedVersionsList.join(
167539
167488
  ", "
167540
- )}. Please upgrade your projects immediately.`
167489
+ )} and will be discontinued soon. Please upgrade your projects immediately.`
167541
167490
  );
167542
167491
  output_manager_default.log(
167543
167492
  "For more information visit: https://vercel.com/docs/functions/serverless-functions/runtimes/node-js#node.js-version"
@@ -167549,14 +167498,18 @@ async function list4(client2, argv) {
167549
167498
  if (projectList.length > 0) {
167550
167499
  const tablePrint = table(
167551
167500
  [
167552
- ["Project Name", "Latest Production URL", "Updated"].map(
167553
- (header) => import_chalk100.default.bold(import_chalk100.default.cyan(header))
167554
- ),
167501
+ [
167502
+ "Project Name",
167503
+ "Latest Production URL",
167504
+ "Updated",
167505
+ "Node Version"
167506
+ ].map((header) => import_chalk100.default.bold(import_chalk100.default.cyan(header))),
167555
167507
  ...projectList.flatMap((project) => [
167556
167508
  [
167557
167509
  import_chalk100.default.bold(project.name),
167558
167510
  getLatestProdUrl(project),
167559
- import_chalk100.default.gray((0, import_ms21.default)(Date.now() - project.updatedAt))
167511
+ import_chalk100.default.gray((0, import_ms21.default)(Date.now() - project.updatedAt)),
167512
+ project.nodeVersion ?? ""
167560
167513
  ]
167561
167514
  ])
167562
167515
  ],
@@ -167682,7 +167635,10 @@ It will also delete everything under the project including deployments.
167682
167635
  emoji("warning")
167683
167636
  )
167684
167637
  );
167685
- return await confirm(client2, `${import_chalk101.default.bold.red("Are you sure?")}`, false);
167638
+ return await client2.input.confirm(
167639
+ `${import_chalk101.default.bold.red("Are you sure?")}`,
167640
+ false
167641
+ );
167686
167642
  }
167687
167643
  var import_chalk101, import_ms22, e;
167688
167644
  var init_rm10 = __esm({
@@ -167692,7 +167648,6 @@ var init_rm10 = __esm({
167692
167648
  import_ms22 = __toESM3(require_ms());
167693
167649
  init_emoji();
167694
167650
  init_errors_ts();
167695
- init_confirm();
167696
167651
  init_pkg_name();
167697
167652
  init_rm9();
167698
167653
  init_output_manager();
@@ -168149,7 +168104,7 @@ async function requestPromote({
168149
168104
  promoteByCreation = true;
168150
168105
  } else {
168151
168106
  const question = "This deployment is not a production deployment and cannot be directly promoted. A new deployment will be built using your production environment. Are you sure you want to continue?";
168152
- promoteByCreation = await confirm(client2, question, false);
168107
+ promoteByCreation = await client2.input.confirm(question, false);
168153
168108
  if (!promoteByCreation) {
168154
168109
  output_manager_default.error("Canceled");
168155
168110
  return 0;
@@ -168207,7 +168162,6 @@ var init_request_promote = __esm({
168207
168162
  init_get_project_by_deployment();
168208
168163
  import_ms24 = __toESM3(require_ms());
168209
168164
  init_status();
168210
- init_confirm();
168211
168165
  init_output_manager();
168212
168166
  }
168213
168167
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "39.3.0",
3
+ "version": "39.4.1",
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": ">= 16"
22
22
  },
23
23
  "dependencies": {
24
- "@vercel/build-utils": "9.0.1",
24
+ "@vercel/build-utils": "9.1.0",
25
25
  "@vercel/fun": "1.1.2",
26
26
  "@vercel/go": "3.2.1",
27
27
  "@vercel/hydrogen": "1.0.11",
28
- "@vercel/next": "4.4.2",
29
- "@vercel/node": "5.0.2",
30
- "@vercel/python": "4.7.0",
28
+ "@vercel/next": "4.4.4",
29
+ "@vercel/node": "5.0.3",
30
+ "@vercel/python": "4.7.1",
31
31
  "@vercel/redwood": "2.1.12",
32
- "@vercel/remix-builder": "5.0.2",
33
- "@vercel/ruby": "2.1.0",
34
- "@vercel/static-build": "2.5.41",
32
+ "@vercel/remix-builder": "5.1.0",
33
+ "@vercel/ruby": "2.2.0",
34
+ "@vercel/static-build": "2.5.42",
35
35
  "chokidar": "4.0.0"
36
36
  },
37
37
  "devDependencies": {
@@ -79,11 +79,11 @@
79
79
  "@types/yauzl-promise": "2.1.0",
80
80
  "@vercel-internals/constants": "1.0.4",
81
81
  "@vercel-internals/get-package-json": "1.0.0",
82
- "@vercel-internals/types": "3.0.4",
83
- "@vercel/client": "13.5.4",
82
+ "@vercel-internals/types": "3.0.5",
83
+ "@vercel/client": "13.5.5",
84
84
  "@vercel/error-utils": "2.0.3",
85
- "@vercel/frameworks": "3.4.0",
86
- "@vercel/fs-detectors": "5.3.2",
85
+ "@vercel/frameworks": "3.5.0",
86
+ "@vercel/fs-detectors": "5.3.3",
87
87
  "@vercel/routing-utils": "5.0.0",
88
88
  "@vitest/expect": "2.1.3",
89
89
  "ajv": "6.12.3",