vercel 32.2.5 → 32.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.
Files changed (2) hide show
  1. package/dist/index.js +134 -50
  2. package/package.json +11 -11
package/dist/index.js CHANGED
@@ -219698,7 +219698,7 @@ const help = () => `
219698
219698
  pull [path] Pull your Project Settings from the cloud
219699
219699
  redeploy [url|id] Rebuild and deploy a previous deployment.
219700
219700
  rollback [url|id] Quickly revert back to a previous deployment
219701
- switch [scope] Switches between teams and your personal account
219701
+ switch [scope] Switches between different scopes
219702
219702
 
219703
219703
  ${chalk_1.default.dim('Advanced')}
219704
219704
 
@@ -221010,6 +221010,15 @@ async function doBuild(client, project, buildsJson, cwd, outputDir) {
221010
221010
  // Create fresh new output directory
221011
221011
  await fs_extra_1.default.mkdirp(outputDir);
221012
221012
  const ops = [];
221013
+ const dependencies = [
221014
+ ...Object.keys(pkg?.dependencies ?? {}),
221015
+ ...Object.keys(pkg?.devDependencies ?? {}),
221016
+ ];
221017
+ const isUsingSpeedInsights = dependencies.some(d => d === '@vercel/speed-insights');
221018
+ if (isUsingSpeedInsights && process.env.VERCEL_ANALYTICS_ID) {
221019
+ output.warn(`The \`VERCEL_ANALYTICS_ID\` environment variable is deprecated and will be removed in a future release. Please remove it from your environment variables`);
221020
+ delete process.env.VERCEL_ANALYTICS_ID;
221021
+ }
221013
221022
  // Write the `detectedBuilders` result to output dir
