vercel 45.0.10 → 46.0.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.
Files changed (2) hide show
  1. package/dist/index.js +418 -71
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -9374,7 +9374,7 @@ var require_log_symbols = __commonJS2({
9374
9374
  "use strict";
9375
9375
  var chalk126 = require_chalk();
9376
9376
  var isSupported = process.platform !== "win32" || process.env.CI || process.env.TERM === "xterm-256color";
9377
- var main17 = {
9377
+ var main18 = {
9378
9378
  info: chalk126.blue("\u2139"),
9379
9379
  success: chalk126.green("\u2714"),
9380
9380
  warning: chalk126.yellow("\u26A0"),
@@ -9386,7 +9386,7 @@ var require_log_symbols = __commonJS2({
9386
9386
  warning: chalk126.yellow("\u203C"),
9387
9387
  error: chalk126.red("\xD7")
9388
9388
  };
9389
- module2.exports = isSupported ? main17 : fallbacks;
9389
+ module2.exports = isSupported ? main18 : fallbacks;
9390
9390
  }
9391
9391
  });
9392
9392
 
@@ -33419,9 +33419,43 @@ var init_command22 = __esm({
33419
33419
  }
33420
33420
  });
33421
33421
 
33422
+ // src/commands/mcp/command.ts
33423
+ var mcpCommand;
33424
+ var init_command23 = __esm({
33425
+ "src/commands/mcp/command.ts"() {
33426
+ "use strict";
33427
+ init_pkg_name();
33428
+ mcpCommand = {
33429
+ name: "mcp",
33430
+ aliases: [],
33431
+ description: "Set up MCP agents and configuration for Vercel integration",
33432
+ arguments: [],
33433
+ options: [
33434
+ {
33435
+ name: "project",
33436
+ description: "Set up project-specific MCP access for the currently linked project",
33437
+ shorthand: null,
33438
+ type: Boolean,
33439
+ deprecated: false
33440
+ }
33441
+ ],
33442
+ examples: [
33443
+ {
33444
+ name: "Interactively set up MCP agents",
33445
+ value: `${packageName} mcp`
33446
+ },
33447
+ {
33448
+ name: "Set up project-specific MCP access",
33449
+ value: `${packageName} mcp --project`
33450
+ }
33451
+ ]
33452
+ };
33453
+ }
33454
+ });
33455
+
33422
33456
  // src/commands/microfrontends/command.ts
33423
33457
  var pullSubcommand2, microfrontendsCommand;
33424
- var init_command23 = __esm({
33458
+ var init_command24 = __esm({
33425
33459
  "src/commands/microfrontends/command.ts"() {
33426
33460
  "use strict";
33427
33461
  init_pkg_name();
@@ -33464,7 +33498,7 @@ var init_command23 = __esm({
33464
33498
 
33465
33499
  // src/commands/project/command.ts
33466
33500
  var addSubcommand6, inspectSubcommand2, listSubcommand7, removeSubcommand8, projectCommand;
33467
- var init_command24 = __esm({
33501
+ var init_command25 = __esm({
33468
33502
  "src/commands/project/command.ts"() {
33469
33503
  "use strict";
33470
33504
  init_pkg_name();
@@ -33575,7 +33609,7 @@ var init_command24 = __esm({
33575
33609
 
33576
33610
  // src/commands/promote/command.ts
33577
33611
  var statusSubcommand2, promoteCommand;
33578
- var init_command25 = __esm({
33612
+ var init_command26 = __esm({
33579
33613
  "src/commands/promote/command.ts"() {
33580
33614
  "use strict";
33581
33615
  init_pkg_name();
@@ -33644,7 +33678,7 @@ var init_command25 = __esm({
33644
33678
 
33645
33679
  // src/commands/pull/command.ts
33646
33680
  var pullCommand;
33647
- var init_command26 = __esm({
33681
+ var init_command27 = __esm({
33648
33682
  "src/commands/pull/command.ts"() {
33649
33683
  "use strict";
33650
33684
  init_pkg_name();
@@ -33716,7 +33750,7 @@ var init_command26 = __esm({
33716
33750
 
33717
33751
  // src/commands/redeploy/command.ts
33718
33752
  var redeployCommand;
33719
- var init_command27 = __esm({
33753
+ var init_command28 = __esm({
33720
33754
  "src/commands/redeploy/command.ts"() {
33721
33755
  "use strict";
33722
33756
  init_pkg_name();
@@ -33767,7 +33801,7 @@ var init_command27 = __esm({
33767
33801
 
33768
33802
  // src/commands/remove/command.ts
33769
33803
  var removeCommand;
33770
- var init_command28 = __esm({
33804
+ var init_command29 = __esm({
33771
33805
  "src/commands/remove/command.ts"() {
33772
33806
  "use strict";
33773
33807
  init_pkg_name();
@@ -33817,7 +33851,7 @@ var init_command28 = __esm({
33817
33851
 
33818
33852
  // src/commands/rollback/command.ts
33819
33853
  var statusSubcommand3, rollbackCommand;
33820
- var init_command29 = __esm({
33854
+ var init_command30 = __esm({
33821
33855
  "src/commands/rollback/command.ts"() {
33822
33856
  "use strict";
33823
33857
  init_pkg_name();
@@ -33878,7 +33912,7 @@ var init_command29 = __esm({
33878
33912
 
33879
33913
  // src/commands/rolling-release/command.ts
33880
33914
  var configureSubcommand, startSubcommand, approveSubcommand, abortSubcommand, completeSubcommand, fetchSubcommand, rollingReleaseCommand;
33881
- var init_command30 = __esm({
33915
+ var init_command31 = __esm({
33882
33916
  "src/commands/rolling-release/command.ts"() {
33883
33917
  "use strict";
33884
33918
  init_arg_common();
@@ -34072,7 +34106,7 @@ var init_command30 = __esm({
34072
34106
 
34073
34107
  // src/commands/target/command.ts
34074
34108
  var listSubcommand8, targetCommand;
34075
- var init_command31 = __esm({
34109
+ var init_command32 = __esm({
34076
34110
  "src/commands/target/command.ts"() {
34077
34111
  "use strict";
34078
34112
  init_pkg_name();
@@ -34103,7 +34137,7 @@ var init_command31 = __esm({
34103
34137
 
34104
34138
  // src/commands/teams/command.ts
34105
34139
  var addSubcommand7, listSubcommand9, switchSubcommand, inviteSubcommand, teamsCommand;
34106
- var init_command32 = __esm({
34140
+ var init_command33 = __esm({
34107
34141
  "src/commands/teams/command.ts"() {
34108
34142
  "use strict";
34109
34143
  init_pkg_name();
@@ -34194,7 +34228,7 @@ var init_command32 = __esm({
34194
34228
 
34195
34229
  // src/commands/telemetry/command.ts
34196
34230
  var statusSubcommand4, enableSubcommand2, flushSubcommand, disableSubcommand2, telemetryCommand;
34197
- var init_command33 = __esm({
34231
+ var init_command34 = __esm({
34198
34232
  "src/commands/telemetry/command.ts"() {
34199
34233
  "use strict";
34200
34234
  statusSubcommand4 = {
@@ -34249,7 +34283,7 @@ var init_command33 = __esm({
34249
34283
 
34250
34284
  // src/commands/whoami/command.ts
34251
34285
  var whoamiCommand;
34252
- var init_command34 = __esm({
34286
+ var init_command35 = __esm({
34253
34287
  "src/commands/whoami/command.ts"() {
34254
34288
  "use strict";
34255
34289
  init_pkg_name();
@@ -34271,7 +34305,7 @@ var init_command34 = __esm({
34271
34305
 
34272
34306
  // src/commands/blob/command.ts
34273
34307
  var listSubcommand10, putSubcommand, delSubcommand, copySubcommand, addStoreSubcommand, removeStoreSubcommand, getStoreSubcommand, storeSubcommand, blobCommand;
34274
- var init_command35 = __esm({
34308
+ var init_command36 = __esm({
34275
34309
  "src/commands/blob/command.ts"() {
34276
34310
  "use strict";
34277
34311
  listSubcommand10 = {
@@ -34569,6 +34603,7 @@ var init_commands = __esm({
34569
34603
  init_command33();
34570
34604
  init_command34();
34571
34605
  init_command35();
34606
+ init_command36();
34572
34607
  init_output_manager();
34573
34608
  commandsStructs = [
34574
34609
  aliasCommand,
@@ -34593,6 +34628,7 @@ var init_commands = __esm({
34593
34628
  loginCommand,
34594
34629
  logoutCommand,
34595
34630
  logsCommand,
34631
+ mcpCommand,
34596
34632
  microfrontendsCommand,
34597
34633
  projectCommand,
34598
34634
  promoteCommand,
@@ -37625,7 +37661,7 @@ var require_figures = __commonJS2({
37625
37661
  "use strict";
37626
37662
  var escapeStringRegexp = require_escape_string_regexp();
37627
37663
  var { platform } = process;
37628
- var main17 = {
37664
+ var main18 = {
37629
37665
  tick: "\u2714",
37630
37666
  cross: "\u2716",
37631
37667
  star: "\u2605",
@@ -37711,12 +37747,12 @@ var require_figures = __commonJS2({
37711
37747
  hamburger: "\u2261",
37712
37748
  smiley: "\u263A",
37713
37749
  mustache: "\u250C\u2500\u2510",
37714
- heart: main17.heart,
37750
+ heart: main18.heart,
37715
37751
  nodejs: "\u2666",
37716
- arrowUp: main17.arrowUp,
37717
- arrowDown: main17.arrowDown,
37718
- arrowLeft: main17.arrowLeft,
37719
- arrowRight: main17.arrowRight,
37752
+ arrowUp: main18.arrowUp,
37753
+ arrowDown: main18.arrowDown,
37754
+ arrowLeft: main18.arrowLeft,
37755
+ arrowRight: main18.arrowRight,
37720
37756
  radioOn: "(*)",
37721
37757
  radioOff: "( )",
37722
37758
  checkboxOn: "[\xD7]",
@@ -37744,14 +37780,14 @@ var require_figures = __commonJS2({
37744
37780
  sevenEighths: "7/8"
37745
37781
  };
37746
37782
  if (platform === "linux") {
37747
- main17.questionMarkPrefix = "?";
37783
+ main18.questionMarkPrefix = "?";
37748
37784
  }
37749
- var figures4 = platform === "win32" ? windows : main17;
37785
+ var figures4 = platform === "win32" ? windows : main18;
37750
37786
  var fn2 = (string) => {
37751
- if (figures4 === main17) {
37787
+ if (figures4 === main18) {
37752
37788
  return string;
37753
37789
  }
37754
- for (const [key, value] of Object.entries(main17)) {
37790
+ for (const [key, value] of Object.entries(main18)) {
37755
37791
  if (value === figures4[key]) {
37756
37792
  continue;
37757
37793
  }
@@ -37760,7 +37796,7 @@ var require_figures = __commonJS2({
37760
37796
  return string;
37761
37797
  };
37762
37798
  module2.exports = Object.assign(fn2, figures4);
37763
- module2.exports.main = main17;
37799
+ module2.exports.main = main18;
37764
37800
  module2.exports.windows = windows;
37765
37801
  }
37766
37802
  });
@@ -44058,7 +44094,7 @@ var require_write_json_file = __commonJS2({
44058
44094
  };
44059
44095
  var readFile6 = (fp) => pify(fs15.readFile)(fp, "utf8").catch(() => {
44060
44096
  });
44061
- var main17 = (fp, data, opts) => {
44097
+ var main18 = (fp, data, opts) => {
44062
44098
  return (opts.detectIndent ? readFile6(fp) : Promise.resolve()).then((str) => {
44063
44099
  const indent = str ? detectIndent(str).indent : opts.indent;
44064
44100
  const json = JSON.stringify(data, opts.replacer, indent);
@@ -44083,7 +44119,7 @@ var require_write_json_file = __commonJS2({
44083
44119
  `, { mode: opts.mode });
44084
44120
  };
44085
44121
  module2.exports = (fp, data, opts) => {
44086
- return makeDir(path11.dirname(fp), { fs: fs15 }).then(() => init3(main17, fp, data, opts));
44122
+ return makeDir(path11.dirname(fp), { fs: fs15 }).then(() => init3(main18, fp, data, opts));
44087
44123
  };
44088
44124
  module2.exports.sync = (fp, data, opts) => {
44089
44125
  makeDir.sync(path11.dirname(fp), { fs: fs15 });
@@ -100828,7 +100864,7 @@ var init_list4 = __esm({
100828
100864
  init_get_command_flags();
100829
100865
  init_get_args();
100830
100866
  init_get_flags_specification();
100831
- init_command35();
100867
+ init_command36();
100832
100868
  init_pkg_name();
100833
100869
  init_list3();
100834
100870
  init_error2();
@@ -101065,7 +101101,7 @@ var init_put2 = __esm({
101065
101101
  blob2 = __toESM3(require("@vercel/blob"));
101066
101102
  init_get_args();
101067
101103
  init_get_flags_specification();
101068
- init_command35();
101104
+ init_command36();
101069
101105
  import_node_fs = require("fs");
101070
101106
  import_promises = require("fs/promises");
101071
101107
  import_error_utils12 = __toESM3(require_dist2());
@@ -101139,7 +101175,7 @@ var init_del2 = __esm({
101139
101175
  blob3 = __toESM3(require("@vercel/blob"));
101140
101176
  init_get_args();
101141
101177
  init_get_flags_specification();
101142
- init_command35();
101178
+ init_command36();
101143
101179
  init_del();
101144
101180
  init_error2();
101145
101181
  init_pkg_name();
@@ -101258,7 +101294,7 @@ var init_copy2 = __esm({
101258
101294
  blob4 = __toESM3(require("@vercel/blob"));
101259
101295
  init_get_args();
101260
101296
  init_get_flags_specification();
101261
- init_command35();
101297
+ init_command36();
101262
101298
  init_copy();
101263
101299
  init_pkg_name();
101264
101300
  }
@@ -119606,7 +119642,7 @@ var require_detect_framework = __commonJS2({
119606
119642
  removeSupersededFrameworks: () => removeSupersededFrameworks
119607
119643
  });
119608
119644
  module2.exports = __toCommonJS4(detect_framework_exports);
119609
- var import_child_process4 = require("child_process");
119645
+ var import_child_process5 = require("child_process");
119610
119646
  async function matches(fs15, framework) {
119611
119647
  const { detectors } = framework;
119612
119648
  if (!detectors) {
@@ -119783,7 +119819,7 @@ var require_detect_framework = __commonJS2({
119783
119819
  function lookupInstalledVersion(cwd, packageName2) {
119784
119820
  try {
119785
119821
  const script = `require('${packageName2}/package.json').version`;
119786
- return (0, import_child_process4.spawnSync)(cwd, ["-p", script], {
119822
+ return (0, import_child_process5.spawnSync)(cwd, ["-p", script], {
119787
119823
  encoding: "utf-8"
119788
119824
  }).stdout.trim();
119789
119825
  } catch (error3) {
@@ -127335,7 +127371,7 @@ var init_store_add2 = __esm({
127335
127371
  init_pkg_name();
127336
127372
  init_get_flags_specification();
127337
127373
  init_get_args();
127338
- init_command35();
127374
+ init_command36();
127339
127375
  init_store_add();
127340
127376
  init_error2();
127341
127377
  }
@@ -127411,7 +127447,7 @@ var init_store_remove = __esm({
127411
127447
  init_error2();
127412
127448
  init_output_manager();
127413
127449
  init_get_flags_specification();
127414
- init_command35();
127450
+ init_command36();
127415
127451
  init_get_args();
127416
127452
  init_link2();
127417
127453
  }
@@ -129835,7 +129871,7 @@ var init_store_get2 = __esm({
129835
129871
  init_get_args();
129836
129872
  init_get_flags_specification();
129837
129873
  init_link2();
129838
- init_command35();
129874
+ init_command36();
129839
129875
  import_date_fns = __toESM3(require_date_fns());
129840
129876
  import_chalk40 = __toESM3(require_source());
129841
129877
  init_store_get();
@@ -129914,7 +129950,7 @@ var init_store2 = __esm({
129914
129950
  init_get_invalid_subcommand();
129915
129951
  init_get_subcommand();
129916
129952
  init_help();
129917
- init_command35();
129953
+ init_command36();
129918
129954
  init_get_flags_specification();
129919
129955
  init_output_manager();
129920
129956
  init_commands();
@@ -130072,7 +130108,7 @@ var init_token = __esm({
130072
130108
  import_node_path2 = require("path");
130073
130109
  init_diff_env_files();
130074
130110
  init_get_flags_specification();
130075
- init_command35();
130111
+ init_command36();
130076
130112
  init_get_args();
130077
130113
  init_pkg_name();
130078
130114
  init_cmd();
@@ -130190,7 +130226,7 @@ var init_blob2 = __esm({
130190
130226
  init_get_subcommand();
130191
130227
  init_help();
130192
130228
  init_list4();
130193
- init_command35();
130229
+ init_command36();
130194
130230
  init_get_flags_specification();
130195
130231
  init_output_manager();
130196
130232
  init_commands();
@@ -145832,7 +145868,7 @@ var init_pull4 = __esm({
145832
145868
  init_ensure_link();
145833
145869
  init_humanize_path();
145834
145870
  init_help();
145835
- init_command26();
145871
+ init_command27();
145836
145872
  init_parse_target();
145837
145873
  init_get_flags_specification();
145838
145874
  init_error2();
@@ -174996,8 +175032,8 @@ var init_builds = __esm({
174996
175032
  }
174997
175033
  }
174998
175034
  const corner = isLast ? "\u2514\u2500\u2500" : "\u251C\u2500\u2500";
174999
- const main17 = prefix + path11 + finalSize + finalRegion;
175000
- return `${import_chalk94.default.grey(corner)} ${color(main17)}`;
175035
+ const main18 = prefix + path11 + finalSize + finalRegion;
175036
+ return `${import_chalk94.default.grey(corner)} ${color(main18)}`;
175001
175037
  };
175002
175038
  getDirPath = (path11, level = 0, highestLevel = null) => {
175003
175039
  const parts = path11.split("/").slice(0, -1);
@@ -178832,6 +178868,314 @@ var init_logs3 = __esm({
178832
178868
  }
178833
178869
  });
178834
178870
 
178871
+ // src/commands/mcp/mcp.ts
178872
+ function getAvailableClients() {
178873
+ return [
178874
+ "Claude Code",
178875
+ "Claude.ai and Claude for desktop",
178876
+ "Cursor",
178877
+ "VS Code with Copilot"
178878
+ ];
178879
+ }
178880
+ function safeExecSync(command, options = {}) {
178881
+ try {
178882
+ return (0, import_child_process4.execSync)(command, {
178883
+ stdio: "pipe",
178884
+ encoding: "utf8",
178885
+ ...options
178886
+ });
178887
+ } catch (error3) {
178888
+ return { error: error3.message, stderr: error3.stderr?.toString() || "" };
178889
+ }
178890
+ }
178891
+ async function getProjectSpecificUrl(client2) {
178892
+ try {
178893
+ const linkedProject = await getLinkedProject(client2);
178894
+ if (linkedProject.status !== "linked" || !linkedProject.org || !linkedProject.project) {
178895
+ return null;
178896
+ }
178897
+ const { org, project } = linkedProject;
178898
+ return {
178899
+ url: `${MCP_ENDPOINT}/${org.slug}/${project.name}`,
178900
+ projectName: project.name
178901
+ };
178902
+ } catch (error3) {
178903
+ return null;
178904
+ }
178905
+ }
178906
+ async function mcp(client2) {
178907
+ output_manager_default.print("\u{1F680} Vercel MCP Setup \u2014 Automated\n");
178908
+ const isProjectSpecific = client2.argv.includes("--project");
178909
+ if (isProjectSpecific) {
178910
+ output_manager_default.print("\u{1F517} Setting up project-specific MCP access...\n");
178911
+ const projectInfo = await getProjectSpecificUrl(client2);
178912
+ if (!projectInfo) {
178913
+ output_manager_default.print(
178914
+ "\u274C No linked project found. Please link your project first:\n"
178915
+ );
178916
+ output_manager_default.print(" vercel link\n");
178917
+ return 1;
178918
+ }
178919
+ output_manager_default.print(`\u2705 Project-specific URL: ${projectInfo.url}
178920
+ `);
178921
+ output_manager_default.print(
178922
+ "This URL will automatically provide project and team context.\n\n"
178923
+ );
178924
+ }
178925
+ const availableClients = getAvailableClients();
178926
+ const selectedClients = await client2.input.checkbox({
178927
+ message: "Select MCP clients to set up:",
178928
+ choices: availableClients.map((name) => ({
178929
+ name,
178930
+ value: name,
178931
+ short: name
178932
+ }))
178933
+ });
178934
+ if (!Array.isArray(selectedClients) || selectedClients.length === 0) {
178935
+ output_manager_default.print("\nNo clients selected. Exiting.\n");
178936
+ return 0;
178937
+ }
178938
+ const summary = [];
178939
+ output_manager_default.print("\nStarting setup...\n");
178940
+ for (const clientName of selectedClients) {
178941
+ output_manager_default.print(`\u{1F527} Setting up ${clientName}...
178942
+ `);
178943
+ if (clientName === "Claude Code") {
178944
+ const mcpUrl = isProjectSpecific ? (await getProjectSpecificUrl(client2))?.url : MCP_ENDPOINT;
178945
+ const mcpName = isProjectSpecific ? `vercel-${(await getProjectSpecificUrl(client2))?.projectName}` : "vercel";
178946
+ output_manager_default.print(`\u{1F517} Adding Vercel MCP to Claude Code...
178947
+ `);
178948
+ const result = safeExecSync(
178949
+ `claude mcp add --transport http ${mcpName} ${mcpUrl}`
178950
+ );
178951
+ if (typeof result === "object" && "error" in result) {
178952
+ if (result.stderr?.includes("already exists")) {
178953
+ summary.push("\u2705 Claude Code: Vercel MCP already configured");
178954
+ output_manager_default.print("\u2139\uFE0F Vercel MCP is already configured in Claude Code\n");
178955
+ } else {
178956
+ summary.push("\u274C Claude Code: Failed to add MCP server");
178957
+ output_manager_default.print("\u{1F4A1} Manual commands:\n");
178958
+ output_manager_default.print(
178959
+ ` claude mcp add --transport http ${mcpName} ${mcpUrl}
178960
+ `
178961
+ );
178962
+ output_manager_default.print(
178963
+ " # Or use the /mcp command in Claude Code to authenticate\n"
178964
+ );
178965
+ }
178966
+ } else {
178967
+ summary.push("\u2705 Claude Code: Vercel MCP added successfully");
178968
+ output_manager_default.print("\u2705 Successfully added Vercel MCP to Claude Code\n");
178969
+ output_manager_default.print(
178970
+ "\u2139\uFE0F You may need to authenticate using the /mcp command in Claude Code\n"
178971
+ );
178972
+ }
178973
+ } else if (clientName === "Claude.ai and Claude for desktop") {
178974
+ output_manager_default.print(
178975
+ "\u{1F517} Manual setup required for Claude.ai and Claude for desktop\n"
178976
+ );
178977
+ output_manager_default.print("\u{1F4A1} Setup instructions:\n");
178978
+ output_manager_default.print(" 1. Open Settings in the sidebar\n");
178979
+ output_manager_default.print(
178980
+ " 2. Navigate to Connectors and select Add custom connector\n"
178981
+ );
178982
+ output_manager_default.print(" 3. Configure the connector:\n");
178983
+ if (isProjectSpecific) {
178984
+ const projectInfo = await getProjectSpecificUrl(client2);
178985
+ const projectName = projectInfo?.projectName || "project";
178986
+ output_manager_default.print(` \u2022 Name: Vercel ${projectName}
178987
+ `);
178988
+ output_manager_default.print(` \u2022 URL: ${projectInfo?.url}
178989
+ `);
178990
+ } else {
178991
+ output_manager_default.print(" \u2022 Name: Vercel\n");
178992
+ output_manager_default.print(` \u2022 URL: ${MCP_ENDPOINT}
178993
+ `);
178994
+ }
178995
+ output_manager_default.print(" 4. Complete the authentication flow\n");
178996
+ summary.push("\u2139\uFE0F Claude.ai/Desktop: Manual setup required");
178997
+ } else if (clientName === "Cursor") {
178998
+ output_manager_default.print("\u{1F517} Setting up Cursor MCP...\n");
178999
+ const mcpUrl = isProjectSpecific ? (await getProjectSpecificUrl(client2))?.url : MCP_ENDPOINT;
179000
+ const serverName = isProjectSpecific ? `vercel-${(await getProjectSpecificUrl(client2))?.projectName}` : "vercel";
179001
+ const config2 = {
179002
+ url: mcpUrl,
179003
+ name: serverName
179004
+ };
179005
+ const configJson = JSON.stringify(config2);
179006
+ const encodedConfig = Buffer.from(configJson).toString("base64");
179007
+ const oneClickUrl = `cursor://anysphere.cursor-deeplink/mcp/install?name=${serverName}&config=${encodedConfig}`;
179008
+ output_manager_default.print(`\u{1F517} Generated Cursor deep link: ${oneClickUrl}
179009
+ `);
179010
+ try {
179011
+ if (process.platform === "darwin") {
179012
+ (0, import_child_process4.execSync)(`open '${oneClickUrl}'`);
179013
+ } else if (process.platform === "win32") {
179014
+ (0, import_child_process4.execSync)(`start ${oneClickUrl}`);
179015
+ } else {
179016
+ (0, import_child_process4.execSync)(`xdg-open '${oneClickUrl}'`);
179017
+ }
179018
+ summary.push("\u2705 Cursor: One-click installer opened");
179019
+ output_manager_default.print("\u2705 Successfully opened Cursor one-click installer\n");
179020
+ } catch (error3) {
179021
+ summary.push("\u26A0\uFE0F Cursor: Deep link may not have worked");
179022
+ output_manager_default.print("\u26A0\uFE0F Deep link may not have opened Cursor settings\n");
179023
+ }
179024
+ output_manager_default.print("\u{1F4A1} Manual setup (recommended):\n");
179025
+ output_manager_default.print(" 1. Open Cursor\n");
179026
+ output_manager_default.print(" 2. Go to Settings (Cmd+, / Ctrl+,)\n");
179027
+ output_manager_default.print(" 3. Navigate to MCP section\n");
179028
+ output_manager_default.print(' 4. Click "Add Server"\n');
179029
+ output_manager_default.print(" 5. Enter the following details:\n");
179030
+ output_manager_default.print(` \u2022 Name: ${serverName}
179031
+ `);
179032
+ output_manager_default.print(` \u2022 URL: ${mcpUrl}
179033
+ `);
179034
+ output_manager_default.print(' 6. Click "Add" and follow the authorization prompts\n');
179035
+ output_manager_default.print("\n");
179036
+ output_manager_default.print(" Or try the deep link manually:\n");
179037
+ output_manager_default.print(` ${oneClickUrl}
179038
+ `);
179039
+ output_manager_default.print(" (Copy and paste this URL in your browser)\n");
179040
+ } else if (clientName === "VS Code with Copilot") {
179041
+ output_manager_default.print("\u{1F50D} Checking for GitHub Copilot...\n");
179042
+ const copilotCheck = safeExecSync(
179043
+ "code --list-extensions | grep -i copilot"
179044
+ );
179045
+ if (typeof copilotCheck === "object" && "error" in copilotCheck) {
179046
+ output_manager_default.print(
179047
+ "\u26A0\uFE0F GitHub Copilot not detected. MCP functionality may be limited.\n"
179048
+ );
179049
+ output_manager_default.print(" 1. Open VS Code\n");
179050
+ output_manager_default.print(" 2. Go to Extensions (Cmd+Shift+X / Ctrl+Shift+X)\n");
179051
+ output_manager_default.print(' 3. Search for "GitHub Copilot"\n');
179052
+ output_manager_default.print(
179053
+ " 4. Install and authenticate with your GitHub account\n"
179054
+ );
179055
+ output_manager_default.print(" 5. Restart VS Code\n");
179056
+ output_manager_default.print("\n");
179057
+ } else {
179058
+ output_manager_default.print("\u2705 GitHub Copilot detected\n");
179059
+ }
179060
+ output_manager_default.print("\u{1F517} Setting up Vercel MCP in VS Code...\n");
179061
+ const mcpUrl = isProjectSpecific ? (await getProjectSpecificUrl(client2))?.url : MCP_ENDPOINT;
179062
+ const serverName = isProjectSpecific ? `vercel-${(await getProjectSpecificUrl(client2))?.projectName}` : "vercel";
179063
+ const config2 = {
179064
+ name: serverName,
179065
+ url: mcpUrl
179066
+ };
179067
+ const encodedConfig = encodeURIComponent(JSON.stringify(config2));
179068
+ const oneClickUrl = `vscode:mcp/install?${encodedConfig}`;
179069
+ try {
179070
+ if (process.platform === "darwin") {
179071
+ (0, import_child_process4.execSync)(`open '${oneClickUrl}'`);
179072
+ } else if (process.platform === "win32") {
179073
+ (0, import_child_process4.execSync)(`start ${oneClickUrl}`);
179074
+ } else {
179075
+ (0, import_child_process4.execSync)(`xdg-open '${oneClickUrl}'`);
179076
+ }
179077
+ summary.push("\u2705 VS Code: One-click installer opened");
179078
+ output_manager_default.print("\u2705 Successfully opened VS Code one-click installer\n");
179079
+ output_manager_default.print("\u2139\uFE0F Follow the prompts in VS Code to complete setup\n");
179080
+ output_manager_default.print(
179081
+ "\u2139\uFE0F You may need to authorize the connection when prompted\n"
179082
+ );
179083
+ } catch (error3) {
179084
+ summary.push("\u274C VS Code: Failed to open one-click installer");
179085
+ output_manager_default.print("\u{1F4A1} Manual setup instructions:\n");
179086
+ output_manager_default.print(" 1. Open VS Code\n");
179087
+ output_manager_default.print(
179088
+ " 2. Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)\n"
179089
+ );
179090
+ output_manager_default.print(' 3. Type "MCP: Add Server" and press Enter\n');
179091
+ output_manager_default.print(" 4. Select HTTP\n");
179092
+ output_manager_default.print(" 5. Enter the following details:\n");
179093
+ output_manager_default.print(` \u2022 URL: ${mcpUrl}
179094
+ `);
179095
+ output_manager_default.print(` \u2022 Name: ${serverName}
179096
+ `);
179097
+ output_manager_default.print(
179098
+ " 6. Select Global or Workspace depending on your needs\n"
179099
+ );
179100
+ output_manager_default.print(" 7. Click Add\n");
179101
+ output_manager_default.print(" 8. Follow the authorization steps\n");
179102
+ output_manager_default.print("\n");
179103
+ output_manager_default.print(" Or use the one-click installer manually:\n");
179104
+ output_manager_default.print(` ${oneClickUrl}
179105
+ `);
179106
+ }
179107
+ }
179108
+ output_manager_default.print("\u2500".repeat(50) + "\n");
179109
+ }
179110
+ output_manager_default.print("\u{1F4CA} Setup Summary\n");
179111
+ output_manager_default.print("\u2500".repeat(50) + "\n");
179112
+ summary.forEach((line) => output_manager_default.print(`${line}
179113
+ `));
179114
+ if (isProjectSpecific) {
179115
+ const projectInfo = await getProjectSpecificUrl(client2);
179116
+ output_manager_default.print(`\u{1F517} Project-specific MCP URL: ${projectInfo?.url}
179117
+ `);
179118
+ }
179119
+ output_manager_default.print(
179120
+ "\u{1F517} Official documentation: https://vercel.com/docs/mcp/vercel-mcp\n"
179121
+ );
179122
+ output_manager_default.print(`\u{1F512} Official endpoint: ${MCP_ENDPOINT}
179123
+ `);
179124
+ output_manager_default.print("\u2728 Setup complete! Restart your clients if needed.\n");
179125
+ return 0;
179126
+ }
179127
+ var import_child_process4, MCP_ENDPOINT;
179128
+ var init_mcp = __esm({
179129
+ "src/commands/mcp/mcp.ts"() {
179130
+ "use strict";
179131
+ init_output_manager();
179132
+ import_child_process4 = require("child_process");
179133
+ init_link2();
179134
+ MCP_ENDPOINT = "https://mcp.vercel.com";
179135
+ }
179136
+ });
179137
+
179138
+ // src/commands/mcp/index.ts
179139
+ var mcp_exports = {};
179140
+ __export3(mcp_exports, {
179141
+ default: () => main13
179142
+ });
179143
+ async function main13(client2) {
179144
+ let parsedArgs;
179145
+ const flagsSpecification = getFlagsSpecification(mcpCommand.options);
179146
+ try {
179147
+ parsedArgs = parseArguments(client2.argv.slice(2), flagsSpecification);
179148
+ } catch (error3) {
179149
+ printError(error3);
179150
+ return 1;
179151
+ }
179152
+ if (parsedArgs.flags["--help"]) {
179153
+ output_manager_default.print(help2(mcpCommand, { columns: client2.stderr.columns }));
179154
+ return 2;
179155
+ }
179156
+ if (parsedArgs.flags["--project"]) {
179157
+ client2.argv.push("--project");
179158
+ }
179159
+ try {
179160
+ return await mcp(client2);
179161
+ } catch (err) {
179162
+ output_manager_default.prettyError(err);
179163
+ return 1;
179164
+ }
179165
+ }
179166
+ var init_mcp2 = __esm({
179167
+ "src/commands/mcp/index.ts"() {
179168
+ "use strict";
179169
+ init_get_args();
179170
+ init_error2();
179171
+ init_help();
179172
+ init_command23();
179173
+ init_get_flags_specification();
179174
+ init_output_manager();
179175
+ init_mcp();
179176
+ }
179177
+ });
179178
+
178835
179179
  // ../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js
178836
179180
  var require_email_validator = __commonJS2({
178837
179181
  "../../node_modules/.pnpm/email-validator@1.1.1/node_modules/email-validator/index.js"(exports2) {
@@ -179351,7 +179695,7 @@ var init_pull5 = __esm({
179351
179695
  init_humanize_path();
179352
179696
  init_stamp();
179353
179697
  import_fs_extra23 = __toESM3(require_lib());
179354
- init_command23();
179698
+ init_command24();
179355
179699
  init_get_flags_specification();
179356
179700
  init_get_args();
179357
179701
  init_error2();
@@ -179380,9 +179724,9 @@ var init_microfrontends = __esm({
179380
179724
  // src/commands/microfrontends/index.ts
179381
179725
  var microfrontends_exports = {};
179382
179726
  __export3(microfrontends_exports, {
179383
- default: () => main13
179727
+ default: () => main14
179384
179728
  });
179385
- async function main13(client2) {
179729
+ async function main14(client2) {
179386
179730
  const telemetry2 = new MicrofrontendsTelemetryClient({
179387
179731
  opts: {
179388
179732
  store: client2.telemetryEventStore
@@ -179446,7 +179790,7 @@ var init_microfrontends2 = __esm({
179446
179790
  init_error2();
179447
179791
  init_help();
179448
179792
  init_pull5();
179449
- init_command23();
179793
+ init_command24();
179450
179794
  init_get_flags_specification();
179451
179795
  init_output_manager();
179452
179796
  init_commands();
@@ -179545,7 +179889,7 @@ var init_add12 = __esm({
179545
179889
  init_create_project();
179546
179890
  init_output_manager();
179547
179891
  init_add11();
179548
- init_command24();
179892
+ init_command25();
179549
179893
  init_get_args();
179550
179894
  init_get_flags_specification();
179551
179895
  init_error2();
@@ -179702,7 +180046,7 @@ var init_inspect6 = __esm({
179702
180046
  init_pkg_name();
179703
180047
  init_inspect5();
179704
180048
  init_output_manager();
179705
- init_command24();
180049
+ init_command25();
179706
180050
  init_get_args();
179707
180051
  init_get_flags_specification();
179708
180052
  init_error2();
@@ -179893,7 +180237,7 @@ var init_list10 = __esm({
179893
180237
  init_pkg_name();
179894
180238
  init_list9();
179895
180239
  init_output_manager();
179896
- init_command24();
180240
+ init_command25();
179897
180241
  init_get_args();
179898
180242
  init_get_flags_specification();
179899
180243
  init_error2();
@@ -180010,7 +180354,7 @@ var init_rm10 = __esm({
180010
180354
  init_get_args();
180011
180355
  init_get_flags_specification();
180012
180356
  init_error2();
180013
- init_command24();
180357
+ init_command25();
180014
180358
  e = encodeURIComponent;
180015
180359
  }
180016
180360
  });
@@ -180053,9 +180397,9 @@ var init_project = __esm({
180053
180397
  // src/commands/project/index.ts
180054
180398
  var project_exports = {};
180055
180399
  __export3(project_exports, {
180056
- default: () => main14
180400
+ default: () => main15
180057
180401
  });
180058
- async function main14(client2) {
180402
+ async function main15(client2) {
180059
180403
  const telemetry2 = new ProjectTelemetryClient({
180060
180404
  opts: {
180061
180405
  store: client2.telemetryEventStore
@@ -180137,7 +180481,7 @@ var init_project2 = __esm({
180137
180481
  init_inspect6();
180138
180482
  init_list10();
180139
180483
  init_rm10();
180140
- init_command24();
180484
+ init_command25();
180141
180485
  init_get_flags_specification();
180142
180486
  init_project();
180143
180487
  init_output_manager();
@@ -180600,7 +180944,7 @@ var init_promote2 = __esm({
180600
180944
  import_error_utils33 = __toESM3(require_dist2());
180601
180945
  init_request_promote();
180602
180946
  init_status2();
180603
- init_command25();
180947
+ init_command26();
180604
180948
  init_help();
180605
180949
  init_get_flags_specification();
180606
180950
  init_promote();
@@ -180994,7 +181338,7 @@ var init_redeploy2 = __esm({
180994
181338
  init_stamp();
180995
181339
  init_ua();
180996
181340
  init_help();
180997
- init_command27();
181341
+ init_command28();
180998
181342
  init_get_flags_specification();
180999
181343
  init_output_manager();
181000
181344
  init_redeploy();
@@ -181381,7 +181725,7 @@ var init_remove6 = __esm({
181381
181725
  init_error2();
181382
181726
  init_now_error();
181383
181727
  init_help();
181384
- init_command28();
181728
+ init_command29();
181385
181729
  init_get_flags_specification();
181386
181730
  init_remove5();
181387
181731
  init_output_manager();
@@ -181654,7 +181998,7 @@ var init_rollback2 = __esm({
181654
181998
  init_request_rollback();
181655
181999
  init_status3();
181656
182000
  init_help();
181657
- init_command29();
182001
+ init_command30();
181658
182002
  init_get_flags_specification();
181659
182003
  init_rollback();
181660
182004
  init_output_manager();
@@ -182230,7 +182574,7 @@ var init_rolling_release2 = __esm({
182230
182574
  init_get_args();
182231
182575
  init_get_flags_specification();
182232
182576
  init_help();
182233
- init_command30();
182577
+ init_command31();
182234
182578
  init_request_rolling_release();
182235
182579
  init_start_rolling_release();
182236
182580
  init_configure_rolling_release();
@@ -182362,7 +182706,7 @@ var init_list11 = __esm({
182362
182706
  import_chalk123 = __toESM3(require_source());
182363
182707
  init_table();
182364
182708
  init_output_manager();
182365
- init_command31();
182709
+ init_command32();
182366
182710
  init_pkg_name();
182367
182711
  init_ensure_link();
182368
182712
  init_format_project();
@@ -182400,9 +182744,9 @@ var init_target = __esm({
182400
182744
  // src/commands/target/index.ts
182401
182745
  var target_exports = {};
182402
182746
  __export3(target_exports, {
182403
- default: () => main15
182747
+ default: () => main16
182404
182748
  });
182405
- async function main15(client2) {
182749
+ async function main16(client2) {
182406
182750
  let parsedArgs;
182407
182751
  const flagsSpecification = getFlagsSpecification(targetCommand.options);
182408
182752
  try {
@@ -182455,7 +182799,7 @@ var init_target2 = __esm({
182455
182799
  init_get_invalid_subcommand();
182456
182800
  init_help();
182457
182801
  init_list11();
182458
- init_command31();
182802
+ init_command32();
182459
182803
  init_get_flags_specification();
182460
182804
  init_error2();
182461
182805
  init_output_manager();
@@ -182602,7 +182946,7 @@ var init_list13 = __esm({
182602
182946
  init_get_args();
182603
182947
  init_error2();
182604
182948
  init_get_flags_specification();
182605
- init_command32();
182949
+ init_command33();
182606
182950
  init_output_manager();
182607
182951
  init_list12();
182608
182952
  }
@@ -182801,7 +183145,7 @@ var init_invite2 = __esm({
182801
183145
  init_get_args();
182802
183146
  init_get_flags_specification();
182803
183147
  init_error2();
182804
- init_command32();
183148
+ init_command33();
182805
183149
  validateEmail2 = (data) => email.test(data.trim()) || data.length === 0;
182806
183150
  domains = Array.from(
182807
183151
  /* @__PURE__ */ new Set([
@@ -183102,7 +183446,7 @@ var init_switch2 = __esm({
183102
183446
  init_files();
183103
183447
  init_output_manager();
183104
183448
  init_switch();
183105
- init_command32();
183449
+ init_command33();
183106
183450
  init_get_args();
183107
183451
  init_get_flags_specification();
183108
183452
  init_error2();
@@ -183254,7 +183598,7 @@ var init_teams2 = __esm({
183254
183598
  init_switch2();
183255
183599
  init_invite2();
183256
183600
  init_get_args();
183257
- init_command32();
183601
+ init_command33();
183258
183602
  init_help();
183259
183603
  init_get_flags_specification();
183260
183604
  init_error2();
@@ -183495,7 +183839,7 @@ var init_telemetry3 = __esm({
183495
183839
  init_enable2();
183496
183840
  init_disable2();
183497
183841
  init_flush();
183498
- init_command33();
183842
+ init_command34();
183499
183843
  init_get_flags_specification();
183500
183844
  init_telemetry2();
183501
183845
  import_chalk129 = __toESM3(require_source());
@@ -183558,7 +183902,7 @@ var init_whoami2 = __esm({
183558
183902
  "src/commands/whoami/index.ts"() {
183559
183903
  "use strict";
183560
183904
  init_help();
183561
- init_command34();
183905
+ init_command35();
183562
183906
  init_get_scope();
183563
183907
  init_get_args();
183564
183908
  init_get_flags_specification();
@@ -184461,7 +184805,7 @@ Sentry.init({
184461
184805
  var client;
184462
184806
  var { isTTY: isTTY2 } = process.stdout;
184463
184807
  var apiUrl = "https://api.vercel.com";
184464
- var main16 = async () => {
184808
+ var main17 = async () => {
184465
184809
  if (process.env.FORCE_TTY === "1") {
184466
184810
  isTTY2 = true;
184467
184811
  process.stdout.isTTY = true;
@@ -184933,6 +185277,9 @@ var main16 = async () => {
184933
185277
  telemetry2.trackCliCommandLogs(userSuppliedSubCommand);
184934
185278
  func = (init_logs3(), __toCommonJS3(logs_exports)).default;
184935
185279
  break;
185280
+ case "mcp":
185281
+ func = (init_mcp2(), __toCommonJS3(mcp_exports)).default;
185282
+ break;
184936
185283
  case "login":
184937
185284
  telemetry2.trackCliCommandLogin(userSuppliedSubCommand);
184938
185285
  func = (init_login3(), __toCommonJS3(login_exports)).default;
@@ -185084,7 +185431,7 @@ ${err.stack}`);
185084
185431
  };
185085
185432
  process.on("unhandledRejection", handleRejection);
185086
185433
  process.on("uncaughtException", handleUnexpected);
185087
- main16().then(async (exitCode2) => {
185434
+ main17().then(async (exitCode2) => {
185088
185435
  if (isTTY2 && !process.env.NO_UPDATE_NOTIFIER) {
185089
185436
  const latest = getLatestVersion({
185090
185437
  pkg: pkg_default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "45.0.10",
3
+ "version": "46.0.0",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -165,9 +165,9 @@
165
165
  "write-json-file": "2.2.0",
166
166
  "xdg-app-paths": "5.1.0",
167
167
  "yauzl-promise": "2.1.3",
168
+ "@vercel-internals/get-package-json": "1.0.0",
168
169
  "@vercel-internals/constants": "1.0.4",
169
- "@vercel-internals/types": "3.0.6",
170
- "@vercel-internals/get-package-json": "1.0.0"
170
+ "@vercel-internals/types": "3.0.6"
171
171
  },
172
172
  "scripts": {
173
173
  "test": "jest --reporters=default --reporters=jest-junit --env node --verbose --bail",