221014
221023
  const buildsJsonBuilds = new Map(builds.map(build => {
221015
221024
  const builderWithPkg = buildersWithPkgs.get(build.use);
@@ -221175,6 +221184,7 @@ async function doBuild(client, project, buildsJson, cwd, outputDir) {
221175
221184
  const mergedCrons = mergeCrons(localConfig.crons, buildResults.values());
221176
221185
  const mergedWildcard = mergeWildcard(buildResults.values());
221177
221186
  const mergedOverrides = overrides.length > 0 ? Object.assign({}, ...overrides) : undefined;
221187
+ const mergedFlags = mergeFlags(buildResults.values());
221178
221188
  const framework = await getFramework(cwd, buildResults);
221179
221189
  // Write out the final `config.json` file based on the
221180
221190
  // user configuration and Builder build results
@@ -221186,6 +221196,7 @@ async function doBuild(client, project, buildsJson, cwd, outputDir) {
221186
221196
  overrides: mergedOverrides,
221187
221197
  framework,
221188
221198
  crons: mergedCrons,
221199
+ flags: mergedFlags,
221189
221200
  };
221190
221201
  await fs_extra_1.default.writeJSON((0, path_1.join)(outputDir, 'config.json'), config, { spaces: 2 });
221191
221202
  const relOutputDir = (0, path_1.relative)(cwd, outputDir);
@@ -221285,6 +221296,14 @@ function mergeWildcard(buildResults) {
221285
221296
  }
221286
221297
  return wildcard;
221287
221298
  }
221299
+ function mergeFlags(buildResults) {
221300
+ return Array.from(buildResults).flatMap(result => {
221301
+ if ('flags' in result) {
221302
+ return result.flags ?? [];
221303
+ }
221304
+ return [];
221305
+ });
221306
+ }
221288
221307
 
221289
221308
 
221290
221309
  /***/ }),
@@ -223716,7 +223735,7 @@ exports.domainsCommand = {
223716
223735
  },
223717
223736
  {
223718
223737
  name: 'move',
223719
- description: 'Move a domain to another user or team',
223738
+ description: 'Move a domain to another scope',
223720
223739
  arguments: [
223721
223740
  {
223722
223741
  name: 'name',
@@ -224150,6 +224169,10 @@ async function move(client, opts, args) {
224150
224169
  }
224151
224170
  const teams = await (0, get_teams_1.default)(client);
224152
224171
  const matchId = await findDestinationMatch(destination, user, teams);
224172
+ if (matchId && matchId === user.id && user.version === 'northstar') {
224173
+ output.error(`You may not move your domain to your user account.`);
224174
+ return 1;
224175
+ }
224153
224176
  if (!matchId && !opts['--yes']) {
224154
224177
  output.warn(`You're not a member of ${(0, param_1.default)(destination)}. ` +
224155
224178
  `${(0, param_1.default)(destination)} will have 24 hours to accept your move request before it expires.`);
@@ -225009,6 +225032,11 @@ function tryReadHeadSync(path, length) {
225009
225032
  }
225010
225033
  }
225011
225034
  }
225035
+ const VARIABLES_TO_IGNORE = [
225036
+ 'VERCEL_ANALYTICS_ID',
225037
+ 'VERCEL_SPEED_INSIGHTS_ID',
225038
+ 'VERCEL_WEB_ANALYTICS_ID',
225039
+ ];
225012
225040
  async function pull(client, link, project, environment, opts, args, output, cwd, source) {
225013
225041
  if (args.length > 1) {
225014
225042
  output.error(`Invalid number of arguments. Usage: ${(0, pkg_name_1.getCommandName)(`env pull <file>`)}`);
@@ -225053,6 +225081,7 @@ async function pull(client, link, project, environment, opts, args, output, cwd,
225053
225081
  const contents = CONTENTS_PREFIX +
225054
225082
  Object.keys(records)
225055
225083
  .sort()
225084
+ .filter(key => !VARIABLES_TO_IGNORE.includes(key))
225056
225085
  .map(key => `${key}="${escapeValue(records[key])}"`)
225057
225086
  .join('\n') +
225058
225087
  '\n';
@@ -227058,6 +227087,7 @@ const global_path_1 = __importDefault(__webpack_require__(88976));
227058
227087
  const files_1 = __webpack_require__(48695);
227059
227088
  const help_1 = __webpack_require__(58219);
227060
227089
  const command_1 = __webpack_require__(23496);
227090
+ const update_current_team_after_login_1 = __webpack_require__(97784);
227061
227091
  async function login(client) {
227062
227092
  const { output } = client;
227063
227093
  const argv = (0, get_args_1.default)(client.argv.slice(2), {
@@ -227102,19 +227132,13 @@ async function login(client) {
227102
227132
  if (typeof result === 'number') {
227103
227133
  return result;
227104
227134
  }
227105
- // If the token was upgraded (not a new login), then don't modify
227106
- // the current scope.
227107
- if (!client.authConfig.token) {
227108
- if (result.teamId) {
227109
- // SSO login, so set the current scope to the appropriate Team
227110
- client.config.currentTeam = result.teamId;
227111
- }
227112
- else {
227113
- delete client.config.currentTeam;
227114
- }
227115
- }
227135
+ const isNewLogin = !client.authConfig.token;
227116
227136
  // Save the user's authentication token to the configuration file.
227117
227137
  client.authConfig.token = result.token;
227138
+ // If we have a new login, update `currentTeam`
227139
+ if (isNewLogin) {
227140
+ await (0, update_current_team_after_login_1.updateCurrentTeamAfterLogin)(client, output, result.teamId);
227141
+ }
227118
227142
  (0, files_1.writeToAuthConfigFile)(client.authConfig);
227119
227143
  (0, files_1.writeToConfigFile)(client.config);
227120
227144
  output.debug(`Saved credentials in "${(0, humanize_path_1.default)((0, global_path_1.default)())}"`);
@@ -227138,7 +227162,7 @@ exports.logoutCommand = void 0;
227138
227162
  const pkg_name_1 = __webpack_require__(79000);
227139
227163
  exports.logoutCommand = {
227140
227164
  name: 'logout',
227141
- description: 'Logout the current authenticated user or team.',
227165
+ description: 'Logout the current authenticated user.',
227142
227166
  arguments: [],
227143
227167
  options: [],
227144
227168
  examples: [
@@ -227616,7 +227640,7 @@ exports.projectCommand = {
227616
227640
  subcommands: [
227617
227641
  {
227618
227642
  name: 'ls',
227619
- description: 'Show all projects in the selected team/user',
227643
+ description: 'Show all projects in the selected scope',
227620
227644
  arguments: [],
227621
227645
  options: [],
227622
227646
  examples: [],
@@ -229718,9 +229742,9 @@ async function list(client) {
229718
229742
  apiVersion: 2,
229719
229743
  });
229720
229744
  let { currentTeam } = config;
229721
- const accountIsCurrent = !currentTeam;
229722
229745
  output.spinner('Fetching user information');
229723
229746
  const user = await (0, get_user_1.default)(client);
229747
+ const accountIsCurrent = !currentTeam && user.version !== 'northstar';
229724
229748
  if (accountIsCurrent) {
229725
229749
  currentTeam = user.id;
229726
229750
  }
@@ -229730,12 +229754,14 @@ async function list(client) {
229730
229754
  value: slug,
229731
229755
  current: id === currentTeam ? chars_1.default.tick : '',
229732
229756
  }));
229733
- teamList.unshift({
229734
- id: user.id,
229735
- name: user.email,
229736
- value: user.username || user.email,
229737
- current: accountIsCurrent ? chars_1.default.tick : '',
229738
- });
229757
+ if (user.version !== 'northstar') {
229758
+ teamList.unshift({
229759
+ id: user.id,
229760
+ name: user.email,
229761
+ value: user.username || user.email,
229762
+ current: accountIsCurrent ? chars_1.default.tick : '',
229763
+ });
229764
+ }
229739
229765
  // Bring the current Team to the beginning of the list
229740
229766
  if (!accountIsCurrent) {
229741
229767
  const index = teamList.findIndex(choice => choice.id === currentTeam);
@@ -229744,12 +229770,14 @@ async function list(client) {
229744
229770
  }
229745
229771
  // Printing
229746
229772
  output.stopSpinner();
229747
- console.log(); // empty line
229748
- (0, table_1.default)(['', 'id', 'email / name'], teamList.map(team => [team.current, team.value, team.name]), [1, 5]);
229773
+ client.stdout.write('\n'); // empty line
229774
+ (0, table_1.default)(['', 'id', 'email / name'], teamList.map(team => [team.current, team.value, team.name]), [1, 5], (str) => {
229775
+ client.stdout.write(str);
229776
+ });
229749
229777
  if (pagination?.count === 20) {
229750
229778
  const flags = (0, get_command_flags_1.default)(argv, ['_', '--next', '-N', '-d']);
229751
229779
  const nextCmd = `${pkg_name_1.packageName} teams ls${flags} --next ${pagination.next}`;
229752
- console.log(); // empty line
229780
+ client.stdout.write('\n'); // empty line
229753
229781
  output.log(`To display the next page run ${(0, cmd_1.default)(nextCmd)}`);
229754
229782
  }
229755
229783
  return 0;
@@ -229824,14 +229852,19 @@ async function main(client, desiredSlug) {
229824
229852
  if (user.limited) {
229825
229853
  suffix += ` ${(0, emoji_1.emoji)('locked')}`;
229826
229854
  }
229855
+ const personalAccountChoice = user.version === 'northstar'
229856
+ ? []
229857
+ : [
229858
+ { separator: 'Personal Account' },
229859
+ {
229860
+ name: `${user.name || user.email} (${user.username})${suffix}`,
229861
+ value: user.username,
229862
+ short: user.username,
229863
+ selected: personalScopeSelected,
229864
+ },
229865
+ ];
229827
229866
  const choices = [
229828
- { separator: 'Personal Account' },
229829
- {
229830
- name: `${user.name || user.email} (${user.username})${suffix}`,
229831
- value: user.username,
229832
- short: user.username,
229833
- selected: personalScopeSelected,
229834
- },
229867
+ ...personalAccountChoice,
229835
229868
  { separator: 'Teams' },
229836
229869
  ...teamChoices,
229837
229870
  ];
@@ -229848,6 +229881,10 @@ async function main(client, desiredSlug) {
229848
229881
  return 0;
229849
229882
  }
229850
229883
  if (desiredSlug === user.username || desiredSlug === user.email) {
229884
+ if (user.version === 'northstar') {
229885
+ output.error('You cannot set your Personal Account as the scope.');
229886
+ return 1;
229887
+ }
229851
229888
  // Switch to user's personal account
229852
229889
  if (personalScopeSelected) {
229853
229890
  output.log('No changes made');
@@ -230034,6 +230071,7 @@ const proxy_agent_1 = __webpack_require__(21861);
230034
230071
  const box_1 = __importDefault(__webpack_require__(58587));
230035
230072
  const exec_1 = __webpack_require__(62720);
230036
230073
  const args_1 = __webpack_require__(29709);
230074
+ const update_current_team_after_login_1 = __webpack_require__(97784);
230037
230075
  const VERCEL_DIR = (0, global_path_1.default)();
230038
230076
  const VERCEL_CONFIG_PATH = configFiles.getConfigFilePath();
230039
230077
  const VERCEL_AUTH_CONFIG_PATH = configFiles.getAuthConfigFilePath();
@@ -230249,16 +230287,10 @@ const main = async () => {
230249
230287
  if (typeof result === 'number') {
230250
230288
  return result;
230251
230289
  }
230252
- if (result.teamId) {
230253
- // SSO login, so set the current scope to the appropriate Team
230254
- client.config.currentTeam = result.teamId;
230255
- }
230256
- else {
230257
- delete client.config.currentTeam;
230258
- }
230259
230290
  // When `result` is a string it's the user's authentication token.
230260
230291
  // It needs to be saved to the configuration file.
230261
230292
  client.authConfig.token = result.token;
230293
+ await (0, update_current_team_after_login_1.updateCurrentTeamAfterLogin)(client, output, result.teamId);
230262
230294
  configFiles.writeToAuthConfigFile(client.authConfig);
230263
230295
  configFiles.writeToConfigFile(client.config);
230264
230296
  output.debug(`Saved credentials in "${(0, humanize_path_1.default)(VERCEL_DIR)}"`);
@@ -230331,6 +230363,10 @@ const main = async () => {
230331
230363
  return 1;
230332
230364
  }
230333
230365
  if (user.id === scope || user.email === scope || user.username === scope) {
230366
+ if (user.version === 'northstar') {
230367
+ output.error('You cannot set your Personal Account as the scope.');
230368
+ return 1;
230369
+ }
230334
230370
  delete client.config.currentTeam;
230335
230371
  }
230336
230372
  else {
@@ -238564,7 +238600,7 @@ class TeamDeleted extends now_error_1.NowError {
238564
238600
  constructor() {
238565
238601
  super({
238566
238602
  code: 'TEAM_DELETED',
238567
- message: `Your team was deleted. You can switch to a different one using ${(0, pkg_name_1.getCommandName)(`switch`)}.`,
238603
+ message: `Your team was deleted or you were removed from the team. You can switch to a different one using ${(0, pkg_name_1.getCommandName)(`switch`)}.`,
238568
238604
  meta: {},
238569
238605
  });
238570
238606
  }
@@ -240338,8 +240374,10 @@ async function getScope(client, opts = {}) {
240338
240374
  const user = await (0, get_user_1.default)(client);
240339
240375
  let contextName = user.username || user.email;
240340
240376
  let team = null;
240341
- if (client.config.currentTeam && opts.getTeam !== false) {
240342
- team = await (0, get_team_by_id_1.default)(client, client.config.currentTeam);
240377
+ const defaultTeamId = user.version === 'northstar' ? user.defaultTeamId : undefined;
240378
+ const currentTeamOrDefaultTeamId = client.config.currentTeam || defaultTeamId;
240379
+ if (currentTeamOrDefaultTeamId && opts.getTeam !== false) {
240380
+ team = await (0, get_team_by_id_1.default)(client, currentTeamOrDefaultTeamId);
240343
240381
  if (!team) {
240344
240382
  throw new errors_ts_1.TeamDeleted();
240345
240383
  }
@@ -241875,11 +241913,16 @@ async function selectOrg(client, question, autoConfirm) {
241875
241913
  finally {
241876
241914
  output.stopSpinner();
241877
241915
  }
241916
+ const personalAccountChoice = user.version === 'northstar'
241917
+ ? []
241918
+ : [
241919
+ {
241920
+ name: user.name || user.username,
241921
+ value: { type: 'user', id: user.id, slug: user.username },
241922
+ },
241923
+ ];
241878
241924
  const choices = [
241879
- {
241880
- name: user.name || user.username,
241881
- value: { type: 'user', id: user.id, slug: user.username },
241882
- },
241925
+ ...personalAccountChoice,
241883
241926
  ...teams.map(team => ({
241884
241927
  name: team.name || team.slug,
241885
241928
  value: { type: 'team', id: team.id, slug: team.slug },
@@ -243298,6 +243341,45 @@ function doSamlLogin(client, teamIdOrSlug, outOfBand, ssoUserId) {
243298
243341
  exports.default = doSamlLogin;
243299
243342
 
243300
243343
 
243344
+ /***/ }),
243345
+
243346
+ /***/ 97784:
243347
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
243348
+
243349
+ "use strict";
243350
+
243351
+ var __importDefault = (this && this.__importDefault) || function (mod) {
243352
+ return (mod && mod.__esModule) ? mod : { "default": mod };
243353
+ };
243354
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
243355
+ exports.updateCurrentTeamAfterLogin = void 0;
243356
+ const get_user_1 = __importDefault(__webpack_require__(78871));
243357
+ // NOTE: `client.authConfig.token` must be set before calling this
243358
+ async function updateCurrentTeamAfterLogin(client, output, ssoTeamId) {
243359
+ if (ssoTeamId) {
243360
+ client.config.currentTeam = ssoTeamId;
243361
+ }
243362
+ else {
243363
+ let user = null;
243364
+ try {
243365
+ user = await (0, get_user_1.default)(client);
243366
+ }
243367
+ catch (err) {
243368
+ // Shouldn't happen since we just logged in
243369
+ output.error('Failed to fetch the logged in user. Please try again.');
243370
+ return 1;
243371
+ }
243372
+ if (user.version === 'northstar' && user.defaultTeamId) {
243373
+ client.config.currentTeam = user.defaultTeamId;
243374
+ }
243375
+ else {
243376
+ delete client.config.currentTeam;
243377
+ }
243378
+ }
243379
+ }
243380
+ exports.updateCurrentTeamAfterLogin = updateCurrentTeamAfterLogin;
243381
+
243382
+
243301
243383
  /***/ }),
243302
243384
 
243303
243385
  /***/ 80361:
@@ -244345,7 +244427,7 @@ const printLine = (data, sizes) => data.reduce((line, col, i) => line + col.padE
244345
244427
  /**
244346
244428
  * Print a table.
244347
244429
  */
244348
- function table(fieldNames = [], data = [], margins = []) {
244430
+ function table(fieldNames = [], data = [], margins = [], print) {
244349
244431
  // Compute size of each column
244350
244432
  const sizes = data
244351
244433
  .reduce((acc, row) => row.map((col, i) => {
@@ -244356,10 +244438,12 @@ function table(fieldNames = [], data = [], margins = []) {
244356
244438
  // Add margin to all columns except the last
244357
244439
  .map((size, i) => (i < margins.length && size + margins[i]) || size);
244358
244440
  // Print header
244359
- console.log(chalk_1.default.grey(printLine(fieldNames, sizes)));
244441
+ print(chalk_1.default.grey(printLine(fieldNames, sizes)));
244442
+ print('\n');
244360
244443
  // Print content
244361
244444
  for (const row of data) {
244362
- console.log(printLine(row, sizes));
244445
+ print(printLine(row, sizes));
244446
+ print('\n');
244363
244447
  }
244364
244448
  }
244365
244449
  exports.default = table;
@@ -246337,7 +246421,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
246337
246421
  /***/ ((module) => {
246338
246422
 
246339
246423
  "use strict";
246340
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"13.0.3\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"Apache-2.0\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"node ../../utils/build.mjs\",\"test-e2e\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --reporters=default --reporters=jest-junit --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 16\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"jest-junit\":\"16.0.0\",\"typescript\":\"4.9.5\"},\"dependencies\":{\"@vercel/build-utils\":\"7.2.0\",\"@vercel/routing-utils\":\"3.0.0\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"minimatch\":\"5.0.1\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
246424
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"13.0.4\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"Apache-2.0\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"node ../../utils/build.mjs\",\"test-e2e\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --reporters=default --reporters=jest-junit --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 16\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"jest-junit\":\"16.0.0\",\"typescript\":\"4.9.5\"},\"dependencies\":{\"@vercel/build-utils\":\"7.2.1\",\"@vercel/routing-utils\":\"3.0.0\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"minimatch\":\"5.0.1\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
246341
246425
 
246342
246426
  /***/ }),
246343
246427
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "32.2.5",
3
+ "version": "32.3.0",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -22,16 +22,16 @@
22
22
  "node": ">= 16"
23
23
  },
24
24
  "dependencies": {
25
- "@vercel/build-utils": "7.2.0",
26
- "@vercel/go": "3.0.1",
25
+ "@vercel/build-utils": "7.2.1",
26
+ "@vercel/go": "3.0.2",
27
27
  "@vercel/hydrogen": "1.0.1",
28
- "@vercel/next": "4.0.6",
29
- "@vercel/node": "3.0.5",
30
- "@vercel/python": "4.0.1",
31
- "@vercel/redwood": "2.0.2",
32
- "@vercel/remix-builder": "2.0.6",
28
+ "@vercel/next": "4.0.7",
29
+ "@vercel/node": "3.0.6",
30
+ "@vercel/python": "4.0.2",
31
+ "@vercel/redwood": "2.0.3",
32
+ "@vercel/remix-builder": "2.0.7",
33
33
  "@vercel/ruby": "2.0.2",
34
- "@vercel/static-build": "2.0.6"
34
+ "@vercel/static-build": "2.0.7"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@alex_neo/jest-expect-message": "1.0.5",
@@ -77,8 +77,8 @@
77
77
  "@types/yauzl-promise": "2.1.0",
78
78
  "@vercel-internals/constants": "1.0.4",
79
79
  "@vercel-internals/get-package-json": "1.0.0",
80
- "@vercel-internals/types": "1.0.10",
81
- "@vercel/client": "13.0.3",
80
+ "@vercel-internals/types": "1.0.11",
81
+ "@vercel/client": "13.0.4",
82
82
  "@vercel/error-utils": "2.0.1",
83
83
  "@vercel/frameworks": "2.0.2",
84
84
  "@vercel/fs-detectors": "5.1.0",